The record kept by the daily improvement review (IMPROVEMENT.md): the numbers, the friction, and every change with its prediction. Newest rows at the bottom of each table. Times are UTC.
The Routine’s prompt (re-create it with this if the dev-ops coordinator’s session is replaced): Daily improvement review: follow claude/IMPROVEMENT.md in edsaperia/dev-ops (read it from main): check predictions due, write today’s numbers, read the friction since the last review, act on at most two improvements, and report on Ed’s questions page.
| Day (24 h to) | Project | Merged | Open → merged, median / worst | Merge-main commits | Deploy wait on main | Reds on main | Ed’s answers, median / over 90 min | Asked of Ed (q / u / t) | Mis-shaped | Overdue | Bugs Ed found |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-10-02 17:15 (baseline) | draft | 10 | 4.7 h / 8.7 h | ~12 | 21 min (1 sample, #166) | 0 | 11 min / 8 (to 16:00) | 15 / 25 / 7 (all projects, to 16:00) | 3 (no status) | 1 | not yet counted |
| 2026-10-03 06:57 | draft | 26 | 5.6 h / 15.8 h (10 small PRs: 5.6 h); split: open → asked 4.3 h, asked → answered 0.17 h, answered → merged 0.07 h (medians, 23 PRs with a Merge question) | 41 | 40 s median, 21 min max, 9 of 23 over 2 min (3 superseded runs left out) | 0 (9 superseded cancels) | 7 min / 10 | 61 / 32 / 7 | 0 | 2 | not counted |
| 2026-10-03 06:57 | topic | 16 | 0.3 h / 50 h (#358; #191, a July docs PR, left out) | 0 | — | 0 | 6 min / 2 | 39 / 17 / 0 | 0 | 0 | 1 (the digest claim) |
| 2026-10-03 06:57 | admit | unknown: nwspk/web is not reachable from dev-ops | unknown | unknown | — | unknown | 4 min / 0 | 13 / 9 / 2 | 0 | 0 | 0 |
| 2026-10-03 06:57 | ae | 6 | 0 h (merged on opening) | 0 | — | 0 | 4 min / 0 | 4 / 4 / 2 | 0 | 0 | 0 |
| 2026-10-03 06:57 | dev-ops | 30 | 0 h / 0.3 h | 0 | — | 0 | 3 min / 1 | 10 / 11 / 9 | 0 | 0 | 0 |
| 2026-10-04 06:57 | draft | 14 | 5.1 h / 11.1 h (4 small PRs: 3.2 h); split of the 3 slowest: idle ~80% (overnight Merge questions 3–4 h before Ed woke; builder questions unseen ~2.9 h; a green PR 3.5 h before its Merge question), CI ~1.3 h, building ~0.7 h, catch-up ~0.3 h | 7 (+3 under another wording); catch-up lag 8.6 min median, 1 of 7 over 30 min | 0.07 min median, 22 min max, 3 of 15 over 2 min, none after #218 merged at 08:57 | 6: Sprint walks (sprint-doors) red on 5 merges in a row 07:56–16:05, CI red once 17:09 (9 superseded cancels) | 4 min / 1 | 20 / 17 / 6 | 0 | 0 | not counted |
| 2026-10-04 06:57 | topic | 6 | 0.4 h / 4.8 h | 1 | — | 0 | 13 min / 0 | 6 / 1 / 2 | 0 | 0 | 0 |
| 2026-10-04 06:57 | witch | 18 (git history only; the API is not reachable from dev-ops) | first commit → merge 0.8 h / 5.7 h | 8 | — | unknown | 6 min / 1 | 16 / 28 / 3 | 0 | 1 (art pass) | 0 |
| 2026-10-04 06:57 | ae | 8 | 0 h / 4.6 h | 0 | — | 0 | 5 min / 0 | 6 / 4 / 2 | 0 | 0 | 0 |
| 2026-10-04 06:57 | admit | 0 (nwspk/web: no push to master; nwspk/admit: none) | — | 0 | — | 0 | — | 0 / 0 / 0 | 0 | 0 | 0 |
| 2026-10-04 06:57 | dev-ops | 10 | 0 h / 0 h | 0 | — | 0 | 12 min / 0 | 5 / 1 / 2 | 0 | 0 | 0 |
| 2026-10-05 06:57 | draft | 0 (Sunday; no runs on main) | — | 0 | no runs | 0 | 892 min / 1 (#224’s live report, answered Sunday 11:32) | 0 / 0 / 0 | 0 | 0 | 0 |
| 2026-10-05 06:57 | witch | 20 (git history; the API refuses dev-ops) | first commit → merge 1.8 h / 22.2 h (#6, the reused prototype branch; next 7.6 h) | 26 (11 on #6) | not measurable | not measurable | 189 min / 7 (5 overnight FINAL cards 9–11 h; by day 11 min–3.2 h) | 0 / 13 / 0 (4 withdrawn) | 0 | 2 (art pass, prototype; both builders finished) | 0 |
| 2026-10-05 06:57 | dev-ops | 1 | 0 h | 0 | — | 0 | none answered (the 10-04 review update still open) | 0 / 1 / 0 | 0 | 0 | 0 |
| 2026-10-05 06:57 | topic, ae, admit, mergetournament | 0 | — | 0 | — | 0 | — | 0 / 0 / 0 | 0 | 0 | 0 |
| 2026-10-06 06:57 | draft | 0 (no runs on main; #226 open, its two CI runs ended failure with jobs cancelled, not red) | — | 0 | — | 0 | 193 min / 1 | 2 / 1 / 0 | — | 1 (996 revealed votes, waiting on Ed’s Merge #226) | 0 |
| 2026-10-06 06:57 | witch | 4 prototype → main (5.9 h / 10.2 h) and 130 feature PRs into prototype (1.35 h median, small 0.84 h, worst 7.8 h); git history only | see Merged | 148 merge prototype commits on 84 of 130 PRs, plus 32 branch-to-branch merges | not measurable | not measurable | 17 min / 4 | 8 / 5 / 0 (none after Ed’s 16:25 ruling) | — | 0 | 0 |
| 2026-10-06 06:57 | topic | 1 (#387, 53 h, waited on the repo owner) | 53 h | 0 | — | 0 on main; production deploy (manual) failed 14:42 | 1184 min / 2 | 1 / 1 / 0 | — | 0 | 0 |
| 2026-10-06 06:57 | dev-ops | 5 | 0 h | 0 | — | 0 | 473 min / 3 | 1 / 2 / 0 | — | 0 | 0 |
| 2026-10-06 06:57 | admit, ae, mergetournament | 0 | — | 0 | — | 0 | — | 0 / 0 / 0 | — | 0 | 0 |
| 2026-10-07 06:57 | draft | 1 (#226) | 12.0 h | 0 | — | 0 (4 runs, all green) | 844 min / 3 | 2 / 1 / 0 | — | 0 | 0 |
| 2026-10-07 06:57 | witch | 4 into main (10.0 h / 14.0 h, release bundles) and 214 into prototype (0.91 h median, small 0.60 h, worst 7.0 h); git history only | see Merged | 333 merge prototype commits on 157 of 214 branches (73%) | not measurable | not measurable | — (off the page since 10-05 16:25) | 0 / 0 / 0 | — | 0 | 0 |
| 2026-10-07 06:57 | admit | nwspk/web not reachable | — | — | — | — | — | 3 / 1 / 0 | — | 0 | 0 |
| 2026-10-07 06:57 | dev-ops | 3 | 0 h | 0 | — | 0 | 42 min / 0 | 0 / 1 / 0 | — | 0 | 0 |
| 2026-10-07 06:57 | topic, ae, mergetournament | 0 | — | 0 | — | 0 | — | 0 / 0 / 0 | — | 0 | 0 |
| 2026-10-08 06:57 | witch | 2 into main (11.7 h / 23.0 h, release bundles) and 81 into prototype (0.89 h median, small 0.58 h, worst 21.4 h); git history only | see Merged | 101 merge prototype commits on 58 of 81 branches (72%) | not measurable | not measurable | — (off the page) | 0 / 0 / 0 | — | 0 | 0 |
| 2026-10-08 06:57 | dev-ops | 1 | 0 h | 0 | — | 0 | none answered | 0 / 1 / 0 | — | 0 | 0 |
| 2026-10-08 06:57 | draft, topic, ae, admit, mergetournament | 0 (no runs on main) | — | 0 | — | 0 | none answered (Ed’s last answer 10-06 22:17) | draft 0 / 1 / 0, topic 1 / 0 / 0 | — | 0 | 0 |
| 2026-10-09 06:57 | witch | 96 merges (git history; not broken down) | — | — | not measurable | not measurable | — (off the page) | 0 / 0 / 0 | — | 0 | 0 |
| 2026-10-09 06:57 | all others | 0 (draft, Topic, ae checked by API; dev-ops 1 log PR on 10-08) | — | 0 | — | 0 | none answered (Ed’s last answer 10-06 22:17) | dev-ops 0 / 1 / 0 | — | 0 | 0 |
| 2026-10-10 06:57 | all | Witch 15 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered (Ed’s last answer 10-06 22:17) | 0 / 0 / 0 (dev-ops’s card updated in place) | — | 0 | 0 |
| 2026-10-11 06:57 | all | Witch 33 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered (Ed’s last answer 10-06 22:17) | 0 / 0 / 0 (card updated in place, C18) | — | 0 | 0 |
| 2026-10-12 06:57 | all | Witch 143 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | 1 answered (dev-ops review card, 10-11 18:24, after 2.5 days) | draft 1 / 0 / 0 | — | 0 | 0 |
| 2026-10-13 06:57 | all | Witch 251 merges (git, merges only per C19); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered | 0 / 0 / 0 (card updated in place, C18) | — | 0 | 0 |
| 2026-10-14 06:57 | all | Witch 283 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered | 0 / 0 / 0 (card updated in place, C18) | — | 0 | 0 |
| 2026-10-15 06:57 | all | Witch 23 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered | admit 1 / 1 / 0 (refreshed after the weekly confirmation: backups re-asked, server question settled); card updated in place | — | 0 | 0 |
| 2026-10-16 06:57 | all | Witch 18 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered | 0 / 0 / 0 (card updated in place) | — | 0 | 0 |
| 2026-10-17 06:57 | all | Witch 3 merges (git); draft, Topic, ae 0 (API); nothing red | — | — | — | 0 | none answered | 0 / 0 / 0 (card updated in place) | — | 0 | 0 |
| 2026-10-18 06:57 | all | 0 everywhere, Witch included (git); nothing red | — | — | — | 0 | none answered | 0 / 0 / 0 (card updated in place) | — | 0 | 0 |
| 2026-10-19 06:57 | all | Witch 12 merges (590 in the week, git); draft, Topic, ae 0 (API) all week; nothing red | — | — | — | 0 | none answered all week | 0 / 0 / 0 (card updated in place) | — | 0 | 0 |
| Date | What happened | Cost | Cause | Led to |
|---|---|---|---|---|
| 2026-10-01 | Draft items of kind final and decision the page couldn’t show | Ed couldn’t answer them until repaired | No check on writes | C2 |
| 2026-10-02 | Three draft items with no status, invisible on the page | Ed saw no merges to do while the coordinator waited on him | No check on writes | Page v13, C2 |
| 2026-10-02 | 51 draft answers never stamped handled | Wakes re-read old answers | Rule not followed | Poke; C2 reminds hourly |
| 2026-10-02 | Merge tasks sent Ed to GitHub, where he was signed out | Two merges hidden from him | Ed did the merging | C1 |
| 2026-10-02 | The page guard didn’t load in cloud sessions | One probe round; Ed set an environment variable | Cloud workspaces are untrusted | env var (SETUP step 6) |
| 2026-10-02 | A subagent ran on Sonnet against the Opus rule | Rule broken; probe repeated | Model not passed explicitly | Pass model: "opus" every time |
| 2026-10-02 | Dev-ops lost its watch on draft #175 in a restart | Merge waited for an overdue in-flight item and Ed’s nudge | Subscriptions die with the session | C4 |
| 2026-10-02 | PRs merged one at a time; each merge put the rest into conflict | ~12 re-runs of ~40 min; small PRs waited 3–5 h | Queue order kept by habit; every PR edits the same ledgers | C3 |
| 2026-10-02 | #160’s Merge question waited 1h45 on Ed | The line stood still behind it | One question at a time | C3 |
| 2026-10-02 | Main’s deploy job waited 21 min for a machine | Every merge waits behind branch test runs | Account’s limit on jobs at once; nothing puts the deploy first | C6, then C7 |
| 2026-10-02 | Three auto-mode safety refusals in dev-ops (a trigger delete, a hash read, a force-push) | Ed had to type a go-ahead once; two reroutes | Classifier caution on outward actions | Watch: if it repeats, find the pattern |
| 2026-10-02 | Good: #163’s new check caught the rail triangle hanging under the dev switch | 1h40 to fix before deploy, not after | Draft’s one-check-per-fix rule | Keep the rule |
| 2026-10-02 | Draft (sent): four new builder PRs (#170 #171 #172 #174) unseen ~1.5 h | Review started late | Coordinator not subscribed to new PRs | Draft now subscribes on open and lists PRs at each wake |
| 2026-10-02 | Draft (sent): #174 turned CLAUDE.md’s line endings CRLF→LF, breaking a gotcha’s literal CR | One extra fix round | Builder rewrote the file in text mode | Candidate: a line-ending check in spec-check, so the push catches it |
| 2026-10-02 | Draft (sent): the coordinator can’t read docs.vote/healthz or edit .claude/settings.json (auto-mode refusals) | Deploys verified only by CI’s own step | Classifier treats production and self-editing as risky | A page task owed by draft for Ed’s one-line approval |
| 2026-10-02 | Draft (sent): builder Charlie reported Ed’s Q5 as open 80 min after it was answered and relayed | 80 min | Builder missed the COORDINATOR comment | C5 should cover it |
| 2026-10-02 | Draft (sent), good: the builder measured the real cause of #163’s toc-travel red after the coordinator misdiagnosed it | Wrong fix avoided | Builder pushback with measurements | Keep: builders may dispute a diagnosis with numbers |
| 2026-10-02 | Draft (sent), good: copy-check’s walk caught four 📧 text moves needing a golden re-freeze before merge | Caught before deploy | Sprint tier | Keep |
| 2026-10-02 | Draft (sent): Ed judges UI from screenshots, so some issues show only after deploy | Fix rounds after deploy | No way to try a PR before it deploys | Candidate: a preview deploy per PR, linked from each Merge question |
| 2026-10-02 | A task’s “Claude Code environments” link opened a blank tab (Ed) | A detour for Ed | The link pointed at claude.ai/code, not the settings page; it was never tried | Settings tasks give exact steps, not untried links |
| 2026-10-02 | Admit (sent): its coordinator’s GitHub tool reaches only nwspk/admit, so it can’t read the rules from dev-ops as CONVENTIONS says | A workaround found by the coordinator | A session’s GitHub scope is its own repository’s owner | CONVENTIONS names the public clone as the fallback |
| 2026-10-02 | Dev-ops told Ed that Claude couldn’t push to Topic, trusting the attach tool’s “push refused”; a real push and PR then worked | A wrong task on Ed’s page, then a correction | Took a tool’s prediction as a measurement | Test with a harmless real action before reporting a block |
| 2026-10-02 | Dev-ops wrote page times rounded ahead of the clock (18:46, 18:47 at 18:44); the page guard refused the second | One refused write, one item 2 min early | Guessed the time instead of reading it | The guard works; read date -u before every stamp |
| 2026-10-02 | Topic’s repository has no Claude app, so GitHub events wake no session there | Topic’s PRs must be checked by hand | Repository on another person’s account | Issue #363 asks the owner |
| 2026-10-02 | Admit (sent): a “read and sign off the spec” task got Done 25 s after posting, with no note | One extra question to find out what Done meant | A judgement step posted as a task | C8 |
| 2026-10-02 | Topic (sent): a subagent builder started with worktree isolation had every command refused in the cloud session | One wasted builder start, ~1 min | Isolation context lost in cloud sessions | CONVENTIONS, “Briefing a builder”: make the worktree by hand |
| 2026-10-02 | Topic (sent): the page guard refused a page write with an asked time from memory, in the future |
One refused write | Second coordinator today to guess the time (dev-ops was the first) | The guard catches it; a repeat on a third coordinator makes it a rule to read the clock |
| 2026-10-02 | Topic (sent): every project’s answers wake every watching coordinator (4 wakes in Topic’s first 5 min; dozens for dev-ops today) | A turn per wake per coordinator, now 4 coordinators | One watch covers the whole page | Register item; the review weighs it now that 4 coordinators pay it |
| 2026-10-02 | Admit (sent): a builder subscribed to its PR never woke for the coordinator’s review comments (nwspk/web#53) | 22 min idle until a nudge | All agents post as Ed’s account, so a COORDINATOR: comment looks like the builder’s own echo | CONVENTIONS: the nudge after every COORDINATOR: comment stays; C5 refined |
| 2026-10-02 | ae: the Claude app reaches it; PR events arrived at once (subscription and merge) | — | — | — |
| 2026-10-02 | ae (sent): the watch-armed check in QUESTIONS-PAGE.md names wording a cloud session never shows | A check that can’t pass as written | Cloud sessions word the watch listing differently | QUESTIONS-PAGE names both wordings |
| 2026-10-03 | The page offered Ed a nudge for the Topic coordinator while two of its questions waited on him (Ed) | Ed asked what to do with nudges to coordinators that have nothing to do | Quiet counted only in-flight work, not items waiting on Ed; no way to park an idle project but mergetournament’s improvised one | Page v15: waiting on Ed is not quiet; parking is a rule |
| 2026-10-03 | Ed could see only one waiting item at a time (Ed) | Nine items behind Later; no overview | One-at-a-time design from 2026-09-26 | Page v15 lists them all |
| 2026-10-03 | Dev-ops wrote [01:19] and [01:24] in chat at 01:17 real time, guessed instead of read | Two wrong times shown to Ed | Third time-guess in two days (after dev-ops on 10-02 and Topic) | Read date -u before every timestamp in chat too, as AGENTS.md already says |
| 2026-10-03 | Dev-ops again wrote [01:31] and [01:35] in chat, before 01:30 real time, minutes after logging the first slip | Two more wrong times shown to Ed | A logged rule did not change the habit; status lines are written with no tool call before them | Candidate for the review: a status time only from a date call in the same turn, or no time at all |
| 2026-10-03 | Topic (sent): a question to Ed called the email digest all-or-nothing, one dropdown, taken from a July journal entry; August’s #254 had restored per-kind switches. Ed caught it with a production screenshot | One wrong question withdrawn and re-posted; Ed had to check | Stated how the product behaves now from a history record, not the code or live page | Candidate: before a coordinator tells Ed how the product behaves now, it checks the current code or the live page, never a journal alone |
| 2026-10-03 | Topic (sent): the page nudged Ed about Topic (last active 5 h ago) while it worked through his answers; the mod had stopped stamping lastActive after a container restart at ~20:20Z. Second time (dev-ops’s own stamp stopped at 15:23 the same way) | A false nudge to Ed | The mod learned its project only from a write to coordinators/ |
C9 |
| 2026-10-03 | Dev-ops put C9’s row in the Friction table, not Changes, by inserting after the first text matching | C8 | (a Friction row ends with it) |
Found and moved at the next review | Placement by text match in a file where tags repeat across tables | Insert by table row, not by first match |
| 2026-10-03 | ae (sent): about 60 wakes since 20:00Z from other projects’ comments, 7 for ae; parked coordinators pay too | A turn per wake per coordinator, now 5 watching | One watch covers the whole page (the register item, second report) | The wake already carries the thread id, so a coordinator can drop another project’s wake from that alone without reading the page; the turn itself stays until the platform filters by thread |
| 2026-10-03 | Dev-ops asked Ed two questions (who merges rule changes; the Opus name) only in chat, and repeated them there for five hours before Ed asked whether they were on q | Two questions Ed couldn’t see on his page | The page-first rule (AGENTS.md) not followed for questions arising in a chat answer | Posted to the page at 08:22; a question raised in chat goes on the page in the same turn |
| 2026-10-03 | Dev-ops offered Ed “pin helpers to Opus 5.5 by full name” (in chat, then on the page) without checking it was possible; the helper-agent setting takes only sonnet / opus / haiku / fable. Withdrawn within a minute | One impossible option shown to Ed | Proposed from memory, not from the tool’s own definition | Check a proposal against the tool before putting it to Ed (as with Topic’s push) |
| 2026-10-03 | Witch (sent): SETUP.md C assumed a coordinator can create a new repository; the safety check refused gh repo create, and after Ed cleared it GitHub’s proxy refused too (sessions are bound to their configured repositories). Ed created it himself |
Three page items instead of one | Setup written for existing repositories only | C12 |
| 2026-10-03 | Witch (sent): the safety check refused the coordinator’s merge of a setup-only PR in a repository where nothing deploys ([Merge Without Review]), though CONVENTIONS makes it the coordinator’s own; it went to Ed as a Merge question | One extra question for Ed | Classifier caution on merges; second classifier refusal against a rule Ed made (after dev-ops’s on 10-02) | Watch: if it repeats, ask Ed whether to add a standing permission |
| 2026-10-03 | Dev-ops left its own in-flight item “Dev-ops is waiting” (from 10-01, page v12) open after its work moved on; it went overdue at 09:00 and Ed tapped its nudge | One nudge from Ed for nothing | In-flight items not re-read when new work starts | Closed at 09:24; the daily review’s step 2 now also lists the reviewer’s own open in-flight items |
| 2026-10-04 | Draft: Sprint’s walks (sprint-doors) job red on main on 5 merges in a row (07:56–16:05 on 10-03), green again at 17:09 with no fix merged between | Red main for 8 h; cause unknown | Unknown: flaky walk or an environment fault | Sent to the draft coordinator; a red that clears by itself is still a red |
| 2026-10-05 | Witch: every finished PR waits for Ed’s OK on its finished card before the coordinator reviews it (CONVENTIONS, A builder that finishes says so on the page too); 11 such waits in the window, 11 min–3.2 h by day and 9–11 h overnight; two (PR #41 since 10-04 17:06, PR #64 since 00:12) still waiting | Review starts only when Ed taps; the probable cause of draft’s 3.5 h gap on #216 too (C13) | The page OK is the only thing that wakes a coordinator when a builder finishes | C15 |
| 2026-10-05 | Witch: two in-flight items overdue (art pass since 10-03 21:00, prototype since 10-04 09:00) though both builders had finished | Two false overdue signals on Ed’s page | Same cause: the coordinator had not been woken to review and close them | C15 |
| 2026-10-05 | Witch: 26 merge-main commits across 20 merged PRs (11 on #6, the reused prototype branch) | Re-runs; the same pattern C3 met in draft | Unknown: shared files edited by every PR, or a long-lived branch | Sent to the Witch coordinator |
| 2026-10-05 | Draft coordinator has not answered the 10-04 questions (#216 and #214 gaps, the Sprint red) after 24 h; idle since 10-04 11:32 | C13’s cause still unnamed | A Sunday; the poke is a chat message, not a page item | Re-ask at the 10-06 check |
| 2026-10-05 | Dev-ops wrote [07:13] in chat and 07:15 in the log at 07:02 real time, guessed ahead of the clock (fourth time) | One wrong time shown to Ed; two log cells corrected | Wrote the stamp while composing, with no date call in that turn |
Rule kept: no time is written without a date -u in the same turn; candidate for C16 if it recurs |
| 2026-10-05 | Ed asked whether page items were stale. Witch’s two overdue in-flight items were still open 8 h after dev-ops’s morning poke, Topic’s keys item went overdue at 09:00, and six items had waited on Ed 40–68 h with no check that they were still current (admit 2, ae 2, Topic 2) | Ed had to ask; four coordinators poked at 14:54 | A chat poke is easy to drop, and nothing checks whether an old item is still current | Candidate: the daily review lists open items over 24 h old and asks their owners to confirm or withdraw them |
| 2026-10-06 | Draft (answered): #216 and #214 waited 3.5 h and 4.8 h because the coordinator missed the builders’ FINAL and re-merge reports, waiting on events instead of reading the PRs; sprint-doors was red on 5 merges because #209 changed phone taps and demo-join’s walk drove the old way (fixed by #222; product never broken), and the sprint tier was not checked after merges until 15:15 | Two coordinator waits of 3.5–4.8 h; red main 8 h | Waiting on events that never come (same-account echo) | Draft reads every builder PR and main’s sprint result after each merge since 10-03 15:15; C15 removes the wait on events |
| 2026-10-06 | Witch: 148 merge prototype commits across 84 of 130 feature PRs in one day, plus 32 branch-to-branch merges | Re-runs on most PRs (cost unmeasurable: the API refuses dev-ops) | A long-lived integration branch every PR merges into; second day running | Asked of Witch 10-05; Ed now works with Witch directly, so it goes in his Witch session’s hands, not the page |
| 2026-10-06 | Admit and ae: four items wait on Ed 65–84 h (admit: phase 1 go-ahead, admissions@ mailbox; ae: visa steps A2, A3); both coordinators confirm all four are still current | Work held for Ed for 3 days | Ed’s choice of priorities; nothing reminded him | The review now lists items over 2 days old (C16) |
| 2026-10-06 | Dev-ops wrote C16’s time as 07:10 at 07:01, though date ran in the same command; caught before merge |
None reached Ed | The stamp was typed into the script text, not taken from the clock’s output (fifth slip) | Stamps in scripts come from the clock in the script itself (datetime.now), never typed |
| 2026-10-06 | Admit (sent): @sirodoht replied on nwspk/web#52 at 10-05 13:19 (the blocker in inflight/admit-sirodoht-advice); admit saw it at 10-06 07:44, ~18 h later | ~18 h on a blocker Ed was waiting on | Issue comments wake no session (PR subscriptions cover PRs only); every wake in between was another project’s page comment, dropped on its thread id alone | Candidate for the 10-07 review: a coordinator waiting on an issue reply re-reads that issue on every wake, its own or not; or it waits through a draft PR, whose comments do wake it |
| 2026-10-07 | Draft: #226 merged at 07:44:00 while its third CI attempt (started 07:43:37) was still running; attempts 1 and 2 had ended failure with every job cancelled, so it merged with no green on its head. Main’s CI went green on the merge commit | A deploy without the PR’s own green; no harm this time | Unknown: likely read the cancelled-only failures as noise and merged on the re-run’s start | Sent to the draft coordinator |
| 2026-10-07 | Witch: 333 merge prototype commits on 157 of 214 feature branches in a day (73%), up from 64% the day before | Re-runs on most branches | A long-lived integration branch every PR merges into; Ed handles Witch in its own session | Mentioned to Ed in the review; not pressed |
| 2026-10-08 | Draft (answered): #226 merged before green on purpose: attempts 1 and 2 failed only because GitHub found no runners, and every gate had been run locally on main with #226 merged in. Draft now waits for a green run on the head even then, unless Ed says otherwise for that PR | One merge without the head’s own green; none since | Runner shortage read as noise | Draft’s own rule, tightened 10-07 |
| 2026-10-19 | Weekly look-back: Ed answered nothing on the page from 10-12 to 10-19 (one OK on 10-11); every project but Witch stood still, 12 items waiting (oldest 16.5 days). No method step misfired; quiet reviews cost one turn each (C18). Considered and not done: pausing the daily review while Ed is away; its cost is already small, and a missed red would cost more | A week of waiting, not of waste | Ed away | Nothing to change; keep listing the waits |
| # | Change | Made | Prediction | Check on | Result |
|---|---|---|---|---|---|
| C1 | Merge is a question on the page; the coordinator merges (dev-ops PR #23) | 2026-10-02 13:00 | No merge tasks to Ed; merged within 10 min of his Merge | 2026-10-04 | 2026-10-04: holds, with exceptions. Draft: 11 of 14 merged within 10 min of Ed’s Merge (#200 42 min, #224 32 min, #214 4.8 h after Merge). One merge task reached Ed (Witch #1, after the safety check refused the coordinator’s merge) |
| C2 | The page guard: writes to the page checked before they run (dev-ops; draft PR #175) | 2026-10-02 13:23 / 15:37 | No mis-shaped items on the page; no answer unstamped over an hour | 2026-10-04 | 2026-10-04: holds. No mis-shaped item in the window; no answer unstamped over an hour |
| C3 | Faster merges: every ready PR asked at once, docs-only merges by the coordinator, ledgers written on main, no re-run for being behind by docs (dev-ops PR #26) | 2026-10-02 16:27 | Draft’s small PRs merged within 2 h of opening (median); at most 3 merge-main commits a day; docs PRs merged without a question | 2026-10-03, again 2026-10-05 | 2026-10-05: missed on time again, re-runs falling. Small PRs 3.2 h median on 10-04 (5.6 h on 10-03); merge-main commits 41 → 7 (target 3); docs held. No draft merges on 10-05 to add. Kept: the hours are idle time before the Merge question (C10), which C13 and C15 address; no further check of its own. First sign: #166 merged without a question at 16:34. 2026-10-03: missed on time (small PRs 5.6 h median) and on re-runs (41 merge-main commits); held on docs (#166, #181, #183 merged without a question; #167, #187, #188 were asked because they change the design prototype’s code). Why: the part C3 changed now takes about 15 min (Ed answers in 10, the merge follows in 4); the 4.3 h comes before the question is asked. Kept; C10 finds where those hours go |
| C4 | A restarted coordinator re-subscribes to its PRs (dev-ops PR #26) | 2026-10-02 16:27 | No overdue in-flight item caused by a missed PR event | 2026-10-09 | 2026-10-09: holds. The week’s overdue items had other causes (Witch’s unreviewed builders, fixed by C15; Topic waiting on a person). None traced to a missed PR event |
| C5 | Builders watch their own PRs; the coordinator is the backstop (dev-ops PR #27) | 2026-10-02 17:07 | A PR put into conflict by a merge is pushed up to date within 30 min, unprompted | 2026-10-04 | First sign, 2026-10-02: review comments don’t wake a subscribed builder (same-account echo); the nudge rule restored for COORDINATOR: comments 2026-10-04: holds on time, not on ‘unprompted’. Catch-up merges came 8.6 min (median) after main moved, 1 of 7 over 30 min; most followed a coordinator’s ‘main has moved’ comment |
| C6 | Watching main’s deploy wait for an hour; a proposal if it recurs | 2026-10-02 17:00 | (measurement) | 2026-10-02 18:00 | Recurred: 2 of 9 merges waited (#166 21 min, #170 4 min), the rest 3–4 s; 19 jobs per merge, stale PR runs uncancelled. Led to C7 |
| C7 | The deploy never queues behind PR checks: stale PR runs cancelled, one slow suite per branch, deploy job first on main (CONVENTIONS) | 2026-10-02 18:14 (rule); draft’s workflows by its Merge question | No deploy job on main waits over 2 min for a machine; PR verdicts at most ~5 min slower | 2026-10-05 | Early sign 2026-10-03: 9 of 23 deploy jobs on main still waited over 2 min (up to 21 min), several after draft’s workflow change (#185, 18:54) Second sign 2026-10-04: after #218 (newer push retires older checks) merged at 08:57, every deploy wait was 0.07 min or less 2026-10-05: holds. Since #218 no deploy job on main waited over 2 min (15 runs on 10-03 to 10-04; no runs on Sunday). Kept |
| C8 | A step that needs Ed’s judgement is a question with named outcomes, never a task (QUESTIONS-PAGE.md) | 2026-10-02 18:56 | No judgement step is posted as a task, and no Done needs a follow-up question to read | 2026-10-09 | 2026-10-09: holds. Tasks posted since 10-02 (admit mailbox, ae visa A2 and A3, Topic’s push test) were all actions, not judgements; no Done needed a follow-up |
| C9 | The page guard finds its coordinator’s project from the session’s own link on the page after a restart (dev-ops PR #47) | 2026-10-03 01:35 | No coordinator that is working shows last active over 2 h old; no nudge to Ed about a working coordinator | 2026-10-06 | 2026-10-06: holds. No false nudge reported since 10-03; every working coordinator’s last active moved within the last day (draft, ae, Witch, Topic, admit, dev-ops); mergetournament is parked |
| C10 | Measure where a draft PR’s hours go before its Merge question: the daily numbers split open → merged into open → asked, asked → answered, answered → merged, and the next review traces the three slowest PRs’ timelines (pushes, reviews, CI runs, merge-main commits) | 2026-10-03 07:03 | One stage holds over half of open → asked, which names the next change | 2026-10-04 | 2026-10-04: holds. Idle is ~80% of the 3 slowest PRs’ open time. Causes: Merge questions asked 03:26–04:39 waited for Ed to wake (no fix wanted); builder questions unseen ~2.9 h on 10-02 night (fixed 10-02: coordinators subscribe on open); and coordinator gaps — #216 green at 08:57, asked 12:35; #214 merged 4.8 h after Ed’s Merge. Next: C13 |
| C11 | Proposed to Ed: a merge or deploy report needs no OK of its own; the page gathers them into one card he clears with one tap | 2026-10-03 07:03 (asked) | OK taps on reports fall from about 70 a day to a few; no report Ed needed goes unseen | 2026-10-06 | Declined by Ed 2026-10-03 07:55 (keep each report as its own card); nothing changes, and the check on 10-06 is dropped |
| C12 | A new project’s repository is created by Ed from a one-tap task with a prefilled github.com/new link, then the coordinator opens on it (SETUP.md C1) | 2026-10-03 09:21 | The next new project needs one page item from Ed to get its repository, not three | at the next new project | |
| C13 | Daily number: green-and-finished → Merge question asked, and Ed’s Merge → merged, per draft PR; the draft coordinator is asked the cause of #216 (3.5 h) and #214 (4.8 h) | 2026-10-04 07:10 | Both gaps under 30 min median by the next review, or a named cause that needs a rule | 2026-10-06 | 2026-10-06: holds on cause. Draft named it: the coordinator waited on GitHub events that never came instead of reading the PRs (#216, #214), fixed in its own practice on 10-03 15:15 (#220, #222, #224 merged within minutes of Merge). No draft merges since, so no new gaps to measure; C15 removes the event wait for every project. Kept as a daily number |
| C14 | Weekly trim: the Deploy wait and Mis-shaped columns are written only when non-zero (an exception), since C7 and C2 hold and both read zero for three days | 2026-10-05 07:02 | The daily numbers take less to gather with nothing lost: any wait over 2 min or any mis-shaped item still shows | 2026-10-12 | 2026-10-12: holds. Neither number was non-zero all week, and nothing was missed: the one quality event (#226 merged before green) was caught by the merge-before-green check, not by these columns |
| C15 | Proposed to Ed: a builder that posts FINAL: also wakes its coordinator directly (a one-shot Routine into the coordinator’s session, as dev-ops pokes coordinators); the finished card stays on the page as an OK-only note (Ed kept report cards, C11), but the review no longer waits for his tap |
2026-10-05 07:02 (asked); chosen by Ed 14:55, rule merged the same hour | FINAL → coordinator’s review under 15 min median (Witch now: 1 h by day, 9–11 h overnight); no in-flight item overdue because a finished builder went unreviewed | 2026-10-08 | Chosen by Ed 10-05 14:55. First sign: Witch #107 at 15:53 posted the coordinator is reviewing it, under an hour after the rule. 2026-10-08: too few cases to judge; check moved to 2026-10-12. One measurable FINAL since the rule: draft #226 (20:54) reviewed and its Merge question asked at 21:46, 52 min; Witch is off the page and its API refuses dev-ops; no other project had a builder finish. No in-flight item went overdue for an unreviewed builder 2026-10-12: still too few cases; kept, judged at the fifth measured FINAL. No builder finished in draft, Topic, ae or admit all week (Ed was away 10-07 to 10-11); Witch is off the page |
| C16 | The review’s step 2 lists every item open on Ed’s page over 48 h and every overdue in-flight item, asks each owner to confirm or withdraw it, and names the confirmed ones in the report so Ed sees what he is holding | 2026-10-06 07:01 | No item stays open on the page over 48 h without its owner confirming it that day; Ed hears of each long wait at most once a day | 2026-10-09 | 2026-10-09: holds on the page, not on the waits. Every item over 48 h was confirmed by its owner (10-05/06) and listed in each morning’s report; trimmed to a weekly confirmation by C17. Ed has answered nothing since 10-06 22:17, so 12 items wait (oldest 6.5 days): the listing works, the waits are Ed’s to clear |
| C17 | A coordinator re-reads whatever it waits on outside a pull request (an issue reply, a person’s answer) on every wake, its own project’s or not; such an in-flight item names it under links (QUESTIONS-PAGE.md). C16 trimmed: an owner confirms a long-waiting item once a week, not daily |
2026-10-07 07:02 | No outside reply waits over 2 h unseen while wakes are arriving | 2026-10-10 | 2026-10-10: not yet testable; check moved to 2026-10-14. 2026-10-14: still not testable; judged at the first outside reply awaited while wakes arrive. Ed silent since 10-06 except one OK, so wakes stay rare; owners were asked today, in the week’s confirmation of long waits (C16), to re-read what they wait on Ed has answered nothing since 10-06, so almost no wakes arrived and no outside reply was awaited under the rule |
| C18 | Weekly-style trim for quiet spells: when nothing has changed and Ed has not answered since the last review, the review updates its open card in place (date, waits) instead of withdrawing it and posting a new one, and skips the GitHub helper when a direct API count shows no merges | 2026-10-10 06:58 | Quiet-day reviews take one turn and add no new card; nothing that changed is missed | 2026-10-17 | 2026-10-17: holds. Seven quiet reviews (10-10, 10-11, 10-13 to 10-17) each took one turn without a helper and updated the open card; a new card only on 10-12, after Ed had OK’d the last. The one change in the spell (admit refreshing its items on 10-14) was picked up and reported |
| C19 | Weekly trim: a project Ed runs directly, off the page (Witch since 10-05), is counted as merges only; no per-PR timings or merge-back counts, which nobody acts on and which cost a helper’s time daily | 2026-10-12 06:58 | The review’s GitHub step shrinks with nothing acted on lost | 2026-10-19 | 2026-10-19: holds. A direct merge count replaced the helper all week; no Witch issue went unnoticed (Ed handles Witch in its own session) |