Progress witness: PR-aware per-attempt record and the K=3 park #402

Merged
toasterson merged 1 commit from claude/wi-019fa59b-progress-witness-pr-aware-per-attempt-re into main 2026-07-28 17:34:22 +00:00
Owner

Anima work item 019fa59b-6834-72a3-b552-8539e5b57846.

What to build

The no-progress detector, end to end: a witness value computed and recorded for every attempt on a Work Item, a comparison against the previous attempts, and a park when three consecutive attempts yield an unchanged witness. Demoable by driving a Work Item through three no-op turns and watching it park with the trail.

The witness is composed from the resulting revision, PR state, artifact id, and verdict — whichever apply to the phase.

Pushed context

  • ADR 0029 (docs/adr/0029-cannot-complete-safety-three-layers.md), layer 1.
  • The witness must be PR/revision-aware, not diff-aware. This is not a preference: the operator's own live monitor for this exact signal had to be reissued mid-session as "PR-aware progress" because a diff-only witness reported NO-DIFF TURN for Work Items that had in fact opened a PR. A diff-only witness generates false parks.
  • The incidents this must catch: tecton's denied edit sandbox (turn completes, no diff, re-dispatch forever, 84 of 193 sessions); the 2026-07-25 silent failure (38 hours); the merge-loop demotion trap (the same stale PR re-dispatched ~70× in 24 hours).
  • K = 3.
  • A park is terminal until a human acts — "parked means it's an issue" (ADR 0030). Nothing may auto-clear it.
  • This layer consumes the empty-vs-failed turn distinction; if that distinction is not yet available, do not fake it — depend on it.

Acceptance criteria

  • Three consecutive unchanged witnesses park the Work Item with the witness history in the trail
  • An attempt that opens a PR without changing the diff counts as progress and resets the counter
  • A long, legitimately multi-phase flow never trips the detector
  • The park is visible in the Attention feed and is not auto-cleared

Blocked by

  • None to start; the empty-vs-failed turn distinction (ADR 0025 Plan) is required before the detector is trustworthy in production.
Anima work item `019fa59b-6834-72a3-b552-8539e5b57846`. ## What to build The no-progress detector, end to end: a `witness` value computed and recorded for every attempt on a Work Item, a comparison against the previous attempts, and a park when **three consecutive attempts yield an unchanged witness**. Demoable by driving a Work Item through three no-op turns and watching it park with the trail. The witness is composed from the resulting **revision, PR state, artifact id, and verdict** — whichever apply to the phase. ## Pushed context - ADR 0029 (`docs/adr/0029-cannot-complete-safety-three-layers.md`), layer 1. - **The witness must be PR/revision-aware, not diff-aware.** This is not a preference: the operator's own live monitor for this exact signal had to be reissued mid-session as "PR-aware progress" because a diff-only witness reported `NO-DIFF TURN` for Work Items that had in fact opened a PR. A diff-only witness generates false parks. - The incidents this must catch: tecton's denied `edit` sandbox (turn completes, no diff, re-dispatch forever, 84 of 193 sessions); the 2026-07-25 silent failure (38 hours); the merge-loop demotion trap (the same stale PR re-dispatched ~70× in 24 hours). - **K = 3.** - A park is terminal until a human acts — "parked means it's an issue" (ADR 0030). Nothing may auto-clear it. - This layer *consumes* the empty-vs-failed turn distinction; if that distinction is not yet available, do not fake it — depend on it. ## Acceptance criteria - [ ] Three consecutive unchanged witnesses park the Work Item with the witness history in the trail - [ ] An attempt that opens a PR without changing the diff counts as **progress** and resets the counter - [ ] A long, legitimately multi-phase flow never trips the detector - [ ] The park is visible in the Attention feed and is not auto-cleared ## Blocked by - None to start; the empty-vs-failed turn distinction (ADR 0025 Plan) is required before the detector is trustworthy in production.
toasterson force-pushed claude/wi-019fa59b-progress-witness-pr-aware-per-attempt-re from be28324db2 to eb3de82137 2026-07-28 15:42:11 +00:00 Compare
toasterson changed title from WIP: Progress witness: PR-aware per-attempt record and the K=3 park to Progress witness: PR-aware per-attempt record and the K=3 park 2026-07-28 17:31:49 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/Anima!402
No description provided.