Use when creating new personas, enriching existing persona YAML files with better quotes and traits, or improving persona voice quality from source material. Also use when persona messages feel inauthentic, quotes seem fabricated, or trait lists are generic.
Create new personas or enrich existing ones with authentic, source-accurate content. Two phases: research the character, then author the YAML.
Core principle: Quotes must be recognizable from source material — adapt, don't fabricate. Swap one key noun to make it about coding; keep the rhythm and voice intact.
Don't use for: Switching personas, weighting, curation, or configuration — use sidekick-personas instead. That skill also has a "Create Custom Persona" recipe for quick stubs; use THIS skill when you need research-backed authoring with 18+ quotes and rich traits.
digraph gate {
"Request received" [shape=ellipse];
"New persona or enrichment?" [shape=diamond];
"Start at Phase 1" [shape=box];
"Read existing YAML first" [shape=box];
"Phase 1: Research" [shape=doublecircle];
"Request received" -> "New persona or enrichment?";
"New persona or enrichment?" -> "Start at Phase 1" [label="new"];
"New persona or enrichment?" -> "Read existing YAML first" [label="enrich"];
"Read existing YAML first" -> "Phase 1: Research";
"Start at Phase 1" -> "Phase 1: Research";
}
For enrichment: Read the existing persona YAML at assets/sidekick/personas/<id>.yaml (or ~/.sidekick/personas/ / .sidekick/personas/ for custom). Note what exists, what's missing, and what's weak. Preserve llmProfile and all existing fields.
Search for iconic quotes, traits, and speech patterns from the character's source material (movies, TV, books).
Research quality gate: You should have enough material to write the theme from memory. If you can't describe the character's voice without looking at notes, research more.
200-400 characters. Must include:
Gold standard:
"Chrisjen Avasarala, UN Undersecretary turned Secretary-General from The Expanse. The solar system's foul-mouthed political razor: sari-clad, cane-wielding, bullshit-intolerant genius who swears like she breathes and cuts through deception like a railgun. She'll call your code 'horseshit' to your face, then fix the architecture because humanity — or at least this goddamn project — depends on it."
What makes this good: Full name + title + source + 3 vivid physical/personality details + specific speech pattern + coding bridge that fits the character.
6-8 hyphenated compound traits. Not generic adjectives.
| Bad (generic) | Good (specific) |
|---|---|
logical | relentlessly-logical |
funny | mischievously-playful |
smart | intellectually-superior |
angry | impatient-with-fools |
polite | impeccably-polite |
Each trait should evoke the character — a reader familiar with the source should nod.
5-6 speech-pattern descriptors — HOW they speak, not WHAT they say.
| Bad (content) | Good (delivery) |
|---|---|
talks about logic | measured-and-deliberate |
uses profanity | profane-precision |
is sarcastic | diplomatically-deadpan |
Preserve behavioral directives if present (e.g., "no mechanical sounds" for C-3PO). These constrain the LLM and must survive enrichment.
Target: 18-20 messages.
These appear when a session starts. They should:
Adaptation technique: Take a real quote, find the noun or phrase that anchors it to the original context, and swap that one element for a coding concept. Keep the rest verbatim.
How to pick the noun to swap: Look for the subject the character is talking ABOUT — that's your swap target. The character's voice (syntax, rhythm, attitude) stays; only the topic changes.
# Original Spock quote:
"Insufficient facts always invite danger."
# Swap target: none needed — already applies to coding
# Adapted: "Insufficient facts always invite danger. Provide more context."
# Original Avasarala quote:
"I have 900 pages of contingency plans."
# Swap target: what the plans are FOR → "this codebase"
# Adapted: "I have 900 pages of contingency plans for this codebase."
# Original GLaDOS quote:
"This was a triumph. I'm making a note here: huge success."
# Swap target: what the "triumph" refers to → "the session"
# Adapted: "This was a triumph. I'm making a note here: the session hasn't started yet."
Verify adaptations: Search the original quote on Wikiquote or IMDb to confirm it's real before adapting. If you can't find the source, don't use it.
Target: 5-7 messages. Max 15 words each.
Triggered by user actions (vague prompts, untested commits, etc.). Each should:
Target: 4-5 messages. Max 8-10 words each.
Shown when user returns to an existing session. Short, punchy, in-character.