
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.
- Installs
- 615
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/jwynia/agent-skills --skill character-arc- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads character-arc automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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:
- Lie — False belief about self or world (formed by backstory wound)
- Want — What they think they need (driven by the lie)
- Need — What would actually fulfill them (invisible at start)
- Catalyst — Story forces confrontation with the lie
- Struggle — Character resists change (change is hard)
- Truth — Character accepts reality, abandons the lie
- New Self — Character operates from transformed perspective
Negative Change Arc (Tragedy)
Character has potential but becomes worse through choices or circumstances.
Components:
- Potential — Opportunity for growth
- Flaw — Weakness that could be overcome
- Temptation — Easy path that feeds the flaw
- Descent — Choices that compound the flaw
- Point of No Return — Redemption opportunity rejected
- 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:
- Truth — Character holds correct belief
- World in Conflict — Environment challenges that truth
- Testing — Character's truth pressured but holds
- Influence — Steadfastness changes others
- 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
- Ask about the lie — What false belief does the character hold?
- Find the ghost — What backstory wound created this lie?
- Separate want from need — What do they pursue vs. actually require?
- Map transformation — Where are the key beats?
- Check for resistance — Where does the character fight change?
- 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:
- Ask: "What's different about them at the end vs. the beginning?"
- If nothing: "They won the plot but didn't have an arc"
- Probe: "What did they believe at the start that wasn't true?"
- Dig: "What would have happened if they'd learned nothing?"
- Guide: "The victory needs to require them becoming someone new—otherwise it's just problem-solving"
- 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:
- Check for
context/output-config.mdin the project - If found, look for this skill's entry
- 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
- Store the user's preference:
- In
context/output-config.mdif context network exists - In
.character-arc-output.mdat project root otherwise
- In
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 |
FAQ
What does the character-arc skill do?
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.
How do I install character-arc?
Run npx skills add https://github.com/jwynia/agent-skills --skill character-arc in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/character-arc/ (personal) or .claude/skills/character-arc/ (project).
Which AI agents can use character-arc?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is character-arc safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains character-arc?
It is published by jwynia in jwynia/agent-skills. It has 615 recorded installs.
More from jwynia/agent-skills
presentation-design
jwynia/agent-skills
Design and evaluate presentations that communicate effectively. Use when designing a presentation, creating slides, getting presentation feedback, structuring a talk, or reviewing slides. Keywords: presentation, slides, talk, PowerPoint, Keynote, reveal.js.
frontend-design
jwynia/agent-skills
Create distinctive, production-grade frontend interfaces with high design quality. Provides analysis tools for auditing existing designs and generation tools for creating color palettes, typography systems, design tokens, and component templates. Supports React, Vue, Svelte, and vanilla HTML/CSS. Use when building web components, pages, or applications. Keywords: design, UI, frontend, CSS, components, palette, typography, tokens, accessibility.
requirements-analysis
jwynia/agent-skills
Diagnose requirements problems and guide discovery of real needs and constraints
godot-best-practices
jwynia/agent-skills
Guide AI agents through Godot 4.x GDScript coding best practices including scene organization, signals, resources, state machines, and performance optimization. This skill should be used when generating GDScript code, creating Godot scenes, designing game architecture, implementing state machines, object pooling, save/load systems, or when the user asks about Godot patterns, node structure, or GDScript standards. Keywords: godot, gdscript, game development, signals, resources, scenes, nodes, state machine, object pooling, save system, autoload, export, type hints.
web-search-tavily
jwynia/agent-skills
Search the web using Tavily API for high-quality, AI-optimized results with advanced filtering options. Use when you need structured search results, domain filtering, relevance scores, or AI-generated answer summaries. Requires TAVILYAPIKEY. Keywords: tavily, advanced search, filtered search, domain filtering, relevance scoring.
godot-asset-generator
jwynia/agent-skills
Generate game assets using AI image generation APIs (DALL-E, Replicate, fal.ai) and prepare them for Godot. Covers the full art pipeline from concept art and style guides to final sprites, sprite sheets, and import configuration. This skill should be used when creating game art, generating sprites, making tilesets, creating UI elements, or preparing assets for Godot import. Keywords: game assets, AI art, DALL-E, Replicate, fal.ai, sprite sheet, tileset, Godot, pixel art, character sprite, game art, texture, animation frames.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available