You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tom (2026-09-19): aim to always be at issue count zero for dotfiles, and "tool-and-protocol-distill from the exsititign claude runs and turn that into repetitive actins that even halogen can take care of at the atomic level overtime." Design memo (model output, review gate): /home/tom/today/review/2026-09-19/ISSUE-ZERO-DISTILLATION.md sections 4 and 5.
MEASURED on the July to September history: 306 of 890 commits touch one file, 386 stay inside one module, 126 touch only flake.nix or flake.lock. That third is the atomic layer a card can carry.
Hunk-class vocabulary, kept small: attr-set-value, attr-list-add, attr-list-remove, line-insert-after-anchor, line-replace-exact, file-add-from-template, table-row-add, pin-bump (the only class allowed to touch flake.lock).
protocols/templates/pr-body.md in the shape of PRs 389, 413 and 416: changes as bullets, a Validation section naming the checks built, Refs never Closes.
protocols/issue-classes.tsv: issue number, class (one-shot-done, automate-forever, human-area, live-campaign, keep), tier (fable, opus, cheap, halogen-atomic, hand). Local, not GitHub labels.
protocols/tools/extract-tool-sequence.py: the deterministic transcript reader (tool_use blocks in order, Bash commands, files edited) used by the distiller.
A flake check that every card parses, has at least one verify entry, names only files that exist, and never lists secrets.nix, modules/secrets.nix or secrets/ in may_touch.
Acceptance
nix flake check includes the protocols check and it is green on the three seed cards.
The kit file renders the card entries; claude:headless-style disabled entries are refused by name.
One card (adapter-allowed-values) has been run once by hand with Halogen on worker-gpu through the shell runner and the branch and receipt are named in a comment here (ruling 22).
Why
Tom (2026-09-19): aim to always be at issue count zero for dotfiles, and "tool-and-protocol-distill from the exsititign claude runs and turn that into repetitive actins that even halogen can take care of at the atomic level overtime." Design memo (model output, review gate): /home/tom/today/review/2026-09-19/ISSUE-ZERO-DISTILLATION.md sections 4 and 5.
MEASURED on the July to September history: 306 of 890 commits touch one file, 386 stay inside one module, 126 touch only flake.nix or flake.lock. That third is the atomic layer a card can carry.
Outcome
protocols/README.mddescribing the card schema: id, class, trigger, inputs, reads, greps, edits (hunk class, anchor, max_lines), may_touch, never_touch, verify (argv, expect_rc, expect_contains), pr (branch, commit_subject, body_template, closes false), budget (prompt_tokens_max, tokens_out, seconds, gpu), tier (origin, validated, current), provenance, history.protocols/attr-list-add/adapter-allowed-values.json(tally pi adapter: model override not authorized, so a pi job cannot be routed to Halogen or the Qwen plan #423),protocols/attr-list-add/catalogue-refresh.json(Qwen token plan catalogue is stale: endpoint serves 14 models including qwen3.8-flash, the local model's cloud sibling #428),protocols/attr-list-add/failure-surfacing-exclude.json(browser.internal: opening Chrome raises a false xdg-desktop-portal-gtk failure episode #396). Each with a verify argv that is a nix eval or a flake check already declared in flake.nix.protocols/templates/pr-body.mdin the shape of PRs 389, 413 and 416: changes as bullets, a Validation section naming the checks built, Refs never Closes.protocols/issue-classes.tsv: issue number, class (one-shot-done, automate-forever, human-area, live-campaign, keep), tier (fable, opus, cheap, halogen-atomic, hand). Local, not GitHub labels.protocols/tools/extract-tool-sequence.py: the deterministic transcript reader (tool_use blocks in order, Bash commands, files edited) used by the distiller.card:halogen-atomic(shell runner, cwd the campaign worktree root, env_allowlist HOME PATH LANG TERM, usage_source under the uplink usage directory) and, disabled until Ruling: may the kernel lease a Claude seat for unattended work, and through which row? (rows.md:41-55, tally-b.nix:57-63, D-B6) #362 is answered,card:sonnet-replayandcard:opus-origin.Acceptance
nix flake checkincludes the protocols check and it is green on the three seed cards.claude:headless-style disabled entries are refused by name.Refs #423, #428, #396, #362, #403, tally #61, tally #62.