diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 7a7ba2bd..86d36025 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "humanizer", "description": "Rewrite AI-sounding text so it reads naturally without changing what it says.", - "version": "3.0.0", + "version": "3.1.0", "author": { "name": "blader", "url": "https://github.com/blader" diff --git a/README.md b/README.md index 6ffe91a6..99037af3 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Humanizer marks every tell it finds, strongest first. It drafts a rewrite withou When you paste text, Humanizer shows its work: the first rewrite, a short critique of anything that still sounds artificial, and the final version. Point it at a file and it changes only the prose, leaving code, data, frontmatter, and link targets alone. Personal writing keeps the writer's opinions and quirks. Technical and reference prose stays neutral and plain. -## The 25 patterns +## The 26 patterns The patterns are numbered by strength and frequency. The first five justify an edit on a single sighting. Patterns marked *weak alone* count only when several tells share a passage, because a careful writer may use any one of them on purpose. @@ -126,7 +126,8 @@ 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..."; "generated from the source sheet" | Describe what it does now; credit a source, do not narrate the process | +| 26 | **Explaining the document's own conventions** (*weak alone*) | "The table below compares..."; "Cost is shown as a relative scale, where..." | Cut it; state a convention only where the reader cannot see it | ## Full example @@ -168,6 +169,7 @@ The writer supplied these notes with the draft, so the rewrite can use them: the
Show release notes +- **3.1.0** - Added §26, explaining the document's own conventions, for copy that describes its own legend, layout or navigation to a reader who can see them. Widened §25 from the previous version to the document itself, so it also covers narration of how the text was assembled or sourced; a source credit the reader can follow stays, a description of the process goes. Added a heading-written-for-effect pair to §20. Both new tells survive a pass that catches the vocabulary and rhythm patterns, because they are a stance toward the reader rather than a word choice. - **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 d375fbf3..38fc2637 100644 --- a/SKILL.md +++ b/SKILL.md @@ -7,7 +7,7 @@ description: | language, stock AI words, bold labels, or filler. Based on Wikipedia's "Signs of AI writing." license: MIT metadata: - version: "3.0.0" + version: "3.1.0" --- # Humanizer: remove AI writing patterns @@ -300,6 +300,10 @@ Templates and visual editors also produce clean formatting. The tell is decorati > 💡 **Key Insight:** Users prefer simplicity **After:** > The product launches in Q3. User research showed a preference for simplicity. +**Before (heading written for effect rather than naming the section):** +> ## The decision, on one screen +**After:** +> ## How the six options compare ### 21. Curly quotation marks @@ -349,13 +353,31 @@ 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; how it was assembled; how carefully it was sourced. "was added to replace"; "generated from"; "compiled from"; "narrowed down from"; "anything unconfirmed is flagged rather than guessed". +**Problem:** The sentence describes the document rather than the thing the document is about, so the reader is told about the factory instead of the product. Mention a previous version only in change logs, release notes, migration guides, and other documents about change. A source credit the reader can follow stays; a description of your process goes. A caveat stays where it changes what the reader should do and goes where it only reports how you worked. **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. + +### 26. Explaining the document's own conventions + +**Watch for:** a sentence describing the page's own legend, layout, structure or order. "The table below compares"; "this section is organized by owner"; "click any row to expand"; "ratings are out of five, where five is best". +**Problem:** The reader can already see the convention, so stating it adds nothing and signals that the legend was written by something that could not see the page. State a convention only where the reader cannot infer it, and state it once without defending it. *Weak alone.* +**Before:** +> Cost is shown as a relative scale, where one symbol is the cheapest option on this list and five is the most expensive. +**After:** +> (cut; the column header already says Cost) +**Before:** +> Ratings come from the public listing along with the number of reviews, because a high score from a handful of people is not the same as a slightly lower score from hundreds. +**After:** +> Ratings are from the public listing, with the review count. ## When not to act