Fix release for 1.1.1: the minimal path end to end, engine commands that run on Godot, Unity and Unreal, hook warnings you can see, and verdicts that say when they could not check. Details in CHANGELOG.md; upgrade steps in UPGRADING.md (v1.1.1 → v1.1.2). Fixes #67 Fixes #131 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WuJn2FdynEybfL5KC697nJ
6.6 KiB
/create-epics — Handoff Contract
Role in Pipeline
Translates approved GDDs and architecture documents into one EPIC.md file per architectural module, defining scope, ADR governance, engine risk, and requirement traceability — sits between architecture review and story decomposition.
Inputs Required
Files That Must Exist
| File | Required Fields / Sections | Read-Only? |
|---|---|---|
design/gdd/systems-index.md |
System list, layer assignments, priority order | Yes |
design/gdd/[system].md |
## Summary, ## Acceptance Criteria, ## Overview (all 8 required sections) |
Yes |
docs/architecture/architecture.md |
Module ownership, API boundaries | Yes |
docs/architecture/adr-NNNN-[slug].md (all governing ADRs) |
Status:, GDD Requirements Addressed, Decision, Engine Compatibility |
Yes |
docs/architecture/control-manifest.md |
Manifest Version: date in header |
Yes |
docs/architecture/tr-registry.yaml |
TR-IDs with id, system, requirement text |
Yes |
docs/engine-reference/[engine]/VERSION.md |
Engine name, version, risk levels | Yes |
Tier. The rows above and the preconditions below are the
fullinputs. SKILL.md relaxes them byworkflow: atstandard, GDDs need the 5 required sections (+ conditional Formulas), only critical (Foundation-layer) ADRs are expected and traced, and the control manifest is read if present, not required. Atminimalthe skill is optional and off the path (/create-storiessynthesizes the epic itself); if run, it skips Steps 2a and 2b, reads onlydesign/game-brief.md(stopping if that is missing), takes its order from the brief's Build order instead ofsystems-index.md, and requires no GDD, ADR, architecture document, TR registry or control manifest.
Preconditions
/create-control-manifesthas been run anddocs/architecture/control-manifest.mdexists/architecture-reviewhas passed (at minimum Foundation and Core ADRs are Accepted)- All in-scope GDDs have status
ApprovedorDesignedinsystems-index.md - The target layer's GDDs are stable — do not run for Feature layer until Core is nearly complete
Outputs Produced
Files Written
| File | Guaranteed Fields / Sections | Notes |
|---|---|---|
production/epics/[epic-slug]/EPIC.md |
Layer, GDD path, Architecture Module, Status: Ready, ## Governing ADRs table, ## GDD Requirements table with TR-IDs and ADR coverage, ## Definition of Done, ## Overview |
Created per approved epic |
production/epics/index.md |
Epic, Layer, System, GDD, Stories, Status columns |
Created, or a row added per new epic; an existing epic's row is updated in place and keeps its Stories value |
Output Guarantees
- Every EPIC.md contains a
## Governing ADRstable with at least one row (or a documented note if none apply) - Every EPIC.md contains a
## GDD Requirementstable where each row has aTR-IDand anADR Coveragecell (eitherADR-NNNN ✅or❌ No ADR) - The
GDD:field in the EPIC.md header is a valid relative path to the source GDD - The
Layer:field is one of: Foundation, Core, Feature, Presentation - The
Status:field is set toReady - The
Stories:field readsNot yet created — run /create-stories [epic-slug]on a new epic; an EPIC.md that already existed is updated in place (after an update-or-skip ask) and keeps itsStories:line and## Storiestable - Untraced requirements (TR-IDs with no ADR) are flagged in the GDD Requirements table with
❌ No ADR production/epics/index.mdhas an entry for every epic written in this run- A PR-EPIC review that could not judge the epics (no milestone timeline or team capacity) is reported as
PR-EPIC: NOT ASSESSED — [input]and never read as REALISTIC
Immutability Rules
- READS but does NOT modify:
design/gdd/systems-index.md, all GDD files,docs/architecture/architecture.md, all ADR files indocs/architecture/adr-NNNN-[slug].mdpattern,docs/architecture/control-manifest.md,docs/architecture/tr-registry.yaml,docs/engine-reference/[engine]/VERSION.md - MODIFIES:
production/epics/[epic-slug]/EPIC.md(creates, or updates in place keeping its Stories table),production/epics/index.md(creates or updates)
Hard Constraints (Never Violate)
- Never create story files — this skill stops at the epic level
- Never invent content not sourced from GDDs, ADRs, or architecture docs
- Never skip the per-epic approval prompt before writing
- Never write an EPIC.md without first presenting the epic definition to the user
- Never overwrite an existing EPIC.md or reset its
## Storiestable — update it in place, or skip it - Never mark a TR-ID as covered by an ADR unless that ADR's
Status:isAccepted - Never create epics for a layer whose dependency layer is not yet substantially complete
Downstream Skill Expects
Next skill: /create-stories
It will read:
production/epics/[epic-slug]/EPIC.md— specifically:Layer:,GDD:path,Architecture Module:, the full## Governing ADRstable (ADR IDs and summaries), and the full## GDD Requirementstable (TR-IDs and ADR coverage status)production/epics/index.md— to enumerate available epics when no argument is given
It assumes:
- The
GDD:path in EPIC.md resolves to a readable file - Every ADR listed in
## Governing ADRsexists as a file and has anAcceptedstatus - TR-IDs in
## GDD Requirementsmatch entries indocs/architecture/tr-registry.yaml - The epic slug used in the directory name matches the slug referenced in
index.md Status: Readydoes not by itself mean no stories exist — an EPIC.md updated in place keeps its stories; read itsStories:line
Known Fragile Points
- If the EPIC.md template structure changes (section names, header field names, table column order),
/create-storieswill silently fail to parse governance data and may produce incomplete or incorrect stories - If
tr-registry.yamlis regenerated with renumbered IDs after EPIC.md files are written, the TR-IDs in existing EPIC.md files become stale and mislead/create-stories - If an ADR is retroactively changed from
AcceptedtoProposedafter the epic is written, the EPIC.md will still show it as governing —/create-storieswill embed it without a BLOCKED flag - If
systems-index.mdlayer assignments change after epics are created, theLayer:field in existing EPIC.md files will be incorrect and/create-storieswill use the wrong layer context production/epics/index.mdrows are matched to epics by slug — an epic whose slug changes gets a new row, and the old row stays behind