dev-story
Skill8 starsChanged 7 months agoMITView on GitHub
Read a story file and implement it. Loads the full context (story, GDD requirement, ADR guidelines, control manifest), routes to the right programmer agent for the system and engine, implements the code and test, and confirms each acceptance criterion. The core implementation skill — run after /story-readiness, before /code-review and /story-done.
We split this skill into the rules it gives an agent
37 rules. 2 are common, 15 are distinctive, and 20 are very specific to this project.
2
Common
Most of the 11 edited versions we read keep these.
15
Distinctive
This author's own choices. Worth a look.
20
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
After all sprint stories are done: run /team-qa sprint to execute the full QA cycle and get a sign-off verdict before advancing the project …
- Common: line 32
If a path is provided: read that file directly.
- Very specific: line 34
If no argument: check production/session-state/active.md for the active story.
- Very specific: line 36
If not found, ask: "Which story are we implementing?" Glob production/epics//*.md and list stories with Status: Ready.
- Distinctive: line 51
If the TR registry or governing ADR is missing, set the story status to BLOCKED in the session state and do not spawn any programmer agent.
- Distinctive: line 53
Read all of the following simultaneously — these are independent reads.
- Very specific: line 68
Read docs/architecture/tr-registry.yaml.
- Very specific: line 69
Read the current requirement text — this is the source of truth for what the GDD requires now.
- Very specific: line 80
Read docs/architecture/control-manifest.md.
- Very specific: line 85
Check: does the story's embedded Manifest Version match the current manifest header date?
- Very specific: line 86
If they differ, use AskUserQuestion before proceeding:
- Very specific: line 93
If [A]: edit the story file's Manifest Version: field to the current manifest date before spawning the programmer.
- Very specific: line 94
If [B]: read the manifest carefully for new rules anyway, and note the version mismatch in the Phase 6 summary under "Deviations".
- Very specific: line 95
If [C]: stop. Do not spawn any agent.
- Distinctive: line 99
After extracting the Dependencies list from the story file, validate each:
- Very specific: line 102
Read its Status: field.
- Very specific: line 103
If any dependency has Status other than Complete or Done:
- Distinctive: line 110
If [B]: set story status to BLOCKED in session state and stop.
- Distinctive: line 111
If [C]: ask "May I update [dependency path] Status to Complete?" before continuing.
- Distinctive: line 112
If [A]: note in Phase 6 summary under "Deviations": "Implemented with incomplete dependency: [dependency title] — [status]."
- Distinctive: line 114
If a dependency file cannot be found: warn "Dependency story not found: [path].
- Very specific: line 133
If the story's Type is Config/Data, no programmer agent or engine specialist is needed.
- Very specific: line 149
Read the Engine Specialists section of .claude/docs/technical-preferences.md to get the configured primary specialist.
- Very specific: line 181
Create or modify files in src/ following the ADR guidelines
- Distinctive: line 184
Write clean, doc-commented public APIs
- Distinctive: line 212
Test requirements (from coding-standards.md):
- Distinctive: line 216
No random seeds, no time-dependent assertions, no external I/O
- Distinctive: line 217
Test the formula bounds from the GDD Formulas section
- Distinctive: line 229
After the programmer agent(s) complete, collect:
- Distinctive: line 232
Test file created (path and number of test functions written)
- Very specific: line 273
Create active.md if it does not exist.
- Common: line 279
If any spawned agent (via Task) returns BLOCKED, errors, or cannot complete:
- Distinctive: line 282
Assess dependencies: Check whether the blocked agent's output is required by subsequent phases.
- Distinctive: line 286
Stop here and resolve the blocker first
- Very specific: line 321
Run /code-review [file1] [file2] to review the implementation before closing the story
- Very specific: line 322
Run /story-done [story-path] to verify acceptance criteria and mark the story complete
- Very specific: line 323
After all sprint stories are done: run /team-qa sprint for the full QA cycle before advancing the project stage
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Dev Story
This skill bridges planning and code. It reads a story file in full, assembles all the context a programmer needs, routes to the correct specialist agent, and drives implementation to completion — including writing the test.
The loop for every story:
/qa-plan sprint ← define test requirements before sprint begins
/story-readiness [path] ← validate before starting
/dev-story [path] ← implement it (this skill)
/code-review [files] ← review it
/story-done [path] ← verify and close itAfter all sprint stories are done: run /team-qa sprint to execute the full QA cycle and get a sign-off verdict before advancing the project stage.
Output: Source code + test file in the project's src/ and tests/ directories.
Phase 1: Find the Story
If a path is provided: read that file directly.
If no argument: check production/session-state/active.md for the active
story. If found, confirm: "Continuing work on [story title] — is that correct?"
If not found, ask: "Which story are we implementing?" Glob
production/epics/**/*.md and list stories with Status: Ready.
Phase 2: Load Full Context
Before loading any context, verify required files exist. Extract the ADR path from the story's ADR Governing Implementation field, then check:
| File | Path | If missing |
| TR registry | docs/architecture/tr-registry.yaml | STOP — "TR registry not found. Run /create-epics to generate it." |
| Governing ADR | path from story's ADR field | STOP — "ADR file [path] not found. Run /architecture-decision to create it, or correct the filename in the story's ADR field." |
| Control manifest | docs/architecture/control-manifest.md | WARN and continue — "Control manifest not found — layer rules cannot be checked. Run /create-control-manifest." |
If the TR registry or governing ADR is missing, set the story status to BLOCKED in the session state and do not spawn any programmer agent.
Read all of the following simultaneously — these are independent reads. Do not start implementation until all context is loaded:
The story file
Extract and hold:
- Story title, ID, layer, type (Logic / Integration / Visual/Feel / UI / Config/Data)
- TR-ID — the GDD requirement identifier
- Governing ADR reference
- Manifest Version embedded in story header
- Acceptance Criteria — every checkbox item, verbatim
- Implementation Notes — the ADR guidance section in the story
- Out of Scope boundaries
- Test Evidence — the required test file path
- Dependencies — what must be DONE before this story
The TR registry
Read docs/architecture/tr-registry.yaml. Look up the story's TR-ID.
Read the current requirement text — this is the source of truth for what the
GDD requires now. Do not rely on any inline text in the story file (may be stale).
The governing ADR
Read docs/architecture/[adr-file].md. Extract:
- The full Decision section
- The Implementation Guidelines section (this is what the programmer follows)
- The Engine Compatibility section (post-cutoff APIs, known risks)
- The ADR Dependencies section
The control manifest
Read docs/architecture/control-manifest.md. Extract the rules for this story's layer:
- Required patterns
- Forbidden patterns
- Performance guardrails
Check: does the story's embedded Manifest Version match the current manifest header date?
If they differ, use AskUserQuestion before proceeding:
- Prompt: "Story was written against manifest v[story-date]. Current manifest is v[current-date]. New rules may apply. How do you want to proceed?"
- Options:
[A] Update story manifest version and implement with current rules (Recommended)[B] Implement with old rules — I accept the risk of non-compliance[C] Stop here — I want to review the manifest diff first
If [A]: edit the story file's Manifest Version: field to the current manifest date before spawning the programmer. Then read the manifest carefully for new rules.
If [B]: read the manifest carefully for new rules anyway, and note the version mismatch in the Phase 6 summary under "Deviations".
If [C]: stop. Do not spawn any agent. Let the user review and re-run /dev-story.
Dependency validation
After extracting the Dependencies list from the story file, validate each:
- Glob
production/epics/**/*.mdto find each dependency story file. - Read its
Status:field. - If any dependency has Status other than
CompleteorDone:- Use
AskUserQuestion:- Prompt: "Story '[current story]' depends on '[dependency title]' which is currently [status], not Complete. How do you want to proceed?"
- Options:
[A] Proceed anyway — I accept the dependency risk[B] Stop — I'll complete the dependency first[C] The dependency is done but status wasn't updated — mark it Complete and continue
- If [B]: set story status to BLOCKED in session state and stop. Do not spawn any programmer agent.
- If [C]: ask "May I update [dependency path] Status to Complete?" before continuing.
- If [A]: note in Phase 6 summary under "Deviations": "Implemented with incomplete dependency: [dependency title] — [status]."
- Use
If a dependency file cannot be found: warn "Dependency story not found: [path]. Verify the path or create the story file."
Engine reference
Read .claude/docs/technical-preferences.md:
Engine:value — determines which programmer agents to use- Naming conventions (class names, file names, signal/event names)
- Performance budgets (frame budget, memory ceiling)
- Forbidden patterns
Phase 3: Route to the Right Programmer
Based on the story's Layer, Type, and system name, determine which specialist to spawn via Task.
Config/Data stories — skip agent spawning entirely:
If the story's Type is Config/Data, no programmer agent or engine specialist is needed. Jump directly to Phase 4 (Config/Data note). The implementation is a data file edit — no routing table evaluation, no engine specialist.
Primary agent routing table
| Story context | Primary agent |
| Foundation layer — any type | engine-programmer |
| Any layer — Type: UI | ui-programmer |
| Any layer — Type: Visual/Feel | gameplay-programmer (implements) |
| Core or Feature — gameplay mechanics | gameplay-programmer |
| Core or Feature — AI behaviour, pathfinding | ai-programmer |
| Core or Feature — networking, replication | network-programmer |
| Config/Data — no code | No agent needed (see Phase 4 Config note) |
Engine specialist — always spawn as secondary for code stories
Read the Engine Specialists section of .claude/docs/technical-preferences.md
to get the configured primary specialist. Spawn them alongside the primary agent
when the story involves engine-specific APIs, patterns, or the ADR has HIGH
engine risk.
| Engine | Specialist agents available |
| Godot 4 | godot-specialist, godot-gdscript-specialist, godot-shader-specialist |
| Unity | unity-specialist, unity-ui-specialist, unity-shader-specialist |
| Unreal Engine | unreal-specialist, ue-gas-specialist, ue-blueprint-specialist, ue-umg-specialist, ue-replication-specialist |
When engine risk is HIGH (from the ADR or VERSION.md): always spawn the engine specialist, even for non-engine-facing stories. High risk means the ADR records assumptions about post-cutoff engine APIs that need expert verification.
Phase 4: Implement
Spawn the chosen programmer agent(s) via Task with the full context package:
Provide the agent with:
- The complete story file content
- The current GDD requirement text (from TR registry)
- The ADR Decision + Implementation Guidelines (verbatim — do not summarise)
- The control manifest rules for this layer
- The engine naming conventions and performance budgets
- Any engine-specific notes from the ADR Engine Compatibility section
- The test file path that must be created
- Explicit instruction: implement this story and write the test
The agent should:
- Create or modify files in
src/following the ADR guidelines - Respect all Required and Forbidden patterns from the control manifest
- Stay within the story's Out of Scope boundaries (do not touch unrelated files)
- Write clean, doc-commented public APIs
Config/Data stories (no agent needed)
For Type: Config/Data stories, no programmer agent is required. The implementation is editing a data file. Read the story's acceptance criteria and make the specified changes to the data file directly. Note which values were changed and what they changed from/to.
Visual/Feel stories
Spawn gameplay-programmer to implement the code/animation calls. Note that
Visual/Feel acceptance criteria cannot be auto-verified — the "does it feel right?"
check happens in /story-done via manual confirmation.
Phase 5: Write the Test
For Logic and Integration stories, the test must be written as part of this implementation — not deferred to later.
Remind the programmer agent:
"The test file for this story is required at:
[path from Test Evidence section]. The story cannot be closed via/story-donewithout it. Write the test alongside the implementation, not after."
Test requirements (from coding-standards.md):
- File name:
[system]_[feature]_test.[ext] - Function names:
test_[scenario]_[expected_outcome] - Each acceptance criterion must have at least one test function covering it
- No random seeds, no time-dependent assertions, no external I/O
- Test the formula bounds from the GDD Formulas section
For Visual/Feel and UI stories: no automated test. Remind the agent to
note in the implementation summary what manual evidence will be needed:
"Evidence doc required at production/qa/evidence/[slug]-evidence.md."
For Config/Data stories: no test file. A smoke check will serve as evidence.
Phase 6: Collect and Summarise
After the programmer agent(s) complete, collect:
- Files created or modified (with paths)
- Test file created (path and number of test functions written)
- Any deviations from the story's Out of Scope boundary (flag these)
- Any questions or blockers the agent surfaced
- Any engine-specific risks the specialist flagged
Present a concise implementation summary:
## Implementation Complete: [Story Title]
**Files changed**:
- `src/[path]` — created / modified ([brief description])
- `tests/[path]` — test file ([N] test functions)
**Acceptance criteria covered**:
- [x] [criterion] — implemented in [file:function]
- [x] [criterion] — covered by test [test_name]
- [ ] [criterion] — DEFERRED: requires playtest (Visual/Feel)
**Deviations from scope**: [None] or [list files touched outside story boundary]
**Engine risks flagged**: [None] or [specialist finding]
**Blockers**: [None] or [describe]
Ready for: `/code-review [file1] [file2]` then `/story-done [story-path]`Phase 7: Update Session State
Silently append to production/session-state/active.md:
## Session Extract — /dev-story [date]
- Story: [story-path] — [story title]
- Files changed: [comma-separated list]
- Test written: [path, or "None — Visual/Feel/Config story"]
- Blockers: [None, or description]
- Next: /code-review [files] then /story-done [story-path]Create active.md if it does not exist. Confirm: "Session state updated."
Error Recovery Protocol
If any spawned agent (via Task) returns BLOCKED, errors, or cannot complete:
- Surface immediately: Report "[AgentName]: BLOCKED — [reason]" to the user before continuing to dependent phases
- Assess dependencies: Check whether the blocked agent's output is required by subsequent phases. If yes, do not proceed past that dependency point without user input.
- Offer options via AskUserQuestion with choices:
- Skip this agent and note the gap in the final report
- Retry with narrower scope
- Stop here and resolve the blocker first
- Always produce a partial report — output whatever was completed. Never discard work because one agent blocked.
Common blockers:
- Input file missing (story not found, GDD absent) → redirect to the skill that creates it
- ADR status is Proposed → do not implement; run
/architecture-decisionfirst - Scope too large → split into two stories via
/create-stories - Conflicting instructions between ADR and story → surface the conflict, do not guess
- Manifest version mismatch → show diff to user, ask whether to proceed with old rules or update story first
Collaborative Protocol
- File writes are delegated — all source code, test files, and evidence docs are written by sub-agents spawned via Task. Each sub-agent enforces the "May I write to [path]?" protocol individually. This orchestrator does not write files directly.
- Load before implementing — do not start coding until all context is loaded (story, TR-ID, ADR, manifest, engine prefs). Incomplete context produces code that drifts from design.
- The ADR is the law — implementation must follow the ADR's Implementation Guidelines. If the guidelines conflict with what seems "better," flag it in the summary rather than silently deviating.
- Stay in scope — the Out of Scope section is a contract. If implementing the story requires touching an out-of-scope file, stop and surface it: "Implementing [criterion] requires modifying [file], which is out of scope. Shall I proceed or create a separate story?"
- Test is not optional for Logic/Integration — do not mark implementation complete without the test file existing
- Visual/Feel criteria are deferred, not skipped — mark them as DEFERRED
in the summary; they will be manually verified in
/story-done - Ask before large structural decisions — if the story requires an architectural pattern not covered by the ADR, surface it before implementing: "The ADR doesn't specify how to handle [case]. My plan is [X]. Proceed?"
Recommended Next Steps
- Run
/code-review [file1] [file2]to review the implementation before closing the story - Run
/story-done [story-path]to verify acceptance criteria and mark the story complete - After all sprint stories are done: run
/team-qa sprintfor the full QA cycle before advancing the project stage
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 7
- striderZA/OpenCodeGameStudios★ 9399% same
- dawn840705/codex-code-studios★ 1783% same
- hongyuanc/codex-game-studios★ 559% same
- dawn840705/claude-code-studios★ 186% same
- HunLuanZhiZhu/Game-Studios-Plugin★ 177% same
- venus2099/codex-game-studios★ 132% same
- ShiningPlague/shiningplague-studio★ 051% same
Wrote their own version · 4
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- cenconq25/claude-code-app-studio★ 40same name
- gonimar/claude-web-studio★ 4same name
- rterakedis/leanwheel-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use vertical-slice.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
hongyuancSkillvertical-slice
Build and evaluate a production-quality vertical slice before advancing from Pre-Production to Production.
Also in 4 projects that use this
In this repository76 other files it gives its agents.
- CCGS Skill Testing Framework/CLAUDE.mdCLAUDE.md
- CLAUDE.mdCLAUDE.md
- design/CLAUDE.mdCLAUDE.md
- docs/CLAUDE.mdCLAUDE.md
- src/CLAUDE.mdCLAUDE.md
- adoptSkill
- architecture-decisionSkill
- architecture-reviewSkill
- art-bibleSkill
- asset-auditSkill
- asset-specSkill
- balance-checkSkill
- brainstormSkill
- bug-reportSkill
- bug-triageSkill
- changelogSkill
- code-reviewSkill
- consistency-checkSkill
- content-auditSkill
- create-architectureSkill
- create-control-manifestSkill
- create-epicsSkill
- create-storiesSkill
- day-one-patchSkill
- design-reviewSkill
- design-systemSkill
- estimateSkill
- gate-checkSkill
- helpSkill
- hotfixSkill
- launch-checklistSkill
- localizeSkill
- map-systemsSkill
- milestone-reviewSkill
- onboardSkill
- patch-notesSkill
- perf-profileSkill
- playtest-reportSkill
- project-stage-detectSkill
- propagate-design-changeSkill
- prototypeSkill
- qa-planSkill
- quick-designSkill
- regression-suiteSkill
- release-checklistSkill
- retrospectiveSkill
- reverse-documentSkill
- review-all-gddsSkill
- scope-checkSkill
- security-auditSkill
- setup-engineSkill
- skill-improveSkill
- skill-testSkill
- smoke-checkSkill
- soak-testSkill
- sprint-planSkill
- sprint-statusSkill
- startSkill
- story-doneSkill
- story-readinessSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

