Character management
This skill should be used when the user asks to "create a character", "update a character", "add a character", "build a family tree", "character relationships", "character timeline", "character arc", "character profile", or needs to manage characters in a story project.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/character-management, including the files SKILL.md points to. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit danjdewhurst/story-skills/skills/character-management#main ~/.claude/skills/character-managementFor one project only, change the path to .claude/skills/character-management. This skill also uses story.md — copying SKILL.md alone won't be enough. See the folder on GitHub.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Character management
Show the full text93 lines
| name | description |
|---|---|
| character-management | This skill should be used when the user asks to "create a character", "update a character", "add a character", "build a family tree", "character relationships", "character timeline", "character arc", "character profile", or needs to manage characters in a story project. |
Character Management
Overview
Create and manage rich character profiles for a story project. Each character is a markdown file with YAML frontmatter in the characters/ directory. Characters are cross-referenced with other story elements through kebab-case identifiers.
Prerequisites
A story project must already exist (created via the story-init skill). Verify by checking for story.md in the project root.
Creating a Character
- Read
story.mdfor genre, themes, and tone context - Read
characters/_index.mdfor existing characters - Ask for the character's name and role (protagonist, antagonist, supporting, minor, narrator, deuteragonist)
- Build the profile through conversation, exploring:
- Appearance and distinguishing features
- Personality, traits, and quirks
- Backstory and formative events
- Motivations (external wants vs internal needs)
- Voice and speech patterns (ask for example dialogue)
- Character arc (starting state, turning points, ending state)
- Key life events for the timeline
- Write the character file using the template in
references/character-template.md - Save to
characters/{name-kebab}.md, or usestory add character "{Name}" --role "{role}"when the CLI is available - Update
characters/_index.mdregistry table - If relationships reference existing characters, update those character files too
- When CLI access is available, run the maintenance pass in the story root:
story reindex .
story links .
story validate .
Updating a Character
- Read the existing character file
- Read
characters/_index.mdfor context on other characters - Make the requested changes
- If relationships changed, update the other character's file (bidirectional)
- Update
characters/_index.mdif role or status changed - When CLI access is available, run
story reindex .,story links ., andstory validate .
Managing Relationships
Reference references/relationship-types.md for the full list of relationship types and inverse pairs.
When adding a relationship:
- Add the relationship entry to the character's frontmatter
- Add the inverse relationship to the other character's frontmatter
- Update the Relationship Map section in
characters/_index.md
Family Trees
Family trees are maintained in the characters/_index.md under the "Family Trees" section. Format:
## Family Trees
### {Family Name}
- **{Character Name}** ({status}) - [{Name}]({name-kebab}.md)
- **{Child Name}** - [{Name}]({name-kebab}.md)
- **{Child Name}** - [{Name}]({name-kebab}.md)
Indent children under parents. Note marriages/partnerships inline.
Cross-Referencing
- When a character is referenced in worldbuilding (e.g., a location's
notable-characters), ensure the link exists both ways - Character-location backlinks live in the character file's
locationsfrontmatter list - Faction memberships live in
worldbuilding/factions/{faction-kebab}.mdundermembers - Artifact ownership can reference a character id in
worldbuilding/artifacts/{artifact-kebab}.md - When a character appears in a plot arc, ensure they're listed in the arc's
charactersfrontmatter - Character tags should be consistent across the project (e.g., if
magic-useris used, always use that exact tag)
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.
Reference Files
references/character-template.md- Full blank template for character profiles, including arc-type, lie/truth/ghost-wound fields and the Antagonist Design sectionreferences/relationship-types.md- Complete relationship type reference with inverse pairsreferences/ensemble-cast.md- Managing multi-character casts: anchor character, A/B/C story braiding, thematic relevance, merge-characters disciplinereferences/supporting-characters.md- Role vocabulary (mentor, foil, confidant, love interest, comic relief, threshold guardian) and requirements for supporting roles
| 1 | |
| 2 | name character-management |
| 3 | description This skill should be used when the user asks to "create a character", "update a character", "add a character", "build a family tree", "character relationships", "character timeline", "character arc", "character profile", or needs to manage characters in a story project. |
| 4 | |
| 5 | |
| 6 | # Character Management |
| 7 | |
| 8 | ## Overview |
| 9 | |
| 10 | Create and manage rich character profiles for a story project. Each character is a markdown file with YAML frontmatter in the `characters/` directory. Characters are cross-referenced with other story elements through kebab-case identifiers. |
| 11 | |
| 12 | ## Prerequisites |
| 13 | |
| 14 | A story project must already exist (created via the story-init skill). Verify by checking for `story.md` in the project root. |
| 15 | |
| 16 | ## Creating a Character |
| 17 | |
| 18 | Read `story.md` for genre, themes, and tone context |
| 19 | Read `characters/_index.md` for existing characters |
| 20 | Ask for the character's name and role (protagonist, antagonist, supporting, minor, narrator, deuteragonist) |
| 21 | Build the profile through conversation, exploring: |
| 22 | Appearance and distinguishing features |
| 23 | Personality, traits, and quirks |
| 24 | Backstory and formative events |
| 25 | Motivations (external wants vs internal needs) |
| 26 | Voice and speech patterns (ask for example dialogue) |
| 27 | Character arc (starting state, turning points, ending state) |
| 28 | Key life events for the timeline |
| 29 | Write the character file using the template in `references/character-template.md` |
| 30 | Save to `characters/{name-kebab}.md`, or use `story add character "{Name}" --role "{role}"` when the CLI is available |
| 31 | Update `characters/_index.md` registry table |
| 32 | If relationships reference existing characters, update those character files too |
| 33 | When CLI access is available, run the maintenance pass in the story root: |
| 34 | |
| 35 | |
| 36 | story reindex . |
| 37 | story links . |
| 38 | story validate . |
| 39 | |
| 40 | |
| 41 | ## Updating a Character |
| 42 | |
| 43 | Read the existing character file |
| 44 | Read `characters/_index.md` for context on other characters |
| 45 | Make the requested changes |
| 46 | If relationships changed, update the other character's file (bidirectional) |
| 47 | Update `characters/_index.md` if role or status changed |
| 48 | When CLI access is available, run `story reindex .`, `story links .`, and `story validate .` |
| 49 | |
| 50 | ## Managing Relationships |
| 51 | |
| 52 | Reference `references/relationship-types.md` for the full list of relationship types and inverse pairs. |
| 53 | |
| 54 | When adding a relationship: |
| 55 | Add the relationship entry to the character's frontmatter |
| 56 | Add the inverse relationship to the other character's frontmatter |
| 57 | Update the Relationship Map section in `characters/_index.md` |
| 58 | |
| 59 | ## Family Trees |
| 60 | |
| 61 | Family trees are maintained in the `characters/_index.md` under the "Family Trees" section. Format: |
| 62 | |
| 63 | |
| 64 | ## Family Trees |
| 65 | |
| 66 | ### {Family Name} |
| 67 | - **{Character Name}** ({status}) - [{Name}]({name-kebab}.md) |
| 68 | - **{Child Name}** - [{Name}]({name-kebab}.md) |
| 69 | - **{Child Name}** - [{Name}]({name-kebab}.md) |
| 70 | |
| 71 | |
| 72 | Indent children under parents. Note marriages/partnerships inline. |
| 73 | |
| 74 | ## Cross-Referencing |
| 75 | |
| 76 | When a character is referenced in worldbuilding (e.g., a location's `notable-characters`), ensure the link exists both ways |
| 77 | Character-location backlinks live in the character file's `locations` frontmatter list |
| 78 | Faction memberships live in `worldbuilding/factions/{faction-kebab}.md` under `members` |
| 79 | Artifact ownership can reference a character id in `worldbuilding/artifacts/{artifact-kebab}.md` |
| 80 | When a character appears in a plot arc, ensure they're listed in the arc's `characters` frontmatter |
| 81 | Character tags should be consistent across the project (e.g., if `magic-user` is used, always use that exact tag) |
| 82 | |
| 83 | ## CLI Maintenance |
| 84 | |
| 85 | 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. |
| 86 | |
| 87 | ## Reference Files |
| 88 | |
| 89 | **`references/character-template.md`** - Full blank template for character profiles, including arc-type, lie/truth/ghost-wound fields and the Antagonist Design section |
| 90 | **`references/relationship-types.md`** - Complete relationship type reference with inverse pairs |
| 91 | **`references/ensemble-cast.md`** - Managing multi-character casts: anchor character, A/B/C story braiding, thematic relevance, merge-characters discipline |
| 92 | **`references/supporting-characters.md`** - Role vocabulary (mentor, foil, confidant, love interest, comic relief, threshold guardian) and requirements for supporting roles |
| 93 |
Discussion
Browse more free Claude skills.