Skip to content
Agent Orchestration
Skill

/dev-story

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.

From plugin
claude-code-game-studios
31k74 skills49 agents

Claude Code

$ npx -y skills add Donchitos/Claude-Code-Game-Studios --skill dev-story --agent claude-code

SKILL.md

dev-story.SKILL.md
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.

Dev Story

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

Phase 1: The story

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.

Phase 2: Can it start?

| 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`:

  • equal, or the story has no `ADR Version` (written before the stamp), or both are

`unversioned`: trust the story. Note the last two in the summary ("summary trusted unverified").

  • they differ, or the ADR is `unversioned` but the story names a date: read

`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

Read more
@donchitos
Ships withclaude-code-game-studios

Turn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.

31k74 skills49 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
31.3k
Star history of Donchitos/Claude-Code-Game-Studios on GitHub, a chart by star-history.com

Other skills on claude-code-game-studios.

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis13d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca13d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip13d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about dev-story.

Which coding agents can use dev-story?
dev-story installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.