How Humanizer Marks the Tells in AI Text: A Technical Deep Dive

Humanizer marks AI writing tells by performing a comprehensive whole-text scan against a ranked catalog of patterns defined in SKILL.md, flagging stylistic violations such as "not-X-but-Y" contrasts and forced triads before any rewriting occurs.

The blader/humanizer repository implements a structured de-AI-ing workflow that begins with detection rather than immediate replacement. When the system processes text, its first operation is to mark the tells, identifying specific linguistic fingerprints that betray machine authorship according to the specifications laid out in the project's core skill prompt.

The "Mark the Tells" Execution Flow

In SKILL.md, the workflow explicitly directs the model to treat detection as a discrete initial phase. This ensures that the model recognizes patterns across the entire document scope before attempting corrections.

Whole-Text Scanning

The prompt instructs the model to read the whole text once rather than evaluating sentences in isolation. This global approach enables the detection of larger-scale tells, such as repetitive one-line closers that appear across multiple sections, which might evade sentence-level analysis.

Pattern Precedence and Catalog Structure

Humanizer applies pattern precedence during the scan, processing the strongest indicators first. The skill prompt organizes detection into numbered sections (§1 through §5) that prioritize the most impactful tells before addressing weaker stylistic issues. This ranked approach ensures deterministic detection regardless of input variation.

Internal Marking Mechanism

Once identified, each tell is recorded conceptually as a comment or checklist item. The prompt does not mandate a specific syntax for these marks, allowing the model to use any internal representation that preserves the detection data for subsequent rewrite steps. This flexibility accommodates different underlying LLM architectures while maintaining consistent output quality.

The Tell Catalog in SKILL.md

The specific patterns targeted during the marking phase reside in the catalog sections A through E of SKILL.md (located around line 35 in the source). These sections enumerate recognizable AI-writing signatures including:

  • Not-X-but-Y contrasts: Phrases like "It's not just about X; it's about Y"
  • One-line closers: Short, punchy final sentences such as "That is the real win"
  • Forced triads: Artificial three-part structures common in AI summaries
  • Dash overuse: Excessive em-dash construction for dramatic pauses
  • Bold labels: Heavy reliance on typographic emphasis for faux-significance

By following this ordered list, the system guarantees consistent detection across different runs and input types.

Implementing the Detection Process

Developers interact with this marking system by loading the skill prompt and passing it to an LLM-compatible API. Below is a practical Python implementation that demonstrates how to invoke the marking workflow:

import requests
import json

# Load the skill prompt (SKILL.md) from the repository

with open("SKILL.md", "r", encoding="utf-8") as f:
    skill_prompt = f.read()

# Prepare the user-provided text containing potential AI tells

user_text = """
It's not just about the beat riding under the vocals; it's part of the aggression and atmosphere.
That is the real win.
"""

# Build the full prompt: skill + user text

payload = {
    "model": "gpt-4o-mini",
    "messages": [
        {"role": "system", "content": skill_prompt},
        {"role": "user", "content": user_text}
    ],
    "max_tokens": 1024
}

# Call the LLM (replace with your endpoint)

resp = requests.post(
    "https://api.openai.com/v1/chat/completions",
    headers={"Authorization": f"Bearer {YOUR_API_KEY}"},
    json=payload,
)
result = resp.json()["choices"][0]["message"]["content"]
print(result)

When executed, the LLM's first internal action executes the "mark the tells" directive. The output typically enumerates detected patterns:


Detected tells:
1. Not-X-but-Y contrast: "It's not just about the beat…"
2. One-line closer: "That is the real win."

Key Files Supporting the Marking System

The following files constitute the architecture that enables reliable tell detection:

File Role
SKILL.md Core skill prompt; defines the "Mark the tells" step and the full tell catalogue (§1-§5, sections A-E).
README.md User documentation explaining invocation methods and describing tell pattern characteristics.
scripts/validate-package.py Helper script ensuring consistency between SKILL.md and package metadata.
agents/openai.yaml Default prompt configuration for OpenAI-compatible agents, pointing them to SKILL.md.

Summary

  • Humanizer initiates all editing workflows with a dedicated detection phase called "mark the tells" to identify AI-writing patterns before rewriting.
  • The process relies on a whole-text scan defined in SKILL.md that evaluates global context rather than isolated sentences.
  • Detection follows strict pattern precedence (§1-§5), addressing the strongest tells first according to the catalog in sections A-E.
  • The system targets specific signatures including not-X-but-Y constructions, one-line closers, forced triads, and typographic overuse.
  • Detection results are stored internally as conceptual marks, enabling the subsequent draft and check phases to produce humanized output.

Frequently Asked Questions

What are AI writing tells?

AI writing tells are recurring linguistic patterns and stylistic tics characteristic of large language model output, such as formulaic contrasts ("not just X but Y"), predictable closing sentences, and mechanical structural devices like forced triads. Humanizer catalogs these in SKILL.md sections A-E to standardize their detection.

How does the pattern precedence work in Humanizer?

According to the SKILL.md source, Humanizer organizes detection into numbered sections §1 through §5 that establish processing priority. The system evaluates the strongest, most disruptive tells first—such as jarring rhetorical constructions—before addressing weaker stylistic variations, ensuring the most critical AI signatures receive immediate attention.

Can I customize the tell catalog in SKILL.md?

Yes, the catalog in sections A-E of SKILL.md is editable. Developers can add new pattern descriptions or modify existing ones, such as adding detection for specific industry jargon or removing certain bold-label patterns. The scripts/validate-package.py utility helps ensure structural consistency when modifying the skill prompt.

What happens after the tells are marked?

After marking, Humanizer proceeds to draft a rewrite that eliminates the flagged patterns while preserving meaning, then performs a check step to verify no new tells were introduced. This three-phase workflow (mark, draft, check) ensures the final output reads naturally without the stylistic artifacts common to AI-generated text.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →