Problem
The issue-first pick lane (oldest-first over open issues labeled selfbuild) is empty: every recent iteration logs [issue] no open selfbuild issue found — falling back to LLM selection and the LLM invents its own goals. Over the last ~40 iterations the queue produced almost exclusively loop-self-referential work:
Meanwhile real product work has no pickable issues, and two picked goals were closed without merging (#346, #347), which the loop cannot distinguish from shipped (its ledger row still reads productive).
Evidence (2026-09-13)
Requested change
- Operator action, not code: label 2–3 real product issues
selfbuild so the deterministic lane has work (this issue's first checklist item).
- Code guard: when the selfbuild label yields nothing, log the empty-lane state as a distinct ledger detail (e.g.
queue-empty: add selfbuild-labeled issues) instead of silently falling back, so an empty queue is visible in the TUI/ledger rather than read as LLM-driven progress.
- Optional: a weekly reminder (PRD footer stamp or issue comment from the loop itself) when N consecutive LLM-fallback goals landed, asking the operator to refill the queue.
This is the "long runtime, little value" half of the 2026-09-13 incident: even a perfectly healthy driver with an empty issue lane ships loop plumbing, because that is the only work it can find.
Problem
The issue-first pick lane (
oldest-first over open issues labeled selfbuild) is empty: every recent iteration logs[issue] no open selfbuild issue found — falling back to LLM selectionand the LLM invents its own goals. Over the last ~40 iterations the queue produced almost exclusively loop-self-referential work:internal/loopdriver. A g #343 goal-shape validation, Goal: Close the landing-evidence gap ininternal/loopdriver. First, recover th #344/Goal: Close the fallback-route landing-evidence gap in `internal/loopdriver/run. #345 landing-evidence gaps, Goal: Make the driver-side rescue reachable for CLOSED-but-unmerged PRs. The goa #348 rescue reachability, Diagnosis complete: loops 290/291 died on transient infra retries mid-implement #349/fix(ledger): release-created rows carry tag/sha again (regressed in #349) #351/docs(prd): note #349 revision-stamp caveat for linked-worktree builds (#352) #353 revision/ledger stamping, Goal: Make herdr orphan-pane reaping work ininternal/herdr, atomically. (1) T #350 herdr orphan reaping — i.e. the loop repairing the loop.Meanwhile real product work has no pickable issues, and two picked goals were closed without merging (#346, #347), which the loop cannot distinguish from shipped (its ledger row still reads productive).
Evidence (2026-09-13)
gh issue list --label selfbuild --state open→ 0 results; the only open issue (Linked-worktree builds mis-stamp vcs.revision: wrong release-row revision + false stale-binary WARN (self-update path unaffected) #352) is unlabeled.Requested change
selfbuildso the deterministic lane has work (this issue's first checklist item).queue-empty: add selfbuild-labeled issues) instead of silently falling back, so an empty queue is visible in the TUI/ledger rather than read as LLM-driven progress.This is the "long runtime, little value" half of the 2026-09-13 incident: even a perfectly healthy driver with an empty issue lane ships loop plumbing, because that is the only work it can find.