Development cycle validation gate (Gate 5) - validates all acceptance criteria are met and requires explicit user approval before completion.
Runs after: ring:codereview
Complementary: ring:dev-cycle, ring:codereview
Validates acceptance criteria and requires explicit user approval.
Self-approval PROHIBITED. If you implemented the code, you CANNOT approve it. Wait for user or different reviewer.
| Who | Can Approve? |
|---|---|
| User (original requester) | ✅ YES |
| Different agent/human | ✅ YES |
| Same agent that implemented | ❌ NO — self-approval prohibited |
Map each acceptance criterion to evidence (tests, PRs, manual verification):
## Validation Results
| AC # | Criterion | Evidence | Status | Severity |
|------|-----------|----------|--------|----------|
| AC-1 | {criterion} | {tests pass / file:line / manual} | MET / NOT MET / PARTIAL | - / HIGH / MEDIUM / LOW |
Severity calibration:
## Gate 5: Validation
### Summary
- Task: {unit_id}
- ACs: {N}/{total} met
- Recommendation: APPROVED / REJECTED
### Validation Table
{validation_table from Step 1}
### Issues (if any)
| Severity | AC # | Description | Recommendation |
|----------|------|-------------|----------------|
### Decision Required
Reply with one of:
- APPROVED — proceed to completion
- REJECTED — return to Gate 0 with comments
- FIX {AC#} then APPROVED — fix specific items first
Explicit approval keywords: APPROVED, YES, GO AHEAD, SHIP IT, PROCEED, LOOKS GOOD.
Explicit rejection keywords: REJECTED, REWORK, FIX, NEEDS CHANGES.
Ambiguous responses (👍, "ok", "sure") → Ask for clarification:
"To confirm: are you APPROVING this for completion, or requesting changes?"
APPROVED:
REJECTED:
## Validation Summary
- unit_id / ACs met: X/Y / recommendation / decision
## Acceptance Criteria Status
{validation table}
## Decision
APPROVED by {approver} at {timestamp}
OR
REJECTED: {feedback} → returning to Gate 0