How the Humanizer Skill Differentiates Intentional and Accidental Use of Weak-Alone Patterns
The Humanizer skill distinguishes accidental dashes from intentional stylistic choices by combining a contextual weak-alone guard that flags isolated instances with sample-driven rhythm matching that preserves usage rates found in the author’s own writing.
The blader/humanizer repository implements a sophisticated text refinement system that treats punctuation such as dashes as weak-alone patterns—elements that may appear either as unintentional model-generated artifacts or as deliberate authorial signatures. According to the source code in SKILL.md, the skill employs dual validation mechanisms to ensure that isolated dashes (likely LLM shortcuts) are removed while preserving intentional stylistic patterns.
Understanding Weak-Alone Patterns
In the Humanizer pattern taxonomy, weak-alone patterns are linguistic elements that carry different semantic weight depending on their frequency and context. A single dash often functions as a stylistic shortcut that language models insert when mimicking human prose, whereas a series of dashes typically indicates a conscious authorial choice.
The README.md summarizes this status in the pattern table at line 97, noting that dashes are flagged specifically because their isolated presence signals potential model-generated text rather than authentic human rhythm.
The Contextual Weak-Alone Guard Mechanism
The primary defense against accidental dash insertion operates through the Contextual Weak-Alone Guard defined in SKILL.md at line 162.
Single vs. Multiple Instance Logic
When Humanizer encounters draft text, it evaluates dash density using the following rule: a single dash "is weak alone; a text full of them is not."
-
Isolated instances: When a draft contains only a few scattered dashes, the skill treats these as accidental tells and replaces them with commas, periods, colons, or parentheses.
-
Shared passage detection: If multiple dashes appear within the same passage, the pattern becomes "shared" with other tells. The weak-alone guard lifts automatically, preserving the dashes subject to subsequent rule evaluation.
This density-based approach prevents over-editing by distinguishing between a model's casual punctuation shortcut and an author's established stylistic fingerprint.
Sample-Driven Rhythm Matching
The second validation layer inspects user-provided writing samples to establish intentional baselines. As implemented in SKILL.md at line 161, the dash rule states: "The final rewrite must not contain em dashes (—) or en dashes (–) unless the writer’s sample uses them; then match the sample’s rate."
Matching algorithm:
- Humanizer analyzes the input sample to calculate the author's native dash frequency.
- During rewrite generation, the skill replicates this exact rate in the output.
- If the sample contains zero dashes, all dashes are stripped from the final text regardless of density.
This mechanism ensures that intentional dash usage—defined as usage that appears in the author's own corpus—is preserved, while accidental insertion—identified by absence from the sample and isolated placement—is eliminated.
Practical Code Examples
Example 1: Accidental Model-Generated Dash
When the user's sample contains no dashes, isolated instances are treated as weak-alone artifacts:
Input: The committee decided—after much debate—to approve the budget.
Output: The committee decided after much debate to approve the budget.
Explanation: The absence of dashes in the writing sample triggers the weak-alone guard. The single dash is replaced with a comma-style break or removed entirely.
Example 2: Intentional Authorial Style
When the sample demonstrates established dash usage, the skill preserves the stylistic pattern:
User sample: "She was talented—unquestionably so—but shy."
Input: "She was talented—unquestionably so—but shy."
Output: "She was talented—unquestionably so—but shy."
Explanation: Humanizer detects dashes in the provided sample and matches the frequency in the output, treating these as intentional stylistic markers rather than model artifacts.
Example 3: Multiple Dashes Creating Shared Context
High-density dash usage bypasses the weak-alone guard through shared tell validation:
Input: "The policy—drafted in haste—failed—leading to confusion—among staff."
Output: "The policy—drafted in haste—failed—leading to confusion—among staff."
Explanation: Because the passage contains several dashes, the pattern achieves "shared" status. The weak-alone guard lifts, allowing the punctuation to remain as a deliberate structural choice.
Summary
- Weak-alone patterns like dashes are flagged in
SKILL.mdas potential model-generated artifacts when appearing in isolation. - The Contextual Weak-Alone Guard defined at line 162 differentiates single instances (accidental) from dense clusters (intentional).
- Sample-driven rhythm matching at line 161 calculates the author's native dash rate from provided examples and replicates it in output.
- Isolated dashes in samples without dash history are converted to commas or periods, while consistent dash usage is preserved as authorial voice.
- The architecture references
README.mdline 97 for pattern classification and employs density-based logic to prevent both over-editing and under-editing.
Frequently Asked Questions
How does Humanizer define a "weak-alone" pattern?
According to the source code in blader/humanizer, a weak-alone pattern is a linguistic element that lacks sufficient context to confirm intentional use when appearing in isolation. Specifically for dashes, the SKILL.md documentation states that a single dash "is weak alone," meaning it triggers replacement rules unless supported by either multiple instances in the same passage or evidence from the user's writing sample.
Can the weak-alone guard be disabled for specific punctuation marks?
The current implementation in SKILL.md does not expose configuration flags to disable the weak-alone guard for individual patterns. The rule operates automatically based on density detection (single versus multiple instances) and sample analysis. Authors wishing to preserve dash usage must provide a writing sample containing dashes to establish intentional usage patterns.
What happens when a text contains both intentional and accidental dashes?
When both types appear, Humanizer applies sample-rate matching to resolve ambiguity. If the user's sample demonstrates zero dash usage, all instances are treated as accidental and removed; if the sample shows moderate usage, the skill preserves dashes up to the calculated frequency rate while converting excess instances to alternative punctuation.
Where is the dash replacement logic documented in the repository?
The primary logic resides in SKILL.md at lines 161-162, which define the sample-rate matching rule and the weak-alone guard respectively. Additionally, README.md at line 97 summarizes the dash pattern's classification status in the pattern table, explaining its "weak alone" designation for repository users.
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 →