TODO Execution Process
Turn the c92 todos workflow (Mark's per-page meeting notes → one plan per page → parallel narrow-context executors → record) into a repeatable process: a `/todos` skill that reads the notes straight from Logseq, a sheet grammar, a page registry, and the templates the c92 run used by hand
Why
c92's todos thread worked: a Logseq block of TODOs grouped by page became five plan files, four executed the same day by separate agents with no overlap, each verified against a baseline and recorded in two cycle records. The page turned out to be the natural unit of work at every step — heading in the notes, plan file, executor context, record line, screenshot. But it was driven by hand, and the hand-offs leaked: a pasted sheet lost the Nav block that would have prevented the harness-page inversion, fragments ("ONLY SHOW") read as instructions, a design note got a plan, images dangled into the Logseq graph, sheets were dated by paste day, each executor was briefed by Mark individually, and four plans ended uncommitted. Every one of those is a process gap, not a content problem. Full review: c92-todos-review.md.
Objective
- Sheet grammar — page ids (plural = listing, singular = detail, alias table), six section ids (Header · Meta · DM · Table: name · Surface · page-level), objects named as rendered, the canonical verb set, and three markers (
?question,LATERstate,@namevoice)..claude/skills/todos/reference/grammar.md. - Page registry — per page id: aliases, route, file, API, band helper, surface scope, twin record; seeded from c92's
todos-2026-09-23/README.mdshared ground..claude/skills/todos/reference/pages.md. /todosskill with four stages, each usable alone:ingest <date>(read the#[[QPT - Product]]block from the Logseqcorejournal, normalise headings to ids, copy assets — no sheet file is written; the README quotes the block verbatim with source path + mtime),plan(verify shared ground, writetodos-<journal-date>/README.mdwith index + run order + Decisions-with-defaults + Voices,00-sweepfor General,NN-<page-id>.mdper page in sheet order),brief <N>(the executor prompt: README, own plan, branch, stage only own paths, verify recipe, record-line format for both records, commit),record(confirm record lines in designCYCLE.mdand the qdash twin; list what's uncommitted).- Templates — README, per-page plan, executor brief, record line — lifted from
todos-2026-09-23/. - In-repo baselines — a shot program per page id on the capture system replacing
/tmp/c92/todos/shots.mjs. - First run — the 2026-09-24 journal (already in c92 as
todos-2026-09-24.md, unplanned) throughingest→plan; the plans it produces are the test of objectives 1–4. Execution of those plans is c92's work, not this cycle's. - Later, not this cycle: Logseq write-back (
DONE+ plan link via the HTTP API), voices hand-off to market-analyst via/extract.
Done looks like: /todos plan 2026-09-24 produces a README and per-page plans a fresh executor can run from without Mark re-briefing, and the review's §3 friction table has a built fix against every row except write-back.
Decisions (2026-09-25, in the review §Decisions): skill name /todos; sheet-order numbering with a run-order column; 00-sweep runs first; skill before hand-planning; grammar and registry live in the skill's reference; write-back later; no sheet file going forward — direct read from the journal, verbatim quote in the README.
Scope
- Design:
cycles/c94.todo-execution-process/(initial-prompt.md,c92-todos-review.md, this record); new.claude/skills/todos/(SKILL.md,reference/grammar.md,reference/pages.md,templates/);scripts/shot-programs/for page baselines. - Reads: Logseq
coregraph at~/Library/Mobile Documents/iCloud~com~logseq~logseq/Documents/core/(journals, assets) — read only. - Writes into other cycles:
cycles/c92.qcontrol-new-pages/todos-2026-09-24/on the first run. - Precedent, read not changed:
cycles/c92.qcontrol-new-pages/todos-2026-09-23/and its record lines;.claude/agents/cycle-manager.md(thread-prompt convention, concurrency rule);.claude/skills/document-cycle,capture(shot programs). - qdash is the target of the plans, not touched by this cycle.
Key Changes
- review (2026-09-25): c92's todos workflow reconstructed from its artifacts →
c92-todos-review.md: the seven-step path, what worked, an eleven-row friction table with the fix each implies, the grammar already in the notes, the shorthand proposal, Logseq findings (graph on disk, paste loss proven by diffing the journals, no connector, HTTP API off), the build list, eight questions — all answered the same day. - housekeeping (2026-09-25): c92's sheets renamed to their journal dates (
todos-2026-09-23.*,todos-2026-09-24.md), references repointed across design, memory, and qdash; recorded in c92. - skill built (2026-09-25):
.claude/skills/todos/—SKILL.md(four stages: ingest · plan · brief · record, plus the rules c92 taught),reference/grammar.md(shape, six section ids, objects-as-rendered, the verb set, the three markers, sweeps, a worked Endpoint example),reference/pages.md(28 qdash page ids with aliases, routes, files, APIs, band helpers, surface scopes, nav labels — verified againstfeat/new-pages; shared pieces every plan touches),templates/{README,plan,brief,record}.mdlifted fromtodos-2026-09-23/.scripts/shot-programs/todos-pages.json: one full shot per page id against:3030with seed ids;--outputs baselines beside the plans. - first run — ingest + plan (2026-09-25): the 2026-09-24 journal read straight from the Logseq graph (no sheet file; the block is quoted verbatim in the README, mtime recorded), 17 page headings resolved to ids (one alias problem: "Harness details" vs "Harness install details" resolved by the 2026-09-23 Nav ruling), the one image copied to
assets/, the Mark Peterson line routed to Voices, "versions?" to Decisions.cycles/c92.qcontrol-new-pages/todos-2026-09-24/README.mdwritten with verified shared ground (branch, 291 uncommitted paths, servers by pid,npm test344, seed ids per detail route); plans00-sweep+01–16written by seven parallel agents (grouped listing+detail; 145k–245k tokens each, 6–14 min), README index assembled with backend flags, four waves, shares, and 62plan.ndecisions with defaults; 18 baselines captured by the program (first pass wasted on a dead seed — the plan stage now checks the seed answers, not just the dev server). Lessons for the skill from this run: a stale "verified fact" in the README propagates to every agent (the logo claim) — shared ground must be re-verified, not copied from the previous README; agents write to a shared README only through the coordinator; plan-local decision numbers need theplan.nscheme from the start.
Outcome
(open)