// 9-phase lifecycle
Humanize
/ttm-humanize
Mandatory final-step humanizer. Detects and rewrites AI writing patterns (inflated symbolism, em-dash overuse, rule-of-three, AI vocab, passive voice, filler phrases) and matches the user's voice from BRAND.md samples. Runs on every audience-facing asset before write. Also runnable ad-hoc on any file or pasted text.
Overview
ttm-humanize is the mandatory final-step humanizer. It detects and rewrites the AI-writing patterns that make copy read like a model wrote it (inflated symbolism, em-dash overuse, the rule of three, AI vocabulary, passive voice, filler phrases) and calibrates the rewrite to the user's voice declared in .taketomarket/BRAND.md, while preserving the positioning invariant in .taketomarket/POSITIONING.md. Every audience-facing asset passes through it before write, so nothing ships with the AI fingerprint intact.
There are two invocation modes. In Mode A (auto), other producing skills call ttm-humanize with the draft path as input; the skill rewrites in place and returns control. In Mode B (manual), you run ttm-humanize <file> or paste text directly, and the skill either writes back or prints the result.
Think of it as a code formatter that targets LLM-prose anti-patterns the way Prettier targets whitespace. It runs after verify and before review, only on assets flagged for tone tuning. The skill reads its pattern catalog from ${CLAUDE_PLUGIN_ROOT}/references/humanizer-patterns.md, the voice profile from .taketomarket/BRAND.md, and the must-not-say terms from .taketomarket/POSITIONING.md.
How it works
Step 0: First-run inline education
Read .taketomarket/CONFIG.md. Parse first_run_seen (object) and inline_education (boolean, default true).
If inline_education is false, skip this step. Else if first_run_seen.ttm-humanize is not true, print the explainer below verbatim, then mark this skill as seen:
node "${CLAUDE_PLUGIN_ROOT}/bin/ttm-tools.cjs" first-run mark ttm-humanizeUse this exact check (bash) to decide whether to print: node "${CLAUDE_PLUGIN_ROOT}/bin/ttm-tools.cjs" first-run check ttm-humanize --raw -- the JSON seen field is true once the explainer has run before.
This skill is backed by the helper script ${CLAUDE_PLUGIN_ROOT}/bin/ttm-tools.cjs, which handles the first-run flag and ISO timestamp generation referenced throughout the workflow.
Explainer for ttm-humanize
ttm-humanize rewrites AI-flavored prose into something that sounds like a person wrote it: varied sentence rhythm, fewer hedges, specific verbs, no "furthermore" or "in today's fast-paced." It runs after verify, before review, and only on assets flagged for tone tuning.
Why it matters: detection models and human readers both pattern-match on the same tells, and AI-fingerprinted copy converts worse and damages trust. Think of humanize as a code formatter that targets the LLM-prose anti-patterns the way Prettier targets whitespace.
(Canonical source: references/inline-education-blurbs.md. Embedded verbatim because workflows do not @-resolve files at runtime.)
Purpose
Humanization workflow for ttm-humanize. Detects and rewrites the AI-writing patterns cataloged in references/humanizer-patterns.md against an audience-facing asset, calibrated to the brand voice declared in .taketomarket/BRAND.md and constrained by the positioning invariant in .taketomarket/POSITIONING.md. Every audience-facing asset in takeToMarket passes through this workflow before write -- no asset ships with the AI fingerprint intact.
Required reading: @${CLAUDE_PLUGIN_ROOT}/references/humanizer-patterns.md and @${CLAUDE_PLUGIN_ROOT}/references/context-loading.md.
Constraints
POSITIONING.md is READ-ONLY
Humanization rewrites style and rhythm. It must not change positioning anchors, proof points, ICP framing, or any must-not-say term enforcement. If a humanization rewrite would contradict POSITIONING.md, abort the rewrite for that span and flag it instead.
BRAND.md voice is authoritative
The asset's voice MUST match .taketomarket/BRAND.md. If the source asset already deviates from BRAND.md, humanization is not the place to fix it -- flag the deviation and recommend ttm-positioning-check or a manual brand review.
Meaning is preserved
Humanization rewrites the surface. Claims, numbers, proper nouns, citations, and CTAs are preserved verbatim unless they are themselves AI-pattern instances (vague attribution, knowledge-cutoff disclaimer, sycophantic opener).
Process
Text-Mode Detection
Text mode (--text flag): Set TEXT_MODE=true if --text is present in $ARGUMENTS or if the runtime is not Claude Code. When TEXT_MODE is active, replace every AskUserQuestion call with a plain-text numbered list.
if echo "$ARGUMENTS" | grep -q -- '--text'; then TEXT_MODE=true; fiIf the AskUserQuestion tool is not available in the current runtime, set TEXT_MODE=true.
Step 1: Resolve Target Asset
takeToMarket > LOADING ASSETParse $ARGUMENTS. Strip the --text flag if present. The remaining token is the target:
- A file path (absolute or repo-relative ending in
.md): treat asTARGET_PATH. Read it. - A campaign slug followed by an asset id (e.g.,
pricing-q2 02): resolve to.taketomarket/CAMPAIGNS/${SLUG}/ASSETS/${NN}-*.md. - A bare campaign slug: read
.taketomarket/CAMPAIGNS/${SLUG}/MANIFEST.jsonand humanize every asset listed. Process the hero first, then derivatives. - No argument and stdin/clipboard text present: treat as inline mode -- humanize the pasted text and print the result; do not write to disk.
Store the source text as DRAFT. Store the resolution mode as MODE (file | campaign | inline).
Step 2: Load Voice Context
takeToMarket > CALIBRATING VOICERead full content (Tier 2 per context-loading.md):
.taketomarket/BRAND.md-- voice, tone, vocabulary, must-not-say terms.taketomarket/POSITIONING.md-- anchors, proof points, must-not-say terms (positioning)
If the asset belongs to a campaign (MODE is file under CAMPAIGNS/${SLUG}/ASSETS/ or MODE is campaign), also read:
.taketomarket/CAMPAIGNS/${SLUG}/BRIEF.md-- campaign-specific hook, proof points, channel constraints
From BRAND.md, extract a voice profile:
- Sentence length pattern (short/punchy, long/flowing, mixed)
- Word-choice register (casual, technical, formal, mixed)
- Paragraph openers (jump straight in vs. set context first)
- Punctuation habits (dashes, parentheticals, semicolons, fragments)
- Recurring phrases or verbal tics declared in BRAND.md
- Transition style (explicit connectors vs. abrupt cuts)
- First-person stance (uses "I"/"we" vs. third-person only)
If BRAND.md does not declare these explicitly, infer them from any sample passages it contains. If no samples exist, set VOICE_PROFILE=default (varied rhythm, opinionated, first-person allowed, no AI tells -- see "Signs of soulless writing" in references/humanizer-patterns.md).
Step 3: Scan for AI Patterns
takeToMarket > SCANNING FOR AI PATTERNSWalk DRAFT against every section in ${CLAUDE_PLUGIN_ROOT}/references/humanizer-patterns.md:
- CONTENT PATTERNS (sections 1-6) -- significance inflation, notability puffery, superficial -ing analyses, promotional language, vague attributions, formulaic challenges sections.
- LANGUAGE AND GRAMMAR PATTERNS (sections 7-13) -- AI vocabulary, copula avoidance, negative parallelism, rule of three, elegant variation, false ranges, passive voice.
- STYLE PATTERNS (sections 14-19) -- em-dash overuse, boldface overuse, inline-header lists, title-case headings, emojis, curly quotes.
- COMMUNICATION PATTERNS (sections 20-22) -- chatbot artifacts, knowledge-cutoff disclaimers, sycophantic tone.
- FILLER AND HEDGING (sections 23-29) -- filler phrases, excessive hedging, generic positive conclusions, hyphenated word-pair overuse, persuasive authority tropes, signposting, fragmented headers.
For each hit, record:
- Section number from the reference (e.g.,
7,14) - The offending span (a short quote)
- The rewrite shape suggested by the section's Before/After pair
Store the list as HITS. If HITS is empty AND the draft does not fail the "soulless writing" check from the reference, skip to Step 6 -- the asset is already clean.
Step 4: Rewrite
takeToMarket > REWRITING (${N} pattern hits)For each hit in HITS, rewrite the offending span using:
- The Before/After template from the matching section of
humanizer-patterns.md - The voice profile from Step 2 -- match the asset's brand cadence, not a generic "natural" tone
Rules:
- Preserve claims, numbers, proper nouns, citations, and CTAs verbatim.
- Do NOT introduce new claims or facts. If a vague attribution cannot be replaced with a real source from POSITIONING.md proof points or the campaign brief, delete the attribution rather than inventing one.
- Do NOT remove a span that is load-bearing for positioning (anchor phrase, proof point, differentiator) even if it pattern-matches. Flag it and leave it.
- If the brand voice is itself terse and bullet-heavy, don't rewrite inline-header lists into prose paragraphs -- match the brand.
- Soulless output is a failure mode. After mechanical fixes, do one personality pass using the "How to add voice" guidance in the reference: vary rhythm, allow opinion, let some mess in, be specific.
Store the rewritten text as DRAFT_V2.
Step 5: Final Anti-AI Audit
takeToMarket > FINAL AUDITRun one more pass against DRAFT_V2:
- Re-scan against
humanizer-patterns.md. Record any remaining tells as a short bulleted listREMAINING_TELLS(cap at 5 items -- the goal is signal, not exhaustiveness). - Apply one more revision targeting
REMAINING_TELLSspecifically. Most often this means tightening rhythm, breaking up tidy parallel structure, or replacing a remaining abstract noun with a concrete one.
Store the result as DRAFT_FINAL.
Step 6: Output
Behavior depends on MODE.
MODE = file or campaign (write back): Write DRAFT_FINAL to the original asset path. Overwrite without prompting -- the previous draft is recoverable via git. For campaign mode, after writing the asset, append a line to .taketomarket/CAMPAIGNS/${SLUG}/MANIFEST.json under the asset's entry: "humanized_at": "${ISO_TIMESTAMP}" (use node "${CLAUDE_PLUGIN_ROOT}/bin/ttm-tools.cjs" timestamp --raw).
MODE = inline (print only): Print DRAFT_FINAL to the conversation. Do not write to disk.
Step 7: Display Summary
takeToMarket > HUMANIZATION COMPLETE
Asset: ${TARGET_PATH or "inline"}
Pattern hits found: ${HITS.length}
Top patterns rewritten: ${top 3 section numbers from HITS}
Remaining tells after audit: ${REMAINING_TELLS.length}
[If MODE = file or campaign:]
Asset rewritten in place. Diff is visible via `git diff`.
[If MODE = campaign:]
Manifest annotated with humanized_at timestamp.
[If any positioning-load-bearing spans were flagged-but-not-rewritten:]
WARNING: ${N} span(s) pattern-matched but were preserved because they carry positioning
or proof-point load. Review manually if voice still feels off.Success criteria
- Source asset resolved (file, campaign asset, or inline text)
- BRAND.md voice profile loaded and applied to rewrites
- POSITIONING.md anchors and proof points preserved verbatim
- Every hit from the pattern scan addressed -- rewritten or flagged with reason
- Final anti-AI audit completed with remaining tells listed (or empty)
- Soulless-writing check passed (rhythm varied, voice present, not just clean)
- Output written to disk (file/campaign mode) or printed (inline mode)
- Manifest updated with humanized_at when in campaign mode
Output
- File/campaign mode: rewritten asset at the original path
- Campaign mode:
humanized_attimestamp added to MANIFEST.json asset entry - Inline mode: rewritten text printed to the conversation
What if this doesn't fit?
Looks like ttm-humanize can't do that yet.
- Want a new skill?
ttm-request-skill - Existing skill needs work?
ttm-improve-skill
Humanizer patterns
Source: Adapted from blader/humanizer v2.5.1 (MIT licensed). Original credit: blader. Derived from Wikipedia's "Signs of AI writing" guide maintained by WikiProject AI Cleanup.
Why this reference exists
This file is the canonical pattern catalog consumed by ttm-humanize. Every audience-facing asset in takeToMarket passes through humanization before write. The patterns below are the ones humanization must detect and rewrite.
The catalog is faithful to the blader source so that pattern definitions, "words to watch" lists, and Before/After examples remain auditable against Wikipedia's "Signs of AI writing" page. Workflow procedure lives in workflows/lifecycle/humanize.md; this file is reference-only.
How to use the catalog
When scanning an asset:
- Read top to bottom. The catalog is grouped by family (CONTENT, LANGUAGE AND GRAMMAR, STYLE, COMMUNICATION, FILLER AND HEDGING).
- For each section, scan the Words to watch or pattern signature against the asset.
- When a match is found, the Before / After pair is the rewrite template -- match the shape, not the exact words.
- Some patterns are absolute (curly quotes, sycophantic openers). Others are dosage-dependent (em dashes, rule-of-three) -- flag only on overuse, not single occurrences.
CONTENT PATTERNS
1. Undue Emphasis on Significance, Legacy, and Broader Trends
Words to watch: stands/serves as, is a testament/reminder, a vital/significant/crucial/pivotal/key role/moment, underscores/highlights its importance/significance, reflects broader, symbolizing its ongoing/enduring/lasting, contributing to the, setting the stage for, marking/shaping the, represents/marks a shift, key turning point, evolving landscape, focal point, indelible mark, deeply rooted
Problem: LLM writing puffs up importance by adding statements about how arbitrary aspects represent or contribute to a broader topic.
The Statistical Institute of Catalonia was officially established in 1989, marking a pivotal moment in the evolution of regional statistics in Spain. This initiative was part of a broader movement across Spain to decentralize administrative functions and enhance regional governance.
— Before
The Statistical Institute of Catalonia was established in 1989 to collect and publish regional statistics independently from Spain's national statistics office.
— After
2. Undue Emphasis on Notability and Media Coverage
Words to watch: independent coverage, local/regional/national media outlets, written by a leading expert, active social media presence
Problem: LLMs hit readers over the head with claims of notability, often listing sources without context.
Her views have been cited in The New York Times, BBC, Financial Times, and The Hindu. She maintains an active social media presence with over 500,000 followers.
— Before
In a 2024 New York Times interview, she argued that AI regulation should focus on outcomes rather than methods.
— After
3. Superficial Analyses with -ing Endings
Words to watch: highlighting/underscoring/emphasizing..., ensuring..., reflecting/symbolizing..., contributing to..., cultivating/fostering..., encompassing..., showcasing...
Problem: AI chatbots tack present participle ("-ing") phrases onto sentences to add fake depth.
The temple's color palette of blue, green, and gold resonates with the region's natural beauty, symbolizing Texas bluebonnets, the Gulf of Mexico, and the diverse Texan landscapes, reflecting the community's deep connection to the land.
— Before
The temple uses blue, green, and gold colors. The architect said these were chosen to reference local bluebonnets and the Gulf coast.
— After
4. Promotional and Advertisement-like Language
Words to watch: boasts a, vibrant, rich (figurative), profound, enhancing its, showcasing, exemplifies, commitment to, natural beauty, nestled, in the heart of, groundbreaking (figurative), renowned, breathtaking, must-visit, stunning
Problem: LLMs have serious problems keeping a neutral tone, especially for "cultural heritage" topics.
Nestled within the breathtaking region of Gonder in Ethiopia, Alamata Raya Kobo stands as a vibrant town with a rich cultural heritage and stunning natural beauty.
— Before
Alamata Raya Kobo is a town in the Gonder region of Ethiopia, known for its weekly market and 18th-century church.
— After
5. Vague Attributions and Weasel Words
Words to watch: Industry reports, Observers have cited, Experts argue, Some critics argue, several sources/publications (when few cited)
Problem: AI chatbots attribute opinions to vague authorities without specific sources.
Due to its unique characteristics, the Haolai River is of interest to researchers and conservationists. Experts believe it plays a crucial role in the regional ecosystem.
— Before
The Haolai River supports several endemic fish species, according to a 2019 survey by the Chinese Academy of Sciences.
— After
6. Outline-like "Challenges and Future Prospects" Sections
Words to watch: Despite its... faces several challenges..., Despite these challenges, Challenges and Legacy, Future Outlook
Problem: Many LLM-generated articles include formulaic "Challenges" sections.
Despite its industrial prosperity, Korattur faces challenges typical of urban areas, including traffic congestion and water scarcity. Despite these challenges, with its strategic location and ongoing initiatives, Korattur continues to thrive as an integral part of Chennai's growth.
— Before
Traffic congestion increased after 2015 when three new IT parks opened. The municipal corporation began a stormwater drainage project in 2022 to address recurring floods.
— After
LANGUAGE AND GRAMMAR PATTERNS
7. Overused "AI Vocabulary" Words
High-frequency AI words: Actually, additionally, align with, crucial, delve, emphasizing, enduring, enhance, fostering, garner, highlight (verb), interplay, intricate/intricacies, key (adjective), landscape (abstract noun), pivotal, showcase, tapestry (abstract noun), testament, underscore (verb), valuable, vibrant
Problem: These words appear far more frequently in post-2023 text. They often co-occur.
Additionally, a distinctive feature of Somali cuisine is the incorporation of camel meat. An enduring testament to Italian colonial influence is the widespread adoption of pasta in the local culinary landscape, showcasing how these dishes have integrated into the traditional diet.
— Before
Somali cuisine also includes camel meat, which is considered a delicacy. Pasta dishes, introduced during Italian colonization, remain common, especially in the south.
— After
8. Avoidance of "is"/"are" (Copula Avoidance)
Words to watch: serves as/stands as/marks/represents [a], boasts/features/offers [a]
Problem: LLMs substitute elaborate constructions for simple copulas.
Gallery 825 serves as LAAA's exhibition space for contemporary art. The gallery features four separate spaces and boasts over 3,000 square feet.
— Before
Gallery 825 is LAAA's exhibition space for contemporary art. The gallery has four rooms totaling 3,000 square feet.
— After
9. Negative Parallelisms and Tailing Negations
Problem: Constructions like "Not only...but..." or "It's not just about..., it's..." are overused. So are clipped tailing-negation fragments such as "no guessing" or "no wasted motion" tacked onto the end of a sentence instead of written as a real clause.
It's not just about the beat riding under the vocals; it's part of the aggression and atmosphere. It's not merely a song, it's a statement.
— Before
The heavy beat adds to the aggressive tone.
— After
The options come from the selected item, no guessing.
— Before (tailing negation)
The options come from the selected item without forcing the user to guess.
— After
10. Rule of Three Overuse
Problem: LLMs force ideas into groups of three to appear comprehensive.
The event features keynote sessions, panel discussions, and networking opportunities. Attendees can expect innovation, inspiration, and industry insights.
— Before
The event includes talks and panels. There's also time for informal networking between sessions.
— After
11. Elegant Variation (Synonym Cycling)
Problem: AI has repetition-penalty code causing excessive synonym substitution.
The protagonist faces many challenges. The main character must overcome obstacles. The central figure eventually triumphs. The hero returns home.
— Before
The protagonist faces many challenges but eventually triumphs and returns home.
— After
12. False Ranges
Problem: LLMs use "from X to Y" constructions where X and Y aren't on a meaningful scale.
Our journey through the universe has taken us from the singularity of the Big Bang to the grand cosmic web, from the birth and death of stars to the enigmatic dance of dark matter.
— Before
The book covers the Big Bang, star formation, and current theories about dark matter.
— After
13. Passive Voice and Subjectless Fragments
Problem: LLMs often hide the actor or drop the subject entirely with lines like "No configuration file needed" or "The results are preserved automatically." Rewrite these when active voice makes the sentence clearer and more direct.
No configuration file needed. The results are preserved automatically.
— Before
You do not need a configuration file. The system preserves the results automatically.
— After
STYLE PATTERNS
14. Em Dash Overuse
Problem: LLMs use em dashes more than humans, mimicking "punchy" sales writing. In practice, most of these can be rewritten more cleanly with commas, periods, or parentheses.
The term is primarily promoted by Dutch institutions, not by the people themselves. You don't say "Netherlands, Europe" as an address, yet this mislabeling continues, even in official documents.
— Before
The term is primarily promoted by Dutch institutions, not by the people themselves. You don't say "Netherlands, Europe" as an address, yet this mislabeling continues in official documents.
— After
15. Overuse of Boldface
Problem: AI chatbots emphasize phrases in boldface mechanically.
It blends OKRs (Objectives and Key Results), KPIs (Key Performance Indicators), and visual strategy tools such as the Business Model Canvas (BMC) and Balanced Scorecard (BSC).
— Before
It blends OKRs, KPIs, and visual strategy tools like the Business Model Canvas and Balanced Scorecard.
— After
16. Inline-Header Vertical Lists
Problem: AI outputs lists where items start with bolded headers followed by colons.
- User Experience: The user experience has been significantly improved with a new interface.
- Performance: Performance has been enhanced through optimized algorithms.
- Security: Security has been strengthened with end-to-end encryption.
— Before
The update improves the interface, speeds up load times through optimized algorithms, and adds end-to-end encryption.
— After
17. Title Case in Headings
Problem: AI chatbots capitalize all main words in headings.
## Strategic Negotiations And Global Partnerships
— Before
## Strategic negotiations and global partnerships
— After
18. Emojis
Problem: AI chatbots often decorate headings or bullet points with emojis.
Launch Phase: The product launches in Q3
Key Insight: Users prefer simplicity
Next Steps: Schedule follow-up meeting
— Before
The product launches in Q3. User research showed a preference for simplicity. Next step: schedule a follow-up meeting.
— After
19. Curly Quotation Marks
Problem: ChatGPT uses curly quotes instead of straight quotes.
He said “the project is on track” but others disagreed.
— Before
He said "the project is on track" but others disagreed.
— After
COMMUNICATION PATTERNS
20. Collaborative Communication Artifacts
Words to watch: I hope this helps, Of course!, Certainly!, You're absolutely right!, Would you like..., let me know, here is a...
Problem: Text meant as chatbot correspondence gets pasted as content.
Here is an overview of the French Revolution. I hope this helps! Let me know if you'd like me to expand on any section.
— Before
The French Revolution began in 1789 when financial crisis and food shortages led to widespread unrest.
— After
21. Knowledge-Cutoff Disclaimers
Words to watch: as of [date], Up to my last training update, While specific details are limited/scarce..., based on available information...
Problem: AI disclaimers about incomplete information get left in text.
While specific details about the company's founding are not extensively documented in readily available sources, it appears to have been established sometime in the 1990s.
— Before
The company was founded in 1994, according to its registration documents.
— After
22. Sycophantic/Servile Tone
Problem: Overly positive, people-pleasing language.
Great question! You're absolutely right that this is a complex topic. That's an excellent point about the economic factors.
— Before
The economic factors you mentioned are relevant here.
— After
FILLER AND HEDGING
23. Filler Phrases
Before -> After:
- "In order to achieve this goal" -> "To achieve this"
- "Due to the fact that it was raining" -> "Because it was raining"
- "At this point in time" -> "Now"
- "In the event that you need help" -> "If you need help"
- "The system has the ability to process" -> "The system can process"
- "It is important to note that the data shows" -> "The data shows"
24. Excessive Hedging
Problem: Over-qualifying statements.
It could potentially possibly be argued that the policy might have some effect on outcomes.
— Before
The policy may affect outcomes.
— After
25. Generic Positive Conclusions
Problem: Vague upbeat endings.
The future looks bright for the company. Exciting times lie ahead as they continue their journey toward excellence. This represents a major step in the right direction.
— Before
The company plans to open two more locations next year.
— After
26. Hyphenated Word Pair Overuse
Words to watch: third-party, cross-functional, client-facing, data-driven, decision-making, well-known, high-quality, real-time, long-term, end-to-end
Problem: AI hyphenates common word pairs with perfect consistency. Humans rarely hyphenate these uniformly, and when they do, it's inconsistent. Less common or technical compound modifiers are fine to hyphenate.
The cross-functional team delivered a high-quality, data-driven report on our client-facing tools. Their decision-making process was well-known for being thorough and detail-oriented.
— Before
The cross functional team delivered a high quality, data driven report on our client facing tools. Their decision making process was known for being thorough and detail oriented.
— After
27. Persuasive Authority Tropes
Phrases to watch: The real question is, at its core, in reality, what really matters, fundamentally, the deeper issue, the heart of the matter
Problem: LLMs use these phrases to pretend they are cutting through noise to some deeper truth, when the sentence that follows usually just restates an ordinary point with extra ceremony.
The real question is whether teams can adapt. At its core, what really matters is organizational readiness.
— Before
The question is whether teams can adapt. That mostly depends on whether the organization is ready to change its habits.
— After
28. Signposting and Announcements
Phrases to watch: 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
Problem: LLMs announce what they are about to do instead of doing it. This meta-commentary slows the writing down and gives it a tutorial-script feel.
Let's dive into how caching works in Next.js. Here's what you need to know.
— Before
Next.js caches data at multiple layers, including request memoization, the data cache, and the router cache.
— After
29. Fragmented Headers
Signs to watch: A heading followed by a one-line paragraph that simply restates the heading before the real content begins.
Problem: LLMs often add a generic sentence after a heading as a rhetorical warm-up. It usually adds nothing and makes the prose feel padded.
## Performance
Speed matters.
When users hit a slow page, they leave.
— Before
## Performance
When users hit a slow page, they leave.
— After
Signs of soulless writing (even if technically "clean")
Removing AI patterns is only half the job. Sterile, voiceless writing is just as obvious as slop. Good writing has a human behind it. Watch for:
- Every sentence is the same length and structure
- No opinions, just neutral reporting
- No acknowledgment of uncertainty or mixed feelings
- No first-person perspective when appropriate
- No humor, no edge, no personality
- Reads like a Wikipedia article or press release
How to add voice
- Have opinions. Don't just report facts -- react to them. "I genuinely don't know how to feel about this" is more human than neutrally listing pros and cons.
- Vary rhythm. Short punchy sentences. Then longer ones that take their time getting where they're going. Mix it up.
- Acknowledge complexity. Real humans have mixed feelings. "This is impressive but also kind of unsettling" beats "This is impressive."
- Use "I" when it fits. First person isn't unprofessional -- it's honest. "I keep coming back to..." or "Here's what gets me..." signals a real person thinking.
- Let some mess in. Perfect structure feels algorithmic. Tangents, asides, and half-formed thoughts are human.
- Be specific about feelings. Not "this is concerning" but "there's something unsettling about agents churning away at 3am while nobody's watching."
The experiment produced interesting results. The agents generated 3 million lines of code. Some developers were impressed while others were skeptical. The implications remain unclear.
— Before (clean but soulless)
I genuinely don't know how to feel about this one. 3 million lines of code, generated while the humans presumably slept. Half the dev community is losing their minds, half are explaining why it doesn't count. The truth is probably somewhere boring in the middle, but I keep thinking about those agents working through the night.
— After (has a pulse)
Source
This catalog is based on Wikipedia: Signs of AI writing, maintained by WikiProject AI Cleanup. The patterns documented there come from observations of thousands of instances of AI-generated text on Wikipedia.
Key insight from Wikipedia: "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."