character-passport
Cast an AI video before anything moves: for every character and hero prop, a passport (one paragraph, every visible detail, pasted word for word into every prompt), a turnaround sheet in the moodboard's look, six expressions written as cause + physical tells, a measured voice line (pace in words per…
Install / Use
npx skills add hashgraph-online/awesome-codex-plugins --skill character-passportInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
OtherSupported Platforms
Our assessment of character-passport
character-passport scores 85/100 on our quality scale, 196th of 296 Other skills we index.
Its SKILL.md is 11 KB long, well organised into 16 sections with 2 code examples: a thorough specification that gives an agent plenty to work with.
With 1,075 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated about 2 months ago, so character-passport is actively maintained.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
character-passport compared with similar skills
All 4 of these similar skills score higher than character-passport; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| character-passport (this skill)by hashgraph-online | 85 | 1.1k | 46d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 112.1k | today | CLAUDE.md |
| LocalAIby mudler | 100 | 50.3k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 47d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 47d ago | SKILL.md |
Frequently asked questions
- How do I install character-passport?
- Run
npx skills add hashgraph-online/awesome-codex-plugins --skill character-passport. The install tabs above show the steps for each supported agent. - Which AI agents does character-passport work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is character-passport safe to use?
- It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is character-passport still maintained?
- The repository was last updated about 2 months ago, so character-passport is actively maintained.
Skill content
View source on GitHubname: character-passport description: >- Cast an AI video before anything moves: for every character and hero prop, a passport (one paragraph, every visible detail, pasted word for word into every prompt), a turnaround sheet in the moodboard's look, six expressions written as cause + physical tells, a measured voice line (pace in words per minute, accent, one verbal habit), and for props the materials, wear and how they move and sound. Includes anti-slop design rules, a prompt builder that refuses paraphrased passports, code routes (three.js, VRM, SVG face rig) and tested reference sites. Use for "make a character", "consistent character", "character sheet", "turnaround", "character bible", "expression sheet", "voice for my character", "prop sheet", "same person in every shot", or characters that look generic, plastic or different from shot to shot. Not for category looks (varg-character-design), real actor photos in multi-scene ads (varg-consistent-characters) or the film's look (video-moodboard). license: MIT metadata: author: vargHQ version: "1.0.1" openclaw: requires: anyBins: - python3 homepage: https://github.com/vargHQ/skills/tree/main/character-passport compatibility: >- Works in any agent with a shell. scripts/prompt.py needs Python 3; crop_sheet.py needs Pillow; voice_check.py needs ffmpeg. Images and voices through varg (MCP https://mcp.varg.ai/mcp or VARG_API_KEY): about $0.05 per image on Nano Banana 2.1 and $0.01 per voice take on Gemini 3.8 Flash TTS. Code routes need a browser or bun. allowed-tools: Bash(python3:) Bash(curl:) Bash(ffmpeg:) Bash(ffprobe:) Read Write Edit
Character passport
Character slop comes from letting the model choose the face, the clothes and the feeling. This skill takes those choices back, one checkable line at a time, and proves each step on a still before any video is paid for.
What our test showed (Nano Banana 2.1, 2026-11-03, full write-up: https://claude.ai/artifact/AJ1g4Qren3ZvwERSwrQigt):
- The passport gets you halfway; the sheet finishes the job. Two blind AI judges scored "same person across four shots" 2/10 for the moodboard's one-line subject, 5/10 for the passport alone, and 7.5-8.5/10 with a sheet as Image 1. Grey and moodboard-lit sheets tied; neither leaked its grid or backdrop.
- Big features survive, small and side-specific ones don't. Collar, scarf, hair and eye shadows: 89-100%. Hair behind the right ear 0/23, scar on the left 0/14 (mirrored), salt-marked boots 0/12, worn umbrella handle 0/22 when its own prop sheet was not attached.
- Cause + tells beats adjectives for acting. Stills: more real (7 vs 5) and less theatrical (3.5 vs 6). Video, same start frame: the adjective prompt made Kling 4 under-act and Seedance 2.5 over-act into a snarl; cause + tells + timing played as written on both (one clip each).
- Measure the voice. "Slow, half-second pauses" came out at 92 wpm against a 130 target; the corrected line landed at 129.
Files you produce
cast/<id>.md one per character and hero prop: premise, ```passport, ```voice or ```motion, never-change list
cast/<id>-sheet.png turnaround sheet (approved), plus panels/ cut by scripts/crop_sheet.py
cast/<id>-faces.png six-expression sheet (characters)
cast/<id>-voice.wav approved voice take + its voice_check.py result
cast/board.md the cast at a glance: one row per character/prop with sheet, faces, voice, status
Step by step
0. Inputs
Read moodboard.md (video-moodboard) for the look block and script.md / story.md for what each character does.
No moodboard yet: run video-moodboard first, or write a 3-line look block (light, palette, film stock) and say so.
1. Design the person before the picture
Answer in cast/<id>.md, one line each: premise (who, in one sentence) · job and history · what they want in this
film and what stops them · one visible flaw · one BIG signature detail readable at phone size · a silhouette that reads
as a black shape · why each garment is on them (job, money, weather, era). Category looks (grandmas, big guys,
mascots, beautiful women, cartoon): open the matching varg-character-design recipe.
Rules and the slop-tell list: references/design.md.
2. Write the passport
One paragraph, fixed order: who (name, age as a number, origin, job) → height, build, posture → face top to bottom → skin → hair → clothes outer to inner, top to bottom, each with colour, material and one sign of wear → hands. Only what a camera sees; side and size for every mark (then check it: models mirror sides); no value words; no detail that hides another (a scarf over the missing button); under ~900 characters. Put it in a
### 3. Turnaround sheet in the moodboard look
Front, side, back full body (same scale, one ground line, empty hands) over three big close-ups (front,
three-quarter, profile). Light it with the film's key direction and colour temperature, the film stock's texture,
a plain backdrop in the palette's darkest tone, and a fill that keeps every feature readable. Use flat 18% grey
instead when the character moves between very different lights. Prompts: [references/sheets.md](references/sheets.md).
**Check** the sheet against the passport line by line; fix misses with an edit pass on the sheet, not a re-roll.
Cut panels: `python3 scripts/crop_sheet.py cast/<id>-sheet.png --out cast/<id>-panels`.
### 4. Six expressions (characters)
Pick six moments the film needs. Write each as **a cause in the film + physical tells** (brows, lids, mouth,
jaw, head, breath), never an adjective. Default set: listening (rest face), real laugh, anger held in, worry,
startle, contempt. Generate one 3x2 sheet with the turnaround as Image 1. Tells per emotion and what video models
get wrong: [references/acting.md](references/acting.md).
### 5. Voice line (characters who speak)
Write a ```voice block: pace in words per minute + where the pauses go · pitch and texture · accent (region,
class, first language) · one verbal habit · default emotion. Generate a test line in the character's words, then
`python3 scripts/voice_check.py take.wav --text "<line>" --target-wpm <n>`. Fix the instruction, not the target,
until it passes. Then listen for the accent: no script checks it. Details and model notes:
[references/voice.md](references/voice.md).
### 6. Props
Every object the camera lingers on or a character touches twice gets its own `cast/<id>.md`: a ```passport
(what it is, materials and finish, size, wear and where it comes from, never-change) and a ```motion block
(weight, how it moves, what it sounds like). Sheet: five views on the same backdrop, no hands, one close-up of
the wear. Attach the prop sheet as Image 2 in every shot where the prop must read: without it, the worn handle came
out right 0 of 22 times. [references/props.md](references/props.md).
### 7. Use them in every shot
Build each shot prompt with the script, so the passports go in word for word and the prompt stays under the
model's limit:
```bash
python3 scripts/prompt.py build --sheet "Vesna" --shot "Close-up, 50mm: ..." \
--cast cast/vesna.md --cast cast/umbrella.md --look moodboard.md [--video]
python3 scripts/prompt.py check prompts/*.txt --cast cast/vesna.md --cast cast/umbrella.md # before any batch
Images: the sheet (or its panels) as Image 1, prop sheet as Image 2, location master as Image 3, each named by job, plus a winner rule. Video: animate an approved still (Kling 4), or give Seedance 2.5 the face close-up and the full-body front. Model table: references/generate.md. On GPT Image 2.6 / ChatGPT: references/gpt-image.md.
8. Judge and rank takes
Code first: scripts/face_check.py for identity, scripts/voice_check.py for pace, scripts/prompt.py check for
passports. Then AI judges on one binary criterion per call, blind, reference first, three model families, takes
ranked in pairs in both orders. Calibrate each criterion against people (scripts/judge_agreement.py) before
trusting it. Rubric, judge prompt and the biases to design against: references/judge.md.
9. STOP for approval
Show cast/board.md with sheet, faces, prop sheet and the voice take's numbers. Nothing moves before a yes.
Other routes
- Build them in code when the shape must be exact or reused a lot: a three.js blockout or VRM puppet rendered
from four cameras, an SVG face rig driven by FACS action units, a PBR prop, or image-to-3D from an approved front
view; then one image-edit pass dresses it in the film's look (tested: same pose, proportions and prop placement).
Code in
code/, routes and gotchas in references/code.md. - Find references first (real faces, costumes, props, accents): references/reference-sites.md and the find-references skill.
Never
"beautiful", "perfect", "stunning", "flawless", "cinematic" in a passport · a celebrity's or a living actor's name · paraphrasing a passport between shots · props in the character's hands on the sheet · two looks on one sheet · expressions as bare adjectives · a voice without a measured take · brand names (they draw logos) · real people's faces without consent.
Files in this skill
references/design.md: designing a specific person; the slop tellsreferences/passport.md: template, rules, filled examplesreferences/sheets.md: turnaround, expression and prop sheet prompts; moodboard vs greyreferences/acting.md: six expressions with physical tells; making emotion read as real in videoreferences/voice.md: the voice line, pace numbers, accents, verbal habits, TTS modelsreferences/props.md: prop passport, materials, wear, motion and soundreferences/generate.md: models and reference order for stills and videoreferences/gpt-image.md: GPT Image 2.6 (ChatGPT's model): settings, measured drift, fixes, promptsreferences/code.md: three.js, VRM, SVG and Blender routesreferences/reference-sites.md: tested sites for faces, costumes, props, poses and accentsreferences/people.md: who to learn from on X and in the craft, why to trust them, and red flagsreferences/x-evidence.md: 200+ techniques from X by topic, verbatim, with links and metricsreferences/craft-evidence.md: design, slop, acting, voice, prop and sheet rules from studios, research and model guides, with quotesreferences/evidence.md: the blind-judged test behind this skill (numbers, prompts, cost)references/judge.md: judging and ranking takes with AI judges: rubric, prompt, protocol, biasesreferences/judge-evidence.md: the research behind judge.md (biases with numbers, VLM failure modes, sources)references/goal-prompt.md: the whole skill as one copy-paste promptscripts/prompt.py,scripts/voice_check.py,scripts/crop_sheet.py,scripts/face_check.py(identity by face embedding),scripts/judge_agreement.py(judge vs judge vs human: kappa, TPR, TNR)code/: tested three.js blockout turnaround, VRM expression sheet, SVG FACS face rig, PBR prop, GLB turnaround, image-to-3D client scripts, andshoot.ts(Bun + Playwright headless renderer)examples/vesna/: the worked example (passport, voice, six expressions, umbrella, all image URLs)
Related Skills
taste-skill
112.1kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
LocalAI
50.3kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
