How Humanizer Determines Voice Without a Sample: Genre-Based Heuristics Explained

Humanizer determines voice without a sample by using a prompt-driven heuristic that instructs the underlying language model to infer the appropriate style from the genre of the input text, applying distinct stylistic rules for creative versus factual content.

The blader/humanizer open-source project provides an AI skill that rewrites machine-generated text to sound authentically human. When users invoke the /humanizer command without providing a writing sample, the system does not rely on external algorithms or voice detection models. Instead, it leverages a carefully engineered prompt heuristic defined in the project's SKILL.md file to classify the input and select an appropriate voice.

The Prompt-Driven Heuristic in SKILL.md

The voice determination logic resides entirely within the skill's system prompt. According to the source code in /SKILL.md (lines 44-48), the model receives explicit instructions for handling cases where no writing sample is present.

The Core Rule for Sample-Free Operation

The prompt contains a specific directive that governs the voice selection process: "Without a sample, take the voice from the kind of text." This instruction triggers a genre-based classification system that eliminates the need for additional code or specialized model-side logic to detect writing style. The LLM uses its pre-trained understanding to categorize the input and apply corresponding stylistic constraints.

Genre-Based Voice Classification

When operating without a sample, Humanizer divides input text into two distinct genre categories, each with specific voice parameters defined in the prompt.

Creative and Personal Writing

For blog-style, essay-style, opinion, or personal writing, the heuristic instructs the LLM to preserve the author's subjective elements. The system maintains opinions, uncertainty, humor, and asides. The model may also add natural reactions where the original writer would likely include them, resulting in a conversational, engaging tone that reflects individual personality.

Technical and Factual Prose

For reference, technical, legal, or factual prose, the voice selection mandates a fundamentally different approach. The prompt directs the model to keep the tone neutral and plain, removing subjective flourishes in favor of clarity and objectivity. This ensures that documentation, legal texts, and informational content remain authoritative and unbiased.

Implementation Across the Codebase

Despite the sophisticated output, the implementation requires no conditional code branches or external API calls for voice detection.

SKILL.md as the Single Source of Truth

The entire voice-selection behavior is encoded in /SKILL.md. When the skill processes input, it passes the text to the underlying LLM along with the genre-based instructions. The model classifies the input genre automatically and applies the corresponding voice rules without executing additional logic within the Humanizer codebase itself.

Integration with OpenAI-Compatible Agents

The repository includes an agent configuration at /agents/openai.yaml that demonstrates how external systems leverage this heuristic. The configuration uses a default prompt that relies on the skill's built-in voice selection:

default_prompt: "Use $humanizer to rewrite this text in my voice without changing its facts."

When this agent processes requests without attached writing samples, it automatically triggers the genre-based voice inference defined in SKILL.md.

Practical Usage Examples

To invoke Humanizer and trigger automatic voice detection based on genre, use the slash command without providing a sample:

/humanizer

[Paste AI-generated text here]

To bypass the heuristic and force the system to match a specific voice, provide an explicit writing sample:

/humanizer

Here's a sample of my writing for voice matching:
[Paste 2–3 paragraphs of your own writing]

Now humanize this text:
[Paste AI-generated text here]

The presence or absence of the labeled sample block determines whether the system applies the "without a sample" rules from /SKILL.md.

Summary

  • Prompt-driven architecture: Voice determination is handled entirely within the LLM prompt defined in /SKILL.md, requiring no separate detection algorithms.
  • Genre classification: The system categorizes input as either creative (blog, essay, opinion) or factual (technical, legal, reference).
  • Creative voice rules: Preserves opinions, uncertainty, humor, and conversational asides for personal writing styles.
  • Factual voice rules: Enforces neutral, plain tones for technical and authoritative content.
  • Agent integration: The /agents/openai.yaml file demonstrates seamless integration with OpenAI-compatible systems using the default voice heuristic.
  • User control: Providing 2–3 paragraphs of sample writing overrides the automatic genre detection and enables explicit voice matching.

Frequently Asked Questions

Does Humanizer use a machine learning model to detect voice when no sample is provided?

No. According to the blader/humanizer source code, the tool does not employ a separate ML model or algorithm to analyze or guess voice characteristics. Instead, the LLM follows explicit zero-shot instructions in /SKILL.md to infer voice based solely on the genre classification of the input text.

What types of content trigger the neutral voice style?

The prompt in SKILL.md specifies that reference, technical, legal, or factual prose triggers the neutral voice path. This includes documentation, instructional content, and any text requiring objective, authoritative tone without subjective embellishment.

Can I customize the genre-based voice rules without modifying the codebase?

The genre-based rules are hardcoded in the /SKILL.md system prompt. To customize voice behavior, you would need to fork the repository and modify the prompt instructions at lines 44-48. Alternatively, providing a custom writing sample with your input allows you to bypass the heuristic entirely and enforce your preferred style.

Where is the "without a sample" logic implemented in the Humanizer codebase?

The logic is implemented exclusively in /SKILL.md at lines 44-48. Unlike traditional software that might use if/else conditional logic in Python or JavaScript, Humanizer encodes this behavior entirely within the markdown prompt file sent to the language model.

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 →