epics
Define and maintain epics — the durable delivery structures between the
PRD and the ticket backlog. An epic bundles requirement IDs from feature PRDs
into an outcome-oriented workstream, traced to the jobs it serves, prioritized
explicitly, and owned. Epics are what prd-to-issues / ticket-writer
decompose and what the product team steers delivery by.
This skill consumes jobs and PRD requirements; it never mints or rewrites
jobs (jobs-to-be-done) and never writes tickets or acceptance criteria
(ticket-writer). Full roadmap/portfolio planning is deliberately out of
scope — that part of the source skill was not ported.
Where epics live
<target>/docs/product/epics/NN-<slug>.md — one file per epic, template
in references/epic-template.md. Durable-artifact rules, identical in spirit
to jtbd/:
- Ids are forever. Next free
NN; never renumber or reuse.
- Never delete or silently replace. A reshaped epic is a new file
whose
## Related says supersedes [[epic:NN-...]] (bare [[NN]] always
cites a job); the old one flips
status: superseded with a pointer. parked marks a real-but-not-now epic;
done marks a delivered one.
- Never write without human review in the same session — read-back before
every write (standalone) or the definition gate (pipeline).
milestone: is not yours. The harness's issues phase writes that single
frontmatter key back into an epic after projecting it to GitHub (the one
cross-owner write CONTRACT.md permits). You never author or edit it — but
a REVISE that rewrites frontmatter "per the template" must carry it
through unchanged. Dropping it strips the back-reference, and the next run
creates a duplicate milestone in GitHub. A superseded epic keeps its
milestone: too: the issues phase closes that milestone with a pointer to
the replacement rather than deleting it.
- One commit per run, message naming what changed and why
(
docs(epics): 02 split from 01 — triage and reporting are different outcomes).
Repo-first-and-always; a Cowork folder is a valid target, never a blocker.
Modes
- DEFINE — create epic(s): from a PRD's requirements (definition phase),
or standalone from an objective + jobs.
- REVISE — refine, split, merge, park, complete, or supersede existing
epics as delivery reality changes. Revisions follow the supersede rules —
history is breadcrumb, not clutter.
Inputs
docs/product/jtbd/ — active jobs (ids + verbatim headlines). An epic that
serves no existing job is evidence a job is missing → TBD, route to
jobs-to-be-done; keep the epic out of committed scope until resolved.
docs/features/<slug>/prd.md — requirement IDs to bundle (when run in a
feature's definition phase).
docs/product/ateam-plan.md — the goals/deliverables the epics must ladder up to;
context.md for glossary terms and the ledger.
- Existing
docs/product/epics/ — always read before writing; extend and
supersede, never duplicate.
- Ownership, dependency, and prioritization context from the human — captured
as
TBD when missing, never guessed.
Workflow
- Read the existing epic set and the jobs. New work extends it; a fresh
run never re-derives epics that already exist.
- Shape each epic around one primary job-outcome. More than one distinct
primary job inside a candidate epic → split it. Explicit JTBD framing: ids
- verbatim headlines, language preserved.
- Initiatives, outcome-oriented. Ordered by how directly they unlock the
jobs served; dependency-constrained ordering made visible. Optional time
windows only — no mandatory dates.
- Bundle requirements. In a feature run, map each epic to the PRD
requirement IDs it realizes (
assisted-triage-v0: R1–R3) and record the
feature slug in frontmatter. Requirements left unbundled are a flag for the
gate, not a silent drop.
- Prioritize explicitly. Default MoSCoW when shaping scope without
effort/impact data; 2x2 when the trade-off data exists; Eisenhower and
RICE as offered alternatives. State the chosen approach and rationale in
the epic — an unexplained priority is an opinion, not a decision.
- Keep unknowns visible. Missing owner, dependency, or success signal is
TBD; genuinely open questions mirror into the context.md ledger.
- Read-back / gate, write, commit. Present drafted or revised epics for
correction; write per the durable rules; commit.
- Hand off.
ticket-writer / prd-to-issues decompose the epics into
the backlog; discovery-plan folds epic-level deliverables into ateam-plan.md's
initiatives. Close with Next likely skill(s) · What to pass forward
(epic ids, requirement bundles, priority calls) · Suggested next
prompts.
No human present
Durable writes require review. With nobody present: deliver the drafted
epic(s) in your report only, write nothing, and state that the run awaits
review. In pipeline mode the definition gate is that review.
References
references/epic-template.md — the durable epic file template + lifecycle
rules.
1---2name: epics3description: Use when delivery work needs structuring into epics — defining a new epic, refining or superseding an existing one, or decomposing a PRD's requirements into durable delivery structures that feed issue decomposition. Writes docs/product/epics/NN-<slug>.md (durable, id-stable, superseded-never-deleted), each epic tracing to the JTBD ids it serves and the PRD requirement IDs it bundles. In the A-Team pipeline this is a definition-phase output ("the Epics"). Do not use for full roadmap/portfolio planning across quarters (deliberately not ported), for delivery tickets or acceptance criteria (ticket-writer), or to create or revise jobs (jobs-to-be-done).4---56# epics78Define and maintain **epics** — the durable delivery structures between the9PRD and the ticket backlog. An epic bundles requirement IDs from feature PRDs10into an outcome-oriented workstream, traced to the jobs it serves, prioritized11explicitly, and owned. Epics are what `prd-to-issues` / `ticket-writer`12decompose and what the product team steers delivery by.1314This skill **consumes** jobs and PRD requirements; it never mints or rewrites15jobs (`jobs-to-be-done`) and never writes tickets or acceptance criteria16(`ticket-writer`). Full roadmap/portfolio planning is deliberately out of17scope — that part of the source skill was not ported.1819## Where epics live2021**`<target>/docs/product/epics/NN-<slug>.md`** — one file per epic, template22in `references/epic-template.md`. Durable-artifact rules, identical in spirit23to `jtbd/`:2425- **Ids are forever.** Next free `NN`; never renumber or reuse.26- **Never delete or silently replace.** A reshaped epic is a **new file**27 whose `## Related` says `supersedes [[epic:NN-...]]` (bare `[[NN]]` always28 cites a job); the old one flips29 `status: superseded` with a pointer. `parked` marks a real-but-not-now epic;30 `done` marks a delivered one.31- **Never write without human review in the same session** — read-back before32 every write (standalone) or the definition gate (pipeline).33- **`milestone:` is not yours.** The harness's issues phase writes that single34 frontmatter key back into an epic after projecting it to GitHub (the one35 cross-owner write `CONTRACT.md` permits). You never author or edit it — but36 a REVISE that rewrites frontmatter "per the template" must **carry it37 through unchanged**. Dropping it strips the back-reference, and the next run38 creates a duplicate milestone in GitHub. A superseded epic keeps its39 `milestone:` too: the issues phase closes that milestone with a pointer to40 the replacement rather than deleting it.41- **One commit per run**, message naming what changed and why42 (`docs(epics): 02 split from 01 — triage and reporting are different43 outcomes`).4445Repo-first-and-always; a Cowork folder is a valid target, never a blocker.4647## Modes4849- **DEFINE** — create epic(s): from a PRD's requirements (definition phase),50 or standalone from an objective + jobs.51- **REVISE** — refine, split, merge, park, complete, or supersede existing52 epics as delivery reality changes. Revisions follow the supersede rules —53 history is breadcrumb, not clutter.5455## Inputs5657- `docs/product/jtbd/` — active jobs (ids + verbatim headlines). An epic that58 serves no existing job is evidence a job is missing → `TBD`, route to59 `jobs-to-be-done`; keep the epic out of committed scope until resolved.60- `docs/features/<slug>/prd.md` — requirement IDs to bundle (when run in a61 feature's definition phase).62- `docs/product/ateam-plan.md` — the goals/deliverables the epics must ladder up to;63 `context.md` for glossary terms and the ledger.64- Existing `docs/product/epics/` — always read before writing; extend and65 supersede, never duplicate.66- Ownership, dependency, and prioritization context from the human — captured67 as `TBD` when missing, never guessed.6869## Workflow70711. **Read the existing epic set** and the jobs. New work extends it; a fresh72 run never re-derives epics that already exist.732. **Shape each epic around one primary job-outcome.** More than one distinct74 primary job inside a candidate epic → split it. Explicit JTBD framing: ids75 + verbatim headlines, language preserved.763. **Initiatives, outcome-oriented.** Ordered by how directly they unlock the77 jobs served; dependency-constrained ordering made visible. Optional time78 windows only — no mandatory dates.794. **Bundle requirements.** In a feature run, map each epic to the PRD80 requirement IDs it realizes (`assisted-triage-v0: R1–R3`) and record the81 feature slug in frontmatter. Requirements left unbundled are a flag for the82 gate, not a silent drop.835. **Prioritize explicitly.** Default **MoSCoW** when shaping scope without84 effort/impact data; **2x2** when the trade-off data exists; Eisenhower and85 RICE as offered alternatives. State the chosen approach and rationale in86 the epic — an unexplained priority is an opinion, not a decision.876. **Keep unknowns visible.** Missing owner, dependency, or success signal is88 `TBD`; genuinely open questions mirror into the context.md ledger.897. **Read-back / gate, write, commit.** Present drafted or revised epics for90 correction; write per the durable rules; commit.918. **Hand off.** `ticket-writer` / `prd-to-issues` decompose the epics into92 the backlog; `discovery-plan` folds epic-level deliverables into ateam-plan.md's93 initiatives. Close with **Next likely skill(s)** · **What to pass forward**94 (epic ids, requirement bundles, priority calls) · **Suggested next95 prompts**.9697## No human present9899Durable writes require review. With nobody present: deliver the drafted100epic(s) in your report only, write nothing, and state that the run awaits101review. In pipeline mode the definition gate is that review.102103## References104105- `references/epic-template.md` — the durable epic file template + lifecycle106 rules.