Session log: idle-draft pipeline tooling build

Claude-Session: https://claude.ai/code/session_01YQDoWNM7XPPii28khFWoMc
This commit is contained in:
Paul O'Reilly
2026-08-02 22:32:34 +12:00
parent ca8b538d34
commit 18b25191a3

View File

@@ -0,0 +1,38 @@
# Session Log -- 2026-08-02
## Summary
Built the idle-draft writing-pipeline tooling (driven from the writing/oreillyconsulting
session; full narrative log lives there): extended `agent-subscriptions`, ported
`score-paragraphs` from GOES, and created `idle-draft` — a cron dispatcher spending idle
subscription capacity. Six commits, all implementation by Sonnet subagents, every test
suite re-run by the orchestrator before commit.
## Decisions
- Decision: `elapsed_pct` is null when a window lacks a reset timestamp (MiniMax v1
fallback); consumers fail closed -- Rationale: never assume pacing data that isn't there.
- Decision: idle-draft replicates claude-profile's provider.env parsing instead of
shelling out to claude-profile -- Rationale: claude-profile has interactive pickers and
WezTerm theming; a headless cron dispatcher needs neither.
- Decision: per-(work type × provider) model/effort config, precedence entry >
work-type > profile -- Rationale: owner wants MiniMax at elevated effort to offset
capability gap.
## Gotchas Discovered
- **[idle-draft]** Symptom: valid citations like `SPEC.md:1-80` rejected as dead paths --
Fix: strip trailing `:\d+(-\d+)?` before existence check (pilot #1 catch).
- **[score-paragraphs]** Symptom: hash-skip branch structurally unreachable; scored
paragraphs never re-examined, `--force` ineffective (bug in goes original too) -- Fix:
documented as known limitation in spec; port-not-rewrite mandate.
- **[claude-cli]** Symptom: needed the valid `--effort` set -- Fix: pass a bogus value
with `-p ""`; the CLI errors locally listing low, medium, high, xhigh, max (no API call).
- **[idle-draft]** Symptom: killed dispatcher orphans claude children; deterministic
`.tmp` names collide with the next instance -- Fix: start_new_session + SIGTERM/atexit
process-group kill; per-invocation `.tmp.<pid>` names; startup sweep of stale tmp files.
## Key Context
- New scripts: `idle-draft` (185 test assertions), `score-paragraphs` (57); extended
`agent-subscriptions` (33). All spec-first, all offline-testable, symlinked to ~/sbin.
- Deployment config/state live in `~/dev/claude/writing/oreillyconsulting/` (see that
repo's CONTEXT.md for pipeline operations).
- Pre-existing uncommitted work in this repo (auto-draft, bg-model-call,
wait-for-version, README.md) deliberately untouched — commits were pathspec-limited.