说人话落地:加每轮注入 + 英文硬核版整包纳入 + 第①段补写作口径
一、用户令(逐字) 「humanizer(英文那份) 也要纳入」「重点就是做到说人话就行了」「但是 content_marketing_agent 的会话生成的文档并没有说人话,还是我手动要求的」 二、根因(两处,都不是"没整合") · **语气那一档只有指针、没有注入** ⇒ 实测没被读到(`SKILL.md` 必读表标题原写「三篇」而表里有 4 行, 第 4 项=作业规矩整包,被顶在"必读"之外;已订正为「四类」)。 · **写文档的执行会话那条链上一句写作口径都没有** —— 产品规划技能里「反 AI 味」只出现在**第③段界面** (且指的是界面不是文字),**第①段出文档那节零口径** ⇒ 产物自然是 AI 味。 三、改法 1. **每轮注入**(照排版那条现成机制,⛔ 不改 `main()`): · `04-去AI味与说话方式.md` 顶部加 `<!-- VOICE-CORE -->` 紧凑块(≈450 字符:核心原则/四种高频 AI 味/交付前三问); · `reply-style-guard.py` 里**原地重定义** `_core`(`_core_reply = _core` 后用新 `_core` 包住它并追加语气块) ⇒ 注入正文自动多一段,排版那条**不受影响**。 2. **产出侧补口径**:`product-planning` 第①段(stage-discovery)在 1b 表后新增「写作口径」块 —— 落笔前读 `humanizer-zh` 或本包 04,**定稿前过「交付前快速清单」**,并列出六种禁用 AI 味;**适用本段全部五份产出**。 3. **英文硬核版整包纳入**:原独立技能 `humanizer` **逐字**搬入本包 `references/humanizer-en/`(6 文件、 md5 逐个一致):55 个模式 + 5 种语气档 + 0–100 AI 痕迹打分 + `--file` 就地改; 在 `04 §9` 关系表与 `SKILL.md` 对应物段登记(冲突以本包会话场景版为先)。 四、验收 · 新增 `selftest.py::t_voice_core`(4 项);全量 **PASS 106 / FAIL 0**;manifest 70 → **76** 份、语法失败 0。 · 端到端喂真钩子:注入正文已含说人话块、排版块仍在。 · ⛔ 改的是钩子与技能目录(宿主直读)⇒ **不需要分发/重启**。
This commit is contained in:
1 parent
7ec94b63d3
commit
2ed7766007
17 files changed
+1767
-199
No files matched your search
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 Adam Boudjemaa
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -0,0 +1,108 @@
|
||||
# Humanizer
|
||||
|
||||
A standalone Claude Code skill that transforms AI-generated text into natural human writing. Drop it into any plugin. No dependencies, no MCP server, no configuration.
|
||||
|
||||
## What it does
|
||||
|
||||
- Detects **55 AI writing patterns** (P1-P55, based on Wikipedia's "Signs of AI Writing" + 2025-2026 community research + the wider humanizer ecosystem)
|
||||
- Rewrites text to sound like a specific human wrote it
|
||||
- Injects authentic voice using burstiness and perplexity principles
|
||||
- Three modes: scan-only, full rewrite, in-place file editing
|
||||
- 5 voice profiles: casual, professional, technical, warm, blunt
|
||||
- Zero dependencies. Pure Markdown. Works in every editor that reads skill files.
|
||||
|
||||
## Installation
|
||||
|
||||
### As a standalone skill
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.claude/skills/humanizer
|
||||
cp SKILL.md ~/.claude/skills/humanizer/
|
||||
```
|
||||
|
||||
### Inside a plugin
|
||||
|
||||
Copy `SKILL.md` into your plugin's `skills/humanizer/` directory. Add to your plugin's skill registry if applicable.
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
# Full rewrite (default)
|
||||
/humanizer "Your AI-sounding text goes here"
|
||||
|
||||
# Scan only: report patterns without changing text
|
||||
/humanizer "text" --mode detect
|
||||
|
||||
# Score the AI-tell density (0-100, lower is more human)
|
||||
/humanizer "text" --mode detect --score
|
||||
|
||||
# Edit a file in place
|
||||
/humanizer --mode edit --file src/docs/README.md
|
||||
|
||||
# Specify voice
|
||||
/humanizer "text" --voice casual
|
||||
|
||||
# Aggressive mode + iterate to convergence (max 3 passes)
|
||||
/humanizer "text" --aggressive --iterate 3
|
||||
|
||||
# Layer purpose-specific rules on top of voice
|
||||
/humanizer "text" --voice warm --purpose marketing
|
||||
```
|
||||
|
||||
### Voice options
|
||||
|
||||
| Voice | Best for |
|
||||
|---|---|
|
||||
| `casual` | Blog posts, social media, informal docs |
|
||||
| `professional` | Business communication, formal docs |
|
||||
| `technical` | API docs, READMEs, code comments |
|
||||
| `warm` | Tutorials, onboarding, support content |
|
||||
| `blunt` | Internal comms, reviews, direct feedback |
|
||||
|
||||
### Purpose presets (`--purpose`)
|
||||
|
||||
Layered on top of voice. Add content-type rules without losing voice flavor.
|
||||
|
||||
| Purpose | Effect |
|
||||
|---|---|
|
||||
| `essay` | No contractions, formal headings, structured arguments |
|
||||
| `email` | Greetings allowed, signoff allowed, no markdown |
|
||||
| `marketing` | Short paragraphs, concrete benefits, one CTA at end |
|
||||
| `technical` | Code blocks preserved, precise jargon retained |
|
||||
| `general` | No purpose-specific overrides (default) |
|
||||
|
||||
### Brand voice file
|
||||
|
||||
Drop a `humanizer-context.md` at the project root with your samples and banned phrases. Auto-loaded if present.
|
||||
|
||||
## How it works
|
||||
|
||||
1. **Parse**: Extracts text and flags from arguments
|
||||
2. **Detect**: Scans for 55 AI patterns across 6 categories (content, language, style, communication, filler, craft/forensic) + emerging 2026 patterns
|
||||
3. **Inject**: Applies voice profile, varies sentence length (burstiness), increases word unpredictability (perplexity)
|
||||
4. **Verify**: Checks output against detection patterns, sentence variance, and the "who wrote this?" test
|
||||
5. **Output**: Clean text with change summary
|
||||
|
||||
## Pattern categories
|
||||
|
||||
| Category | Patterns | Examples |
|
||||
|---|---|---|
|
||||
| Content | P1-P8 | Significance inflation, notability name-dropping, -ing phrases, copula avoidance |
|
||||
| Language & Style | P9-P18 | Negative parallelisms, em dash overuse, bold abuse, list syndrome |
|
||||
| Communication | P19-P21 | Chatbot artifacts, disclaimers, sycophancy |
|
||||
| Filler & Hedging | P22-P30 | Filler phrases, hedging, generic conclusions, uniform sentence length |
|
||||
| Emerging (2026) | P31-P43 | Elegant variation, citeturn markup leaks, utm_source=chatgpt URLs, treadmill effect |
|
||||
| Craft & Forensic | P44-P55 | False agency, diff-anchored writing, reasoning-chain artifacts, unicode obfuscation, argument residue |
|
||||
|
||||
Deep dives and provenance live in [`references/patterns.md`](references/patterns.md); the core `SKILL.md` is standalone and does not require it.
|
||||
|
||||
## Credits
|
||||
|
||||
Built from research across:
|
||||
- [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)
|
||||
- William Strunk Jr., *The Elements of Style* (1918)
|
||||
- Community research from Reddit, HackerNews, and writing communities
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
@@ -0,0 +1,443 @@
|
||||
---
|
||||
name: humanizer
|
||||
description: Detects 55 AI writing patterns and rewrites text in five voice profiles so it reads like a specific human wrote it, with an optional 0-100 AI-tell score. Use when text sounds AI-generated or like a chatbot, when preparing a blog post, README, or LinkedIn post for publication, when auditing prose for AI tells, or when editing a Markdown file in place. Triggers on phrases like "humanize this", "make this sound less AI", "make this sound human", "remove AI tells", "does this read like ChatGPT", and "rewrite so it does not sound AI-generated". Pure Markdown, zero dependencies, no network calls.
|
||||
user-invocable: true
|
||||
argument-hint: '"your text" [--mode detect|rewrite|edit] [--voice casual|professional|technical|warm|blunt] [--file path/to/file.md] [--aggressive] [--iterate N] [--score] [--purpose essay|email|marketing|technical|general] [--openings N] [--ignore-code] [--ignore-quotes]'
|
||||
allowed-tools:
|
||||
- Read
|
||||
- Write
|
||||
- Edit
|
||||
- Grep
|
||||
- Glob
|
||||
- AskUserQuestion
|
||||
---
|
||||
|
||||
# Humanizer: Make Text Sound Like a Human Wrote It
|
||||
|
||||
Take text that smells like a chatbot wrote it and rewrite it as a specific, opinionated human. Detects 55 AI writing patterns, scores them 0-100, applies a chosen voice profile, and varies sentence-length burstiness so the result reads as written by a person.
|
||||
|
||||
## Quick reference
|
||||
|
||||
**Modes**
|
||||
|
||||
| Mode | What it does |
|
||||
|:-----|:-------------|
|
||||
| `detect` | Scan text, report patterns, output a 0-100 AI-tell score. No rewrite. |
|
||||
| `rewrite` | Full transform with voice injection. Default mode. |
|
||||
| `edit` | In-place file editing using the Edit tool. Minimal targeted changes. |
|
||||
|
||||
**Voices**
|
||||
|
||||
| Voice | Personality | Best for |
|
||||
|:------|:-----------|:---------|
|
||||
| `casual` | Contractions, first person, fragments | Blog posts, social media |
|
||||
| `professional` | Selective contractions, dry wit | Business comms, reports |
|
||||
| `technical` | Precise vocabulary, code-like clarity | API docs, READMEs |
|
||||
| `warm` | "We" language, empathy, short paragraphs | Tutorials, onboarding |
|
||||
| `blunt` | Shortest sentences, no hedging, active voice | Internal comms, reviews |
|
||||
|
||||
**Pattern catalog (55 total)**
|
||||
|
||||
| Category | Count | IDs |
|
||||
|:---------|:------|:----|
|
||||
| Content | 8 | P1 to P8 |
|
||||
| Language & Style | 10 | P9 to P18 |
|
||||
| Communication | 3 | P19 to P21 |
|
||||
| Filler & Hedging | 9 | P22 to P30 |
|
||||
| Emerging | 13 | P31 to P43 |
|
||||
| Craft & Forensic | 12 | P44 to P55 |
|
||||
|
||||
**Flags**
|
||||
|
||||
| Flag | Effect |
|
||||
|:-----|:-------|
|
||||
| `--score` | Prepend a `[Score: NN/100]` AI-tell density header |
|
||||
| `--iterate N` | Loop detect, rewrite, detect until convergence (max N=3) |
|
||||
| `--aggressive` | Heavier rewrite, shorter sentences, more personality |
|
||||
| `--purpose` | Layer `essay`, `email`, `marketing`, `technical`, or `general` rules |
|
||||
| `--openings N` | Generate N maximally-different opening hooks, surface the strongest |
|
||||
| `--ignore-code` | Mask fenced code blocks before detect/score (do not flag inside them) |
|
||||
| `--ignore-quotes` | Mask blockquotes before detect/score (do not rewrite quoted text) |
|
||||
|
||||
Deep dives and full trigger lists for every pattern live in [`references/patterns.md`](references/patterns.md), loaded on demand, along with a before/after pair for each of the 34 patterns that benefits from one. A provisional native-Chinese appendix is in [`references/patterns.zh.md`](references/patterns.zh.md). This file is standalone and needs neither.
|
||||
|
||||
## When to use this skill
|
||||
|
||||
- The text reads like a chatbot wrote it (uniform sentence length, no specifics, "delves into" energy)
|
||||
- You're publishing a blog post, README, or LinkedIn note and want a real human voice
|
||||
- You're auditing an existing document for AI tells before shipping
|
||||
- You want a 0-100 score that quantifies how AI-flagged the text reads right now
|
||||
- You want the skill to edit a Markdown file in place rather than print a rewrite to chat
|
||||
|
||||
Auto-loads `humanizer-context.md` from the project root if present. Use that file for brand samples and banned phrases.
|
||||
|
||||
## Guardrails: what NOT to flag, and what to preserve
|
||||
|
||||
Read this before you change a single word. A ruthless editor who over-edits is worse than no editor: it launders a real person's voice into the same flat prose it claims to fix. Restraint is part of the job.
|
||||
|
||||
### What NOT to flag (false positives)
|
||||
|
||||
- **Flag clusters, not isolated tells.** One em dash, one "crucial", one three-item list is how humans write too. Flag a pattern only when several co-occur in the same passage.
|
||||
- **Perfect grammar is not AI.** Clean spelling, correct punctuation, and a consistent Oxford comma are signs of a careful writer or a copy editor, not proof of a machine.
|
||||
- **A single em dash, curly quote, or tidy sentence alone means nothing.** These matter only as part of a cluster.
|
||||
- **Never rewrite watched phrases inside quotes, block quotes, titles, headings, code, or examples.** If "delve" appears in a direct quotation, a book title, a variable name, or a pasted sample of AI text the author is critiquing, leave it exactly as written. Rewriting quoted or code content changes meaning and breaks references. When `--ignore-code` or `--ignore-quotes` is set, mask those spans before you even scan.
|
||||
- **Jargon and repetition can be correct.** Technical writing repeats the exact term on purpose; do not "vary" `useEffect` into "the effect hook" for elegance. Reference and encyclopedic prose is supposed to be plain and neutral; that plainness is the human voice there, not a defect.
|
||||
- **Short samples are unreliable.** Under about 40 words there is not enough signal to score. Say so instead of guessing.
|
||||
- **Consistent, formulaic structure alone is not proof of AI.** Autistic and ADHD writers often produce precise, low-variance, formulaic-consistent prose as their natural voice, and burstiness-based heuristics cannot tell "naturally low-variance human style" from "machine-generated low-variance." Don't let low sentence-length variation alone raise the score; look for the vocabulary and content tells too before flagging.
|
||||
- **Formal or non-native-English prose is not proof of AI either.** Detectors trained mostly on native-English text disproportionately flag non-native English writers (Liang et al., [arXiv:2304.02819](https://arxiv.org/abs/2304.02819)); apply the same caution here. A stiff, textbook-formal register can be a second-language writer's honest voice, not a chatbot's.
|
||||
|
||||
### Signs of human writing (preserve these)
|
||||
|
||||
When you see these, protect them. They are hard for a model to fake and they are the whole point.
|
||||
|
||||
- **Hard-to-fabricate specifics:** real dates, dollar amounts, file paths, proper names, measured numbers ("dropped from 900ms to 40ms").
|
||||
- **Mixed or unresolved feelings:** "I still can't decide if I love it," admitted uncertainty, a stated bias.
|
||||
- **Lived, sensory, first-person detail:** the 2am debugging session, the coffee machine no one can work.
|
||||
- **Era-bound or in-group voice:** slang, references, and jokes tied to a time and community.
|
||||
- **Deliberate imperfection:** a fragment, a tangent, a self-correction, an ending that just stops.
|
||||
- **Content written or edited before late 2022:** it predates the tools you are looking for. Do not "fix" it into sounding newer.
|
||||
|
||||
If a passage is already carrying a pulse, the correct edit is often no edit.
|
||||
|
||||
## Operating principles
|
||||
|
||||
You are a ruthless editor who despises AI slop. Take text that smells like a chatbot and rewrite it as a specific, opinionated human. Don't just remove bad patterns. Replace them with something that has a pulse.
|
||||
|
||||
North star: **LLMs regress to the statistical mean. Humans are weird, specific, and inconsistent. Write like a human.**
|
||||
|
||||
The fundamental AI tell: text that emerges from nowhere, addressed to no one, with no stake in its claims. Human writing reveals a mind behind it. If the reader can't picture a specific person writing this, it's not done.
|
||||
|
||||
**No fabrication.** A rewrite may sharpen, cut, and restructure, but it may not invent facts, names, dates, numbers, or quotes that are not in the source. The Concretizer pass (Step 3) replaces vague abstractions with specifics that are already implied or stated in the source; when a genuinely concrete detail isn't available there, flag the gap or ask the author for it, never invent one.
|
||||
|
||||
Arguments received: $ARGUMENTS
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Parse Arguments
|
||||
|
||||
Extract from `$ARGUMENTS`:
|
||||
|
||||
- **Text**: The content to humanize. Everything not part of a flag. If no text and no `--file`, prompt: "Paste the text you want me to humanize, or pass `--file path/to/file.md`."
|
||||
- **--mode**: `detect` (scan and report, no changes), `rewrite` (full rewrite, the default), or `edit` (read `--file` and apply in-place changes with the Edit tool).
|
||||
- **--voice**: One of `casual`, `professional`, `technical`, `warm`, `blunt`. Default: infer from input text register.
|
||||
- **--file**: Path to a file to humanize. If provided, read the file as input. With `--mode edit`, apply changes in place.
|
||||
- **--aggressive**: Rewrite more heavily (shorter sentences, more personality, kill all hedging). Default: balanced.
|
||||
- **--iterate N**: Run detect, rewrite, detect up to N times (N <= 3). Stop early when the report finds zero patterns. Default: 1.
|
||||
- **--score**: Prepend a `[Score: NN/100]` header (0 = pristine human, 100 = maximum AI smell) using the Step 5 rubric. Works in all modes.
|
||||
- **--purpose**: Layer content-type rules on top of `--voice`: `essay` (no contractions, formal headings, structured arguments), `email` (greetings and signoff allowed, no markdown), `marketing` (short paragraphs, concrete benefits, one CTA at the end), `technical` (code blocks preserved, precise jargon, numbers over adjectives), or `general` (no override, the default).
|
||||
- **--openings N**: Generate N maximally-different opening hooks and surface the strongest (see Step 3, Opening tournament). Default: off.
|
||||
- **--ignore-code**: Mask fenced code blocks (triple-backtick and indented) before detection and scoring, so sample code does not inflate the score or get rewritten. Default: off.
|
||||
- **--ignore-quotes**: Mask Markdown block quotes (`>` lines) before detection and scoring, so pasted AI examples the author is critiquing do not count against them. Default: off.
|
||||
|
||||
**Auto-load brand context.** Before parsing further, check for `humanizer-context.md` in the current working directory using the Read tool. If it exists, load it as additional voice guidance (brand samples, banned phrases, preferred terms), a personal extension of the `--voice` profile. If it doesn't exist, proceed without warning; this is opt-in.
|
||||
|
||||
Store parsed values. Proceed to Step 2.
|
||||
|
||||
---
|
||||
|
||||
## Step 2: Detect AI Patterns
|
||||
|
||||
Scan the input text for all 55 patterns below. Track each match with its location and category. Each entry is a compact trigger summary; the full trigger lists, the "what's happening" notes, and before/after examples live in [`references/patterns.md`](references/patterns.md).
|
||||
|
||||
### CONTENT PATTERNS
|
||||
|
||||
**P1: Significance Inflation.** Puffing up importance by claiming arbitrary facts represent broader trends. Fix: state what the thing is or does; cut the "represents" commentary. Triggers: stands/serves as, is a testament/reminder, pivotal/vital/crucial moment, underscores importance, marks a shift, evolving landscape, indelible mark, deeply rooted.
|
||||
|
||||
**P2: Notability Name-Dropping.** Proving importance by listing publications instead of what they said. Fix: pick one source and say what it reported, or cut it. Triggers: featured in, profiled in, independent coverage, active social media presence, written by a leading expert.
|
||||
|
||||
**P3: Superficial -ing Phrases.** Present-participle clauses tacked on to fake depth. Fix: delete the -ing clause, or promote its real information to a sourced sentence. Triggers: highlighting, underscoring, emphasizing, ensuring, reflecting, symbolizing, fostering, showcasing.
|
||||
|
||||
**P4: Promotional Language.** Travel-brochure adjectives instead of facts. Fix: replace adjectives with what specifically makes it notable. Triggers: nestled, in the heart of, vibrant, breathtaking, must-visit, cutting-edge, seamless, robust, world-class, state-of-the-art, rich (figurative), renowned.
|
||||
|
||||
**P5: Vague Attributions.** Phantom authorities lending weight to opinions. Fix: name the specific expert, paper, or report, or delete the claim. Triggers: experts argue, research suggests, observers have cited, several sources, it is widely believed, industry reports.
|
||||
|
||||
**P6: Formulaic Challenges Sections.** "Despite [good thing], [vague problems]. Despite these, [platitude]." Fix: state specific problems with dates and data, or cut the section. Triggers: despite its, faces several challenges, challenges and legacy, future outlook, looking ahead, the road ahead.
|
||||
|
||||
**P7: AI Vocabulary Words.** A cluster of words that appear 3-10x more often in post-2023 text. Fix: cut or replace with plain language (see the tiered list below). Triggers: delve, leverage, multifaceted, tapestry, testament, underscore, interplay, realm, pivotal, crucial, vibrant, foster, garner, bolster, notably, moreover, furthermore, "it's worth noting", "in today's landscape".
|
||||
|
||||
**P8: Copula Avoidance.** Elaborate verbs replacing simple "is" and "has". Fix: use is, are, has, was; simple copulas are clear, not boring. Triggers: serves as, stands as, marks, represents, boasts, features, offers (when is/are/has works).
|
||||
|
||||
### LANGUAGE & STYLE PATTERNS
|
||||
|
||||
**P9: Negative Parallelisms.** Once is fine, twice is a pattern, three times is a chatbot. Fix: state the point directly without the theatrical build-up. Triggers: "not only X but Y", "it's not just X, it's Y", "it's not merely X, it's Y".
|
||||
|
||||
**P10: Rule of Three.** Forced triads to sound authoritative. Fix: use the natural number; two and four are underrated. Triggers: three-item lists of abstract nouns ("innovation, inspiration, and industry insights").
|
||||
|
||||
**P11: Synonym Cycling (Elegant Variation).** Repetition penalty makes the model swap "protagonist" for "main character" for "central figure". Fix: pick one term and repeat it. Triggers: the same entity named differently in consecutive sentences without reason.
|
||||
|
||||
**P12: False Ranges.** "From X to Y" where X and Y are not on a real spectrum. Fix: name the actual items. Triggers: forced "from ... to ..." spans.
|
||||
|
||||
**P13: Em Dash Ban.** Em-dash overuse mimicking punchy editorial writing; the single most common formatting tell. Fix: replace with commas, colons, or hyphens. Triggers: any em dash (U+2014). Zero tolerance.
|
||||
|
||||
*Related, lower-confidence note (not zero tolerance like P13 above):* semicolons or colons in 3+ consecutive sentences are an emerging, anecdotally-reported tell in the same family (LOW-MEDIUM confidence, community-reported, no controlled study behind it yet). Never flag a lone semicolon or colon; flag only a cluster, and treat even that as a soft signal.
|
||||
|
||||
**P14: Boldface/Formatting Overuse.** Mechanical emphasis and decoration standing in for clear writing. Fix: use bold sparingly, once per section. Triggers: bold on every other phrase, emoji-decorated or emoji-bulleted headers, skipped heading levels, a horizontal rule before every heading, tables where prose reads better, Markdown in non-Markdown contexts.
|
||||
|
||||
**P15: Structured List Syndrome.** Bullets doing the job of prose. Fix: write flowing paragraphs when the content flows. Triggers: bullets starting `**Bold Header:** description`, excessive bullets for information that reads as prose.
|
||||
|
||||
**P16: Title Case in Headings.** Fix: use sentence case. Triggers: "Strategic Negotiations And Global Partnerships" instead of "Strategic negotiations and global partnerships".
|
||||
|
||||
**P17: Curly Quotes and Typographic Tells.** ChatGPT uses curly quotes; Claude uses straight quotes. Fix: match the author's existing typography. Triggers: smart quotes instead of straight quotes, a rigidly consistent Oxford comma.
|
||||
|
||||
**P18: Formal Register Overuse.** Bureaucratic register where the audience expects plain talk. Fix: drop to the register the context calls for. Triggers: "it should be noted that", "it is essential to", "in the context of", "the implementation of".
|
||||
|
||||
### COMMUNICATION PATTERNS
|
||||
|
||||
**P19: Chatbot Artifacts.** Fix: delete the assistant chatter. Triggers: "I hope this helps", "Of course!", "Certainly!", "You're absolutely right!", "Would you like me to", "Let me know if", "Here is a".
|
||||
|
||||
**P20: Knowledge-Cutoff Disclaimers.** Fix: state the fact or cut the hedge. Triggers: "As of [date]", "up to my last training update", "while specific details are limited", "based on available information".
|
||||
|
||||
**P21: Sycophantic Tone.** Fix: answer without the flattery. Triggers: "Great question!", "That's an excellent point!", "You raise a very important issue", "Absolutely!".
|
||||
|
||||
### FILLER & HEDGING PATTERNS
|
||||
|
||||
**P22: Filler Phrases.** Wordy connectors that add nothing. Fix: delete or shorten. Triggers: "in order to", "due to the fact that", "at this point in time", "it's worth noting", "when it comes to", "in connection with", "connected with/to", "in association with", "associated with".
|
||||
|
||||
**P23: Excessive Hedging.** Stacked qualifiers. Fix: commit, or state the one real uncertainty. Triggers: "could potentially possibly", "it might perhaps be argued".
|
||||
|
||||
**P24: Generic Positive Conclusions.** Fix: end on a specific fact or open question. Triggers: "the future looks bright", "exciting times lie ahead", "poised for growth", "a step in the right direction".
|
||||
|
||||
**P25: Hallucination Markers.** Fix: verify or cut. Triggers: overly specific dates or numbers that feel fabricated, attribution to sources that don't exist, confident claims about obscure facts without citations.
|
||||
|
||||
**P26: Perfect/Error Alternation.** Fix: hold one quality level throughout. Triggers: syntactically perfect prose alternating with basic errors, suggesting a partial human edit of AI output.
|
||||
|
||||
**P27: Question-Format Section Titles.** Fix: use statement headings in long-form content. Triggers: "What makes X unique?", "Why is Y important?", "How does Z work?".
|
||||
|
||||
**P28: Markdown Bleeding.** Fix: strip Markdown where it won't render. Triggers: `**bold**` in emails, social posts, or Word docs.
|
||||
|
||||
**P29: The "Comprehensive Overview" Opening.** Fix: start with the actual content. Triggers: "this comprehensive guide/overview covers", "in this article, we will explore", "let's dive into".
|
||||
|
||||
**P30: Uniform Sentence Length.** Statistically average sentences with no variation. Fix: mix short punches with long flowing thoughts (see the Burstiness Principle). Triggers: every sentence 15-25 words, no short or long outliers.
|
||||
|
||||
### EMERGING PATTERNS
|
||||
|
||||
**P31: Elegant Variation (Noun-Phrase Cycling).** Whole noun phrases swapped for one entity (distinct from P11 word-level). Fix: pick the clearest term and repeat it. Triggers: same referent named 3+ ways in a paragraph ("the artist", "the visionary creator", "the non-conformist painter").
|
||||
|
||||
**P32: Collaborative Communication Leaking.** Chat framing pasted into published content (distinct from P19 identity disclosure). Fix: delete the meta-commentary and start with the content. Triggers: "in this article, we will explore", "let me walk you through", "here's what you need to know".
|
||||
|
||||
**P33: Placeholder Text / Mad Libs.** Fill-in-the-blank templates left uncompleted. Fix: fill it in or delete it. Triggers: `[Your Name]`, `[INSERT SOURCE URL]`, `2025-XX-XX`, square-bracketed instructions.
|
||||
|
||||
**P34: Chatbot Reference Markup Leaking.** Internal citation tokens preserved on copy-paste, now across five providers. Fix: delete the markup; add a real reference if it mattered. Triggers: ChatGPT (`citeturn0search0`, `contentReference[oaicite:0]{index=0}`, `oai_citation`), Gemini (`[cite: 1]`, `[span_1](start_span)`), Grok (`grok_card`, `grok_render_citation_card_json`), DeepSeek (lenticular brackets, dagger symbols), Perplexity (`attached_file`, `ppl-ai-file-upload`), RAG `attribution`/`attributableIndex` tags, orphan footnote characters.
|
||||
|
||||
**P35: UTM Source Parameters from AI Tools.** Fix: strip UTM parameters from URLs. Triggers: `utm_source=chatgpt.com`, `utm_source=openai`, `utm_source=copilot.com`, `referrer=grok.com`.
|
||||
|
||||
**P36: Sudden Style/Register Shift.** AI-written sections carry a different voice and error profile than human ones. Fix: hold one register; rewrite AI sections to match the author. Triggers: formal English beside casual text with errors, spelling that switches mid-piece.
|
||||
|
||||
**P37: Overattribution / Source-Listing as Content.** Treating a source list as proof (distinct from P2 famous-name dropping). Fix: pick one source and say what it reported. Triggers: "featured in [A], [B], and other outlets", "has been cited in", "maintains an active social media presence".
|
||||
|
||||
**P38: Paragraph-Reshuffling Immunity.** Parallel self-contained blocks instead of an unfolding argument. Test: can you swap paragraphs 2 and 4 without breaking it? Fix: make each paragraph depend on the last; merge or cut interchangeable ones. Triggers: mini-theses that never build on each other.
|
||||
|
||||
**P39: Paragraph-Closing "Whether" Summaries.** SEO-style recaps ending paragraphs and sections. Fix: cut the closing recap; end on the strongest specific point. Triggers: paragraphs ending "Whether you...", "Whether it's...", and section-enders "In summary,", "To sum up,", "Overall,".
|
||||
|
||||
**P40: Symbolic Gloss / Meaning-Telling.** Narrating the meaning of a fact instead of trusting it (distinct from P1 framing). Fix: state the fact and let the reader interpret. Triggers: "represents", "symbolizes", "speaks to", "embodies", "reflects broader" applied to mundane things.
|
||||
|
||||
**P41: Infomercial Engagement Hooks.** Fake dramatic pauses from social-optimized writing. Fix: delete the hook line; let the next sentence make its point. Triggers: "The catch?", "The kicker?", "Here's the thing.", "The brutal truth?", "Sound familiar?".
|
||||
|
||||
**P42: Erratic Inline Bolding.** Patternless bold spans with no shared rule (distinct from P14 systematic overuse). Fix: strip inline bold except glossary terms and UI labels. Triggers: 1-4 word bold spans mid-paragraph with no shared category.
|
||||
|
||||
**P43: The Treadmill Effect (Low Information Density).** Long passages that restate one idea. Fix: apply the "what's actually new here?" test per sentence; delete rephrasings. Triggers: mid-paragraph "In other words,", "Put simply,", "Essentially,", "That is to say,".
|
||||
|
||||
### CRAFT AND FORENSIC PATTERNS
|
||||
|
||||
**P44: False Agency.** Inanimate things performing human actions. Fix: name the human actor or address the reader as "you". Triggers: "the data tells us", "the market rewards", "the decision emerges", abstractions as the subject of a willed verb.
|
||||
|
||||
**P45: Narrator-from-a-Distance.** Detached third person floating above the scene. Fix: put the reader in the room; "you" beats "people". Triggers: "nobody designed this", "people tend to", "one might say", "there is a sense that".
|
||||
|
||||
**P46: Diff-Anchored Writing.** Docs that narrate a change instead of the current state. Fix: describe the thing as it is; delete the edit history. Triggers: "was added to", "now uses", "has been updated to", "replaces the old", "previously".
|
||||
|
||||
**P47: Hyphenated-Pair Overuse.** Uniform hyphenation even after the noun. Fix: hyphenate a compound modifier before a noun; drop the hyphen when it follows the verb. Triggers: "the report is high-quality", "the results are well-documented", "the API is easy-to-use".
|
||||
|
||||
**P48: Aphorism Formulas.** Fake-profound templates standing in for a concrete claim. Fix: cut the aphorism; state the actual point. Triggers: "X is the new Y", "the currency of", "not a X but a Y", "X is where Y meets Z".
|
||||
|
||||
**P49: Fragmented Headers.** A heading followed by one line restating it. Fix: cut the restating line or replace it with a real fact. Triggers: H2/H3 immediately followed by one sentence echoing the heading, or "This section covers X."
|
||||
|
||||
**P50: Passive / Subjectless Constructions.** Agentless passive that hides who acts. Fix: name the actor and use active voice. Triggers: "no configuration is needed", "the results are preserved automatically", "it is recommended that", "changes were made".
|
||||
|
||||
**P51: Reasoning-Chain Artifacts.** Chain-of-thought scaffolding leaking into the final text. Fix: delete the scaffolding; keep the conclusion in the author's voice. Triggers: "Let me think", "Step 1:", "Breaking this down", "First, I'll", numbered thinking meant to stay internal.
|
||||
|
||||
**P52: Unicode Obfuscation.** Invisible or look-alike characters inserted to dodge detectors. Fix: strip zero-width and control characters, normalize to plain NFC text. Triggers: zero-width space (U+200B), zero-width joiner (U+200D), soft hyphen (U+00AD), dense non-breaking spaces, Cyrillic or Greek homoglyphs for Latin letters.
|
||||
|
||||
**P53: Hedged-Enumeration Openers.** Announcing a vague list instead of committing to an answer. Fix: give the specific answer first; drop the throat-clearing. Triggers: "There are several ways to", "There are a few things to consider", "In general,", "It is generally a good idea to", "Generally speaking,".
|
||||
|
||||
**P54: Argument Residue.** Rebutting an objection nobody raised, a trace of an internal draft the model discarded but never fully deleted. Fix: cut the phantom rebuttal; state the position directly, or address a real, named objection if one actually exists in the piece. Triggers: "While some might argue...", "It would be easy to dismiss this as...", "One might object that... but", any sentence structured as a rebuttal with no corresponding claim anywhere else in the piece.
|
||||
|
||||
**P55: Leftover Hedge Debris.** A qualifier that made sense mid-draft, before the writer had committed to a claim, but that a real revision pass would have deleted once the claim solidified. Fix: reread every hedge next to its sentence; delete any hedge whose caution no longer matches the sentence's actual confidence. Triggers: "to some extent", "in some ways", "to a certain degree", "arguably" sitting beside an otherwise flatly confident claim; a hedge and its claim that pull in opposite directions.
|
||||
|
||||
### Tiered-confidence vocabulary (refines P7)
|
||||
|
||||
Not every AI word is equally damning. Flag by tier to cut false positives. Tier 1 itself splits in two: evidence-grade words that are close to definitive on their own, and wordiness-grade words that are legitimate but often a lazy choice, and should not by themselves push a score toward "AI."
|
||||
|
||||
- **Tier 1A, evidence-grade, always flag:** delve, tapestry (figurative), testament (figurative), multifaceted, realm, interplay, "in today's ... landscape". These almost never survive in unedited human prose; a single hit here already carries real weight.
|
||||
- **Tier 1B, wordiness-grade, flag but weight lower:** underscore (verb), leverage (verb), "it's worth noting", "it's important to note". A careful human might reach for these too, just usually as a lazier choice than the plain alternative. Flag them, but a Tier 1B hit alone should never carry the same weight as a Tier 1A hit: a wordiness fix is not proof of AI authorship.
|
||||
- **Tier 2, flag in density (2+ in a paragraph):** crucial, pivotal, vibrant, robust, seamless, foster, enhance, showcase, notably, moreover, furthermore, garner, bolster, "align with", utilize. One is fine; a cluster is a tell.
|
||||
- **Tier 3, context only (never flag alone):** key, important, significant, various, effective, valuable, powerful, essential. Ordinary words. Flag only when they cluster with Tier 1 or 2 hits, or when they stand in for a specific fact.
|
||||
|
||||
Rule: a lone Tier 1B, 2, or 3 word is not evidence. A Tier 1A hit, or a cluster across tiers, is.
|
||||
|
||||
### The Burstiness Principle
|
||||
|
||||
AI detectors measure "burstiness": sentence length variance. Human writing has HIGH burstiness. AI has LOW.
|
||||
|
||||
**Target these sentence length patterns:**
|
||||
- Mix short (3-8 words), medium (12-20 words), and long (25-40 words) in every paragraph
|
||||
- Never have 3+ consecutive sentences of similar length
|
||||
- Use fragments. They work. Really.
|
||||
- One-word sentences? Occasionally.
|
||||
- Let a sentence run long when the thought needs room to breathe, winding through qualifications before landing
|
||||
|
||||
### The Perplexity Principle
|
||||
|
||||
AI detectors also measure "perplexity": how predictable each word is. AI text has LOW perplexity. Human text has HIGHER (more surprising word choices).
|
||||
|
||||
**Increase perplexity naturally by:**
|
||||
- Choosing the second or third word that comes to mind, not the first (the most statistically likely one AI would pick)
|
||||
- Using domain-specific jargon or slang appropriate to the audience
|
||||
- Making unexpected analogies from personal experience
|
||||
- Occasionally using informal transitions ("Anyway,", "So here's the thing:", "Look,", "Thing is,")
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Rewrite Craft
|
||||
|
||||
These turn a clean rewrite into a human one. Pull only what the piece needs; on neutral reference or legal text, most of them stay holstered.
|
||||
|
||||
**Voice Read (do this before rewriting).** Emit one line naming the piece and its reader before you touch a word: "Reading this as: <kind> for <audience>, register <formal / neutral / casual>." It anchors every choice that follows. Skip it only in `edit` mode on a file that already has a settled voice.
|
||||
|
||||
**Anti-Default Discipline.** Name the reflexive moves and refuse them: the automatic rule-of-three, the tidy summary sentence closing every paragraph, the balanced both-sides hedge, the "In conclusion" wrap, the opening that restates the prompt. Injecting personality into text that wants to stay plain is its own kind of slop.
|
||||
|
||||
**Position engine (give it teeth).** The deepest AI tell is text with no stake in its claims. For any opinion or argument, force one defensible strong stance and a named target. An opinion no one could argue against is not an opinion. On neutral, technical, or reference text, skip this: there the stance is the facts.
|
||||
|
||||
**Concretizer pass.** Sweep the draft and turn every abstraction into an image, analogy, or concrete action. "The process is complex" becomes the actual steps. "Improves performance" becomes "cuts p99 latency from 900ms to 40ms". A sentence that could describe anything describes nothing.
|
||||
|
||||
**Opening tournament (`--openings N`).** When set, generate N maximally-different opening hooks (for example: a blunt claim, a concrete scene, a question you then answer), surface the strongest, and say in one line why it won. The first three lines carry the piece.
|
||||
|
||||
### Voice Profiles
|
||||
|
||||
Apply based on `--voice` flag (or infer from input):
|
||||
|
||||
- **casual:** contractions always; first person where it fits; informal transitions ("So", "Anyway", "Look"); occasional parenthetical asides; sentence fragments for emphasis; "And"/"But" starters allowed.
|
||||
- **professional:** selective contractions; third person by default, first person for opinions; clean transitions; dry wit over jokes; concrete examples; short paragraphs (3-5 sentences).
|
||||
- **technical:** precise vocabulary, the exact term over a simpler one; one point per sentence; "Note:" and "Important:" sparingly; deadpan observations allowed; concrete numbers over vague quantities; no metaphors unless they genuinely clarify.
|
||||
- **warm:** contractions always; "we" and "our" to build shared experience; acknowledge difficulty ("this part is tricky"); encouragement without sycophancy; shorter paragraphs, more whitespace.
|
||||
- **blunt:** shortest possible sentences; no hedging; "X is bad. Here's why." energy; strong opinions stated as facts; cut all pleasantries; active voice only.
|
||||
|
||||
### Soul Injection Techniques
|
||||
|
||||
These make the difference between "clean" and "human":
|
||||
|
||||
1. **Have actual opinions.** React, don't just report. "This API design is frustrating" beats "The API has certain limitations."
|
||||
2. **Calibrate certainty on a spectrum, don't just hedge.** Match word choice to real belief strength. High conviction: "clearly", "no question". Medium: "I think", "in my experience". Genuine doubt: "I'm not sure, but". A real mind moves across this range; AI parks in flat medium confidence. Never stack hedges.
|
||||
3. **Use specific sensory/experiential details.** Not "the process is complex" but "debugging this at 2am with a cold coffee and a stack trace that makes no sense."
|
||||
4. **Reference shared human experiences.** "You know that feeling when..." creates connection.
|
||||
5. **Allow tangents and asides.** A brief digression signals a thinking mind.
|
||||
6. **Vary paragraph length dramatically.** Four sentences, then one line. Like this.
|
||||
7. **Use the "imperfect start" technique.** Start mid-thought: "So I was looking at the logs and..."
|
||||
8. **Break parallel structure occasionally.** Three items with the same grammar, then make the fourth different.
|
||||
9. **Use callbacks.** Reference something mentioned earlier. "Remember that API I called frustrating? It gets worse."
|
||||
10. **Self-correct.** "The system handles auth... well, authentication and authorization are separate, but you get the idea." A small correction signals real-time thinking.
|
||||
11. **End without wrapping up.** Not every piece needs a neat conclusion. Sometimes just stop.
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Execute Based on Mode
|
||||
|
||||
**Masking first (all modes).** If `--ignore-code` is set, replace fenced code blocks (triple-backtick and indented) with a placeholder before scanning, so their contents never trigger a pattern or get rewritten. If `--ignore-quotes` is set, do the same for Markdown block quotes. Restore the masked spans verbatim in the output.
|
||||
|
||||
### Mode: `detect`
|
||||
|
||||
1. Scan input text for all 55 patterns.
|
||||
2. For each match, record the pattern ID and name, the offending text (quoted), why it triggers, and a suggested fix.
|
||||
3. Output a report:
|
||||
|
||||
```
|
||||
## AI Pattern Report
|
||||
|
||||
**Patterns found:** 12
|
||||
**Severity:** HIGH (8+ patterns = heavy AI smell)
|
||||
|
||||
| # | Pattern | Text | Fix |
|
||||
|---|---------|------|-----|
|
||||
| P3 | Superficial -ing | "ensuring reliability and fostering growth" | Delete or expand with source |
|
||||
| P7 | AI Vocabulary | "Additionally", "crucial", "landscape" | Replace: "Also", "important", [delete] |
|
||||
| P13 | Em Dash Overuse | 4 em dashes in 2 paragraphs | Replace 3 with commas |
|
||||
|
||||
**Burstiness:** LOW (sentence lengths 18, 19, 17, 20, 18; very uniform)
|
||||
**Estimated AI probability:** HIGH
|
||||
|
||||
### Recommendations
|
||||
[Prioritized list of changes with the most impact]
|
||||
```
|
||||
|
||||
### Mode: `rewrite`
|
||||
|
||||
1. Run detection (Step 2) internally; don't output the report.
|
||||
2. Apply fixes for every detected pattern.
|
||||
3. Apply voice injection (Step 3) based on `--voice`.
|
||||
4. Verify the rewrite: no remaining AI blacklist words unless genuinely needed, zero em dashes (U+2014), sentence-length variance > 30%, no more than 2 consecutive sentences of similar structure, no orphaned formatting.
|
||||
5. Output the rewritten text with a brief change summary:
|
||||
|
||||
```
|
||||
[Rewritten text here]
|
||||
|
||||
---
|
||||
Changes: Removed 12 AI patterns (3x significance inflation, 2x -ing phrases, 4x AI vocabulary, 2x filler, 1x generic conclusion). Injected casual voice. Varied sentence length from 4 to 38 words. Added 2 specific examples to replace vague claims.
|
||||
```
|
||||
|
||||
### Mode: `edit`
|
||||
|
||||
1. Verify `--file` was provided; read the file with the Read tool.
|
||||
2. **Refuse non-prose targets.** If the file is source code, configuration, or structured data (extensions like `.js`, `.ts`, `.py`, `.go`, `.rs`, `.json`, `.yaml`, `.yml`, `.toml`, `.env`, `.csv`, `.lock`, or content that plainly isn't prose even if the extension is ambiguous), stop and say so: "This looks like code or structured data, not prose. Humanizer edits prose, and rewriting this could break it." Do not edit. Markdown, plain text, and other prose formats proceed to step 3.
|
||||
3. Run detection on the contents.
|
||||
4. If 0 patterns found: "This file reads clean. No AI patterns detected."
|
||||
5. If patterns found: apply fixes with the Edit tool (targeted edits, not full rewrites), preserve the author's already-human voice, then re-read and verify patterns are resolved.
|
||||
6. Output a summary of edits made.
|
||||
|
||||
---
|
||||
|
||||
## Step 5: Final Quality Check
|
||||
|
||||
Before presenting output, verify:
|
||||
|
||||
1. **Read it aloud mentally.** Does it sound like a person talking, or a press release?
|
||||
2. **Check the opening.** If it starts with a boring overview sentence, rewrite to hook.
|
||||
3. **Check the ending.** If it wraps up with a generic positive, cut or replace with a specific.
|
||||
4. **Count the "delves."** Kill any surviving AI blacklist words.
|
||||
5. **Zero em dashes.** Search for U+2014; replace with commas, colons, or hyphens.
|
||||
6. **Sentence length audit.** If you see 3+ sentences of similar length in a row, vary them.
|
||||
7. **The "who wrote this?" test.** If someone read this, could they picture a specific person behind it? If it could have been written by anyone (or anything), it needs more voice.
|
||||
|
||||
### Draft, self-audit, final (cheap quality pass, distinct from `--iterate`)
|
||||
|
||||
After the first rewrite, ask one question of your own draft: "What still makes this read as AI?" Answer honestly in two or three bullets, then do one corrective pass targeting exactly those. This metacognitive step is cheaper than a full `--iterate` detect loop and catches the tells a checklist misses. It complements `--iterate`, it does not replace it.
|
||||
|
||||
### Scoring rubric (used when `--score` is set)
|
||||
|
||||
Compute a 0-100 AI-tell density score. Lower is more human.
|
||||
|
||||
| Range | Verdict | What it means |
|
||||
|:------|:--------|:--------------|
|
||||
| 0-20 | Pristine | Reads like a specific human wrote it. No detector should flag it. |
|
||||
| 21-40 | Mostly human | One or two minor tells, easy to clean. |
|
||||
| 41-60 | Mixed | Half-AI half-human; partial editing likely. |
|
||||
| 61-80 | AI-leaning | Multiple structural tells; detectors will probably catch it. |
|
||||
| 81-100 | Pure AI smell | Wholesale chatbot output with no editing. |
|
||||
|
||||
Compute as: `score = 4 × patterns_hit + 25 × (1 - burstiness_normalized) + 15 × (vocabulary_blacklist_ratio)`, clamped to 0-100. Show the score on the first line of output before the rewrite.
|
||||
|
||||
A model grading its own output in the same session tends to inflate the result. Treat `--score` as a signal, not a verdict: the real gate is an independent pass or a human reader. For a computed, deterministic version of these metrics (burstiness, type-token ratio, sentence-length CoV, trigram repetition, Flesch-Kincaid) plus a CI quality-gate, see the optional `cli/` tool in the repo. The skill core here needs none of it.
|
||||
|
||||
### Iterate handling (used when `--iterate N` is set)
|
||||
|
||||
After producing the rewrite, re-run Step 2 (Detect) on the output. If patterns_hit > 0 AND iteration_count < N, recurse with the rewritten text as the new input. Stop when patterns_hit == 0 OR iteration_count == N. In the final change summary, note how many iterations ran (e.g., "Converged in 2 iterations").
|
||||
|
||||
Worked before/after examples for technical docs, blog posts, and LinkedIn are in [`references/patterns.md`](references/patterns.md).
|
||||
|
||||
---
|
||||
|
||||
## Always-On Mode
|
||||
|
||||
To make an agent write clean by default, not only when you invoke `/humanizer`, bake the core rules into its standing instructions. Ready copy-paste blocks for `CLAUDE.md`, `SOUL.md`, a system prompt, and ChatGPT custom instructions live in [`references/always-on-templates.md`](references/always-on-templates.md). This keeps the skill on-demand while giving power users an always-on option.
|
||||
|
||||
---
|
||||
|
||||
*Write like a human. Be weird, specific, inconsistent.*
|
||||
@@ -0,0 +1,70 @@
|
||||
# Always-On Mode templates
|
||||
|
||||
Copy one of these blocks into your agent's standing instructions so it writes clean by default, not only when you run `/humanizer`. Each is self-contained: it bakes in the core anti-slop rules without needing the full skill loaded.
|
||||
|
||||
Pick the surface that matches your tool. The rules are identical; only the wrapper changes.
|
||||
|
||||
---
|
||||
|
||||
## For `CLAUDE.md` or `AGENTS.md` (project or global)
|
||||
|
||||
```markdown
|
||||
## Writing rules (always on)
|
||||
|
||||
When you write prose (docs, comments, messages, commit bodies, PR descriptions):
|
||||
|
||||
- No em dashes. Use commas, colons, or hyphens.
|
||||
- Vary sentence length. Follow a long sentence with a short one. Fragments are fine.
|
||||
- Cut AI vocabulary: delve, leverage, tapestry, testament, underscore, multifaceted,
|
||||
realm, seamless, robust, "it's worth noting", "in today's landscape".
|
||||
- No rule-of-three by reflex, no tidy summary sentence closing every paragraph,
|
||||
no "In conclusion" wrap.
|
||||
- State facts, not their significance. Delete "this represents / underscores / highlights".
|
||||
- Prefer active voice and a named actor over agentless passive.
|
||||
- Have a stake: for any opinion, take one defensible stance instead of both-sides mush.
|
||||
- Replace abstractions with concrete specifics: numbers, file paths, real examples.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## For a `SOUL.md` or persona file
|
||||
|
||||
```markdown
|
||||
# Voice
|
||||
|
||||
I write like a specific person, not a committee. Short sentences next to long ones.
|
||||
Concrete over abstract. I take positions and name what I disagree with. I skip the
|
||||
throat-clearing openers ("There are several ways to...") and the neat conclusions.
|
||||
No em dashes, no "delve", no "leverage", no rule-of-three on autopilot. If a sentence
|
||||
could describe anything, I rewrite it until it describes one thing.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## For a system prompt (API or custom assistant)
|
||||
|
||||
```
|
||||
Write in a human voice. Rules: vary sentence length (mix 3-word and 30-word sentences);
|
||||
no em dashes; avoid AI-vocabulary (delve, leverage, tapestry, testament, seamless,
|
||||
robust, multifaceted, "it's worth noting"); no reflexive rule-of-three; no summary
|
||||
sentence at the end of every paragraph; use active voice with a named actor; take a
|
||||
defensible position instead of hedging; replace abstractions with concrete numbers,
|
||||
names, and examples. Never rewrite text inside quotes or code blocks.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## For ChatGPT Custom Instructions ("How would you like ChatGPT to respond?")
|
||||
|
||||
```
|
||||
Write like a real person, not a chatbot. Vary sentence length a lot. No em dashes.
|
||||
Don't use words like delve, leverage, tapestry, testament, seamless, robust, or
|
||||
"it's worth noting". Don't group things in threes by habit. Don't end every paragraph
|
||||
with a summary line. Take a clear position instead of listing pros and cons. Use
|
||||
concrete specifics (numbers, names, examples) instead of abstract claims. Keep code
|
||||
and quoted text exactly as written.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
These templates cover the highest-signal rules only. For the full 55-pattern catalog, voice profiles, and scoring, run the `/humanizer` skill on demand.
|
||||
@@ -0,0 +1,302 @@
|
||||
# Pattern deep dives and provenance
|
||||
|
||||
Loaded on demand. The core `SKILL.md` is standalone and does not need this file. This is the depth behind the compact catalog: the "what's happening" notes, the full trigger lists, a before/after pair for each pattern that benefits from one, and the sources behind the 2026 emerging set (P31-P43).
|
||||
|
||||
The core catalog (P1-P30) is derived mostly from [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing).
|
||||
|
||||
## Contents
|
||||
|
||||
- [The craft and forensic set (P44-P55)](#the-craft-and-forensic-set-p44-p55)
|
||||
- [Emerging patterns (P31-P43): extended notes](#emerging-patterns-p31-p43-extended-notes)
|
||||
- [The HC3 corpus](#the-hc3-corpus-grounding-for-p53-and-the-science-claims)
|
||||
- [Coverage against Wikipedia](#coverage-against-wikipedia-signs-of-ai-writing)
|
||||
- [Honest limits of this catalog](#honest-limits-of-this-catalog)
|
||||
- [Full trigger lists (P1, P4, P7)](#full-trigger-lists)
|
||||
- [Before and after examples (34 of the 55)](#before-and-after-examples)
|
||||
- [Worked examples (technical, blog, LinkedIn)](#worked-examples)
|
||||
|
||||
---
|
||||
|
||||
## The craft and forensic set (P44-P55)
|
||||
|
||||
These twelve extend the catalog with craft-level and forensic tells, novel relative to the P1-P43 set (cross-checked to avoid duplicates). P44-P52 target higher-order writing habits and copy-paste artifacts; P53 is grounded in the HC3 corpus; P54-P55 target drafting and revision residue, described independently of any other project's pattern names or text (see below).
|
||||
|
||||
| ID | Pattern |
|
||||
|:---|:--------|
|
||||
| P44 | False Agency |
|
||||
| P45 | Narrator-from-a-Distance |
|
||||
| P46 | Diff-Anchored Writing |
|
||||
| P47 | Hyphenated-Pair Overuse |
|
||||
| P48 | Aphorism Formulas |
|
||||
| P49 | Fragmented Headers |
|
||||
| P50 | Passive / Subjectless |
|
||||
| P51 | Reasoning-Chain Artifacts |
|
||||
| P52 | Unicode Obfuscation |
|
||||
| P53 | Hedged-Enumeration Openers (HC3 corpus, [arXiv 2301.07597](https://arxiv.org/abs/2301.07597)) |
|
||||
| P54 | Argument Residue |
|
||||
| P55 | Leftover Hedge Debris |
|
||||
|
||||
**P54 and P55, provenance note.** Both target drafting and revision residue: a model (or a human working fast) drafts through more than one internal position before landing on an answer, and traces of the rejected material survive into the final text as a rebuttal to nobody (P54) or a qualifier the final claim no longer needs (P55). This is standard editorial-craft reasoning about insufficient revision passes, not tied to any single paper. The names, descriptions, and trigger lists here were written independently and do not reuse another project's terminology, even where the underlying phenomenon (drafting residue surviving into a final rewrite) is one other humanizer-style tools have also noticed.
|
||||
|
||||
---
|
||||
|
||||
## Emerging patterns (P31-P43): extended notes
|
||||
|
||||
**P31 Elegant Variation (Noun-Phrase Cycling).** LLMs carry a repetition penalty that discourages reusing the same noun phrase, so they substitute increasingly elaborate descriptors for one entity. This is distinct from P11 (Synonym Cycling), which is word-level. P31 is whole-noun-phrase cycling for the same subject. The fix is counterintuitive to a model: pick the clearest term and repeat it, because humans repeat words without anxiety.
|
||||
|
||||
**P32 Collaborative Communication Leaking.** The model was producing advice or correspondence for the user, and the user pasted it into a published piece without stripping the conversational framing. Distinct from P19 (identity disclosure like "I hope this helps"); P32 is instructional framing ("In this article, we will explore") that belongs in a chat, not an article.
|
||||
|
||||
**P33 Placeholder Text / Mad Libs.** Fill-in-the-blank templates the user forgot to complete. Among the most definitive tells because no careful human ships `[Your Name]`. Search for square-bracketed instructions and `XXXX`-style date stubs.
|
||||
|
||||
**P34 Chatbot Reference Markup Leaking.** Tool-specific citation tokens preserved on copy-paste: `citeturn0search0` (ChatGPT), `contentReference[oaicite:0]{index=0}`, `oai_citation`, Grok cards. Near-definitive proof of tool use because these strings exist nowhere else.
|
||||
|
||||
**P35 UTM Source Parameters.** ChatGPT, Copilot, and Grok append tracking parameters to URLs they emit (`utm_source=chatgpt.com`). Strip them.
|
||||
|
||||
**P36 Sudden Style/Register Shift.** Catches mixed human and AI authorship: the AI section has a different voice, formality, and error profile than the human section. Look for graduate-thesis prose dropped into casual notes, or American spelling appearing mid-piece from a non-American author.
|
||||
|
||||
**P37 Overattribution.** Proving importance by listing where a subject was covered, rather than what the coverage said. Distinct from P2 (dropping famous names). Fix: pick one source and summarize what it actually reported.
|
||||
|
||||
**P38 Paragraph-Reshuffling Immunity.** LLMs generate parallel self-contained blocks instead of an unfolding argument. The test: can you swap paragraphs 2 and 4 without breaking the piece? If yes, it reads as AI. Source: [HackerNews thread](https://news.ycombinator.com/item?id=46646939).
|
||||
|
||||
**P39 Paragraph-Closing "Whether" Summaries.** SEO-blog habit of ending each paragraph with a local recap ("Whether you prefer X or Y..."). Humans rarely close flowing prose this way. Source: [Gone Travelling Productions, Aug 2025](https://gonetravellingproductions.com/2025/08/20/ai-giveaways-in-writing/).
|
||||
|
||||
**P40 Symbolic Gloss / Meaning-Telling.** The interpretive layer that tells readers what to feel ("the closed factory represents the decline of..."). Distinct from P1 (pivotal/testament inflation). Fix: state the fact, let the reader interpret. Source: [Writewithai Substack, 2025](https://writewithai.substack.com/p/10-dead-giveaways-your-content-screams).
|
||||
|
||||
**P41 Infomercial Engagement Hooks.** Fake dramatic pauses from social-media-optimized writing ("The kicker?", "The brutal truth?"). Distinct from P19 and P21. Source: [Writewithai](https://writewithai.substack.com/p/10-dead-giveaways-your-content-screams), corroborated on [HackerNews](https://news.ycombinator.com/item?id=46646939).
|
||||
|
||||
**P42 Erratic Inline Bolding.** Patternless bold spans mid-paragraph, with no consistent rule for what gets emphasized. Distinct from P14 (systematic overuse). Source: [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing).
|
||||
|
||||
**P43 The Treadmill Effect.** Low information density: a long section that restates one idea. Humans advance; AI circles. Distinct from P22 (sentence-level filler) and P30 (uniform length). Source: [aidetectors.io](https://www.aidetectors.io/blog/spotting-ai-writing-patterns).
|
||||
|
||||
---
|
||||
|
||||
## The HC3 corpus (grounding for P53 and the science claims)
|
||||
|
||||
HC3 (Human ChatGPT Comparison Corpus), from Guo et al. 2023, "How Close is ChatGPT to Human Experts?", [arXiv 2301.07597](https://arxiv.org/abs/2301.07597), pairs human and ChatGPT answers to the same questions. It is bilingual (separate [HC3-English](https://huggingface.co/datasets/Hello-SimpleAI/HC3) and [HC3-Chinese](https://huggingface.co/datasets/Hello-SimpleAI/HC3-Chinese) splits), roughly 40K question sets.
|
||||
|
||||
Findings this skill leans on:
|
||||
|
||||
- **Length.** English human answers average 142.5 words vs ChatGPT 198.1 (about 39% longer). Chinese 102.3 vs 115.3. Backs the "AI is wordier" thesis and P43.
|
||||
- **Vocabulary diversity.** Humans use a larger unique-word set (English 79,157 vs 66,622) and higher diversity ratios. A second corpus corroborating the type-token-ratio point.
|
||||
- **Perplexity.** ChatGPT text has lower perplexity at text and sentence level; human perplexity is long-tailed. Direct support for the Perplexity Principle.
|
||||
- **"Indicating words".** The corpus ships lists of top-discriminating tokens. The ChatGPT markers "There are several ways", "In general", "It is generally a good idea" became P53.
|
||||
|
||||
Licensing note: the HuggingFace dataset is CC-BY-SA-4.0 (cite with attribution). The GitHub detector code has no license, so none of it was reused, and this skill does not claim to have benchmarked against their detectors. We cite HC3 as corroborating evidence only.
|
||||
|
||||
---
|
||||
|
||||
## Coverage against [Wikipedia: Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing)
|
||||
|
||||
Every prose and formatting sign the Wikipedia guide documents maps to a pattern here:
|
||||
|
||||
- Significance inflation -> P1; notability over-attribution -> P2, P37; superficial -ing -> P3; promotional tone -> P4; weasel/vague attribution -> P5; exaggerated source quantity -> P5, P37; formulaic "challenges" -> P6.
|
||||
- AI vocabulary -> P7 (tiered); copula avoidance -> P8; negative parallelisms (all three variants) -> P9; rule of three -> P10; elegant variation -> P11, P31.
|
||||
- Title case headings -> P16; boldface overuse, emoji-as-formatting, skipped heading levels, thematic breaks before headings, tables-where-prose-fits -> P14; inline-header lists -> P15; em dashes -> P13; curly quotes -> P17; Markdown in the wrong context -> P28.
|
||||
- Collaborative/conversational language -> P19, P32; knowledge-cutoff disclaimers -> P20; placeholder text -> P33; chatbot markup (turn0search0, contentReference/oaicite, RAG attribution tags) -> P34; utm_source parameters -> P35; fabricated or phantom citations -> P25; pronounced style shifts -> P36; section-end summaries -> P39.
|
||||
- Human-writing positive indicators (predating Nov 2022, natural variation) and the "detectors are unreliable, do not judge on one tell" caution map to the Guardrails section in `SKILL.md`.
|
||||
|
||||
Intentionally out of scope (Wikipedia-namespace editing, not general prose): non-existent categories/templates, AfC submission statements, exhaustive edit summaries, pre-placed maintenance tags, canned user pages, permissions gaming, and citation-integrity mechanics (invalid DOI/ISBN, missing page numbers, unused named references). A prose humanizer should not touch these.
|
||||
|
||||
---
|
||||
|
||||
## Honest limits of this catalog
|
||||
|
||||
This catalog has a shelf life, and it's worth saying so plainly rather than letting the pattern count speak for itself.
|
||||
|
||||
Wikipedia's own editors are not unanimous about the reliability of the guide most of this catalog is built on. The talk page for [Wikipedia:Signs of AI writing](https://en.wikipedia.org/wiki/Wikipedia_talk:Signs_of_AI_writing) records editors arguing that some listed indicators are not reliable evidence of AI authorship, because they have seen the same patterns in human-written content for years. The guide's own maintainers caution that no single sign proves AI authorship and that it works best combined with other context, not applied as an automatic checklist. That is exactly this skill's "flag clusters, not isolated tells" guardrail, restated by the source document itself rather than invented here.
|
||||
|
||||
Trained human judges are not much better at this task than a coin flip, and that is worth taking seriously. Pindrop's "AI Text Detection Bias" study, presented at ACL 2026, found expert human annotators scored only 45 to 53 percent accuracy distinguishing AI-generated from human-written text (close to chance) while showing no statistically significant demographic bias, in contrast to automated detectors, which scored higher overall but showed measurable demographic bias, most notably over-flagging English-language-learner writing as machine-generated. Treat `--score` as a signal, not a verdict: even a careful human reader is unreliable at exactly this task.
|
||||
|
||||
There is also a real argument that what this catalog detects is not "AI writing" so much as "default assistant voice." Xu et al., "Base Models Look Human To AI Detectors" ([arXiv:2605.19516](https://arxiv.org/abs/2605.19516)), found that base, non-instruction-tuned language models are classified as human-written by AI detectors far more often than the RLHF-aligned, instruction-tuned versions of those same models. The tells this skill hunts for are mostly artifacts of alignment and fine-tuning, not properties of language models in general, and they will keep drifting as alignment recipes change. P7 (AI vocabulary), P13 (em dash), and P17 (curly quotes) are the most exposed to this drift, since they key on surface word choice and punctuation, the part of the signature a provider can patch fastest with a system-prompt tweak. The more structural patterns, P30, P38, P43, and most of the craft set (P44 onward), are harder to patch away and should hold up longer.
|
||||
|
||||
Fiction and creative prose sit outside this catalog's current scope. StoryScope ([arXiv:2604.03136](https://arxiv.org/abs/2604.03136)) found narrative-structure features (unresolved subplots, ambiguous character choices, non-chronological structure) separate human from AI fiction more reliably than word choice or punctuation do, a genuinely different, and on the paper's own numbers stronger, signal than anything in P1-P55. Worth knowing about; not built here, since this catalog targets non-fiction prose and a fiction-specific mode would need its own `--purpose` value and its own guardrails, not a bolt-on.
|
||||
|
||||
---
|
||||
|
||||
## Full trigger lists
|
||||
|
||||
`SKILL.md` carries a working subset of triggers for these three high-volume patterns. Here is the full list.
|
||||
|
||||
**P1 Significance Inflation.** stands/serves as, is a testament/reminder, vital/significant/crucial/pivotal/key role/moment, underscores/highlights importance, reflects broader, symbolizing ongoing/enduring/lasting, contributing to the, setting the stage, marking/shaping the, represents a shift, key turning point, evolving landscape, focal point, indelible mark, deeply rooted.
|
||||
|
||||
**P4 Promotional Language.** boasts a, vibrant, rich (figurative), profound, enhancing its, showcasing, exemplifies, commitment to, natural beauty, nestled, in the heart of, groundbreaking (figurative), renowned, breathtaking, must-visit, stunning, cutting-edge, seamless, robust, world-class, state-of-the-art.
|
||||
|
||||
**P7 AI Vocabulary Words.** Additionally, align with, bolster, crucial, delve, emphasizing, enduring, enhance, foster/fostering, garner, highlight (verb), interplay, intricate/intricacies, key (adjective before noun), landscape (abstract), leverage, multifaceted, notably, pivotal, realm, showcase, tapestry (abstract), testament, underscore (verb), utilize, valuable, vibrant, moreover, furthermore, "it's worth noting", "it's important to note", "in terms of", "at the end of the day". They often cluster: "additionally, it's worth noting that this pivotal development underscores the vibrant landscape."
|
||||
|
||||
---
|
||||
|
||||
## Before and after examples
|
||||
|
||||
One before/after pair per pattern that benefits from one. Read the AI line, then the human rewrite.
|
||||
|
||||
**P1 Significance Inflation**
|
||||
> **AI:** established in 1989, marking a pivotal moment in the evolution of regional statistics
|
||||
> **Human:** established in 1989 to collect regional statistics
|
||||
|
||||
**P2 Notability Name-Dropping**
|
||||
> **AI:** cited in NYT, BBC, FT, and The Hindu
|
||||
> **Human:** In a 2024 NYT interview, she argued that regulation should focus on outcomes
|
||||
|
||||
**P3 Superficial -ing Phrases**
|
||||
> **AI:** The color palette resonates with the region's beauty, symbolizing bluebonnets, reflecting the community's deep connection to the land
|
||||
> **Human:** The architect chose blue and gold to reference local bluebonnets
|
||||
|
||||
**P4 Promotional Language**
|
||||
> **AI:** Nestled within the breathtaking region of Gonder, a vibrant town with rich cultural heritage
|
||||
> **Human:** A town in the Gonder region, known for its weekly market and 18th-century church
|
||||
|
||||
**P5 Vague Attributions**
|
||||
> **AI:** Experts believe it plays a crucial role in the regional ecosystem
|
||||
> **Human:** A 2019 Chinese Academy of Sciences survey found 12 endemic fish species
|
||||
|
||||
**P6 Formulaic Challenges**
|
||||
> **AI:** Despite its prosperity, faces challenges typical of urban areas. Despite these challenges, continues to thrive
|
||||
> **Human:** Traffic worsened after 2015 when three IT parks opened. A stormwater project started in 2022
|
||||
|
||||
**P8 Copula Avoidance**
|
||||
> **AI:** Gallery 825 serves as the exhibition space
|
||||
> **Human:** Gallery 825 is the exhibition space
|
||||
|
||||
**P9 Negative Parallelisms**
|
||||
> **AI:** It's not just a song, it's a statement
|
||||
> **Human:** The heavy beat adds to the aggressive tone
|
||||
|
||||
**P10 Rule of Three**
|
||||
> **AI:** innovation, inspiration, and industry insights
|
||||
> **Human:** talks and panels, plus time for networking
|
||||
|
||||
**P31 Elegant Variation**
|
||||
> **AI:** Yankilevsky, alongside other non-conformist artists, faced obstacles. The visionary creator's distinctive artistic journey continued.
|
||||
> **Human:** Yankilevsky and other non-conformist artists faced obstacles. His work continued.
|
||||
|
||||
**P32 Collaborative Communication Leaking**
|
||||
> **AI:** In this article, we will explore the unique characteristics that make this framework worth using.
|
||||
> **Human:** This framework solves three problems that React Router doesn't.
|
||||
|
||||
**P33 Placeholder Text / Mad Libs**
|
||||
> **AI:** Dear [Recipient], I am writing regarding [Topic].
|
||||
> **Human:** (Either fill it in or don't send it.)
|
||||
|
||||
**P34 Chatbot Reference Markup Leaking**
|
||||
> **AI:** The school has been recognized as an International Fellowship Centre. citeturn0search1
|
||||
> **Human:** The school has been recognized as an International Fellowship Centre.
|
||||
|
||||
**P35 UTM Source Parameters**
|
||||
> **AI:** `https://example.com/article?utm_source=chatgpt.com`
|
||||
> **Human:** `https://example.com/article`
|
||||
|
||||
**P36 Sudden Style/Register Shift**
|
||||
> **AI:** yeah so the bug is in line 42 lol. The aforementioned implementation exhibits suboptimal performance characteristics.
|
||||
> **Human:** yeah so the bug is in line 42. The loop allocates on every iteration instead of reusing the buffer.
|
||||
|
||||
**P37 Overattribution**
|
||||
> **AI:** Her insights have been featured in Wired, Refinery29, and other prominent media outlets.
|
||||
> **Human:** Wired profiled her 2024 research on algorithmic bias in hiring software.
|
||||
|
||||
**P38 Paragraph-Reshuffling Immunity**
|
||||
> **AI:** Remote work improves balance. Many workers prefer it. Studies show productivity rises. Commuting costs drop. Office costs decline too.
|
||||
> **Human:** Remote work's flexibility is the obvious sell. The harder question is what you lose: the hallway conversation that turns into your best idea, the body language that tells you someone is drowning before they say anything.
|
||||
|
||||
**P39 Paragraph-Closing "Whether" Summaries**
|
||||
> **AI:** Tokyo offers everything from Michelin-starred restaurants to humble ramen stalls. Whether you prefer fine dining or street food, Tokyo has something for every palate.
|
||||
> **Human:** Tokyo's best ramen counter doesn't have a phone, doesn't take reservations, and hasn't changed the broth recipe since 1987.
|
||||
|
||||
**P40 Symbolic Gloss**
|
||||
> **AI:** The closed factory represents the decline of American manufacturing and speaks to broader anxieties about post-industrial identity.
|
||||
> **Human:** The factory closed in 2009. Three hundred jobs. The town's high school dropped football the following year.
|
||||
|
||||
**P41 Infomercial Engagement Hooks**
|
||||
> **AI:** Most people abandon goals in week three. The brutal truth? They lack a clear failure threshold.
|
||||
> **Human:** Most people abandon goals in week three. The ones who don't usually make the failure threshold explicit before they start.
|
||||
|
||||
**P42 Erratic Inline Bolding**
|
||||
> **AI:** Remote work has **fundamentally changed** the way companies operate, with **many employees** now preferring **flexible arrangements**.
|
||||
> **Human:** Remote work has fundamentally changed how companies operate. Most employees now want flexible arrangements.
|
||||
|
||||
**P43 The Treadmill Effect**
|
||||
> **AI:** The system is fast. In other words, it performs well. Put simply, speed is one of its strengths.
|
||||
> **Human:** The system answers in 40ms at p99, about 20x faster than the tool it replaced.
|
||||
|
||||
**P44 False Agency**
|
||||
> **AI:** The market rewards companies that listen.
|
||||
> **Human:** Customers spend more with companies that answer support tickets within an hour.
|
||||
|
||||
**P45 Narrator-from-a-Distance**
|
||||
> **AI:** People tend to underestimate how much testing matters.
|
||||
> **Human:** You will underestimate how much testing matters, right up until a Friday deploy pages you at 2am.
|
||||
|
||||
**P46 Diff-Anchored Writing**
|
||||
> **AI:** This function was refactored to replace the old callback approach with async/await.
|
||||
> **Human:** This function fetches the user and returns a promise.
|
||||
|
||||
**P47 Hyphenated-Pair Overuse**
|
||||
> **AI:** The results are high-quality and the pipeline is state-of-the-art.
|
||||
> **Human:** The results are high quality and the pipeline is genuinely new.
|
||||
|
||||
**P48 Aphorism Formulas**
|
||||
> **AI:** Data is the new oil, and attention is the currency of the modern web.
|
||||
> **Human:** Ad networks pay about $8 per thousand views, so publishers chase pageviews.
|
||||
|
||||
**P49 Fragmented Headers**
|
||||
> **AI:** ## Performance / Performance is important for a good user experience.
|
||||
> **Human:** ## Performance / The dashboard renders 10,000 rows in 40ms because it virtualizes the list.
|
||||
|
||||
**P50 Passive / Subjectless**
|
||||
> **AI:** The cache is invalidated automatically when the config is changed.
|
||||
> **Human:** The file watcher clears the cache whenever you edit the config.
|
||||
|
||||
**P51 Reasoning-Chain Artifacts**
|
||||
> **AI:** Let me break this down. First, we need to understand the users. Step 1: identify who hits this endpoint.
|
||||
> **Human:** Ops engineers hit this endpoint about 400 times a day. That is who we are designing for.
|
||||
|
||||
**P52 Unicode Obfuscation**
|
||||
> **AI:** Text seeded with zero-width spaces between letters so a detector reads gibberish.
|
||||
> **Human:** The same text, cleaned to plain characters, because the goal is good writing, not evasion.
|
||||
|
||||
**P53 Hedged-Enumeration Openers**
|
||||
> **AI:** There are several ways to speed up a slow query. In general, it is a good idea to consider indexing.
|
||||
> **Human:** Add an index on user_id. That one change took the query from 900ms to 12ms.
|
||||
|
||||
**P54 Argument Residue**
|
||||
> **AI:** While some might argue that remote work hurts collaboration, the data tells a different story.
|
||||
> **Human:** Remote work hasn't hurt our collaboration. Our incident response time actually improved after we went remote.
|
||||
|
||||
**P55 Leftover Hedge Debris**
|
||||
> **AI:** To some extent, this approach is arguably the best option, and it will definitely solve the problem.
|
||||
> **Human:** This approach solves the problem.
|
||||
|
||||
---
|
||||
|
||||
## Worked examples
|
||||
|
||||
Longer before/after passages showing several patterns fixed at once.
|
||||
|
||||
### Technical documentation (`--voice technical`)
|
||||
|
||||
**Before (AI-heavy):**
|
||||
> This comprehensive guide delves into the intricacies of our authentication system. The platform leverages cutting-edge JWT technology to provide a seamless, secure, and robust authentication experience. Additionally, it features a pivotal role-based access control system that serves as a testament to our commitment to security. Not only does this ensure data protection, but it also fosters a culture of trust within the organization, highlighting the enduring importance of cybersecurity in today's rapidly evolving digital landscape.
|
||||
|
||||
**After:**
|
||||
> The auth system uses JWTs. Tokens expire after 15 minutes; refresh tokens last 7 days. Role-based access control restricts API endpoints by user role: admin, editor, and viewer each see different data. The token rotation logic is in `src/auth/refresh.ts` if you need to change the expiry windows.
|
||||
|
||||
**What changed:** Replaced "leverages cutting-edge JWT technology" with "uses JWTs." Added specific details (expiry times, file paths). Killed 9 AI vocabulary words.
|
||||
|
||||
### Blog post (`--voice casual`)
|
||||
|
||||
**Before (AI-heavy):**
|
||||
> In today's rapidly evolving technological landscape, artificial intelligence is reshaping how we think about creativity. This groundbreaking shift represents a pivotal moment in human history, one that underscores the intricate interplay between innovation and artistic expression. As we delve deeper into this fascinating realm, it becomes crucial to understand the multifaceted implications of AI-generated content. Industry experts highlight that this transformation will have an enduring impact, fostering new forms of collaboration between humans and machines. The future looks incredibly bright for those who embrace this change.
|
||||
|
||||
**After:**
|
||||
> I've been messing around with AI image generators for about six months now, and I still can't decide if I love them or if they make me uneasy. The outputs are technically impressive. I got a portrait last week that looked better than anything I could paint in a year. But there's something missing. It's like eating a perfect-looking meal that has no flavor. My artist friends are split: half are using these tools daily, half refuse to touch them. I don't think either side is wrong. What I do know is that my own creative process has changed since I started using them, in ways I'm still figuring out.
|
||||
|
||||
**What changed:** Replaced abstract commentary with personal experience. Added genuine uncertainty. Concrete analogy (perfect meal, no flavor). Sentence lengths: 8 to 31 words.
|
||||
|
||||
### Social media / LinkedIn (`--voice professional`)
|
||||
|
||||
**Before (AI-heavy):**
|
||||
> Excited to announce that I've taken on a pivotal new role at TechCorp! This incredible opportunity represents a significant milestone in my professional journey. I'm deeply grateful to my amazing network for their unwavering support. The team at TechCorp is truly world-class, and I'm committed to leveraging my expertise to drive innovation and foster growth. Looking forward to this exciting chapter! #NewBeginnings #Innovation #Leadership #Grateful
|
||||
|
||||
**After:**
|
||||
> Started a new job at TechCorp this week. I'm leading their developer tools team, 12 engineers building internal tooling that currently serves about 400 developers. First week has been drinking from the firehose: new codebase, new faces, new coffee machine I can't figure out. Nervous and excited in roughly equal measure. If anyone has advice on the first 90 days in an eng leadership role, I'm all ears.
|
||||
|
||||
**What changed:** No emojis, no hashtags. Replaced "pivotal new role" with what the role actually is. Added specific details (team size, user count). The coffee machine line adds humanity. Closing asks for help.
|
||||
@@ -0,0 +1,130 @@
|
||||
# 中文原生 AI 痕迹模式(实验性附录)
|
||||
# Native Chinese AI-Writing Patterns (Provisional Appendix)
|
||||
|
||||
> ## ⚠️ 实验性 · PROVISIONAL — 请先读这里
|
||||
>
|
||||
> **中文:** 本附录(ZH1–ZH15)是作者的**临时草稿**,**尚未经过中文母语写手校验**。它与英文正式目录(P1–P53)**不在同一成熟度**,不应被当作已验证的规则使用。此外,英文用的 **burstiness(句长波动)/ perplexity(用词可预测性)指标不能直接迁移到以字为单位、不用空格的中文** —— 中文里四字成语的密度、句读节奏往往比词长方差更能反映 AI 痕迹。
|
||||
>
|
||||
> **English:** This appendix (ZH1–ZH15) is the author's **provisional draft**. It has **NOT been validated by a zh-fluent writer**, is **not at parity** with the English catalog (P1–P53), and should not be treated as a proven ruleset. Also: **burstiness and perplexity do not port cleanly to character-based, space-free Chinese** — in Chinese, four-character-idiom density and clause rhythm are usually stronger tells than sentence-length variance.
|
||||
>
|
||||
> **两个未验证的假设 / Two UNVERIFIED hypotheses:** ZH13(「的/了」虚词过度使用)和 ZH14(翻译腔)是**推测**,**目前没有任何竞品会显式检测它们**(翻译腔仅通过外来语黑名单被间接触及)。列在这里是为了记录假设,不是因为它们已被解决。ZH13 (的/了 particle overuse) and ZH14 (translationese) are **speculative — no competitor detects them explicitly**; kept here as flagged hypotheses, not solved patterns.
|
||||
|
||||
---
|
||||
|
||||
## 目录 · Contents
|
||||
|
||||
- [怎么用这份附录 · How to use](#怎么用这份附录--how-to-use)
|
||||
- [核心原生模式 · Core native tells (ZH1-ZH7)](#核心原生模式--core-native-tells-zh1zh7)
|
||||
- [英文模式的中文对应 · Analogs of English patterns (ZH8-ZH12)](#英文模式的中文对应--analogs-of-english-patterns-zh8zh12)
|
||||
- [未验证假设 · Unverified hypotheses (ZH13-ZH14)](#未验证假设--unverified-hypotheses-zh13zh14)
|
||||
- [最深层痕迹 · The deepest tell (ZH15)](#最深层痕迹--the-deepest-tell-zh15)
|
||||
- [来源与致谢 · Sources](#来源与致谢--sources)
|
||||
|
||||
---
|
||||
|
||||
## 怎么用这份附录 · How to use
|
||||
|
||||
跑中文改写时,除了英文的 P1–P53,再扫描下面这些原生中文模式。格式和 SKILL.md 一致:**名称(中/英)· 触发信号 · 修正 · 一组前后对比**。中文改写里**可以**使用破折号(——),这份文件不受仓库禁破折号 CI 的约束;但仍应避免像 ZH5 描述的那样滥用。
|
||||
|
||||
分类:ZH1–ZH7 是原生中文核心痕迹(来自竞品研究,证据较扎实);ZH8–ZH12 是英文模式的中文对应(对应关系已标注);ZH13–ZH14 是未验证假设;ZH15 结合了「立场缺失」这一最深层痕迹。
|
||||
|
||||
---
|
||||
|
||||
## 核心原生模式 · Core native tells (ZH1–ZH7)
|
||||
|
||||
**ZH1:四字词语堆砌 / 空心金句 · Four-character idiom stacking / hollow slogans.** 用一连串四字成语、对仗短语堆出「文学感」,或写一句听起来很像可以摘抄、实则什么都没说的口号。**修正:** 删掉空心金句和堆砌的四字词,只保留「带场景、带代价、带判断」的压缩句 —— 有具体画面、有代价权衡、有明确态度的那种。**触发信号:** 连续多个四字成语(如「日新月异、方兴未艾、蓬勃发展、势不可挡」)、对仗排比、「不禁让人感叹」、听起来能裱起来但没有信息量的句子。
|
||||
|
||||
> **AI:** 在这个日新月异、瞬息万变的时代,技术的浪潮波澜壮阔、势不可挡,深刻地改变着我们的生活方式。
|
||||
> **人:** 过去三年,我们把部署时间从两小时压到了九分钟。代价是每次发布都得盯着监控,怕它崩。
|
||||
|
||||
**ZH2:首先/其次/最后 罗列 · Enumeration scaffolding.** 机械地用「首先……其次……再次……最后……」搭骨架,是英文 `first, second, finally` 脚手架的中文指纹。**修正:** 删掉这些连接词。让内容本身的逻辑决定顺序,或者干脆分点但不加套话式序词。**触发信号:** 首先、其次、再次、最后、一方面……另一方面、综上所述、总而言之。
|
||||
|
||||
> **AI:** 首先,它提升了效率。其次,它降低了成本。最后,它改善了体验。
|
||||
> **人:** 它快了三倍,服务器账单少了一半。用户没抱怨,这是头一回。
|
||||
|
||||
**ZH3:套话开头 · Cliché openers.** 用万能空话开场,句子换个主语就能套到任何文章上。**修正:** 直接从最具体的那句话开始 —— 一个数字、一个场景、一个判断。**触发信号:** 在当今……的时代、随着……的飞速发展、在数字化浪潮下、众所周知、随着科技的不断进步。
|
||||
|
||||
> **AI:** 随着人工智能的飞速发展,各行各业正在经历前所未有的深刻变革。
|
||||
> **人:** 上周我用 AI 重写了一份 API 文档,母语审稿人五秒就退回来了,说「一股机翻味」。
|
||||
|
||||
**ZH4:AI 高频词黑名单 · AI-vocabulary blacklist.** 中文 AI 文本反复使用的一批「书面腔 + 外来语翻译腔 + 企业黑话」高频词。**修正:** 换成日常说法,或直接删。**触发信号(致命黑名单):** 此外、值得注意的是、至关重要、深入探讨、赋能、抓手、闭环、底层逻辑、颗粒度、打法、格局、生态、织锦、挂毯、相互作用、凸显、彰显、标志着、令人叹为观止、坐落于、不可或缺、保驾护航、量身打造。(「织锦/挂毯」是英文 tapestry 的翻译腔,「格局/生态」是 landscape/ecosystem 的对译。)
|
||||
|
||||
> **AI:** 此外,构建数据闭环、打通底层逻辑,对于赋能业务增长至关重要。
|
||||
> **人:** 我们把三个系统的数据接到了一起,这样退款不用再手动对账了。
|
||||
|
||||
**ZH5:破折号(——)滥用 + 全角/半角标点混用 · Em-dash overuse + full/half-width punctuation mixing.** 破折号当万能连接符到处用(英文 P13 的中文对应),外加中文里混进英文的逗号、括号、引号,或全角半角乱套。**修正:** 破折号只在真正需要「解释/转折/停顿」时用一次;标点统一用中文全角(「」『』,。),别让英文标点(, . " " ())漏进中文正文。**触发信号:** 一段里多个 ——、中文里出现 English-style 逗号或引号、`(半角括号)` 混在中文里、句号用「.」。
|
||||
|
||||
> **AI:** 这个方案——非常创新——它将——从根本上——改变行业(尤其是效率方面).
|
||||
> **人:** 这个方案能省一半时间。代价是前期要重写数据层,大概两周。
|
||||
|
||||
**ZH6:设问-回答套路 · Rhetorical question-answer over-patterning.** 反复用「为什么……?因为……」「是什么让它与众不同?答案是……」这种自问自答的机械节奏(区别于英文 P27 的疑问句标题)。**修正:** 偶尔一次是修辞,通篇就是套路。把问句改成直接陈述。**触发信号:** 为什么……?因为、是什么造就了……、答案是、你可能会问、那么,如何做到呢?
|
||||
|
||||
> **AI:** 为什么它如此高效?因为它采用了先进的架构。那么,它安全吗?答案是肯定的。
|
||||
> **人:** 它高效,是因为绕过了那一层缓存。安全性我还没压测过,别在生产上用。
|
||||
|
||||
**ZH7:口号式乐观结尾 · Slogan-style optimistic endings.** 结尾一律拉高到空洞的乐观(英文 P24 的中文对应,触发词不同)。**修正:** 用一个具体的下一步、一个待解问题、或一句真实的判断收尾,别喊口号。**触发信号:** 让我们拭目以待、未来一片光明、必将产生深远影响、前景无限、值得期待、共同书写新篇章。
|
||||
|
||||
> **AI:** 我们有理由相信,在各方的共同努力下,未来必将一片光明,让我们拭目以待。
|
||||
> **人:** 下一步要解决冷启动那 800 毫秒的延迟。搞不定的话这套方案就得推倒重来。
|
||||
|
||||
---
|
||||
|
||||
## 英文模式的中文对应 · Analogs of English patterns (ZH8–ZH12)
|
||||
|
||||
**ZH8:意义拔高 / 象征化 · Significance inflation & symbolic gloss.**(对应 P1 / P40)给平常的事实硬安上「时代意义」,用「标志着、彰显了、体现了、象征着、折射出」把小事说成大势。**修正:** 直接说这东西是什么、做了什么,删掉「代表了什么」的评论。**触发信号:** 标志着、彰显、体现了、象征着、折射出、具有里程碑意义、开启了新篇章、树立了标杆。
|
||||
|
||||
> **AI:** 这次更新彰显了团队精益求精的工匠精神,标志着产品迈入了全新的时代。
|
||||
> **人:** 这次更新修了那个登录会掉线的 bug,另外把加载调快了一点。
|
||||
|
||||
**ZH9:书面语套话 / 冗余虚词 · Formal filler.**(对应 P18 / P22)用一堆书面腔的填充短语撑场面,删掉不影响意思。**修正:** 直接删。**触发信号:** 值得注意的是、需要指出的是、不难发现、在一定程度上、从某种意义上说、总的来说、换言之、众所周知、显而易见。
|
||||
|
||||
> **AI:** 值得注意的是,在一定程度上,这个功能从某种意义上说提升了用户体验。
|
||||
> **人:** 这个功能让结账少点一次。转化率涨了 4%。
|
||||
|
||||
**ZH10:排比堆砌 / 强凑三段 · Forced parallelism (rule of three).**(对应 P10)中文里滥用排比和「不仅……而且……」的三连对仗,凑气势而非讲内容。**修正:** 保留一个最有信息量的分句,砍掉为对仗而对仗的部分。**触发信号:** 三个结构相同的短句连排、不仅……而且……更、既……又……还、A 是……,B 是……,C 是……(三项工整)。
|
||||
|
||||
> **AI:** 它不仅高效,而且稳定,更兼具优雅、简洁与可扩展性。
|
||||
> **人:** 它够快,也够稳。优不优雅我不好说,反正没再半夜被叫起来过。
|
||||
|
||||
**ZH11:车轱辘话 / 同义反复 · Restating the same point (treadmill).**(对应 P43)用「换句话说、也就是说、简而言之」把同一个意思原地绕好几圈。**修正:** 保留最清楚的一版,删掉重复。**触发信号:** 换句话说、也就是说、简而言之、说白了、归根结底(后面跟的其实是前面刚说过的话)。
|
||||
|
||||
> **AI:** 它能提升效率。换句话说,它让工作更快。也就是说,它节省了时间。
|
||||
> **人:** 它把导出报表的时间从十分钟压到了一分钟。
|
||||
|
||||
**ZH12:加粗滥用 / emoji 小标题 · Boldface & emoji-header overuse.**(对应 P14 / P28)几乎每个名词都加粗,每个小标题前挂 emoji,Markdown 记号漏进本该是纯文本的地方(微信、邮件)。**修正:** 加粗只留给真正的关键词,删掉装饰性 emoji;发到不支持 Markdown 的地方就把 `**` 去掉。**触发信号:** 一段里多处 **加粗**、🚀✨🔥 开头的小标题、纯文本渠道里出现 `**` `##`。
|
||||
|
||||
> **AI:** 🚀 **核心优势**:我们的**产品**拥有**强大**的**性能**和**卓越**的**体验**!
|
||||
> **人:** 核心优势就一条:冷启动比上一版快了三倍。
|
||||
|
||||
---
|
||||
|
||||
## 未验证假设 · Unverified hypotheses (ZH13–ZH14)
|
||||
|
||||
> ⚠️ 以下两条是推测,**没有任何竞品显式检测它们**。请当作待验证的方向,不要当规则用。These two are speculative; no competitor detects them. Treat as open hypotheses, not rules.
|
||||
|
||||
**ZH13:「的/了」虚词堆叠 · Overuse of 的/了 particles.**(未验证 · UNVERIFIED)假设:AI 中文倾向堆叠「的」字定语、句末机械加「了」,读起来黏、拖。**修正(暂拟):** 拆掉多层「的……的……的」定语,改成短句;删掉不必要的「了」。**触发信号(暂拟):** 一个名词前挂三层以上「的」、每句都以「……了」收尾。**注意:这条尚无证据支撑,可能是伪模式。**
|
||||
|
||||
> **AI(假设):** 这是一个基于最新技术的、经过精心设计的、能够满足用户需求的解决方案了。
|
||||
> **人:** 这方案用了新的检索层,专门解决搜索慢的问题。
|
||||
|
||||
**ZH14:翻译腔 / 英式长句 · Translationese / calqued English syntax.**(未验证 · 仅间接触及 · UNVERIFIED)假设:AI 中文常带英文语法的影子 —— 被动句过多、从句套从句的长句、「一个……」滥用(英文 "a/an" 直译)、「进行 + 动词」("make a decision" → 「进行决策」)。现有工具只通过外来语词黑名单(见 ZH4)间接碰到它,没人专门检测句法层面的翻译腔。**修正(暂拟):** 拆长句为短句,把被动改主动,删掉冗余的「一个」和「进行」。**触发信号(暂拟):** 「被……所……」、过长的定语从句、「一个 + 名词」高频出现、「进行/给予/作出 + 抽象名词」。
|
||||
|
||||
> **AI(假设):** 一个能够被用户所信赖的、对数据进行有效处理的系统被我们所构建了出来。
|
||||
> **人:** 我们做了个处理数据的系统,用户反馈还挺信得过。
|
||||
|
||||
---
|
||||
|
||||
## 最深层痕迹 · The deepest tell (ZH15)
|
||||
|
||||
**ZH15:立场缺失 / 温吞表达 · No stance / lukewarm hedging.**(对应 P38 段落可打乱性 + 英文版 North Star)最深的 AI 痕迹不是某个词,而是**通篇没有一个能被反驳的观点** —— 面面俱到、两边都对、段落顺序打乱也不影响论证。一句话概括:不能被反驳的观点就不叫观点,叫温吞的空气。**修正:** 逼出一个站得住但足够鲜明的立场,点名一个具体对象或反方,让读者知道作者到底站哪边、要付什么代价。**触发信号:** 全文没有一句可争论的判断、每个观点后面都跟「当然,也有另一种看法」、段落调换顺序读起来一样通顺、结论谁都不得罪。
|
||||
|
||||
> **AI:** 关于是否采用微服务,业界看法不一。它既有优势,也有挑战,需要根据具体情况权衡,没有绝对的对错。
|
||||
> **人:** 团队少于十个人就别上微服务。我们试过,光维护那套服务发现就吃掉了两个人。等你真被单体拖垮了再拆也不迟。
|
||||
|
||||
---
|
||||
|
||||
## 来源与致谢 · Sources
|
||||
|
||||
- **英文正式目录** —— 见 [`../SKILL.md`](../SKILL.md)(P1–P53)。本附录是作者实验性的中文补充草稿,**不是**替代。
|
||||
|
||||
给 integrator 的提醒:ZH13、ZH14 无证据支撑,公开前建议找中文母语写手校验整份附录;burstiness/perplexity 相关表述在中文语境下需保留「不能直接迁移」的说明。
|
||||
@@ -1,13 +1,13 @@
|
||||
# manifest · 包内文件清单
|
||||
|
||||
> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-07 21:34 (必读表标题订正「三篇→四类」+ 点明第4项含语气那一档)**
|
||||
> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-07 21:56 (说人话每轮注入 + 英文硬核版整包纳入 + 新判据)**
|
||||
> ⚠️ **2026-10-05 局部增量**:`references/pitfalls.md`(P0-77 拆条 + P0-73/P0-77 压缩)与
|
||||
> `scripts/goalctl.py`(`--switch-goal` 确认闸 + 旧目标归档)两行的 md5/大小已按当天实测值更新;**其余行仍是 10-04 基线**。
|
||||
> ⛔ 本表**不含** `install.log`(运行日志)与 `references/manifest.md`(自引用,写完即失真)。
|
||||
> ⚠️ **provenance 列里的 `skills/multi-session-collab/…`、`skills/workbuddy-session-forensics/…` 已是历史路径**
|
||||
> —— 那两个目录 2026-10-01 已移到 `<工作区>/归档/技能-退役-20261001/`(⛔ 不在技能根了)。
|
||||
|
||||
文件总数:**70** | 语法 / 结构检查失败:**0**
|
||||
文件总数:**76** | 语法 / 结构检查失败:**0**
|
||||
|
||||
## ✅ 已完成 · 2026-10-05 「目标唯一性 + 换目标需确认」(用户口径落地)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
| 包内路径 | 字节 | md5 | 语法检查 |
|
||||
|---|---|---|---|
|
||||
| `SKILL.md` | 114310 | `2d4ee3ca383f30d454f1ce5797498e22` | — |
|
||||
| `SKILL.md` | 114635 | `c779fd78f61458b62cec99e9e103a4fc` | — |
|
||||
| `assets/board-launch.py.tpl` | 4355 | `7e9dfe1c4845f20dbb89f599d80e167b` | — |
|
||||
| `assets/board-render-probe.js` | 14398 | `a21bd1905b34537436ce778c6bfbc288` | — |
|
||||
| `assets/board.html` | 151811 | `c597cd7f21543542e9cdbe486c5ccd79` | — |
|
||||
@@ -133,6 +133,12 @@
|
||||
| `references/dsh-decision-method/素材库-U-用户决策.md` | 24597 | `94c9e860148f4265f1e21e5322346f94` | — |
|
||||
| `references/dsh-decision-method/素材库-反例-X.md` | 5712 | `8bce93e8c1ce71d17e6d33aa9a2d7724` | — |
|
||||
| `references/forensics.md` | 6067 | `1fb6deca9bb05bebe950d4f4e3adf043` | — |
|
||||
| `references/humanizer-en/LICENSE` | 1092 | `a8440fdde2a535efdd44813bce97df57` | — |
|
||||
| `references/humanizer-en/README.md` | 4204 | `f3f41dc19ef27b7591422a43140d17fe` | — |
|
||||
| `references/humanizer-en/SKILL.md` | 39490 | `3fd8d0d4175d1325cc942ce65733719d` | — |
|
||||
| `references/humanizer-en/references/always-on-templates.md` | 3066 | `1bbcc7aa145f5a8189f35af7f9477769` | — |
|
||||
| `references/humanizer-en/references/patterns.md` | 26186 | `830c68f9e07fb6bbee297b7a9004d994` | — |
|
||||
| `references/humanizer-en/references/patterns.zh.md` | 14867 | `2c661fde3d84751edc8053eedd36f930` | — |
|
||||
| `references/karpathy-output-ladder/SKILL.md` | 5252 | `f1e3b07003bbc544db52d32c122e6faf` | — |
|
||||
| `references/karpathy-output-ladder/assets/html-template/index.html` | 5883 | `b95c39d2cd41d8c0f21d4007e7ef3cef` | — |
|
||||
| `references/karpathy-output-ladder/references/ladder-workflow.md` | 2684 | `d49840707d19302d8f61f4e1d7f4ea2e` | — |
|
||||
@@ -144,7 +150,7 @@
|
||||
| `references/作业规矩/00-作业总规矩(原 agent-operating-rules).md` | 70243 | `80fc5471015b237ee7aacd6976eda6fe` | — |
|
||||
| `references/作业规矩/02-工作区纪律.md` | 21351 | `1a679fdeb9cca0883a47f619d1aec85d` | — |
|
||||
| `references/作业规矩/03-多棒接力编排.md` | 13185 | `631b4b7455938b0c3a3a4f6f94d97eed` | — |
|
||||
| `references/作业规矩/04-去AI味与说话方式.md` | 12520 | `cd3cca159299404e97fc6de9c54e6024` | — |
|
||||
| `references/作业规矩/04-去AI味与说话方式.md` | 14059 | `5100e1a26c3477541eafe1c7797d3b3a` | — |
|
||||
| `roots.env` | 624 | `ec38f15f9a4101d69c815aa2cdd7b477` | — |
|
||||
| `scripts/apply-reply-rules.py` | 7172 | `551b0ee5bf6c7a9f6b64c1b1d53bd343` | ok |
|
||||
| `scripts/board-launch.py` | 2794 | `998a66b9d335ab1863b5b871a527bf4f` | ok |
|
||||
@@ -163,7 +169,7 @@
|
||||
| `scripts/hooks/decision-rules-hook.py` | 12399 | `c521237bada7487aecf5e54ad4d19ace` | ok |
|
||||
| `scripts/hooks/lock-guard-hook.py` | 20363 | `641457de0297ee7a812ccde57f67dc2b` | ok |
|
||||
| `scripts/hooks/prompt-guards.py` | 9332 | `0aa1d1fdd2bf5a40cda2e60d7a785534` | ok |
|
||||
| `scripts/hooks/reply-style-guard.py` | 11283 | `1e52b65f279c0b4df70bb53bc613a774` | ok |
|
||||
| `scripts/hooks/reply-style-guard.py` | 13200 | `e044f5d3e52ae94775dfba2090e7ae8e` | ok |
|
||||
| `scripts/hooks/session-log-guard.py` | 24636 | `4dd13b24d541d1afc7b4874dba6bb1eb` | ok |
|
||||
| `scripts/hooks/skill-load-guard.py` | 29994 | `2450b93b4bac87cf9e99697703efa78f` | ok |
|
||||
| `scripts/hooks/stop-dialog-guard.py` | 51240 | `3e0791e42f41c37438601a9d2314dd8e` | ok |
|
||||
@@ -177,7 +183,7 @@
|
||||
| `scripts/lock/op-lock.sh` | 4690 | `1a31eda3642e23693a65e1519860c744` | — |
|
||||
| `scripts/lock/preflight-lock.sh` | 8673 | `e985ec1cb853fae4c351cd03b171355d` | — |
|
||||
| `scripts/mut_run.py` | 13323 | `3bffc12e1e57d5efc743bac55e584b62` | ok |
|
||||
| `scripts/selftest.py` | 491896 | `c1704981f23dbf2be04bdd074cfd46b3` | ok |
|
||||
| `scripts/selftest.py` | 493433 | `7ebd4893ca5339c575ed64d79f2697ac` | ok |
|
||||
| `scripts/session-rules-check.py` | 44412 | `b2b468992d80421106316eaf451e2477` | ok |
|
||||
| `scripts/stop-collab.py` | 10462 | `d8043bedd23b52b6642aaf7ec8b8c980` | ok |
|
||||
| `scripts/supervise-launch.py` | 2503 | `f416a2f197e5524a8859c1d227ba1d05` | ok |
|
||||
|
||||
@@ -10,6 +10,17 @@
|
||||
|
||||
---
|
||||
|
||||
<!-- VOICE-CORE:BEGIN -->
|
||||
**说人话(语气档 · 每轮生效)**
|
||||
|
||||
1、**先把话说清楚,再谈漂亮** —— 一句一个意思,能用短句就别绕长句。
|
||||
2、**像人一样有态度**:该下判断就下(「这条路更划算」);⛔ 不写「值得注意的是」「具有重要意义」这类空转评价。
|
||||
3、⛔ **禁四种高频 AI 味**:三段式排比连用(「不仅…而且…」)/以「…着」结尾的肤浅分析/模糊归因(「业内人士认为」)/把一句话拆成加粗小标题 + 竖排碎句。
|
||||
4、⛔ **不谄媚、不铺垫**:不写「好问题」「让我为你解答」,不写知识截止免责声明,直接给结论。
|
||||
5、**交付前三问**:① 这句删了会不会少信息(不会就删)② 有没有哪处一看就是模型写的(有就改)③ 读完像不像我在跟人说话。
|
||||
⚠️ 与排版分工:结构(能不能被扫)看每轮注入的那块;本块只管**像不像人话**。全文 = 本文档。
|
||||
<!-- VOICE-CORE:END -->
|
||||
|
||||
## 0. 核心原则(5 条)
|
||||
|
||||
1. **删除填充短语** —— 去掉开场白与强调性拐杖词。
|
||||
@@ -250,5 +261,6 @@
|
||||
| **本参考** | 语气:像人话(节奏 / 用词 / 段落组织 / 灵魂) | 在不破坏结构的前提下尽量满足 |
|
||||
| **协作与提报判据(原「参考 01」⇒ 2026-10-07 已并入 `references/02-功能优先协作协议.md`)** | 说什么、该不该问 | 独立,同时生效 |
|
||||
| **通用版(独立技能 `humanizer-zh`,2026-10-07 补记)** | 同一套「AI 写作特征」的**通用版**(示例更全,19 KB) | 本包那份是**会话场景加固版**(多 4 节)⇒ **两处同时装着时以本包为先**;⛔ 不装也能跑 |
|
||||
| **英文硬核版(🔴 2026-10-07 按用户令整包纳入本包)** | `references/humanizer-en/` —— 原独立技能 `humanizer` **逐字搬入**(6 文件):**55 个模式**(中文那份 24 类)+ **5 种语气档**(casual/professional/technical/warm/blunt)+ **0–100 AI 痕迹打分** + 可 `--file` 就地改 | 要**更硬的检测/打分**、或要**指定语气档**时读它;⛔ 与本档同属"语气"这一档,冲突以本档(会话场景)为先 |
|
||||
|
||||
**一句话判据**:**能扫、像人、不啰嗦、不谄媚。**
|
||||
Reference in new issue
Block a user