8.0 KiB
Skill Test Spec: /gate-check
Skill Summary
/gate-check validates whether the project is ready to advance to the next
development phase. It checks for required artifacts, runs quality checks, asks
the user about unverifiable items, and produces a PASS/CONCERNS/FAIL verdict.
On PASS with user confirmation, it writes the new stage name to
production/stage.txt. It governs all 6 phase transitions and is the most
critical gate-keeping skill in the pipeline.
Static Assertions (Structural)
Verified automatically by /skill-test static — no fixture needed.
- Has required frontmatter fields:
name,description,argument-hint,user-invocable,allowed-tools - Has ≥2 phase headings (numbered Phase N or ## sections)
- Contains verdict keywords: PASS, CONCERNS, FAIL
- Contains "May I write" collaborative protocol language
- Has a next-step handoff at the end (Follow-Up Actions section)
Test Cases
Case 1: Happy Path — All Concept artifacts present, advancing to Systems Design
Fixture:
design/gdd/game-concept.mdexists, has content including all required sectionsdesign/gdd/game-pillars.mdexists (or pillars defined within concept doc)- No systems index yet (which is correct for this stage)
Input: /gate-check systems-design
Expected behavior:
- Skill reads
design/gdd/game-concept.mdand verifies it has content - Skill checks for game pillars (in concept or separate file)
- Skill checks quality items (core loop described, target audience identified)
- Skill outputs structured checklist with all items marked
- Skill presents PASS/CONCERNS/FAIL verdict
- If PASS: skill asks "May I update
production/stage.txtto 'Systems Design'?"
Assertions:
- Skill uses Glob or Read to verify
design/gdd/game-concept.mdexists before marking it checked - Output includes a "Required Artifacts" section with check status per item
- Output includes a "Quality Checks" section with check status per item
- Output includes a "Verdict" line with one of PASS / CONCERNS / FAIL
- Skill asks about unverifiable quality items (e.g., "Has this been reviewed?") rather than assuming PASS
- Skill asks "May I write" before updating
production/stage.txt - Skill does NOT write
production/stage.txtwithout explicit user confirmation
Case 2: Failure Path — Missing required artifacts for Concept → Systems Design
Fixture:
design/gdd/game-concept.mddoes NOT exist- No game pillars document exists
design/gdd/directory is empty or absent
Input: /gate-check systems-design
Expected behavior:
- Skill attempts to read
design/gdd/game-concept.md— file not found - Skill marks required artifact as missing (not present)
- Skill outputs FAIL verdict
- Skill lists blocker: "No game concept document found"
- Skill suggests remediation: run
/brainstormto create one
Assertions:
- Verdict is FAIL (not PASS or CONCERNS) when required artifacts are missing
- Output explicitly names
design/gdd/game-concept.mdas missing - Output includes a "Blockers" section with at least 1 item
- Output recommends
/brainstormas the remediation action - Skill does NOT write
production/stage.txtwhen verdict is FAIL
Case 3: No Argument — Auto-detect current stage
Fixture:
production/stage.txtcontainsConceptdesign/gdd/game-concept.mdexists with content- No systems index yet
Input: /gate-check (no argument)
Expected behavior:
- Skill reads
production/stage.txtto determine current stage - Skill determines the next gate is Concept → Systems Design
- Skill proceeds with the Systems Design gate checks
- Output clearly states which transition is being validated
Assertions:
- Skill reads
production/stage.txt(or uses project-stage-detect heuristics) to determine current stage - Output header names both current and target phases (e.g., "Gate Check: Concept → Systems Design")
- Skill does not ask the user which gate to check if current stage is determinable
Case 4: Edge Case — Manual check items flagged correctly
Fixture:
- All required artifacts for Concept → Systems Design are present
- No playtest or review record exists (can't auto-verify quality checks)
Input: /gate-check systems-design
Expected behavior:
- Skill verifies all artifact files exist
- Skill encounters quality check: "Game concept reviewed (not MAJOR REVISION NEEDED)"
- Since no review record exists, skill marks item as MANUAL CHECK NEEDED
- Skill asks the user: "Has the game concept been reviewed for design quality?"
- Skill waits for user input before finalizing verdict
Assertions:
- Items that cannot be auto-verified are marked
[?] MANUAL CHECK NEEDEDrather than assumed PASS - Skill uses a question to the user for at least one unverifiable quality item
- Skill does not mark unverifiable items as PASS by default
Case 5: Director Gate — lean vs full vs solo mode
Fixture:
production/session-state/review-mode.txtexists (or equivalent state file)- All required artifacts for the target gate are present
design/gdd/game-concept.mdexists
Case 5a — full mode:
review-mode.txtcontainsfull
Input: /gate-check systems-design (with full mode active)
Expected behavior:
- Skill reads review mode — determines
full - Skill spawns all 4 PHASE-GATE director prompts in parallel:
- CD-PHASE-GATE (creative-director)
- TD-PHASE-GATE (technical-director)
- PR-PHASE-GATE (producer)
- AD-PHASE-GATE (art-director)
- If one director returns CONCERNS → overall gate verdict is at minimum CONCERNS
- All 4 verdicts are collected before producing final output
Assertions (5a):
- Skill reads review-mode before deciding which directors to spawn
- All 4 PHASE-GATE director prompts are spawned (not just 1 or 2)
- Directors are spawned in parallel (simultaneous, not sequential)
- A CONCERNS verdict from any one director propagates to overall verdict
- Verdict is NOT auto-PASS if any director returns CONCERNS or REJECT
Case 5b — solo mode:
review-mode.txtcontainssolo
Input: /gate-check systems-design (with solo mode active)
Expected behavior:
- Skill reads review mode — determines
solo - Each director is noted as skipped: "[CD-PHASE-GATE] skipped — Solo mode"
- Gate verdict is derived from artifact/quality checks only
- No director gates spawn
Assertions (5b):
- No director gates are spawned in solo mode
- Each skipped gate is explicitly noted in output: "[GATE-ID] skipped — Solo mode"
- Verdict is based on artifact and quality checks only
Note on Case 3 correction: The Case 3 assertions previously stated "Skill does not ask the user which gate to check if current stage is determinable." This is correct. However, the skill DOES use AskUserQuestion to confirm the auto-detected transition before running full checks — this is a confirmation step, not a gate selection. Assertions for Case 3 should not treat this confirmation as a failure.
Protocol Compliance
- Uses "May I write" before updating
production/stage.txt - Presents the full checklist report before asking for write approval
- Ends with a "Follow-Up Actions" section listing next steps per verdict
- Never advances the stage without explicit user confirmation
- Never auto-creates
production/stage.txtif it doesn't exist without asking
Coverage Notes
- The Production → Polish and Polish → Release gates are not covered here because they require complex multi-artifact setups (sprint plans, playtest data, QA sign-off); these are deferred to dedicated follow-up specs.
- The "CONCERNS" verdict path (minor gaps, not blocking) is not explicitly tested here; it falls between Case 1 and Case 2 and follows the same pattern.
- The Vertical Slice validation block (Pre-Production → Production gate) is not covered because it requires a playable build context that cannot be expressed as a document fixture.