Engineering team size + composition (FE, BE, ML, mobile)
Risk profile (greenfield vs production-impacting)
Feature-flag and rollout posture
Clarify First
Before generating the repo plan, confirm these inputs. If any is unknown or vague, ASK — do not assume:
[ ] The PRD or spec — the user-facing capabilities to decompose (drives the epic→ticket tree)
[ ] Target ship window — one sprint, month, or quarter (drives ticket sizing and PR sequencing)
[ ] Team composition — FE, BE, ML, mobile (decides parallel paths and vertical-slice tickets)
[ ] Feature-flag and rollout posture — flagged/dark-launch vs direct ship (drives PR sequencing and definition-of-done)
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
Workflows
Workflow 1 — Decompose a PRD into tickets
Pull the PRD; identify the user-facing capabilities.
Run prd_to_tickets_decomposer.py with the user stories + technical
notes to surface a candidate ticket tree (epic → tickets → subtasks)
| XS | < 0.5 day | Trivial; usually skip ticketing |
| S | 0.5–1 day | One simple change |
| M | 1–3 days | Single feature, well-scoped |
| L | 3–5 days | Multi-day work; should split if possible |
| XL | > 5 days | Always split — too big for confident estimate |
A ticket that's L or XL almost always hides a missing decomposition. Push
back on yourself.
The ticket tree
Epic — large product feature ("Notifications v2")
├── Story — user-facing capability ("As a user I can mute by channel")
│ ├── Ticket — one engineering work item (backend, frontend, infra)
│ │ └── Subtask — atomic step (optional)
Most orgs:
Epic ≈ PRD-sized scope
Story ≈ one user-facing slice
Ticket ≈ one PR (or pair of PRs: BE + FE)
The "vertical slice"
Best ticket: ships a small user-visible improvement end-to-end.
Backend change + frontend change + tests + telemetry + docs in one ship
Better than: BE-only ticket waiting for FE-only ticket waiting for QA
When you can't slice vertically (e.g., backend is weeks before frontend):
Use feature flags to ship behind a switch
Dark-launch backend to validate before frontend
Communicate the lag explicitly
PR sequencing
For a multi-PR feature:
PR 1 — Infrastructure / scaffolding (no behavior change)