Claude-Code-Game-Studios/docs/examples/session-design-system-skill.md
Donchitos b1fad395cd Examples: add 5 session transcripts + skill flow diagrams covering v0.4.0 skills
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>
2026-03-12 21:05:26 +11:00

11 KiB
Raw Blame History

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.md exists (survival-crafting game, 2D, Godot 4.6)
  • design/gdd/systems-index.md exists (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 Criteria

I'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.md with 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_speed float Base walk speed in px/s (tunable)
run_multiplier float Run speed = walk × this
terrain_speed_mod float Per-terrain multiplier (0.71.1)
stamina_drain_walk float Stamina units/sec while walking
stamina_drain_run float Stamina units/sec while running
stamina_cost_roll float Flat stamina cost per roll
terrain_drain_mod float Per-terrain stamina drain multiplier

Effective Speed:

effective_speed = base_walk_speed × run_multiplier (if running, else 1.0) × terrain_speed_mod

Stamina Drain (per second):

drain_per_sec = stamina_drain_walk (or stamina_drain_run if running) × terrain_drain_mod

Roll 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 79: 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_speed on normal ground (measured with debug overlay)
  • Player runs at base_walk_speed × run_multiplier on 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_event signals 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.md before 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