The production specification for kricket.ai's Instagram carousels: canvas, type, layout maths, the figure brief, the render rails, the gates, delivery. Written from Carousel 04, the first deck that passed review end to end.
Everything in the deck is drawn from the kit. Three places deviate on purpose, each with a reason.
#F6ECE3 for chalk, type and the CTA cardFixed values. The copy adapts to them, never the other way round.
| Type level | Size | Weight | Leading |
|---|---|---|---|
| Headline | 88 px | 500 | 1.08 |
| Body | 38 px | 400 | 1.40 |
| Small caps | 28 px | 500 | 1.40 · +0.14 em |
| Margin | Value | Applies to |
|---|---|---|
| Text | 96 px | every text block edge |
| Figure sides | 108 px | figure box left or right |
| Figure bottom | 140 px | figure box bottom |
| Figure type | Width | Anchor |
|---|---|---|
| Single hero | 0.60 – 0.66 | bottom corner |
| Hero, cropped to ink | 0.66 – 0.70 | bottom-left |
| Two-figure comparison | 0.70 – 0.78 | bottom-centre |
| Object or diagram | 0.62 – 0.66 | bottom-right |
| Calm small figure | 0.36 | bottom-right |
| # | Role | Figure |
|---|---|---|
| 01 | Hook, the coach's line in quotes | one hero |
| 02 | What it is not, with a cross | one figure |
| 03 | The cost, tick and cross | comparison |
| 04 | The concept as an object | metaphor |
| 05 | The answer, tick | one figure |
| 06 | The trap, tick and cross | comparison |
| 07 | The order | diagram |
| 08 | The horizon | calm figure |
| 09 | Breath | type only |
| 10 | The ask | photograph + card |
Brief as visible geometry, render, lift to chalk, place, build.
Style block, then eight lines: camera and scale, head, torso, arms, front leg, back leg, ground. Angles in degrees. One figure per frame.
Web app with a pasted pose photo, or the AGY rail by path. Download the file. Accept only on the anatomy checklist.
chalkify.py --lift to cream on transparency. Crop to ink when the figure sits small in its frame.
Fraction and anchor from the table. Headline on top. Labels and cue marks under the figures. Headless Chrome renders the PNGs.
Measured, then seen, then read cold.
| Gate | Rule | Threshold |
|---|---|---|
| Grid | text block edges on 96 / 984 | ± 8 px |
| Type on chalk | figure ink under the text block | ≤ 2.5 % |
| Canvas | nothing past 984 or 1266 | 0 |
| Saliency | headline is peak 1 | every slide |
| Cold read | anatomy, collisions, spelling, hierarchy | 0 blockers |
Every file the method depends on, by id, as cited in the specification.
| Id | Item | Location |
|---|---|---|
| K1 | Style guide | packaging/mediakit-2026-08-21/STYLE-GUIDE.md |
| K2 | Fonts, Caros Soft 300/400/500 | packaging/mediakit-2026-08-21/assets/fonts/ |
| K3 | Board texture | assets/textures/chalkboard-green-2026-07-15.png |
| K4 | Green glass button | assets/glass/glass-button-green-2026-07-13.png |
| S1 | Chalk style block | carousels/prompts/STYLE_V2.json |
| S2 | Camera and anatomy law | carousels/_design_language/V2_CAMERA.md |
| T1 | Lift | carousels/bin/chalkify.py |
| T2 | Build, reference | carousels/2026-09-03_build-the-base/build.py |
| T3 | Gates | carousels/2026-09-03_build-the-base/check_v2.py |
| C1 | Corpus map | ~/KPro/Course/CUT/transcripts/PIN_MAP.md |
| D1 | Review folder | Drive · Community Carousels · one subfolder per deck |
| D2 | Team mirror | …/KLUB_STUDIO/Marketing/Carousels/ |
| R1 | Reference deck | carousels/2026-09-03_build-the-base/out/contact.png |
A fresh session was given nothing but the specification and a new chapter. It produced this deck, ran the gates, and logged twenty places the document made it guess. Those fixes are v1.1.
| Gap found | Fix in v1.1 |
|---|---|
| Margin constant drifted | 96 px everywhere; reference build corrected |
| Heat map code not shipped | bin/heatmap.py added and referenced |
| Saliency rule unsatisfiable | rewritten as an order test; type-only slides exempt |
| Render rail retries, paths, aspect | documented, with the reference-photo mechanism |
| Kicker words, keyword owner, ASR corrections, reuse | rules added to §4 and §5 |
GAPS.md.One Markdown file. Clean, technical, no narrative. Hand it to any designer or model, get back an optimised version, run the next deck from it.