Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "humanizer",
"description": "Remove signs of AI-generated writing from text, making it sound more natural and human. Based on Wikipedia's \"Signs of AI writing\" guide.",
"version": "2.8.2",
"version": "2.9.0",
"author": {
"name": "blader",
"url": "https://github.com/blader"
Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ The skill also includes a final "obviously AI generated" audit pass and a second

> "LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases."

## 33 Patterns Detected (with Before/After Examples)
## 35 Patterns Detected (with Before/After Examples)

### Content Patterns

Expand Down Expand Up @@ -158,6 +158,13 @@ The skill also includes a final "obviously AI generated" audit pass and a second
| 24 | **Excessive hedging** | "could potentially possibly" | "may" |
| 25 | **Generic conclusions** | "The future looks bright" | Specific plans or facts |

### Pasted-Output Artifacts

| # | Pattern | Before | After |
|---|---------|--------|-------|
| 34 | **Search/citation scaffolding tags** | ":contentReference[oaicite:0]", "turn0search3", ":::", "grok_card" | Strip the tag; keep any real citation |
| 35 | **Leftover placeholder text** | "contacting [Company Name]... within [X] days" | Fill the slot or rewrite without it |

## Full Example

**Before (AI-sounding):**
Expand Down Expand Up @@ -193,6 +200,7 @@ The skill also includes a final "obviously AI generated" audit pass and a second

## Version History

- **2.9.0** - Added a "Pasted-Output Artifacts" section with patterns #34 (search/citation scaffolding tags like `:contentReference[oaicite:0]`, `turn0search0`, `grok_card`, `:::`) and #35 (leftover placeholder/template text like `[Company Name]`, `[X]`). These are near-zero-false-positive tells that leak in when raw model output is pasted without editing. Both are drawn from the Markup and Communication sections of the Wikipedia source. 35 patterns total.
- **2.8.2** - Replaced the full before/after example with a first-person Lisbon trip recap. The after now keeps the same topic, perspective, and rough length as the before while removing the AI tells without becoming clipped or slogan-like. No change to the 33 patterns.
- **2.8.1** - Added cross-agent installation docs, optional Claude Code plugin packaging, and a compact secondhand-text false-positive guard. No change to the 33 patterns.
- **2.8.0** - Added style/cadence patterns #31-33 for manufactured punchlines, aphorism formulas, and conversational rhetorical openers; expanded #20 to catch offer-to-continue chatbot closers. 33 patterns total.
Expand Down
33 changes: 32 additions & 1 deletion SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: humanizer
version: 2.8.2
version: 2.9.0
description: |
Remove signs of AI-generated writing from text. Use when editing or reviewing
text to make it sound more natural and human-written. Based on Wikipedia's
Expand Down Expand Up @@ -520,6 +520,36 @@ Before returning the final rewrite, scan it for `—` and `–`. Any hit means t
> Whether it's worth the price depends on how often you'll use it.


## PASTED-OUTPUT ARTIFACTS

These are not stylistic tells but literal scaffolding that leaks in when someone pastes raw model output without editing. Unlike the patterns above, they are close to zero false positive: genuine human prose does not contain them.

### 34. Search and Citation Scaffolding Tags

**Tokens to watch:** turn0search0, turn0news1 (any `turnNsearchN` / `turnNnewsN`), contentReference, oaicite, `:contentReference[oaicite:0]{index=0}`, cite turn0..., `:::` fenced tags, grok_card, a bare `+1` used as a trailing citation marker

**Problem:** ChatGPT, Gemini, and Grok wrap citations and search results in internal scaffolding tokens that the interface is supposed to strip before display. They never occur in human writing, so when one survives into pasted text it is a definitive tell. Delete the tag. If it wrapped a real citation, keep the citation and drop the wrapper.

**Before:**
> The population grew 12% between 2010 and 2020 :contentReference[oaicite:0]{index=0}. It is the country's largest city turn0search3.

**After:**
> The population grew 12% between 2010 and 2020. It is the country's largest city.


### 35. Leftover Placeholder and Template Text

**Tokens to watch:** [insert X], [Your Name], [Company Name], [DATE], [XX], [TODO], [City], `<name>`, `{{placeholder}}`, "As an entry in [list]"

**Problem:** When asked for a template, or when it lacks a specific value, an LLM emits a fill-in-the-blank slot. Left unfilled in finished prose, a bracketed or double-brace placeholder shows the text was generated and pasted without a human completing it. Fill the slot with the real value, or rewrite the sentence so it does not need one.

**Before:**
> Thank you for contacting [Company Name]. We will respond to your query about [issue] within [X] business days.

**After:**
> Thank you for contacting Acme Support. We will respond to billing queries within two business days.


## DETECTION GUIDANCE

### What NOT to flag (false positives)
Expand All @@ -539,6 +569,7 @@ A clean human writer can hit several of the patterns above without any AI involv
- **Unsourced claims.** Most of the web is unsourced. Lack of citations doesn't prove anything.
- **Correct, complex formatting.** Visual editors and templates produce clean output without any AI.
- **Secondhand text.** Do not rewrite watched phrases inside quotations, titles, proper names, or examples where the phrase is being discussed rather than used.
- **Intentional templates (§35).** A document that is explicitly a fill-in template, form, or boilerplate with slots the user will complete later is *supposed* to contain placeholders. Flag leftover placeholders only in text presented as finished. (Note: the scaffolding tags in §34 have no such exception; they are always safe to strip.)

When in doubt, look for **clusters** of tells, not isolated ones. A single em dash means nothing; em dashes plus rule-of-three plus *vibrant tapestry* plus a "Conclusion" section is a confession.

Expand Down