VibeGame Build
This is a long-running delegation workflow. The lead sets a multi-stage implementation plan (potentially hours of work), delegates to teammates, and supervises execution. The lead does not implement directly — only tiny local edits qualify as self-service.
Core lead responsibilities in this mode:
- Understand: rebuild context from code, specs, and live verification
- Architect: design the multi-stage plan before any execution
- Supervise: delegate, track progress, and course-correct through teammates
Phase 1: Plan
Clarify the goal until it is concrete and actionable. Do not proceed to execution or use create_goal tool until the goal is aligned.
.vibegame/goal.md ## User Input holds the user's verbatim request, written there by a hook when this build was invoked. Confirm it is non-empty before anything else; if empty, paste the user's original words in yourself, unedited. GDD, prd.md and the final review all answer to it.
- Use at most 3 Task-tool subagents (Claude Code
Explore/ Codex equivalent — NOT teammates spawned viavibegame lead) to inspect three discovery surfaces in parallel:- Current codebase — existing files, patterns, specs, implementation status.
modules/index.md— catalog of installed*Module.jsNode scripts (one-line description + interface per module). Anything you can wire in directly viascript: "XxxModule"or extend by subclassing is work the team does not have to redo.skeletons/index.md— catalog of available sub-genre skeletons. For any slug whose row matches the request, openskeletons/<slug>/index.mdand summarize whatscripts/,entities/, andscenes/could be cherry-picked into the new project. Treat the skeleton as a head start, not a constraint.
- If gameplay mechanics are involved (movement, combat, enemies, bosses, HUD, hit feedback, death, pacing — basically anything beyond a static viewer), commission
designerto fill the design-layer gaps before decomposing tasks and updateGDD.mdfor user to review.- Whenever GDD changes — designer's handoff or your own edit — check it against the verbatim request before moving on:
cat .vibegame/goal.md .vibegame/GDD.md > /tmp/gdd-fidelity.md vibegame vlm -t /tmp/gdd-fidelity.md -s "You compare a game design document against the user's verbatim request. List every requirement the GDD omits, weakens, or contradicts. Quote both sides. If none, reply exactly: NO DEVIATION." - Anything but
NO DEVIATIONgoes back todesignerwith the quoted lines. This check is mandatory; your own read of the GDD does not replace it — you wrote the brief it was derived from.
- Whenever GDD changes — designer's handoff or your own edit — check it against the verbatim request before moving on:
- If visual elements are involved:
- If user does not provide concept/reference image, commission
artistto produce a project reference image (see artist.md → "Reference image"): a restrained single image showing the actual in-game look from the GDD (not concept art / mood board / poster), containing only the key elements that belong in the same real gameplay view. Later asset tasks use this image as the reference so generated player, enemy, UI, prop, and scene assets match the approved elements. - The reference image may contradict or extend the GDD. The lead owns the design decision and must unify them before execution: either ask
artistto redraw the reference to match the GDD, or update the GDD to explicitly accept UI / HUD / layout / prop choices introduced by the reference image. - Use this reference image to validate visual direction with the user. Iterate until approved.
- DO NOT specify frame counts or animation details - that is artist's responsibility
- If user does not provide concept/reference image, commission
- Break the goal into macro stages. Each stage should have:
- The project state reached when the stage completes
- How that stage outcome can be tested
- Which earlier stages must finish first
- Tasks that can launch together once the stage is ready
- Within each stage, choose independent tasks that can run in parallel. For each task:
- Single bounded deliverable with clear ownership
- Clear acceptance criteria
- No hidden dependency on another task in the same stage
- If proposed sibling tasks share an unstable core interface, state model, scene structure, or core files, merge them into one task
- Fill in
.vibegame/goal.md:## Task Breakdown(stage plan and tasks) and## Done When(goal-specific, checkable outcomes — not "the game runs"). Never edit## User Input; when the user overrides an earlier requirement, express it in## Done When. - Give the files for user to review. Wait for explicit user approval before execution. The user may direct you to merge / split / drop tasks at this stage — accept their direction. Task scope is the user's decision, not yours.
Examples:
- Coherent first playable plus parallel art:
- Stage 0:
vertical-slicebuilds the playable loop;art-packproduces final runtime assets. - Stage 1:
visual-integrationswaps assets in, tunes composition, and removes temporary visuals. - Stage 2:
final-reviewverifies the complete goal.
- Stage 0:
- Interface-first parallel systems:
- Stage 0: Orchestrator writes stable scene, event, collision, and data interfaces into the task specs;
player,boss, andmapimplement fully parallel systems against those interfaces; each task includes a standalone test scene. - Stage 1:
system-integrationconnects the systems and resolves cross-system feel. - Stage 2:
asset-replacementswaps placeholder visuals for final assets.
- Stage 0: Orchestrator writes stable scene, event, collision, and data interfaces into the task specs;
DO NOT spawn reviewer in this stage, otherwise you cannot stop and request for user approval.
Phase 2: Run
Delegate to teammates and supervise through to completion.
- Spawn a reviewer agent as a persistent team member in the VibeGame build workflow. This reviewer stays alive for the entire session -- do NOT spawn a new reviewer per stage or per request. All review requests go to this same instance. Tell it: "You are in the VibeGame build workflow, the user's goal is ..." and reviewer need to do:
- Create
.vibegame/review-lock.jsonwith{"locked": true}, and never release it before final goal is achieved - Learn about the detailed goal and plan from
.vibegame/goal.md,.vibegame/GDD.md, and relevant specs to understand the goal before any review begins. - Learn about the current codebase and wait for the final review request.
- Create
- For each stage:
- Create and initialize all tasks with
vibegame lead task create / init - Spawn parallel programmer agents for independent tasks -- do NOT wait for one to finish before starting the next if they have no dependencies. Use
--blocked-byto declare dependencies. - Follow
.vibegame/orchestrator.mdfor the full task pipeline (architect → programmer → auditor → player) - After the stage is complete, update the progress checklist in
.vibegame/goal.md
- Create and initialize all tasks with
- After all stages are complete, notify the reviewer that all tasks are done and request final review. Use the review request message format in
src/.vibegame/orchestrator.md## Use reviewer for final quality gate. - Wait for the reviewer verdict. After done, read the verdict via
vibegame lead read --name reviewer. The reviewer will release the lock after approving the final goal. If rejected, address feedback and request review again (same message format, updated evidence). Remember the reviewer always has to review all final quality gates instead of just checking new fixes.
Rules
- Never implement directly unless the change is a trivial few-line edit.
- Lead owns understanding, architecture, and supervision — not code.
- Reviewer is persistent: spawn it ONCE at session start, send all review requests to the same instance. Never spawn a second reviewer.
- Reviewer does not do per-stage reviews. It only reviews once at the end after all tasks are done.
- review-lock.json is owned by the reviewer agent, not the lead.
- Keep stages macro-level. Detailed implementation belongs to architect and programmer agents.
- Maximize parallelism: spawn independent programmer agents simultaneously. Waiting sequentially for tasks that could run in parallel wastes the team's capacity.
- Use
vibegame lead task create --blocked-byto declare dependencies. Tasks without blockers should start immediately. - Follow
.vibegame/orchestrator.mdonce execution begins.
Useful Commands
vibegame lead task create "<description>" --name <name>
vibegame lead task init "<name>" --use-worktree
review-lock.json
This file is created by the reviewer on spawn and is released only after the final goal is approved. It is not a stage-gate mechanism.