Files
Claude-Code-Game-Studios/CCGS Skill Testing Framework/skills/team/team-level.md
T
DonchitosandClaude Opus 5.5 b21fa0f7f2 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
2026-09-29 21:32:19 +10:00

16 KiB
Raw Blame History

Skill Test Spec: /team-level

Skill Summary

Orchestrates the full level design team for a single level or area. Coordinates narrative-director, world-builder, level-designer, systems-designer, art-director, accessibility-specialist, and qa-tester through five steps: narrative + visual direction in parallel (Step 1), layout (Step 2), systems (Step 3), production concepts + accessibility in parallel (Step 4), and QA planning (Step 5). Phase 0 resolves review_mode, automation and team.size and the skill announces the active set before Step 1 — individual spawns level-designer alone, small adds systems-designer + art-director + qa-tester, studio adds narrative-director, world-builder and accessibility-specialist. The orchestrator compiles all team outputs itself and writes design/levels/[level-name].md only after asking "May I write…?" via AskUserQuestion; per-agent artifacts are written by sub-agents under the bounded write exception. Uses AskUserQuestion at each step gate. Produces a summary report with verdict COMPLETE / BLOCKED and handoffs to /design-review, /dev-story, /qa-plan.


Static Assertions (Structural)

  • Has required frontmatter fields: name, description, argument-hint, user-invocable, allowed-tools
  • Has ≥2 phase/step headings (Step 1 through Step 5 are all present)
  • Contains verdict keywords: COMPLETE, BLOCKED
  • File Write Protocol: per-agent artifacts are written by sub-agents under the bounded exception (named path, new artifact under production/, docs/ or tests/, gated step); the one exception is the compiled level doc, which the orchestrator writes itself after its own "May I write …?" prompt
  • Names a destination per agent under production/levels/[level-name]/ — narrative.md, lore.md, visual-direction.md, layout.md, systems.md, production-concepts.md, accessibility.md — and qa-tester's at production/qa/test-cases/[level-name]-cases.md
  • Defines a phase gate as a decision point the pipeline itself lists, whatever the automation mode, and claims no director spawn at phase gates
  • Has a next-step handoff at the end (references /design-review, /dev-story, /qa-plan)
  • Error Recovery Protocol section is present: verify a named artifact is on disk before treating a step as done, surface BLOCKED immediately, always produce a partial report, full procedure (surface → assess → options → partial report) in .claude/docs/error-recovery-protocol.md
  • Uses AskUserQuestion at step transitions for user approval before proceeding (collaborative mode)
  • Phase 0 resolves team.size, and the skill requires a one-line active-set announcement before Step 1
  • Step 1 explicitly spawns narrative-director, world-builder and art-director in parallel
  • Step 4 is explicitly marked as parallel (art-director and accessibility-specialist run simultaneously) and waits for both
  • Context gathering reads: design/gdd/game-concept.md (or design/game-brief.md), design/gdd/game-pillars.md, design/levels/, design/narrative/, and relevant world-building docs
  • ## How to Delegate lists all seven roles (narrative-director, world-builder, level-designer, systems-designer, art-director, accessibility-specialist, qa-tester)
  • accessibility-specialist output includes severity ratings (BLOCKING / RECOMMENDED / NICE TO HAVE)
  • Final level design document saved to design/levels/[level-name].md, where [level-name] is the argument slugged — lowercase, spaces → hyphens — and adjacent-area paths use the same rule

Test Cases

Case 1: Happy Path — All team members produce outputs, document compiled and saved

Fixture:

  • Resolved config block: team.size: studio, automation: collaborative
  • design/gdd/game-concept.md exists and is populated
  • design/gdd/game-pillars.md exists
  • design/levels/ directory exists (may contain other level docs)
  • design/narrative/ directory exists with relevant narrative docs
  • World-building docs for the forest region exist

Input: /team-level forest dungeon

Expected behavior:

  1. Before any spawn, one line announces the active set for team.size: studio
  2. Context gathering — orchestrator reads game-concept.md, game-pillars.md, existing level docs in design/levels/, narrative docs in design/narrative/, and world-building docs for the forest region
  3. Step 1 — narrative-director, world-builder and art-director are spawned together (all three Agent calls issued before any result is awaited): narrative purpose and emotional arc; lore context and world rules; visual theme targets, lighting mood, shape language and landmarks; AskUserQuestion presents all three outputs before Step 2
  4. Step 2 — level-designer spawned with the Step 1 outputs, including the art-director's visual targets as explicit constraints; designs spatial layout, pacing curve, encounters, puzzles, entry/exit points; orchestrator checks design/levels/ for every adjacent area referenced; AskUserQuestion confirms layout before Step 3
  5. Step 3 — systems-designer spawned: enemy compositions, loot tables, difficulty balance, area-specific mechanics, resource distribution; AskUserQuestion confirms systems before Step 4
  6. Step 4 — art-director (location-specific production concepts) and accessibility-specialist spawned in parallel; each accessibility concern rated BLOCKING / RECOMMENDED / NICE TO HAVE; orchestrator waits for both; AskUserQuestion presents both outputs before Step 5
  7. Step 5 — qa-tester spawned: test cases for critical path, boundary/edge cases (sequence breaks, softlocks), playtest checklist, acceptance criteria
  8. Orchestrator compiles all team outputs into the level design template itself — it does not re-spawn level-designer to do it — then asks via AskUserQuestion: "May I write the compiled level design to design/levels/forest-dungeon.md?" and writes on approval
  9. Summary report: area overview, encounter count, estimated asset list, narrative beats, cross-team dependencies, open cross-level dependencies, accessibility concerns with resolution status; verdict: COMPLETE
  10. Next steps listed: /design-review design/levels/forest-dungeon.md, /dev-story, /qa-plan

Assertions:

  • Active-set line naming team.size: studio appears before the first agent is spawned
  • All five sources read during context gathering before any agent is spawned
  • narrative-director, world-builder and art-director Agent calls are issued in parallel in Step 1, and all three complete before Step 2
  • The level-designer brief carries the art-director's Step 1 visual targets as constraints
  • AskUserQuestion called at each step gate (minimum: after Step 1, Step 2, Step 3, Step 4)
  • Step 4 agents (art-director, accessibility-specialist) launched simultaneously
  • The compiled level doc is written by the orchestrator, not a re-spawned agent, and only after its own "May I write" approval
  • Level doc saved to design/levels/forest-dungeon.md (slugified from argument)
  • Verdict COMPLETE in final summary report
  • Next steps include /design-review, /dev-story, /qa-plan
  • Summary report includes: area overview, encounter count, estimated asset list, narrative beats

Case 2: Blocked Agent (world-builder) — Partial report produced with gap noted

Fixture:

  • Resolved config block: team.size: studio, automation: collaborative
  • design/gdd/game-concept.md exists
  • World-building docs for the forest region do NOT exist
  • world-builder agent returns BLOCKED: "No world-building docs found for the forest region — cannot provide lore context"

Input: /team-level forest dungeon

Expected behavior:

  1. Context gathering completes
  2. Step 1 — narrative-director and art-director complete successfully; world-builder returns BLOCKED
  3. Error Recovery Protocol triggered: "world-builder: BLOCKED — no world-building docs for forest region"
  4. AskUserQuestion presented with options:
    • (a) Skip world-builder and note the gap in the final report
    • (b) Retry with narrower scope (world-builder focuses only on what can be inferred from game-concept.md)
    • (c) Stop here and create world-building docs first
  5. If user chooses (a): pipeline continues with Steps 2–5 without a lore foundation; the missing world-building context is listed as a gap in the final report
  6. If the world-builder remains unresolved, the final report marks the world-builder section BLOCKED and the overall verdict is BLOCKED

Assertions:

  • BLOCKED surface message appears immediately when world-builder fails — before Step 2 begins without user input
  • AskUserQuestion offers at minimum three options (skip / retry / stop)
  • Partial report produced — narrative-director's and art-director's completed work is not discarded
  • The missing world-building context is named as a gap in the final report
  • Overall verdict is BLOCKED (not COMPLETE) when world-builder remains unresolved
  • Nothing is written in world-builder's place — the protocol's option is "skip this agent and note the gap" (.claude/docs/error-recovery-protocol.md), not substitute lore

Case 3: No Argument — Usage guidance shown

Fixture:

  • Any project state

Input: /team-level (no argument)

Expected behavior:

  1. Skill detects no argument provided
  2. Outputs usage message explaining the required argument (level name or area to design)
  3. Shows the invocation format /team-level [level name or area to design] [--review full|lean|solo] with examples (forest temple, tutorial village, final boss arena)
  4. Skill exits without reading any project files or spawning any subagents

Assertions:

  • Skill does NOT spawn any subagents when no argument is given
  • Usage message shows the full argument-hint: /team-level [level name or area to design] [--review full|lean|solo]
  • At least one example of a valid invocation is shown
  • No GDD or level files read before failing
  • Verdict is NOT shown (pipeline never starts)

Case 4: Accessibility Review Gate — Blocking concern surfaces before sign-off

Fixture:

  • Resolved config block: team.size: studio, automation: collaborative
  • Steps 1–3 complete successfully
  • design/accessibility-requirements.md committed tier: Standard
  • accessibility-specialist (Step 4, parallel) flags a BLOCKING concern: the critical path through the forest dungeon requires players to distinguish between two environmental hazards (toxic pools vs. shallow water) using color alone — no shape, icon, or audio cue differentiates them

Input: /team-level forest dungeon

Expected behavior:

  1. Steps 1–3 complete; Step 4 parallel phase begins
  2. accessibility-specialist returns: BLOCKING concern — "Critical path hazard distinction relies on color only (toxic pools vs. shallow water). Shape, icon, or audio cue required per Standard accessibility tier."
  3. art-director returns Step 4 output (complete)
  4. Skill presents both Step 4 results via AskUserQuestion — BLOCKING concern highlighted prominently
  5. AskUserQuestion offers:
    • (a) Return to level-designer + art-director to redesign the flagged elements before Step 5
    • (b) Document as a known accessibility gap and proceed to Step 5 with the concern explicitly logged in the final report
  6. Skill does NOT proceed to Step 5 until the user acknowledges the BLOCKING concern
  7. Final summary lists the accessibility concern and its resolution status regardless of user choice

Assertions:

  • BLOCKING accessibility concern is not treated as advisory — it is surfaced as a blocker
  • AskUserQuestion presents the specific concern text (not just "accessibility issue found")
  • Step 5 (qa-tester) does NOT begin without user acknowledging the BLOCKING concern
  • Revision path offered: level-designer + art-director can be sent back before proceeding
  • Final report includes the accessibility concern and its resolution status
  • art-director's completed output is NOT discarded when accessibility-specialist blocks

Case 5: Circular Level Reference — Adjacent area dependency flagged

Fixture:

  • Resolved config block: automation: collaborative (any team.size — level-designer is active at every size)
  • Steps 1–3 in progress
  • level-designer (Step 2) produces a layout that specifies entry/exit points connecting to "the crystal caves" (an adjacent area)
  • design/levels/crystal-caves.md does NOT exist — the crystal caves area has not been designed yet

Input: /team-level forest dungeon

Expected behavior:

  1. Step 2 — level-designer produces layout including: "West exit connects to crystal-caves entry point A"
  2. Orchestrator checks design/levels/ for crystal-caves.md; file not found
  3. Dependency gap surfaced: "Level references crystal-caves as an adjacent area but design/levels/crystal-caves.md does not exist"
  4. AskUserQuestion presented with options:
    • (a) Proceed with a placeholder reference — note the dependency in the level doc as UNRESOLVED
    • (b) Pause and run /team-level crystal caves first to establish that area
  5. Skill does NOT invent crystal caves content to satisfy the reference
  6. If user chooses (a): level doc compiled with the west exit marked UNRESOLVED; flagged in the open cross-level dependencies section of the summary report
  7. Final report includes open cross-level dependencies section

Assertions:

  • Skill detects the missing adjacent area by checking design/levels/ — does not assume it will be created later
  • Skill does NOT fabricate crystal caves content (lore, layout, connections) to resolve the reference
  • AskUserQuestion offers a "design crystal caves first" option referencing /team-level
  • If user proceeds with placeholder, level doc explicitly marks the west exit as UNRESOLVED
  • Summary report includes an open cross-level dependencies section listing unresolved references
  • Circular or forward references do not cause the skill to loop or crash

Protocol Compliance

  • At the default team.size: individual, the run opens with an Active set (team.size: individual): level-designer line and a Not spawned this run: line naming every other agent the pipeline names — before any agent is spawned
  • In collaborative mode, AskUserQuestion used at each step transition — user approves before pipeline advances
  • Per-agent artifacts are written by sub-agents to paths the orchestrator named; only the compiled level doc is written by the orchestrator, after its own AskUserQuestion approval
  • A step whose named artifact is missing on disk is treated as failed, not done
  • Error Recovery Protocol followed: surface → assess → offer options → partial report
  • Step 1 (narrative-director, world-builder, art-director) and Step 4 (art-director, accessibility-specialist) launched in parallel per skill spec
  • Partial report always produced even when agents are BLOCKED
  • Accessibility BLOCKING concerns surface before Step 5 and require explicit user acknowledgment
  • Verdict is one of COMPLETE / BLOCKED
  • Next steps present at end: /design-review, /dev-story, /qa-plan

Coverage Notes

  • The "Retry with narrower scope" option in the blocked world-builder case (Case 2) — the retry behavior itself is not tested in depth; its full path is analogous to the blocked agent pattern covered in Case 2 and in other team-* specs.
  • systems-designer (Step 3) block scenarios are not separately tested; the same Error Recovery Protocol applies and the pattern is validated by Case 2.
  • Step 4 parallel ordering (art-director completing before or after accessibility-specialist) does not affect outcomes — both must return before Step 5 regardless of order.
  • The level doc slug rule (lowercase, spaces → hyphens) is exercised by Case 1 (forest dungeon → forest-dungeon.md) and Case 5 (crystal caves → crystal-caves.md); special characters and very long names are not covered.
  • The small active set (systems-designer + art-director added) is not given its own case.