fradser/skills · Archived

tropes

Detects and eliminates AI writing tropes that make text sound artificial or formulaic.

First seen Apr 16, 2026

Installation

$ npx skills add fradser/skills --skill tropes

Summary

  • Detects and eliminates AI writing tropes that make text sound artificial or formulaic.
  • Use as an explicit review/quality pass when asked to check writing style, eliminate AI cliches, audit documentation tone, or refine drafts.
  • Do not trigger automatically for ordinary code generation or initial document creation.
  • Supports four-tier JSON preferences (global/project x shared/local office.json) read via load-preferences.sh.

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from fradser/skills · top by installs.

npx skills add fradser/skills

Browse all from fradser/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 4
License LICENSE
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,516 B
  • docs SUMMARY.md 438 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 5 installs

SKILL.md

AI Writing Tropes Detection

Scan generated text for common AI writing patterns that make content sound artificial or formulaic. This skill provides a systematic workflow for identifying and eliminating tropes.

Source: tropes.fyi by ossama.is Original gist: ossa-ma/f3baa9d2 — the raw 33-trope list this skill's references/ are structured from and extended.

Core Principle

Write like a human expert: varied, precise, and professional.

The goal is to find the "middle ground" between overly colloquial or casual writing and the obscure, formulaic style typical of AI generation. A single pattern used once is usually fine; the problem occurs when multiple tropes cluster together or when the same trope repeats throughout the text.

When to Check

Scan for tropes when:

  • Generating any text content (documentation, comments, messages)
  • Reviewing writing before committing or publishing
  • Editing AI-generated drafts
  • Responding to user questions or creating explanations

Detection Workflow

0. Load User Preferences

CRITICAL: User preferences live in office.*.json files, merged by load-preferences.sh.

Run the loader script to get the merged preferences as a single JSON object:

bash <skill-dir>/scripts/load-preferences.sh

The script reads up to four files in precedence order (highest first): .agents/office.local.json (project, personal) > .agents/office.json (project, shared) > ~/.agents/office.local.json (global, personal) > ~/.agents/office.json (global, shared). It deep-merges them (scalars replaced by higher layer, lists concatenated and deduped, patterncaps deduped by id, deadmetaphors.entries by word), and prints the merged JSON to stdout. If jq is missing or all files are absent, it fails open to {} and default rules apply.

Apply the merged preferences as overrides/supplements to the default detection below:

  • bannedwords / bannedphrases / zh. / en. — additive to default trope words
  • preferred_terms — suggested replacements during revision
  • skip_categories — disables the named category entirely (enum: word-choice, sentence-structure, paragraph-structure, tone, formatting, composition, professional-balance)
  • sensitivity — threshold override (strict flags single occurrences; relaxed only 3+)
  • tone — baseline shift for professional-balance
  • formatting.maxemdashes / formatting.allowboldfirst_bullets — formatting thresholds
  • deadmetaphors — enforce per-word caps (default 1; quoteexception skips quoted speech); suggest replacement
  • patterncaps — enforce per-pattern caps (reversalsentence, parallelismtriple, arrowflow, numberedboldsections), honoring forbidden_in / scope / exception
  • rhetoricalbans — ban rhetorical patterns by stable ID (selfqa, selfevalsummary, parallelantithesissubheading, processmetanarration)
  • principles — judgmental free-text rules applied as additional checks

If both files are absent, after the detection run, offer to create the global file with default values.

See references/preferences-schema.md for the full field reference and merge rules.

1. Pattern Scan

Read through the text and identify:

  • Repeated sentence structures or openings
  • Formulaic transitions ("It's worth noting", "Here's the thing")
  • Ornate vocabulary where simple words work better
  • Rhetorical patterns that feel artificial
  • Overly colloquial or "chatty" fragments that lack professional weight

2. Cluster Check

Look for multiple tropes appearing together:

  • 3+ patterns in a single paragraph = high risk
  • Same pattern used 2+ times in a piece = needs revision
  • Em-dashes appearing 5+ times = formatting issue

3. Revision Strategy

For each identified trope:

  • Word choice: Replace with simpler, more direct language, or precise technical terms (avoid "magic adverbs").
  • Sentence structure: Vary openings and lengths naturally, grouping related thoughts into coherent paragraphs.
  • Transitions: Use logic-driven connectors (e.g., "Consequently," "Conversely") instead of filler phrases.
  • Formatting: Reduce em-dashes, remove bold-first bullets.

4. Verification

After revision:

  • Re-scan for remaining patterns
  • Check that text sounds natural when read aloud
  • Ensure specificity (concrete details vs vague attributions)
  • Confirm the tone is professional yet accessible ("Expert Clarity")

5. Preference Sync (Optional)

After the detection run, offer to save preferences to one of the four files (default ~/.agents/office.local.json):

  • ~/.agents/office.local.json — global personal defaults
  • ~/.agents/office.json — global shared baseline
  • .agents/office.local.json — project personal (gitignore this)
  • .agents/office.json — project shared (commit this for the team)

When the user wants a rule shared with a team, suggest a .json (shared) file; for personal preferences, a .local.json file. Then:

  • Newly flagged words → bannedwords / bannedphrases / zh.bannedwords / en.bannedwords
  • Repeated correction patterns → preferred_terms
  • New dead metaphors → dead_metaphors.entries (with word, replacement, cap)
  • New sentence-pattern caps → patterncaps (with id, max/maxnodes, optional forbidden_in/scope/exception)
  • Rhetorical pattern bans → rhetorical_bans (stable ID)
  • Judgmental rules → principles
  • Sensitivity adjustments → sensitivity

Default target is the global file unless the user specifies project-level. Do not auto-write. Present a diff preview: which file, which field, and what the merged JSON will look like. Let the user confirm before writing.

Pattern Categories

The complete trope catalog is organized into seven categories. Load specific references as needed:

  1. Word Choice - references/word-choice.md Ornate vocabulary, magic adverbs, pompous constructions
  1. Sentence Structure - references/sentence-structure.md Negative parallelism, rhetorical questions, formulaic patterns
  1. Paragraph Structure - references/paragraph-structure.md Short fragments, listicle disguises
  1. Tone - references/tone.md False suspense, pedagogical voice, vague attributions
  1. Formatting - references/formatting.md Em-dash overuse, bold-first bullets, unicode decoration
  1. Composition - references/composition.md Fractal summaries, dead metaphors, content duplication
  1. Professional Balance - references/professional-balance.md Avoiding both overly colloquial "humanisms" and obscure AI-isms.

Plus one supporting schema (not a trope category):

  • User Preferences - references/preferences-schema.md Four-tier JSON config: project/global x shared/local .agents/office*.json, read and merged by load-preferences.sh. Custom banned words/phrases, dead metaphors, pattern caps, sensitivity, tone, skip categories.