How Humanizer Deals with Vague Sources (Pattern S): Rules and Implementation
Humanizer treats vague sources as Pattern S, preserving ambiguity when sources lack clarity, naming relationships explicitly when sources define them, and removing filler phrases that add no factual value.
The blader/humanizer repository provides a structured approach to rewriting AI-generated text so it reads naturally without distorting source material. One of its core mechanisms is Pattern S — the "Vague connection or association" pattern — which handles statements that link concepts without explaining how they relate. This pattern prevents the introduction of unsupported specifics while eliminating unnecessary opacity SKILL.md §14.
What Pattern S Detects
Pattern S triggers on phrases like "associated with," "connected to," "linked to," and similar constructions that create relationships without definition. These vague connectors appear frequently in AI-generated text and can obscure meaning or imply knowledge that doesn't exist in the source.
The pattern operates on three distinct principles depending on what the source material actually contains.
The Three Rules of Pattern S Handling
Preserve Ambiguity When Sources Are Unclear
When the original source does not specify the exact relationship between two entities, Humanizer keeps the vague wording intact. This rule prevents hallucination — the addition of fabricated details that make text sound more authoritative than the source supports.
For example, if a source states "Smith is linked to the foundation" without further elaboration, Humanizer maintains the ambiguity rather than inventing a role like "donor" or "board member."
Clarify When Sources Provide Explicit Relationships
When the source explicitly defines the connection, Humanizer rewrites the sentence to name that relationship directly. This transformation improves readability while remaining strictly faithful to the source.
In the documented example from SKILL.md, the source states someone "founded and conducts" an orchestra — so Humanizer eliminates "associated with" and writes the concrete role instead.
Remove Vague Phrases That Add No Value
If a vague association functions purely as filler without meaningful content, Humanizer drops it entirely. This tightening improves sentence flow without losing information because no information was present to begin with.
Example: Before and After Transformation
The SKILL.md file provides a concrete illustration of Pattern S in action:
Before (raw input):
"He is associated with the Rajhans Orchestra, which he founded and conducts. The concerts were organised in connection with the celebrations of Pakistan's 50th anniversary."
After (Humanizer output):
"He founded and conducts the Rajhans Orchestra. The concerts were part of the celebrations of Pakistan's 50th anniversary."
The transformation removes both vague phrases because:
- The source already identifies the concrete relationship (founder and conductor), satisfying Rule 2
- The "connection" to the anniversary becomes self-evident through context, allowing Rule 3 to eliminate filler
Implementation: Using Humanizer with Pattern S
Python Integration
The repository implements Pattern S through its skill-based prompt system. Below is a complete example for integrating Humanizer with OpenAI-compatible models:
# Load the Humanizer skill prompt (content from SKILL.md)
humanizer_prompt = """
---
name: humanizer
description: |
Rewrite AI‑sounding text so it reads like the writer without changing what it says.
metadata:
version: "3.0.0"
---
<Insert the full skill content from SKILL.md here>
"""
def humanize(text):
"""Send text to model with Humanizer system prompt."""
response = openai.ChatCompletion.create(
model="gpt-4o",
messages=[
{"role": "system", "content": humanizer_prompt},
{"role": "user", "content": text},
],
temperature=0,
)
return response.choices[0].message["content"]
# Input with vague source (Pattern S)
raw_text = """
John is associated with the Global Tech Initiative, which launched next year.
"""
# Humanized output — vague phrase removed due to lack of source clarity
print(humanize(raw_text))
Expected output:
John is part of the Global Tech Initiative, which launched next year.
Command-Line Usage
If your installation includes the CLI wrapper referenced in repository documentation:
echo "Maria is linked to the City Council, which approved the new zoning plan." | humanizer
Result:
Maria is part of the City Council, which approved the new zoning plan.
The CLI applies the same Pattern S logic through the skill-based pipeline without requiring manual prompt construction.
Key Source Files
| File | Purpose | Location |
|---|---|---|
SKILL.md |
Core skill definition containing Pattern S rules and all transformation patterns | SKILL.md |
README.md |
Installation guide and basic usage instructions | README.md |
AGENTS.md |
Platform compatibility details for Claude, OpenAI, and other agents | AGENTS.md |
The complete Pattern S specification resides in Section 14 of SKILL.md, which defines the pattern's scope, triggering conditions, and transformation logic.
Summary
- Pattern S targets vague connectors ("associated with," "linked to," "connected to") that obscure relationships between entities
- Humanizer applies three rules: preserve ambiguity for unclear sources, clarify when sources define relationships, and remove filler phrases that contribute no value
- The pattern prevents hallucination by refusing to invent specifics absent from source material
- Implementation occurs through the skill prompt system defined in
SKILL.md, compatible with OpenAI, Claude, and other agent platforms - All transformations maintain strict fidelity to source content while improving readability
Frequently Asked Questions
What triggers Pattern S in Humanizer?
Pattern S activates when text contains phrases that create associations without defining them — specifically "associated with," "connected to," "linked to," and similar constructions. These vague connectors appear in Section 14 of SKILL.md as the "Vague connection or association" pattern.
Does Humanizer ever add specific relationships that aren't in the source?
No. Rule 1 of Pattern S explicitly preserves ambiguity when sources lack clarification. Humanizer never invents roles like "founder," "donor," or "employee" unless the source material explicitly provides them. This constraint prevents the hallucination problems common in raw AI output.
Can I customize how Pattern S handles specific vague phrases?
The core rules in SKILL.md are fixed to ensure consistent behavior across implementations. However, you can wrap the Humanizer skill in additional preprocessing or postprocessing logic if your use case requires specialized handling of certain connectors. The repository's AGENTS.md describes how to integrate custom pipeline stages.
Why does Humanizer sometimes remove vague phrases entirely rather than replacing them?
Rule 3 applies when a vague phrase functions as pure filler — when removing it leaves the sentence's factual content unchanged and improves clarity. In the documented example, "in connection with" disappears because the relationship to the anniversary becomes obvious from context, making the phrase redundant rather than merely vague.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →