Closes the gap where /design-system, story lifecycle, gate-check transitions, UX pipeline, and brownfield adoption had no worked examples. Adds visual ASCII flow diagrams for the full 7-phase pipeline and 4 detailed skill chains. New files: - docs/examples/session-design-system-skill.md - docs/examples/session-story-lifecycle.md - docs/examples/session-gate-check-phase-transition.md - docs/examples/session-ux-pipeline.md - docs/examples/session-adopt-brownfield.md - docs/examples/skill-flow-diagrams.md Updated: - docs/examples/README.md — reorganized with Core Workflow / Foundational sections - .claude/docs/quick-start.md — synced - docs/WORKFLOW-GUIDE.md — synced Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
11 KiB
Example Session: Using /design-system to Author a GDD
Context: Solo indie dev, week 3 of project. /map-systems already ran and produced design/gdd/systems-index.md. The movement system is listed as MVP tier, Foundation priority.
Starting State:
design/gdd/game-concept.mdexists (survival-crafting game, 2D, Godot 4.6)design/gdd/systems-index.mdexists (15 systems identified, movement is first in design order)- No per-system GDDs written yet
- No upstream dependencies for movement (it is the foundation)
Session Duration: ~60 minutes
Turns: 14
Outcome: Complete design/gdd/movement-system.md with all 8 required sections written to file, ready for /design-review
Turn 1: User Invokes the Skill
User:
/design-system movement
Turn 2: Agent Loads Context and Presents the Plan
Agent (game-designer, via /design-system):
I'm loading context before we start:
- Read
design/gdd/game-concept.md— survival-crafting, exploration-heavy, lone survivor stranded on alien planet- Read
design/gdd/systems-index.md— movement is Foundation / MVP, no upstream deps, downstream: combat, exploration, stamina- No prior GDD found for movement — starting fresh
Technical Feasibility Pre-Check:
Domain Signal Engine Godot 4.6 — CharacterBody2D with move_and_slide() is well-supported Physics Jolt is now the default in 4.6 — 2D movement unaffected, but note for future 3D work Downstream risk Stamina system listed as downstream dep — movement must expose a stamina callback hook The GDD template has 8 required sections. We'll go one at a time:
Overview → Player Fantasy → Detailed Rules → Formulas → Edge Cases → Dependencies → Tuning Knobs → Acceptance CriteriaI'll show you a draft of each section, you approve or revise, then I write it to the file before we move on.
Creating the file skeleton now with empty section headers — may I write
design/gdd/movement-system.mdwith placeholders?
User:
Yes
Agent writes design/gdd/movement-system.md with 8 empty section headers.
Turn 3: Section 1 — Overview
Agent:
Section 1 draft — Overview:
The movement system is the player's primary interface with the world. It governs how the lone survivor walks, runs, rolls, and traverses alien terrain. Movement is physically grounded — the planet has heavier-than-Earth gravity, and the survivor is physically exhausted — but remains responsive enough to stay out of the player's way. The system feeds directly into exploration pacing, combat positioning, and the stamina system.
Does this capture what you want?
User:
Good but add something about the terrain — surfaces slow you down or have friction modifiers.
Agent:
Revised:
The movement system is the player's primary interface with the world. It governs how the lone survivor walks, runs, rolls, and traverses alien terrain. Movement is physically grounded — the planet has heavier-than-Earth gravity, and the survivor is physically exhausted — but remains responsive enough to stay out of the player's way. Terrain surfaces apply friction and speed modifiers (slick rock, sand, shallow water) that make navigation a meaningful skill. The system feeds directly into exploration pacing, combat positioning, and the stamina system.
May I write this to Section 1 in the file?
User:
Yes
Agent writes Section 1 to file.
Turn 4: Section 2 — Player Fantasy
Agent:
Section 2 draft — Player Fantasy:
The player should feel like a tired but capable survivor — not a superhero, not helpless. Early game movement is deliberate and taxing; the player earns fluency over time. When traversing alien terrain, the goal is careful navigation with moments of urgency (running from threats, leaping a gap). The fantasy is "I know this terrain" — every surface type becomes readable and manageable as the player internalizes the friction system.
Approve, revise, or change direction?
User:
Love it. Write it.
Agent writes Section 2 to file.
Turn 5: Section 3 — Detailed Rules
Agent:
Section 3 draft — Detailed Rules:
Base States:
- Walk (default): Full directional control, moderate speed, low stamina drain
- Run (hold Shift): Faster, medium stamina drain per second — cancels automatically when stamina hits 0
- Roll/Dodge (tap Space): Quick burst in movement direction, brief invincibility frames, high stamina cost (flat)
- Idle: Zero movement input, stamina regenerates at full rate
Terrain Modifiers:
- Normal ground: 1.0x speed multiplier, standard friction
- Sand/loose soil: 0.8x speed, 1.1x stamina drain (harder to move)
- Slick rock (wet): 1.1x speed, reduced stop friction (player overshoots)
- Shallow water (ankle-deep): 0.7x speed, no friction modifier
- Deep water: movement disabled, replaced by swimming (separate system, out of scope)
Collision:
- CharacterBody2D + move_and_slide(); wall slide enabled
- Slopes up to 45° walked normally; >45° blocked
- One-way platforms supported (drop-through with Down + Jump)
A lot here — want me to trim or expand anything?
User:
Add that running is disabled when carrying a heavy object (like a large resource chunk).
Agent:
Added to Run rule:
- Run (hold Shift): Faster, medium stamina drain per second — cancels automatically when stamina hits 0. Disabled when carrying heavy objects (signals broadcast by inventory system).
Write to file?
User:
Yes
Agent writes Section 3 to file.
Turn 6: Section 4 — Formulas
Agent:
Section 4 draft — Formulas:
Let me define variables first, then the formulas:
Variable Type Description base_walk_speedfloat Base walk speed in px/s (tunable) run_multiplierfloat Run speed = walk × this terrain_speed_modfloat Per-terrain multiplier (0.7–1.1) stamina_drain_walkfloat Stamina units/sec while walking stamina_drain_runfloat Stamina units/sec while running stamina_cost_rollfloat Flat stamina cost per roll terrain_drain_modfloat Per-terrain stamina drain multiplier Effective Speed:
effective_speed = base_walk_speed × run_multiplier (if running, else 1.0) × terrain_speed_modStamina Drain (per second):
drain_per_sec = stamina_drain_walk (or stamina_drain_run if running) × terrain_drain_modRoll Stamina Cost (flat):
stamina_after_roll = current_stamina - stamina_cost_roll (clamped to 0 — roll still executes, but player lands with 0 stamina)Approve or adjust variable names/formulas?
User:
Looks right. Write it.
Agent writes Section 4 to file.
Turn 7–9: Sections 5, 6, 7
(These follow the same pattern — agent drafts, user approves or requests minor tweaks, agent writes each section to file before moving on. Abbreviated here.)
Section 5 — Edge Cases covered:
- Player rolls into a wall (animation completes, no movement bonus)
- Stamina hits 0 mid-run (transitions to walk, no lurch)
- Two terrain types overlapping (lower multiplier wins)
- Roll on slick rock (still applies slick friction to stopping, not to the roll itself)
Section 6 — Dependencies covered:
- Stamina system (downstream): movement exposes
on_stamina_event(type: String, amount: float)signal - Inventory system (downstream): listens to
carrying_heavy_object_changed(is_heavy: bool)signal - Input system: movement direction from
InputMap— standard Godot action names (ui_left,ui_right, etc.) - Terrain layer: tile metadata drives terrain modifier lookup
Section 7 — Tuning Knobs covered:
base_walk_speed(default: 120 px/s)run_multiplier(default: 1.7)- Per-terrain speed and drain modifiers (table of 4 terrain types)
stamina_drain_walk,stamina_drain_run,stamina_cost_roll
Turn 10: Section 8 — Acceptance Criteria
Agent:
Section 8 draft — Acceptance Criteria:
These are the testable conditions that prove this system is complete:
- Player walks at
base_walk_speedon normal ground (measured with debug overlay)- Player runs at
base_walk_speed × run_multiplieron normal ground- Run automatically cancels when stamina reaches 0, no input required
- Roll executes with correct invincibility frames (verify via hitbox debug mode)
- Each terrain type applies the correct speed modifier (QA table in sprint plan)
- Carrying heavy object disables run (test with inventory integration)
- Stamina system receives
on_stamina_eventsignals during walk, run, and roll- All movement values come from exported variables — no hardcoded numbers in code
Does this cover what "done" means to you?
User:
Add one for slopes — make sure >45 degree slopes block movement.
Agent:
Added:
- Slopes ≤45° traversed normally; slopes >45° block movement (player slides back)
Write to file?
User:
Yes. Write it.
Agent writes Section 8 to file.
Turn 11: Completion Summary
Agent:
All 8 sections written to
design/gdd/movement-system.md.GDD Status:
- ✅ Overview
- ✅ Player Fantasy
- ✅ Detailed Rules
- ✅ Formulas
- ✅ Edge Cases
- ✅ Dependencies (exposes 2 signals: stamina_event, carrying_heavy)
- ✅ Tuning Knobs
- ✅ Acceptance Criteria
Key decisions made:
- Terrain modifiers as tile metadata (not code constants)
- Rolling has a flat stamina cost (not per-second)
- Heavy carry disables run (signal-driven, not hardcoded check)
Recommended next step: Run
/design-review design/gdd/movement-system.mdbefore moving to the next system in your queue (stamina is next in dependency order, per systems-index).The review will validate completeness, internal consistency, and catch anything that needs revision before you build on this GDD.
What This Example Demonstrates
- Incremental file writing: each section written to disk immediately after approval — a session crash loses at most one in-progress section
- Template population: the GDD template's 8 sections become concrete content through dialogue, not bulk generation
- Dependency signaling: agent proactively surfaces downstream signal contracts (stamina, inventory) during the Dependencies section
- Technical feasibility pre-check: agent notes Jolt physics change before design starts, not after implementation breaks
- Section-by-section cycle: no full draft dumped at once — each section is a small, reviewable unit
- Recovery: if the session crashes, the agent re-reads the file on restart and resumes from the first empty section