Summary
A stale-engineer investigation of standing research goal continuously-research-and-improve-your-own-cogn-70ab8541 surfaced a higher-order re-orientation livelock: the post-#4453 agentic per-goal reasoner correctly runs once per cycle and correctly chooses spawn (because there is no live PR/branch/worker), but the spawn never produces a durable artifact. Across ~6 hours (OODA cycles 2477–2484, 09:04–12:05 on 2026-07-23) every per-goal decision logs 0 PRs / wip_ref_count=0 / 0 effect jobs, is followed ~4 min later by a research_idle_fault (no-novel-action-produced), and ships zero PRs/branches. The single-cycle idle exemption (#4399/#2589) and the imperative-vs-reasoner split (#4453) are working exactly as designed — the goal never blocks, never gets reaped, refs are preserved — but the outer loop makes no shippable progress.
This is a non-blocking self-improvement signal, not a death signal. The engineer is alive (see verdict below); this issue tracks the wasted-work pattern only.
Evidence
Durable archive (survives worktree cleanup):
/home/azureuser/.simard/reaped-engineers/rysweet_Simard_continuously-research-and-improve-your-own-cogn-70ab8541-1784808433/
Repeating cadence from journal.txt (pid 3159928, post-#4453 binary):
09:04:02 per-goal: spawn (0 PRs, 0 wip refs, 0 effect jobs; standing_idle_signal true)
09:35:00 WARN no-progress breaker: research goal idled — FAULT signal recorded (counter reset, goal stays active, never blocked); re-orient is owned by the agentic per-goal reasoner
... (cycles 2478, 2479, 2480, 2481, 2482, 2483) ...
12:00:45 per-goal: spawn (No live PR/branch and wip_ref_count=0; standing research goal is idle)
12:05:35 WARN no-progress breaker: research goal idled — FAULT signal recorded ...
Every spawn → research_idle_fault pair produces no wip_ref, no PR, no effect job. The reasoner keeps deciding to "start the next concrete piece" but nothing concrete ever lands.
Why this is a defect (root cause hypothesis)
The spawn action is chosen from durable inputs (open_pr_refs, wip_refs, worker_present) but there is no feedback edge that detects "I have chosen spawn N cycles in a row for this goal and none of them created a wip_ref / PR / effect job." The imperative rail was deliberately demoted to a pure signal by #4453 (correct), but nothing at the reasoner layer treats a repeated non-productive spawn as itself a stall to re-strategize. The result is a re-orientation livelock one level above the single-cycle idle the #4399/#4453 fixes already handle.
Proposed direction (not applied here)
- Give
drive_per_goal_cycle a bounded per-goal counter of consecutive spawn/idle-fault cycles that produced zero durable artifact, and when it trips, steer the reasoner toward a different PerGoalAction (e.g. investigate why spawns aren't landing, or reorient to a genuinely novel direction) instead of another identical spawn.
- Ensure a spawned engineer that fails to open any wip_ref within a cycle window is surfaced as a signal, not silently retried.
Scope / related (already tracked — do NOT duplicate)
Investigation verdict (for context)
verdict = still-alive (false positive). Parent Simard OODA process (pid 3159928) was actively re-orienting the goal at cycle 2484 12:05:35, ~1.5 min before the manifest archive at unix ts 1784808433. idle_age_secs=11061 measures worker-file staleness, not process death. No reap, no worktree removal, no claim release.
Summary
A stale-engineer investigation of standing research goal
continuously-research-and-improve-your-own-cogn-70ab8541surfaced a higher-order re-orientation livelock: the post-#4453 agentic per-goal reasoner correctly runs once per cycle and correctly choosesspawn(because there is no live PR/branch/worker), but the spawn never produces a durable artifact. Across ~6 hours (OODA cycles 2477–2484, 09:04–12:05 on 2026-07-23) every per-goal decision logs0 PRs / wip_ref_count=0 / 0 effect jobs, is followed ~4 min later by aresearch_idle_fault (no-novel-action-produced), and ships zero PRs/branches. The single-cycle idle exemption (#4399/#2589) and the imperative-vs-reasoner split (#4453) are working exactly as designed — the goal never blocks, never gets reaped, refs are preserved — but the outer loop makes no shippable progress.This is a non-blocking self-improvement signal, not a death signal. The engineer is alive (see verdict below); this issue tracks the wasted-work pattern only.
Evidence
Durable archive (survives worktree cleanup):
/home/azureuser/.simard/reaped-engineers/rysweet_Simard_continuously-research-and-improve-your-own-cogn-70ab8541-1784808433/Repeating cadence from
journal.txt(pid 3159928, post-#4453 binary):Every
spawn→research_idle_faultpair produces nowip_ref, no PR, no effect job. The reasoner keeps deciding to "start the next concrete piece" but nothing concrete ever lands.Why this is a defect (root cause hypothesis)
The
spawnaction is chosen from durable inputs (open_pr_refs,wip_refs,worker_present) but there is no feedback edge that detects "I have chosenspawnN cycles in a row for this goal and none of them created a wip_ref / PR / effect job." The imperative rail was deliberately demoted to a pure signal by #4453 (correct), but nothing at the reasoner layer treats a repeated non-productive spawn as itself a stall to re-strategize. The result is a re-orientation livelock one level above the single-cycle idle the #4399/#4453 fixes already handle.Proposed direction (not applied here)
drive_per_goal_cyclea bounded per-goal counter of consecutivespawn/idle-fault cycles that produced zero durable artifact, and when it trips, steer the reasoner toward a differentPerGoalAction(e.g.investigatewhy spawns aren't landing, orreorientto a genuinely novel direction) instead of another identicalspawn.Scope / related (already tracked — do NOT duplicate)
Investigation verdict (for context)
verdict = still-alive(false positive). Parent Simard OODA process (pid 3159928) was actively re-orienting the goal at cycle 2484 12:05:35, ~1.5 min before the manifest archive at unix ts 1784808433.idle_age_secs=11061measures worker-file staleness, not process death. No reap, no worktree removal, no claim release.