/daily held-items route to PM-tracked tasks + PM digest line (stop the rot, add independent review)
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
Filed from /daily 2026-06-27 held backlog: the /daily nightly retrospective routes held items to a gitignored log + one Telegram line where Thomas never looks, so held judgment-call and can't-verify items rot, and self-applied fixes get no independent review.
Goal
Every /daily held item becomes a tracked task the PM surfaces + re-surfaces in the session Thomas actually uses; and the self-applied bucket stops being the only un-reviewed path.
Problem (from /daily 2026-06-27)
The /daily nightly retrospective (cron 23:27 PT) runs reliably and already routes too-big fixes through /issue --auto (e.g. #699), BUT its output lands where Thomas does not look — a gitignored logs/daily/<date>.md marked visible:false + one my-goat Telegram digest line. Consequences: (a) HELD judgment-call + can't-verify items rot (06-27 alone held 6 judgment + 3 can't-verify); (b) the self-applied fixes get no independent review ("grades its own homework").
Proposed change
Replace /daily's apply-vs-hold BINARY with a THREE-ROUTE classifier in .claude/skills/daily/SKILL.md:
- Trivial mechanical (doc edits, string replaces, lint annotations — no behavior change) → self-apply + commit, as today (cheap, lint-gated, one git-revert away).
- ANY behavior/logic change, including high-blast-radius REVERSIBLE fixes → file kind:infra via file_infra_task.py → /issue --auto (independent planner / adversarial critic ensemble / Claude+Codex code-review / test-verdict). Kills "grades its own homework" AND "only fixes small stuff": big reversible fixes stop being held and flow through review. (/daily already does this for the very biggest, e.g. #699 — make it the RULE for all behavior changes, not an ad-hoc judgment call.)
- Genuine judgment call ONLY (the carve-out: destructive/irreversible, spends-money, external side-effects, result-interpretation, architectural/public-contract) → file a TRACKED proposed task tagged
daily-held needs-human. No longer a dead-end log/Telegram line.
PM integration (load-bearing) in .claude/agents/research-pm.md:
- the
needs-humantag must make the PM STATUS pass SURFACE the task to Thomas and RE-SURFACE per the ADHD-aware rule, WITHOUT auto-dispatching it (the PM's standing infra-auto-dispatch rule MUST skipneeds-humantasks — else a judgment-call task gets auto-run, defeating the purpose). - the PM STATUS readout gains a one-line digest: "/daily last night: applied N, filed M (→/issue), held J (needs you)".
Scope / target files
.claude/skills/daily/SKILL.md.claude/agents/research-pm.md- possibly
.claude/skills/pm/SKILL.md - possibly
.claude/workflow.yaml(register the daily-held / needs-human tag semantics)
Constraints
- Workflow-surface only.
- Lint gate green (
workflow_lint.py --check-asks+--check-references). - Don't break the existing nightly sweep or the working big-fix→/issue path.
- Add a test pinning that PM auto-dispatch SKIPS needs-human tasks (that invariant is the whole point).
Provenance
- workflow_fix_target: .claude/skills/daily/SKILL.md, .claude/agents/research-pm.md
- fingerprint: daily-held-pm-route