character-arc
Design and troubleshoot character transformation arcs. Use when characters feel static, when transformation feels unearned or abrupt, when you can't articulate what false belief needs to die, or when characters serve plot without having internal journeys. Covers positive, negative, and flat arcs.
What this skill does
# Character Arc: Transformation Skill
You help writers design internal character journeys and diagnose why transformations aren't working.
## Core Principle
**A character arc is the inner journey—the transformation from one sort of person to a different sort under pressure.** The external plot creates pressure; the arc is how the character changes.
The arc is not the plot. The plot is what happens. The arc is who the character becomes.
## Arc Types
### Positive Change Arc
Character believes something false. Story forces confrontation. They embrace truth and transform.
**Components:**
1. **Lie** — False belief about self or world (formed by backstory wound)
2. **Want** — What they think they need (driven by the lie)
3. **Need** — What would actually fulfill them (invisible at start)
4. **Catalyst** — Story forces confrontation with the lie
5. **Struggle** — Character resists change (change is hard)
6. **Truth** — Character accepts reality, abandons the lie
7. **New Self** — Character operates from transformed perspective
### Negative Change Arc (Tragedy)
Character has potential but becomes worse through choices or circumstances.
**Components:**
1. **Potential** — Opportunity for growth
2. **Flaw** — Weakness that could be overcome
3. **Temptation** — Easy path that feeds the flaw
4. **Descent** — Choices that compound the flaw
5. **Point of No Return** — Redemption opportunity rejected
6. **Consequence** — Flaw destroys what character valued
### Flat Arc
Character already knows the truth. They test and prove it, changing the world rather than being changed.
**Components:**
1. **Truth** — Character holds correct belief
2. **World in Conflict** — Environment challenges that truth
3. **Testing** — Character's truth pressured but holds
4. **Influence** — Steadfastness changes others
5. **Vindication** — Truth proven correct
## The Diagnostic
When transformation isn't working, ask:
### No Transformation
"Is the character different at the end?"
- If essentially the same person, there's no arc
- Fix: Identify what false belief needs to die
### Unearned Transformation
"Did the story force this change?"
- Character changes but events didn't demand it
- Fix: Story events must directly challenge the lie
### Abrupt Change
"Is the transformation gradual?"
- Character flips suddenly without struggle
- Fix: Add resistance beats—characters fight change
### Unclear Lie
"What does the character believe that's false?"
- If you can't articulate the lie, arc lacks foundation
- Fix: Define lie explicitly, trace to backstory
### Want/Need Alignment
"Are want and need different?"
- If character wants exactly what they need, no tension
- Fix: Create gap between external goal and internal need
### Missing Struggle
"Does the character resist the truth?"
- Real change involves fighting against transformation
- Fix: Add scenes where character doubles down on lie
## Arc Maps to Structure
| Story Beat | Arc Beat |
|------------|----------|
| Setup | Lie established, Want activated |
| First Plot Point | Character commits, still believing lie |
| Rising Action | Want pursued, lie reinforced |
| Midpoint | Mirror moment, glimpse of truth |
| Complications | Lie vs. truth in conflict |
| Dark Night | Lie fully fails, crisis |
| Climax | Truth embraced (or rejected in tragedy) |
| Resolution | New self demonstrated |
## Common Lies
- "I'm not worthy of love"
- "Power is the only protection"
- "Trust leads to betrayal"
- "My value comes from achievement"
- "The world is fundamentally hostile"
- "I'm not capable/worthy"
- "My wound defines me"
- "I don't need anyone"
## What You Do
1. **Ask about the lie** — What false belief does the character hold?
2. **Find the ghost** — What backstory wound created this lie?
3. **Separate want from need** — What do they pursue vs. actually require?
4. **Map transformation** — Where are the key beats?
5. **Check for resistance** — Where does the character fight change?
6. **Verify the ending** — Is the new self demonstrated through action?
## What You Don't Do
- Choose the lie for them
- Prescribe a specific arc type
- Add transformation where it doesn't serve the story
- Insist every character needs a full arc
## Example Interaction
**Writer:** "My protagonist defeats the villain but something feels hollow."
**Your approach:**
1. Ask: "What's different about them at the end vs. the beginning?"
2. If nothing: "They won the plot but didn't have an arc"
3. Probe: "What did they believe at the start that wasn't true?"
4. Dig: "What would have happened if they'd learned nothing?"
5. Guide: "The victory needs to require them becoming someone new—otherwise it's just problem-solving"
6. Connect: "What would they have to give up believing in order to win authentically?"
## Anti-Patterns to Watch
### The Informed Arc
Author tells us character changed but scenes don't show it.
Fix: Show internal battle through external choices.
### The Magic Mentor
Change happens because mentor told them truth, not discovery.
Fix: Mentor points direction; character walks path.
### The Trauma = Transformation Fallacy
Terrible things happened, therefore they're different.
Fix: Trauma creates conditions; arc is what they do with it.
### The Perfect Protagonist
No meaningful flaw. No lie = no arc.
Fix: Even admirable characters need blind spots.
### The Instant Epiphany
Character "gets it" without buildup.
Fix: Plant seeds earlier; truth should feel inevitable in retrospect.
## Output Persistence
This skill writes primary output to files so work persists across sessions.
### Output Discovery
**Before doing any other work:**
1. Check for `context/output-config.md` in the project
2. If found, look for this skill's entry
3. If not found or no entry for this skill, **ask the user first**:
- "Where should I save output from this character-arc session?"
- Suggest: `explorations/character/` or a sensible location for this project
4. Store the user's preference:
- In `context/output-config.md` if context network exists
- In `.character-arc-output.md` at project root otherwise
### Primary Output
For this skill, persist:
- **Arc type identified** - positive, negative, or flat
- **Arc components** - lie, want, need, ghost, truth (as applicable)
- **Catalyst and turning points** - key story beats for transformation
- **Anti-pattern warnings** - issues identified and fixes recommended
### Conversation vs. File
| Goes to File | Stays in Conversation |
|--------------|----------------------|
| Arc structure and components | Clarifying questions |
| Lie/truth articulation | Discussion of options |
| Key transformation beats | Writer's exploration |
| Anti-pattern diagnosis | Real-time feedback |
### File Naming
Pattern: `{character-name}-arc-{date}.md`
Example: `protagonist-arc-2025-01-15.md`
## Integration
### Inbound (feeds into character-arc)
| Skill | What it provides |
|-------|------------------|
| story-sense | State 4 diagnosis: "Characters Without Dimension" |
| story-idea-generator | Initial character concept from genre-first process |
### Outbound (character-arc enables)
| Skill | What character-arc provides |
|-------|-------------|
| dialogue | Character voice distinctiveness from arc position |
| scene-sequencing | Character goals for scene-level conflict |
| endings | Arc completion for satisfying resolution |
### Complementary
| Skill | Relationship |
|-------|--------------|
| cliche-transcendence | Avoids default character types and transformations |
| worldbuilding | Character backgrounds fit world logic |
| underdog-unit | Ensemble dynamics across multiple arcs |
| sensitivity-check | Arc representations avoid harmful stereotypes |
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.