# Example — Multi-day sprint ## User input ``` /agent-goal-skill drain the auth-rewrite backlog. 11 PRDs. push to dev branch. no main. ``` ## Shaped output ```` ``` /goal # Goal Drive all 11 PRDs in the auth-rewrite backlog from todo → done, with atomic commits per PRD on a feature branch, no pushes to main. # Context - Backlog source of truth: - 11 PRDs identified — each has acceptance criteria in its body - Working branch: feat/auth-rewrite (create off main if not present) - Sprint state tracking: {repo}/.sprint-state.json (per-PRD progress) - Each PRD must pass the project's pipeline gates before commit - Token budget across all 11: ~7M total (≈650K per PRD on average) # Constraints - One PRD per commit. Never merge two PRDs in one commit. - NEVER push to main. NEVER force-push. Only push to feat/auth-rewrite. - Skip PRDs tagged blocked, needs-design, manual-review — surface those in the final report - Pipeline gates mandatory per PRD: lint, typecheck, tests, gap analysis. Never SKIP_PIPELINE_CHECK. - If a PRD is missing acceptance criteria, mark it blocked and move on — do NOT invent criteria - Final handoff: write {repo}/.claude/handoff-{YYYY-MM-DD}.md with per-PRD status + commit SHAs # Done when 1. `kanban list --status "todo OR doing"` returns 0 unblocked actionable PRDs 2. Every done PRD has a commit SHA in its body 3. `git log --oneline feat/auth-rewrite ^main` shows ≤ 11 atomic commits (one per shipped PRD) 4. Final handoff written to {repo}/handoff-YYYY-MM-DD.md with per-PRD status table # On block FAIL FAST. If a PRD lacks acceptance criteria, mark blocked with reason, move to next. FAIL FAST only on infrastructure breaks (pipeline gate scripts missing, test runner broken, etc). Append all open questions to a pending-questions file. Token budget: 7M ``` **Sandbox:** `workspace-write` **Reasoning effort:** `xhigh` **Caveats:** Backlog source TODO is required — confirm path before dispatching, otherwise the agent has no work queue to drain. ```` ## What the shaper did - Sized token budget to sprint scope (7M across 11 PRDs) - Set reasoning to `xhigh` because of multi-hour autonomy - Anti-criteria explicit: NEVER push to main, NEVER force-push, NEVER SKIP_PIPELINE_CHECK - Per-PRD atomicity rule (one commit per PRD) - Defined what to do with broken PRDs (mark blocked, move on) without breaking the loop - Required structured handoff at the end so the next session can pick up cleanly