Turn GDDs plus architecture into epics — one per architectural module, with untraced requirements. Then /create-stories [epic-slug].
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-create-epics-71de7de9048c ,按照其中的说明把「create-epics」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys review_mode,automation,workflow,docs.density,story_granularity,system_overrides
Resolved above — use as-is; --review overrides review_mode. No block →
defaults in .claude/docs/config-resolution.md.
An epic is a named, bounded body of work that maps to one architectural module. It defines what needs to be built and who owns it architecturally. It does not prescribe implementation steps — that is the job of stories.
Run this skill once per layer as you approach that layer in development. Do not create Feature layer epics until Core is nearly complete — the design will have changed.
Output: production/epics/[epic-slug]/EPIC.md + production/epics/index.md
Next step after each epic: /create-stories [epic-slug]
When to run: After /create-control-manifest and /architecture-review pass
(at full). At standard, critical ADRs + a control manifest suffice. At
minimal, this skill is optional and not part of the path — /create-stories
synthesizes the epic from design/game-brief.md itself (Option A). If run anyway,
it decomposes directly from the brief with no GDD/ADR/manifest prerequisite.
At
minimal, this skill is optional —/create-storiessynthesizes the epic (Option A). At that tier/create-storiesreadsdesign/game-brief.mddirectly, writes a lightweight implicitproduction/epics/<slug>/EPIC.md, and generates stories from the MVP list — so the path is/brainstorm→/create-stories→/dev-story, with no separate/create-epicsor/sprint-planstep. Atstandard/fullan epic IS required:/create-storiesreadsproduction/epics/[slug]/EPIC.md, and skipping this skill there leaves/dev-storywith no story to implement — a dead end, not a shortcut.
See .claude/docs/director-gates.md for the full check pattern. Individual gate definitions live in .claude/docs/director-gates/[gate-id].md — the spawned agent reads its own gate file; do not read it in the parent session.
Every AskUserQuestion call follows .claude/docs/automation-modes.md
(collaborative asks always · guided major-only · autonomous logs and proceeds;
automation_always_ask categories always prompt).
workflow (per .claude/docs/workflow-modes.md):
create-epics runs project-wide: it uses the project-level tier for its
prerequisite expectations and consults
workflow_overrides.system_overrides.<system> per-system when reading each
in-scope GDD. See "Workflow tier adjustment" in Step 2.
story_granularity — it sizes the
epic's story breakdown: expect 3–5 child stories per epic at coarse, 5–10
at balanced (default), 10–20 at fine.
docs.density — it controls the depth of each epic's written scope and
rationale, not the story count (that is story_granularity). modes.rigor sets
it alongside workflow; set docs.density explicitly to vary epic prose alone:
terse = scope as bullets, one-line rationale; balanced = a scope paragraph
with light rationale (default); thorough = full scope prose with governing-ADR
rationale and risk discussion. The EPIC.md tables (GDD requirements, governing
ADRs) are structural and stay whole at every density.
Modes:
/create-epics all — process all systems in layer order/create-epics layer: foundation — Foundation layer only/create-epics layer: core — Core layer only/create-epics layer: feature — Feature layer only/create-epics layer: presentation — Presentation layer only/create-epics [system-name] — one specific systemEstablish the denominator first. Glob design/gdd/*.md, excluding the
non-system docs (game-concept.md, systems-index.md, game-pillars.md,
gameplay-tags.md, entity-registry.md, fixture-swap-ledger.md, and any
gdd-cross-review-*.md — the same set gdd-structure-check.sh skips). Call the
count N. If N is 0, there are no system GDDs — report "No system GDDs found
in design/gdd/ — run /design-system first" and stop.
Scan for Summary sections:
Grep pattern="^## Summary" glob="design/gdd/*.md" output_mode="content" -A 5
Interpret the M matches against N. These are three different outcomes, and a zero-match scan is never the same as "nothing in scope":
| Result | Meaning | Action |
|---|---|---|
| M = N | Every GDD has a Summary. | For layer:/[system-name] modes, use the Summary Quick-reference (Layer/Priority) to pick the in-scope set; skip full-reading the rest. |
| 0 < M < N | Partial adoption — older GDDs predate ## Summary. | Scope the M by their Summaries; determine the scope of the N − M unmatched from systems-index.md (layer/priority) and full-read those. |
| 0 matches, N > 0 | Expected for GDDs authored before /design-system emitted ## Summary. | Determine scope for all N from systems-index.md and full-read the in-scope set. This is the pre-optimization behaviour — correct, only more expensive. Note once: "No ## Summary sections found across [N] GDDs — scoping from systems-index.md instead of Summary." |
Never treat an absent ## Summary as an absent system. The scan narrows the
read set when it succeeds; it never shrinks the in-scope set. In all mode
every system is in scope regardless of Summary, so the scan is a convenience
only — never a filter.
Using the Step 2a grep results, identify which systems are in scope. Read full documents only for in-scope systems — do not read GDDs or ADRs for out-of-scope systems or layers.
Read for in-scope systems:
design/gdd/systems-index.md — authoritative system list, layers, prioritydocs/architecture/architecture.md — module ownership and API boundariesGrep pattern="^## (GDD Requirements Addressed|Decision|Engine Compatibility)" path="docs/architecture/[adr-file].md" output_mode="content" -n
then Read(offset, limit) bounded to each match through the next ##
heading (or to end of file for the last match). This matters most on a
large ADR — measured at 47k tokens this way vs. 103k for an unbounded
read of the same size file.docs/architecture/control-manifest.md — manifest version date from headerdocs/architecture/tr-registry.yaml — for tracing requirements to ADR coveragedocs/engine-reference/[engine]/VERSION.md — engine name, version, risk levelsReport: "Loaded [N] GDDs, [M] ADRs, engine: [name + version]."
Workflow tier adjustment (resolved in Step 1; per-system via
system_overrides). The inputs above are thefullbaseline:
full— every in-scope GDD must be Approved with all 8 sections; TR registry + control manifest are required inputs; untraced requirements (Step 4) are flagged before proceeding.standard— GDDs need the 5 required sections (+ conditional Formulas) approved; only critical (Foundation-layer) ADRs are expected; the control manifest is read if present, not required. A system pinned higher viasystem_overridesmust still meet its higher bar.minimal— decompose againstdesign/game-brief.md+ acceptance criteria. Do not require GDDs, ADRs, the TR registry, or the manifest; skip the untraced-requirement gate. If run, the epic is still produced — but note/create-storiesalso synthesizes one from the brief when this skill is skipped (the defaultminimalpath).
Process in dependency-safe layer order:
Within each layer, use the order from systems-index.md.
At
minimalthere is nosystems-index.md—/map-systemsis not required at that tier, so nothing has produced one. Derive the layer split and ordering fromdesign/game-brief.mdinstead: its Build order field names what must exist first. Do not stop, and do not send the user to/map-systemsto satisfy an ordering hint — the tier deliberately skips it.
For each system, map it to an architectural module from architecture.md.
Check ADR coverage against the TR registry per the resolved tier (Step 1):
full — trace every TR-ID; warn on each untraced requirement (below).
standard — only critical (Foundation-layer) ADRs are expected; trace
those. Treat untraced non-critical requirements as informational (list them, do
not block or emit the Blocked-story warning).
minimal — skip this check entirely (no TR registry / ADR expected).
Traced requirements: TR-IDs that have an Accepted ADR covering them
Untraced requirements: TR-IDs with no ADR — warn before proceeding (full only)
Present to user before writing anything:
## Epic: [System Name]
**Layer**: [Foundation / Core / Feature / Presentation]
**GDD**: design/gdd/[filename].md
**Architecture Module**: [module name from architecture.md]
**Governing ADRs**: [ADR-NNNN, ADR-MMMM]
**Engine Risk**: [LOW / MEDIUM / HIGH — highest risk among governing ADRs]
**GDD Requirements Covered by ADRs**: [N / total]
**Untraced Requirements**: [list TR-IDs with no ADR, or "None"]
If there are untraced requirements:
"⚠️ [N] requirements in [system] have no ADR. The epic can be created, but stories for these requirements will be marked Blocked until ADRs exist. Run
/architecture-decisionfirst, or proceed with placeholders."
Use AskUserQuestion:
[A] Yes, create it[B] Skip this epic[C] Pause — I need to write ADRs firstReview mode check — apply before spawning PR-EPIC:
solo → skip. Note: "PR-EPIC skipped — Solo mode." Proceed to Step 5 (write epic files).lean → skip (not a PHASE-GATE). Note: "PR-EPIC skipped — Lean mode." Proceed to Step 5 (write epic files).full → spawn as normal.After all epics for the current layer are defined (Step 4 completed for all in-scope systems), and before writing any files, spawn producer via Agent using gate PR-EPIC (.claude/docs/director-gates/pr-epic.md).
Pass: the full epic structure summary (all epics, their scope summaries, governing ADR counts), the layer being processed, milestone timeline and team capacity.
Present the producer's assessment.
If UNREALISTIC: offer to revise epic boundaries (split overscoped or merge underscoped epics). Revise and re-run the gate before writing.
If CONCERNS, use AskUserQuestion:
[A] Proceed as planned — I accept the producer's concerns[B] Revise epic boundaries — split or merge as recommended[C] Stop — I want to reconsider the scopeIf [A]: proceed to Step 5. If [B]: revise epic definitions from Step 4 and re-run the producer gate. If [C]: stop. Verdict: BLOCKED — user wants to reconsider epic scope.
Do not write epic files until the producer gate resolves.
After approval, ask: "May I write the epic file to production/epics/[epic-slug]/EPIC.md?"
After user confirms, write:
production/epics/[epic-slug]/EPIC.md# Epic: [System Name]
> **Layer**: [Foundation / Core / Feature / Presentation]
> **GDD**: design/gdd/[filename].md
> **Architecture Module**: [module name]
> **Status**: Ready
> **Stories**: Not yet created — run `/create-stories [epic-slug]`
## Overview
[1 paragraph describing what this epic implements, derived from the GDD Overview
and the architecture module's stated responsibilities]
## Governing ADRs
| ADR | Decision Summary | Engine Risk |
|-----|-----------------|-------------|
| ADR-NNNN: [title] | [1-line summary] | LOW/MEDIUM/HIGH |
## GDD Requirements
| TR-ID | Requirement | ADR Coverage |
|-------|-------------|--------------|
| TR-[system]-001 | [requirement text from registry] | ADR-NNNN ✅ |
| TR-[system]-002 | [requirement text] | ❌ No ADR |
## Definition of Done
This epic is complete when:
- All stories are implemented, reviewed, and closed via `/story-done`
- All acceptance criteria from `design/gdd/[filename].md` are verified
- All Logic and Integration stories have passing test files in `tests/`
- All Visual/Feel and UI stories have evidence docs with sign-off in `production/qa/evidence/`
## Next Step
Run `/create-stories [epic-slug]` to break this epic into implementable stories.
production/epics/index.mdCreate or update the master index:
# Epics Index
Last Updated: [date]
Engine: [name + version]
| Epic | Layer | System | GDD | Stories | Status |
|------|-------|--------|-----|---------|--------|
| [name] | Foundation | [system] | [file] | Not yet created | Ready |
After writing all epics for the requested scope:
/gate-check production to check readiness./create-stories [epic-slug] for each epic before developers can pick up work.Applies in collaborative mode (the default). For guided and
autonomous modes, see .claude/docs/automation-modes.md — the rules below
describe what collaborative mode requires, not universal behavior.
After all requested epics are processed:
/create-stories [epic-slug] per epic.