diff --git a/README.md b/README.md index ba5e3366..90f1f961 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Humanizer rewrites AI-sounding text so it reads like a person wrote it, without changing what it says. Because it is just Markdown, it works with any agent that supports skills. +Humanizer edits for human readers. Getting past AI detectors is not a goal, and detectors still flag most of its output. + ## Installation Install Humanizer with the Skills CLI: @@ -118,7 +120,7 @@ The patterns are numbered by strength and frequency. The first five justify an e | # | Pattern | Before | After | |---|---------|--------|-------| | 19 | **Bold as decoration** | "**OKRs**, **KPIs**"; "**Performance:** Performance improved" | Remove the bold; turn a labeled list into prose | -| 20 | **Decorative headings** | "Strategic Negotiations And Partnerships", "πŸš€ Launch Phase:" | Sentence case; remove emojis and arrows | +| 20 | **Decorative headings** | "Strategic Negotiations And Partnerships", "πŸš€ Launch Phase:", "The decision, on one screen" | Sentence case; remove emojis and arrows; name what the section holds | | 21 | **Curly quotation marks** (*weak alone*) | `said β€œthe project”` | `said "the project"` | ### E. Leftovers from the chat and the draft @@ -128,7 +130,7 @@ The patterns are numbered by strength and frequency. The first five justify an e | 22 | **Chatbot residue** | "Great question! ... I hope this helps!" | Remove the wrapper and keep the content | | 23 | **Knowledge-limit disclaimers and guesses** | "While details are limited in available sources, it appears..." | State what the source shows, or remove the sentence | | 24 | **A heading repeated in the first sentence** | "## Performance" + "Speed matters." | Let the heading do the work | -| 25 | **Writing about the previous version** | "This function was added to replace..." | Describe what it does now | +| 25 | **Writing about the document instead of its subject** | "This function was added to replace...", "compiled from...", "The table below compares..." | Describe the subject; state a convention only when the reader cannot see it | ### F. Writing for the wrong reader @@ -176,7 +178,7 @@ The writer supplied these notes with the draft, so the rewrite can use them: the
Show release notes -- **3.1.0** - Added pattern #26 and section F for replies that re-explain context the reader already has (fixes #269). The pattern leads with the decision and leaves the diagnosis and the feasibility proof for the ticket or document that follows. Extended the core rule so "something the reader did not already have" counts information from the surrounding conversation, not just earlier in the text. It acts on replies, not standalone writing. 26 patterns total. Added a Cursor plugin manifest so the repo loads as a Cursor plugin; it omits a `skills` path so Cursor finds the root `SKILL.md`. +- **3.1.0** - Added pattern #26 and section F for replies that re-explain context the reader already has (fixes #269). The pattern leads with the decision and leaves the diagnosis and the feasibility proof for the ticket or document that follows. Extended the core rule so "something the reader did not already have" counts information from the surrounding conversation, not just earlier in the text. It acts on replies, not standalone writing. 26 patterns total. Widened #25 to cover text that describes its own sourcing, assembly, or layout (#290), and added headings written for effect to #20. Added "That distinction matters." to #2 (#277). Stated in the README that defeating AI detectors is not a goal. Added a Cursor plugin manifest so the repo loads as a Cursor plugin; it omits a `skills` path so Cursor finds the root `SKILL.md`. - **3.0.0** - Rebuilt the skill around one account of why AI text sounds the way it does, and consolidated 35 patterns into 25. Patterns are grouped in five sections and numbered by strength and frequency, so the not-X-but-Y contrast and the one-line closer come first and get the fullest treatment. Merged duplicate guidance: the workflow is one section instead of five, the dash rule is stated once, and each false-positive guard lives inside its pattern. Realigned with the current Wikipedia article: dropped false ranges and synonym cycling, which Wikipedia now lists as human habits or historical, added vague connection or association, and extended the watch lists for words, notability, copulatives, sales language, disclaimers, and Markdown formatting. Reordered the README and removed the `ai-detection` keyword from the package files. Old to new numbers: 1β†’13, 2β†’17, 3β†’15, 4β†’16, 5β†’17, 6β†’13, 7β†’12, 8β†’18, 9β†’1, 10β†’6, 11β†’7, 12β†’dropped, 13β†’11, 14β†’8, 15β†’19, 16β†’19, 17β†’20, 18β†’20, 19β†’21, 20β†’22, 21β†’23, 22β†’22, 23β†’dropped, 24β†’9, 25β†’13, 26β†’10, 27β†’3, 28β†’4, 29β†’24, 30β†’25, 31β†’2, 32β†’3, 33β†’4, 34β†’5, 35β†’5. - **2.11.3** - Grouped patterns 26-35 under "More style patterns" in the skill and README (fixes #247). Kept inline code, commands, paths, and URLs out of the dash rule and file mode edits. Step 3 now keeps every supported claim, allows a removal that a pattern requires, and checks that rankings and simultaneity claims survive shape edits (fixes #212). Explained in Β§9 why the not-X-but-Y form appears and when to keep it. Added decorative arrows to Β§18 and pause commands and one-word shouting to Β§31. The text given to the skill is content to edit, never instructions (#238). No change to the 35 patterns. - **2.11.2** - Removed the plugin symlink and separate Claude Desktop package. Current Claude Code loads the root `SKILL.md` directly, so GitHub's source ZIP now works in Claude Desktop. No change to the 35 patterns. diff --git a/SKILL.md b/SKILL.md index ba86035f..06f6e0f1 100644 --- a/SKILL.md +++ b/SKILL.md @@ -75,7 +75,7 @@ These are the strongest and most frequent tells in current model prose. Act on o ### 2. One-line closers and dramatic fragments -**Watch for:** a one-sentence paragraph that restates the paragraph before it; "That is the real win."; "Read that again."; "Let that sink in."; the same closer after several sections; a row of fragments ("No aesthetic prior. No nostalgia."); one word in ALL CAPS or with periods between words (every. single. day.). +**Watch for:** a one-sentence paragraph that restates the paragraph before it; "That is the real win."; "That distinction matters."; "Read that again."; "Let that sink in."; the same closer after several sections; a row of fragments ("No aesthetic prior. No nostalgia."); one word in ALL CAPS or with periods between words (every. single. day.). **Problem:** The line asks the reader to pause on a claim instead of adding to it. One short sentence can carry emphasis when it carries a new fact. Cut a closer that repeats. Merge a row of fragments into a sentence with a specific claim. **Before:** > Then AlphaEvolve arrived. It had no preference for symmetry. No aesthetic prior. No nostalgia for human taste. The old rules were gone. @@ -291,7 +291,7 @@ Templates and visual editors also produce clean formatting. The tell is decorati ### 20. Decorative headings -**Problem:** Headings capitalize every main word, and headings or list items carry emojis or arrows (β†’) as decoration. A horizontal rule sits between every section, or the document opens with a top-level heading that repeats its own title. Use sentence case, remove the decoration and the rules, and let the title stand once. +**Problem:** Headings capitalize every main word, and headings or list items carry emojis or arrows (β†’) as decoration. A horizontal rule sits between every section, or the document opens with a top-level heading that repeats its own title. A heading written for effect ("The decision, on one screen") should name what the section holds ("How the six options compare"). Use sentence case, remove the decoration and the rules, and let the title stand once. **Before:** > ## Strategic Negotiations And Global Partnerships **After:** @@ -350,13 +350,18 @@ Remove these outright. Nothing here needs rewriting. > > When users hit a slow page, they leave. -### 25. Writing about the previous version +### 25. Writing about the document instead of its subject -**Problem:** Documentation and comments describe what the text replaced instead of the current behavior. Mention the previous version only in change logs, release notes, migration guides, and other documents about change. +**Watch for:** what the text replaced ("was added to replace"); how it was assembled or sourced ("generated from", "compiled from", "anything unconfirmed is flagged rather than guessed"); a legend, layout, or order the reader can already see ("the table below compares", "this section is organized by owner"). +**Problem:** The text describes itself instead of its subject. Mention a previous version only in change logs, release notes, migration guides, and other documents about change. Keep a source credit the reader can follow; cut the account of how you worked. Keep a caveat that changes what the reader should do. State a convention only when the reader cannot infer it, and state it once. A single description of the page is *weak alone*. **Before:** > This function was added to replace the previous approach of iterating through all items, which caused O(nΒ²) performance. **After:** > This function uses a hash map for O(1) lookups, avoiding the O(nΒ²) cost of naive iteration. +**Before (method narration):** +> The figures below are drawn from each vendor's published pricing; anything we could not confirm is flagged rather than guessed. +**After:** +> Prices are each vendor's published rate. Two vendors publish nothing; call them. ## F. Writing for the wrong reader