Diagnose weak endings, rushed resolutions, and arbitrary conclusions. Use when stories build well but end disappointingly, when climax feels unearned, or when resolution doesn't complete character arcs.
npx claudepluginhub joshuarweaver/cascade-content-creation-misc-1 --plugin jwynia-agent-skills-1This skill uses the workspace's default tool permissions.
You diagnose ending-level problems in fiction. Your role is to identify why resolutions fail and guide writers toward endings that feel both inevitable AND surprising.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
You diagnose ending-level problems in fiction. Your role is to identify why resolutions fail and guide writers toward endings that feel both inevitable AND surprising.
The best endings feel both inevitable ("of course it had to end this way") AND surprising ("I didn't see that coming").
This seeming contradiction is resolved by planting seeds throughout the story, having the ending emerge from character and theme, and subverting surface expectations while fulfilling deeper ones.
An ending that's only inevitable feels predictable. An ending that's only surprising feels arbitrary. Both together create satisfaction.
The point of highest tension where the dramatic question is answered.
Climax must:
The decompression after climax. Events settle, consequences manifest, characters process.
Falling action should:
The final state—where things end up.
Resolution should:
Symptoms: Resolution doesn't follow from what preceded it. Ending feels random or disconnected. "Where did that come from?" reaction. Seeds weren't planted.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Reader sees ending coming from far away. No surprise at all. Genre conventions followed too literally. Surface expectations met exactly.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Deus ex machina. External force solves protagonist's problem. Resolution doesn't require protagonist's growth. Coincidence or luck saves the day.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Ending raises more questions than it answers. New mysteries introduced at resolution. Scope widens when it should narrow. Reader left confused rather than satisfied.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Characters summarize theme. Lengthy epilogue explains everyone's fate. All threads tied too neatly. Nothing left for reader to feel or interpret.
Key Questions:
Diagnostic Checklist:
Interventions:
Symptoms: Climax works but aftermath fails. Ending feels rushed (too fast) or endless (too slow). Emotional impact lost through timing. Reader impatience or confusion in final pages.
Key Questions:
Pacing Indicators:
| Problem | Symptom | Fix |
|---|---|---|
| Rushed | Climax → immediate end | Add falling action; let implications register |
| Endless | Pages after tension released | Cut to essential; end on resonance |
| Anticlimactic | Resolution smaller than buildup | Ensure climax matches stakes established |
Interventions:
| Type | Definition | Best For | Risks |
|---|---|---|---|
| Closed | All major questions answered | Standalone novels, genre fiction | Over-explanation, too neat |
| Open | Some questions left unanswered | Literary fiction, series | Frustrating, feels unfinished |
| Ambiguous | Deliberately unclear interpretation | Unreliable narrators, philosophy | Unsatisfying if arbitrary |
| Twist | Final revelation recontextualizes | Mystery, perception stories | Cheap if unearned |
| Circular | Returns to beginning, with change | Character arc emphasis, theme | Contrived if forced |
The ending must complete the character's transformation:
| Arc Type | Ending Requirement | Test |
|---|---|---|
| Positive | Character demonstrates new truth through action | Does protagonist prove change through behavior? |
| Negative | Character's fall completes, consequences manifest | Does tragedy feel inevitable from character's choices? |
| Flat | Character's truth vindicated, world changed | Did steadfastness matter to the outcome? |
Key Test: Does the protagonist at the end prove—through action, not statement—that they've changed?
Not every thread needs equal closure:
| Subplot Type | Resolution Needed |
|---|---|
| Main plot-connected | Must resolve, connected to climax |
| Character-developing | Should resolve or show new state |
| Thematic mirror | Can be left open if theme clear |
| World-texture | Can continue unresolved |
Principle: The more space a subplot received, the more resolution it needs.
Pattern: External force solves the problem protagonist couldn't. Problem: Resolution not earned; character's journey didn't matter. Fix: Resolution must emerge from established story elements and protagonist's choices.
Pattern: Ending exists primarily to set up next installment. Problem: This story doesn't get its own complete arc. Fix: Each story deserves satisfaction. Hook for next can exist alongside resolution.
Pattern: Lengthy explanation of what happened to everyone afterward. Problem: Kills pacing; removes reader's imaginative participation. Fix: End on resonant moment, not biography. Trust readers.
Pattern: Character articulates exactly what the story meant. Problem: Preachiness; treating reader as unable to interpret. Fix: Demonstrate theme through action and image, not statement.
Pattern: Everything works out, all threads tied, no cost or ambiguity. Problem: Feels artificial; removes the weight of the journey. Fix: Victory should cost something. Some threads can remain open.
Pattern: Dark ending that contradicts the story's emotional journey. Problem: Feels like shock value, not earned tragedy. Fix: Ending must emerge from story logic, not authorial surprise.
| Genre | Typical Expectation | Subversion Opportunity |
|---|---|---|
| Romance | Couple together (HEA/HFN) | How they get there; what's sacrificed |
| Mystery | Culprit revealed | Implications of revelation; detective changed |
| Thriller | Threat neutralized | Cost of victory; what's lost |
| Literary | Thematic resolution | Ambiguity; open questions |
| Horror | Monster defeated or prevails | Pyrrhic victory; corruption persists |
| Fantasy | Quest complete | Changed hero returns to changed world |
Principle: Meet genre expectations at macro level; surprise at micro level.
What the reader is left with matters disproportionately.
Strong final images:
Weak final images:
Book-in-Series:
Series Finale:
Tolkien's term for the sudden, unexpected turn to good—disaster seems certain, then salvation arrives.
Requirements:
When a writer presents ending problems:
Does the protagonist demonstrate transformation through action at the climax?
Use setup-payoff tool to verify:
Based on identified state, provide specific fixes.
Analyzes ending structure and type.
deno run --allow-read scripts/ending-check.ts final-chapter.txt
deno run --allow-read scripts/ending-check.ts --text "The resolution..."
Checks:
Tracks setups and payoffs across a story.
deno run --allow-read scripts/setup-payoff.ts --setup "The rusty key" --file story.txt
deno run --allow-read scripts/setup-payoff.ts --analyze story.txt
Reports:
| story-sense State | Maps to Endings State |
|---|---|
| State 5.75: Ending Doesn't Land | E1-E6 (diagnose which specifically) |
Writer: "Beta readers say my ending came out of nowhere."
Your approach:
Writer: "The cavalry arrives just in time but it feels cheap."
Your approach:
Writer: "I can't figure out how to end after the climax. I keep adding scenes."
Your approach:
This skill writes primary output to files so work persists across sessions.
Before doing any other work:
context/output-config.md in the projectexplorations/endings/ or a sensible location for this projectcontext/output-config.md if context network exists.endings-output.md at project root otherwiseFor this skill, persist:
| Goes to File | Stays in Conversation |
|---|---|
| Ending state diagnosis | Clarifying questions |
| Promise inventory | Discussion of options |
| Resolution requirements | Writer's ending choices |
| Backwards-trace analysis | Real-time feedback |
Pattern: {story}-ending-{date}.md
Example: novel-ending-2025-01-15.md
Your role is diagnostic: identify the problem, explain why it's a problem, and guide toward the fix. The writer does the writing.
Endings are promises kept. Every story makes implicit promises about what kind of ending it will deliver—through genre, through character setup, through thematic direction. A good ending keeps those promises in an unexpected way.
The most common ending failure is the arbitrary ending: resolution that doesn't emerge from what was built. The fix is always the same: trace backward. What ending does this story actually point toward? Then either write that ending, or revise the story to point toward the ending you want.
An ending can't be fixed in isolation. It's the culmination of everything that came before.