plugins/content/skills/tighten-prose/SKILL.md
This skill should be used when the user asks to "tighten this up", "tighten the prose", "clean up the writing", "check for AI tells", "make this sound more human", "de-slop this", "run a writing pass", or when completing a writing task that should not read like AI output. Scans prose for statistically overrepresented AI writing patterns and rewrites flagged sections.
npx skillsauth add nicknisi/claude-plugins tighten-proseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A final editing pass that catches and removes AI-detectable writing patterns. Not a detector — an editor. The output reads like a human wrote it because, after this pass, a human shaped every sentence.
Read references/ai-tells.md for the full catalog of patterns, organized by category with examples and fix strategies.
AI writing tells evolve as models change. Fetch the current vocabulary list from Wikipedia:
https://en.wikipedia.org/w/api.php?action=parse&page=Wikipedia:Signs_of_AI_writing&prop=wikitext&format=json
Extract the "Words to watch" lists and AI vocabulary entries. Newer models drop old tells and develop new ones — the live source catches drift the static reference cannot.
If the fetch fails, the static reference is sufficient. Proceed without it.
Read the full text and scan across all categories:
| Category | Signal | | ------------------------ | ----------------------------------------------------------- | | Vocabulary clusters | 3+ AI-overused words in a section | | Inflated significance | Phrases that inflate importance without adding information | | Superficial -ing clauses | Participial phrases tacked on as fake depth | | Promotional language | Travel-brochure / sales-deck vocabulary | | Vague authority | Phantom expert attributions ("Industry reports suggest...") | | Formulaic transitions | Five-paragraph-essay connectors (moreover, furthermore) | | Negative parallelism | Overuse of "not X, it's Y" construction | | Rule of three | Every list having exactly three items | | Copula avoidance | "Serves as" instead of "is" | | Elegant variation | Thesaurus cycling to avoid repeating a concrete noun | | Em dash density | Em dashes at 2-3x human rate | | Formatting tells | Mechanical boldface, title case headings, emoji decoration |
The signal is density, not individual hits. One "crucial" is fine. A cluster of three AI vocabulary words in two paragraphs is a rewrite.
Present a concise summary:
Do not list every individual word match. Report clusters and structural patterns.
For each flagged section, rewrite to eliminate tells while preserving meaning.
Fix strategies:
Constraints:
If only a few sections changed, present before/after pairs for the changed passages. If the whole piece needed work, present the full rewrite.
Do not explain every change. The writing should speak for itself. Mention only changes where the reasoning is non-obvious.
Designed to work standalone or as a step in other writing workflows.
Standalone: Point at text and say "tighten this up."
Composed: Another skill (like blog-post-writer) calls for a tighten pass as its final quality gate. When composed, respect any voice calibration the parent skill has already established. Tighten removes autopilot patterns, not personality.
references/ai-tells.md — Full catalog of AI writing tells with examples, fix strategies, and density guidance. Adapted from Wikipedia's "Signs of AI writing."tools
Generate a /goal command to execute an ideation project's specs autonomously. Reads the contract, builds a goal prompt with phase ordering and spec paths, copies it to clipboard, and prints it. The user pastes the /goal command to start autonomous execution. Use when the user says 'goal', 'run as goal', 'get goal prompt', 'goal prompt', or wants to execute specs via /goal instead of /ideation:autopilot.
development
Go up a layer of abstraction and map the surrounding architecture. Use when the user is unfamiliar with an area of code, asks "how does this fit in", "what calls this", "give me the big picture", "where am I", "map this out", "I'm lost", "explain this area", or needs to understand how a file, module, or function connects to the rest of the system. Also use when the user says /zoom-out or "zoom out" mid-conversation — even without a specific file reference, orient them based on whatever code is currently in context.
development
Build a throwaway prototype to answer a design question before committing to real implementation. Generates either a runnable terminal app (for state machines, data models, business logic) or several radically different UI variations on one route (for visual/layout decisions). Use when the user wants to prototype, spike, POC, sanity-check a data model, mock up a UI, explore design options, or says "prototype this", "spike this out", "let me play with it", "try a few designs", "sketch this in code", "I want to try something before building it for real", "quick and dirty version", or "validate this approach" — even if they don't use the word "prototype."
development
Comprehensive, codebase-wide quality sweep that dispatches parallel subagents to find and fix structural issues. Covers deduplication, type consolidation, dead code removal, circular dependencies, weak types, defensive try/catch, deprecated paths, and AI slop. Primary support for JS/TS projects (knip, madge, TypeScript types); other languages get grep-based analysis. Use when the user asks to "deep clean the whole repo", "run a full codebase audit", "nuclear cleanup", "deslop everything", or "sweep the entire codebase for quality issues". Do NOT use for single-file fixes, branch-scoped diffs (use de-slopify instead), or targeted refactors.