| name | create-character |
| description | Create or refine canonical webtoon character Markdown files in characters/ with story metadata, acting range, visual identity locks, and links to approved character-sheet assets. Use when inventing, naming, documenting, or revising a cast member, or when preparing character canon before invoking $create-character-sheet for visual production. |
Create Character
Create story-ready, visually stable character canon. Manage metadata and asset links here; delegate all character-sheet image generation and visual QA to $create-character-sheet.
Follow the project runtime in AGENTS.md: set PYTHON from load_workspace_dependencies and run the bundled writer through locked uv run.
Workflow
- Read
project.md, characters/_template.md, existing character files, style/artwork-style.md, and the relevant plot/, backgrounds/, materials/, world/, and style/ sources.
- Separate confirmed canon from proposals. Ask only for decisions that materially affect story function, relationships, appearance, acting, or continuity.
- Define the story role, desire, conflict, secrets, relationship pressure, and first appearance.
- Lock the visual identity precisely enough for repeated panel production:
- silhouette and body proportions;
- face, hair, palette, and default costume layers;
- character-left versus character-right marks;
- props and attachment points;
- expression and gesture range;
- features that must never drift.
- Keep unknown facts empty instead of inventing canon. Keep
status: seed until the author confirms the character.
- Write a new file only after the direction is confirmed.
Character-Sheet Boundary
Store only real, project-relative character-sheet links in character_sheet. Never invent an asset path or mark a sheet approved before the files exist.
Pin the same approved $create-artwork version in artwork.asset_version and artwork.manifest before visual production. Keep them empty while the shared style is unapproved. The character's visual identity may specialize this contract but may not redefine its line, construction, anatomy, palette, light, perspective, materials, effects, or integrated-text language.
When images are requested, invoke $create-character-sheet. After that skill produces and validates the assets, update:
character_sheet.asset_set;
character_sheet.manifest;
character_sheet.canonical_sheet;
character_sheet.canonical_asset;
character_sheet.views_directory;
character_sheet.expressions_directory;
character_sheet.qa_summary.
visual_identity.design_version when the approved design changes.
artwork.asset_version and artwork.manifest to the exact shared version used by the sheet.
Do not generate images, chroma-key sheets, turnarounds, or expressions in this skill.
Write A New Character
Prepare a reviewed UTF-8 JSON object that mirrors characters/_template.md. Nested visual_identity and character_sheet objects are supported. Put body prose under these keys:
story_function
surface
interior
visual_identity_lock
acting_range
relationships
continuity
Run:
uv run --frozen --python "$PYTHON" python .agents/skills/create-character/scripts/write_character.py \
--project-root . \
--input /tmp/character.json
The writer creates characters/<ascii-slug>.md, keeps frontmatter order deterministic, supports nested YAML, and refuses an existing path unless --force is explicitly supplied. Do not use --force for an ordinary revision.
For an existing character, edit the file minimally, preserve created, update updated, and keep established canon unless the author approves a retcon.
Verify
- Confirm
id is char-<slug> and matches the filename.
- Confirm all list fields are YAML arrays and nested visual fields match the template.
- Confirm character-sheet links are empty or point to real approved assets.
- Confirm the body includes every template section with no placeholder prose.
- Report changed files. Do not commit unless asked.