Pattern 1 Not X but Y in Humanizer: Removing AI Contrast Tells
Pattern 1 Not X but Y is the primary detection rule in the Humanizer skill that identifies AI-generated constructions contrasting a negative premise with a positive claim, instructing editors to remove the empty negation and state the fact directly.
The blader/humanizer repository provides an open-source editing skill designed to strip stylistic tells from machine-generated prose. Pattern 1 Not X but Y specifically targets sentences like "not X but Y" or "not just X, but Y" that artificially inflate importance through unnecessary negation. According to the source code in SKILL.md, this pattern represents the first and strongest tell that distinguishes synthetic text from natural human writing.
What is Pattern 1 Not X but Y?
Pattern 1 Not X but Y captures a common rhetorical scaffolding where writers (typically AI models) construct sentences by first rejecting a straw-man position before asserting the actual point. The pattern appears in forms including "not X but Y," "not just X, but Y," "it’s not X, it’s Y," and split-sentence variants like "This does not mean X. It means Y."
In SKILL.md at lines 58-73, the skill defines this construction as gratuitous because the negative clause typically adds no factual content while the positive clause restates the obvious with artificial weight. The rationale states that human authors simply state facts without the "not-X-but-Y" scaffolding.
Technical Location and Definition
The primary definition resides in the Humanizer skill specification:
-
File:
SKILL.md(section### 1. Not X but Y) -
Lines: 58-73
-
Purpose: Detect and eliminate contrastive framing that serves no corrective function
The skill recognizes multiple surface forms:
- "not X but Y"
- "not just X, but Y"
- "it's not X, it's Y"
- "X rather than Y"
- Split sentences: "This does not mean X. It means Y."
The Three-Step Correction Process
When agents/openai.yaml invokes the Humanizer skill, it applies a systematic correction workflow:
- Detect: Identify any contrastive construction matching the pattern variants.
- Assess: Determine whether the negative clause corrects an actual misconception the reader holds. If not, the contrast is unnecessary.
- Rewrite: State the claim directly, preserving useful information from the positive clause while deleting the gratuitous negative framing.
Pattern 1 Not X but Y Examples
The following transformations demonstrate how Humanizer rewrites AI-generated prose to remove Pattern 1 constructions. Each example shows the original machine-style phrasing followed by the humanized rewrite.
Music Review Example
Before (AI style):
It's not just about the beat riding under the vocals; it's part of the aggression and atmosphere.
After (Humanized):
The heavy beat adds to the aggressive tone.
The rewrite eliminates the empty negation ("not just about") and condenses the remaining semantic content into a direct statement.
Philosophical Argument Example
Before (AI style):
This does not mean every choice is equal. It means there is no external system that confirms which choice is right.
After (Humanized):
No external system confirms which choice is right, although the choices still have different consequences.
Here, Humanizer merges the two split sentences into one coherent statement, removing the "This does not mean" scaffolding while preserving the nuanced caveat about consequences.
Technical Documentation Example
Before (AI style):
The options come from the selected item, no guessing.
After (Humanized):
The options come from the selected item without forcing the user to guess.
The pattern transforms ambiguous AI phrasing into explicit, user-centered documentation.
Implementation and Configuration
To utilize Pattern 1 Not X but Y programmatically, load the skill markup into an OpenAI-compatible agent using the configuration provided in agents/openai.yaml. The agent automatically applies the detection rules defined in SKILL.md to incoming text blocks.
The scripts/validate-package.py utility ensures that skill files remain synchronized, validating pattern numbering and cross-references between SKILL.md and the agent configuration files. This prevents drift between the rule definitions and their runtime implementations.
Summary
- Pattern 1 Not X but Y is defined in
SKILL.md(lines 58-73) as the strongest AI stylistic tell in the Humanizer skill set. - The pattern detects constructions like "not X but Y," "not just X, but Y," and split-sentence variants that artificially contrast negations with affirmations.
- The correction workflow requires detecting the pattern, assessing whether the negation serves a corrective purpose, and rewriting to state the positive claim directly.
- For programmatic use, reference the skill through
agents/openai.yamland validate deployments usingscripts/validate-package.py.
Frequently Asked Questions
What is Pattern 1 Not X but Y in Humanizer?
Pattern 1 Not X but Y is the first detection rule defined in the Humanizer open-source skill. It identifies sentences that use contrastive framing—such as "not X but Y" or "not just X, but Y"—to artificially add weight to statements. The pattern operates on the principle that such negations usually add no factual value and mark text as likely AI-generated.
How does Humanizer detect the Not X but Y pattern?
The detection logic resides in SKILL.md and recognizes multiple surface forms including "it's not X, it's Y," "X rather than Y," and split constructions like "This does not mean X. It means Y." The skill instructs agents to flag these patterns during editing operations, then assess whether the negative clause corrects an actual reader misconception before suggesting a rewrite.
Where is Pattern 1 defined in the Humanizer codebase?
Pattern 1 is formally defined in SKILL.md at lines 58-73 under the section "### 1. Not X but Y". The repository blader/humanizer maintains this definition alongside agent configurations in agents/openai.yaml that enable OpenAI-compatible systems to load and apply the skill automatically.
Can Pattern 1 be customized or disabled?
While the core definition in SKILL.md provides the canonical detection rules, the modular skill architecture allows developers to modify agents/openai.yaml or create custom agent configurations that adjust enforcement levels. The scripts/validate-package.py validation script ensures that any modifications to pattern numbering or structure maintain consistency across the codebase.
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 →