adopt
Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance…
Implements one story in code with tests, following its ADRs. Use when the user says to build, implement or start working on a story. Not for checking readiness beforehand or closing the story after.
Claude Code
$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill dev-story --agent claude-code
Codex
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a codex -y
Cursor
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a cursor -y
Gemini CLI
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a gemini-cli -y
GitHub Copilot
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a github-copilot -y
OpenCode
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a opencode -y
Windsurf
$ npx skills add Donchitos/Claude-Code-Game-Studios --skill dev-story -a windsurf -y
name: dev-story description: "Implements one story in code with tests, following its ADRs. Use when the user says to build, implement or start working on a story. Not for checking readiness beforehand or closing the story after." argument-hint: "[story-path]" user-invocable: true disable-model-invocation: true allowed-tools: Read, Glob, Grep, Write, Edit, Agent, AskUserQuestion, Bash(bash "*/.claude/skills/dev-story/../../hooks/yaml-helper.sh" resolve_config *), Bash(bash .claude/scripts/story-facts.sh *), Bash(bash .claude/scripts/adr-status.sh *), Bash(bash .claude/scripts/md-section.sh *), Bash(bash .claude/scripts/session-state.sh *), Bash(bash .claude/scripts/review-receipts.sh hash *), Bash(godot *), Bash(mkdir -p production/qa/evidence/*), Bash(npm run smoke), Bash(npm run build:single), Bash(bash .claude/scripts/page-shot.sh *), Bash(bash .claude/scripts/one-shot-grow.sh replay *), Bash(bash .claude/scripts/one-shot-grow.sh accept *) model: sonnet
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,qa.level,gate_level,engine_values,specialists,perf_budgets,system_overrides`
Resolved above — use as-is. No block → defaults in `.claude/docs/config-resolution.md`.
Ask with the question tool. Without one, list the options numbered and end your turn to wait. A skipped or dismissed question is not an answer: ask again in plain text.
Implements one story: checks it can start, marks it In Progress, hands the code to the right programmer agent with a brief built from the story, then checks the result parses and looks right, and hands off.
**Writes** (each after an ask that names it): the story's `Status`, `Last Updated` and `## Files`, and its `production/sprint-status.yaml` entry. The programmer agents write the code and tests under the code root and test root (`.claude/docs/code-root-resolution.md`). The session checkpoint and the evidence stamp are written without an ask. **Next:** `/story-done [story-path]`; at `standard` and `full`, `/code-review [files]` first. `/dev-story` and `/story-done` start only when the person types them, so never offer to start one as an option: print it as a line to type.
Asks follow `.claude/docs/automation-modes.md` (collaborative always asks, guided asks on major choices, autonomous logs and goes on; `automation_always_ask` categories always ask).
Checklist (copy it and tick as you go):
- [ ] Phase 1: story found, tier resolved - [ ] Phase 2: prerequisites checked (ADR, manifest, dependencies) - [ ] Phase 3: story marked In Progress (one ask) - [ ] Phase 4: programmer and engine specialist chosen - [ ] Phase 5: work handed out with a full brief - [ ] Phase 6: finished? parse check, run and look, one Run result line; a grown game's same-seed run - [ ] Phase 7: summary, ## Files, checkpoint, closing block
The text typed after the skill name is the story path. With nothing typed, take the story the checkpoint in `production/session-state/active.md` names and confirm it: "Continuing work on [title] — is that correct?" None there: ask "Which story are we implementing?" with the `TODO` rows of `bash .claude/scripts/story-facts.sh --all` as options. No story file under `production/epics/` at all: stop with "No stories found in `production/epics/` — run `/create-stories [epic-slug]` to make them (at `standard` and `full`, run `/create-epics` first if there is no epic yet)."
`bash .claude/scripts/story-facts.sh <story-path>` gives its type, layer, TR-IDs, ADRs and dependencies. Then read the story in full.
**Tier.** `workflow` for the story's system, keyed on the GDD filename stem of its `GDD:` path (`design/gdd/<stem>.md` → `<stem>`; the `[system]` of its TR-ID only when there is no GDD path): that system's `system_overrides` row if there is one, else the project value. Say it in your first reply: `Tier: workflow [value]`. That value, never `rigor` or `qa.level`, picks the Phase 2 column and the closing Next step.
| Input | `full` | `standard` | `minimal` | |---|---|---|---| | TR registry `docs/architecture/tr-registry.yaml` | missing: **stop**, "Run `/architecture-review` to bootstrap it" | optional | not expected | | The ADR the story names | missing, `Proposed`, `Deprecated` or `Superseded`: **stop** | the same, only when the story names one | the same, only when the story names one | | Control manifest `docs/architecture/control-manifest.md` | missing: warn, go on | missing: warn, go on | not expected |
A story whose ADR field reads `N/A — [reason]` names none.
**The ADR.** `bash .claude/scripts/adr-status.sh <ADR id>` gives its status and `version`. Stop messages: `Proposed` — "ADR-NNNN is still Proposed. Accept it with `/architecture-decision accept ADR-NNNN` before implementing." `Deprecated` or `Superseded` — "ADR-NNNN is [status]; point the story at [successor] (edit its ADR field; `/create-stories` never rewrites an existing story) before implementing." `NOT_FOUND` — "ADR file not found. Run `/architecture-decision`, or correct the story's ADR field."
**Do not open the ADR.** The story's ADR Decision Summary and Implementation Notes are what the programmer reads instead. Compare the ADR's `version` with the story's `ADR Version`:
`unversioned`: trust the story. Note the last two in the summary ("summary trusted unverified").
`references/version-mismatch.md`. On a match, do not load it.
Never treat an absent stamp as a stale one: unknown falls back to the story, and `/story-readiness` and `/code-review` are the checks that catch drift later.
**The manifest.** When it exists, compare its `Manifest Version` line with the story's. They differ: read `references/version-mismatch.md`.
**Dependencies.** For each path on the story's Depends on line, `bash .c
Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.
Brownfield audit — do existing artifacts actually work? Numbered migration plan. Unlike /project-stage-detect, checks compliance…
Create an ADR documenting a technical decision: context, alternatives considered, consequences.
Traceability matrix mapping GDD requirements to ADRs. Finds gaps, cross-ADR conflicts, engine compatibility. PASS/CONCERNS/NOT…
Author the Art Bible — visual identity gating asset production. Run before /map-systems.
Audit assets against naming conventions, file size budgets, format standards. Finds orphaned assets, missing references.
Per-asset visual specs plus AI generation prompts from GDDs and character profiles. After the art bible.
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration