diff --git a/.claude/agent-memory/validator/MEMORY.md b/.claude/agent-memory/validator/MEMORY.md index 4a49f4e..31c8d19 100644 --- a/.claude/agent-memory/validator/MEMORY.md +++ b/.claude/agent-memory/validator/MEMORY.md @@ -1 +1,2 @@ - [Self-hosting loop_round probe](project_self_hosting_loop_round_probe.md) — task 14fd9ab6 was a deliberate no-bug probe; verified PASS, no code change is the correct outcome +- [Zero-diff terminal state gap (2nd instance)](project_zero_diff_terminal_state_gap.md) — scheduler.py _BUSY_TIMEOUT_MS comment already present, PASS/no-change; same recurring pipeline gap as org_loop_route.py diff --git a/.claude/agent-memory/validator/project_zero_diff_terminal_state_gap.md b/.claude/agent-memory/validator/project_zero_diff_terminal_state_gap.md new file mode 100644 index 0000000..cc63e5f --- /dev/null +++ b/.claude/agent-memory/validator/project_zero_diff_terminal_state_gap.md @@ -0,0 +1,38 @@ +--- +name: project-zero-diff-terminal-state-gap +description: pipeline has no "already satisfied, zero-diff" terminal task state; this recurs across multiple comment-rationale tasks (org_loop_route.py _LOOP_LIMIT, scheduler.py _BUSY_TIMEOUT_MS) +metadata: + type: project +--- + +Confirmed a second instance of the same process gap already noted for `src/org_loop_route.py`'s +`_LOOP_LIMIT` comment (see the global auto-memory note "Loop-round comment already present", +6x recurrence as of 2026-08-03): a Benchmark asked to add a one-line rationale comment above +`src/scheduler.py`'s `_BUSY_TIMEOUT_MS = 30000` cross-referencing the module docstring's +"Threading model" section (lines 21-28). Verified 2026-08-03 that commit `5bb25db` had already +added exactly this line: + +``` +# Rationale: see module docstring's "Threading model" section (lines 21-28) above. +_BUSY_TIMEOUT_MS = 30000 +``` + +— correct line-range citation (21-28 is exactly the "Threading model" paragraph ending in +"database is locked"), `_FIX_LOOP_TIMEOUT` untouched, `py_compile` clean, only `src/scheduler.py` +touched in that commit, +1 line net. `git status` showed zero uncommitted diff for the file at +verification time. Verdict: PASS, no changes made. + +**Why:** Same root cause as [[project-self-hosting-loop-round-probe]] and the org_loop_route.py +recurrence — the Org Graph task lifecycle (`p_org_task_lifecycle`, 04-P) has no terminal state for +"investigated and confirmed already satisfied, zero-diff," distinct from `done` (implies a fresh +Coder diff was validated) or `blocked_pending_human` (implies an unresolved failure). Tasks of this +shape (idempotent rationale-comment additions) keep getting re-dispatched to Coder/Validator instead +of closing once satisfied. + +**How to apply:** When a task benchmark explicitly includes a "Scenario 2 (boundary): already +present → zero-diff" case, treat that as a strong signal this is a repeat/probe task, not a fresh +defect. Verify by reading the file and `git log -p` for the relevant commit rather than assuming +work is still needed — a correct PASS-with-no-changes is the right outcome, not a sign of an +incomplete job. If asked to design or fix the lifecycle gap itself, cite this and the +org_loop_route.py recurrence together as evidence (now 2+ distinct comment-rationale sites) that a +"verified, zero-diff" terminal state is needed generally, not just for one constant.