Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add danjdewhurst/story-skills --skill character-managementgit clone --depth 1 https://github.com/danjdewhurst/story-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/danjdewhurst/story-skills/character-management)<a href="https://agentmods.dev/skills/danjdewhurst/story-skills/character-management"><img src="https://agentmods.dev/badge/skills/danjdewhurst/story-skills/character-management/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/danjdewhurst/story-skills/character-management"><img src="https://agentmods.dev/badge/skills/danjdewhurst/story-skills/character-management.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00111 | $0.03691 |
| Opus 5.5 | $0.00044 | $0.01476 |
| Sonnet 5.5 | $0.00022 | $0.00738 |
| Haiku 4.5 | $0.00011 | $0.00369 |
Grade A, and why
character-management scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 180 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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). Before settling the name, run
story names '{Name}'(several candidates can be checked at once): it errors on an exact clash with any existing character, alias, location, faction, artifact, system, or glossary term, and warns about look-alikes and names sharing an initial with a major character. Invented names from a culture should follow its naming rules (seereferences/naming-languages.mdin theworldbuildingskill) - 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), plus
voice-words(words and phrases they reach for) andvoice-avoid(words they would never say) - Pronunciation, when the name is invented or easily misread (
pronunciation: "SEER-sha") - 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. Cyrillic and Greek names are transliterated (Пётрgivescharacters/petr.md). When the name is in a script with no transliteration table (李明), or the user wants a different spelling, choose the ASCII id yourself and pass it:story add character '李明' --id li-ming --role supportingkeepsname: 李明in the file - Leave the
characters/_index.mdtable to the CLI:story addandstory reindex .rebuild it from the character files, so never add a row by hand - If relationships reference existing characters, update those character files too
- When CLI access is available, run the maintenance pass in the story root:
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines 997adab2abac
- 13d ago Changed 093a39ec4c82
- 19d ago Changed 5387e607c4fc
- 20d ago Changed · +2 lines · +11 tokens per session 1d76ed1ead7c
- 21d ago Changed · +14 lines 07a05550ae8b
- 24d ago Changed · +1 lines 43ab1941016f
- 25d ago Changed d39c3fa895eb
- 1mo ago Changed · +30 lines 569941e72173
- 1mo ago Changed 87ad4a001b0d
- 1mo ago First seen · 132 lines · 100 tokens per session scan A 87aef9d917b2
character-management is a skill published in the GitHub repository danjdewhurst/story-skills (361 stars, last pushed today), licensed MIT. It adds 111 tokens to every session and 3,691 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
alive:demo
Generate a believable, lived-in ALIVE world from a free-text persona description (custom path) or a deterministic sandbox preset. Routes the create/list/activate/deactivate/delete/status surface and orchestrates the 5-stage subagent generation pipeline.
alive:save
The human wants to checkpoint. Or: the stash has grown heavy — 5+ items, 30+ minutes, a natural pause in the work. The squirrel doesn't decide when to save. It surfaces the need and lets the human pull the trigger. Runs the full save protocol: confirms stash, writes log, updates state, generates projections…
alive:system-upgrade
Upgrade ALIVE to the current version. Handles v1/v2/v3.x source states, multi-surface aware (alive-mcp / Hermes / Codex), retroactive version detection, partial-failure resume, dry-run previews, and rollback inspection.
alive:system-cleanup
The world feels messy. Stale tasks, orphan folders, v2 remnants, unsaved sessions — entropy is accumulating and needs to be addressed before it compounds. Scans across all walnuts, then surfaces issues one at a time.
alive:create-walnut
Something new is emerging. A venture, an experiment, a person entering the orbit, a life area getting serious. It needs its own walnut — its own identity, history, and future. Scaffolds the full structure, maps existing context sources, and optionally migrates files across.
alive:session-history
Revive sessions (quick or heavy), browse, and search — 'what happened recently?', 'find the session where we discussed X', 'revive yesterday's session'. For single-session recall and multi-session browsing. If the human needs to merge multiple sessions into one working context or detect conflicts between parallel…