# How Humanizer Manages Cross-Language Equivalents for the 'Not-X-but-Y' Pattern

> Discover how Humanizer handles the not-X-but-Y pattern across languages. Learn its universal semantic approach for consistent contrast detection.

- Repository: [Siqi Chen/humanizer](https://github.com/blader/humanizer)
- Tags: how-to-guide
- Published: 2026-09-12

---

**Humanizer treats the "not-X-but-Y" contrast as a universal semantic construct, applying consistent rewrite logic across languages by detecting negative-positive contrasts at the structural level rather than relying on language-specific tokens.**

The `blader/humanizer` repository provides a systematic approach to refining text by eliminating redundant rhetorical patterns. When handling **cross-language equivalents for the "not-X-but-Y" pattern**, the system abstracts the construction to its semantic core—identifying any negative clause followed by a positive correction—enabling consistent processing across multilingual texts without requiring language-specific rule sets.

## Universal Pattern Recognition in SKILL.md

According to the Humanizer source code in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md) (lines 58-62), the "not-X-but-Y" formula is documented as appearing in every language. The skill treats equivalent constructions identically regardless of surface syntax, whether expressed as "not X but Y" in English, *no es X, es Y* in Spanish, or *nicht X, sondern Y* in German.

This abstraction allows the system to operate on the structural pattern—**negative clause + positive clause**—rather than literal string matching.

## The Three-Step Rewrite Logic

Humanizer processes cross-language contrast patterns through a standardized pipeline:

### 1. Detect Negative-Positive Contrasts

The system identifies any construction expressing a negative-positive contrast, regardless of the specific negation particles or conjunctions used in the target language.

### 2. Assess Information Value

Humanizer evaluates whether the negative half merely adds rhetorical weight without conveying new information, or if it actively corrects a genuine misconception.

### 3. Rewrite for Directness

When the negative clause proves redundant, the system strips it and preserves only the essential positive claim. If both halves convey distinct information or correct real beliefs, the contrast is preserved.

## Cross-Language Implementation Examples

The following examples demonstrate how Humanizer applies this logic consistently across languages when invoked via the Humanizer prompt:

**English Processing:**

```text
Input: "It's not just a feature; it's a game-changer."
Output: "It's a game-changer."

```

**Spanish Processing:**

```text
Input: "No es solo una herramienta, es una revolución."
Output: "Es una revolución."

```

**German Processing:**

```text
Input: "Es ist nicht nur ein Update, sondern ein komplett neues System."
Output: "Es ist ein komplett neues System."

```

In each case, Humanizer eliminates the redundant negative qualifier while retaining the core assertion.

## Source Code Architecture

The implementation relies on three key files within the `blader/humanizer` repository:

- **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** – Contains the full definition of the "not X but Y" pattern and the universal language rule specification at lines 58-62.
- **[`README.md`](https://github.com/blader/humanizer/blob/main/README.md)** – Provides installation instructions and usage guidelines for invoking the skill.
- **[`AGENTS.md`](https://github.com/blader/humanizer/blob/main/AGENTS.md)** – Documents agent-specific metadata and the loading mechanisms for supported AI agents.

## Summary

- Humanizer processes **cross-language equivalents for the "not-X-but-Y" pattern** by targeting the underlying semantic structure rather than surface-level syntax.
- The system follows a **three-step pipeline**: detect contrasts, assess information value, and rewrite for clarity.
- Pattern recognition is defined in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), which declares the construction universal across languages.
- Examples demonstrate consistent behavior across English, Spanish, and German text processing.
- The approach eliminates redundant negative clauses while preserving genuine corrective contrasts.

## Frequently Asked Questions

### How does Humanizer handle languages without direct "not-but" translations?

Humanizer analyzes the **semantic structure** of negative-positive contrasts rather than exact token matches. As documented in [`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md), the system recognizes any construction following the *negative clause + positive clause* pattern, regardless of whether the language uses "not/but," "no/sino," or other syntactic variants.

### Does Humanizer preserve the negative clause when it contains useful information?

Yes. According to the rewrite logic, Humanizer **preserves the contrast** when the negative clause corrects a real belief or when both halves convey distinct information. The system only removes the negative portion when it serves merely as rhetorical padding without semantic value.

### Where is the cross-language rule defined in the repository?

The universal language rule is defined in **[`SKILL.md`](https://github.com/blader/humanizer/blob/main/SKILL.md)** at lines 58-62, which states: "The formula appears in every language; treat the equivalent construction the same way."

### Can I use Humanizer with languages not shown in the examples?

Yes. Because the `blader/humanizer` skill abstracts the pattern to its structural core—detecting any negative-positive contrast—it can theoretically process any language that uses this rhetorical construction, without requiring language-specific rule sets or training data.