The cast that reads at a glance
Every character of an animated show cut into a rigged SVG puppet in GroundSlate from an approved T-pose front. Each puppet is drawn to the show's style kit, with a mouth chart timed to real recordings, costumes that fit the same skeleton, and an avatar that ties the body to a GroundSlate voice. This is the puppet half of the cast step in The Animated Series. The front half is its own skill.
Use /groundslate-cast: design the cast of <<SHOW NAME>> in GroundSlate profile <<PROFILE ID OR NAME>>, drawn to the show's style kit <<KIT NAME>> (make one first if there is none). The characters are <<NAMES AND ONE LINE EACH, OR "read notes/CAST.md in project prj_0a1b2c3d4e">>. Start from each character's approved front in work/fronts. If a front is missing, write the front brief first (Visual Idiom copied from the kit, CHARACTER section that person part by part: palette of three colours, head shape and ratio, face with eye size and eye line, hair, neck, torso with its ratios, shoulders, arms, hands, legs, feet, the flat-black silhouette, the one contradiction that makes them funny), show me the brief, then draw one T-pose front SVG with a named group for every movable part and show me the front (face at three times size, whole figure, flat-black silhouette) before you cut a puppet. Cut each approved front into a puppet. Ask me your questions first, including whether I already have vector drawings. Give each one a mouth chart, a set of hands, a default costume, and an avatar with a GroundSlate voice. Put the whole cast side by side at scale when you are done, and tell me what did not resolve.
Works with
- Your agent's own skills
- Research, analysis and writing. GroundSlate renders web pages itself now, capture_page for stills and record_page for footage, so the pictures come from the app; the reading, the judgement and any account that needs a sign-in still arrive through your agent.
A cast built by an agent can pass every check and still fail. puppet_doctor passes, every joint has its pivot, the mouths sit on the face, and nobody would put a single one of them on television. Rectangles for torsos. Eyes twice the size the reference show draws them. The same thick black line everywhere. Ten characters drawn by ten hands to ten ideas of the show.
This skill is the puppet half of the cast step of The Animated Series, done one character at a time. It cuts one approved front into a puppet, against the show's style kit, and shows you the turnaround before moving to the next character. The front comes from The front that can be rigged: a T-pose SVG written from a brief the kit fills. If a front is missing from the project, this skill writes and draws it first, and shows it to you before cutting a puppet. When it is done, every character is SVG parts on a puppet kit in GroundSlate, bound to an avatar with a GroundSlate voice, with a mouth chart the lipsync tool can drive. The cast notes say what makes each one who they are. The sheet you approve is an HTML page, and so is every shot the film is later captured from.
It needs a style kit to draw to. If the show has none yet, it makes the kit first, so no character has to be drawn twice.
Everything in <<double brackets>> is yours. Fill it in before you paste.
Install it
Copy or download SKILL.md above.
For Claude Code, save it as ~/.claude/skills/groundslate-cast/SKILL.md.
For claude.ai and the Claude desktop app, put it in a folder named groundslate-cast, zip the folder, and upload it under Settings, Capabilities, Skills.
The skill
---
name: groundslate-cast
description: Design the cast of a 2D animated show as rigged SVG puppets in GroundSlate: each character cut from an approved T-pose front written from the style kit, or that front written and drawn first if it is missing, then a mouth chart, costumes on one skeleton, and an avatar bound to a GroundSlate voice. The puppet half of the cast step of the animated series skill.
---
# The cast that reads at a glance
A character is a silhouette, a face, and a way of moving, in that order of importance and in that order of work. The silhouette is what a viewer recognises from across the room. The face is where they decide whether the drawing is good. The movement comes free from the rig if the first two are right. All three are decided on the front, before this skill cuts a puppet.
Everything you make lives in GroundSlate: the drawings as SVG in a puppet kit in a collection of kind `puppets`, the identity as an avatar that points at the kit and carries the voice, the reasoning as notes in the project. The sheet you show the human is an HTML page. You cut the puppet from an approved front in `work/fronts/<slug>/`. If that front is missing, you write and draw it first. You never invent a puppet from a name, convert a bitmap into a puppet, or lift paths from a generated turnaround.
## Before you start
`get_context`, confirm the profile, pass `profile=` on every call. Confirm the two built-in kits exist with `get_kit("draw kit")` and `get_kit("puppet engine")`; without them this skill cannot run, say so and stop.
Find the show's style kit: `list_kit_collections` for a collection of kind `style_kit`, `get_kit` on the kit with its files, `style_kit_doctor` to confirm it is clean, and `style_kit_sheet` for `swatches` and `mouths` so you have looked at the line, the palette and the shared faces before you draw a stroke. If there is no kit, build one first from the show's bible with `style_kit_scaffold`, run its doctor, show the human the swatches, and get it approved. Every character inherits the kit; a kit change after the fronts exist is a redraw of the fronts and the cast.
Read the cast notes. `notes/CAST.md` in the episode project, or the character list the human gave you. If a character has only a name, write the entry before anything else: silhouette in one sentence, what they want, how they talk, their signature detail, what makes them funny, which shapes they are made of.
Read `notes/fronts/` and `work/fronts/`. An approved front (brief plus T-pose SVG plus sheet) is the drawing this skill cuts. A missing front is this skill's first job for that character, not a skip.
Make or find the puppets collection: `create_kit_collection(name, kind="puppets")`, or `set_collection_kind` on one that exists. The doctor refuses a puppet whose collection is the wrong kind.
## Ask first
One message, before any drawing:
- Do they have reference frames for the look, if the kit is not settled? Two or three frames of the show it sits next to, with what to read off each (line weight against head size, even or tapered, eye construction, palette, shading); the kit's idiom is written from that and shown as swatches beside the frame. For each character, a look-at of who they resemble, read for silhouette and costume, never traced.
- Do they already have approved fronts in `work/fronts/`, or vector drawings that are already a T-pose front with named groups? If they do, those are the fronts. A photo, a frame of a show, a sketch or a generated turn sheet is a look-at: you draw from it, you do not lift it.
- Which character is this run? One. A run handed a cast spends its attention across the cast; a run handed one character spends all of it there. Take the first they name, say the rest are their own runs, and stop after this puppet. The two that appear most go first, unless they say otherwise; those two calibrate the show.
- What do they want to see? Offer one review per missing front (brief, then face at three times size, whole figure, flat-black silhouette), then one review per puppet, and a line-up of the whole cast at the end. Some people want only the line-up.
- Voices: cast from what the Mac already holds, or design new ones from the bible's descriptions? Offer to play options.
Write the answers into the cast notes.
## One character per run
Do not draw the cast in parallel and do not cut the cast in one run. The second character is a second run, cut against the first puppet's sheet open beside it, and the tenth against the nine before it, or the show has ten styles. The line-up at the end is its own run, when every puppet exists.
### The front, if it is missing
Do not cut a puppet from a name. If `work/fronts/<slug>/front.svg` and `notes/fronts/<slug>.md` are not there, write and draw the front first, and show it, before any `puppet.json`.
The brief has six sections, every time. Show it before you draw.
1. **Visual Idiom.** Copied from `kit.json` and the look paragraph of `SHOW_BIBLE.md`, never invented: the bible's look sentence, 2D only, the kit's line rule in the kit's numbers (`stroke_policy`, outline and interior weights, taper, ink hex), the kit's shading decision, the kit's proportions and shape rules. If the policy is filled outline, every contour is a closed filled path from the draw kit's taper helper. Do not write "4 px black" unless that is what the kit says. Interior details are shapes contained inside the layer, never overlapping its outline.
2. **SVG File Delivery.** Named groups for every movable part, pivot-friendly overlaps, independent facial features, hidden portions drawn completely, T-pose, stacking inspected.
3. **CHARACTER.** This person part by part: three colours that do the talking, head shape and ratio, face with eye size as a share of head width and where the eye line sits, hair as masses, neck, torso with its ratios as numbers, shoulders, arms, hands as a palm plus four fingers and a thumb, legs, feet, the flat-black silhouette, personality, the one contradiction that makes them funny, and where the design leans so it is not mirrored. "A middle aged man" is not a torso.
4. **Final Rigging and Quality Check.** T-pose, named left and right groups, facial hair that talks movable on its own, hidden overlap at joints, no doubled outlines, hands with a palm and four fingers and a thumb.
5. **Line Consistency Check.** Rewritten to the kit's line rule, then answered against every visible element.
6. **Layer and Position Check.** Position, scale, stacking, joints, clothing boundaries. Do not deliver until every group has been checked.
Then one SVG: front view, T-pose, full body, groups named so this skill can cut them onto joints, drawn with the draw kit's helpers or as SVG paths written directly; the checklists are the contract, not the helpers. A generated turn sheet is a look-at, never the parts. The sheet shows the face at three times size, the whole figure, and the flat-black silhouette at 64 pixels. If you cannot name them from the black shape, redesign, do not shade. Show the front. Do not cut the puppet until this front is one you would put on television.
### Cut the puppet from the front
The approved front is the front view. Map each named group onto a joint: the engine's names (`arm_l`, `forearm_l`, `hand_l`, `thigh_l`, `shin_l`, `foot_l`, `brow_l`, `eye_l`, and the right-hand set) map one to one, and a front from another model that says `left_forearm` or `left-forearm` maps by that table without renaming the drawing. Before you cut, read the kit's `line.stroke_policy` against the front: a front that carries SVG strokes under a `filled-outline` kit is refused by the doctor, and the fix is to set the kit's policy to `stroke` and rerun its doctor, never to redraw the front. Draw the hidden overlap at elbows, knees, wrists, shoulders and hips from the geometry already in the front; do not invent new masses. The face at three times size on the front sheet is the face; do not redraw it smaller.
Keep a checklist in the notes and answer it on the puppet's front view, against the brief:
- Is it them at a glance, the same person as the front?
- Are the eyes the size and spacing the brief said, and are the lids doing the expressive work rather than the eyeballs?
- Is the nose one shape that will survive a head turn?
- Is the mouth in the right place for a mouth chart to sit on it?
- Is every line the weight the kit says, with no accidental thick or thin?
- Is anything lumpy, wobbly, or a primitive hiding as anatomy?
- Would the reference show ship it?
The costume is its own part set dressing the same skeleton, listing the base parts it hides, so a second costume later is a second folder and not a second character. A collar is a small shape, not a bib. Sideburns, a mustache, a hat brim: each is a part on a joint so it can move.
Authored views: the front is the approved SVG; three-quarter is enough for a first episode; the engine mirrors the other side. Add profile and back only when a scene needs them. A new view is the same 3D head projected, not a new character. A three-quarter view mirrors its joints, so an arm angle that raises the hand in front lowers it in the mirrored view: measure it on a test page before you animate.
The manifest may override the kit where the kit's number is set for a full frame and the puppet will live at scene scale: a cel shadow the kit throws at six pixels reads at fourteen on a phone. Record every override in the manifest and in the notes. A part that spins gets its own joint pivoted at its centre, a child of the hand or the axle it turns on, so a shot keys the turn as an angle.
### The mouth chart
The kit owns the vocabulary; the puppet owns the drawings. Use the kit's shared human family when it fits the face, and say so in the manifest. Draw the puppet's own chart when the face needs it: a mustache the mouth opens beneath, a beard the open shapes are holes in, a beak, a hog with two shapes. List only the visemes you drew; every one you did not draw must reach one you did through the kit's fallback table, and `rest` is always drawn. Name the coupling: whether an open shape drops the jaw, and by how much.
Eyes are the character's own, every state the kit names, with the resting state chosen for who they are: a warm squint, a tired half-lid, a stare. Brows from the kit unless the face argues.
### The hands
A cut-out show does not rig fingers, it draws hands and swaps them. Give every character a hand chart: the states the show actually uses, drawn small and simple to the kit's line, per authored view, with the left mirroring the right unless a state needs its own drawing. The kit's `hand` vocabulary is rest, open, point, fist, hold, wave, thumb up and flat; implement the ones this character does, always including rest, and let the rest fall back. The front's rest hand (palm, four fingers, thumb) is the rest state. Draw the other states at three times size like the face, because a hand at scene size is twenty pixels and reads by silhouette alone: `point` has to point, and `wave` has to be different enough from `open` to be worth drawing. A foot chart is worth it only when a scene needs a bare foot; the walk helper covers walking, and the feet a pin plants are joints the skeleton names rather than drawings.
### What the puppet carries, so a shot does not have to
Four blocks in the manifest hold behaviour that used to be the scene's to remember. Breathing and blinking were two calls an agent had to make on every character in every shot, and a shot that forgot them rendered a statue with nothing anywhere saying so. Declare them once per character and every scene inherits them. A scene call still wins for its own span, so nothing here takes a shot's timing away from it.
`idle` holds six. `breathe` is the torso rock and its squash. `blink` is a seed, a hold and a mean gap. `sway` is a slow weight shift on the hips. `jaw` is the nutcracker jaw a spoken line drives, at this face's own maximum, and a puppet that already names the mouth coupling gets one built from it. `wiggle` is seeded noise on one joint, for hair, antennae, a tail, whiskers, an earring. `dangle` is follow-through on one joint, so a ponytail keeps going after the head stops and an earring swings when the body starts walking. The last two are lists, because they are per joint: a character with a ponytail, an earring and a tail has three of each. Give everyone a breath and a blink at least, and a dangle on anything that hangs.
`acting` says how far a speech-aware line moves this face: which of the six brows means up, down and rest, the nod and the tilt in degrees, the lead and hold in frames, and the ease. Hand the performance block `lipsync` returns to the line and the engine pops the brows and nods the head on the take's own beats, inside this character's range. A puppet that declares none acts on the house numbers, which is a real range and not a refusal.
`turn` is the ordered ring of views a gaze turns through, left to right, and the pupil units per step along it. Past that threshold a look also switches the drawn view one place toward what it is looking at, and the pupils travel the remainder in the new view. Without a ring a glance is pupils only and the head stays pointed at camera, which is the shot that reads as a doll.
`pin` is what a planted foot runs on: which joints are the feet, this puppet's own ground line, and how far above it a foot still counts as planted. A pin holds a foot's world position while the body moves over it; a weight shift is that pin with the hips travelling over one foot and the torso countering. Declare the ground line or the check that keeps a foot on the floor can never run, and the doctor says so as a note.
The doctor checks all four, and its range rules are the ones worth knowing before you write a number: a breath of forty degrees is a seizure, a blink every fifth of a second is a strobe, and a dangle stiffness of five thousand came from a physics engine with different units.
### The doctor, the build, the sheets
Import the puppet into the collection and run `puppet_doctor` until it is clean: every joint with a pivot in every authored view, every part on a joint that exists, a costume that dresses every view it dresses any, the mouth chart resolving, no stroke attributes, no `non-scaling-stroke`, and the silhouette rule under the kit's threshold. The doctor is the floor. A puppet that passes can still be ugly, and the checklist above is what stops that.
`puppet_build` for the character file. `puppet_sheet` for `turnaround`, `expressions`, `mouths`, `hands` and each costume. Look at every sheet yourself before anyone else does. A sheet with a `seek_not_pure` finding is a page bug, not a drawing; fix the page.
### The review
One review per character, if the human chose that gate: `request_review` on the turnaround sheet with an ask that names the other sheets' paths, so face and body are judged together. Read `review_status` when the notes arrive, fix every note in one pass, reply beside each mark with `review_reply` saying what changed, and re-render the sheets. A note about the hairline means the hairline changes. A note that contradicts the kit is a question back to the human about which wins, and the kit gets the answer so the next character inherits it.
### The avatar and the voice
`create_avatar` with the character's name, kind, identity description in the bible's words (what they look like), bio (who they are), and voice direction (how they speak). `set_avatar_puppet` to point it at the kit. Then the voice: `list_voices` for what the Mac holds, `preview_voice` to hear a line in a candidate, `create_voice` to design one from the voice direction, and `set_avatar_voice` to put it on the avatar. Play the human two or three candidates when they asked to choose. From here on `get_avatar` returns the body and the voice from one id, and `add_media_to_project` casts the avatar in an episode.
Test the mouths once: `synthesize_speech` one line in the voice, `lipsync` it with the puppet's visemes, and drive the chart on the sheet page. If the mouths look late or mushy, the chart's anchors are off, not the timing.
Record the lines at temperature 0.9 when the creator wants variety, three takes of anything shouted, and pick; the tool honours the temperature and marks the takes non-deterministic. A yell is a line in the character's voice before it is a sound effect.
## The line-up
When the cast is drawn, make a page that puts every character side by side at scene scale on one ground line, front view, and preview it. This is where a show's consistency is decided: one character too tall, one line too heavy, one head shape from a different show. Fix it now. Show the line-up to the human; it is the one picture that tells them whether they have a cast.
## Notes for the next agent
Update `notes/CAST.md` with every character's front brief path, front SVG path, kit name and id, avatar id, voice, costumes, the views authored, the visemes drawn, the coupling, and the three-shape sentence. Record the checklist answers that mattered and the notes the human gave, so the next character, or the next episode's new face, is drawn to the same bar. `add_project_note` pointing at the file.
## Deliver
Report each character with its kit and avatar ids, the doctor's verdict, the sheets' paths, the voice, and what the human approved. Then the line-up's path. Then what did not resolve: a face that took the cap and still misses, a mouth shape the kit's family could not give, a view a scene will need that is not drawn yet. Say what you would draw next, and stop.