Project not found.
Convention: Validation Checkpoints
Convention: Validation Checkpoints
Three verification loops that prevent "marked done but not actually done." Each loop runs at a different cadence and catches different drift.
Loop 1: Per-Ticket Validation
When: Before moving any board item from
validation to done.Who: Ava (or the validation agent via
/validate-ticket).| Check | How | Fail Action |
|---|---|---|
| CI green | Verify pipeline status on the merged PR's commit | Follow <code>sop-ci-pipeline-recovery</code> |
| QA approved | PR has QA approval comment or review | Spawn QA agent |
| Acceptance criteria met | Every checkbox in the Forgejo issue is checked | Reopen or create follow-up issue |
| <code>/update-docs</code> run | Post-merge doc chain walk completed | Run <code>/update-docs</code> |
| Forgejo issue closed | PR body contains <code>Closes #N</code> — verify issue state is closed | Close manually |
Loop 2: Per-Session Validation
When: Before ending a session (or at natural breakpoints in long sessions).
Who: Ava.
| Check | How | Fail Action |
|---|---|---|
| Board state matches reality | Items in "In Progress" column should have active work. Items in "Done" should be verified complete. | Move misplaced items |
| Inbox triaged | No items sitting in backlog without a triage decision or TODO reference | Create TODOs or defer explicitly |
| Worktrees cleaned | <code>git worktree list</code> shows no stale worktrees from completed PRs | Remove stale worktrees |
| Memory updated | Key decisions, lessons, and state changes saved to memory | Write memory entries |
| Agent work accounted for | All spawned agents have completed. PRs reviewed. No orphan branches. | Check agent status, close orphans |
Loop 3: Periodic Audit
When: Every session start (lightweight) + on-demand deep audit.
Who: Dottie (spawned by Ava at session start).
Lightweight (Session Start)
| Check | How | Fail Action |
|---|---|---|
| Open TODOs aging | <code>list_notes(tags="todo,open")</code> — flag any older than 7 days | Escalate stale TODOs to Ava |
| Open bugs aging | <code>list_notes(tags="bug,open")</code> — flag any older than 3 days | Escalate stale bugs to Ava |
| Convention compliance spot-check | Pick 2-3 recent notes, verify they follow templates | Fix inline or create TODO |
Deep Audit (On-Demand)
| Check | How | Fail Action |
|---|---|---|
| Full note inventory | All notes have correct note_type, tags, project, parent_slug | Bulk fix |
| DORA snapshot | Measure deployment frequency, lead time, change failure rate, MTTR | Report findings |
| SOP coverage | Every known failure mode has a recovery SOP | Create missing SOPs |
| Convention drift | Agent definitions match current conventions | Update agent notes |
| Stale issue cleanup | Forgejo issues open with no recent activity | Close or re-prioritize |
The Principle
Verified beats reported. "CI is green" means you checked the pipeline status, not that you assume it passed. "QA approved" means you see the approval comment, not that you sent it to QA. Trust but verify — and verify with the actual system state, not your memory of it.
Related
convention-agent-autonomy-levels— what agents can do at each levelconvention-escalation-triggers— when to stop and askagent-workflow— the operating modelsop-post-merge-docs— the /update-docs chain walk