| name | pitch-deck |
| description | Builds the proposal slide deck for a prospect — an animated single-file HTML deck by default, .pptx when the buyer's meeting culture demands Office, or both — walking from evidenced weaknesses (tells) to the sign-here moment. Use when the user says "pitch deck", "proposal deck", "slides for [prospect]", "deck for the meeting", or as the 05-deck stage of a factory run. Every number comes from SYNTHESIS; every scope item traces to a tell; the tells ↔ scope ↔ price bijection is the spine. The HTML artifact is a precise, buildable spec (16:9 stage, anime.js v4, `--sf-*` tokens, ≤2.5MB, zero console errors, WCAG AA, prefers-reduced-motion) — not a vibe. |
Pitch-deck — the walk to the dotted line
A deck is an argument, not a brochure. It ingests ONLY SYNTHESIS-vetted numbers and the tells dossier, wears the prospect's palette over CETI chrome, and its skeleton is the sign-here bijection. This skill emits a precisely specified artifact — a single-file animated HTML deck built to references/deck-spec.md, assembled from named archetypes (references/slide-archetypes.md) choreographed by named motion patterns (references/motion-grammar.md), or a .pptx translated per references/pptx-mapping.md. Read ../forge/references/design-rigor.md and ../forge/references/evidence-rules.md before building.
References index
references/deck-spec.md — the exact HTML deck artifact contract: document structure, geometry, navigation, --sf-* token consumption, performance budget, accessibility floor, leave-behind + print modes. Every line is a checkable predicate. This is the acceptance spine.
references/slide-archetypes.md — the archetype library, one per narrative beat, each with layout grid, typed content slots + word caps, motion pattern, chart encoding, and acceptance checks. Dense/sparse variants.
references/motion-grammar.md — the named choreography patterns with timing specs, easing/duration token usage, sequencing budget, and the reduced-motion degradation table.
references/pptx-mapping.md — archetype→pptx layout, token→theme mapping, motion→build-steps, what is lost + compensations, when to choose pptx.
- Binding law:
../forge/references/evidence-rules.md, ../forge/references/design-rigor.md, ../forge/references/meta-meta-map.md (the sign-here bijection).
H1 — Typed contract
Input (fill at intake; UNKNOWN is legal, never invented):
SYNTHESIS: path # 01-research/SYNTHESIS.md — the ONLY source of numbers
TOKENS: path # design/tokens.css — the ONLY source of color/type/space
TELLS: path # 01-research/tells-dossier.md (reached via SYNTHESIS)
PROOF_CONTEXT: path|ref # demo-forge artifact link/QR + PROOF results
CHANGE_APPETITE: {augment|transform|explore} # mislabel → wrong note on every slide
WARMTH: {cold|warm|hot} # sets cold-open temperature + how direct the tells read
MEETING_CONTEXT: {in-room|remote|leave-behind} # drives autoplay, caption density, pacing
FORMAT: {html|pptx|both}
PROSPECT_NAME: str
Output (typed):
DECK_HTML: file # 05-deck/deck.html — single file, zero network deps, built to deck-spec.md
DECK_PPTX: file # 05-deck/deck.pptx — when FORMAT ∈ {pptx, both}, per pptx-mapping.md
ATOMS: list # ≥1 archetype/phrase atom → FACTORY/atoms.md
AUDIT_REF: ref # Stage-3b block in 01-research/CITATIONS.md covering this deck
The narrative spine (8 beats — adapt count, keep order)
Each beat maps to a named archetype in slide-archetypes.md.
- Cold-open (
cold-open) — one observation about THEIR world, live-demonstrable if possible. Earn attention before spending it; no agency-intro slide first.
- The tells (
tells) — 2–3 evidenced weaknesses, each with source tag and live wedge. Respectful, factual, specific.
- Cost of inaction (
cost-of-inaction) — what the tells cost per month, from SYNTHESIS math, EST flags shown. Honesty reads as competence.
- Offer bijection (
offer-bijection) — the sign-here table: each tell ↔ scope item ↔ price line. No orphan scope, no orphan tell (unresolved tells appear as explicit phase-2 rows).
- Proof (
proof) — PROOF_CONTEXT results, the touchable demo (link/QR), the transparency dashboard.
- Gates + timeline (
gates-timeline) — critical-path gates and a timeline keyed to them, never to enthusiasm.
- Pricing shapes (
pricing-shapes) — pilot/hybrid (recommended), performance-max, classic retainer; billable unit on the slide; floor never shown, never breached.
- The ask (
the-ask) — one next step, one date, one sentence.
Voice matrices
CHANGE_APPETITE (sets the offer's frame on every slide): augment → "your workflow, accelerated and standardized"; transform → "the redesign, de-risked in phases"; explore → "the discovery program, with kill criteria." Mislabeling strikes the wrong note everywhere — read the slot, do not guess.
WARMTH (sets cold-open temperature and how pointed the tells read): cold → open with an industry-level observation, tells stated as neutral findings, more proof; warm → open with a named-to-them observation, tells stated directly; hot → open mid-conversation, tells as shared knowledge, move fast to the ask.
MEETING_CONTEXT (sets the artifact's autonomy): in-room → autoplay off, presenter drives, captions terse, hero motion carries the beat; remote → autoplay off, captions fuller (screen-share compresses type), one idea per slide; leave-behind → self-narrating: captions on, every claim readable without a speaker, autoplay off, the argument survives with no one in the room.
H3 — Build loop (Frame → Do → Review → Capture)
FRAME. Load SYNTHESIS, TOKENS, TELLS. Confirm the Stage-3b audit has passed for the numbers you will use — refuse to build before it does (H9). Type the intake slots; state assumptions in one line. Pick archetype per beat and dense/sparse variant per how much synthesis data each beat carries.
DO. Build to deck-spec.md. For each beat: instantiate its archetype (layout grid + typed slots, honoring word caps), fill slots ONLY from SYNTHESIS (numbers) and TOKENS (style), attach the archetype's one hero motion + ≤3 supporting motions from motion-grammar.md. Wire the navigation contract and the reduced-motion gate once, globally. Every figure gets a visible source tag; every estimate an EST flag. Regenerate on any SYNTHESIS change — never hand-patch (functor law).
REVIEW. Run the H6 predicates + the design-rigor QA ladder (render → buyer read-through → CFO pass → sign-here check → contrast/mobile → slop pass) + the deck-spec acceptance checklist. Fix, regenerate, re-check the affected beats once.
CAPTURE. Mint ≥1 atom to FACTORY/atoms.md: an archetype that landed (template), a phrase that moved the buyer or visibly failed (phrase), a chart encoding that read cleanly. Format per mint-atoms. Note feedback traces to the exact slot/archetype/motion line that allowed the miss.
H4 — Scale-native (N prospects)
- Archetype library is shared and read-only across all prospects this wave: the 8 archetypes, the motion grammar,
deck-spec.md. Never fork the library per prospect — divergence there is a defect.
- Per-prospect swap: one
SYNTHESIS.md, one design/tokens.css (the --sf-* values change; variable NAMES never do), one intake record. The same deck code renders any prospect by swapping the token block — this is the palette-agnostic property (motion-grammar.md §tokens).
- Batch builds: one sub-agent per prospect, context-complete packet (its SYNTHESIS + its tokens.css +
deck-spec.md + slide-archetypes.md). Sub-agents build decks; they never edit the shared library and never introduce numbers.
- Fan-in: collect archetype/phrase atoms; dedupe into shared library atoms. A phrasing that lands across 3 prospects is promoted; one that fits a single deal stays instance-bound.
H5 — Judgment lives in references
Which archetype variant, how many supporting motions, when to drop a beat — resolved in slide-archetypes.md and motion-grammar.md, not by feel. When in doubt: fewer beats, one hero motion per slide, more source tags.
H6 — Checkable predicates (deck is DONE only if all hold)
H8 — Core invariants
SYNTHESIS-only numbers (never introduced inside the deck, never copied artifact-to-artifact). Source tags visible on every figure; EST flags on every estimate. Plain language — no functor/bijection vocabulary on any slide; the buyer feels completeness, never sees the machinery. Regenerate on refined input; never hand-patch. Floor never shown, never breached. The sign-here bijection is the deck's skeleton.
H9 — DONE predicate + refusal conditions
DONE when every H6 box is green, the design-rigor QA ladder passes, deck-spec.md's acceptance checklist passes, the requested FORMAT(s) are emitted, and ≥1 atom is minted.
Refuse to build when: (1) the Stage-3b citation audit has not passed for the numbers in scope — a deck built on unaudited numbers is a losing deck; (2) a required number has no SYNTHESIS source — send it to the unknowns ledger and the auto-triage ladder, never invent a "plausible" figure; (3) TOKENS is missing and no prospect palette can be derived — fall back to CETI house style and log it, do not ship an unstyled deck.
H10 — Feedback tracing
Buyer/human feedback traces to the exact line that allowed it: "wrong tone" → CHANGE_APPETITE or WARMTH mislabeled; "too dense on screen-share" → MEETING_CONTEXT read as in-room not remote; "the chart misled" → wrong encoding in the archetype's chart slot. Log to FACTORY/feedback-loop.md, fix at the slot/archetype/motion line, regenerate, mint the lesson as an atom. A run that mints no atom did not complete.