"Validate readiness to advance between development phases. Produces a PASS/CONCERNS/FAIL verdict with specific blockers and required artifacts."
Install
npx skillscat add donchitos/claude-code-game-studios/gate-check Install via the SkillsCat registry.
Phase Gate Validation
This skill validates whether the project is ready to advance to the next development
phase. It checks for required artifacts, quality standards, and blockers.
Distinct from /project-stage-detect: That skill is diagnostic ("where are we?").
This skill is prescriptive ("are we ready to advance?" with a formal verdict).
Production Stages (7)
The project progresses through these stages:
- Concept — Brainstorming, game concept document
- Systems Design — Mapping systems, writing GDDs
- Technical Setup — Engine config, architecture decisions
- Pre-Production — Prototyping, vertical slice validation
- Production — Feature development (Epic/Feature/Task tracking active)
- Polish — Performance, playtesting, bug fixing
- Release — Launch prep, certification
When a gate passes, write the new stage name to production/stage.txt
(single line, e.g. Production). This updates the status line immediately.
1. Parse Arguments
- With argument:
/gate-check production— validate readiness for that specific phase - No argument: Auto-detect current stage using the same heuristics as
/project-stage-detect, then validate the NEXT phase transition
2. Phase Gate Definitions
Gate: Concept → Systems Design
Required Artifacts:
-
design/gdd/game-concept.mdexists and has content - Game pillars defined (in concept doc or
design/gdd/game-pillars.md)
Quality Checks:
- Game concept has been reviewed (
/design-reviewverdict not MAJOR REVISION NEEDED) - Core loop is described and understood
- Target audience is identified
Gate: Systems Design → Technical Setup
Required Artifacts:
- Systems index exists at
design/gdd/systems-index.mdwith at least MVP systems enumerated - At least 1 GDD in
design/gdd/(beyond game-concept.md and systems-index.md)
Quality Checks:
- GDD(s) pass design review (8 required sections present)
- System dependencies are mapped in the systems index
- MVP priority tier is defined
Gate: Technical Setup → Pre-Production
Required Artifacts:
- Engine chosen (CLAUDE.md Technology Stack is not
[CHOOSE]) - Technical preferences configured (
.claude/docs/technical-preferences.mdpopulated) - At least 1 Architecture Decision Record in
docs/architecture/ - Engine reference docs exist in
docs/engine-reference/
Quality Checks:
- Architecture decisions cover core systems (rendering, input, state management)
- Technical preferences have naming conventions and performance budgets set
Gate: Pre-Production → Production
Required Artifacts:
- At least 1 prototype in
prototypes/with a README - First sprint plan exists in
production/sprints/ - All MVP-tier GDDs from systems index are complete
Quality Checks:
- Prototype validates the core loop hypothesis
- Sprint plan references real work items from GDDs
- Vertical slice scope is defined
Gate: Production → Polish
Required Artifacts:
-
src/has active code organized into subsystems - All core mechanics from GDD are implemented (cross-reference
design/gdd/withsrc/) - Main gameplay path is playable end-to-end
- Test files exist in
tests/ - At least 1 playtest report (or
/playtest-reporthas been run)
Quality Checks:
- Tests are passing (run test suite via Bash)
- No critical/blocker bugs in any bug tracker or known issues
- Core loop plays as designed (compare to GDD acceptance criteria)
- Performance is within budget (check technical-preferences.md targets)
Gate: Polish → Release
Required Artifacts:
- All features from milestone plan are implemented
- Content is complete (all levels, assets, dialogue referenced in design docs exist)
- Localization strings are externalized (no hardcoded player-facing text in
src/) - QA test plan exists
- Balance data has been reviewed (
/balance-checkrun) - Release checklist completed (
/release-checklistor/launch-checklistrun) - Store metadata prepared (if applicable)
- Changelog / patch notes drafted
Quality Checks:
- Full QA pass signed off by
qa-lead - All tests passing
- Performance targets met across all target platforms
- No known critical, high, or medium-severity bugs
- Accessibility basics covered (remapping, text scaling if applicable)
- Localization verified for all target languages
- Legal requirements met (EULA, privacy policy, age ratings if applicable)
- Build compiles and packages cleanly
3. Run the Gate Check
For each item in the target gate:
Artifact Checks
- Use
GlobandReadto verify files exist and have meaningful content - Don't just check existence — verify the file has real content (not just a template header)
- For code checks, verify directory structure and file counts
Quality Checks
- For test checks: Run the test suite via
Bashif a test runner is configured - For design review checks:
Readthe GDD and check for the 8 required sections - For performance checks:
Readtechnical-preferences.md and compare against any
profiling data intests/performance/or recent/perf-profileoutput - For localization checks:
Grepfor hardcoded strings insrc/
Cross-Reference Checks
- Compare
design/gdd/documents againstsrc/implementations - Check that every system referenced in architecture docs has corresponding code
- Verify sprint plans reference real work items
4. Collaborative Assessment
For items that can't be automatically verified, ask the user:
- "I can't automatically verify that the core loop plays well. Has it been playtested?"
- "No playtest report found. Has informal testing been done?"
- "Performance profiling data isn't available. Would you like to run
/perf-profile?"
Never assume PASS for unverifiable items. Mark them as MANUAL CHECK NEEDED.
5. Output the Verdict
## Gate Check: [Current Phase] → [Target Phase]
**Date**: [date]
**Checked by**: gate-check skill
### Required Artifacts: [X/Y present]
- [x] design/gdd/game-concept.md — exists, 2.4KB
- [ ] docs/architecture/ — MISSING (no ADRs found)
- [x] production/sprints/ — exists, 1 sprint plan
### Quality Checks: [X/Y passing]
- [x] GDD has 8/8 required sections
- [ ] Tests — FAILED (3 failures in tests/unit/)
- [?] Core loop playtested — MANUAL CHECK NEEDED
### Blockers
1. **No Architecture Decision Records** — Run `/architecture-decision` to create one
covering core system architecture before entering production.
2. **3 test failures** — Fix failing tests in tests/unit/ before advancing.
### Recommendations
- [Priority actions to resolve blockers]
- [Optional improvements that aren't blocking]
### Verdict: [PASS / CONCERNS / FAIL]
- **PASS**: All required artifacts present, all quality checks passing
- **CONCERNS**: Minor gaps exist but can be addressed during the next phase
- **FAIL**: Critical blockers must be resolved before advancing6. Update Stage on PASS
When the verdict is PASS and the user confirms they want to advance:
- Write the new stage name to
production/stage.txt(single line, no trailing newline) - This immediately updates the status line for all future sessions
Example: if passing the "Pre-Production → Production" gate:
echo -n "Production" > production/stage.txtAlways ask before writing: "Gate passed. May I update production/stage.txt to 'Production'?"
7. Follow-Up Actions
Based on the verdict, suggest specific next steps:
- No game concept? →
/brainstormto create one - No systems index? →
/map-systemsto decompose the concept into systems - Missing design docs? →
/reverse-documentor delegate togame-designer - Missing ADRs? →
/architecture-decision - Tests failing? → delegate to
lead-programmerorqa-tester - No playtest data? →
/playtest-report - Performance unknown? →
/perf-profile - Not localized? →
/localize - Ready for release? →
/launch-checklist
Collaborative Protocol
This skill follows the collaborative design principle:
- Scan first: Check all artifacts and quality gates
- Ask about unknowns: Don't assume PASS for things you can't verify
- Present findings: Show the full checklist with status
- User decides: The verdict is a recommendation — the user makes the final call
- Get approval: "May I write this gate check report to production/gate-checks/?"
Never block a user from advancing — the verdict is advisory. Document the risks
and let the user decide whether to proceed despite concerns.