name: character-creation description: Use when creating a new pinu-bot character or doing a major character redesign. Covers neutral-first design, shared API mapping, emotion-family construction, visual harness review, and finish criteria for cross-state cohesion. Do not use for small one-off expression tweaks.
Character Creation
Use this skill for new built-in characters and major character passes.
Read docs/character-creation.md first.
Then use:
docs/character-brief-template.mdbefore implementationdocs/construction-api.mdwhen repeated character work is failing at the composition level
Use This Skill When
- adding a new character
- doing a broad visual refactor of an existing character
- making a character respond properly to the shared API
- trying to resolve cross-state cohesion problems
Do Not Use This Skill When
- making a small expression tweak
- adjusting one line weight or one facial detail
- fixing an isolated bug unrelated to overall character construction
Workflow
- Read
docs/character-creation.md. - Fill out
docs/character-brief-template.mdbefore coding. - Inspect the current character surfaces that may need changes:
src/character.tssrc/robotFace.tssrc/characters/*.tsdemo/index.htmltest/visual.htmltest/visual.spec.tsREADME.mdif public behavior changes
- Lock the character identity and neutral face before tuning emotions.
- Lock the whole face composition before polishing individual parts:
- dominant silhouette
- centerline relationships
- which 2-3 forms carry the character
- what is structure vs decoration
- Decide how the character maps the shared API:
eyeShapenoseShapemouthShapebrowShape- feature toggles
- face themes
- built-in emotion names
- Treat the design as a display-symbol system, not an illustration:
- keep the face robotic unless the brief explicitly calls for something else
- abstract real-world references before drawing them
- do not let brows, ears, muzzle pieces, or mask shapes become unrelated stickers
- Build emotion families instead of isolated one-off states.
- Use
test/visual.htmlduring the pass, not only at the end. - Verify
speak()and other motion controls explicitly. - If local-part iteration keeps drifting, step back and use the construction-API proposal in
docs/construction-api.mdas the design frame instead of continuing to patch shape fragments. - Run:
./scripts/check.sh./node_modules/.bin/playwright testif visuals changed
Rules
- Neutral must read strongly on its own.
- The whole face must work as one composition before any single part is considered “good”.
- A character should still look like the same character in every core state.
- Shared API controls should behave coherently across characters.
- Do not use special-case charm details to hide unresolved structure.
- Do not solve a character as an animal illustration when the product needs a robot display face.
- If a shared control behaves differently for the character, translate it intentionally rather than accidentally ignoring it.
Deliverables
- character implementation
- any shared helper changes needed to support it cleanly
- demo/docs alignment if public behavior changed
- updated visual snapshots only when rendering legitimately changed