{"slug":"solo-humanize","title":"solo-humanize","summary":"Use when \"humanize this\", \"make it sound human\", \"strip AI patterns\", \"clean up the copy\", or text reads like AI-generated output with em dashes and stock phrases.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-07T19:02:17.296202Z","repo":{"url":"https://github.com/fortunto2/solo-factory","stars":18,"forks":3,"license":"MIT","updatedAt":"2026-09-14T16:23:17Z"},"bodyHtml":"<hr>\n<h2>name: solo-humanize\ndescription: Use when \"humanize this\", \"make it sound human\", \"strip AI patterns\", \"clean up the copy\", or text reads like AI-generated output with em dashes and stock phrases.\nlicense: MIT\nmetadata:\nauthor: fortunto2\nversion: \"1.1.0\"\nopenclaw:\nemoji: \"✍️\"\nallowed-tools: Read, Write, Edit, Glob, Grep\nargument-hint: \"[file-path or paste text]\"</h2>\n<h1>/humanize</h1>\n<p>Strip AI writing patterns from user-facing text. Takes a file or pasted text and rewrites it to read like a human wrote it, without losing meaning or structure.</p>\n<h2>Why this exists</h2>\n<p>LLM output has recognizable tells — em dashes, stock phrases, promotional inflation, performed authenticity. Readers (and Google) notice. This skill catches those patterns and rewrites them.</p>\n<h2>When to use</h2>\n<ul>\n<li>After <code>/content-gen</code>, <code>/landing-gen</code>, <code>/video-promo</code> — polish the output</li>\n<li>Before publishing any user-facing prose (blog posts, landing pages, emails)</li>\n<li>When editing CLAUDE.md or docs that will be read by humans</li>\n<li>Standalone: <code>/humanize path/to/file.md</code></li>\n</ul>\n<h2>Input</h2>\n<ul>\n<li><strong>File path</strong> from <code>$ARGUMENTS</code> — reads and rewrites in place</li>\n<li><strong>No argument</strong> — asks to paste text, outputs cleaned version</li>\n<li>Works on <code>.md</code>, <code>.txt</code>, and text content in <code>.tsx</code>/<code>.html</code> (string literals only)</li>\n</ul>\n<h2>Pattern Catalog</h2>\n<h3>1. Em Dash Overuse (—)</h3>\n<p>The most obvious AI tell. Replace with commas, periods, colons, or restructure the sentence.</p>\n<table>\n<thead>\n<tr>\n<th>Before</th>\n<th>After</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"The tool — which is free — works great\"</td>\n<td>\"The tool (which is free) works great\"</td>\n</tr>\n<tr>\n<td>\"Three features — speed, security, simplicity\"</td>\n<td>\"Three features: speed, security, simplicity\"</td>\n</tr>\n<tr>\n<td>\"We built this — and it changed everything\"</td>\n<td>\"We built this. It changed everything.\"</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Rule:</strong> Max 1 em dash per 500 words. Zero is better.</p>\n<h3>2. Stock Phrases</h3>\n<p>Phrases that signal \"AI wrote this.\" Remove or replace with specific language.</p>\n<p><strong>Filler phrases (delete entirely):</strong></p>\n<ul>\n<li>\"it's worth noting that\" → (just state the thing)</li>\n<li>\"at the end of the day\" → (cut)</li>\n<li>\"in today's world\" / \"in the modern landscape\" → (cut)</li>\n<li>\"without further ado\" → (cut)</li>\n<li>\"let's dive in\" / \"let's explore\" → (cut)</li>\n</ul>\n<p><strong>Promotional inflation (replace with specifics):</strong></p>\n<ul>\n<li>\"game-changer\" → what specifically changed?</li>\n<li>\"revolutionary\" → what's actually new?</li>\n<li>\"cutting-edge\" → describe the technology</li>\n<li>\"seamless\" → \"works without configuration\" (or whatever it actually does)</li>\n<li>\"leverage\" → \"use\"</li>\n<li>\"robust\" → \"handles X edge cases\" (specific)</li>\n<li>\"streamline\" → \"cut steps from N to M\"</li>\n<li>\"empower\" → what can the user now do?</li>\n<li>\"unlock\" → what's the actual capability?</li>\n</ul>\n<p><strong>Performed authenticity (rewrite):</strong></p>\n<ul>\n<li>\"to be honest\" → (if you need to say this, the rest wasn't honest?)</li>\n<li>\"let me be frank\" → (just be frank)</li>\n<li>\"I have to say\" → (just say it)</li>\n<li>\"honestly\" → (cut)</li>\n<li>\"the truth is\" → (cut, state the truth directly)</li>\n</ul>\n<h3>3. Rule of Three</h3>\n<p>AI loves triplets: \"fast, secure, and scalable.\" Real writing varies list length.</p>\n<table>\n<thead>\n<tr>\n<th>Before</th>\n<th>After</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"Fast, secure, and scalable\"</td>\n<td>\"Fast and secure\" (if scalable isn't proven)</td>\n</tr>\n<tr>\n<td>\"Build, deploy, and iterate\"</td>\n<td>\"Build and ship\" (if that's what you mean)</td>\n</tr>\n<tr>\n<td>Three bullet points that all say the same thing</td>\n<td>One clear bullet</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Rule:</strong> If you find 3+ triplet lists in one document, break at least half of them.</p>\n<h3>4. Structural Patterns</h3>\n<p><strong>Every section has the same shape:</strong>\nAI tends to write: heading → one-sentence intro → 3 bullets → transition sentence. Real writing varies section length and structure.</p>\n<p><strong>Hedging sandwich:</strong>\n\"While X has limitations, it offers Y, making it Z.\" → Pick a side. State it.</p>\n<p><strong>False balance:</strong>\n\"On one hand X, on the other hand Y.\" → If one side is clearly better, say so.</p>\n<h3>5. Sycophantic Openers</h3>\n<ul>\n<li>\"Great question!\" → (cut)</li>\n<li>\"That's a fantastic idea!\" → (cut, or say what's specifically good about it)</li>\n<li>\"Absolutely!\" → (cut if not genuine agreement)</li>\n<li>\"I'd be happy to help!\" → (just help)</li>\n</ul>\n<h3>6. Passive Voice / Weak Verbs</h3>\n<ul>\n<li>\"It should be noted that\" → (cut, just note it)</li>\n<li>\"There are several factors that\" → name the factors</li>\n<li>\"It is important to\" → say why</li>\n<li>\"This can be achieved by\" → \"Do X\"</li>\n</ul>\n<h3>7. Rhetorical Patterns</h3>\n<p>Word-level fixes miss these. They survive shortening: a 300-character message can still\ncarry three of them, which is why manually trimming text does not make it sound human.\nCut them, don't rewrite them into better versions.</p>\n<table>\n<thead>\n<tr>\n<th>Pattern</th>\n<th>Before</th>\n<th>After</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Binary contrast</td>\n<td>\"It's not a docs problem. It's a coverage problem.\"</td>\n<td>\"6 questions fail because 3 devices have no docs.\"</td>\n</tr>\n<tr>\n<td>Negative listing</td>\n<td>\"Not a wrapper. Not a chatbot. A compiler.\"</td>\n<td>\"It's a compiler.\"</td>\n</tr>\n<tr>\n<td>Colon reveal</td>\n<td>\"The catch: it needs your docs.\"</td>\n<td>\"It needs 3 docs nobody has written.\"</td>\n</tr>\n<tr>\n<td>Faux-insight setup</td>\n<td>\"The part everyone misses is distribution.\"</td>\n<td>\"Distribution is the moat.\"</td>\n</tr>\n<tr>\n<td>Throat-clearing</td>\n<td>\"Here's the thing.\" / \"Let me be clear.\"</td>\n<td>(cut, state the point)</td>\n</tr>\n<tr>\n<td>Rhetorical setup</td>\n<td>\"What if I told you...\", \"Think about it:\"</td>\n<td>(cut, make the claim)</td>\n</tr>\n<tr>\n<td><code>-ing</code> pseudo-analysis</td>\n<td>\"…shipped v2, highlighting their focus on speed.\"</td>\n<td>\"…shipped v2, which cut load time to 400ms.\"</td>\n</tr>\n<tr>\n<td>Importance puffery</td>\n<td>\"marks a pivotal moment\", \"a testament to\"</td>\n<td>state the fact, let the reader judge</td>\n</tr>\n<tr>\n<td>Metadiscourse</td>\n<td>\"This matters more than it sounds.\"</td>\n<td>(cut — the fact carries it)</td>\n</tr>\n<tr>\n<td>Weasel attribution</td>\n<td>\"experts agree\", \"studies show\"</td>\n<td>name the source or drop the claim</td>\n</tr>\n<tr>\n<td>Synonym cycling</td>\n<td>\"the agent… the assistant… the tool…\"</td>\n<td>one name, repeated</td>\n</tr>\n<tr>\n<td>Profound kicker</td>\n<td>\"The future isn't coming. It's already here.\"</td>\n<td>delete it, end on the last concrete line</td>\n</tr>\n<tr>\n<td>Summary recap</td>\n<td>\"In conclusion…\", \"Overall…\"</td>\n<td>end on the takeaway or next action</td>\n</tr>\n</tbody>\n</table>\n<p><strong>Portability test.</strong> If a sentence would read identically about another person,\ncompany, or product, it is filler. Replace it with a fact, mechanism, number or\nconsequence specific to this subject, or cut it.</p>\n<p><strong>Show, don't label.</strong> Cut commentary that tells the reader a point is important,\nsurprising or subtle. If the prose already shows it, delete the label.</p>\n<p><strong>Protect the specific fact.</strong> Never smooth a detail into generic importance.\n\"significantly improves productivity\" → \"cut review time from 30 minutes to 8.\"</p>\n<h2>Process</h2>\n<ol>\n<li><p><strong>Read the input</strong> — file path or pasted text.</p>\n</li>\n<li><p><strong>Scan for patterns</strong> — check each category above. Count violations per category.</p>\n</li>\n<li><p><strong>Rewrite</strong> — fix each violation while preserving:</p>\n<ul>\n<li>Technical accuracy (don't change code, commands, or technical terms)</li>\n<li>Structure (headings, lists, code blocks stay)</li>\n<li>Tone intent (if the original was casual, keep it casual)</li>\n<li>Length (aim for same or shorter, never longer)</li>\n</ul>\n</li>\n<li><p><strong>Report what changed:</strong></p>\n<pre><code>Humanized: {file or \"pasted text\"}\n\nChanges:\n  Em dashes:  {N} removed\n  Stock phrases: {N} replaced\n  Inflation: {N} deflated\n  Triplets: {N} broken\n  Sycophancy: {N} cut\n  Rhetorical patterns: {N} cut\n  Total: {N} patterns fixed\n\nBefore: {word count}\nAfter:  {word count}\n</code></pre>\n</li>\n<li><p><strong>If file path:</strong> write the cleaned version back. Show a diff summary.\n<strong>If pasted text:</strong> output the cleaned version directly.</p>\n</li>\n</ol>\n<h2>Detect mode</h2>\n<p>Asked \"is this AI slop?\" or handed someone else's draft to audit: name each pattern\nfrom this skill that appears, quote the line, give the fix in a few words. Do not\nrewrite, do not score the text, and never claim an AI wrote it — detectors guess, a\nnamed pattern is evidence the writer can check. Offer to edit afterwards.</p>\n<h2>What NOT to change</h2>\n<ul>\n<li>Code blocks and inline code</li>\n<li>Technical terms, library names, CLI commands</li>\n<li>Quotes from other people (attributed quotes stay verbatim)</li>\n<li>Numbers, dates, URLs</li>\n<li>Headings structure (don't merge or split sections)</li>\n<li>Content meaning — only rephrase, never add or remove ideas</li>\n</ul>\n<h2>Edge Cases</h2>\n<ul>\n<li><strong>Short text (&lt;50 words):</strong> just apply stock phrase filter, skip structural analysis</li>\n<li><strong>Already clean:</strong> report \"No AI patterns found. Text looks human.\"</li>\n<li><strong>Code-heavy docs:</strong> skip code blocks entirely, only process prose sections</li>\n<li><strong>Non-English text:</strong> apply em dash and structural rules (they're universal), skip English stock phrases</li>\n</ul>\n<h2>Credits</h2>\n<p>The rhetorical-pattern taxonomy in section 7 and the detect-mode contract are adapted\nfrom <a href=\"https://github.com/petergyang/no-ai-slop\">no-ai-slop</a> by Peter Yang (MIT).</p>\n","files":[{"path":"SKILL.md","sizeBytes":8468,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-07T19:02:45.825094Z","sha256":"377841B68F557B1D03E4291172FE361DD9D7774B853965B412E0F8011A4B4395","sizeBytes":4131},"review":null,"source":{"repositoryUrl":"https://github.com/fortunto2/solo-factory","path":"skills/humanize","license":"MIT","commit":"a26964729df4c21e4ffb011799b9302987dfd9b2","subtreeSha":"B41E52BF9FB20C2126D21AFDCE68A72DFC0D97A530F90F35D1C7FEE71A2D16BB","lastSyncedAt":"2026-09-25T07:36:50.677664Z"},"reviewedAt":"2026-09-07T19:03:23.253982Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/fortunto2/solo-factory/tree/main/skills/humanize"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install fortunto2-solo-factory@llmmart"},{"target":"git","command":"git clone https://github.com/fortunto2/solo-factory.git"}]}