This proposal covers pipeline step 8 — Promote toward handoff. Today promotion stages exist only as submissionState strings in mock data with no gate definitions, no per-stage blockers surfaced to the builder, and no mechanism to export a certification-ready package. This stub captures the problem, sketches one wireframe, and lists the open questions that must be resolved before a full proposal can be written.
The submissionState field in apps/web/src/lib/builderMockData.ts holds strings such as "prototype", "review_candidate", and "operator_demo", but these strings are displayed as labels only — there are no gate definitions attached to each stage, no list of blockers a builder must resolve before promoting, and no UI that presents the promotion ladder as a series of rungs with explicit pass/fail criteria.
A builder who believes their game is ready for an operator demo has no tool to confirm which gates they have and have not cleared, no export path for a certification package, and no visibility into what a certification body will expect to receive. The GameWorkspace.tsx component renders the current submissionState as a status badge but provides no actionable path forward — a builder must rely on out-of-band communication (email, Slack) to understand the next step.
The workspace gains a Promotion stage ladder: five named rungs (Prototype playable → Internal playable → Review candidate → Operator demo → Certification package) each with gate chips showing which criteria are met and which are blocking, plus an "Export package" panel that becomes active at the Certification package rung.
| File | Change |
|---|---|
apps/web/src/components/builder/GameWorkspace.tsx |
Replace the submissionState badge with a full promotion stage ladder component; each rung renders its gate criteria as chips with passed/blocked states; the Export package panel is gated on reaching the Certification package rung. |
apps/web/src/lib/builderMockData.ts |
Extend the submissionState model (or replace it) with a structured promotion record: current rung, per-rung gate results, and export bundle metadata once the Cert-Pack agent has run. |
| Cert-Pack agent output | The Certification package rung and Export panel depend on the Cert-Pack agent producing a jurisdiction-specific bundle. The agent's output contract (bundle format, jurisdiction scope fields, file naming) must be defined before this rung can be fully specced. |
Today promotion is invisible — a string label on a card with no gates, no actionable blockers, and no export path; after this proposal it becomes a structured five-rung ladder where each rung has explicit criteria, the builder can see exactly what is blocking the next promotion, and the final rung produces a real exportable certification package rather than a manual email handoff.
Once the open questions above are resolved, the promotion ladder and Cert-Pack agent output contract can be specced in full. The next document in this planning suite is the Mechanics library, which catalogues the mechanic archetypes available as starting points for new game builds.