7.3 KiB
Skill Test Spec: /map-systems
Skill Summary
/map-systems decomposes a game concept into a systems index. It reads the
approved game concept and pillars, enumerates both explicit and implicit systems,
maps dependencies between systems, assigns priority tiers (MVP / Vertical Slice /
Alpha / Full Vision), and organizes systems into a layered design order
(Foundation → Core → Feature → Presentation). The output is written to
design/systems-index.md after user approval.
This skill is required between game concept approval and per-system GDD creation
— it is a mandatory gate in the pipeline. In full review mode, CD-SYSTEMS
(creative-director) and TD-SYSTEM-BOUNDARY (technical-director) spawn in parallel
after the decomposition is drafted. In lean or solo mode, both gates are
skipped. The skill writes to design/systems-index.md.
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
- Contains verdict keywords: COMPLETE, BLOCKED
- Contains "May I write" collaborative protocol language (for systems-index.md)
- Has a next-step handoff at the end (
/design-system) - Documents gate behavior: CD-SYSTEMS + TD-SYSTEM-BOUNDARY in parallel in full mode
Director Gate Checks
In full mode: CD-SYSTEMS (creative-director) and TD-SYSTEM-BOUNDARY
(technical-director) spawn in parallel after the systems decomposition is drafted
and before design/systems-index.md is written.
In lean mode: both gates are skipped. Output notes:
"CD-SYSTEMS skipped — lean mode" and "TD-SYSTEM-BOUNDARY skipped — lean mode".
In solo mode: both gates are skipped with equivalent notes.
Test Cases
Case 1: Happy Path — Game concept exists, 5-8 systems identified
Fixture:
design/gdd/game-concept.mdexists with Core Mechanics and MVP Definition sectionsdesign/gdd/game-pillars.mdexists with ≥1 pillar defined- No
design/systems-index.mdexists yet production/session-state/review-mode.txtcontainsfull
Input: /map-systems
Expected behavior:
- Skill reads game-concept.md and game-pillars.md
- Identifies 5-8 systems (explicit + implicit)
- Maps dependencies between systems and assigns layers
- CD-SYSTEMS and TD-SYSTEM-BOUNDARY spawn in parallel and return APPROVED
- Asks "May I write
design/systems-index.md?" - Writes systems-index.md after approval
- Updates
production/session-state/active.md
Assertions:
- Between 5 and 8 systems are identified (not fewer, not more without explanation)
- CD-SYSTEMS and TD-SYSTEM-BOUNDARY spawn in parallel (not sequentially)
- Both gates complete before the "May I write" ask
- "May I write
design/systems-index.md?" is asked before writing - systems-index.md is NOT written without approval
- Session state is updated after writing
- Verdict is COMPLETE
Case 2: Failure Path — No game concept found
Fixture:
design/gdd/game-concept.mddoes NOT existdesign/gdd/directory may be empty or absent
Input: /map-systems
Expected behavior:
- Skill attempts to read
design/gdd/game-concept.md - File not found
- Skill outputs: "No game concept found. Run
/brainstormto create one, then return to/map-systems." - Skill exits without creating systems-index.md
Assertions:
- Skill outputs a clear error naming the missing file path
- Skill recommends
/brainstormas the next action - No systems-index.md is created
- Verdict is BLOCKED
Case 3: Director Gate — CD-SYSTEMS returns CONCERNS (missing core system)
Fixture:
- Game concept exists
production/session-state/review-mode.txtcontainsfull- CD-SYSTEMS gate returns CONCERNS: "The [core-system] is implied by the concept but not identified"
Input: /map-systems
Expected behavior:
- Systems are drafted (5-8 initial systems identified)
- CD-SYSTEMS gate returns CONCERNS naming the missing core system
- TD-SYSTEM-BOUNDARY returns APPROVED
- Skill surfaces CD-SYSTEMS concerns to user
- User is asked: revise systems list to add the missing system, or proceed as-is
- If revised: updated systems list shown before "May I write" ask
Assertions:
- CD-SYSTEMS concerns are shown to the user before writing
- Skill does NOT auto-write systems-index.md while CONCERNS are unresolved
- User is given the option to revise or proceed
- Revised systems list is re-shown after revision before final "May I write"
Case 4: Edge Case — systems-index.md already exists
Fixture:
design/gdd/game-concept.mdexistsdesign/systems-index.mdalready exists with N systems
Input: /map-systems
Expected behavior:
- Skill reads the existing systems-index.md and presents its current state
- Skill asks: "systems-index.md already exists with [N] systems. Update with new systems, or review and revise priorities?"
- User chooses an action
- Skill does NOT silently overwrite the existing index
Assertions:
- Skill detects and reads the existing systems-index.md before proceeding
- User is offered update/review options — not auto-overwritten
- Existing system count is presented to the user
- Skill does NOT proceed with a full re-decomposition without user choosing to do so
Case 5: Director Gate — Lean mode and solo mode both skip gates, noted
Fixture (lean mode):
- Game concept exists
production/session-state/review-mode.txtcontainslean
Lean mode expected behavior:
- Systems are decomposed and drafted
- Both CD-SYSTEMS and TD-SYSTEM-BOUNDARY are skipped
- Output notes: "CD-SYSTEMS skipped — lean mode" and "TD-SYSTEM-BOUNDARY skipped — lean mode"
- "May I write" ask proceeds directly
Assertions (lean mode):
- Both gate skip notes appear in output
- Skill proceeds to "May I write" without gate approval
- systems-index.md is written after user approval
Fixture (solo mode):
- Same game concept,
production/session-state/review-mode.txtcontainssolo
Solo mode expected behavior:
- Same decomposition workflow
- Both gates skipped — noted in output with "solo mode"
- "May I write" ask proceeds
Assertions (solo mode):
- Both skip notes appear with "solo mode" label
- Behavior is otherwise identical to lean mode for this skill
Protocol Compliance
- Reads game-concept.md and game-pillars.md before any decomposition
- "May I write
design/systems-index.md?" asked before writing - systems-index.md is NOT written without user approval
- CD-SYSTEMS and TD-SYSTEM-BOUNDARY spawn in parallel in full mode
- Skipped gates noted by name and mode in lean/solo output
- Ends with next-step handoff:
/design-system [next-system]
Coverage Notes
- Circular dependency detection (System A depends on System B which depends on A) is part of the dependency mapping phase — not independently fixture-tested here.
- Priority tier assignment (MVP heuristics) is evaluated as part of the Case 1 collaborative workflow rather than independently.
- The
nextargument mode (handing off the highest-priority undesigned system to/design-system) is not tested here — it is a post-index-creation convenience.