create-stories
Skill0 starsChanged 4 months agoMITView on GitHub
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic. ShiningPlague-adopted: project paths (docs/gdd/ + docs/adr/), stories live at production/epics/<slug>/, qa-lead embeds test cases.
10 other projects use a version of this, 8 of them edited.
Adopted by
Most recently taken up by
- striderZA/OpenCodeGameStudiosedited, first seen Nov 4, 2026
- Donchitos/Claude-Code-Game-Studiostheir own version, first seen Oct 19, 2026
- venus2099/codex-game-studiosedited, first seen Oct 17, 2026
- HunLuanZhiZhu/Game-Studios-Pluginedited, first seen Oct 5, 2026
- gonimar/claude-web-studiotheir own version, first seen Sep 27, 2026
- dawn840705/claude-code-studiosedited, first seen Aug 28, 2026
Used with
Projects 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
Other versions10 projects use a version of this.
Word for word · 0
None found.
Edited · 8
- striderZA/OpenCodeGameStudios★ 11855% same
- cenconq25/claude-code-app-studio★ 4012% same
- dawn840705/codex-code-studios★ 1751% same
- lilangMax/ClaudeCodeGameStudios★ 856% same
- hongyuanc/codex-game-studios★ 534% same
- dawn840705/claude-code-studios★ 153% same
- HunLuanZhiZhu/Game-Studios-Plugin★ 145% same
- venus2099/codex-game-studios★ 113% same
Wrote their own version · 2
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- gonimar/claude-web-studio★ 4same 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.
In this repository68 other files it gives its agents.
- adoptSkill
- architecture-decisionSkill
- architecture-reviewSkill
- art-bibleSkill
- asset-specSkill
- brainstormingSkill
- bug-reportSkill
- bug-triageSkill
- code-reviewSkill
- consistency-checkSkill
- content-auditSkill
- create-architectureSkill
- create-control-manifestSkill
- create-epicsSkill
- day-one-patchSkill
- design-reviewSkill
- design-systemSkill
- dev-storySkill
- dispatching-parallel-agentsSkill
- estimateSkill
- executing-plansSkill
- finishing-a-development-branchSkill
- gate-checkSkill
- goal-add-minorSkill
- goal-checkSkill
- goal-setSkill
- godot-engineSkill
- helpSkill
- map-systemsSkill
- narrative-designerSkill
- project-stage-detectSkill
- propagate-design-changeSkill
- qa-planSkill
- quick-designSkill
- red-flag-scanSkill
- regression-suiteSkill
- retrospectiveSkill
- review-all-gddsSkill
- safety-pushSkill
- scope-checkSkill
- security-auditSkill
- session-closeSkill
- setup-engineSkill
- sprint-planSkill
- startSkill
- story-doneSkill
- story-readinessSkill
- subagent-driven-developmentSkill
- systematic-debuggingSkill
- team-artSkill
- team-audioSkill
- team-combatSkill
- team-economySkill
- team-infraSkill
- team-levelSkill
- team-marketingSkill
- team-narrativeSkill
- team-polishSkill
- team-releaseSkill
- team-securitySkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 55
No argument — ask, Glob production/epics/*/EPIC.md, list available epics
- Very specific: line 65
All governing ADRs from docs/adr/ — Decision, Implementation Guidelines, Engine Compatibility, Engine Notes
- Distinctive: line 69
ADR existence validation: After reading governing ADRs list, confirm each file exists on disk.
- Distinctive: line 75
Don't proceed to Step 3 until all ADR files confirmed.
- Distinctive: line 117
Review mode check: before QL-STORY-READY:
- Very specific: line 122
After decomposing all stories but before presenting for write approval, spawn qa-lead via Task using gate QL-STORY-READY.
- Very specific: line 294
Use AskUserQuestion to close:
“Common” is measured: kept by at least 6 in 10 of the 10 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
Create Stories
🌱 ShiningPlague-adopted. Originally Donchitos; battle-tested on a shipped Godot project. Upstream procedure preserved + project path corrections.
A story is a single implementable behaviour — small enough to complete in one focused session, self-contained, and fully traceable to a GDD requirement and an ADR decision. Stories are what developers pick up. Epics are what architects define.
Run this skill per epic, not per layer. Run for Foundation epics first, then Core, matching dependency order.
Output: production/epics/[epic-slug]/story-NNN-[slug].md files
Previous step: /create-epics [system]
Next step: /story-readiness [story-path] then /dev-story [story-path]
If an artifact named here is absent: say so plainly in one line, skip that step, and continue. Never invent the file to satisfy a checklist, and never fail a close because an optional artifact was never created.
Project Paths
| What | Canonical path |
| System GDD | docs/gdd/[system].md or {{GDD_PATH}} |
| ADRs | docs/adr/NNN-*.md |
| Control manifest | docs/architecture/control-manifest.md |
| Story output | production/epics/[epic-slug]/ |
Note: if no stories exist yet, that's normal — the small path (spec → ADR → plan → execute) covers small work; stories activate when the large path is needed.
1. Parse Argument
Extract --review [full|lean|solo] if present. If not, read production/review-mode.txt (default full if missing). Apply check pattern from .claude/docs/director-gates.md before every gate invocation.
/create-stories [epic-slug]— e.g./create-stories combat/create-stories production/epics/combat/EPIC.md— full path accepted- No argument — ask, Glob
production/epics/*/EPIC.md, list available epics
2. Load Everything for This Epic
Read in full:
production/epics/[epic-slug]/EPIC.md— overview, governing ADRs, GDD requirements- The epic's GDD (
docs/gdd/[system].mdor{{GDD_PATH}}section) - All governing ADRs from
docs/adr/— Decision, Implementation Guidelines, Engine Compatibility, Engine Notes docs/architecture/control-manifest.md— rules for this epic's layer; note Manifest Version datedocs/architecture/tr-registry.yaml— TR-IDs for this system
ADR existence validation: After reading governing ADRs list, confirm each file exists on disk. If any missing:
"Epic references [ADR-NNNN: title] but
docs/adr/[adr-file].mdnot found. Check filename in epic's Governing ADRs list, or run/architecture-decision. Cannot create stories until all referenced ADR files present."
Don't proceed to Step 3 until all ADR files confirmed.
Report: "Loaded epic [name], GDD [filename], [N] governing ADRs (all confirmed present), control manifest v[date]."
3. Classify Stories by Type
| Story Type | Assign when criteria reference... |
| Logic | Formulas, numerical thresholds, state transitions, AI decisions, calculations |
| Integration | Two or more systems interacting, signals crossing boundaries, save/load round-trips |
| Visual/Feel | Animation behaviour, VFX, "feels responsive", timing, screen shake, audio sync |
| UI | Menus, HUD elements, buttons, screens, dialogue boxes, tooltips |
| Config/Data | Balance tuning values, data file changes only — no new code logic |
Mixed stories: assign type with highest implementation risk. Type determines what test evidence is required before /story-done.
4. Decompose the GDD into Stories
For each GDD acceptance criterion:
- Group related criteria requiring same core implementation
- Each group = one story
- Order: foundational behaviour first, edge cases last, UI last
Story sizing: one story = ~2-4 hours. Split if longer.
For each story, determine:
- GDD requirement: which acceptance criteria
- TR-ID: from
tr-registry.yaml. Use stable ID. If no match, useTR-[system]-???and warn. - Governing ADR:
Status: Accepted→ embed normallyStatus: Proposed→Status: Blockedwith note: "BLOCKED: ADR-NNNN is Proposed — run/architecture-decision"
- Story Type: from Step 3
- Engine risk: from ADR's Knowledge Risk field
4b. QA Lead Story Readiness Gate
Review mode check before QL-STORY-READY:
solo→ skip. "QL-STORY-READY skipped — Solo mode." Proceed to Step 5.lean→ skip. "QL-STORY-READY skipped — Lean mode." Proceed to Step 5.full→ spawn as normal.
After decomposing all stories but before presenting for write approval, spawn qa-lead via Task using gate QL-STORY-READY.
Pass: full story list with acceptance criteria, story types, TR-IDs; epic's GDD acceptance criteria.
Present qa-lead's assessment. For each story flagged GAPS or INADEQUATE, revise acceptance criteria. Once all stories ADEQUATE, proceed.
After ADEQUATE: for every Logic and Integration story, ask qa-lead to produce concrete test case specs:
Test: [criterion text]
Given: [precondition]
When: [action]
Then: [expected result / assertion]
Edge cases: [boundary values or failure states]For Visual/Feel and UI stories, manual verification steps:
Manual check: [criterion text]
Setup: [how to reach the state]
Verify: [what to look for]
Pass condition: [unambiguous pass description]These embed directly into each story's ## QA Test Cases section. Developer implements against these — programmer doesn't write tests from scratch.
5. Present Stories for Review
Present full story list before writing:
## Stories for Epic: [name]
Story 001: [title] — Logic — ADR-NNNN
Covers: TR-[system]-001 ([1-line summary])
Test required: tests/unit/[system]/[slug]_test.gd
Story 002: [title] — Integration — ADR-MMMM
Covers: TR-[system]-002, TR-[system]-003
Test required: tests/integration/[system]/[slug]_test.gd
Story 003: [title] — Visual/Feel — ADR-NNNN
Covers: TR-[system]-004
Evidence required: production/qa/evidence/[slug]-evidence.md
[N stories total: N Logic, N Integration, N Visual/Feel, N UI, N Config/Data]Use AskUserQuestion:
- Prompt: "May I write these [N] stories to
production/epics/[epic-slug]/?" - Options:
[A] Yes — write all [N] stories/[B] Not yet — review or adjust first
6. Write Story Files
For each story, write production/epics/[epic-slug]/story-[NNN]-[slug].md:
# Story [NNN]: [title]
> **Epic**: [epic name]
> **Status**: Ready
> **Layer**: [Foundation / Core / Feature / Presentation]
> **Type**: [Logic | Integration | Visual/Feel | UI | Config/Data]
> **Manifest Version**: [date from control-manifest.md header]
## Context
**GDD**: `docs/gdd/[system].md` (or `{{GDD_PATH}}` §[section])
**Requirement**: `TR-[system]-NNN`
*(Requirement text in `docs/architecture/tr-registry.yaml` — read fresh at review time)*
**ADR Governing Implementation**: [ADR-NNNN: title]
**ADR Decision Summary**: [1-2 sentence summary]
**Engine**: Godot 4.6.1 | **Risk**: [LOW / MEDIUM / HIGH]
**Engine Notes**: [from ADR Engine Compatibility — post-cutoff APIs, verification required]
**Control Manifest Rules (this layer)**:
- Required: [relevant required pattern]
- Forbidden: [relevant forbidden pattern]
- Guardrail: [relevant performance guardrail]
---
## Acceptance Criteria
*From GDD, scoped to this story:*
- [ ] [criterion 1 — directly from GDD]
- [ ] [criterion 2]
- [ ] [performance criterion if applicable]
---
## Implementation Notes
*Derived from ADR-NNNN Implementation Guidelines:*
[Specific, actionable guidance. Don't paraphrase in ways that change meaning. This is what the programmer reads instead of the ADR.]
---
## Out of Scope
*Handled by neighbouring stories — do not implement here:*
- [Story NNN+1]: [what it handles]
---
## QA Test Cases
*Written by qa-lead at story creation. Developer implements against these — don't invent new test cases during implementation.*
**[For Logic / Integration stories — automated test specs]:**
- **AC-1**: [criterion text]
- Given: [precondition]
- When: [action]
- Then: [assertion]
- Edge cases: [boundary values / failure states]
**[For Visual/Feel / UI stories — manual verification]:**
- **AC-1**: [criterion text]
- Setup: [how to reach the state]
- Verify: [what to look for]
- Pass condition: [unambiguous pass description]
---
## Test Evidence
**Story Type**: [type]
**Required evidence**:
- Logic: `tests/unit/[system]/[story-slug]_test.gd` — must exist and pass
- Integration: `tests/integration/[system]/[story-slug]_test.gd` OR playtest doc
- Visual/Feel: `production/qa/evidence/[story-slug]-evidence.md` + sign-off
- UI: `production/qa/evidence/[story-slug]-evidence.md` or interaction test
- Config/Data: smoke check pass (`production/qa/smoke-*.md`)
**Status**: [ ] Not yet created
---
## Dependencies
- Depends on: [Story NNN-1 must be DONE, or "None"]
- Unlocks: [Story NNN+1, or "None"]Update production/epics/[epic-slug]/EPIC.md
Replace "Stories: Not yet created" with populated table:
## Stories
| # | Story | Type | Status | ADR |
|---|-------|------|--------|-----|
| 001 | [title] | Logic | Ready | ADR-NNNN |
| 002 | [title] | Integration | Ready | ADR-MMMM |7. After Writing
Use AskUserQuestion to close:
Check:
- Are there other epics in
production/epics/without stories yet? - Is this the last epic? Include
/sprint-planas option if so.
Widget:
- Prompt: "[N] stories written to
production/epics/[epic-slug]/. What next?" - Options:
[A] Start implementing — run /story-readiness [first-story-path](Recommended)[B] Create stories for [next-epic-slug] — run /create-stories [slug](only if other epics need stories)[C] Plan the sprint — run /sprint-plan(only if all epics have stories)[D] Stop here for this session
Note: "Work through stories in order — each story's Depends on: field tells you what must be DONE before you can start it."
Collaborative Protocol
- Read before presenting — load all inputs silently before showing story list
- Ask once — present all stories for the epic in one summary, not one at a time
- Warn on blocked stories — flag any story with Proposed ADR before writing
- Ask before writing — get approval for full story set before writing files
- No invention — acceptance criteria from GDDs, implementation notes from ADRs, rules from manifest
- Never start implementation — this skill stops at the story file level
After writing:
- Verdict: COMPLETE — [N] stories written. Run
/story-readiness→/dev-storyto begin. - Verdict: BLOCKED — user declined. No story files written.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

