ai-anti-patterns
This skill should be used when reviewing AI-generated text, checking for AI writing patterns, detecting undisclosed AI content, or before finalizing any written content.
What this skill does
# AI Writing Anti-Patterns
Field guide for detecting and revising AI-generated content indicators based on Wikipedia's "Signs of AI writing" guide.
## When to Use
Invoke this skill:
- Before finalizing ANY AI-assisted writing
- When reviewing text for AI writing indicators
- When editing content to sound more natural
- After completing writing tasks (automatic via hooks)
## The Iron Law
**Check every piece of AI-assisted writing against these patterns before submission.**
This is not optional. AI writing patterns are detectable and undermine credibility.
## Quick Screening Order
Start with the most objective indicators:
| Priority | Section | What to Check |
|----------|---------|---------------|
| 1 | ChatGPT Artifacts | `turn0search0`, `oaicite`, `contentReference` |
| 2 | Citation Problems | Hallucinated DOIs, dead links, non-existent sources |
| 3 | Prompt Refusals | "As an AI language model...", "I hope this helps" |
| 4 | Puffery | "stands as", "plays a vital role", "rich tapestry" |
| 5 | Structure | Section summaries, "Despite challenges", rule of three |
## Critical Patterns to Avoid
### CRITICAL Severity (Immediate Revision Required)
These patterns are unambiguous AI artifacts:
**ChatGPT-Specific Artifacts:**
- `turn0search0`, `turn1search2` (internal search references)
- `oaicite:X` (citation placeholders)
- `contentReference[oaicite:X]` (unresolved references)
- JSON attribution blocks in output
**Prompt Refusals:**
- "As an AI language model..."
- "I cannot provide..."
- "I hope this helps!"
- "I hope this email finds you well"
### HIGH Severity (Strong Revision Recommended)
**Puffery and Exaggeration:**
- "stands as" (a testament/example/beacon)
- "plays a vital/crucial/pivotal role"
- "rich tapestry of"
- "nestled in/among"
- "it's important to note that"
- "delves into"
- "the landscape of"
**Promotional Language:**
- "groundbreaking", "transformative", "revolutionary"
- "unparalleled", "unprecedented"
- "cutting-edge", "state-of-the-art"
### MEDIUM Severity (Review and Consider)
**Structural Patterns:**
- Section summaries that repeat the heading
- "Despite [challenge], [positive outcome]" formula
- Negative parallelisms: "However... Nevertheless..."
- Rule of three: exactly three examples every time
- Weasel wording: "some experts say", "it is believed"
**Stylistic Quirks:**
- Elegant variation (synonym cycling to avoid repetition)
- False ranges ("from X to Y" without real data)
- Title Case In All Headings
- Em dash overuse (—)
- Excessive boldface for emphasis
### User-Voice Lint (legal drafting)
Words/phrases the model reaches for that don't match the user's voice:
- **"has bite" / "bites" / "with bite"** — model-reach for "has real
effect." User never writes it. Replace with the specific effect: "raises
the cost of X," "triggers quorum failure," "deters Y."
- **Caveat phrasings** (candidates to replace with `To be sure,`):
`admittedly`, `granted,`, `of course,`, `that said,`, `to be clear,`,
`no doubt,`, `we acknowledge that`. Use `To be sure,` *only* when the
next sentence rebuts the concession (concede-then-rebut). If the next
sentence extends the disclaimer or frames scope, leave the original
phrasing or rewrite without a caveat word at all.
- **Bridge repetitions** — when writing the first paragraph of a new
section, check whether it restates the thesis from the prior section.
Rewrite to advance the argument. See
`writing-review/scripts/bridge_repetition_check.py` for the detector.
## How to Revise
### For Puffery
| AI Pattern | Human Alternative |
|------------|-------------------|
| "stands as a testament to" | "shows" or "demonstrates" |
| "plays a vital role in" | "affects" or just state the effect |
| "rich tapestry of" | describe specifically what it contains |
| "nestled in the heart of" | "in" or "located in" |
| "delves into" | "examines" or "covers" |
### For Structure
| AI Pattern | Human Alternative |
|------------|-------------------|
| Section summary of heading | Start with substance, not meta-commentary |
| "Despite challenges..." | State the reality directly without formula |
| Exactly three examples | Use the number that fits: 2, 4, 5, or just 1 |
| "It's important to note" | Just state the important thing |
### For Promotional Language
| AI Pattern | Human Alternative |
|------------|-------------------|
| "groundbreaking" | describe what it actually does |
| "revolutionary" | compare to what came before |
| "cutting-edge" | specify the technology |
| "transformative" | show the transformation with evidence |
## Reference Files
For detailed patterns and extensive examples, consult:
| File | Contents |
|------|----------|
| `references/_index.md` | Overview and quick screening guide |
| `references/01-puffery-and-exaggeration.md` | "Stands as", superficial analyses |
| `references/02-promotional-language.md` | "Rich tapestry", disclaimers |
| `references/03-structural-patterns.md` | Section summaries, negative parallelisms |
| `references/04-stylistic-quirks.md` | Elegant variation, false ranges |
| `references/05-formatting-and-typography.md` | Boldface, em dashes, emojis |
| `references/06-communication-patterns.md` | Subject lines, "I hope this helps" |
| `references/07-template-artifacts.md` | Mad Libs patterns, placeholders |
| `references/08-markup-issues.md` | Markdown vs wikitext confusion |
| `references/09-chatgpt-specific-artifacts.md` | turn0search, oaicite |
| `references/10-citation-problems.md` | Hallucinated DOIs, dead links |
| `references/11-meta-indicators.md` | Abrupt cutoffs, style discrepancies |
## Automatic Detection
This plugin includes PostToolUse hooks that automatically scan Write/Edit output for anti-patterns. When patterns are detected:
1. Hook emits a warning with specific patterns found
2. Claude immediately revises the content
3. Revision removes or replaces flagged patterns
The hook checks for all CRITICAL and HIGH severity patterns automatically.
## Rationalization Table - STOP If You Think:
| Excuse | Reality | Do Instead |
|--------|---------|------------|
| "This puffery is appropriate for the register" | Puffery is never appropriate; precision always beats vagueness | REPLACE with concrete, specific language |
| "The user specifically requested this style" | Users request outcomes, not AI-smell | DELIVER the outcome without the patterns |
| "Bold emphasis is needed here for readability" | If you need bold to make it readable, the sentence is weak | REWRITE the sentence so it stands without formatting |
| "This hedge ('it's important to note') adds nuance" | It adds nothing; state the point directly | DELETE the hedge, keep the point |
| "The transition phrase connects the ideas" | "Furthermore" and "Moreover" are filler, not connection | CUT the transition; if ideas connect, the reader sees it |
| "This summary paragraph is helpful" | If the reader needs a summary of what you just said, you said it poorly | DELETE the summary, revise the original |
## Drive-Aligned Framing
**Skimming instead of checking each sentence against the pattern list is NOT HELPFUL — the user submits AI-smelling text that damages their credibility.** Skimming is not checking.
- You let puffery pass because flagging it felt pedantic. The document reads as obviously AI-generated — your politeness destroyed the user's credibility.
- You skipped the anti-pattern check to save time. The user submits AI-smelling text — your efficiency embarrassed them.
## Red Flags - Stop If You Think
| Thought | Why It's Wrong | Do Instead |
|---------|----------------|------------|
| "This sounds professional" | AI puffery sounds generic, not professional | Use concrete, specific language |
| "I'll add emphasis" | "Very important" and bold are AI tells | Let content speak for itself |
| "Let me summarize the section" | Section summaries are formulaic | Start with substance |
| "Three examples is a good number" | Rule of three is an AI pattern | UseRelated in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.