daily-fix: harden the /daily miner brief (JSONL traps, probe
Highlight text on any card (body, plan, or an event) to anchor a comment, or leave a whole-task comment here. Mention @claude to summon a reply.
No comments yet.
Overview / Motivation
Auto-filed by the /daily 2026-07-26 problem sweep (route 2). Surfaced by 1 independent miner group(s) over the 2026-07-26 session transcripts.
Goal
Give the /daily problem sweep a durable miner-brief composition recipe carrying the three
JSONL-reading traps miners keep hitting, and require every miner suggested fix to state
whether its named mechanism was probed or inferred.
Workflow gap
- Bug observed: miners spawned by the /daily problem sweep hit three JSONL-reading traps
the brief does not warn about — transcript rows with no
messagekey (KeyError: 'message'), multi-file JSONL loops exceeding the default 2-minute Bash timeout, andgitcalls made after acdinto~/.claude/projects/...(not a git repo, exit 128) — and minersuggested fixlines name root-cause mechanisms the miner inferred rather than probed, three of which were refuted at filing-compose time. - Why it is a workflow gap:
.claude/skills/daily/SKILL.mdhas no miner-brief composition section at all, so the brief is re-improvised from scratch each run and every lesson learned in one night's fan-out is lost by the next. - Confidence (emitter): high
- verified-at-filing: absence greps against the named target —
grep -niE 'miner|CHEAPLY|fan.out' .claude/skills/daily/SKILL.md→ 1 hit (L770), and it is not a recipe — the word "miners" appears once, in the headless-mode paragraph ("file's content depends on (transcript miners, a driver whose filed#ids …");grep -niE "get\('message'|KeyError|timeout ≥|not a git repo" .claude/skills/daily/SKILL.md→ 0 hits for all three gotchas;grep -niE 'probed|inferred|ran the probe' .claude/skills/daily/SKILL.md→ 0 hits. For contrast the equivalent duties DO exist one layer downstream — the filer'sverified-at-filingmandate and the unverified-premise labeling convention are both in the same file (L485), which is why the refuted premises were caught at compose time rather than after filing. Landed-fix check:git log --oneline --since='7 days ago' -- .claude/skills/daily/SKILL.md→ 6 commits, none adding a miner-brief recipe. (2026-07-26)
Context binding — one target detail corrected. The mined report proposes the change in
.claude/skills/daily/SKILL.md "§ Problem sweep, miner-brief composition". The § Problem
sweep section exists (L194); the "miner-brief composition" sub-section does not. The change
therefore CREATES that sub-section under § Problem sweep. The "How to read the transcripts —
CHEAPLY" recipe the miners actually ran against lives only in the per-run ad-hoc brief
(logs/daily/mining-2026-07-26/BRIEF.md L25-33) — which is exactly the durability gap: that
file is regenerated nightly and inherits nothing.
Evidence
- Session
c0a2df1b, subagentminer-interactive-B(agent-a69ace10621b8fd5c), within 06:30–06:50Z: 3 of that miner's 27tool_resultfiring events were errors, all from gaps the recipe does not cover —"Exit code 143\nCommand timed out after 2m 0s"on afor f in <6 session ids>loop over multi-MB JSONLs;"Traceback (most recent call last): File \"<string>\", line 7, in <module> KeyError: 'message'"(rows of typequeue-operation,attachmentandlast-promptcarry nomessagekey);"Exit code 128"from agit log -- <paths>run with cwd inside~/.claude/projects/.... Measured cost: 3 retries, roughly 2.5 min. The other 5 miners in the same fan-out had 0 errors, so this is guidance drift rather than a systemic failure. - Session
c0a2df1b, 2026-07-26T06:36:06Z and 06:44:10Z: three route-2 filings drafted from miner reports were refuted by the filer's own probes before filing — (a) "the--map-filesmap applies no workflow_lint surcharge", refuted by runningrecommended_timeout_s(2580 s; the real cause is that the surcharge key is an EXACT path while the map holds 25 sibling files); (b) "code-reviewer PASSed with 7 open BLOCKERs", refuted —code-reviewer.mdrule 11 prescribes exactly that shape; (c) "RunPod bootstrap hard-setsBRANCH=main", refuted — threading exists andmainis the fallback, so the real defect is an emptyrepo_branchupstream. Evidence:"C4's premise is mis-diagnosed — the surcharge isn't missing, its key just doesn't match. Verifying C1 and C5, then composing corrected bodies."and"One filing's premise just failed verification — code-reviewer.md rule 11 *designs* PASS-with-persisted-BLOCKER. Dropping that half." - Measured cost: roughly 10 min of re-verification and body rewrites, and one filing half dropped. Nothing wrong shipped — the filer's discipline held — but each refutation was a round the miner→filing handoff could have avoided by marking the diagnosis as inferred.
Proposed change
.claude/skills/daily/SKILL.md§ Problem sweep — add a miner-brief composition sub-section that is the durable source for the per-run brief, carrying the transcript-reading recipe currently re-improvised each night plus these three lines:- rows without a
messagekey exist (queue-operation,attachment,last-prompt) — use.get('message', {}), neverrow['message']; - any multi-file JSONL loop passes an explicit Bash
timeout≥ 300000 ms (the default 2-min cap kills a 6-transcript loop mid-pass, exit 143); - run every
gitcall from the repo root — the transcript dirs under~/.claude/projects/...are not a git repo (exit 128).
- rows without a
- Same sub-section — extend the miner output schema with a probed-vs-inferred field on
suggested fix: when the fix names a mechanism (a missing surcharge, a hard-set variable, a rule violation), the miner statesprobed: <the exact command it ran>orinferred — not probed. A miner is not obliged to probe; it is obliged to say which it did, so the filer knows which premises need a verification round. - Keep the existing evidence-counting discipline (L214-243) as-is and reference it from the new sub-section rather than restating it.
Scope / surfaces
- Primary target:
.claude/skills/daily/SKILL.md - none
Constraints / invariants
- Workflow-surface only — never experiment code,
configs/, ortasks/. uv run python scripts/workflow_lint.pypasses (no-flags); ruff clean on touched files.- This session runs under a
workflow_fix_target:Provenance line — it MUST NOT auto-route its own subagents' workflow-fix candidates (recursion guard).
Provenance
-
fingerprint: 4800548f9ba8
-
workflow_fix_target: .claude/skills/daily/SKILL.md
-
fingerprint: PENDING
/daily 2026-07-26 route-2 filing. Miner refs: C-P5, C-P6.