Game Production
Turn an accepted direction into playable progress, one build at a time. A
milestone is a product hypothesis with a playable build, not a task list: plan
the smallest build that retires the biggest uncertainty, implement it without
drifting from the brief, and verify it in play before claiming it.
If direction is missing, weak, or disputed, route through game-direction when
available or return USER_DECISION_NEEDED with the smallest decision required.
Do not use a production assumption to choose the concept, player promise,
stage, or public scope. Safe assumptions are limited to reversible production
details inside already accepted intent.
Route By Request
| Mode |
Authority |
Done state |
plan |
Inspect the project and return the milestone, roadmap, or work packages. Do not implement unless the request also asks for changes. |
The plan names its build, cuts, fallback, and next decision. |
implement |
Make requested reversible local changes inside the accepted brief and milestone, then run relevant non-destructive checks. |
The active claim is checked or a real blocker is named. |
long-run |
Use the implementation authority plus the checkpoint contract in references/long-run-control.md. |
The build or fallback is checked, or work stops on an evidence-backed blocker. |
Game Studio Milestone Ladder
Projects earn stages through played evidence, in roughly this order: first
prototype (answers one named question) → first playable build (one action, one
visible consequence) → core loop (repeatable with readable success, failure,
and recovery) → presentation build (the chosen format earns its cost) →
vertical slice (short section at representative shipped quality) → demo →
release. Skipping is fine only when the skipped build already exists. Never
call a prototype a vertical slice, and never let a stage advance on prose
alone. This milestone ladder complements rather than replaces lifecycle labels
such as alpha, beta, and release candidate.
Planning
Read references/milestone-planning.md for the planning flow, red flags, and
output shape. The non-negotiables:
- every milestone names its hypothesis, smallest useful build, cut candidates,
and fallback build;
- a milestone that only succeeds if everything works is a plan to fail;
- public promises must match the current build, not the roadmap.
Implementation
- Preserve design intent: before claiming player-facing work complete, name
which player action and feedback changed, which pillar the change preserves,
and which playable check showed the intended behavior.
- Parallel implementation is an optimization, not a requirement. When you do
split work, give each stream disjoint write scopes and a handoff; review may
cross boundaries, editing may not. Sequential execution is always valid.
- For Godot projects, read
references/godot-playable-build.md before build
or milestone work, and references/godot-reference-patterns.md before
implementing a mechanic that matches a known demo or starter-kit pattern.
- For browser games — Three.js, Babylon, Phaser, PixiJS, or hand-written
canvas and WebGL — read
references/web-playable-build.md. The browser
makes verification and distribution cheap and supplies no engine, so a
camera rig, save system, or audio bus is a milestone with its own playable
build, not setup work folded into another task.
- When a build ships to players, read
references/release-ledger.md before
changing a version number or writing release notes.
Long Runs
For long autonomous sessions, read references/long-run-control.md.
The core guard: activity is not progress. Classify material checkpoints as
playable, evidence, support, or blocked. Two consecutive support-only
checkpoints trigger a re-anchor before more support work; prefer the next
playable change, real play check, or blocker report.
Grounded Claims
Before reporting progress or completion, audit each claim against a check you
actually ran in this session — a launched build, an executed command, an
inspected artifact. If tests fail or a check was skipped, say so plainly.
File changes and passing scripts are not playable build by themselves.
Authority
Within an accepted brief and milestone, an implementation request authorizes
reversible local edits, refactors, placeholder cuts, and non-destructive checks;
record assumptions with their reversal cost. The human owns direction changes,
stage advancement, public promises, and release scope: when the next step would
change any of those, stop and return USER_DECISION_NEEDED with the exact
decision required. Destructive or irreversible actions, external writes or
uploads, spend-bearing actions, secret handling, and material scope expansion
need explicit approval. Create commits, branches, tags, or pushes only when the
user requests them.
Output
End a production pass with:
Mode: plan | implement | long-run
Active milestone or build:
Player-visible change or planned change:
Artifacts changed:
Evidence checked and result:
Evidence state: planned | checked | failed | blocked
Checks failed, skipped, or unverified:
Safe assumptions and cuts:
Blocker:
Human decision needed:
Next build:
Completion means the active claim is supported by current evidence. It does
not advance the project stage or expand a public promise.
Gotchas
- Do not hide the evidence inside implementation details; the milestone claim
must be player-facing and checkable.
- Do not expand the release promise during implementation, and do not let
implementation silently change direction.
- Do not claim a playable build from file presence alone; run the narrowest
real check (launch, scene load, smoke run, capture) that supports the claim.
- Do not copy a starter kit or demo blindly; name the pattern, the adaptation,
the license decision, and the runtime check.
- Do not keep generating documents, tests, or helper tooling when the next
thing that must happen is a playable change, a human taste call, or an
outside decision.
1---2name: game-production3description: Use when writing a "milestone plan" or scoping prototypes, a "vertical slice", demo, or release; when estimating "how much before the demo"; when someone wants to "set up this game project" or implement an approved piece of game work; when running long or autonomous game-development sessions; or when taking Godot or browser-game work from an approved milestone to a checked playable build. NOT for discovering or defining direction (use game-direction), judging "is this done" or other readiness claims (use game-review), or engine-only debugging, upgrades, and maintenance detached from a playable build.4---56# Game Production78Turn an accepted direction into playable progress, one build at a time. A9milestone is a product hypothesis with a playable build, not a task list: plan10the smallest build that retires the biggest uncertainty, implement it without11drifting from the brief, and verify it in play before claiming it.1213If direction is missing, weak, or disputed, route through game-direction when14available or return `USER_DECISION_NEEDED` with the smallest decision required.15Do not use a production assumption to choose the concept, player promise,16stage, or public scope. Safe assumptions are limited to reversible production17details inside already accepted intent.1819## Route By Request2021| Mode | Authority | Done state |22| --- | --- | --- |23| `plan` | Inspect the project and return the milestone, roadmap, or work packages. Do not implement unless the request also asks for changes. | The plan names its build, cuts, fallback, and next decision. |24| `implement` | Make requested reversible local changes inside the accepted brief and milestone, then run relevant non-destructive checks. | The active claim is checked or a real blocker is named. |25| `long-run` | Use the implementation authority plus the checkpoint contract in `references/long-run-control.md`. | The build or fallback is checked, or work stops on an evidence-backed blocker. |2627## Game Studio Milestone Ladder2829Projects earn stages through played evidence, in roughly this order: first30prototype (answers one named question) → first playable build (one action, one31visible consequence) → core loop (repeatable with readable success, failure,32and recovery) → presentation build (the chosen format earns its cost) →33vertical slice (short section at representative shipped quality) → demo →34release. Skipping is fine only when the skipped build already exists. Never35call a prototype a vertical slice, and never let a stage advance on prose36alone. This milestone ladder complements rather than replaces lifecycle labels37such as alpha, beta, and release candidate.3839## Planning4041Read `references/milestone-planning.md` for the planning flow, red flags, and42output shape. The non-negotiables:4344- every milestone names its hypothesis, smallest useful build, cut candidates,45 and fallback build;46- a milestone that only succeeds if everything works is a plan to fail;47- public promises must match the current build, not the roadmap.4849## Implementation5051- Preserve design intent: before claiming player-facing work complete, name52 which player action and feedback changed, which pillar the change preserves,53 and which playable check showed the intended behavior.54- Parallel implementation is an optimization, not a requirement. When you do55 split work, give each stream disjoint write scopes and a handoff; review may56 cross boundaries, editing may not. Sequential execution is always valid.57- For Godot projects, read `references/godot-playable-build.md` before build58 or milestone work, and `references/godot-reference-patterns.md` before59 implementing a mechanic that matches a known demo or starter-kit pattern.60- For browser games — Three.js, Babylon, Phaser, PixiJS, or hand-written61 canvas and WebGL — read `references/web-playable-build.md`. The browser62 makes verification and distribution cheap and supplies no engine, so a63 camera rig, save system, or audio bus is a milestone with its own playable64 build, not setup work folded into another task.65- When a build ships to players, read `references/release-ledger.md` before66 changing a version number or writing release notes.6768## Long Runs6970For long autonomous sessions, read `references/long-run-control.md`.71The core guard: activity is not progress. Classify material checkpoints as72playable, evidence, support, or blocked. Two consecutive support-only73checkpoints trigger a re-anchor before more support work; prefer the next74playable change, real play check, or blocker report.7576## Grounded Claims7778Before reporting progress or completion, audit each claim against a check you79actually ran in this session — a launched build, an executed command, an80inspected artifact. If tests fail or a check was skipped, say so plainly.81File changes and passing scripts are not playable build by themselves.8283## Authority8485Within an accepted brief and milestone, an implementation request authorizes86reversible local edits, refactors, placeholder cuts, and non-destructive checks;87record assumptions with their reversal cost. The human owns direction changes,88stage advancement, public promises, and release scope: when the next step would89change any of those, stop and return `USER_DECISION_NEEDED` with the exact90decision required. Destructive or irreversible actions, external writes or91uploads, spend-bearing actions, secret handling, and material scope expansion92need explicit approval. Create commits, branches, tags, or pushes only when the93user requests them.9495## Output9697End a production pass with:9899```text100Mode: plan | implement | long-run101Active milestone or build:102Player-visible change or planned change:103Artifacts changed:104Evidence checked and result:105Evidence state: planned | checked | failed | blocked106Checks failed, skipped, or unverified:107Safe assumptions and cuts:108Blocker:109Human decision needed:110Next build:111```112113Completion means the active claim is supported by current evidence. It does114not advance the project stage or expand a public promise.115116## Gotchas117118- Do not hide the evidence inside implementation details; the milestone claim119 must be player-facing and checkable.120- Do not expand the release promise during implementation, and do not let121 implementation silently change direction.122- Do not claim a playable build from file presence alone; run the narrowest123 real check (launch, scene load, smoke run, capture) that supports the claim.124- Do not copy a starter kit or demo blindly; name the pattern, the adaptation,125 the license decision, and the runtime check.126- Do not keep generating documents, tests, or helper tooling when the next127 thing that must happen is a playable change, a human taste call, or an128 outside decision.