to-epic
To Epic
Invoking this skill is the owner's standing approval for the full planning transaction set of one Epic — Epic intake, child work-item intake, refinement, rank placement, every proposed -> ready transition — superseding $backlog's per-transaction pauses for exactly these transactions; follow $backlog for everything else. It additionally authorizes $guidance publication for the subjects the owner names at step 2, and nothing else in docs/wiki. It never authorizes cancellation, other wiki mutation, execution claims, or records outside this Epic and its children.
Pause only at the evidence decision (step 2), a $guidance rule-replacement pause, and hard blockers; otherwise run to completion and report. Only $to-product's contract covers the rule-replacement pause — never otherwise suppress it. User-invoked only — or by $to-product, whose autonomous contract auto-answers every pause.
When at least two planning concerns are independent, invoke $parallel-execution for read-only analysis of slicing, dependencies, shared contracts, risks, acceptance, and verification. This context synthesizes the Epic and serializes every evidence decision and $backlog mutation.
Workflow
- Epic intake — Establish the coordinated outcome from the conversation or named sources, then create the
proposedEpic via$backlogintake with provenance. Add its active-index entry as- [EPIC-NNN: <title>](EPIC-NNN-short-title/) - <outcome>.; link the Epic directory with the trailing/, never itsEPIC-NNN.mdrecord. If the outcome doesn't need multiple work items, stop and recommend$to-backloginstead. If the user names an existingproposedEpic, resume at its first incomplete step; rejectready,in-progress, or terminal Epics. - Evidence decision — Before proposing any child, inventory the technologies and standards the Epic's outcome implicates, using
$research's delta-scoped subject rule — never a whole-stack survey. Apply$researchstep 2's concept triggers; name each implicated standard subject or record why none applies — an empty standards half without a recorded reason is invalid. Report each subject's page state underdocs/wiki/engineering/: missing,draft, version-mismatched against the manifest, stale per$research's thresholds, or current. Then ask the owner one question covering both: run$guidancefor which of those subjects, and run$researchon the Epic? Never skip or answer either half yourself, unless$to-product's autonomous contract answers it.$guidance→ naming a subject is the decision to run$guidancefor it now, before child intake — deferring it to implementation or acceptance is not an outcome. Run it for the named subjects only, under this invocation's approval;$research's no-wiki-during-planning rule does not apply to$guidancepages. Its fresh pages then answer those subjects for research and for child refinement.$researchyes → run it after guidance; use the findings to inform child slicing.$researchno → record the decision on the Epic. Children still need individually justified research states; if a version-specific or security-sensitive question surfaces later, ask again for that record — never relabel uncertainty.
- Child intake — Slice the outcome into the smallest coherent, independently valuable Stories/Tasks/Bugs with
parent: EPIC-NNN, relationships, blockers, and provenance via$backlog. Rank placement: the user's stated position, else append in dependency order at the end of the global rank. - Refine to ready — For each child in rank order: refine against its template and accepted wiki state; resolve research (
completefrom Epic findings or a child-level$researchrun,not-neededonly with inspecting evidence); resolvedecisionsper$backlog's Definition of Ready, reading existing ADRs first and naming any one a draft would supersede —decisions: noneonly when the significance test records no qualifying decision; every decision confirmed in discussion or named in the record body becomesdecisions: draftwith an ADR-shaped draft under## Decisions, never deferred in prose; fill## Executionwith approach, verification commands, and its conflict domain or fixed interface, citing this invocation as the recorded approval; verify the full Definition of Ready; transition toready. Then refine the Epic — outcome, objective criteria, exclusions, coordination approach, its own Epic-level decisions, and the template's complete provisional execution graph — and set itready. If any graph row is unresolved, keep the Epicproposed; implementation revalidates every row against live code. Never allocate or publish an ADR here — publication happens at acceptance. - Report — Epic and child IDs with type, status, rank position, research state, and decisions state with each drafted decision named; the evidence decision, every guidance page created or refreshed, and every rule-replacement pause with its outcome; commit hashes; final
node scripts/validate-project.mjsresult. Any record leftproposedgets its named blocker and resumption point.