From 4ae291eb0c12a4788fcf418dc6eae7ac1822de27 Mon Sep 17 00:00:00 2001 From: Da6ka Date: Fri, 2 Oct 2026 16:20:31 +0300 Subject: [PATCH] Fold four tells into patterns 2, 4 and 26 (3.1.1) --- .claude-plugin/plugin.json | 2 +- .cursor-plugin/plugin.json | 2 +- CHANGELOG.md | 4 ++++ README.md | 6 +++--- SKILL.md | 10 +++++----- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 7c2c657f..7fa10140 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 like the writer without changing what it says.", - "version": "3.1.0", + "version": "3.1.1", "author": { "name": "blader", "url": "https://github.com/blader" diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index a825c73b..c1184490 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "humanizer", "description": "Rewrite AI-sounding text so it reads like the writer without changing what it says.", - "version": "3.1.0", + "version": "3.1.1", "author": { "name": "blader" }, diff --git a/CHANGELOG.md b/CHANGELOG.md index f84b9f4a..6a0ba60c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 3.1.1 + +- Folded four tells into existing patterns, with no new pattern: a closing line that echoes the opening (#2), warm-up openers, performed sympathy, and a question the next sentence answers (#4), and a reply that opens by restating what the other person just said (#26). + ## 3.1.0 - Added pattern #26 and section F for replies that re-explain context the reader already has (#269). It acts on replies, not standalone writing. 26 patterns total. diff --git a/README.md b/README.md index 22594fa2..a39d510c 100644 --- a/README.md +++ b/README.md @@ -115,9 +115,9 @@ The patterns are numbered by strength and frequency. The first five justify an e | # | Pattern | Before | After | |---|---------|--------|-------| | 1 | **Not X but Y** | "It's not just X, it's Y", "This doesn't mean X. It means Y." | State the point directly | -| 2 | **One-line closers and dramatic fragments** | "That is the real win." after every section; "This shows the importance of..." after an example; "No prior. No nostalgia." | Cut the closer that repeats or explains the example; merge fragments into a specific claim | +| 2 | **One-line closers and dramatic fragments** | "That is the real win." after every section; "This shows the importance of..." after an example; "No prior. No nostalgia."; a last line that echoes the first | Cut the closer that repeats or explains the example; merge fragments into a specific claim | | 3 | **Sayings that sound deep** | "At its core, what matters is...", "Symmetry is the language of trust" | Replace the saying with the specific claim | -| 4 | **Staged run-up before the point** | "Let's dive in", "Honestly? It depends..." | Remove the run-up and state the point | +| 4 | **Staged run-up before the point** | "Let's dive in", "Honestly? It depends...", "Why? Because...", "In today's fast-paced world" | Remove the run-up and state the point | | 5 | **Arguing with no one** | "This isn't mainly about...", "A tempting approach would be..." | Remove the unraised objection or fake option; keep any real claim | ### B. Rhythm by rule @@ -164,7 +164,7 @@ The patterns are numbered by strength and frequency. The first five justify an e | # | Pattern | Before | After | |---|---------|--------|-------| -| 26 | **Re-explaining what the reader knows** | A reply that walks the diagnosis and proves the plan works before the decision | Lead with the decision; leave the diagnosis and the proof for the ticket that follows | +| 26 | **Re-explaining what the reader knows** | A reply that restates what the other person said, then walks the diagnosis and proves the plan works before the decision | Lead with the decision; leave the diagnosis and the proof for the ticket that follows | ## Full example diff --git a/SKILL.md b/SKILL.md index 19fc6342..52fbd9f8 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.1.0" + version: "3.1.1" --- # Humanizer: remove AI writing patterns @@ -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."; "That distinction matters."; "Read that again."; "Let that sink in."; the same closer after several sections; a sentence after an example, scene, or number that names what it showed ("This shows the importance of...", "The message was clear:", "It was a lesson in patience."); 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 sentence after an example, scene, or number that names what it showed ("This shows the importance of...", "The message was clear:", "It was a lesson in patience."); a row of fragments ("No aesthetic prior. No nostalgia."); one word in ALL CAPS or with periods between words (every. single. day.); a last line that echoes the first for a closed feel. **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, including one that explains an example the reader just saw. Keep it when it adds a fact or consequence the example does not show. 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. @@ -109,8 +109,8 @@ These are the strongest and most frequent tells in current model prose. Act on o ### 4. Staged run-up before the point -**Watch for:** Let's dive in, let's explore, let's break this down, here's what you need to know, now let's look at, without further ado, heads up, quick note, Honestly?, Look, Here's the thing, The thing is, Let's be honest, Real talk, and casual versions such as "one thing that bit me, so pay attention" -**Problem:** The writer announces the point or stages a moment of candor instead of making the point. Remove the run-up, not just its tone. "Honestly" or "look" inside a casual sentence is ordinary; the tell is the standalone opener before a routine claim. +**Watch for:** Let's dive in, let's explore, let's break this down, here's what you need to know, now let's look at, without further ado, heads up, quick note, Honestly?, Look, Here's the thing, The thing is, Let's be honest, Real talk, In today's fast-paced world, As we all know, I know this is hard, a question the next sentence answers ("Why? Because..."), and casual versions such as "one thing that bit me, so pay attention" +**Problem:** The writer announces the point or stages a moment of candor instead of making the point. A warm-up, a performed sympathy, and a drum-roll question do the same job. Remove the run-up, not just its tone. "Honestly" or "look" inside a casual sentence is ordinary; the tell is the standalone opener before a routine claim. **Before:** > Let's dive into how caching works in Next.js. Here's what you need to know. **After:** @@ -369,7 +369,7 @@ A model writes for a reader who shares no context, because that fits the widest ### 26. Re-explaining what the reader knows -**Watch for:** a short reply that restates the problem, walks through the diagnosis, and lays out the evidence before it reaches the decision; a query, command, or set of numbers included to prove a plan will work; background the other person wrote or already agreed to; the answer itself sitting in the last line. +**Watch for:** a short reply that restates the problem, walks through the diagnosis, and lays out the evidence before it reaches the decision; a query, command, or set of numbers included to prove a plan will work; background the other person wrote or already agreed to; an opening that restates what they just said ("You mentioned that...", "As you said"); the answer itself sitting in the last line. **Problem:** In a reply the reader already has the context, so rebuilding it adds nothing and buries the point. Each sentence can read fine on its own, so this survives sentence-level cleanup. Lead with the decision and keep only the reasoning that would change whether the reader agrees: usually one fact they lack and any link they need to act. The diagnosis and the proof that a plan will work belong in the ticket or document that follows; a reviewer raising a topic is not a request for the full write-up. **Before:** > Yeah, you're right, this works around the issue rather than fixing it. The real fix is in `MergeService`: when we move a child under a new parent, it should update `pipeline_id` along with `parent_id`. We can backfill the bad rows from the audit log with `Change.where(field: "pipeline_id", source: "merge")`. I checked QA: 123 past merges, only 6 rows wrong now, so the cleanup is small.