| name | author-epics |
| description | Draft /grill's epic cut for one REALIZED slice — the user-testable delivery increments the delivery pipeline picks up. Reads the slice's hub from the spine (its functionalities' grounding docs `functionality.md` + the spine profile) AND all SEVEN lens grounding docs (quality, ux, agentic, marketing, architecture, run, measure — the solved design), then cuts epics by the user-testability grain — when an epic is delivered, a user can open the product, do something, and see it work. For EACH epic it drafts a spine `epics` index entry PLUS a rich `epic.md` grounding doc, referencing the slice's functionalities by spine id, never copying functionality or lens content. Orders the cut (explicit acyclic dependencies; the first epic stands alone) and records explicit deferrals for any slice functionality not cut this run. Also applies revision directives from /grill's grilling rounds to the existing cut. Under direct-model-write (ADR 026) it writes ONLY the per-node docs (each `epic.md`, and the slice's `deferrals.yaml`) straight to the live model, and emits the epics-index delta (the spine `epics` entries) as structured data in the epics-manifest — it NEVER writes `_spine.yaml`, `profile.yaml`, or `decisions`. The generative work for the /grill play. |
| version | 0.3.0 |
| user-invocable | false |
| model | opus |
| allowed-tools | Read, Write, Bash, Glob |
author-epics
Turns one realized slice into its epic cut — the ordered set of user-testable
delivery increments that /start will pick up one at a time. A slice is a vertical product
increment whose design the seven realize lenses have already solved; its hub is the
union of its functionalities' grounding docs (functionality.md) plus the product profile
(read from the spine). The epic is the delivery grain below the slice, and its rule is
single: when this epic is delivered, a user can open the product, do something, and see
it work.
An epic may thread one or several of the slice's functionalities; a big functionality may
yield several epics. What an epic may NOT be is internal-only — plumbing, schema setup, an
API with no surface — unless that work rides inside an epic that ends at something a user
can exercise. Cut vertically, not horizontally.
Each epic is two artifacts: a structured spine epics entry (the machine index the
delivery pipeline reads) and a rich epic.md grounding doc (the human-readable cut a
builder picks up). This skill writes the epic.md docs straight to the live model and emits
the spine epics entries as structured manifest data; it never writes the spine itself.
/grill grills the cut (cited push-back, tension rounds), the human approves, and /grill's
keyed persist script turns the manifest's epics-index delta into the spine epics writes.
Write discipline — direct-model-write containment split (ADR 026)
This skill is the LLM worker in a direct-model-write play. Per
standards/rules/direct-model-write.md it obeys the containment split, and this is
mandatory:
- It writes ONLY the per-node grounding docs — each epic's
epic.md, and the slice's
deferrals.yaml — straight to the live model under the slice's epics/ home. There
is no draft/ tree.
- It NEVER writes any shared model file: not
_spine.yaml, not profile.yaml, not
decisions/. The spine epics-index mutation is the job of /grill's deterministic keyed
persist script, which reads this skill's manifest.
- The spine
epics entries it used to write into a draft _spine.yaml are now emitted as
structured data in (a non-model STM artifact). The keyed persist
script merges those entries into the live spine index in place, keyed to the slice.