Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
12 KiB
Skill Test Spec: /start
Skill Summary
/start is the first-time onboarding skill. Phase 1 silently detects project
state (engine from project.yaml or technical-preferences.md, concept or
brief, source code under the engine's code root, prototypes, GDDs, production
artifacts, and whether .git/config's origin still points at the template
repo). Phase 2 asks where the user is with four AskUserQuestion options
(A No idea yet, B Vague idea, C Clear concept, D Existing work); engine choice
is not asked here — it is deferred to /setup-engine.
Phase 3 routes by answer and names only the immediate next step. Phase 3c asks
"May I write project.stage: [stage] to project.yaml (and the legacy mirror
production/stage.txt)?" — one approval that also covers the Phase 3d and 3e
answers — then writes both and announces them. Phase 3d asks the rigor question and Phase
3e the automation question, each skipped when the key is already set; each
answer is written to project.yaml straight from the selection. /start never
writes any of the six knobs modes.rigor fronts (modes.review_mode,
modes.workflow, docs.density, qa.level, modes.story_granularity,
team.size) or production/review-mode.txt. Phase 4 prints the path for the
chosen rigor — Path D2's retrofit path included — and asks which step to take
first; Phase 5 prints a single "Type [skill command] to begin." line. A
returning user (engine configured and a concept or brief present) skips
onboarding. No director gates apply. Verdict: COMPLETE.
Static Assertions (Structural)
Checked against the SKILL.md by /skill-test spec — no fixture needed.
- Has required frontmatter fields:
name,description,argument-hint,user-invocable,allowed-tools - Has ≥2 phase headings
- Contains verdict keyword: COMPLETE
- States the write rule for every write it makes: "May I write" before the
project.yamlwrite, the same ask naming theproduction/stage.txtlegacy mirror;modes.rigorandmodes.automationwritten as a direct consequence of the user's selection, under that approval - Has a next-step handoff at the end (Phase 5: "Type
[skill command]to begin.")
Director Gate Checks
None. /start is a utility setup skill. No director agents exist yet at the
point this skill runs.
Test Cases
Case 1: Happy Path — Fresh repo, Path A, minimal rigor
Fixture:
- No
project.yaml, noproduction/stage.txt;technical-preferences.mdholds only placeholders - No design docs, prototypes or source code;
originis the user's own repo - The user picks
A) No idea yet, approves theproject.yamlwrite, then picksJam / prototype / first game, thenGuided
Input: /start
Expected behavior:
- Phase 1 detection runs without printing its findings
- Phase 2
AskUserQuestionoffers exactly A–D; no engine question is asked - Path A: explains
/brainstormtier-neutrally and names only/brainstorm openas the next step ("I'll lay out the full path once I know how much process you want") - Phase 3c asks "May I write
project.stage: Concepttoproject.yaml(and the legacy mirrorproduction/stage.txt)?", saying the file will be created; on approval it createsproject.yamlfrom the v1.1 minimal template withproject: stage: Concept(nomodes.rigor, nomodes.review_mode), writesConcepttoproduction/stage.txtunder the same approval, and announces both - Phase 3d offers
Jam / prototype / first game (Recommended)first (no concept → minimal);modes.rigor: minimalis written on selection - Phase 3e writes
modes.automation: guidedon selection - Phase 4 prints the minimal 4-step path (
/setup-engine,/brainstorm,/create-stories,/dev-story) and asks which step to take first - Phase 5 prints only "Type
[skill command]to begin."; verdict COMPLETE
Assertions:
- Phase 2 offers exactly the four A–D options and no engine choice
project.yamlandproduction/stage.txtare written only after the one "May I write" ask that names bothproject.stageandproduction/stage.txtare bothConceptproject.yamlends up holding onlyproject.stage,modes.rigorandmodes.automationfrom/start— none of the six rigor-fronted knobs — andproduction/review-mode.txtis not written- The recommended rigor option is listed first with
(Recommended) - Phase 4 prints the minimal 4-step path
- The next skill is not auto-run; Verdict is COMPLETE
Case 2: Returning User — Onboarding skipped
Fixture:
project.yamlhasengine.name: Godotandmodes.rigor: minimal; no explicitmodes.review_modedesign/game-brief.mdexists
Input: /start
Expected behavior:
- Phase 1 finds the engine configured and the brief present
- Skill skips onboarding: "It looks like you're already set up! Your engine is
Godot and you have … a game brief at
design/game-brief.md." - Review mode is reported as
solo(resolved frommodes.rigor: minimal) - Skill points to
/helpor asks what the user would like to work on
Assertions:
- The A–D starting-point question is not asked
- The message names the configured engine (Godot) and the brief path
- Review mode is reported as
solo, resolved from rigor - No write is made to
project.yamlorproduction/stage.txt
Case 3: Existing Work on Unity — Path D2, stage and rigor already set
Fixture:
project.yamlhasengine.name: Unity,modes.rigor: standardandmodes.automation: collaborative- C# scripts exist under
Assets/Scripts/;design/gdd/holds 3 system GDDs; nodesign/gdd/game-concept.md, nodocs/architecture/ - The user picks
D) Existing workand approves theproject.yamlwrite
Input: /start
Expected behavior:
- Phase 1 resolves the code root as
Assets/for Unity and finds source files there (it does not scansrc/and conclude there is no code) - Phase 3 D shares what it found (source files, 3 design docs, engine Unity)
- Sub-case D2: recommends
/project-stage-detectthen/adopt, naming/project-stage-detectas the immediate step; the tiered path waits for Phase 4 - Phase 3c asks "May I write
project.stage: Systems Designtoproject.yaml(and the legacy mirrorproduction/stage.txt)?", then writesSystems Design(GDDs, no architecture) to the existingproject.yaml(read first, then edited) and toproduction/stage.txt - Phase 3d prints "Rigor is set to
standard." and Phase 3e "Automation is set tocollaborative." — neither question is asked - Phase 4 prints the D2 retrofit path at
standard:/project-stage-detect,/adopt,/design-system retrofit,/architecture-decision retrofit,/architecture-review,/gate-check
Assertions:
- Source files are found under
Assets/, not reported as absent /project-stage-detectand/adoptare recommended for D2- Stage
Systems Designis written to bothproject.yamlandproduction/stage.txt, after the "May I write" ask - The rigor and automation questions are skipped because both keys are set
- The D2 retrofit path is printed in Phase 4, including the GDD, ADR and registry retrofit steps
- Verdict is COMPLETE
Case 4: Clone Still Wired to the Template Repo — remote note, never run
Fixture:
- Fresh project as in Case 1
.git/confighas[remote "origin"]with urlhttps://github.com/Donchitos/Claude-Code-Game-Studios.git- The user picks
B) Vague ideawith the hint "a small weekend puzzler"
Input: /start
Expected behavior:
- Phase 1 reads
.git/configas a file and matches the template URL case-insensitively - Path B recommends
/brainstorm a small weekend puzzleras the immediate step - Phase 3d recommends
Jam / prototype / first gamefor the described scope - After the Phase 4 path, the skill adds once: the clone's
originstill points at the Claude Code Game Studios repo, and suggestsgit remote rename origin templatethengit remote add origin <your repo URL> - The commands are suggested only — no git command is run
Assertions:
- The template-origin note appears exactly once, after the path
- Both suggested commands are given as written above
- No git command is executed (read of
.git/configonly) - The minimal rigor option is the recommended one for the described scope
Case 5: Director Gate Check — No gate; start is a utility setup skill
Fixture:
- Fresh project and answers as in Case 1 (
A) No idea yet, the write approved,Jam / prototype / first game,Guided)
Input: /start
Expected behavior:
- Skill completes the onboarding flow through Phase 5
- No director agents are spawned at any point
- No gate IDs (CD-, TD-, AD-, PR-) appear in the output
Assertions:
- No director gate is invoked during the skill execution
- No gate skip messages appear (gates are absent, not suppressed)
- Skill reaches COMPLETE without any gate verdict
Case 6: Path D2 With Rigor Unset — the retrofit path waits for the answer
Fixture:
project.yamlhasengine.name: Godotand nomodesblocksrc/holds GDScript files;design/gdd/holds 4 system GDDs; nodocs/architecture/- The user picks
D) Existing work, approves theproject.yamlwrite, then picksSeveral systems that affect each otherandCollaborative
Input: /start
Expected behavior:
- Phase 3 D2 names
/project-stage-detectas the immediate step and prints no tiered path yet - Phase 3c asks, then writes
Systems Design - Phase 3d asks the rigor question, since
modes.rigoris unset;modes.rigor: standardis written on selection - Phase 4 prints the D2 retrofit path at
standard, including/design-system retrofit,/architecture-decision retrofitand/architecture-review— not the minimal stop after/adoptand/setup-engine
Assertions:
- No tiered D2 path is printed before Phase 3d has the rigor
- The rigor question is asked because the key is unset
- Phase 4's D2 path matches the chosen
standard, with the GDD, ADR and registry retrofit steps - None of the six rigor-fronted knobs is written — only
modes.rigorandmodes.automationare added
Protocol Compliance
- Detects project state silently before the first question
- Asks the starting-point question via
AskUserQuestionwith options A–D; defers engine choice to/setup-engine - Never writes any of the six rigor-fronted knobs (
modes.review_mode,modes.workflow,docs.density,qa.level,modes.story_granularity,team.size) orproduction/review-mode.txt - Skips the rigor and automation questions when those keys are already set
- Asks "May I write" before the
project.yamlwrite, namingproduction/stage.txtin the same ask; announces the stage it wrote; writes rigor/automation only from the user's selection - Prints the Path D2 retrofit path only in Phase 4, after the rigor is known
- Never auto-runs the next skill; a completed onboarding run (not the returning-user skip, which ends at its
/helppointer) ends with "Type[skill command]to begin." and Verdict COMPLETE
Coverage Notes
- Path C (clear concept,
Formalize it firstvsJump straight in) is not separately tested. - The
standardandfullPhase 4 paths follow Case 1 with the longer pipeline; not separately tested. - The mismatch note (a rigor that contradicts the described project) and the edge cases "picks D but project is empty" / "picks A but code exists" are not separately tested.
- A declined Phase 3c write (neither file written, the stage and the two answers kept for the run and reported as not saved) is not separately tested.