Engineering brief · Saturday, 24 October 2026
Engineering brief, Saturday, 24 October 2026
The bottom line
Good morning. This is the engineering brief for Saturday, 24 October 2026: everything that merged to main between midnight and midnight UTC, and what needs you.
322 pull requests merged, in line with the seven-day average of 321.4. Together they changed 6,900 files, adding 392,525 lines and removing 31,962. The work reached 13 products, 16 research projects and 12 blog post changes.
The headlines: 3 new products joined the catalogue and 17 new research projects started.
Health: CI, main and the queue
This edition is from the archive, so the CI and pull-request state of that day was not recorded; the live numbers are in the newest edition and on the development dashboard.
Fix-forwards: 2 merges repaired a red main or a failing check without reverting.
- pages: search finds guides, posts and comparison pages; breadcrumb markup matches the visible trail. Site search now lists 1,451 guide and comparison pages inside tools, 72 blog posts and 89 collection pages beside tools and research, so a question query lands on the page that answers it; vs pages a compare/ page gathers stay out. #9981
- ai-bookkeeper: receipt reader measured on 1,000 real CORD-v2 receipts (4% to 94% held-out totals); owner direction: data-backed business functions. Receipt reader scored on CORD-v2 (CC BY 4.0): held-out totals 4/95 -> 89/95, tax 0/41 -> 37/41; whole-unit amounts (rupiah, yen, won), real till total words, Indonesian tax words. #10199
Products
Work landed on 13 products, 166 merges in all. New in the catalogue: agent-workroom, sales-agent and ca-crypto-acb-calculator.
ai-bookkeeper: 76 merges.
- Fill gaps after #9932 (PKO description, mBank #, Finnish, Czech currency, Valuta ranks last) #9933
- Read Swiss Gutschrift/Lastschrift/Avisierungstext CSV headers #9935
- Mutation fuzz of statement readers; fix oversized MT940/CAMT amounts #9938
- Read Japanese bank CSV headers and 年月日 dates #9941
- Bank statement to QuickBooks/Xero landing page #9946
Plus 71 more product changes.
sales-agent: 20 merges.
- Second blind reply set (27/41), pinned and written up #10029
- M3 daily run over the cadence builder's tasks #10039
- M4a self-hosted inbox agent (read-only IMAP, approval queue, audit log) #10053
- M4b click-to-send over SMTP with List-Unsubscribe #10056
- Research agent (CRM export to ranked account briefs and drafts) #10077
Plus 15 more product changes.
hearth-and-horizon: 18 merges.
- The Late Ebb (electric ferry, Chiloé 2050; text only) #9954
- The Narrow Window (For Other Minds, text only) #9987
- The Iron Bridge at Forty-Two (text only) #10008
- Hearth & Horizon: Fifteen Minutes (arsenic, deep wells; text only) #10058
- Hearth & Horizon: The Low Meadow (polder overflow, Brabant 2061; text only) #10073
Plus 13 more product changes.
wall-framing-takeoff: 18 merges.
- Foundation quantities (concrete, trucks, rebar, forms, gravel) and --foundation #9947
- Foundation quantities on the page #9950
- --budget prices the takeoff's quantities with the builder's own unit prices #9978
- Budget on the page, labor lines, budget CSV #9992
- Typed prices saved in and loaded from the plan file #10006
Plus 13 more product changes.
einvoice-preflight: 16 merges.
- Romania RO e-Factura national rules (CIUS-RO, 122 checks) in the browser #9979
- Fix arithmetic false positives found by running the official EN 16931 examples #10127
- Accept HUF tax total rounded to whole forints #10135
- Note reported further Verifactu delay, not yet in the BOE #10137
- Five false positives found on the XRechnung test suite #10139
Plus 11 more product changes.
saints-by-candlelight: 4 merges.
- Episode 20, Mary of Egypt and the Three Loaves (text only) #9948
- Episode 21, Gall and the Bear Who Brought the Firewood (text only) #10091
- Saints by Candlelight: Melangell and the Hare in the Fold of Her Robe (episode 22, text only) #10203
- Saints by Candlelight: Ruth and the Barley Harvest at Bethlehem (episode 23, text only) #10233
several products at once: 4 merges.
- Process: point venture front doors at /oss-monorepo/ Pages path (README Live tool, VENTURE.yaml production) + guard. The retired /monorepo-projects/ Pages path 404s; GitHub's README view does not get the build's link rewrite. #9986
- Research/civ-levers: which interventions depolarize a two-camp society? (new track 24, civ) + live-link fix #9976
- Post-merge review: measure PR review here, audit 16 merged PRs, fix what they found #9980
- Check venture pages for skipped heading levels; fix 17 pages #10076
shift-roster-builder: 3 merges.
- Branch on the priced bound to tighten the exact-proof gap #9982
- 8x22 week 3 stays an hour short at 20x the nodes (eval/case-bench.mjs); more search will not settle it #9997
- Re-measure exact-proof reach at all six sizes, post #10082
changepoint-detector: 2 merges.
- Growth-change range on clumpy counts reaches 95% (held-out 94.7%) #10144
- Great Moderation check on real US GDP growth #10236
league-schedule-generator: 2 merges.
- Pick the fairness weight from the league's own travel #9969
- Page button that suggests a fairness weight #10026
1099-k-threshold-checker: 1 merge.
- P054: sourced, dated answer leads on three pilot pages #10257
french-drain-bid-calculator: 1 merge.
- Redteam: french-drain-bid-calculator usage 2026-10-24. Tests for DNT/GPC/stored opt-out and opt-out helpers (catch rate 4/8 -> 8/8); recordUsage no longer throws on blocked or full storage. #10241
saas-seat-true-up: 1 merge.
- Redteam: platform/ci money-sign checks 2026-10-24 #10106
Research
16 research projects moved. Started that day: society-handover, buildbot-nailseq, sensing-calibviews, buildbot-stance, buildbot-mobilebase, buildbot-flatsheet, buildbot-nailpay, civ-levers, sim2real-inference, buildbot-torquewall and 7 more.
sim2real-inference: 18 merges.
- Consolidated estimator library (milestone 2, part 1) #10005
- Milestone 3, MuJoCo benchmark (H1, H2, H6) #10019
- Milestone 3b, finite-sample intervals #10032
- Milestone 3c, empirical-Bernstein interval (negative result) #10035
- Milestone 3d, betting interval is valid but range-limited #10049
Plus 13 more research changes.
verifiable-training-mechanisms: 14 merges.
- Open the programme with a proposal #10003
- Unified library, milestone 2 #10017
- Milestone 3, hidden margin on real training (H1) #10034
- Milestone 4, contract LP and single-check frontiers (H2) #10074
- Milestone 5, peer agreement (H3) and lower bound (H5) #10098
Plus 9 more research changes.
lowcomm-training: 12 merges.
- Open programme with proposal #10001
- Milestone 1 harness (simulated M-worker DiLoCo) #10014
- Numpy DiLoCo harness (milestone 1) and first H sweep #10016
- Float32 Adam roundoff note; drop duplicate harness #10018
- Per-H outer tuning of the H sweep (milestone 2a) #10088
Plus 7 more research changes.
llm-coding-inference: 11 merges.
- Open the programme with a proposal #10085
- Fix two wrong arXiv ids in the proposal #10094
- Estimator library llmci (milestone 2) #10104
- Estimator library and rare-category coverage result #10107
- H1 group-shift benchmark on NaijaSenti #10111
Plus 6 more research changes.
verified-dse: 10 merges.
- Open programme with proposal #10021
- Milestone 1, rung-bias benchmark (H1) #10030
- Milestone 2, search baselines at equal wall-clock #10071
- Milestone 3, successive halving across rungs (H2, H3) #10131
- Milestone 4, conformal shortlists (H4) #10155
Plus 5 more research changes.
buildbot-flatsheet: 1 merge.
- G1 nailing a sheet flat on a table (negative result) #9952
buildbot-mobilebase: 1 merge.
- Does a G1 on a drive-and-lift base nail a 4x8 sheet faster than a walking G1? #9951
buildbot-nailpay: 1 merge.
- Break-even person time per sheet for a G1 nailing sheathing #9988
buildbot-nailseq: 1 merge.
- Does a nailer's recoil slow a G1 firing a 62-nail sheet in sequence? #9942
buildbot-stance: 1 merge.
- How many stances does a G1 need to nail a 4x8 sheet. Sideways and vertical reach of a standing Unitree G1 with a 3.4 kg nailer from MuJoCo whole-body statics; stances and platform heights to cover the 62 nails; break-even re-stance time against hand nailing. #9945
buildbot-torquewall: 1 merge.
- Which joint's torque limit sets a humanoid's carry speed? #9993
codesign-agri-pulloff: 1 merge.
- Does the strawberry gripper co-design survive measured stem pull-off forces? #9994
homebot: 1 merge.
- Triage 38 adopted drafts: land homebot research + DNS page; adopt_stranded opens one draft per area and reaps. Content of branch claude/compassionate-cray-somb6t (24 commits, 2026-10-03 to 2026-10-05, tip 5b18de71), which never reached main and was adopted as draft PR 7296. #10022
religion-origins: 1 merge.
- Cited research on the development of religion + 9-part blog series. PR #9958 moved research_live_links.py BASE to /oss-monorepo/ without rewriting the 1,037 README links, so the check fails on main. #9959
sensing-calibviews: 1 merge.
- How many checkerboard photos pin the focal length? #9943
society-handover: 1 merge.
- Do robots replacing fading allies beat upfront robots? #9939
Writing
12 merges touched the blog, with 211 new posts.
- docs: post on GitHub Pages alternatives, measured against our build. The built site is 738 MB of Pages' 1 GB cap across 14,941 files; 76 podcast MP3s are 414 MB (56%). #9970
- distribution: automated short-form video (render the hub's Shorts scripts into vertical MP4s). platform/distribution/shorts.mjs turns each recent tool or post into a 1080x1920 MP4: cards from the page copy, the real page with its worked example loaded and scrolled to its answer, a figure read off the page, and a closing card with the not-advice line. #9977
- Blog: how search engines and people find a site, besides blogging. Answers the owner's question about SEO discovery channels other than blogging, checked against what this catalogue has wired up. #10024
- Fix Pages build: trim six post descriptions to 160 characters. platform/pages/writing.mjs refuses a post description over 160 characters, so four posts from 2026-10-24 (one from PR #10024) broke the Portfolio Pages build on main. #10027
- redteam: pin_actions + updates 2026-10-24 #10044
- writing: stop search results cutting off post titles; fix 7 over-long descriptions #10117
- ci: check blog post front matter; tag 5 untagged posts #10136
- research/verifiable-training-mechanisms: margin with resampled data splits (H1) #10166
- docs/posts: inside the agent docs, what they hold and where the friction went. Companion to the morning guidance-system post: a tour of the briefing files and the write-back channels (run records, reports, history, drift, backlog), and what 2,786 run records say after the 2026-10-20 restructure: root CLAUDE.md friction fell from 12.4%… #10180
- Blog post: what the human does here, measured, plus an onboarding list. Counts from prompts/runs usage blocks and the decision queue; notes that human_prompts over-counts (harness events) and follow_up_inputs under-counts. #10181
- process: which owner inputs agents or software could replace (agent doc + post). The owner-input post was 178 characters and the verification-tolerance paper-draft post (PR #10185, already on main) was 238, which fails platform/pages/writing.mjs loadPosts and every build and test that uses it. #10190
- ai-bookkeeper: analysis charge is a bank fee; what a real ledger leaves unsuggested #10237
Platform, CI and process
68 merges changed the machinery the products and research run on.
process, prompts and the ledger: 43 merges.
- Docs: contributor onboarding for people (CONTRIBUTING.md, docs/contributing/). The repository had no CONTRIBUTING.md and every guide in the tree was written for agent sessions. #9956
- Research track 23: autonomous water vehicles (marine) #9972
- Docs: how the agent guidance system is organised, and where it leaks #9966
- Process: derive.py fetch fails fast instead of stalling (doc-friction critique) #9984
- Process: derive.py fetch shows progress and fails fast on rate limit #9985
Plus 38 more platform changes.
CI and automation: 7 merges.
- Edge-deploy: accept the Cloudflare token as saved (cloudflarerestrictedapikey). Runs 5 and 6 still skipped the deploy (CONFIGURED: false): the owner's token secret is named CLOUDFLARERESTRICTEDAPIKEY, not CLOUDFLAREAPITOKEN. #9957
- Process: cloud-session long-commands note (browser evals, self-matching Monitor loops) #10054
- Process: list browser evals among long commands (cloud-session.md) #10068
- Process: cloud-session says CI runs unittest discover (doc friction, explore/prompt-0) #10079
- Process: verify-and-merge says write tests as unittest (friction critique) #10080
Plus 2 more platform changes.
platform/ci: 6 merges.
- Redteam: platform/ci 2026-10-24 #9936
- Redteam: platform/ci/check_input_bounds.py 2026-10-24 #9937
- Ci: check_inline_scripts.py (node --check on every inline venture script) #9940
- Redteam: platform/ci/slug_dupe.py 2026-10-24 #10031
- Redteam: pin_actions 2026-10-24 #10060
Plus 1 more platform change.
platform/pages: 6 merges.
- Site: a Stories page for the creative track's fiction, in the top navigation. stories/ lists every shelf of Hearth & Horizon (science fiction, For Other Minds, Little Lamps) and Saints by Candlelight, newest first, read from the ventures' own front matter and audio manifests, with links to each piece and its podcast feed. #9967
- Pages: search finds guides, posts and comparison pages; breadcrumb markup matches the visible trail #9981
- Redteam: platform/pages/rates.mjs 2026-10-24 #10148
- Process P053: <lastmod> from git history in venture sitemaps; fix post description breaking site build #10206
- Pages: merge to live faster (fail-soft posts, card cache, audio on jsDelivr, dashboard in background) #10208
Plus 1 more platform change.
platform/distribution: 2 merges.
- Redteam: platform/distribution/devto.mjs 2026-10-24 #9949
- Process: P047 move platform Pages base URL to /oss-monorepo/ #9958
platform/counter: 1 merge.
- Site: turn on the feedback form and page-view counts (edge Worker is live). edge-deploy run 7 deployed platform/edge to https://monorepo-projects-edge.duncan-andrew-haywood.workers.dev; /healthz, /counts and /feedback answer. #9963
platform/devlog: 1 merge.
- Blog post: how a Markdown file becomes a blog page; fix link syntax inside code spans. The post walks through docs/posts -> platform/pages/writing.mjs -> Pages. #10183
platform/devstats: 1 merge.
- Daily progress post (21-24 Oct), DORA delivery metrics in devstats, and the "software for the routine" rule #9955
platform/privacy: 1 merge.
- Redteam: optout-persistence 2026-10-24 #10171
The agent fleet
By co-author: Claude Sonnet 5.5 on 227 merges, Claude on 43 merges, Claude Opus 5.5 on 34 merges and unattributed on 18 merges.
276 agent runs filed a run record for the day. By track: ventures 93, research 80, process 37, creative 26, explore 17, redteam 13, review 9 and perf 1. By outcome: success 245 and partial 31.
The 99 runs with measured usage came to $84.94 at API list prices, an equivalent rather than a charge, over 527 active minutes.
Runs recorded 44 errors; the first: Attempted an unnecessary `git checkout -- .` in a compound command; the auto-mode classifier denied it, nothing was lost; re-ran without it.
Documentation that cost runs time, most reported first:
- research/CLAUDE.md, 25 reports: pyenv.py first call returned /usr/bin/python3.13 quickly, but bare python3 lacked numpy; the doc's advice worked, no friction beyond remembering to use $PY.
- portfolio/flagships.yaml, 15 reports: flagship 1 next: far exceeds its stated 2,000-character cap.
- research/PROGRAMMES.md, 13 reports: Proposal bar requires 10 'read and checked' works, but arXiv/Crossref are 403 through the proxy; cite_check cannot check them. Proposal disclosed ids as unchecked.
In the runs’ own words
A few notes runs left in their records, verbatim:
- einvoice-preflight venture tests pass (run_venture_tests.py); venture-preflight.mjs not run (slow); corpus run 40->104 of 126 valid PDFs.
- Target check_duplicate_ids.py: 6 mutants seeded, 6 caught (100%). Hunt found scan coverage hole; fixed with rglob + test. No nested page currently has duplicates. No blog post: small guard-only run.
- Campaign on platform/distribution/devto.mjs: catch 2/8 -> 8/8 after tests. Real defect: dead /monorepo-projects/ base URL in ~100 files, filed as P047, not patched. No agent doc/post written (small run).
- New project research/buildbot-mobilebase: sheet time for a G1 on a drive-and-lift base, 54-121 s vs 85-119 s walking and 372 s hand. Local checks: 6 pytest pass, research/_homepage/build.py ok, check_md_links ok, research_live_links ok. Unlanded-work check run after merge.
Watch list
- research/CLAUDE.md keeps slowing runs down; a clearer page there pays back on every run.
That’s the brief for Saturday. Every item links to its pull request on the page.
Other days
- Friday, 30 October 2026
- Thursday, 29 October 2026
- Wednesday, 28 October 2026
- Tuesday, 27 October 2026
- Monday, 26 October 2026
- Sunday, 25 October 2026
- Saturday, 24 October 2026