Release 1.1.2 — the default path works end to end

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
This commit is contained in:
Donchitos
2026-09-29 21:32:19 +10:00
co-authored by Claude Opus 5.5
parent 7ed2c3e9c4
commit b21fa0f7f2
383 changed files with 22888 additions and 10618 deletions
@@ -2,188 +2,247 @@
## Skill Summary
`/brainstorm` facilitates guided game concept ideation. It presents 2-4 concept
options with pros/cons, lets the user choose and refine a concept, and produces
a structured `design/gdd/game-concept.md` document. The skill is collaborative —
it asks questions before proposing options and iterates until the user approves
a concept direction.
`/brainstorm` facilitates guided game concept ideation. It branches on the
resolved `workflow` tier **first**:
In `full` review mode, four director gates spawn in parallel after the concept
is drafted: CD-PILLARS (creative-director), AD-CONCEPT-VISUAL (art-director),
TD-FEASIBILITY (technical-director), and PR-SCOPE (producer). In `lean` mode,
all 4 inline gates are skipped (lean mode only runs PHASE-GATEs, and brainstorm
has none). In `solo` mode, all gates are skipped. The skill asks "May I write"
before writing `design/gdd/game-concept.md`.
- **`minimal`** (the default — `modes.rigor` defaults to `minimal`) runs the
**Lean Brief flow**: 2–3 one-line concepts, one pick, the brief fields filled
conversationally, and a one-page `design/game-brief.md` written after
"Brief is ready. May I write it to `design/game-brief.md`?". No director gates
run and no `game-concept.md` is written.
- **`standard` / `full`** run the full flow: Creative Discovery, 3 distinct
concepts, core loop, pillars, player types, scope, then
`design/gdd/game-concept.md` after "Game concept is ready. May I write it to
`design/gdd/game-concept.md`?".
In the full flow, director gates run at three points, not together: CD-PILLARS
(creative-director) and AD-CONCEPT-VISUAL (art-director) in parallel once
pillars are agreed (Phase 4); TD-FEASIBILITY (technical-director) after technical
risks are identified and before scope tiers (Phase 6); PR-SCOPE (producer) after
scope tiers are defined. Review mode comes from the resolved config
(`--review` overrides it); `lean` and `solo` skip all four with a named note each.
Both flows end with `Verdict: **COMPLETE**`.
---
## Static Assertions (Structural)
Verified automatically by `/skill-test static` — no fixture needed.
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 keywords: APPROVED, REJECTED, CONCERNS
- [ ] Contains "May I write" collaborative protocol language (for game-concept.md)
- [ ] Has a next-step handoff at the end (`/map-systems`)
- [ ] Contains verdict keyword: COMPLETE (in both the Lean Brief flow and the full flow)
- [ ] Contains "May I write" language for both `design/game-brief.md` and `design/gdd/game-concept.md`
- [ ] Has a next-step handoff at the end (`/map-systems` in the full flow's Path A; `/create-stories` in the Lean Brief flow)
- [ ] Documents 4 director gates in full mode: CD-PILLARS, AD-CONCEPT-VISUAL, TD-FEASIBILITY, PR-SCOPE
- [ ] Documents that all 4 gates are skipped in lean and solo modes
- [ ] Documents a named skip note for each gate in lean and solo modes
---
## Director Gate Checks
In `full` mode: CD-PILLARS, AD-CONCEPT-VISUAL, TD-FEASIBILITY, and PR-SCOPE
spawn in parallel after the concept draft is approved by the user.
Full flow only (`workflow: standard` or `full`):
In `lean` mode: all 4 inline gates are skipped (brainstorm has no PHASE-GATEs,
so lean mode skips everything). Output notes all 4 as: "[GATE-ID] skipped — lean mode".
- **Full review mode**: CD-PILLARS + AD-CONCEPT-VISUAL spawn in parallel after
pillars are agreed; TD-FEASIBILITY spawns after technical risks are identified;
PR-SCOPE spawns after scope tiers are defined.
- **Lean review mode**: all 4 skipped (none is a PHASE-GATE). Notes read
"CD-PILLARS skipped — Lean mode.", "AD-CONCEPT-VISUAL skipped — Lean mode.",
"TD-FEASIBILITY skipped — Lean mode.", "PR-SCOPE skipped — Lean mode."
- **Solo review mode**: all 4 skipped, same notes with "Solo mode".
In `solo` mode: all 4 gates are skipped. Output notes all 4 as: "[GATE-ID] skipped — solo mode".
`workflow: minimal` (Lean Brief flow): no director gate is spawned at all.
---
## Test Cases
### Case 1: Happy Path — Full mode, 3 concepts, user picks one, all 4 directors approve
### Case 1: Happy Path — Full mode, 3 concepts, gates at their three points
**Fixture:**
- `project.yaml` sets `modes.rigor: full` (`workflow` → `full`, `review_mode` → `full`)
- No existing `design/gdd/game-concept.md`
- `production/session-state/review-mode.txt` contains `full`
- CD-PILLARS returns APPROVE; TD-FEASIBILITY returns VIABLE and PR-SCOPE returns REALISTIC (each gate's own verdict words)
**Input:** `/brainstorm`
**Expected behavior:**
1. Skill asks the user questions about genre, scope, and target feeling
2. Skill presents 3 concept options with pros/cons each
3. User selects one concept
4. Skill elaborates the chosen concept into a structured draft
5. All 4 director gates spawn in parallel: CD-PILLARS, AD-CONCEPT-VISUAL, TD-FEASIBILITY, PR-SCOPE
6. All 4 return APPROVED
7. Skill asks "May I write `design/gdd/game-concept.md`?"
8. Concept written after approval
1. Tier branch: `full` → full flow
2. Phase 1 asks discovery questions (favourite games as plain text; the
Experience / Timeline / Dev level multi-tab `AskUserQuestion`)
3. Phase 2 presents 3 concepts, then a plain-list `AskUserQuestion` (no tabs) to pick
4. After pillars are locked, CD-PILLARS and AD-CONCEPT-VISUAL are spawned in
parallel; their results are presented in a two-tab (Pillars / Visual anchor) `AskUserQuestion`
5. Phase 6 asks for platform and engine (the engine question always prompts);
TD-FEASIBILITY spawns after risks are identified, before scope tiers
6. PR-SCOPE spawns after scope tiers are defined
7. Skill asks "Game concept is ready. May I write it to `design/gdd/game-concept.md`?"
8. Written after approval with a Visual Identity Anchor section; Path A next steps include `/map-systems`
9. Verdict is COMPLETE
**Assertions:**
- [ ] Exactly 3 concept options are presented (not 1, not 5+)
- [ ] All 4 director gates spawn in parallel (not sequentially)
- [ ] All 4 gates complete before the "May I write" ask
- [ ] "May I write `design/gdd/game-concept.md`?" is asked before writing
- [ ] Concept file is NOT written without user approval
- [ ] Next-step handoff to `/map-systems` is present
- [ ] Exactly 3 concept options are presented
- [ ] CD-PILLARS and AD-CONCEPT-VISUAL are issued as simultaneous `Agent` calls
- [ ] TD-FEASIBILITY spawns before scope tiers are defined; PR-SCOPE after
- [ ] "May I write it to `design/gdd/game-concept.md`?" is asked before writing
- [ ] The concept document includes a Visual Identity Anchor section
- [ ] Next-step handoff lists `/map-systems`
- [ ] Verdict is COMPLETE
---
### Case 2: Failure Path — CD-PILLARS returns REJECT
**Fixture:**
- Concept draft is complete
- `production/session-state/review-mode.txt` contains `full`
- CD-PILLARS gate returns REJECT: "The concept has no identifiable creative pillar"
- `project.yaml` sets `modes.rigor: full`
- Pillars and anti-pillars have been agreed with the user
- CD-PILLARS returns REJECT: "The pillars do not carry weight — none forces a design choice"
- AD-CONCEPT-VISUAL returns 3 named visual directions
**Input:** `/brainstorm`
**Expected behavior:**
1. CD-PILLARS gate returns REJECT with specific feedback
2. Skill surfaces the rejection to the user
3. Concept is NOT written to file
4. User is asked: rethink the concept direction, or override the rejection
5. If rethinking: skill returns to the concept options phase
1. Both gates were spawned in parallel; the skill collects both results
2. Because CD-PILLARS returned REJECT, the two-tab question is **not** used: the
creative-director's feedback is presented in a Pillars question on its own,
with options `Lock in as-is` / `Revise [specific pillar]` / `Discuss further`
3. Pillar issues are resolved first; only then is the Visual anchor question
asked, on its own, with the art-director's 3 directions
4. The skill does not move on to document generation or the write ask while the pillar issue is open
**Assertions:**
- [ ] Concept is NOT written when CD-PILLARS returns REJECT
- [ ] Rejection feedback is shown to the user verbatim
- [ ] User is given the option to rethink or override
- [ ] Skill returns to concept ideation phase if user chooses to rethink
- [ ] CD-PILLARS feedback is shown to the user
- [ ] User is offered `Revise [specific pillar]` and `Discuss further` (and may `Lock in as-is`)
- [ ] The first question after the REJECT has no Visual anchor tab
- [ ] Visual anchor selection is not requested until the pillar issue is resolved
- [ ] `design/gdd/game-concept.md` is not written at this point
---
### Case 3: Lean Mode — All 4 gates skipped; concept written after user confirms
### Case 3: Lean Mode — All 4 gates skipped with named notes
**Fixture:**
- `project.yaml` sets `modes.rigor: standard` (`workflow` → `standard`, `review_mode` → `lean`)
- No existing game concept
- `production/session-state/review-mode.txt` contains `lean`
**Input:** `/brainstorm`
**Expected behavior:**
1. Concept options are presented and user selects one
2. Concept is elaborated into a structured draft
3. All 4 director gates are skipped — each noted: "[GATE-ID] skipped — lean mode"
4. Skill asks user to confirm the concept is ready to write
5. "May I write `design/gdd/game-concept.md`?" asked after confirmation
6. Concept written after approval
1. Tier branch: `standard` → full flow
2. At Phase 4: "CD-PILLARS skipped — Lean mode. AD-CONCEPT-VISUAL skipped — Lean mode."
3. At Phase 6: "TD-FEASIBILITY skipped — Lean mode." then "PR-SCOPE skipped — Lean mode."
4. No director agents are spawned
5. "Game concept is ready. May I write it to `design/gdd/game-concept.md`?" is asked
6. Written after approval; Verdict is COMPLETE
**Assertions:**
- [ ] All 4 gate skip notes appear: "CD-PILLARS skipped — lean mode", "AD-CONCEPT-VISUAL skipped — lean mode", "TD-FEASIBILITY skipped — lean mode", "PR-SCOPE skipped — lean mode"
- [ ] Concept is written after user confirmation only (no director approval needed in lean)
- [ ] All 4 skip notes appear, each naming its gate and "Lean mode"
- [ ] No `Agent` call is made for any director
- [ ] "May I write" is still asked before writing
- [ ] Verdict is COMPLETE
---
### Case 4: Solo Mode — All gates skipped; concept written with only user approval
### Case 4: Solo Default — Minimal tier runs the Lean Brief flow
**Fixture:**
- `project.yaml` has `engine.name` set and no `modes` block (`modes.rigor`
defaults to `minimal`: `workflow` → `minimal`, `review_mode` → `solo`)
- No `design/game-brief.md`, no `design/gdd/game-concept.md`
**Input:** `/brainstorm roguelike`
**Expected behavior:**
1. Tier branch: `minimal` → Lean Brief flow; Phases 1–5 are skipped
2. From the hint, proposes 2–3 one-line concepts and asks one `AskUserQuestion` to pick or combine
3. Fills the brief fields conversationally (pitch, core loop, player goal & fail
state, MVP, out of scope, build order) and presents the brief for one confirmation
4. Asks "Brief is ready. May I write it to `design/game-brief.md`?" with
`[A] Yes — write it` / `[B] Revise a field first`
5. Next steps: `/create-stories`, then `/dev-story`; `/setup-engine` is NOT listed
because `engine.name` is set
6. Verdict is COMPLETE
**Assertions:**
- [ ] Output file is `design/game-brief.md`; `design/gdd/game-concept.md` is not written
- [ ] 2–3 one-line concepts are proposed (not the full 9-field concept cards)
- [ ] No director agent is spawned
- [ ] Next steps list `/create-stories` and `/dev-story`, not `/map-systems` or `/setup-engine`
- [ ] Verdict is COMPLETE
---
### Case 5: Director Gate — PR-SCOPE returns UNREALISTIC
**Fixture:**
- `project.yaml` sets `modes.rigor: full`
- Concept, pillars and scope tiers are defined
- PR-SCOPE returns UNREALISTIC: "The MVP would take 18+ months for a solo developer"
- The user cuts the MVP to the adjusted tiers the skill offers, then answers
`[A] Yes — write it` to the write ask
**Input:** `/brainstorm`
**Expected behavior:**
1. PR-SCOPE spawns after scope tiers are defined
2. Skill presents the producer's assessment to the user
3. Because the verdict is UNREALISTIC, the skill offers to adjust the MVP
definition or scope tiers before writing the document
4. The write ask comes only after that offer is resolved; the user decides
5. After the user approves the write, `design/gdd/game-concept.md` is written
**Assertions:**
- [ ] PR-SCOPE assessment is shown to the user before the "May I write" ask
- [ ] Skill offers to adjust the MVP definition or scope tiers
- [ ] Skill does NOT discard or auto-reject the concept — the user decides
- [ ] The concept is written only after the user approves the write
- [ ] "Estimated Scope" in the written concept matches the Scope Tiers timeline (e.g. "Large (X–Y months, solo)")
---
### Case 6: Solo Review on the Full Flow — All 4 gates skipped with Solo-mode notes
**Fixture:**
- `project.yaml` sets `modes.rigor: standard` (`workflow` → `standard`)
- No existing game concept
- `production/session-state/review-mode.txt` contains `solo`
**Input:** `/brainstorm`
**Input:** `/brainstorm --review solo`
**Expected behavior:**
1. Concept options are presented and user selects one
2. Concept draft is shown to user
3. All 4 director gates are skipped — each noted with "solo mode"
4. "May I write `design/gdd/game-concept.md`?" asked
5. Concept written after user approval
1. Tier branch: `standard` → full flow; `--review solo` overrides the resolved
`review_mode` for this run
2. At Phase 4: "CD-PILLARS skipped — Solo mode. AD-CONCEPT-VISUAL skipped — Solo mode."
3. At Phase 6: "TD-FEASIBILITY skipped — Solo mode." then "PR-SCOPE skipped — Solo mode."
4. No director agents are spawned
5. "Game concept is ready. May I write it to `design/gdd/game-concept.md`?" is
asked, and the concept is written after approval; Verdict is COMPLETE
**Assertions:**
- [ ] All 4 skip notes appear with "solo mode" label
- [ ] No director agents are spawned
- [ ] Concept is written with only user approval
- [ ] Behavior is otherwise equivalent to lean mode for this skill
---
### Case 5: Director Gate — PR-SCOPE returns CONCERNS (scope too large)
**Fixture:**
- Concept draft is complete
- `production/session-state/review-mode.txt` contains `full`
- PR-SCOPE gate returns CONCERNS: "The concept scope would require 18+ months for a solo developer"
**Input:** `/brainstorm`
**Expected behavior:**
1. PR-SCOPE gate returns CONCERNS with specific scope feedback
2. Skill surfaces the scope concerns to the user
3. Scope concerns are documented in the concept draft before writing
4. User is asked: reduce scope, accept concerns and document them, or rethink
5. If concerns are accepted: concept is written with a "Scope Risk" note embedded
**Assertions:**
- [ ] PR-SCOPE concerns are shown to the user before the "May I write" ask
- [ ] Skill does NOT write concept without surfacing scope concerns
- [ ] If user accepts: scope concerns are documented in the concept file
- [ ] Skill does NOT auto-reject a concept due to PR-SCOPE CONCERNS (user decides)
- [ ] All 4 skip notes appear, each naming its gate and "Solo mode" (not "Lean mode")
- [ ] No `Agent` call is made for any director
- [ ] The concept is written only after the user's approval
- [ ] Verdict is COMPLETE
---
## Protocol Compliance
- [ ] Presents 2-4 concept options with pros/cons before user commits
- [ ] User confirms concept direction before director gates are invoked
- [ ] All 4 director gates spawn in parallel in full mode
- [ ] All 4 gates skipped in lean AND solo mode — each noted by name
- [ ] "May I write `design/gdd/game-concept.md`?" asked before writing
- [ ] Ends with next-step handoff: `/map-systems`
- [ ] Checks `workflow` before anything else and runs exactly one flow
- [ ] Full flow presents 3 concepts before the user commits; Lean Brief flow presents 2–3 one-liners
- [ ] Concept selection always asks, regardless of `modes.automation`
- [ ] Gates spawn at their own points in full mode (CD-PILLARS + AD-CONCEPT-VISUAL together; TD-FEASIBILITY; PR-SCOPE)
- [ ] In the full flow (`workflow: standard` / `full`), all 4 gates are skipped in lean and solo modes, each noted by name; the Lean Brief flow spawns no gate at all
- [ ] Asks "May I write" before writing `design/game-brief.md` or `design/gdd/game-concept.md`
- [ ] Ends with Verdict COMPLETE and the tier's next-step handoff
---
## Coverage Notes
- AD-CONCEPT-VISUAL gate (art director feasibility) is grouped with the other
3 gates in the parallel spawn — not independently fixture-tested.
- The iterative concept refinement loop (user rejects all options, skill
generates new ones) is not fixture-tested — it follows the same pattern as
the option selection phase.
- The game-concept.md document structure (required sections) is defined in the
skill body and not re-enumerated in test assertions.
- TD-FEASIBILITY returning HIGH RISK (offer to revisit scope) is not separately tested.
- A gate answering NOT ASSESSED (it lacked an input) is never an approval — the
missing input is named and the gate re-run, or the result recorded as not
assessed; not separately tested.
- The concept refinement loop ("Generate fresh directions") is not fixture-tested.
- Resuming an existing `design/game-brief.md` or `design/gdd/game-concept.md` is not separately tested.
- `guided` / `autonomous` automation behaviour for the pillar and write loops is not tested here.