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)
- 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-kebab}.md]
- **{Child Name}** - [{name-kebab}.md]
- **{Child 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 but the story-maintenance skill is present, use 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 and backlink checks manually.
Reference Files
references/character-template.md- Full blank template for character profilesreferences/relationship-types.md- Complete relationship type reference with inverse pairs