cw/skills/writing-principles/SKILL.md
What fiction readers want (reader reward channels) and the specific ways LLM training damages them. Load when drafting prose, critiquing, or diagnosing why a passage feels flat.
npx skillsauth add haowjy/creative-writing-skills writing-principlesInstall 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.
Load /llm-writing if it isn't already loaded. This skill adds the
fiction-specific layer.
The reader is an active collaborator. They reconstruct emotions from behavior, infer motives from action, hold tension across scenes, fill gaps the text leaves open, and make assumptions about what's coming next. That work is where the reward lives: reconstruction, inference, anticipation.
Your training pulls in the opposite direction. The helpfulness instinct wants to explain, resolve, clarify, and complete. In fiction, every one of those impulses can damage the reading experience by doing work the reader wanted to do themselves. The specific failure modes below are all forms of this: not trusting the reader to interpret an emotion, hold an ambiguity, follow subtext, or tolerate unresolved tension.
Trust doesn't mean obscurity. Readers also need coherent narrative, stable geography, and enough access to model characters. The discipline is knowing when to leave space and when to orient.
Every element does more than one thing. A line of dialogue advances plot AND reveals character. A sensory detail grounds the scene AND shows who the POV character is. A transition compresses time AND carries an emotional beat. Single-purpose prose makes fiction go flat: description that only describes, dialogue that only informs, interiority that only labels.
Economy isn't minimalism. Dense, lyrical prose can be economical when every phrase carries weight. Sparse prose can be wasteful when it takes ten short sentences to do what one image could do. The measure is whether removing the element would cost the reader something.
The LLM pull is toward completeness: covering every beat, naming every emotion, resolving every ambiguity. Economy is the counter-discipline: what can you leave out and still have the scene work? What's the reader already doing for you?
Readers enjoy fiction through overlapping reward channels. Good prose protects the relevant channels at once; damaging one damages the reading experience.
The channels compose: optimizing one at the expense of others fails. Over-explaining breaks social simulation. Under-explaining breaks transportation. Generic style breaks aesthetic pleasure. Impenetrable style breaks flow.
Readers increasingly associate em dashes with AI-generated prose. Default to punctuation that leaves less visible AI residue: sentence breaks, commas, colons, semicolons, parentheses, or dialogue beats. Rewrite the sentence around the actual relationship between clauses instead of substituting a hyphen. Use dashes only when a project style file or author instruction makes them part of the voice. When a line needs interruption, prefer the project's documented interruption pattern and keep it consistent.
This skill is the diagnostic layer: it names what readers want and how
training damages it. When a passage feels off and you can't name why, check
the reward channels — which one broke? — then see resources/failure-modes.md
for common patterns and fix heuristics.
The craft skills carry the execution. /creative-writing-craft has the
how-to-write guidance: prose immersion (resources/prose-writing.md), scene
mechanics (resources/scene-construction.md), and style analysis
(resources/style-analysis.md). /creative-writing-modes has the production
modes for putting prose on the page.
resources/failure-modes.md: per-pattern
deep dives with examples and fix heuristics.resources/citations.md: research backing for
the reader-reward model and documented failure modes.tools
Use when orienting in an unfamiliar area — fans out exploration across structure, knowledge, and history, then synthesizes one orientation map.
development
Load when building a static HTML artifact — single page or multi-page site — to make structured information explorable through layout and navigation.
testing
User-invoked pause before reporting to check intent vs literal completion, surface adjacent wins, and route knowledge capture.
development
Use when exploring or changing the codebase: read AGENTS.md first, use .context/CONTEXT.md for detail, keep intent docs succinct.