theme-craft
This skill should be used when the user asks to "theme", "controlling idea", "premise", "moral argument", "character arc", "flat arc", "negative arc", "the lie", "antagonist design", "motif", "symbolism", "theme audit", or wants to plan, track, or revise the thematic layer of a s
Install
npx skills add https://github.com/danjdewhurst/story-skills/tree/main/skills/theme-craft
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install danjdewhurst-story-skills@llmmart
git clone https://github.com/danjdewhurst/story-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole danjdewhurst/story-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Theme Craft
Overview
Plan and audit theme as a working mechanism, not decoration. Covers the controlling idea (value + cause, in McKee's sense), the lie/truth machinery and the three canonical arc types, antagonist design as the embodied counter-argument, motif tracking, and a revision-time theme audit. Use at story start (working premise), during character design (lie/truth/arc-type), and after a complete draft (theme audit).
Prerequisites
A story project must already exist (created via the story-init skill). Character files (character-management) and a plot structure (plot-structure) should exist or be in progress.
Workflow
Draft the working premise. Read
story.mdfor genre and themes. Consultreferences/controlling-idea.mdand write a one-sentence premise (value + cause) and counter-premise. Store them instory.mdfrontmatter:premise: "{Value} triumphs because {cause}." counter-premise: "{Opposing value} triumphs because {opposing cause}."If the user prefers discovering theme in the draft, record
premise: tbd-discoveryand skip to step 3.Build the lie/truth machinery. For the protagonist and antagonist (and any significant supporting character whose arc touches the theme), consult
references/lie-truth.mdand add to their character files:arc-type: change-positive # change-positive | change-negative | flat lie: "{The false belief}" truth: "{The belief that resolves it}" ghost-wound: "{The specific backstory event that planted the lie}"Check the character's turning points against the arc-type guidance: flat arcs need escalating tests of steadfastness, not growth beats; negative arcs need the truth visibly refused.
Design the antagonist as the counter-argument. Consult
references/antagonist-design.md: give the antagonist an edge, a defensible belief in the counter-premise, a want/wound/plan, and scenes they win. When the opposition is institutional, personify it.Plant motifs. Consult
references/motif-symbolism.md; choose two or three concrete motifs, plant them literally, and track plantings, variations, and ending resonance in the motif ledger.Use the premise while drafting. When a scene decision is unclear, ask which choice engages the value continuum and costs the protagonist something. Feed the lie into scene sequels (see the
scene-craftskill): the sequel is where the lie gets examined.Run the theme audit in revision. After a complete draft, consult
references/theme-audit.md: trace the value through the draft, check the ending against the opening's value-question, verify theme is dramatized through consequence not commentary, and confirm motifs are paid off. Record findings incontinuity/theme-audit.mdwith atheme-holds/theme-brokenverdict. Hand structural findings to therevision-continuityskill as a developmental revision plan.
Conventions
premise:/counter-premise:live instory.mdfrontmatter and are the single source of truth for the story's theme;plot/_index.mdtheme tracking maps themes to arcs and chapters as before.- Character
arc-typevalues are kebab-case from the fixed set (change-positive,change-negative,flat);lie,truth, andghost-woundare one-line strings. - Motif ids are kebab-case and tracked in the motif ledger with
planned/planted/paid-offstatus. - Theme is dramatized through choices and consequences. Never add a character speech, narration summary, or mentor lecture explaining the theme to satisfy an audit finding — rework the choices instead.
CLI Maintenance
Use the Story CLI when it is available. If story is not installed, use bun run story -- from the Story Skills repository checkout or the bundled fallback node ../story-maintenance/scripts/story.js with the same arguments, resolving the path relative to this skill folder. If no CLI is available, perform the registry, backlink, and word-count checks manually.
After adding or changing premise fields, character arc fields, or the theme audit:
story reindex .
story links .
story validate .
The motif ledger (continuity/motifs.md or the motif table in an arc file)
and continuity/theme-audit.md are prose revision notes: the CLI does not
scan, validate, link-check, or reindex them. Audit motif payoff and the
theme verdict manually per references/theme-audit.md.
Reference Files
references/controlling-idea.md- The controlling idea as value + cause (McKee), counter-premise, working-premise workflowreferences/lie-truth.md- Lie, truth, ghost wound, and the three arc types (change-positive, change-negative, flat)references/antagonist-design.md- Worthy opponent, antagonist as counter-argument, plan-the-antagonist-as-protagonist, personified institutionsreferences/motif-symbolism.md- Plant-and-vary, object-symbol resonance with the ending, motif ledgerreferences/theme-audit.md- Revision audit: ending vs. opening value-question, consequence vs. commentary, motif payoff
Files (story-skills)
-
references
-
antagonist-design.md 3.1 KB
# Antagonist Design The antagonist is the story's embodied **counter-argument**: the character who believes and acts on the counter-premise (see `controlling-idea.md`). Scenes trade wins between the two positions until the climax delivers the verdict. Design the antagonist to deserve that role. ## The worthy opponent The antagonist must be stronger than the protagonist in at least one dimension — intelligence, resources, position, ruthlessness, or conviction. A weaker antagonist makes the protagonist's victory feel unearned and the theme's verdict feel rigged. Record the asymmetry explicitly in the character file: ```yaml antagonist-edge: "{Where the antagonist outmatches the protagonist}" ``` ## The antagonist believes they are right No one is the villain of their own story. The antagonist acts on a coherent moral logic — the counter-premise stated as something a person could defend: - Not "I want power because I am evil" but "Order requires a strong hand; mercy is weakness that gets people killed." - Their flaw mirrors the protagonist's lie: both may share a wound, but the antagonist chose the lie permanently (a negative-arc character; see `lie-truth.md`). If you cannot write a paragraph defending the antagonist's position, the antagonist is a plot device, not a character — deepen or replace them. ## Plan the antagonist as a protagonist Build the antagonist's through-line as if they were the hero of their own story: - Their **want** (external goal), their **need** (what the truth would give them), their **ghost wound** (why they believe the lie). - Their **plan**: a sequence of moves against the protagonist, each adapting to the protagonist's resistance. The antagonist should *react* — a static obstacle is scenery, not opposition. - Their **turning points**: moments the protagonist's truth nearly reaches them, refused (negative arc), or moments their lie's cost becomes visible to the reader even if not to them. Record this as a `## Antagonist Through-Line` section in the character file or as beats in the relevant arc file. ## Personify institutional opposition When the real opposition is a system (a bureaucracy, a corporation, a tradition, an empire), give the force a face: - One character who *embodies* the system and can be confronted in scenes. - The face character should genuinely believe in the system — a true believer is scarier and thematically richer than a corrupt functionary. - The system itself keeps its own pressure (rules, consequences, inertia) that persists even when the face character loses a scene; note the institutional pressure separately from the character's actions. ## Antagonist checklist - [ ] Has an edge over the protagonist in at least one dimension. - [ ] Believes the counter-premise; their position is defensible in a paragraph. - [ ] Has a want, a wound, and a plan that adapts across the story. - [ ] Wins scenes — the protagonist's victories are contested, not gifted. - [ ] Their defeat at the climax is a *thematic* defeat: the counter-premise is disproven by the protagonist acting on the truth, not merely a physical defeat. -
controlling-idea.md 3.3 KB
# The Controlling Idea Robert McKee's *Story* frames a story's theme as a **controlling idea**: a value plus its cause, stated as one sentence — e.g. "Justice triumphs because the hero is smarter than the criminals" (paraphrased concept, not McKee's words). Theme *words* ("justice", "redemption") can't guide a scene decision; a controlling idea can, because it names both the value at stake and what causes it to triumph or fail. ## The sentence A controlling idea has this shape: > **{Value} {triumphs | fails} because {cause}.** - **Value** — the story's core moral value, phrased as a continuum with a positive and negative pole: justice/injustice, love/hate, courage/cowardice, honesty/deception. - **Triumphs or fails** — the ending's verdict. A positive ending argues the value triumphs; a negative ending argues it fails (or a counter-value wins). - **Cause** — the protagonist's action or quality that *produces* the verdict. This is what makes the idea usable: every scene can be checked against whether the protagonist is moving toward or away from the cause. Examples (original constructions in the form, not quotations): - "Mercy triumphs over vengeance because the protagonist refuses the killing blow." - "Honesty fails because the protagonist protects the lie that keeps them safe." ## The counter-premise Record the **counter-premise** alongside the premise: the antagonist's (or the world's) opposing claim, in the same value+cause form: - Counter-premise: "Vengeance triumphs because the world punishes mercy." The counter-premise is what the antagonist believes and acts on (see `antagonist-design.md`). The story's climax stages the two premises against each other and delivers a verdict — that verdict is the controlling idea's "triumphs/fails" pole. ## Working-premise workflow Craft opinion is genuinely split on planning theme up front (King warns against starting from theme; McKee and Truby plan it). The repo's stance: use a **working premise**, revisable. 1. **Plan:** at story-init (or when picking up an existing project), draft a working premise and counter-premise. Store in `story.md` frontmatter: ```yaml premise: "{Value} triumphs because {cause}." counter-premise: "{Opposing value} triumphs because {opposing cause}." ``` If the user resists planning theme, record `premise: tbd-discovery` and let the revision audit (see `theme-audit.md`) build it from what the draft actually argues. 2. **Use during drafting:** the premise answers scene-level questions — "which choice tests the value?" A scene that never touches the value continuum is structurally decorative; flag it for the scene-craft sequel (the sequel is where the character's lie confronts the value). 3. **Audit in revision:** run `theme-audit.md`. The working premise is not sacred — if the draft argues something truer, rewrite the premise to match the draft, then revise the ending so it *delivers* the verdict cleanly. ## Premise quality check - [ ] One sentence, with a named value and a named cause. - [ ] The cause is something the *protagonist does*, not something that happens to them. - [ ] The counter-premise is a genuine belief someone could hold (test: can you imagine the antagonist defending it?). - [ ] The climax can plausibly stage both premises and pick a winner. -
lie-truth.md 3.7 KB
# Lie, Truth, Ghost Wound, and Arc Types The planning machinery behind character arcs: the false belief that drives the character, the truth that resolves it, the wound that planted the lie, and which of the three canonical arc types the character follows. ## The lie and the truth - **The lie** is the character's false belief about themselves, other people, or the world — e.g. "Trusting people gets you killed," "I am only valuable when I win," "Love is control." The lie generates: - **Flaw:** the behavior the lie produces (withdrawal, cruelty, control). - **Fear:** what the lie says will happen if they act differently. - **Want:** the external goal the character pursues *because* of the lie (the wrong thing they think will fix their life). - **The truth** is the belief that replaces the lie — e.g. "Trust is a risk worth taking." The truth produces the character's **need**: the internal change the story actually demands. - **The ghost wound** is the backstory event that planted the lie — the formative betrayal, loss, or failure. One specific scene, not a vague childhood. Record it concretely: who, what happened, what the character concluded. ## Arc types The character template's "starting state → turning points → ending state" field assumes a positive change arc. Three canonical types exist; record which one each significant character follows, because the arc type dictates what the turning points must contain. **`change-positive`** — the character starts believing the lie and ends believing the truth. Turning points are the moments the lie costs them, the crisis where the lie fails completely, and the climax where they act on the truth. This is the default; if unsure, use this. **`change-negative`** — the character clings to the lie and it destroys them (or leaves them diminished). Turning points: opportunities to choose the truth, each refused; the lie's victories getting darker; the climax where they double down on the lie and pay the full price. The negative arc still needs the truth clearly visible — the reader must see the door the character refuses to walk through. **`flat`** — the character already holds the truth; the *world* changes around them. Turning points are **tests of steadfastness**, not growth beats: pressure to abandon the truth, temptations to adopt the lie, costs paid for holding firm. The climax proves the truth by the character's refusal to break, and the world (or the supporting cast) changes in response. Flat arcs without escalating tests read as static — each test must cost more than the last. ## Frontmatter fields The character template (`character-management/references/character-template.md`) carries these fields — fill them in for significant characters: ```yaml arc-type: change-positive # change-positive | change-negative | flat lie: "{The false belief}" truth: "{The belief that resolves it}" ghost-wound: "{The specific backstory event that planted the lie}" ``` The protagonist must have all four fields. Supporting characters get them when their arc intersects the theme; minor characters don't need them. ## Guidance for turning points When drafting or revising a character's turning points, check them against the arc type: - `change-positive`: does each turning point make the lie more expensive? Does the climax require acting on the truth at real cost? - `change-negative`: is the truth visible and reachable at each turning point? Does the character *choose* the lie each time (not merely fail to see the truth)? - `flat`: is each turning point a genuine test — could the character plausibly break? Do the tests escalate? Does someone or something else change *because* they held firm? -
motif-symbolism.md 2.7 KB
# Motif and Symbolism A motif is a recurring concrete element — an object, image, phrase, or action — that accrues meaning across the story. Unlike theme (an idea), a motif is a *thing the reader can see*. This reference covers the structural mechanics: planting, varying, and paying off. ## Plant-and-vary 1. **Plant** the motif early in a literal, unremarkable form: a cracked teacup on a shelf, a phrase the mentor repeats, a door that never opens. At planting, it should read as set dressing or a character quirk — not as a symbol with a neon sign. 2. **Vary** it across the story: the motif reappears in changed contexts — the teacup gets used, breaks, gets glued, gets thrown. Each appearance should feel *earned by the scene*, not scheduled by the author. If a motif appears only on a fixed schedule, it reads as mechanical. 3. **Vary with the character's arc:** the motif's state should rhyme with the protagonist's relationship to the lie/truth. The motif is strongest when its transformations track the character's (see `lie-truth.md`). ## Object-symbol resonance with the ending The motif's final appearance should resonate with the story's resolution: - The cracked teacup, glued, holds tea at the celebration — the lie repaired, not erased. - Or it shatters beyond repair — the cost of the victory made concrete. The ending appearance is the **payoff**: the reader should feel the earlier plantings click into place. If the motif's final appearance could be deleted without loss, it was decoration, not structure — either give it an ending resonance or cut the earlier appearances. ## Tracking motifs Maintain a motif table in the relevant arc file or a `continuity/motifs.md` ledger (one file per project is enough for most stories): | Motif | Planted (Ch) | Variations (Ch) | Ending resonance (Ch) | Status | |-------|--------------|-----------------|------------------------|--------| | {kebab-id} | Ch 2 | Ch 7, Ch 14 | Ch 21 | planned / planted / paid-off | - Motif ids are kebab-case; link the motif to the theme(s) it serves. - The theme audit (see `theme-audit.md`) checks that every planted motif is paid off or deliberately left open with a recorded reason. ## Restraint rules - **Two or three motifs per novel** is plenty. More dilutes all of them. - A motif the narrative *explains* dies. Never have a character say what the teacup "means." Meaning lives in recurrence and context, not in commentary (see `theme-audit.md`: theme through consequence, not commentary). - Motifs must be **concrete and perceivable** — an object, an image, an action. "The idea of freedom" is a theme, not a motif. "The unopened letter" is a motif. -
theme-audit.md 3.4 KB
# Theme Audit A revision-time audit that checks whether the story *dramatizes* its theme — through choices, consequences, and the ending's verdict — rather than merely declaring it. Run this after a complete draft exists, as part of a developmental revision pass (see the `revision-continuity` skill). ## Audit procedure 1. **Recover the working premise.** Read `premise:` and `counter-premise:` from `story.md` frontmatter. If `premise: tbd-discovery`, draft the premise the manuscript *actually argues* (value + cause, one sentence — see `controlling-idea.md`) before auditing. Record the recovered premise in `story.md`. 2. **Trace the value through the draft.** For each act (or each third of the chapters), note one scene where the protagonist's choice engages the value continuum, and whether the scene *cost* the protagonist something. Theme without cost is theme stated, not dramatized. 3. **Check the ending against the opening.** The opening poses the value-question (usually unknowingly: the protagonist acts on the lie). The ending must *engage* that question — not necessarily answer it cleanly, but the climax must stage premise vs. counter-premise and deliver a verdict the preceding story earned. 4. **Check the antagonist.** Re-read `antagonist-design.md`'s checklist against the draft: did the antagonist's counter-premise get a fair hearing? Did they win scenes? Is their climax defeat a *thematic* defeat? 5. **Check the motifs.** Every row in the motif ledger (see `motif-symbolism.md`) must be `paid-off`, or have a recorded reason for being left open. 6. **Check the arcs.** For each significant character with an `arc-type` (see `lie-truth.md`), verify the turning points contain what the arc type requires — growth beats for change-positive, refused truths for change-negative, escalating tests of steadfastness for flat. ## The five audit questions Answer each in one or two sentences, with chapter references: 1. **Does the ending engage the opening's value-question?** Quote the opening's implicit question and the ending's verdict. If the ending resolves a different question, either the premise or the ending is wrong. 2. **Is theme dramatized through consequence, not commentary?** List the three most expensive choices the protagonist makes. If the theme is mostly delivered in dialogue speeches, narration summaries, or a mentor's lecture, flag it: move the theme into choices with costs. 3. **Is the motif paid off?** Every planted motif needs its ending resonance; see the motif ledger. 4. **Does the climax stage premise vs. counter-premise?** The final confrontation must be *about* the value, not adjacent to it. A climax won by superior firepower after a thematic story is a broken promise. 5. **Would the story collapse without the theme?** If you can remove the premise and the plot still works, the theme is decoration — wire the value into the protagonist's decisions or cut the pretense. ## Recording findings Write the audit as `continuity/theme-audit.md` (one file per project, updated each revision round) with the premise, the five answers, and a **verdict**: `theme-holds` (minor fixes) or `theme-broken` (structural revision needed, with the specific scenes to rework listed). If the audit changes the premise, update `story.md`'s `premise:` field and the theme tracking in `plot/_index.md`, then run `story reindex .` and `story validate .`.
-
-
SKILL.md 5.4 KB
--- name: theme-craft description: This skill should be used when the user asks to "theme", "controlling idea", "premise", "moral argument", "character arc", "flat arc", "negative arc", "the lie", "antagonist design", "motif", "symbolism", "theme audit", or wants to plan, track, or revise the thematic layer of a story. --- # Theme Craft ## Overview Plan and audit theme as a working mechanism, not decoration. Covers the controlling idea (value + cause, in McKee's sense), the lie/truth machinery and the three canonical arc types, antagonist design as the embodied counter-argument, motif tracking, and a revision-time theme audit. Use at story start (working premise), during character design (lie/truth/arc-type), and after a complete draft (theme audit). ## Prerequisites A story project must already exist (created via the story-init skill). Character files (character-management) and a plot structure (plot-structure) should exist or be in progress. ## Workflow 1. **Draft the working premise.** Read `story.md` for genre and themes. Consult `references/controlling-idea.md` and write a one-sentence premise (value + cause) and counter-premise. Store them in `story.md` frontmatter: ```yaml premise: "{Value} triumphs because {cause}." counter-premise: "{Opposing value} triumphs because {opposing cause}." ``` If the user prefers discovering theme in the draft, record `premise: tbd-discovery` and skip to step 3. 2. **Build the lie/truth machinery.** For the protagonist and antagonist (and any significant supporting character whose arc touches the theme), consult `references/lie-truth.md` and add to their character files: ```yaml arc-type: change-positive # change-positive | change-negative | flat lie: "{The false belief}" truth: "{The belief that resolves it}" ghost-wound: "{The specific backstory event that planted the lie}" ``` Check the character's turning points against the arc-type guidance: flat arcs need escalating tests of steadfastness, not growth beats; negative arcs need the truth visibly refused. 3. **Design the antagonist as the counter-argument.** Consult `references/antagonist-design.md`: give the antagonist an edge, a defensible belief in the counter-premise, a want/wound/plan, and scenes they win. When the opposition is institutional, personify it. 4. **Plant motifs.** Consult `references/motif-symbolism.md`; choose two or three concrete motifs, plant them literally, and track plantings, variations, and ending resonance in the motif ledger. 5. **Use the premise while drafting.** When a scene decision is unclear, ask which choice engages the value continuum and costs the protagonist something. Feed the lie into scene sequels (see the `scene-craft` skill): the sequel is where the lie gets examined. 6. **Run the theme audit in revision.** After a complete draft, consult `references/theme-audit.md`: trace the value through the draft, check the ending against the opening's value-question, verify theme is dramatized through consequence not commentary, and confirm motifs are paid off. Record findings in `continuity/theme-audit.md` with a `theme-holds` / `theme-broken` verdict. Hand structural findings to the `revision-continuity` skill as a developmental revision plan. ## Conventions - `premise:` / `counter-premise:` live in `story.md` frontmatter and are the single source of truth for the story's theme; `plot/_index.md` theme tracking maps themes to arcs and chapters as before. - Character `arc-type` values are kebab-case from the fixed set (`change-positive`, `change-negative`, `flat`); `lie`, `truth`, and `ghost-wound` are one-line strings. - Motif ids are kebab-case and tracked in the motif ledger with `planned` / `planted` / `paid-off` status. - Theme is dramatized through choices and consequences. Never add a character speech, narration summary, or mentor lecture *explaining* the theme to satisfy an audit finding — rework the choices instead. ## CLI Maintenance Use the Story CLI when it is available. If `story` is not installed, use `bun run story --` from the Story Skills repository checkout or the bundled fallback `node ../story-maintenance/scripts/story.js` with the same arguments, resolving the path relative to this skill folder. If no CLI is available, perform the registry, backlink, and word-count checks manually. After adding or changing premise fields, character arc fields, or the theme audit: ```shell story reindex . story links . story validate . ``` The motif ledger (`continuity/motifs.md` or the motif table in an arc file) and `continuity/theme-audit.md` are prose revision notes: the CLI does not scan, validate, link-check, or reindex them. Audit motif payoff and the theme verdict manually per `references/theme-audit.md`. ## Reference Files - **`references/controlling-idea.md`** - The controlling idea as value + cause (McKee), counter-premise, working-premise workflow - **`references/lie-truth.md`** - Lie, truth, ghost wound, and the three arc types (change-positive, change-negative, flat) - **`references/antagonist-design.md`** - Worthy opponent, antagonist as counter-argument, plan-the-antagonist-as-protagonist, personified institutions - **`references/motif-symbolism.md`** - Plant-and-vary, object-symbol resonance with the ending, motif ledger - **`references/theme-audit.md`** - Revision audit: ending vs. opening value-question, consequence vs. commentary, motif payoff
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.