--- name: agile-6-create-epics description: "Epics in Jira from Roadmap. Triggers: create epics, set up Jira for MVP. After skill 5, before skill 7." --- # agile_6_create_epics Product Manager + Tech Lead structuring work in Jira so it is ready for Story writing: scan โ†’ interview on anything ambiguous โ†’ create/update Epics linked to Confluence โ†’ advise. ## Confluence structure (canonical โ€” identical across all agile-skills) Every page is a child of the root folder created by `agile-1`. Read this tree before creating any page; never duplicate one that exists. ``` ๐Ÿ“ [Project Name] (root โ€” agile-1) โ”œโ”€โ”€ ๐Ÿ“„ Vision Doc โ€” [Project] (agile-1) โ”œโ”€โ”€ ๐Ÿ“„ PRD โ€” [Project] (agile-2) โ”œโ”€โ”€ ๐Ÿ“„ Design Brief โ€” [Project] (agile-3 BRIEF) โ”œโ”€โ”€ ๐Ÿ“„ Specs UI โ€” [Project] (agile-3 INTEGRATE) โ”œโ”€โ”€ ๐Ÿ“„ ADR โ€” [Project] (agile-4) โ”œโ”€โ”€ ๐Ÿ“„ Roadmap โ€” [Project] (agile-5 โ€” SHORT INDEX only: guiding principle ยท iterations table ยท progress rollup ยท parking lot) โ”‚ โ”œโ”€โ”€ ๐Ÿ“„ MVP โ€” [Project] (agile-5; per-sprint detail by agile-9, refined backlog by agile-8) โ”‚ โ”œโ”€โ”€ ๐Ÿ“„ Iteration 1 โ€” [Project] (agile-5 ITERATION) โ”‚ โ””โ”€โ”€ ๐Ÿ“„ Iteration N โ€” [Project] โ”œโ”€โ”€ ๐Ÿ“ Retrospectives โ€” [Project] (folder, agile-15; one Retro page per sprint) โ””โ”€โ”€ ๐Ÿ“ Closeouts โ€” [Project] (folder, agile-13; sibling of Retrospectives, never inside it) ``` All deep detail โ€” goals, success criteria, epic-in-scope lists, per-sprint backlogs, retro write-ups โ€” lives on the `MVP` / `Iteration N` child pages, never on the Roadmap index. ## Step 1 โ€” Scan existing state Read the **Roadmap index** to find the current iteration, then open its `MVP โ€” [Project]` / `Iteration N โ€” [Project]` child page and read the **Epics in scope** table there โ€” the index itself only links to it. Read **ADR ยง11** for complexity estimates and dependencies. Search Jira for Epics already created (by name, label, or Confluence link), and for each Epic in scope determine whether it exists and, if so, its current state. Report before doing anything, then ask "Shall I proceed with this plan?": ``` Epic status for [Project Name]: | Epic | In Jira? | Jira status | Action needed | |------|----------|-------------|---------------| | [Epic 1] | โœ… Yes | In Progress | No action โ€” already active | | [Epic 2] | โœ… Yes | To Do | Review description, may need update | | [Epic 3] | โŒ No | โ€” | Will create | ``` **No approved Roadmap โ†’ stop:** "I can't find an approved Roadmap for this project. Please complete skill 5 first." ## Step 2 โ€” Interview for Epic-level clarity Per Epic to create or update: a short action-oriented **name** devs will recognise ("User Authentication", "Dashboard MVP"); a one-sentence **goal** naming the user problem it solves; the **scope boundary**, in and out, which is what stops scope creep at Story-writing time; **Epic-level acceptance criteria** (high level โ€” Stories carry the detail); **dependencies** on other Epics or external systems; the **owning team**; and **labels** for filtering. **Ask** when a name from the ADR is too vague to be a Jira card ("Auth stuff"), when two Epics have a blurry boundary ("User Profile" vs "Account Settings" โ€” "where does one end and the other begin?"), when ownership is unspecified, or when an Epic has an implicit dependency nobody listed. **Infer and flag** a goal derivable from a detailed ADR description, a dependency obvious from the ADR data model ("Notifications requires the User model from Auth"), or labels implied by the Roadmap section (an MVP Epic โ†’ label `mvp`). **Only ask about the genuinely unclear Epics** โ€” never re-ask for ones the ADR already defines well. All questions in one message, every assumption stated. **Never infer silently.** ## Step 3 โ€” Create or update Epics in Jira **Summary:** `[Epic name] โ€” [Project Name]`. **Labels:** `[project-slug]`, `[iteration]`, `[layer]`. **Status:** `To Do`. **Assignee:** the owning team or person when known. ``` ## Goal [One sentence: the user problem completing this Epic solves] ## Scope **In scope:** โ€ฆ **Out of scope:** โ€ฆ ## Epic-level acceptance criteria - [ ] [Criterion] ## Dependencies - Depends on: โ€ฆ | Blocks: โ€ฆ ## References Roadmap ยท PRD ยท ADR ยท Specs UI (Confluence links) ``` - **Create in dependency order** โ€” never create Epic B before the Epic A it depends on. - **An existing Epic with outdated content is updated, never duplicated.** - **Never delete an Epic.** Out of scope โ†’ add a comment explaining why and transition to `Won't Do` / `Cancelled`, after user confirmation. - Link each Epic back to the Confluence Roadmap via a remote link or a description reference. ## Step 4 โ€” Update the MVP/Iteration page Update the **Epics in scope** table on the current `MVP` / `Iteration N` child page โ€” **not** the Roadmap index, since epic-level detail lives on the child page: `| Epic | Complexity | Owner | Status | Jira link |` This keeps the two in sync: the child page is the human-readable view of what is in Jira, and the Roadmap index just links to it. ## Step 5 โ€” Resume logic Re-scan live Jira Epic statuses โ€” never assume the previous state still holds. Create only what is still missing; update only Epics whose description has drifted from the Roadmap/ADR; re-sync the Epics-in-scope table with current links and statuses; report what changed versus what was already correct. ## Step 6 โ€” Advise ``` โœ… Done: - [N] Epics created in Jira: [keys] ยท [N] already existed and were reviewed - MVP/Iteration page Epics table updated with Jira links โš ๏ธ Still needed (human action required): - Assign owners to: [Epics without assignees] - Resolve scope boundary questions: [if any remain] - Validate dependency order with the Tech Lead ๐Ÿ‘‰ Next step โ€” Skill 7: agile_7_create_stories โ€” start with the Epic that has no blocking dependencies. Input: Jira Epic key + the Specs UI page for the relevant screens. ``` ## Principles - **Ask before writing** โ€” clarify vague names, blurry scope boundaries, and ownership first; all questions in one message, every assumption stated. - **Create in dependency order**, and never duplicate an existing Epic โ€” update it. - **Never delete an Epic** โ€” `Won't Do` / `Cancelled`, with a comment and user confirmation. - **Confluence and Jira stay in sync** โ€” every Epic links back on the MVP/Iteration page.