Daily — 2026-07-13 (14-task infra drain merged clean; 1 applied + 9 filed)
updated: 2026-09-03
What happened
- The 07-12 nightly's filing batch drained end-to-end, again. 14
kind: infratasks completed and merged tomaintoday (PRs #1041–#1054): the 12 route-2 filings #1286–#1297 plus #1299/#1300, which were filed mid-drain by the #1286 and #1297 sessions themselves. Landed: the fleet-wide pytest collection-break fix (#1286), the watcher boot-turn-refusal respawn lane (#1287 — closes the #1277 12.5h-stall shape), Step 10d squash-first merge routing for infra (#1288), Step 9c selector diff-base → fetchedorigin/main(#1289) + an AST import-map selection arm (#1299), kind-awareverify_planc8/c15 calibration (#1291), v2 lens-critic anchor-loss hardening (#1292), the upload-policy in-place-regeneration rule (#1294), the backend_poll sys.path bootstrap (#1296), and the Step 10d post-merge guard unpushed-mv pre-check (#1300). - Cleanest drain day yet: zero API refusals, zero 429s, zero autocompact deaths, zero hook blocks across all 15 session transcripts; the only gate FAIL round of the day was #1288's Step 9c round 1 (implementer verification-scope mismatch, fixed in round 2, ~30 min).
- Same-day bug→fix→live-validation loop: #1297 hit a repo-root sync conflict during Step 10d, discovered the post-merge stale-task-folder guard could delete origin's ONLY folder for a task when the status-mv is unpushed, filed #1300 — which merged ~90 min later and validated its own fix on first production contact at 12:08Z.
- Codex quota sentinel live all day (until 2026-08-06 per the #1126 seed) — every review round ran single-Claude via the #1204 pre-spawn check; handling was correct in all 15 sessions (no composer spawns, no fabricated verdicts).
- No experiments ran; no clean-results were promoted.
Applied workflow improvements
- Target:
.claude/rules/workflow-fix-on-bug.md— what: § Recursion guard now documents that awf_fix: falsedaily-fix:session (non-workflow-surface fix) is intentionally OUTSIDE the recursion guard — first-generation candidate filing allowed, dedup still title-prefix-covered, child body carries the guard line — commit:10daf50452Why: miner observation on session 7054f30e (#1286, an experiment-script fix session, auto-filed #1299): the daily skill documents thewf_fix: falsecarve-out but the rule's § Recursion guard didn't mirror it, reading as an inconsistency. Verified before applying:#1286body has noworkflow_fix_target:line (by design), child#1299body does (tasks/completed/1299/body.md:87). Applied edit:Verification: doc-only (lint gate);+ **A `daily-fix:` session for a NON-workflow-surface fix is intentionally + outside this guard.** A `/daily` route-2 item filed with `wf_fix: false` + (an experiment-code / non-workflow-surface fix) carries neither the + `wf-fix` tags nor the injected `workflow_fix_target:` Provenance block + (`.claude/skills/daily/SKILL.md` § route 2), so + `is_workflow_fix_session()` correctly stays false and its session MAY + auto-file a first-generation workflow-fix candidate it uncovers (worked + example: #1286, an experiment-script fix session, filed #1299 on + 2026-07-13). This is by design, not a gap: the dedup predicate still + covers such filings via the `daily-fix:` title prefix + (`task_workflow.WF_FIX_TITLE_PREFIXES`, #1180), and fan-out stays bounded + because the CHILD workflow-fix task's body DOES carry the + `workflow_fix_target:` line, putting the child session under the guard.workflow_lint.py --check-references+--check-asksPASS post-commit. - filed for review #1301: reconcile the three v2 Codex composer specs'
plan_bodybrief contract with the v2 skill's paths-only rule (Step C, parked candidate from #1292; session spawned). - filed for review #1302: pin the inline Alternative-Explanations capsule in
methodology-baselines-critic.mdtocritic-lens-reference.md(Step C, parked candidate from #1292; dispatch deferred to watcher backstop). - filed for review #1303: clean the 5 remaining
if hasattr(asw, name)stub loops intests/test_autonomous_session_watch.pyto fail-loud + grep lint pin (Step C, parked candidate from #1295; dispatch deferred). - filed for review #1304: guard
backend_poll.py:1384'sfrom failure_classifier importwith the sys.path bootstrap + widen the guard test +pod_config.pysiblings (Step C, parked candidate from #1296; dispatch deferred). - filed for review #1305: implementer pre-report verification runs the same Step 9c touched-scope test selection the gate runs (
.claude/agents/implementer.md+ Step 4b brief) — from #1288's only-FAIL-round-of-the-day (~30 min rework). - filed for review #1306:
verify_plan.pyc15 heuristic recognizes a namedpytest.raisesnegative control as fail-loud coverage (WARN false-positived on #1296's plan v1 AND v2). - filed for review #1307: bind
verified-at-filing:greps to the cited targets — per-target-file confirmation + mandatory relocation grep before asserting a symbol nonexistent (from the 07-12 nightly's two unbound-claim filings, #1290 + #1296). - filed for review #1308: planner rule — a detection/trigger-lane plan traces its predicate against the motivating incident's real artifact (from #1287's plan v1, which would not have recovered its own motivating incident; fact-checker caught it at ~26 min cost).
- filed for review #1309: document the HTML-escaped bg-notification recipe in the
/issueskill (read the agent's output file, never the notification body) — #1287 and #1288 each rediscovered it independently.
Other problems & notes
- 07-12 nightly filing quality — 2 of 12 bodies carried unbound claims (severity: cost one correction round each, both caught by the pipeline). #1290's body named
issue/SKILL.mdas target (0verify_planhits; real siteadversarial-planner/SKILL.md— clarifier redirected) and #1296's body asserted a cited test "no longer exists" without a relocation grep (fact-checker found it attests/test_issue_dispatch.py:1164). Both bodies HADverified-at-filing:lines — the greps just didn't bind per-target. Strengthening filed as #1307; tonight's 9 filings ran per-target greps. - #1295 post-merge guard false alarm (09:41Z): "DUPLICATE tasks/reviewing/1295 on origin/main" was really an unpushed local status-mv among 32 unpushed root commits; recovered in ~65s via
sync_repo_root.py. The exact class #1300 fixed later the same day (sync-before-classify pre-check, live-validated 12:08Z). No action. - #1297 repo-root content conflict during Step 10d (10:31Z, concurrent #1291 status-mv): recovered in ~2.5 min via the documented scratch-worktree path; the underlying guard gap became #1300. No action.
- #928 stuck at
followups_runningsince 2026-07-08 (5 days; its last own-lifecycle marker is 07-08, the newest event is an unrelated #1145 claim note). Suggested action: PM checks whether the follow-up round's session is dead and re-drives/issue 928or re-parks it atawaiting_promotion. Not auto-touched (status mutations are user/PM-only per skill rules). - Triage-observer INFO rows on #1289 (
breadcrumb-missing-line) and #1291 (none-with-candidates) — non-gating audit flags of the pre-dispatch triage duty; both sessions completed clean. No action beyond the observer's own sidecar record. - Disk headroom:
/at 84% (82G free),/mnt/eps-dataat 85% (80G free) — both at the guard thresholds; the disk-guard tier sweep ran this morning (reaped a 1.8 GB workspace HF cache; recent non-canonical caches correctly KEPT under the 48h recency window). Watch, no action tonight. - Title-sync drift sweep (Step D): title-sync drift unchanged (8 rows — see logs/daily/2026-07-12.md).
- retraction re-check: 4 marker-mined parked candidates scanned across 3 source tasks (#1292 ×2, #1295, #1296), 0 skipped — no retractions found; transcript-mined filings (#1305–#1309) confirmed against session tails + the current tree.
- Transcript coverage note: 17 files had genuine 07-13 content (15 issue sessions + the 07-12 nightly's own session, which was clean, + one short interactive dashboard Q&A, clean);
1cdf51e6was mtime-bumped with newest content from 07-03 and was skipped per the stale-transcript rule.
Living-docs drift
living_docs.py checkFAILs with 199 findings — drift hash078285c14444, identical to the open re-synthesis proposal (dead legacy anchors,relates_to⇄ evidence mismatches incl. #722/#763/#494–#501, ~54 unlinked completed clean-results, 7 stalespec-role-headerState-trailer rows).docs/open_questions.mdunchanged since 2026-07-07.- drift proposal already open (logged 2026-07-07, event-stream hash
078285c14444); not re-proposing. The standing proposal remains: re-synthesizeopen_questions.md(living-docs updater/backfill) — needs your ok; not auto-applied. - Parked-proposal re-consideration (Step B): the one un-reconciled living-docs rejection (#713) has had no context change (no promotions today,
open_questions.mduntouched), and nofollowup-parked-redundantmarkers exist on anyon_holdtask — nothing became a re-proposal candidate.
My thoughts
Highlighted results
- no results promoted today