- sprint-approval.md: approval is now a hard block, not a warning - sprint-start.md: added --force flag documentation - orchestrator.md: approval verification is now a hard stop - docs: updated commands cheatsheet BREAKING: /sprint-start now requires approval or --force flag Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
name, description
| name | description |
|---|---|
| sprint-approval | Approval gate logic for sprint execution |
Sprint Approval
Purpose
Defines the approval workflow that gates sprint execution.
When to Use
- Planner agent: After creating issues, request approval
- Orchestrator agent: Before execution, verify approval exists
- Commands:
/sprint-plan,/sprint-start
Core Principle
Planning DOES NOT equal execution permission.
Sprint approval is a mandatory checkpoint between planning and execution.
Requesting Approval (Planner)
After creating issues, present approval request:
Sprint 17 Planning Complete
===========================
Created Issues:
- #45: [Sprint 17] feat: JWT token generation
- #46: [Sprint 17] feat: Login endpoint
- #47: [Sprint 17] test: Auth tests
Execution Scope:
- Branches: feat/45-*, feat/46-*, feat/47-*
- Files: auth/*, api/routes/auth.py, tests/test_auth*
- Dependencies: PyJWT, python-jose
⚠️ APPROVAL REQUIRED
Do you approve this sprint for execution?
This grants permission for agents to:
- Create and modify files in the listed scope
- Create branches with the listed prefixes
- Install listed dependencies
Type "approve sprint 17" to authorize execution.
Recording Approval
On user approval, update milestone description:
## Sprint Approval
**Approved:** 2026-01-28 14:30
**Approver:** User
**Scope:**
- Branches: feat/45-*, feat/46-*, feat/47-*
- Files: auth/*, api/routes/auth.py, tests/test_auth*
- Dependencies: PyJWT, python-jose
Verifying Approval (Orchestrator)
Before execution, check milestone for approval:
get_milestone(repo="org/repo", milestone_id=17)
# Check description for "## Sprint Approval" section
If Approval Missing
🔴 SPRINT APPROVAL NOT FOUND — BLOCKED
Sprint 17 milestone does not contain an approval record.
Execution cannot proceed without approval.
Required: Run /sprint-plan first to:
1. Review the sprint scope
2. Get explicit approval for execution
To override (emergency only): /sprint-start --force
This bypasses the approval gate and logs a warning to the milestone.
If Approval Found
✓ Sprint Approval Verified
Approved: 2026-01-28 14:30
Scope:
Branches: feat/45-*, feat/46-*, feat/47-*
Files: auth/*, api/routes/auth.py, tests/test_auth*
Proceeding with execution within approved scope...
Scope Enforcement
When approval exists, agents SHOULD operate within approved scope:
Approved scope:
Branches: feat/45-*, feat/46-*
Files: auth/*, tests/test_auth*
Task #48 wants to create: feat/48-api-docs
→ NOT in approved scope!
→ STOP and ask user to approve expanded scope
Operations outside scope should trigger re-approval via /sprint-plan.
Re-Approval Scenarios
Request re-approval when:
- New tasks discovered during execution
- Scope expansion needed (new files, new branches)
- Dependencies change significantly
- Timeline changes require scope adjustment
Force Override
The --force flag bypasses the approval gate for emergency situations.
When --force is used:
- Log a warning comment on the milestone: "⚠️ Sprint started without approval via --force on [date]"
- Proceed with execution
- The sprint close will flag this as an audit concern
Do NOT use --force as standard practice. If you find yourself using it regularly, the planning workflow needs adjustment.