{
  "day": "2026-10-26",
  "merges": 248,
  "baseline_merges_per_day": 315.4,
  "lines_added": 97233,
  "lines_removed": 864,
  "files_changed": 1605,
  "busiest_hour": {
    "hour": 10,
    "merges": 13
  },
  "hours": [
    12,
    9,
    9,
    12,
    11,
    10,
    8,
    11,
    9,
    9,
    13,
    9,
    11,
    11,
    9,
    5,
    12,
    10,
    13,
    9,
    12,
    11,
    12,
    11
  ],
  "agents": [
    [
      "Claude Sonnet 5.5",
      210
    ],
    [
      "Claude",
      37
    ],
    [
      "unattributed",
      1
    ]
  ],
  "products": [
    {
      "name": "ai-bookkeeper",
      "merges": [
        {
          "sha": "5e86ead32f1508caa06bef7530c4f38fe84d9135",
          "at": 1792974045000,
          "title": "ai-bookkeeper: read Triodos-style '>NN' MT940 subfields; Dutch MT940 sample sweep",
          "pr": 10517,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read Triodos-style '>NN' MT940 :86: subfields; sweep of six Dutch MT940 samples"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 136,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-mt940-triodos.md",
            "prompts/runs/2026-10-26-session_01KobAxRx1SJTjJJ1CDE4AB4.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b39f53561eb861683add27557c628e03996914a1",
          "at": 1792974153000,
          "title": "ai-bookkeeper: read D/C flag columns and Label descriptions",
          "pr": 10519,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read D/C flag columns and Label descriptions (OCA bank-statement-import sweep)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 158,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-oca-sweep.md",
            "prompts/runs/2026-10-26-session_01M9Pwwh63yn8FJBoQzJt3xo.json",
            "ventures/ai-bookkeeper/oca-statement-import.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5dab429001aa732fa331f63d96ee1a19ebe54869",
          "at": 1792976255000,
          "title": "ai-bookkeeper: sweep OCA xlsx/xls bank fixtures (no fault), pin two shapes",
          "pr": 10520,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 32,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-excel-bank-exports-swept.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "eaf9f4b7723e6d592be06c981e8e95fa454660e4",
          "at": 1792976293000,
          "title": "redteam: ai-bookkeeper plaid reader 2026-10-26",
          "pr": 10521,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ai-bookkeeper plaid reader 2026-10-26",
            "redteam record: name PR 10521"
          ],
          "detail": "Guard the sync added/modified shape and the no-lists object case.",
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 176,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01YQsCbizszz62FY455QyLBU.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8a9c116e9de8c103ca5ab63ddec55ed2df329e77",
          "at": 1792976339000,
          "title": "ai-bookkeeper: note when every date in a file reads either way; sweep OCA xlsx/xls fixtures",
          "pr": 10522,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 30,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-ambiguous-dates-note.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "86ed88276a3d2235e806c493fd4a29a09d1f9564",
          "at": 1792977612000,
          "title": "ai-bookkeeper: keep Narration and Umsatztext beside the payee",
          "pr": 10529,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: keep Narration and Umsatztext beside the payee; sweep Fava samples"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 81,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-payee-and-narration.md",
            "prompts/runs/2026-10-26-session_01UkV838s4PFwpnkzr1JRKwP.json",
            "ventures/ai-bookkeeper/fava-samples.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "93c8d22ed250b145ea6d82356c4e846892b7e388",
          "at": 1792979930000,
          "title": "redteam: ai-bookkeeper/estimatedtax 2026-10-26",
          "pr": 10531,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "ai-bookkeeper: estimated tax ignores blank/negative prior tax, paid and withholding instead of NaN plan",
            "redteam run record for PR 10531"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 185,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_01Gju6sM3CNVTFidsdHAVgEF.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "46dd11ada6500ddb86faaf2362502d119ce24e35",
          "at": 1792979971000,
          "title": "ai-bookkeeper: put the OFX ledger balance on the right line of a newest-first file",
          "pr": 10532,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 29,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-28-ai-bookkeeper-ofx-balance-order.md",
            "ventures/ai-bookkeeper/ofx-ledger-balance-order.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2407cc0efa5692ebe9410dbb3340c9b63d9f1515",
          "at": 1792980104000,
          "title": "ai-bookkeeper: keyword rules from Bigcapital's demo bank feed; sweep of five accounting repos",
          "pr": 10533,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 43,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-bigcapital-demo-feed.md",
            "ventures/ai-bookkeeper/bigcapital-demo.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "91bed2958c2450cd3b500c49a2982dd52f69431f",
          "at": 1792980562000,
          "title": "ai-bookkeeper: read DKB and flatex German description headers",
          "pr": 10534,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read DKB Umsatzbeschreibung and flatex Buchungsinformationen as descriptions"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 90,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-28-ai-bookkeeper-german-headers.md",
            "prompts/runs/2026-10-26-session_01WXd3eXsn7fDPX86gjKvuYr.json",
            "ventures/ai-bookkeeper/german-desc-headers.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0d7c6b8389700a3f8eb8b0414537a9175158eb14",
          "at": 1792980692000,
          "title": "ai-bookkeeper: statement text reads opening/closing balances, zero-width minus, balance lines",
          "pr": 10536,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: statement text reads zero-width minus, skips balance lines, signs unsigned rows from opening and closing balance",
            "flagships: leave ai-bookkeeper next unchanged"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 208,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-statement-balances.md",
            "docs/reports/ai-bookkeeper-statement-balances.md",
            "prompts/runs/2026-10-26-session_01SxyHnzjUCkHqfqAzsDL9o3.json",
            "ventures/ai-bookkeeper/statement-balances.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5fc914d5b44cddd4fa66c37c65fbe417a1cb8356",
          "at": 1792980748000,
          "title": "ai-bookkeeper: read MT940 :61: lines with a blank entry date",
          "pr": 10537,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read MT940 :61: lines with a blank entry date"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 144,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-29-ai-bookkeeper-mt940-blank-entry-date.md",
            "prompts/runs/2026-10-26-session_01JuCS6DrMXrZ3k16sBzsD3q.json",
            "ventures/ai-bookkeeper/mt940-blank-entry-date.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "61825dbed3aefaa8b63a79ec6a832c3d70d62339",
          "at": 1792980778000,
          "title": "ai-bookkeeper: a YNAB row with no payee takes its memo; sweep Sure's import fixtures",
          "pr": 10538,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: a YNAB row with no payee takes its memo; sweep Sure's import fixtures"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 92,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-ynab-blank-payee.md",
            "prompts/runs/2026-10-26-session_01PUdfEYPfunt51cHpb7Pq46.json",
            "ventures/ai-bookkeeper/blank-payee-memo.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "03e4fe9f75ac0fe06e365ec6441b077cf6cba505",
          "at": 1792983628000,
          "title": "ai-bookkeeper: running-balance check reorders rows that chain in neither file order",
          "pr": 10542,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: running-balance check reorders rows that chain in neither file order; sweep csv2ofx samples"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 139,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-running-balance-reorder.md",
            "prompts/runs/2026-10-26-session_01CVNsAp1VmQsjkSGm2qAwFB.json",
            "ventures/ai-bookkeeper/running-balance-order.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6c5cb3c252865cbccb3b91478145fe134aa42538",
          "at": 1792984031000,
          "title": "ai-bookkeeper: receipt reader scored on real tesseract output; three faults fixed",
          "pr": 10544,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: score the receipt reader on real tesseract output; fix tax-column totals, clock-as-date evidence, stamped names"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 113,
          "lines_removed": 8,
          "added_files": [
            "docs/posts/2026-10-30-ai-bookkeeper-receipts-through-tesseract.md",
            "prompts/runs/2026-10-26-session_01LUmg1Y832M1Pp6pRxwZojp.json",
            "ventures/ai-bookkeeper/receipt-ocr-columns.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a3c01ab9d1bfd5473d1fa8a25c39dd48d8e5bfe9",
          "at": 1792984223000,
          "title": "ai-bookkeeper: read ING Germany's Auftraggeber/Empfänger as the payee",
          "pr": 10546,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read ING Germany's Auftraggeber/Empfänger as the payee; sweep beancount-ing/dkb/n26 samples",
            "ai-bookkeeper: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 80,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-29-ai-bookkeeper-ing-payee.md",
            "prompts/runs/2026-10-26-session_01RPTeNfgnBsubDLnPgzkMFz.json",
            "ventures/ai-bookkeeper/ing-auftraggeber.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "20d14905faee76bcdc386d662eb5f3503f80b37b",
          "at": 1792987226000,
          "title": "ai-bookkeeper: two-digit years before the pivot read as 19yy (GnuCash example sweep)",
          "pr": 10553,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: two-digit years before the pivot read as 19yy (GnuCash example sweep)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 78,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-30-ai-bookkeeper-two-digit-years.md",
            "prompts/runs/2026-10-26-session_01BX2ZHdnns7mkmtsiVxDtMJ.json",
            "ventures/ai-bookkeeper/two-digit-year-pivot.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fbc24a781165299841725299ae68679536a634d3",
          "at": 1792987712000,
          "title": "ai-bookkeeper: refuse coin-unit account histories instead of booking coins as cents",
          "pr": 10554,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: refuse coin-unit account histories instead of booking coins as cents"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 89,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-31-ai-bookkeeper-coin-units.md",
            "prompts/runs/2026-10-26-session_01AT9LdBuwzp5GJYsJ1ybX3P.json",
            "ventures/ai-bookkeeper/coinbase-units.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "aa843336078df45f8198f47987002b45ff21f9f1",
          "at": 1792988414000,
          "title": "ai-bookkeeper: honour debit/credit type column for debit-positive signed amounts",
          "pr": 10559,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: debit/credit type column honoured for debit-positive signed amounts (Maybe mint.csv)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 163,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-debit-positive-amounts.md",
            "prompts/runs/2026-10-26-session_01FNfAZ4bZNSxPCgSayKKaiM.json",
            "ventures/ai-bookkeeper/debit-positive-type.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b5b06f815d9c655634fdcf50c163fabd3b54f6f3",
          "at": 1792990661000,
          "title": "ai-bookkeeper: one QIF !Account block is one account (KMyMoney sample sweep)",
          "pr": 10562,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 25,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-31-kmymoney-qif-sweep.md",
            "ventures/ai-bookkeeper/kmymoney-qif-single-account.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "faf019b7b94c115c7b1f520d4ac9f2545d44d2ba",
          "at": 1792991590000,
          "title": "ai-bookkeeper: CAMT pending entries, statement balance self-check, reversals",
          "pr": 10565,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: CAMT pending entries skipped, statement balance self-check, reversals balance-checked (ledgerbridge fixture sweep)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 223,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-31-camt-balances-self-check.md",
            "prompts/runs/2026-10-26-session_01CQUXLUYuRet93dMeYJ4nb7.json",
            "ventures/ai-bookkeeper/camt-balances.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fd44f2a5226a6b0fd9380c628c1d6678e62646e9",
          "at": 1792991604000,
          "title": "ai-bookkeeper: footer lines no longer zero a file or join a description",
          "pr": 10566,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: cut footer lines before layout detection; footer wrapping in the metamorphic loop"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 106,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-footer-line.md",
            "prompts/runs/2026-10-26-session_01PhJZ464Aj1ygbVzNCSiUzb.json",
            "ventures/ai-bookkeeper/footer-line.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7bbc1ecd4ed62b698b0abe9ba0f2cb9f2df3b8a8",
          "at": 1792992117000,
          "title": "ai-bookkeeper: read Akaunting's transactions workbook",
          "pr": 10569,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read Akaunting's transactions workbook (paid_at, income/expense type)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 157,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-26-akaunting-export-zero-rows.md",
            "prompts/runs/2026-10-26-session_01Q9GxSLcBkio5z3acLBr2S8.json",
            "ventures/ai-bookkeeper/akaunting-import.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "94a93c0fc576e28ab45294faf3913d06f28e8f74",
          "at": 1792992841000,
          "title": "ai-bookkeeper: measure OCR preprocessing on SROIE (it hurts), post",
          "pr": 10570,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 11,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-receipt-ocr-preprocessing-hurts.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e4bb12aec17d12fc3c75a8a6f5073c8bc10b6745",
          "at": 1792993283000,
          "title": "ai-bookkeeper: receipt OCR preprocessing measured on 626 scans, none helps",
          "pr": 10571,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: receipt OCR preprocessing measured on 626 SROIE scans, all variants worse"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 85,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-31-receipt-ocr-preprocessing-hurts.md",
            "prompts/runs/2026-10-26-session_01PkjwPKThXqTpu1jB4sZxZe.json",
            "ventures/ai-bookkeeper/eval/sroie-ocr-variants.sh"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cb1f4fbdc0c2dd1c7f70bfe252f3ec336b91a91e",
          "at": 1793003334000,
          "title": "ai-bookkeeper: receipt merchant skips OCR noise, GST and state lines (SROIE tesseract 33.1% to 36.6%)",
          "pr": 10601,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: receipt merchant skips OCR noise, GST and state lines (SROIE tesseract 33.1% to 36.6%)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 76,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-receipt-merchant-ocr.md",
            "prompts/runs/2026-10-26-session_01R9Qzy3JUK5cNcqdqy5Eg4Z.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d5bd03c7bd8c972295f0c2c5275d177b827e2b46",
          "at": 1793005304000,
          "title": "ai-bookkeeper: receipt merchant ignores bracketed registration numbers (SROIE boxes 63.6% to 83.2%)",
          "pr": 10605,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 20,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-receipt-merchant-registration-number.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5191261efbc8ead8daf06f1bd428a3142527412d",
          "at": 1793008946000,
          "title": "ai-bookkeeper: re-measure receipt merchant on tesseract text (36.6% to 43.3%)",
          "pr": 10614,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 14,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-receipt-ocr-remeasured.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b94d6c931d4b5fb1ac02ce14e0a3a51cffbd1fdf",
          "at": 1793012395000,
          "title": "ai-bookkeeper: cash handed over is not the receipt total (SROIE 601 to 604 of 625)",
          "pr": 10625,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 33,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-cash-handed-over-is-not-the-total.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "18c4b2176ffebe9983959b29587cf182f4d36c4c",
          "at": 1793012509000,
          "title": "ai-bookkeeper: merchant from the line above the registration number (SROIE 83.2% to 84.7%)",
          "pr": 10626,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: merchant from the line above the registration number (SROIE 83.2% to 84.7%)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 75,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-receipt-company-name.md",
            "prompts/runs/2026-10-26-session_01RzQugBE1nVjPjr4sWcTsCw.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4660f620be281b76bdf2ecb8eb931e46af70e32e",
          "at": 1793014065000,
          "title": "redteam: ai-bookkeeper estimatedtax 2026-10-26",
          "pr": 10634,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ai-bookkeeper estimatedtax 2026-10-26",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 203,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-redteam-estimatedtax.md",
            "prompts/runs/2026-10-26-session_01BXvfi2y2AuZLCBiZuJxacS.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d2c1054469703fd5554d37d619aa69ddb9d1c9ac",
          "at": 1793017710000,
          "title": "ai-bookkeeper: voucher TOTAL SV/GV rows are not the receipt total",
          "pr": 10641,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: voucher TOTAL SV/GV rows are not the receipt total (SROIE 604 to 606 of 625)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 130,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-voucher-totals.md",
            "prompts/runs/2026-10-26-session_013ZvQyVdEuQN6y3Enayjm8q.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ec58638ed3e9ad63a4b0fe9f1a0c7e591a62d449",
          "at": 1793019983000,
          "title": "ai-bookkeeper: keep tax codes glued to prices out of OCR repair; BHD is day-first (SROIE dates 96.7% to 98.0%)",
          "pr": 10646,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 23,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-receipt-tax-codes.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "eac3c01211bb539c86e17b704040e746d7803ce3",
          "at": 1793020045000,
          "title": "ai-bookkeeper: a timed date stamp decides receipt day-month order (SROIE date 96.7% to 97.1%)",
          "pr": 10647,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 24,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-receipt-date-order.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "10366b6dc3cfa9577823283f56724ec5b7303482",
          "at": 1793021089000,
          "title": "ai-bookkeeper: ACCEPTED TOTAL is cash handed over (SROIE totals 97.1% to 97.4%)",
          "pr": 10649,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: ACCEPTED TOTAL is cash handed over (SROIE totals 97.1% to 97.4%)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 133,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-parking-receipt-total.md",
            "prompts/runs/2026-10-26-session_01QzHhH17YZ4yMy6VqWMWGc1.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "29768c33f6964b3433715a6151a0a7959c9aee9e",
          "at": 1793021652000,
          "title": "ai-bookkeeper: garbled tax cell on the closing Total row (SROIE tesseract totals 74.9% to 75.8%)",
          "pr": 10654,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: a garbled tax cell on the closing Total row no longer makes the base the receipt total (SROIE tesseract totals 74.9% to 75.8%)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 90,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-garbled-tax-cell-receipt-total.md",
            "prompts/runs/2026-10-26-session_019zvekV2tcTDkps3T3qP6tc.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f2f025357ca2c10e6f813070237ee181698340e9",
          "at": 1793024981000,
          "title": "ai-bookkeeper: wrapped company name on receipts is one merchant; SROIE ceiling post",
          "pr": 10663,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: receipt merchant wrapped over two lines is one name; SROIE ceiling write-up"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 72,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-receipt-reader-ceiling.md",
            "prompts/runs/2026-10-26-session_01XoomtiTqTorRsJ6c2uPEEt.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "76f779d8faf128b48c6d6a77d5eb8d5facae2c0a",
          "at": 1793031247000,
          "title": "ai-bookkeeper: test LBB headerless CSV, correct stale README note",
          "pr": 10676,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: test LBB headerless CSV, fix stale README note; post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 72,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-lbb-csv-and-2027-rev-proc.md",
            "prompts/runs/2026-10-26-session_01KRz7wEcBRPEA8Y5NsSbfCF.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "49fdb1051612e59bfc9457cb0c7b1dd3783470f4",
          "at": 1793038842000,
          "title": "ai-bookkeeper: halves metamorphic relation (22 tests, no fault)",
          "pr": 10701,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: halves metamorphic relation (22 tests, no fault)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 141,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01SaErg12ZAxikfBXATDv7fA.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6197ab77af8f5093e3978c782b59072429d7004b",
          "at": 1793041115000,
          "title": "ai-bookkeeper: Michigan annual sales tax return is due February 28",
          "pr": 10705,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 19,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-michigan-annual-sales-tax-due-date.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "48290f27713365fa89d777f18fb0f12b49cdbeb1",
          "at": 1793041855000,
          "title": "ai-bookkeeper: 2024 and 2025 wage bases checked against IRS Schedule SE instructions",
          "pr": 10708,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: 2024 and 2025 wage bases checked against IRS Schedule SE instructions"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 138,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-wage-bases-checked.md",
            "prompts/runs/2026-10-26-session_01KNwNXDfUPf2ijpS2QycZRw.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "91baaf65a306cf2cf89b2294c03509574b71aeaa",
          "at": 1793042017000,
          "title": "ai-bookkeeper: read Amazon Business order-history CSV",
          "pr": 10711,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read Amazon Business order-history CSV (Order Date, Title, Item Total)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 156,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-amazon-order-history.md",
            "prompts/runs/2026-10-26-session_01QBqWduqHgkkx5WDxMtEi4i.json",
            "ventures/ai-bookkeeper/amazon-order-history.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "57c61d4ad9dd8146b0308dd989a5c6b3f827ad1a",
          "at": 1793046121000,
          "title": "ai-bookkeeper: period comparison card on the page",
          "pr": 10725,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: period comparison card on the page, preceding-period helper",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 108,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-period-comparison-on-the-page.md",
            "prompts/runs/2026-10-26-session_01WHQoPLFrghFpJNnPNtsM7b.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6e240c2293564b4c8a4c9d7614f730fc8ac71c96",
          "at": 1793048390000,
          "title": "ai-bookkeeper: payees report with customer-concentration warning",
          "pr": 10727,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 133,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-customer-concentration.md",
            "ventures/ai-bookkeeper/payees.mjs",
            "ventures/ai-bookkeeper/payees.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "069df7be9cee65b66425fd39e6a1a8ca45f0fcb2",
          "at": 1793048456000,
          "title": "ai-bookkeeper: cash flow adds depreciation back in operating, disposal proceeds in investing",
          "pr": 10728,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: cash flow adds depreciation back in operating, disposal proceeds in investing",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 76,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-cash-flow-depreciation.md",
            "prompts/runs/2026-10-26-session_016oSF6ABHkviF1vG5RFrkyX.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d7a601adb2dc76103b53c529ba0c30d11ca2c4c4",
          "at": 1793049015000,
          "title": "ai-bookkeeper: cash flow ends with free cash flow",
          "pr": 10730,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: cash flow ends with free cash flow (operations less asset purchases)",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 8,
          "lines_added": 63,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-free-cash-flow.md",
            "docs/reports/2026-10-27-ai-bookkeeper-free-cash-flow.md",
            "prompts/runs/2026-10-26-session_01EtUUrUTXbgG8mJHXrZqmig.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3683f036f191beb29b42806c28dc8bba58f16b5e",
          "at": 1793049227000,
          "title": "ai-bookkeeper: cash flow reports monthly burn and runway",
          "pr": 10733,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: cash flow reports monthly burn and runway",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 71,
          "lines_removed": 4,
          "added_files": [
            "prompts/runs/2026-10-26-session_01LGYcokYMfj1tipXcUUgtWh.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "aff4a8502bde0da83434e11e5b4b5a744cc4d4b2",
          "at": 1793049732000,
          "title": "ai-bookkeeper: cash flow by month with recent-burn runway",
          "pr": 10735,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: cash flow by month with recent-burn runway",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 8,
          "lines_added": 177,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-monthly-cash-flow.md",
            "prompts/runs/2026-10-26-session_01Rdq85abh9Kd2xCF2jDejiP.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "12de7fd6d312e33494ccba78923bd652e4fa5518",
          "at": 1793051895000,
          "title": "ai-bookkeeper: lender ratios report (margins, working capital, current and quick ratio, debt to equity)",
          "pr": 10738,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 64,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-lender-ratios.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4eba3ec57187bd36f544aa16007e1e94514dbf13",
          "at": 1793052644000,
          "title": "ai-bookkeeper: profit and loss by project",
          "pr": 10741,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: profit and loss by project (tag bank lines and invoices, margin per job)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 294,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-profit-and-loss-by-project.md",
            "prompts/runs/2026-10-26-session_01U41HcQPbHUVdE2cXv1GYT2.json",
            "ventures/ai-bookkeeper/projects.mjs",
            "ventures/ai-bookkeeper/projects.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f88e82319556fa1813694d1589c8790dfef93e10",
          "at": 1793052856000,
          "title": "ai-bookkeeper: header-less layouts ignore an empty trailing column",
          "pr": 10744,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: header-less layouts ignore an empty trailing column (new metamorphic relation)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 151,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-stray-trailing-comma.md",
            "prompts/runs/2026-10-26-session_016q4cyc9uajvdyNhWyFKFCW.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ad11a4c92203ab2239cef9fd6f9463e99aef3455",
          "at": 1793053212000,
          "title": "ai-bookkeeper: export-packaging metamorphic tests",
          "pr": 10745,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: export-packaging metamorphic tests (sep line, title block, timestamps, long dates)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 169,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-export-packaging.md",
            "prompts/runs/2026-10-26-session_01DuvA576vgagAiRAZTApvnH.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a9e8be60660c5a7ad34557d694a0add5bcbacc36",
          "at": 1793053245000,
          "title": "ai-bookkeeper: extra-column and split debit/credit metamorphic checks",
          "pr": 10747,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: extra-column and split debit/credit metamorphic checks",
            "prompts: run record for ai-bookkeeper metamorphic checks"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 101,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-extra-column-checks.md",
            "prompts/runs/2026-10-26-session_01QkQBMQtBzhcQAr4mCZ4sSi.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2c5b2709d1ed9b56d9aad15395edcf879e0b0557",
          "at": 1793053449000,
          "title": "ai-bookkeeper: apply foreign credit notes in the invoice's currency",
          "pr": 10748,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: apply foreign credit notes in the invoice's currency, book the rate gap to 6190",
            "post: foreign credit notes description length"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 207,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-26-foreign-credit-notes-ai-bookkeeper.md",
            "prompts/runs/2026-10-26-session_01VbqmYDJQYvN5qdi2X6vzAL.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e3370ec0999a17a0de0da7cb062c51af881a3def",
          "at": 1793055558000,
          "title": "ai-bookkeeper: eBay bookkeeping page, figures pinned to the payout parser",
          "pr": 10750,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 103,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-ebay-payout-page.md",
            "ventures/ai-bookkeeper/ebay-bookkeeping.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0765dca731ffb986399a13da9ce18c28d57adb07",
          "at": 1793056208000,
          "title": "ai-bookkeeper: foreign invoice paid in instalments closes on the last payment",
          "pr": 10752,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: foreign invoice paid in instalments closes on the last payment"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 79,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-26-ai-bookkeeper-foreign-invoice-instalments.md",
            "prompts/runs/2026-10-26-session_01Fbfc7CZ7VWQaHJggg99a6Z.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8f9d211791c85c1e8ab2a6a26ebd21fc66a78edb",
          "at": 1793056592000,
          "title": "ai-bookkeeper: report share quantities in the Amount column instead of booking them as dollars",
          "pr": 10755,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: report share quantities in the Amount column instead of booking them as dollars"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 155,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-share-quantity-not-dollars.md",
            "prompts/runs/2026-10-26-session_012cFnAuVdUx9c7N7kQLjm9r.json",
            "ventures/ai-bookkeeper/share-quantity-amount.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1e90c7c6ccfb47926992e707360343576c920341",
          "at": 1793059182000,
          "title": "redteam: ventures/ai-bookkeeper/bank.mjs 2026-10-26",
          "pr": 10760,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ventures/ai-bookkeeper/bank.mjs 2026-10-26",
            "redteam record: name PR 10760"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 171,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01EhTJVLBHidTTy5DYQVY3KB.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "wall-framing-takeoff",
      "merges": [
        {
          "sha": "5f8e32eff091ffab4d3ab29389af767a98bf27ae",
          "at": 1792998804000,
          "title": "wall-framing-takeoff: drywall end joints snapped to studs (jointsOnStuds)",
          "pr": 10585,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: drywall end joints snapped to studs (jointsOnStuds), measured on the sample house"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 217,
          "lines_removed": 14,
          "added_files": [
            "docs/posts/2026-10-31-drywall-joints-on-studs.md",
            "prompts/runs/2026-10-26-session_01X8gdbBtzNSLcTPHT83qAXk.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6047875f25a4c2e8a26397b35284e99c0c9e9d96",
          "at": 1793001610000,
          "title": "wall-framing-takeoff: page control for drywall jointsOnStuds",
          "pr": 10592,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: page control for drywall jointsOnStuds"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 68,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-drywall-joint-control.md",
            "prompts/runs/2026-10-26-session_0152CoBdqZ9uV28xtRdfXu9Q.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "41b3d933796ad73e818788cf29a89507115f2802",
          "at": 1793001921000,
          "title": "wall-framing-takeoff: browser click-through for the Wall end joints select",
          "pr": 10594,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 1,
          "lines_added": 5,
          "lines_removed": 0,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "740e2030390e45e2e6eb2f672850438a7c677042",
          "at": 1793003010000,
          "title": "wall-framing-takeoff: ceiling drywall joints snap to joists",
          "pr": 10599,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: ceiling drywall joints snap to joists (ceilingJoistSpacing)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 104,
          "lines_removed": 8,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-ceiling-joists.md",
            "prompts/runs/2026-10-26-session_01J4MrttkK1bUANPxiQY6b5q.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9c409d122fdd9c54136010fd9bb72b795a40044f",
          "at": 1793005280000,
          "title": "wall-framing-takeoff: page control for ceiling joist spacing",
          "pr": 10604,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 23,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-ceiling-joist-control.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a91841af2d49c71d640c5737382ba87ac742f7db",
          "at": 1793013629000,
          "title": "wall-framing-takeoff: insulation option on the page",
          "pr": 10631,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: insulation option on the page (walls, rim bays, attic)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 125,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-insulation-on-the-page.md",
            "prompts/runs/2026-10-26-session_014am3jHBqC58agBWhg1YMbg.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5cbf5cd118c14ea320b3ac3c08c65eb988d23016",
          "at": 1793016927000,
          "title": "wall-framing-takeoff: insulation bags in the budget",
          "pr": 10636,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: insulation bags in the budget, CSV and page table"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 8,
          "lines_added": 88,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-insulation-in-budget.md",
            "prompts/runs/2026-10-26-session_01PaXa44QM8ULwrDepaGtjDo.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "57903101d3299f979c8a54a6759b5b8c946fe495",
          "at": 1793023686000,
          "title": "wall-framing-takeoff: drywall ceiling joints read the roof's ceiling joists (ceilingJoistsFromRoof)",
          "pr": 10658,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 50,
          "lines_removed": 9,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-ceiling-joists-from-the-roof.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5271ff8ba710080943d050ca7908630014a7a415",
          "at": 1793024224000,
          "title": "wall-framing-takeoff: page option for drywall ceiling joists from the roof",
          "pr": 10660,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: page option for drywall ceiling joists read from the roof"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 66,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-ceiling-joists-from-roof-page.md",
            "prompts/runs/2026-10-26-session_01AXsxqx9go6rF5MgjTpTouN.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "eef58750e5f022fc38873d7b169b3262bdcad238",
          "at": 1793024746000,
          "title": "wall-framing-takeoff: drywall ceiling steps",
          "pr": 10661,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: drywall ceiling steps (soffit face, bead, inside angle)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 87,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-ceiling-steps.md",
            "prompts/runs/2026-10-26-session_01C6ui3minnRH4VKYqcNBjPT.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8e2a4be700f680c99b85f7bc92529a3e2d398929",
          "at": 1793026755000,
          "title": "wall-framing-takeoff: drywall and insulation labor lines in the budget",
          "pr": 10667,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 32,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-drywall-insulation-labor.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "408cd800516a81063cd511edd85e21224770b4c6",
          "at": 1793026820000,
          "title": "wall-framing-takeoff: ceiling steps (length x drop) in the page's drywall ceiling box",
          "pr": 10668,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 4,
          "lines_added": 31,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-ceiling-steps-on-the-page.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f89de3e8fa0ca1240c86a9177cc9e48c30a09479",
          "at": 1793030655000,
          "title": "wall-framing-takeoff: DXF floor plan import (walls, corners, tees, openings)",
          "pr": 10675,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: DXF floor plan import (walls, corners, tees, openings) in CLI and page"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 12,
          "lines_added": 520,
          "lines_removed": 12,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-dxf-import.md",
            "prompts/runs/2026-10-26-session_01A9jGk61V11iS4q9xyvzpxm.json",
            "ventures/wall-framing-takeoff/dxf.mjs",
            "ventures/wall-framing-takeoff/dxf.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e501da00bd54f42cd6b9f98c2747b6686dad85fd",
          "at": 1793044977000,
          "title": "wall-framing-takeoff: DXF import pairs double-line walls into centre lines",
          "pr": 10717,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "wall-framing-takeoff: DXF import pairs double-line walls into centre lines"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 169,
          "lines_removed": 11,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-double-line-walls.md",
            "prompts/runs/2026-10-26-session_01K5Ts6j7GYwdNeAmJJu8Wgg.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f8b6d8a085465d718c6fd1b90fe0abbdf34d0b29",
          "at": 1793048724000,
          "title": "wall-framing-takeoff: DXF import reads wall-rectangle plans (Open House Plans)",
          "pr": 10729,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: DXF import reads wall-rectangle plans, gaps become openings"
          ],
          "detail": "Checked on four Open House Plans DXFs; openings match their schedules.",
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 10,
          "lines_added": 18209,
          "lines_removed": 18,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-reads-open-house-plans.md",
            "prompts/runs/2026-10-26-session_017H6ead89JkAMHQszoBhB8q.json",
            "ventures/wall-framing-takeoff/fixtures/open-house-plans-1.dxf",
            "ventures/wall-framing-takeoff/fixtures/open-house-plans-1.openings.csv",
            "ventures/wall-framing-takeoff/fixtures/open-house-plans-2.dxf",
            "ventures/wall-framing-takeoff/fixtures/open-house-plans-2.openings.csv"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "29837f10913aa28513587804fc4f9868bbcd9d79",
          "at": 1793052399000,
          "title": "wall-framing-takeoff: windows 4.5 in or more apart share king studs",
          "pr": 10740,
          "agent": "Claude",
          "models": [],
          "track": "creative",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 91,
          "lines_removed": 16,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-shared-king-studs.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4b66eba610adf5cbfa6a4bc7dec1528462898a17",
          "at": 1793056185000,
          "title": "wall-framing-takeoff: end stud serves as king for openings near a wall end",
          "pr": 10751,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 55,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-26-wall-framing-takeoff-doors-near-corners.md"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "changepoint-detector",
      "merges": [
        {
          "sha": "79a666287ab0e7448ccb7def00ab42cdc1d5b902",
          "at": 1792973791000,
          "title": "changepoint-detector: --dispersion penalty for meanvar on heavy tails and clustered volatility",
          "pr": 10511,
          "agent": "Claude",
          "models": [],
          "track": "process",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 8,
          "lines_added": 118,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-dispersion-penalty.md",
            "ventures/changepoint-detector/eval/meanvar-dispersion.mjs",
            "ventures/changepoint-detector/eval/meanvar-dispersion.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7715651da268c1b8f9d6e8b9dc92f716b1b529b5",
          "at": 1792998702000,
          "title": "changepoint-detector: growth-change range on clumpy counts re-checked on fresh seeds",
          "pr": 10584,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: growth-change range on clumpy counts re-checked on two fresh seeds (101/107)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 5,
          "lines_added": 146,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-range-holds-on-fresh-seeds.md",
            "prompts/runs/2026-10-26-session_01WNhVFzBqDVQUMKRVaErbjT.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "598900bcd111a8984ca1e4218ea7479c56daf3ea",
          "at": 1793010191000,
          "title": "changepoint-detector: real count series with a documented break (UK seat-belt law)",
          "pr": 10623,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: real count series with a documented break (UK seat-belt law)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 10,
          "lines_added": 457,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-seat-belt-law.md",
            "docs/reports/changepoint-seatbelt-real-counts.md",
            "prompts/runs/2026-10-26-session_01EqRqQYqTfr3vBFdc5mzXvP.json",
            "ventures/changepoint-detector/data/uk-driver-deaths.csv",
            "ventures/changepoint-detector/eval/seatbelt-law.mjs",
            "ventures/changepoint-detector/eval/seatbelt-law.out.txt",
            "ventures/changepoint-detector/seatbelt-law.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "37fb751eac0e847e4b7a2f4aaa65978db85ceb1b",
          "at": 1793013989000,
          "title": "changepoint-detector: pin Nile 1898 dam break under four settings",
          "pr": 10633,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: pin Nile 1898 dam break under four settings"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 4,
          "lines_added": 87,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-nile-break-four-ways.md",
            "prompts/runs/2026-10-26-session_01GoQ7viXhUsT7h4WkLJhi2N.json",
            "ventures/changepoint-detector/nile-variants.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "db0c156cbb242b040362cad15f5bab7091e10d50",
          "at": 1793016830000,
          "title": "changepoint-detector: check plain Poisson on coal-mining disasters",
          "pr": 10637,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: check plain Poisson on 112 years of coal-mining disasters"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 208,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-coal-disasters.md",
            "prompts/runs/2026-10-26-session_01VqKNGBszU6RYy6NeziQTMc.json",
            "ventures/changepoint-detector/coal-disasters.test.mjs",
            "ventures/changepoint-detector/data/coal-mining-disasters.csv"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8c13423d053efc6a70424b47eb7554b2c6dd77f8",
          "at": 1793021520000,
          "title": "changepoint-detector: a second dispersion round does not cut GARCH false alarms",
          "pr": 10653,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: a second dispersion round does not cut GARCH false alarms (negative result)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 6,
          "lines_added": 112,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-second-dispersion-round.md",
            "prompts/runs/2026-10-26-session_01SQmGjNoeJs3HnQQPmNRgSd.json",
            "ventures/changepoint-detector/eval/meanvar-dispersion-iter.mjs",
            "ventures/changepoint-detector/eval/meanvar-dispersion-iter.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1e521d20e82a6f39c7e9414219c101803bd3b680",
          "at": 1793031404000,
          "title": "changepoint-detector: GARCH-filter experiment for meanvar (negative result)",
          "pr": 10677,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: GARCH-filter experiment for meanvar (negative result), garchSigma, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 8,
          "lines_added": 171,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-detector-garch-filter.md",
            "prompts/runs/2026-10-26-session_01Ef8KHqArd841DE2vKg2egP.json",
            "ventures/changepoint-detector/eval/meanvar-garch-filter.mjs",
            "ventures/changepoint-detector/eval/meanvar-garch-filter.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9d9d2ef0defb2c1f78b88da57fc50a81ec86216d",
          "at": 1793031649000,
          "title": "changepoint-detector: --bootstrap penalty for meanvar",
          "pr": 10678,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: --bootstrap block-resampled penalty for meanvar (GARCH false alarms 51% to 16% at n=200)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 227,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-detector-bootstrap-penalty.md",
            "prompts/runs/2026-10-26-session_012yJaZaSupC9G6DHBuM6xxa.json",
            "ventures/changepoint-detector/eval/meanvar-block-bootstrap.mjs",
            "ventures/changepoint-detector/eval/meanvar-block-bootstrap.out.txt",
            "ventures/changepoint-detector/meanvar-bootstrap.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "88631f1d10a1f0a6e88cf46804ffade4a96ea677",
          "at": 1793035270000,
          "title": "changepoint-detector: --bootstrap penalty for the mean model",
          "pr": 10691,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: --bootstrap penalty for the mean model"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 127,
          "lines_removed": 11,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-mean-bootstrap.md",
            "prompts/runs/2026-10-26-session_01MFsVL21RexDmtZfWrwwLnH.json",
            "ventures/changepoint-detector/eval/mean-block-bootstrap.mjs",
            "ventures/changepoint-detector/eval/mean-block-bootstrap.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8ba2dadbc3f37acb1cabeb8f977aa712f5aa9ae6",
          "at": 1793037843000,
          "title": "changepoint-detector: meanvar options on real daily FX returns",
          "pr": 10696,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: meanvar options on real daily FX returns (CHF 2015, Brexit)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 1909,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-real-fx-shocks.md",
            "prompts/runs/2026-10-26-session_01SVTDjA1HXT65i5cTfmCDdM.json",
            "ventures/changepoint-detector/data/fx-daily-returns.csv",
            "ventures/changepoint-detector/eval/fx-shocks.mjs",
            "ventures/changepoint-detector/eval/fx-shocks.out.txt",
            "ventures/changepoint-detector/fx-shocks.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "bfc7ea9b70f36631f120ac22845070117d1b6280",
          "at": 1793038539000,
          "title": "changepoint-detector: measure why --bootstrap missed the real franc shock",
          "pr": 10700,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: measure why --bootstrap missed the real franc shock",
            "ventures: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 8,
          "lines_added": 133,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-why-bootstrap-missed-the-franc.md",
            "docs/reports/2026-10-26-changepoint-bootstrap-franc.md",
            "prompts/runs/2026-10-26-session_01DSvJSftQQLa8FpLV2gwgun.json",
            "ventures/changepoint-detector/eval/fx-bootstrap-why.mjs",
            "ventures/changepoint-detector/eval/fx-bootstrap-why.out.txt",
            "ventures/changepoint-detector/fx-bootstrap-why.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7dbf85eda968930a23559a9fee1b09925cf107d1",
          "at": 1793039013000,
          "title": "changepoint-detector: tail-preserving bootstrap scales tried on real FX, neither helps",
          "pr": 10702,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: tail-preserving bootstrap scales tried on real FX, neither helps"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 173,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-detector-bootstrap-tail-fix-fails.md",
            "prompts/runs/2026-10-26-session_01UjSnvfM7MLFmt72iBuUuFS.json",
            "ventures/changepoint-detector/eval/fx-bootstrap-tail.mjs",
            "ventures/changepoint-detector/eval/fx-bootstrap-tail.out.txt",
            "ventures/changepoint-detector/fx-bootstrap-tail.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a9b1f8c4db5cdfc0cda8b2cb6812c59da65ba581",
          "at": 1793039559000,
          "title": "changepoint-detector: --bootstrap penalty for the Poisson model",
          "pr": 10703,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: --bootstrap penalty for the Poisson model"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 226,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-26-changepoint-detector-bootstrap-for-counts.md",
            "prompts/runs/2026-10-26-session_018AMJWVmfzZmBAf29ohPaGr.json",
            "ventures/changepoint-detector/eval/poisson-block-bootstrap.mjs",
            "ventures/changepoint-detector/eval/poisson-block-bootstrap.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "60a11683a8afc1cd0aa506a0a8eafbf1b2863346",
          "at": 1793057304000,
          "title": "changepoint-detector: UK gas consumption, a real slope change on a non-count series",
          "pr": 10759,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: UK gas consumption, a real slope change on a non-count series",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 317,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-detector-uk-gas.md",
            "prompts/runs/2026-10-26-session_01Um72NdN4HaSJ9dSmSQoH1J.json",
            "ventures/changepoint-detector/data/uk-gas.csv",
            "ventures/changepoint-detector/eval/uk-gas.mjs",
            "ventures/changepoint-detector/eval/uk-gas.out.txt",
            "ventures/changepoint-detector/uk-gas.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "einvoice-preflight",
      "merges": [
        {
          "sha": "6e109efce4c01c14400ca11a5fd023d2b8c426e7",
          "at": 1792987164000,
          "title": "einvoice-preflight: Luxembourg bill 8815, transitional dates, thresholds",
          "pr": 10552,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Luxembourg bill 8815, transitional dates, thresholds"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 7,
          "lines_added": 72,
          "lines_removed": 8,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-luxembourg-bill.md",
            "prompts/runs/2026-10-26-session_01NUDH3GiJV6zUfeMP1VcAxe.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0baba1f690ced4e97af184d10f90e4d8c9218903",
          "at": 1792999668000,
          "title": "einvoice-preflight: Malta e-invoice rules page (B2B voluntary, Peppol for public buyers)",
          "pr": 10582,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Malta e-invoice rules page (B2B voluntary, Peppol for public buyers), hub, index, sitemap, cross-links",
            "posts: fix front matter on other sessions' posts (descriptions, tags, future dates) that broke validate and the site build",
            "privacy: raise the opt-out catalogue pin for vsme-report-builder",
            "posts: restore main's receipt post (conflict markers committed by mistake)",
            "posts: shorten roster-proof description (broke validate on main)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 42,
          "lines_added": 247,
          "lines_removed": 33,
          "added_files": [
            "docs/posts/2026-10-26-malta-e-invoice-rules-page.md",
            "prompts/runs/2026-10-26-session_01QwCPXVMjHqkA5rehHyrJe9.json",
            "ventures/einvoice-preflight/malta-e-invoice-mandate.html",
            "ventures/einvoice-preflight/malta-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "037e4c5c1aebc8b47a24f15eb7b3823d7e5a389d",
          "at": 1793001586000,
          "title": "einvoice-preflight: Bulgaria page adds reported scope and penalty start (draft, no consultation outcome yet)",
          "pr": 10593,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 2,
          "lines_added": 7,
          "lines_removed": 6,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1879b92ffab9d403f0dc69f76e860428cf0f60f6",
          "at": 1793021255000,
          "title": "einvoice-preflight: escape output in the India GST page",
          "pr": 10651,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "einvoice-preflight: escape problem text and IRN output in the India GST page (only unescaped innerHTML writer of 1,329 pages with free-text input)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 2,
          "lines_added": 50,
          "lines_removed": 3,
          "added_files": [
            "prompts/runs/2026-10-26-session_01MFdUkEi4TMMx5Ew87xBihq.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "448d1cdb8041a0b5e0da762a395b9f5f73d4ba63",
          "at": 1793030534000,
          "title": "einvoice-preflight: Austria mandate page (B2G only, B2B voluntary)",
          "pr": 10673,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": null,
          "bullets": [
            "einvoice-preflight: Austria mandate page (B2G only, B2B voluntary), hub row, post",
            "post: shorten Austria description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 8,
          "lines_added": 147,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-austria-page.md",
            "ventures/einvoice-preflight/austria-e-invoice-mandate.html",
            "ventures/einvoice-preflight/austria-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3ff7f4221a57cedffdbbf1b9c14e27d038ad1285",
          "at": 1793030677000,
          "title": "einvoice-preflight: Finland mandate page",
          "pr": 10674,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Austria and Finland mandate pages (B2B voluntary, government on structured invoices), hub, index, sitemap, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 10,
          "lines_added": 192,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-austria-finland.md",
            "prompts/runs/2026-10-26-session_01Bntk2ffAXB5UKATJhpEEbd.json",
            "ventures/einvoice-preflight/finland-e-invoice-mandate.html",
            "ventures/einvoice-preflight/finland-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "49d6de9a75f711b70ac8eb0183a6af15ab324a65",
          "at": 1793031706000,
          "title": "einvoice-preflight: Sweden mandate page",
          "pr": 10679,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "einvoice-preflight: Sweden mandate page (B2B optional, Peppol for public sector), hub, index, sitemap, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 9,
          "lines_added": 267,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-sweden.md",
            "prompts/runs/2026-10-26-session_01HGWuvoyWzQ4BE8zE32YhNu.json",
            "ventures/einvoice-preflight/sweden-e-invoice-mandate.html",
            "ventures/einvoice-preflight/sweden-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e81b9b1046be9e5f25bae7299701a12decee78b0",
          "at": 1793033938000,
          "title": "einvoice-preflight: Turkey e-Fatura/e-Arşiv mandate page",
          "pr": 10683,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Turkey e-Fatura/e-Arşiv mandate page, hub row, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 10,
          "lines_added": 188,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-turkey-e-fatura.md",
            "prompts/runs/2026-10-26-session_01AqGdtFudAHQgLjRjtpCGoT.json",
            "ventures/einvoice-preflight/turkey-e-invoice-mandate.html",
            "ventures/einvoice-preflight/turkey-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "088161e64cf916868135da030349d293b389410d",
          "at": 1793034868000,
          "title": "einvoice-preflight: Japan qualified-invoice page with T-number check and Oct 2026 credit step",
          "pr": 10684,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "einvoice-preflight: Japan qualified-invoice page with T-number check digit and Oct 2026 credit step"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 11,
          "lines_added": 303,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-japan.md",
            "prompts/runs/2026-10-26-session_01GVDNdTaacdUFtKYX9tR9Qn.json",
            "ventures/einvoice-preflight/japan-invoice-system-e-invoice-mandate.html",
            "ventures/einvoice-preflight/japan-invoice-system-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/japan.mjs",
            "ventures/einvoice-preflight/japan.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "83feb99599166ab24b5b6768a82c35f74b2b80b8",
          "at": 1793034987000,
          "title": "einvoice-preflight: Switzerland mandate page",
          "pr": 10688,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Switzerland mandate page, hub row, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 10,
          "lines_added": 186,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-switzerland.md",
            "prompts/runs/2026-10-26-session_013r6hbnapBtn1h4VUdKEK2q.json",
            "ventures/einvoice-preflight/switzerland-e-invoice-mandate.html",
            "ventures/einvoice-preflight/switzerland-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "299d9e597f8d8c2a093eb295ea38185039c38a9a",
          "at": 1793041153000,
          "title": "einvoice-preflight: Cyprus mandate page",
          "pr": 10706,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Cyprus mandate page (B2G receipt only, no B2B mandate)",
            "einvoice-preflight: Cyprus mandate page (B2G receipt only, no B2B mandate)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 9,
          "lines_added": 194,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-cyprus.md",
            "prompts/runs/2026-10-26-session_013uvsTYDrw16wHhdm3vXdsC.json",
            "ventures/einvoice-preflight/cyprus-e-invoice-mandate.html",
            "ventures/einvoice-preflight/cyprus-e-invoice-mandate.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9b3c615cae9d01e82b3eabbf5dc7293eac25fb79",
          "at": 1793044891000,
          "title": "einvoice-preflight: Mexico CFDI page with RFC check-digit test",
          "pr": 10716,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 12,
          "lines_added": 276,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-mexico.md",
            "prompts/runs/2026-10-27-session_01RQ4r3bEfzDtKK7KBMkub7Z.json",
            "ventures/einvoice-preflight/mexico-cfdi-e-invoice-mandate.html",
            "ventures/einvoice-preflight/mexico-cfdi-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/mexico.mjs",
            "ventures/einvoice-preflight/mexico.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d30c26cebe577a39958fb9a63f73a3796dda6dba",
          "at": 1793053799000,
          "title": "einvoice-preflight: Brazil NF-e page with CNPJ/CPF check-digit test",
          "pr": 10739,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 52,
          "lines_added": 452,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-einvoice-preflight-brazil.md",
            "prompts/runs/2026-10-26-session_01GEC8mQqaPSw18JEnGtYqBN.json",
            "ventures/einvoice-preflight/brazil-nfe-e-invoice-mandate.html",
            "ventures/einvoice-preflight/brazil-nfe-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/brazil.mjs",
            "ventures/einvoice-preflight/brazil.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "hearth-and-horizon",
      "merges": [
        {
          "sha": "263ee64629bd77e3fe7ba770f3ae03ddfa555698",
          "at": 1792977034000,
          "title": "Hearth & Horizon: The Folded Paper (text only)",
          "pr": 10523,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Folded Paper (text only), bible row, post",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 478,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-folded-paper-delayed-prescription-story.md",
            "prompts/runs/2026-10-26-session_014Z1oEbWJJ7g9uNJtUVFAnh.json",
            "ventures/hearth-and-horizon/stories/the-folded-paper.md",
            "ventures/hearth-and-horizon/the-folded-paper.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "314be74639bc32939d10c2a2ac98db69dda3926b",
          "at": 1792980617000,
          "title": "Hearth & Horizon: The Book Says Twenty-One (For Other Minds, text only)",
          "pr": 10535,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Book Says Twenty-One (For Other Minds, text only), bible row, post",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 494,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-book-says-twenty-one-for-other-minds.md",
            "prompts/runs/2026-10-26-session_011PKFoDLrQhXENu4ebjCasJ.json",
            "ventures/hearth-and-horizon/stories/the-book-says-twenty-one.md",
            "ventures/hearth-and-horizon/the-book-says-twenty-one.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7a1a0cc4fe7b4a2ec1c4ea6ef6bfc2ff954a6901",
          "at": 1792981323000,
          "title": "Hearth & Horizon: The Four Minutes (text only)",
          "pr": 10541,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Four Minutes (text only), bible row, post",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 459,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-four-minutes-defibrillator-drone-island-story.md",
            "prompts/runs/2026-10-26-session_01DtGRkoZRUPHwyC79qgLYtK.json",
            "ventures/hearth-and-horizon/stories/the-four-minutes.md",
            "ventures/hearth-and-horizon/the-four-minutes.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b5bededd34f01dd43e64277bc0f28eecd8211da2",
          "at": 1792984251000,
          "title": "Hearth & Horizon: The Thirty-Minute Cycle (text only)",
          "pr": 10548,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Thirty-Minute Cycle (text only)",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 459,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-thirty-minute-cycle-altitude-steriliser-story.md",
            "prompts/runs/2026-10-26-session_015ocE16wvMQkytjDd9EQSqA.json",
            "ventures/hearth-and-horizon/stories/the-thirty-minute-cycle.md",
            "ventures/hearth-and-horizon/the-thirty-minute-cycle.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3c49caba993f989a97b45753e987c3e544646fff",
          "at": 1792991516000,
          "title": "Hearth & Horizon: The Last Barge (text only)",
          "pr": 10564,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Last Barge (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 439,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-last-barge-erosion-cemetery-hearth-and-horizon-story.md",
            "prompts/runs/2026-10-26-session_016LoZM7ckh7jANRkAWLGb3s.json",
            "ventures/hearth-and-horizon/stories/the-last-barge.md",
            "ventures/hearth-and-horizon/the-last-barge.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fffb7b7fffa46e8b40b02afc48ddbb2abe1c9215",
          "at": 1792994349000,
          "title": "Hearth & Horizon: The Eighteenth Place (text only)",
          "pr": 10572,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Eighteenth Place (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 394,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-31-the-eighteenth-place-lead-in-water-hearth-and-horizon-story.md",
            "prompts/runs/2026-10-26-session_01FaMJ79s7qWEPg3e98uFuDA.json",
            "ventures/hearth-and-horizon/stories/the-eighteenth-place.md",
            "ventures/hearth-and-horizon/the-eighteenth-place.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e2fd2338dd539cadc88d64ae5a07cca3468bba7f",
          "at": 1793005903000,
          "title": "Hearth & Horizon: The Clear Reading (text only)",
          "pr": 10607,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Clear Reading (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 475,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-clear-reading-screening-base-rate-hearth-and-horizon-story.md",
            "prompts/runs/2026-10-26-session_01PQbXT55VzvjyeV2t6j1LCx.json",
            "ventures/hearth-and-horizon/stories/the-clear-reading.md",
            "ventures/hearth-and-horizon/the-clear-reading.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "039b51f27ade6631e9a0590111b9b1838293a939",
          "at": 1793008967000,
          "title": "Hearth & Horizon: Three Plain and a Bob (text only)",
          "pr": 10615,
          "agent": "Claude",
          "models": [],
          "track": "creative",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 493,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-three-plain-and-a-bob-bell-ringing-hearth-and-horizon-story.md",
            "prompts/runs/2026-10-27-session_013fhunpkSKJ2QEgowrUkbpU.json",
            "ventures/hearth-and-horizon/stories/three-plain-and-a-bob.md",
            "ventures/hearth-and-horizon/three-plain-and-a-bob.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ffaaf051d7dd3c0b72995799417eda9c9ccd7d8c",
          "at": 1793009071000,
          "title": "Hearth & Horizon: The Third List (text only)",
          "pr": 10616,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Hearth & Horizon: The Third List (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 557,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-third-list-capture-recapture-homeless-count-story.md",
            "prompts/runs/2026-10-26-session_018jqhSJ7YTYRaemny2vJidg.json",
            "ventures/hearth-and-horizon/stories/the-third-list.md",
            "ventures/hearth-and-horizon/the-third-list.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "877b571ed2942be77ebfdf8995fbc5ca725b9004",
          "at": 1793049055000,
          "title": "hearth-and-horizon: More Roof (rainwater tank story, text only)",
          "pr": 10731,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: More Roof, rainwater tank story (text only; audio folders over 400 MB)",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 400,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-a-bigger-tank-buys-nothing-in-a-dry-year.md",
            "prompts/runs/2026-10-26-session_01XGqzGHEgPWiBbt4WhTQHWQ.json",
            "ventures/hearth-and-horizon/more-roof.html",
            "ventures/hearth-and-horizon/stories/more-roof.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6a5ba06c043332bf02f9b711af77a685d373e67d",
          "at": 1793049178000,
          "title": "hearth-and-horizon: The Latest Easter (Vaarsay, Orkney, 2038; text only)",
          "pr": 10732,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Latest Easter (Vaarsay, Orkney, 2038; text only)",
            "prompts: run record for creative run (the-latest-easter)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 10,
          "lines_added": 636,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-the-latest-easter.md",
            "prompts/runs/2026-10-26-session_01BLUTSpP2GzzmbdhfNZtWdQ.json",
            "ventures/hearth-and-horizon/stories/the-latest-easter.md",
            "ventures/hearth-and-horizon/the-latest-easter.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d3e9b1370e8e10545172d8087f24b69eb061ff55",
          "at": 1793049747000,
          "title": "hearth-and-horizon: Before the Fourteenth (altar-wine harvest, Alentejo, 2050; text only)",
          "pr": 10736,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: Before the Fourteenth (altar-wine harvest, Alentejo, 2050; text only)",
            "prompts: run record for creative run (before-the-fourteenth)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 460,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-before-the-fourteenth-altar-wine-harvest-date.md",
            "prompts/runs/2026-10-26-session_01QvUYxdgfzdFc3Qv5j7enzv.json",
            "ventures/hearth-and-horizon/before-the-fourteenth.html",
            "ventures/hearth-and-horizon/stories/before-the-fourteenth.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "33c62c0d7131100916fd9ae332a990c48e679df1",
          "at": 1793049807000,
          "title": "hearth-and-horizon: The Neap Week (tide mill story, text only)",
          "pr": 10737,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Neap Week (tide mill story, text only; audio folders over 400 MB)",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 428,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-half-the-tide-a-fifth-of-the-power.md",
            "prompts/runs/2026-10-26-session_01H625supScvfdCBroomQdB1.json",
            "ventures/hearth-and-horizon/stories/the-neap-week.md",
            "ventures/hearth-and-horizon/the-neap-week.html"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "shift-roster-builder",
      "merges": [
        {
          "sha": "b561a2b41f7ea4b2bb8cd68bf8f2a76335ad1a43",
          "at": 1792988045000,
          "title": "shift-roster-builder: independent ILP cross-check of open hours (35 h, not 36)",
          "pr": 10557,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: independent ILP cross-check of open hours on 12 seeded weeks (35 h, not 36, at 8x22 week 3)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 7,
          "lines_added": 190,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-shift-roster-ilp-check.md",
            "docs/reports/shift-roster-ilp-check.md",
            "prompts/runs/2026-10-26-session_016kAhq5yCuhakb9rYQYFgNJ.json",
            "ventures/shift-roster-builder/eval/ilp-check.py",
            "ventures/shift-roster-builder/eval/ilp-export.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "031498c9e751a03b8e9b051f6dd22121a926d4ba",
          "at": 1792996183000,
          "title": "shift-roster-builder: coverage plateau pass closes the last open hour on 12 of 12 seeded weeks",
          "pr": 10580,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: coverage plateau pass closes the last open hour on 12 of 12 seeded weeks"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 8,
          "lines_added": 173,
          "lines_removed": 9,
          "added_files": [
            "docs/posts/2026-10-31-roster-builder-finds-the-last-hour.md",
            "prompts/runs/2026-10-26-session_017sbPQfdqfPz7NrKy89j7m6.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "391a4513ead5a2a594e3460480c5da096c80d6fb",
          "at": 1792999325000,
          "title": "shift-roster-builder: branch on the open-hours price; floor equals ILP optimum on 10 of 12 weeks",
          "pr": 10589,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: branch on the open-hours price to tighten the coverage floor (WIP, bench pending)",
            "shift-roster-builder: open-hours floor equals the ILP optimum on 10 of 12 weeks (was 5), README, post, flagship next"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 6,
          "lines_added": 153,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-26-roster-proof-branches-on-open-hours.md",
            "prompts/runs/2026-10-26-session_01LTjNyoWmvHggy7S7imoUSd.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8e20b13f79797fb65494cf5ed0f6b8debace0da0",
          "at": 1793002633000,
          "title": "shift-roster-builder: 10x coverBranch search leaves the last floor gaps unchanged",
          "pr": 10598,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: ilp-export reads coverBranch limits from CBN and CBMS",
            "shift-roster-builder: 10x coverBranch search leaves the last floor gaps unchanged; next is a stronger cut"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 4,
          "lines_added": 55,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_012nckgzbkTyctRTLecWVkyN.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "77e28ff81478f0f969cd748a9873d79dc5da5e90",
          "at": 1793004008000,
          "title": "shift-roster-builder: more coverage plateau walks close a 5 h search gap",
          "pr": 10602,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: more coverage plateau walks close a 5 h search gap on 10x28 week 5",
            "ventures: run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 6,
          "lines_added": 78,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-26-shift-roster-builder-plateau-walks.md",
            "docs/reports/shift-roster-plateau-walk-2026-10-26.md",
            "prompts/runs/2026-10-26-session_01KRoBsjy5hyHiyQJ14S1k7V.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ba7fccfabfa0dc5d85b52552a3e1bd2e21ab5366",
          "at": 1793012707000,
          "title": "shift-roster-builder: cover-bench and a measured negative on three-person chains",
          "pr": 10627,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 4,
          "lines_added": 29,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-shift-roster-three-person-chain-negative.md",
            "ventures/shift-roster-builder/eval/cover-bench.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6881b1a44ab0fa6a12172530925dd1a64db6ec7e",
          "at": 1793018993000,
          "title": "shift-roster-builder: exact large-neighbourhood repair of open hours (10x28 week 7 and 12x30 weeks reach the ILP optimum)",
          "pr": 10645,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 5,
          "lines_added": 84,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-26-shift-roster-exact-repair.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "82f74bf5551f3c0f8b89a550307e116353408e8e",
          "at": 1793024737000,
          "title": "shift-roster-builder: coverRepair ends on a node budget (deterministic)",
          "pr": 10657,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: coverRepair ends on a node budget, not the clock, and is on by default (WIP: guide-page numbers not yet re-derived)",
            "shift-roster-builder: deterministic coverRepair node budget, test, README and flagship notes (default-on tried, 9 page tests fail, kept off)",
            "flagships: shift-roster-builder next after the coverRepair node budget"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 6,
          "lines_added": 73,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-27-shift-roster-builder-repair-search-same-roster-every-machine.md",
            "prompts/runs/2026-10-26-session_019Yd8ELhjXeuGoqQy3LVz3c.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8f9667d2d0deb4e7f946a4fee5f1877115a7f7f3",
          "at": 1793037704000,
          "title": "shift-roster-builder: record dropped forced-open bound for coverRepair",
          "pr": 10695,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: coverRepair prunes on hours no picked person can take (exact; unmeasured WIP)",
            "Revert \"shift-roster-builder: coverRepair prunes on hours no picked person can take (exact; unmeasured WIP)\"",
            "shift-roster-builder README: record the dropped forced-open bound for coverRepair"
          ],
          "detail": "This reverts commit cad11574c7f1820f9850be46ace878a6a94438d8.",
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 1,
          "lines_added": 1,
          "lines_removed": 1,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2517eef4a12567b0b89b64faf07a155a3462964b",
          "at": 1793041728000,
          "title": "shift-roster-builder: coverRepair default-on measured, trades open hours for open shifts, stays off",
          "pr": 10707,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 4,
          "lines_added": 55,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-shift-roster-builder-fewer-hours-more-open-shifts.md",
            "prompts/runs/2026-10-26-session_016M4DBgCSh7AJ9EsM7xr6Yv.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a1d01aa810b149c25284a74c7b1c08c1a9f35681",
          "at": 1793059168000,
          "title": "shift-roster-builder: coverRepair prefers fewer open shifts at equal open hours",
          "pr": 10761,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 5,
          "lines_added": 32,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-28-shift-roster-builder-open-shifts-versus-open-hours.md"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "saints-by-candlelight",
      "merges": [
        {
          "sha": "ef705961963814fe96a805b26f62da22c11f5ded",
          "at": 1792977704000,
          "title": "Saints by Candlelight: Martin of Tours and the Half a Cloak (text only)",
          "pr": 10530,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Martin of Tours and the Half a Cloak (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 469,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-saint-martin-half-a-cloak-bedtime-episode.md",
            "prompts/runs/2026-10-26-session_01VRXxiTbumsmaYsNa9EGmui.json",
            "ventures/saints-by-candlelight/episodes/030-martin-of-tours-and-the-half-a-cloak.md",
            "ventures/saints-by-candlelight/martin-of-tours-and-the-half-a-cloak.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "aee110064500c17f3112d653d4820d7fc5085466",
          "at": 1792981260000,
          "title": "Saints by Candlelight: Seraphim of Sarov and the Bear in the Clearing (text only)",
          "pr": 10539,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Seraphim of Sarov and the Bear in the Clearing (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 533,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-saints-by-candlelight-seraphim-of-sarov.md",
            "prompts/runs/2026-10-26-session_015RSAXuGki5HXGQ8REZe5z3.json",
            "ventures/saints-by-candlelight/episodes/031-seraphim-of-sarov-and-the-bear-in-the-clearing.md",
            "ventures/saints-by-candlelight/seraphim-of-sarov-and-the-bear-in-the-clearing.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "998c3cf5e3f35b27f934c4ac2f930f7f86671476",
          "at": 1792987793000,
          "title": "Saints by Candlelight: Samuel and the Voice in the Night (text only)",
          "pr": 10555,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Samuel and the Voice in the Night (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 596,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_01Ew2nFsUsfWAo7s68dgt5Nt.json",
            "ventures/saints-by-candlelight/episodes/032-samuel-and-the-voice-in-the-night.md",
            "ventures/saints-by-candlelight/samuel-and-the-voice-in-the-night.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cc641e6f0460d023a0ca87fb89dd39b5d78948b2",
          "at": 1792992076000,
          "title": "Saints by Candlelight: Rebekah and the Camels at the Well (text only)",
          "pr": 10568,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Rebekah and the Camels at the Well (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 624,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_01H6McRt3C3cFk9MFDZZHGPS.json",
            "ventures/saints-by-candlelight/episodes/033-rebekah-and-the-camels-at-the-well.md",
            "ventures/saints-by-candlelight/rebekah-and-the-camels-at-the-well.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cb01af4fbbd9a99112c70cd071ffb483ec2c23a4",
          "at": 1793006440000,
          "title": "Saints by Candlelight: Jacob and the Ladder at Bethel (text only)",
          "pr": 10613,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Jacob and the Ladder at Bethel (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 424,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_013d6MybmnknqY5W8quqFF4A.json",
            "ventures/saints-by-candlelight/episodes/034-jacob-and-the-ladder-at-bethel.md",
            "ventures/saints-by-candlelight/jacob-and-the-ladder-at-bethel.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7c125f0c4cc03288b3c8530c4b5927dd10bd7dae",
          "at": 1793009605000,
          "title": "Saints by Candlelight: Tobias and the Angel on the Road to Media (text only)",
          "pr": 10620,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "Saints by Candlelight: Tobias and the Angel on the Road to Media (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 474,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_01JSG39Abw4PvzdohQfN3V6a.json",
            "ventures/saints-by-candlelight/episodes/035-tobias-and-the-angel-on-the-road-to-media.md",
            "ventures/saints-by-candlelight/tobias-and-the-angel-on-the-road-to-media.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a1e7596b1b9f417d871921bf29a63ba51c369ef9",
          "at": 1793042672000,
          "title": "saints-by-candlelight: episode 36, Naaman and the Seven Dips in the Jordan",
          "pr": 10713,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 36, Naaman and the Seven Dips in the Jordan (text only)",
            "prompts: run record for creative run (episode 36)",
            "flagships: trim ai-bookkeeper next under the 2,000 character cap (red on main)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 8,
          "lines_added": 531,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-26-saints-by-candlelight-naaman-and-the-jordan.md",
            "prompts/runs/2026-10-26-session_01YVmrSQNdWHKe3GaLsrWqKX.json",
            "ventures/saints-by-candlelight/episodes/036-naaman-and-the-seven-dips-in-the-jordan.md",
            "ventures/saints-by-candlelight/naaman-and-the-seven-dips-in-the-jordan.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "533ab57bbe08a8c13050165c5479263b639bb92b",
          "at": 1793055532000,
          "title": "saints-by-candlelight: episode 37, Moses and the Bush That Was Not Consumed (text only)",
          "pr": 10749,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 37, Moses and the Bush That Was Not Consumed (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 559,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_01CnZZjXuzbQTfoCJiBccbia.json",
            "ventures/saints-by-candlelight/episodes/037-moses-and-the-bush-that-was-not-consumed.md",
            "ventures/saints-by-candlelight/moses-and-the-bush-that-was-not-consumed.html"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "quick-pick-survey",
      "merges": [
        {
          "sha": "4987e8d816dad7dcdb86d35376a4d0998401d18b",
          "at": 1792998122000,
          "title": "quick-pick-survey: selectors measured at budgets up to 40x the list length",
          "pr": 10583,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "quick-pick-survey: selectors measured at budgets up to 40x the list length (no stall; hybrid dips at 300 answers)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 5,
          "lines_added": 124,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-26-quick-pick-survey-long-budgets.md",
            "prompts/runs/2026-10-26-session_01Tz1F5fqQYbehVfWsbodbnf.json",
            "ventures/quick-pick-survey/src/lib/longBudget.simulation.test.ts"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1f815e1feb5ca8d002e7414ae3d9f1c499d025ab",
          "at": 1792998906000,
          "title": "quick-pick-survey: pool cap costs no rank accuracy at deep budgets",
          "pr": 10587,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": null,
          "bullets": [
            "quick-pick-survey: deep-budget pool-cap simulation cells (results to follow)",
            "quick-pick-survey: pool cap costs no rank accuracy at 4 and 8 answers per item on 500 items",
            "flagships: quick-pick-survey next updated after deep-budget cells"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 3,
          "lines_added": 31,
          "lines_removed": 2,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "45f097e05f5953a1855c5646740882730b5781bc",
          "at": 1793046887000,
          "title": "quick-pick-survey: hybrid selector holds up against an inconsistent respondent",
          "pr": 10722,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "quick-pick-survey: simulation for the hybrid dip and an inconsistent respondent (measurement pending)",
            "quick-pick-survey: hybrid selector holds up against an inconsistent respondent; the 300-answer dip was noise"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 6,
          "lines_added": 130,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-quick-pick-survey-inconsistent-respondent.md",
            "prompts/runs/2026-10-26-session_0131y2noa8W3CFK4dExRf7hB.json",
            "ventures/quick-pick-survey/src/lib/hybridDip.simulation.test.ts"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "sales-agent",
      "merges": [
        {
          "sha": "7aea25d5fbe24d3c4d392f035e04cd60c99965bd",
          "at": 1792990726000,
          "title": "sales-agent: recognise DE/FR/ES/IT/PT/NL auto-replies and opt-outs in reply triage",
          "pr": 10563,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "sales-agent"
          },
          "files": 3,
          "lines_added": 35,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-31-sales-agent-non-english-replies.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6605aaf4201c47ad9f9d105eacd17d12461df6c2",
          "at": 1793005212000,
          "title": "sales-agent: strip non-English 'wrote:' quote headers (mailgun/talon real emails, 11 of 12 clean before)",
          "pr": 10603,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "sales-agent"
          },
          "files": 7,
          "lines_added": 278,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-sales-agent-foreign-quote-headers.md",
            "ventures/sales-agent/eval/real-threads/LICENSE-talon",
            "ventures/sales-agent/eval/real-threads/talon-android.eml"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "job-application-tracker",
      "merges": [
        {
          "sha": "1f876b62d9117115ac6fb189d4a8fa64c9e6259c",
          "at": 1793026748000,
          "title": "redteam: job-application-tracker 2026-10-26",
          "pr": 10666,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: job-application-tracker 2026-10-26 (fix ICS semicolon escape, boundary tests)",
            "redteam record: PR number"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "job-application-tracker"
          },
          "files": 3,
          "lines_added": 258,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_01HZiVd5geMQkHCtdpp5GjMN.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "photo-editing",
      "merges": [
        {
          "sha": "89a5001950dca331ac7ce9f340c2af73837d01f8",
          "at": 1792983669000,
          "title": "photo-editing: opt-in closed-eye and face scoring via an external detector command",
          "pr": 10543,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "photo-editing"
          },
          "files": 6,
          "lines_added": 214,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-26-shootflow-closed-eye-culling.md",
            "ventures/photo-editing/src/shootflow/faces.py",
            "ventures/photo-editing/tests/test_faces.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "several products at once",
      "merges": [
        {
          "sha": "eacb843a258be0e4008fd300c69a05fc5104389e",
          "at": 1792977590000,
          "title": "ventures: fix 15 suites left red by the inline favicon sweep",
          "pr": 10527,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ventures: fix 15 suites left red by the inline favicon sweep"
          ],
          "detail": "Tests allow the SVG xmlns and skip the icon tag; build scripts for estimate-maker, sales-cadence-builder and self-hosted-saas-stack emit it.",
          "area": {
            "kind": "product",
            "name": "several products at once"
          },
          "files": 17,
          "lines_added": 150,
          "lines_removed": 15,
          "added_files": [
            "docs/posts/2026-10-26-favicon-sweep-broke-15-venture-suites.md",
            "prompts/runs/2026-10-26-session_016dpwo1kAKiH1h868xJbLgP.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "research": [
    {
      "name": "llm-coding-inference",
      "merges": [
        {
          "sha": "81a4a8c225845e86b31003f588e23d413fe42b93",
          "at": 1792974610000,
          "title": "research/llm-coding-inference: milestone 6m, HC3-type leverage for PPI++ at small audits",
          "pr": 10513,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6m plan, HC3-type leverage for PPI++ at small audits",
            "research/llm-coding-inference: milestone 6m outcome, HC3-type leverage closes most of the small-audit PPI++ gap"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 8,
          "lines_added": 364,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-small-audits-leverage-correction-ppi.md",
            "prompts/runs/2026-10-26-session_01S38SUi3SRe1vouCsuowNS4.json",
            "research/llm-coding-inference/experiments/h6m_lexicon-en.txt",
            "research/llm-coding-inference/experiments/h6m_nb-english.txt",
            "research/llm-coding-inference/experiments/h6m_nb-in-language.txt",
            "research/llm-coding-inference/experiments/h6m_ppi_hc3.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6d944d9320859486b6dbe8115c8a798ac67d5c7d",
          "at": 1792985200000,
          "title": "research/llm-coding-inference: milestone 6n, width of valid PPI++ intervals",
          "pr": 10550,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: pre-register milestone 6n (width of valid PPI++ intervals) and add script",
            "research/llm-coding-inference: milestone 6n results and run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 241,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01UvjJ7Yx3u6Vgm5WUJ33SWL.json",
            "research/llm-coding-inference/experiments/h6n_lexicon-en.txt",
            "research/llm-coding-inference/experiments/h6n_nb-english.txt",
            "research/llm-coding-inference/experiments/h6n_nb-in-language.txt",
            "research/llm-coding-inference/experiments/h6n_width.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b345bbf12ba4e83300ce7e8a87c3d96f5a030e1a",
          "at": 1792985334000,
          "title": "research/llm-coding-inference: milestone 6n, interval width of valid PPI++",
          "pr": 10551,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6n plan and width script",
            "research/llm-coding-inference: 6n drop degenerate-leverage draws",
            "research/llm-coding-inference: milestone 6n width outcome, run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 316,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_014dTh2PUvU1EGXfL9sSAiTT.json",
            "research/llm-coding-inference/experiments/h6n_nanfix.py",
            "research/llm-coding-inference/experiments/h6n_nanfix_lexicon-en.txt",
            "research/llm-coding-inference/experiments/h6n_nanfix_nb-english.txt",
            "research/llm-coding-inference/experiments/h6n_nanfix_nb-in-language.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c8764462bf458f1d4a9e0d491fa09f9403ab3080",
          "at": 1792989292000,
          "title": "research/llm-coding-inference: milestone 5, first real LLM coder",
          "pr": 10561,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5 plan, LLM coder and width scripts (predictions logged before running)",
            "research/llm-coding-inference: milestone 5, first real LLM coder (outcome, scores, README, post)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 11,
          "lines_added": 6445,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-31-llm-coder-small-gain.md",
            "prompts/runs/2026-10-26-session_013iUrnuJ4scVbXZZEMJmExR.json",
            "research/llm-coding-inference/experiments/h3_lexicon-en.txt",
            "research/llm-coding-inference/experiments/h3_llm-Qwen2.5-1.5B-Instruct.txt",
            "research/llm-coding-inference/experiments/h3_llm_width.py",
            "research/llm-coding-inference/experiments/h3_nb-english.txt",
            "research/llm-coding-inference/experiments/h3_nb-in-language.txt",
            "research/llm-coding-inference/experiments/llm_code.py",
            "research/llm-coding-inference/experiments/llm_scores_Qwen2.5-1.5B-Instruct.tsv"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "113262fabf934b923b4f1adfa8929e9b36161838",
          "at": 1793013163000,
          "title": "research/llm-coding-inference: paper draft 1 (regression, small audits, real LLM)",
          "pr": 10629,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: paper draft 1, regression, small-audit and real-LLM section"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 5,
          "lines_added": 124,
          "lines_removed": 18,
          "added_files": [
            "docs/posts/2026-10-26-llm-coding-inference-paper-draft-1.md",
            "prompts/runs/2026-10-26-session_01WFobJn8q9KVpTXtyzGkdSG.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2c52ecdeb729c3b4ca53a887c388257afb7c0a41",
          "at": 1793017470000,
          "title": "research/llm-coding-inference: milestone 5b, LLM coder size vs PPI++ width",
          "pr": 10639,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5b plan (model-size scaling), logged before running",
            "research/llm-coding-inference: milestone 5b, 0.5B scores and widths",
            "research/llm-coding-inference: milestone 5b, Qwen2.5 0.5B/1.5B/3B zero-shot width comparison",
            "prompts: run record for research/llm-coding-inference 5b"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 8,
          "lines_added": 12138,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-llm-coder-size-does-not-buy-narrower-intervals.md",
            "prompts/runs/2026-10-26-session_01BqK9KH9HwNZcKMAeZtjzdb.json",
            "research/llm-coding-inference/experiments/h3_llm-Qwen2.5-0.5B-Instruct.txt",
            "research/llm-coding-inference/experiments/h3_llm-Qwen2.5-3B-Instruct.txt",
            "research/llm-coding-inference/experiments/llm_scores_Qwen2.5-0.5B-Instruct.tsv",
            "research/llm-coding-inference/experiments/llm_scores_Qwen2.5-3B-Instruct.tsv"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c014723ae9ba27cf8cd03cf5ec623f0372fa72a9",
          "at": 1793017688000,
          "title": "research/llm-coding-inference: milestone 5c, calibrated cut on charged labels",
          "pr": 10640,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5c, calibrated cut on charged human labels"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 8,
          "lines_added": 222,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-does-calibrating-an-llm-coder-pay-for-its-labels.md",
            "prompts/runs/2026-10-26-session_0178y5z38BsKNSnBLJnctVRq.json",
            "research/llm-coding-inference/experiments/h5c_Qwen2.5-0.5B-Instruct.txt",
            "research/llm-coding-inference/experiments/h5c_Qwen2.5-1.5B-Instruct.txt",
            "research/llm-coding-inference/experiments/h5c_Qwen2.5-3B-Instruct.txt",
            "research/llm-coding-inference/experiments/h5c_calibrated.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5ba117f28e1cec23d56900aea8f881b8908bf702",
          "at": 1793020788000,
          "title": "research/llm-coding-inference: milestone 5d, break-even accuracy of a synthetic coder",
          "pr": 10648,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 5,
          "lines_added": 118,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-how-accurate-must-an-llm-coder-be.md",
            "research/llm-coding-inference/experiments/h5d_breakeven.py",
            "research/llm-coding-inference/experiments/h5d_breakeven.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a34acde0ee8e7e39755e118325bec844f12451db",
          "at": 1793024787000,
          "title": "research/llm-coding-inference: milestone 5e, correlated coder error at matched accuracy",
          "pr": 10662,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5e, correlated coder error at matched accuracy"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 265,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-llm-coder-error-shape-ppi.md",
            "prompts/runs/2026-10-26-session_013m37StWi9aMduJ7rRnNewQ.json",
            "research/llm-coding-inference/experiments/h5e_correlated.py",
            "research/llm-coding-inference/experiments/h5e_correlated.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1cec8e6816e9a1d3443a20ac5761b311d71cac6c",
          "at": 1793028602000,
          "title": "research/llm-coding-inference: milestone 5f, coder error at 0.70 and 0.60 accuracy",
          "pr": 10672,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5f, coder error at 0.70 and 0.60 accuracy with a text-feature mechanism",
            "prompts: run record for llm-coding-inference 5f"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 200,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-why-a-weak-llm-coder-gives-no-gain.md",
            "prompts/runs/2026-10-26-session_01JonzMhKM22DJobEBgLezVv.json",
            "research/llm-coding-inference/experiments/h5f_text_error.py",
            "research/llm-coding-inference/experiments/h5f_text_error.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c9a385f512251294ab3072aee077b39788577800",
          "at": 1793034787000,
          "title": "research/llm-coding-inference: milestone 5g, synthetic coder fitted to real coder errors",
          "pr": 10686,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5g, synthetic coder fitted to real 1.5B/3B errors",
            "prompts: run record for llm-coding-inference 5g"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 4,
          "lines_added": 177,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01EV1d8YZpNZ1rSC5MAR6o6f.json",
            "research/llm-coding-inference/experiments/h5g_fitted.py",
            "research/llm-coding-inference/experiments/h5g_fitted.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9088b5fe63b5371f7d5d77ef0ea9b18abfc47929",
          "at": 1793035288000,
          "title": "research/llm-coding-inference: paper draft 1.1, what a coder must be to pay",
          "pr": 10692,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: paper draft 1.1 adds Section 8, what a coder must be to pay",
            "prompts: run record for llm-coding-inference paper step"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 4,
          "lines_added": 121,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-26-how-good-must-an-llm-coder-be-to-pay.md",
            "prompts/runs/2026-10-26-session_01Pcmz7d8jVamACU3ALyJoGB.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3a8b7df07af669ea05c10575ce68aeacd446a151",
          "at": 1793035489000,
          "title": "research/llm-coding-inference: milestone 5h, informedness not agreement explains the real coders' null",
          "pr": 10693,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 5g, informedness (not agreement) explains the real coders' null",
            "prompts: run record for research/llm-coding-inference 5g"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 305,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-llm-coding-agreement-is-the-wrong-axis.md",
            "prompts/runs/2026-10-26-session_01SexJN51D19rYodinsGf3Kb.json",
            "research/llm-coding-inference/experiments/h5h_informedness.py",
            "research/llm-coding-inference/experiments/h5h_informedness.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fe5896f9b79068ed3087fd962d9076851df01574",
          "at": 1793042374000,
          "title": "research/llm-coding-inference: paper draft 1.2 corrects Section 8 for 5h",
          "pr": 10712,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: paper draft 1.2 corrects Section 8 for 5h (informedness), blog post"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 4,
          "lines_added": 91,
          "lines_removed": 14,
          "added_files": [
            "prompts/runs/2026-10-26-session_01DD6z86mAjANk1cBRL2r9WR.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "278fc28781a192b58ee1115df492d2d61a491f27",
          "at": 1793046137000,
          "title": "research/llm-coding-inference: milestone 6o, audit-size rule on a second corpus",
          "pr": 10726,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6o, audit-size rule on a second corpus"
          ],
          "detail": "Prediction 4 (weak coders save labels) refuted: PPI plan needs 1.23 to 1.58x the human-only audit.",
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 7,
          "lines_added": 267,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-llm-coding-inference-audit-size-second-corpus.md",
            "prompts/runs/2026-10-26-session_019EwRxtQRJ5NfzZegqzgNPV.json",
            "research/llm-coding-inference/experiments/h6o_reddit_sizing.py",
            "research/llm-coding-inference/experiments/h6o_reddit_sizing.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "141e76b17c32f7de08c68de1f4293bf78b07678c",
          "at": 1793049264000,
          "title": "research/llm-coding-inference: milestone 6p, lambda-aware audit-size rule",
          "pr": 10734,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6p, lambda-aware audit-size rule (tuned per-stratum PPI)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 9,
          "lines_added": 374,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-tune-the-control-variate-before-sizing-an-audit.md",
            "docs/reports/llm-coding-inference-milestone-6p.md",
            "prompts/runs/2026-10-26-session_013yAmum4ox3faxUCVBQvGaL.json",
            "research/llm-coding-inference/experiments/h6p_lambda_sizing.py",
            "research/llm-coding-inference/experiments/h6p_lambda_sizing.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d1cbb4755e23b35dceb5b96cf4fe8c1e06fa9a7a",
          "at": 1793052870000,
          "title": "research/llm-coding-inference: milestone 6q, sizing rule with real Qwen coders and a pilot",
          "pr": 10743,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6q, sizing rule with real Qwen coders and a pilot"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 7,
          "lines_added": 335,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-size-the-audit-from-a-400-item-pilot.md",
            "docs/reports/llm-coding-inference-milestone-6q.md",
            "prompts/runs/2026-10-26-session_0179rcLUKFk1Bxo2vPMQvh2o.json",
            "research/llm-coding-inference/experiments/h6q_naija_sizing.py",
            "research/llm-coding-inference/experiments/h6q_naija_sizing.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fae218390ec07a76f7b2687b7a61f3ece704386e",
          "at": 1793056416000,
          "title": "research/llm-coding-inference: milestone 6r, pilot-estimated audit-size rule at a rare category",
          "pr": 10754,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6r, pilot-estimated audit-size rule at a rare category",
            "prompts: run record for research/llm-coding-inference 6r"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 7,
          "lines_added": 234,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-llm-coding-rare-category-pilot.md",
            "prompts/runs/2026-10-26-session_01WG5mWJjPxmkP7TNYV3QoPJ.json",
            "research/llm-coding-inference/experiments/h6r_rare_pilot.py",
            "research/llm-coding-inference/experiments/h6r_rare_pilot.txt"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "sim2real-inference",
      "merges": [
        {
          "sha": "508dfb9d08e9b5cce803e5f9cc8ba51cf3fcd8e2",
          "at": 1792973369000,
          "title": "research/sim2real-inference: m4c cluster bootstrap of SIMPLER intervals",
          "pr": 10512,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m4c cluster bootstrap of the SIMPLER intervals (n* 2.7 to 54 two-way)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 7,
          "lines_added": 205,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-simpler-twin-interval-clustered.md",
            "prompts/runs/2026-10-26-session_0123B5aSTAxq8qHEGxkhCPT5.json",
            "research/sim2real-inference/experiments/m4c_cluster/cluster.py",
            "research/sim2real-inference/experiments/m4c_cluster/results/summary_4c.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "862280199b19733edac22e7f09fbbab9a9e6990f",
          "at": 1792973422000,
          "title": "research/sim2real-inference: m4c, check SIMPLER eggplant values against the PDF",
          "pr": 10514,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m4c, check SIMPLER eggplant values against the PDF",
            "prompts: run record for research/0"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 7,
          "lines_added": 188,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-simpler-eggplant-pdf-check.md",
            "prompts/runs/2026-10-26-session_015BVeA5V5R1WRaNc2xMDS7Y.json",
            "research/sim2real-inference/experiments/m4b_crosscheck/pdf_check.py",
            "research/sim2real-inference/experiments/m4b_crosscheck/results/pdf_check.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "197059d6ea757d9ec98ef7e1bb9eab814a19f252",
          "at": 1792973713000,
          "title": "research/sim2real-inference: m4e, SIMPLER calibration with a held-out task or policy",
          "pr": 10516,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m4e, SIMPLER calibration with a held-out task or policy"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 7,
          "lines_added": 140,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_01SXU59yn77bzssjaLHm9Lxi.json",
            "research/sim2real-inference/experiments/m4e_transfer/results/summary_4e.txt",
            "research/sim2real-inference/experiments/m4e_transfer/transfer.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b1a09b98e0176f97bb89f18260b5339b9f0b9416",
          "at": 1792977061000,
          "title": "research/sim2real-inference: m4f, real trials per policy to rank as well as the SIMPLER twin",
          "pr": 10524,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m4f, real trials per policy to rank as well as the SIMPLER twin",
            "prompts: run record for research m4f"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 8,
          "lines_added": 159,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-26-session_012LDaeUjxZQRD9ojjxU87y1.json",
            "research/sim2real-inference/experiments/m4f_ranking/ranking.py",
            "research/sim2real-inference/experiments/m4f_ranking/results/summary_4f.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0571bbd254a6bc6757ab219facd38f45bd5f9acf",
          "at": 1792977089000,
          "title": "research/sim2real-inference: sync paper abstract to SIMPLER 4c/4e results",
          "pr": 10525,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: sync paper abstract to SIMPLER 4c/4e results; post"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 3,
          "lines_added": 60,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-sim2real-simpler-transfer.md",
            "prompts/runs/2026-10-26-session_01BkXJCKNXmTmrsbqk9edws7.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "683afbd478aeab9e8dab0ee6a65541069e01180b",
          "at": 1793002463000,
          "title": "research/sim2real-inference: m7q, our betting construction in SureSim's stated setting",
          "pr": 10597,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m7q, our betting construction in SureSim's stated setting (no win; 1 of 84 cells narrower)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 7,
          "lines_added": 218,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_01M66BiEhqLCJV8kAGmTRMuc.json",
            "research/sim2real-inference/experiments/m7q_suresim_setting/results/summary.txt",
            "research/sim2real-inference/experiments/m7q_suresim_setting/results/suresim_setting.csv",
            "research/sim2real-inference/experiments/m7q_suresim_setting/suresim_setting.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a92cbc4820d9cd33c41b45062ba76693814eeca3",
          "at": 1793006391000,
          "title": "research/sim2real-inference: m7s, SureSim's public repo holds no data or code",
          "pr": 10610,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m7s, SureSim public repo holds no data or code to replicate against"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 4,
          "lines_added": 141,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-sim2real-suresim-repo-check.md",
            "prompts/runs/2026-10-26-session_01R7VyGraRrd7PAo3u6AGoEn.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "222c3a6cee048d73d8ffc5378bd6bf736b885f9b",
          "at": 1793017100000,
          "title": "research/sim2real-inference: paper draft builds (m7t)",
          "pr": 10638,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: build the paper draft (m7t), add build line and post"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 4,
          "lines_added": 61,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-sim2real-paper-builds.md",
            "prompts/runs/2026-10-26-session_01M8DiDmtzxfoTqV9Cdf3o9T.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2db610a1faee3532c53dfb2911d531a61f953e05",
          "at": 1793038479000,
          "title": "research/sim2real-inference: m7u, SureSim's released interval code on our pairs",
          "pr": 10699,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: m7u, SureSim's released interval code run on our pairs (no saving; wider by 2x)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 9,
          "lines_added": 367,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-suresim-released-code-on-our-pairs.md",
            "prompts/runs/2026-10-26-session_01Leo8sJfSY4U4YqNnHDnKFp.json",
            "research/sim2real-inference/experiments/m7u_suresim_code/results/summary.txt",
            "research/sim2real-inference/experiments/m7u_suresim_code/results/suresim_code.csv",
            "research/sim2real-inference/experiments/m7u_suresim_code/suresim_code.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7c27f2c90b1abefaa4c566125a9930ba98369eef",
          "at": 1793041916000,
          "title": "research/sim2real-inference: milestone 7v, what the CoRL 2026 call requires",
          "pr": 10710,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: milestone 7v, what the CoRL 2026 call requires"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 3,
          "lines_added": 136,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_016EwnxyRwmBkoYe2VBFEYH2.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f84f6a08121dd6b486edea2d743e0d1500c620a1",
          "at": 1793053214000,
          "title": "research/sim2real-inference: restructure paper for CoRL framing (m7w)",
          "pr": 10746,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: restructure paper, SIMPLER leads, robustness in appendix (m7w)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 3,
          "lines_added": 77,
          "lines_removed": 16,
          "added_files": [
            "prompts/runs/2026-10-26-session_01UhUTZN9xJeH26EGQD37xfS.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7fb52604725c49a123c451ba72f5d5b81c92b167",
          "at": 1793056357000,
          "title": "research/sim2real-inference: abstract leads with SIMPLER real data (m7x)",
          "pr": 10753,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: abstract leads with the SIMPLER real data (milestone 7x)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 4,
          "lines_added": 65,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-sim2real-paper-leads-with-real-data.md",
            "prompts/runs/2026-10-26-session_019S3woCaZv3sSPyUvaGBQyi.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "verified-dse",
      "merges": [
        {
          "sha": "716868f262061d10a15bed0a9a7d57e80a626bfa",
          "at": 1792985369000,
          "title": "research/verified-dse: milestone 15, larger non-arithmetic designs",
          "pr": 10526,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 15 plan, five larger non-arithmetic designs and run script",
            "research/verified-dse: milestone 15, larger non-arithmetic designs (R2-cut floor on barrel64)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 19,
          "lines_added": 1394,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-nonarithmetic-cut-floor.md",
            "docs/reports/verified-dse-milestone-15.md",
            "prompts/runs/2026-10-26-session_01XYamNSsHcUguZimur78FKm.json",
            "research/verified-dse/designs/alu_w.v",
            "research/verified-dse/designs/barrel_w.v",
            "research/verified-dse/designs/popcount_w.v",
            "research/verified-dse/experiments/nonarith/analyse.py",
            "research/verified-dse/experiments/nonarith/meta.json",
            "research/verified-dse/experiments/nonarith/perdesign.py",
            "research/verified-dse/experiments/nonarith/perdesign.txt",
            "research/verified-dse/experiments/nonarith/results.jsonl",
            "research/verified-dse/experiments/nonarith/results.txt",
            "research/verified-dse/experiments/nonarith/run.py",
            "research/verified-dse/experiments/nonarith/summary.json",
            "research/verified-dse/experiments/nonarith/sweep.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7ade91270e981dd524101c02ef64e81a2b8ea4a2",
          "at": 1792988513000,
          "title": "research/verified-dse: milestone 16, pilot gate on 20 designs",
          "pr": 10560,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 16, pilot gate on 20 designs",
            "prompts: run record for verified-dse milestone 16"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 10,
          "lines_added": 413,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-pilot-gate.md",
            "docs/reports/verified-dse-milestone-16.md",
            "prompts/runs/2026-10-26-session_013VN3dJXBTi1Miyv8f3RaVf.json",
            "research/verified-dse/experiments/pilot_gate/gate.py",
            "research/verified-dse/experiments/pilot_gate/results.txt",
            "research/verified-dse/experiments/pilot_gate/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3e0ff325fe5416aa3cb56e615f883b31cb232662",
          "at": 1792995843000,
          "title": "research/verified-dse: milestone 17, pilot size and held-out threshold",
          "pr": 10577,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 17, pilot size and held-out threshold for the R2-to-R3 gate"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 7,
          "lines_added": 400,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-26-chip-search-pilot-gate-does-not-hold-out.md",
            "prompts/runs/2026-10-26-session_01B8mdwMKLmuKbE9sdtfxuw1.json",
            "research/verified-dse/experiments/pilot_sweep/results.txt",
            "research/verified-dse/experiments/pilot_sweep/summary.json",
            "research/verified-dse/experiments/pilot_sweep/sweep.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "eb92a88b1eb0b0721e4062a9501bf1920835d3d8",
          "at": 1793005755000,
          "title": "research/verified-dse: milestone 18, which factor of the R2 score mis-ranks",
          "pr": 10606,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 18, which factor of the R2 score mis-ranks (period, not area)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 6,
          "lines_added": 316,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-why-r2-misranks.md",
            "prompts/runs/2026-10-26-session_01Lvf9QCZWEiDJZ6zoDenkR4.json",
            "research/verified-dse/experiments/r2_components/components.py",
            "research/verified-dse/experiments/r2_components/results.txt",
            "research/verified-dse/experiments/r2_components/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0c4dfade96b9f049daaa9aa974c2de643aa93b1d",
          "at": 1793010032000,
          "title": "research/verified-dse: milestone 19, learned score vs hand-made ADP",
          "pr": 10622,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 19, learned score vs hand-made ADP held out by design"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 6,
          "lines_added": 382,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-learned-score.md",
            "prompts/runs/2026-10-26-session_01BCcFs2H56PFt6CoNFm2Bkm.json",
            "research/verified-dse/experiments/learned_score/learned.py",
            "research/verified-dse/experiments/learned_score/results.txt",
            "research/verified-dse/experiments/learned_score/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "437b54065c6247a7360c3da72c1e85bf4738804b",
          "at": 1793010355000,
          "title": "research/verified-dse: milestone 20, multi-fidelity regression surrogate",
          "pr": 10624,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 19, multi-fidelity regression surrogate loses to random and to no-R2-cut"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 9,
          "lines_added": 400,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-surrogate-loses.md",
            "docs/reports/verified-dse-milestone-20.md",
            "prompts/runs/2026-10-26-session_01ADw8b4SjrMZUE1M1c7umXs.json",
            "research/verified-dse/experiments/mf_surrogate/results.txt",
            "research/verified-dse/experiments/mf_surrogate/summary.json",
            "research/verified-dse/experiments/mf_surrogate/surrogate.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4903e61e20063432a27ede673623d382b0e6ec44",
          "at": 1793013227000,
          "title": "research/verified-dse: milestone 21, exploration term vs learned surrogate",
          "pr": 10630,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 21, exploration term does not rescue the learned surrogate",
            "prompts: run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 5,
          "lines_added": 337,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01Nr5Nd4dRiKWs9v9cywSA9a.json",
            "research/verified-dse/experiments/mf_explore/explore.py",
            "research/verified-dse/experiments/mf_explore/results.txt",
            "research/verified-dse/experiments/mf_explore/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "208be4d78bef6a3f3fb338d2a509b7aaf82430dc",
          "at": 1793021483000,
          "title": "research/verified-dse: sync paper and reproduce.sh with milestones 17 to 21",
          "pr": 10652,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 3,
          "lines_added": 10,
          "lines_removed": 1,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fb9cc728a42a53a0019e3172d3f539e1e075e237",
          "at": 1793039800000,
          "title": "research/verified-dse: milestone 22, GP Bayesian-optimisation baseline",
          "pr": 10697,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: pre-register milestone 22 (GP BO baseline) and add script",
            "research/verified-dse: milestone 22 runs 100 paired seeds (400 timed out)",
            "research/verified-dse: milestone 22 results, GP BO baseline negative against f3"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 7,
          "lines_added": 366,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_01PjZpManstTmA6SCzyAPCjQ.json",
            "research/verified-dse/experiments/mf_gp/gp.py",
            "research/verified-dse/experiments/mf_gp/results.txt",
            "research/verified-dse/experiments/mf_gp/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7291c6136e8fda06053e1c6de965ddefe91d78eb",
          "at": 1793043870000,
          "title": "research/verified-dse: milestone 23, TPE (BOHB model) baseline",
          "pr": 10714,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 23, TPE (BOHB model) baseline",
            "prompts: run record for verified-dse milestone 23"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 9,
          "lines_added": 366,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-verified-dse-bohb-model-does-not-rescue-cheap-rung.md",
            "docs/reports/verified-dse-milestone-23.md",
            "prompts/runs/2026-10-26-session_01GRbUExXEtPJvXTr2KkzvHE.json",
            "research/verified-dse/experiments/mf_tpe/results.txt",
            "research/verified-dse/experiments/mf_tpe/summary.json",
            "research/verified-dse/experiments/mf_tpe/tpe.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d91cd7c7d8f709c2fb1f66d9beffcd8a420fe81e",
          "at": 1793045604000,
          "title": "research/verified-dse: README sync after milestones 20 to 23",
          "pr": 10723,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: README no longer says BO/BOHB baselines are not run"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 3,
          "lines_added": 56,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_01KFaDH3uXpovmmWmLcAQVhh.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "verifiable-training-mechanisms",
      "merges": [
        {
          "sha": "f4aa943dbb4ad53c410ba21491348f6f83bd0810",
          "at": 1792974066000,
          "title": "research/verifiable-training-mechanisms: milestone 23, paper compiles with FL citations",
          "pr": 10518,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 23, paper compiles with the FL citations"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 2,
          "lines_added": 59,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_014qhgcWw5xmB6JfGXY2gcpK.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0f3148d09bfe8b469fe27e5368e1851b77c52ade",
          "at": 1792978779000,
          "title": "research/verifiable-training-mechanisms: milestone 24, path-length predictor for H6",
          "pr": 10528,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: pre-register milestone 24 (path-length predictor for H6)",
            "research/verifiable-training-mechanisms: milestone 24, path-length predictor for H6"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 9,
          "lines_added": 410,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-verifiable-training-skip-predictor.md",
            "prompts/runs/2026-10-26-session_01DMFhebB2Ujvi4sjk2G9MzW.json",
            "research/verifiable-training-mechanisms/experiments/h6_pathlength/results.json",
            "research/verifiable-training-mechanisms/experiments/h6_pathlength/results.txt",
            "research/verifiable-training-mechanisms/experiments/h6_pathlength/run.out",
            "research/verifiable-training-mechanisms/experiments/h6_pathlength/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d041868800859403d5e38441999a7437ec5579f1",
          "at": 1792984199000,
          "title": "research/verifiable-training-mechanisms: milestone 25, fitted correction to the path-length predictor does not transfer",
          "pr": 10545,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 25, a fitted correction to the path-length predictor does not transfer"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 6,
          "lines_added": 247,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-verifiable-training-fitted-correction.md",
            "prompts/runs/2026-10-26-session_01WHxeZU7aFpZtz4drrwuJn7.json",
            "research/verifiable-training-mechanisms/experiments/h6_fitted/results.json",
            "research/verifiable-training-mechanisms/experiments/h6_fitted/results.txt",
            "research/verifiable-training-mechanisms/experiments/h6_fitted/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d04d3a406b6c76250e2fbc6a24bd7827ef371c66",
          "at": 1792994786000,
          "title": "research/verifiable-training-mechanisms: milestone 26, path-length predictor C does not carry to subsample and stale cheats (H6)",
          "pr": 10573,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 7,
          "lines_added": 228,
          "lines_removed": 2,
          "added_files": [
            "research/verifiable-training-mechanisms/experiments/h6_cheats/results.json",
            "research/verifiable-training-mechanisms/experiments/h6_cheats/results.txt",
            "research/verifiable-training-mechanisms/experiments/h6_cheats/run.out",
            "research/verifiable-training-mechanisms/experiments/h6_cheats/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "58efee2009c95dc986e555fc505f1175d4d929bc",
          "at": 1792995977000,
          "title": "research/verifiable-training-mechanisms: milestone 27, cheap-gradient cheat damage is set by error direction, not size",
          "pr": 10576,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: pre-register milestone 27 (error size vs direction for the cheap-gradient cheats) and add script",
            "research/verifiable-training-mechanisms: milestone 27 outcome, cheat damage is set by error direction, not size",
            "prompts: run record for research/verifiable-training-mechanisms milestone 27"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 6,
          "lines_added": 364,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01MAbt6rX8J4Lbu3pazmnFjR.json",
            "research/verifiable-training-mechanisms/experiments/direction/results.json",
            "research/verifiable-training-mechanisms/experiments/direction/results.txt",
            "research/verifiable-training-mechanisms/experiments/direction/run.out",
            "research/verifiable-training-mechanisms/experiments/direction/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8558237eeb8b521bf1378b25d6e185d2a0b447bb",
          "at": 1792999987000,
          "title": "research/verifiable-training-mechanisms: milestone 28, subsample damage lies in the orthogonal error component",
          "pr": 10591,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 28 plan and subsample decomposition script (results pending)",
            "research/verifiable-training-mechanisms: milestone 28 run in progress",
            "research/verifiable-training-mechanisms: milestone 28, subsample damage is in the orthogonal error component",
            "prompts: run record for research milestone 28"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 6,
          "lines_added": 255,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01T5d6378RGyHg3jTiaw45RB.json",
            "research/verifiable-training-mechanisms/experiments/subsample_decomp/results.json",
            "research/verifiable-training-mechanisms/experiments/subsample_decomp/results.txt",
            "research/verifiable-training-mechanisms/experiments/subsample_decomp/run.out",
            "research/verifiable-training-mechanisms/experiments/subsample_decomp/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "35a8f1b7a12a43dc77214bf4263972f5977cd9eb",
          "at": 1793006924000,
          "title": "research/verifiable-training-mechanisms: milestone 29, curvature of the subsample cheat's error (H6)",
          "pr": 10611,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 29 plan, curvature of the subsample error (predictions logged before the run)",
            "research/verifiable-training-mechanisms: fix Hessian-vector product call in curvature run",
            "research/verifiable-training-mechanisms: use math SDPA backend for double backward in curvature run",
            "research/verifiable-training-mechanisms: milestone 29, subsample error is 320x sharper than random but a quadratic sum overshoots 110x (H6)",
            "prompts: run record for research session (milestone 29)",
            "docs/posts: shorten milestone 29 post description to 160 characters"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 7,
          "lines_added": 405,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-cheating-gradients-hit-the-sharp-directions.md",
            "prompts/runs/2026-10-26-session_012BKZQUSNU51deSRQuCJDsh.json",
            "research/verifiable-training-mechanisms/experiments/curvature/results.json",
            "research/verifiable-training-mechanisms/experiments/curvature/results.txt",
            "research/verifiable-training-mechanisms/experiments/curvature/run.out",
            "research/verifiable-training-mechanisms/experiments/curvature/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2ab9b6be7efd426dd9cd0c8515540c793f14a164",
          "at": 1793041882000,
          "title": "research/verifiable-training-mechanisms: milestone 30, paper H6 section gains milestones 27-29",
          "pr": 10709,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 30, paper H6 section gains direction, decomposition and curvature results"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 3,
          "lines_added": 60,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01GyCcDFJ4m3qEkEu6k7ZkX7.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4de866737e6ffe4ce1185edfa9e0c19ef8862167",
          "at": 1793044285000,
          "title": "research/verifiable-training-mechanisms: milestone 31, measured agreement probabilities for H3",
          "pr": 10715,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 31, measured agreement probabilities for H3 on a transformer"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 8,
          "lines_added": 979,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-agreement-between-cheap-gradients.md",
            "prompts/runs/2026-10-26-session_01UmiewZrFW8pTFZkqDVTD9B.json",
            "research/verifiable-training-mechanisms/experiments/agreement/results.json",
            "research/verifiable-training-mechanisms/experiments/agreement/results.txt",
            "research/verifiable-training-mechanisms/experiments/agreement/run.out",
            "research/verifiable-training-mechanisms/experiments/agreement/run.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "lowcomm-training",
      "merges": [
        {
          "sha": "191eec360a7bdc4eac54518cc8a00cd743ade994",
          "at": 1793008998000,
          "title": "research/lowcomm-training: milestone 4d, knee of error-feedback top-k (draft)",
          "pr": 10609,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: pre-register milestone 4d (EF top-k knee) and add script",
            "research/lowcomm-training: 4d runs in progress (partial outputs)",
            "research/lowcomm-training: milestone 4d outcome, EF top-k has no sharp knee; run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 6,
          "lines_added": 141,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_016YZc3hfjiArvBaiRXcDaV9.json",
            "research/lowcomm-training/experiments/gpt_topk_ef_knee/run.out",
            "research/lowcomm-training/experiments/gpt_topk_ef_knee/topk_ef_knee.jsonl",
            "research/lowcomm-training/experiments/gpt_topk_ef_knee/topk_ef_knee.py",
            "research/lowcomm-training/experiments/gpt_topk_ef_knee/topk_ef_knee_results.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d0cb336b24192bbf243ce1b98322d0d6eb6f82e0",
          "at": 1793030353000,
          "title": "research/lowcomm-training: milestone 4e, quantised worker deltas",
          "pr": 10664,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 4e plan (quantised deltas), quantize() and script",
            "research/lowcomm-training: 4e runs in progress (partial output)",
            "research/lowcomm-training: 4e partial output (8 of 12 runs)",
            "research/lowcomm-training: milestone 4e outcome, post and run record",
            "docs: shorten lowcomm quantisation post description to 160 characters",
            "docs: shorten over-long post description that fails the site build on main"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 11,
          "lines_added": 279,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-lowcomm-training-quantised-deltas.md",
            "prompts/runs/2026-10-26-session_01R9L7uHbQPY2yyfkRMP3bND.json",
            "research/lowcomm-training/experiments/gpt_quant/quant.jsonl",
            "research/lowcomm-training/experiments/gpt_quant/quant.py",
            "research/lowcomm-training/experiments/gpt_quant/quant_results.txt",
            "research/lowcomm-training/experiments/gpt_quant/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a3b6227146c22ff5fe78fd871cd1d961d4deb882",
          "at": 1793033048000,
          "title": "research/lowcomm-training: milestone 4f, 3-bit and un-fed-back scaled sign",
          "pr": 10680,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 4e plan and quantisation compressors (results pending)",
            "research/lowcomm-training: milestone 4e run in progress (results files pending)",
            "research/lowcomm-training: milestone 4e partial runs (8 of 15)",
            "research/lowcomm-training: milestone 4e, quantised deltas (QSGD and scaled sign)",
            "research/lowcomm-training: milestone 4f, 3-bit and un-fed-back scaled sign; run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 6,
          "lines_added": 141,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01QXoWjVKFGCadGs2VB4DnBj.json",
            "research/lowcomm-training/experiments/gpt_quant_extra/quant_extra.jsonl",
            "research/lowcomm-training/experiments/gpt_quant_extra/quant_extra.py",
            "research/lowcomm-training/experiments/gpt_quant_extra/quant_extra_results.txt",
            "research/lowcomm-training/experiments/gpt_quant_extra/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "978ec3b3b0c7a6150b00f2927a02371a42dfd08e",
          "at": 1793033243000,
          "title": "research/lowcomm-training: 4f, 2-bit error-feedback residual norm",
          "pr": 10682,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: 4f, EF residual norm for 2-bit quantisation (refutes growth, finds ratio ~1)",
            "prompts: run record for lowcomm-training 4f"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 7,
          "lines_added": 119,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01R4ivtBHmANy31nJnoT5EFG.json",
            "research/lowcomm-training/experiments/gpt_quant_ef_norm/ef_norm.jsonl",
            "research/lowcomm-training/experiments/gpt_quant_ef_norm/ef_norm.py",
            "research/lowcomm-training/experiments/gpt_quant_ef_norm/ef_norm_results.txt",
            "research/lowcomm-training/experiments/gpt_quant_ef_norm/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "709479ad9143b8b4583aabe43c2daff285f14759",
          "at": 1793033893000,
          "title": "research/lowcomm-training: milestone 5a, median aggregation under an attacker",
          "pr": 10671,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 5a plan, median aggregation and attack hook",
            "research/lowcomm-training: milestone 5a results, median aggregation under a weak attack (both hypotheses refuted)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 7,
          "lines_added": 198,
          "lines_removed": 3,
          "added_files": [
            "prompts/runs/2026-10-26-session_01HKsaZEZh14grUZvJaAZmYf.json",
            "research/lowcomm-training/experiments/gpt_median_attack/median_attack.jsonl",
            "research/lowcomm-training/experiments/gpt_median_attack/median_attack.py",
            "research/lowcomm-training/experiments/gpt_median_attack/median_attack_results.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4fd00ebca12fa3f618878f3dd96112ce4793ccf1",
          "at": 1793035114000,
          "title": "research/lowcomm-training: milestone 4e, stochastic quantisation and error feedback",
          "pr": 10687,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: add stochastic quantiser and 4e experiment script (WIP, not yet run)",
            "research/lowcomm-training: log 4e plan before running",
            "research/lowcomm-training: 4e partial run output (runs in progress)",
            "research/lowcomm-training: milestone 4e, stochastic quantisation and error feedback",
            "prompts: run record for lowcomm 4e"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 10,
          "lines_added": 269,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-lowcomm-quantisation-cost.md",
            "prompts/runs/2026-10-26-session_01WBhYN18zeoHwJ9AJB2qy5g.json",
            "research/lowcomm-training/experiments/gpt_quantise/quantise.jsonl",
            "research/lowcomm-training/experiments/gpt_quantise/quantise.py",
            "research/lowcomm-training/experiments/gpt_quantise/quantise_results.txt",
            "research/lowcomm-training/experiments/gpt_quantise/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "19df9fa6cb788270012f03dca503b5c6fb04558c",
          "at": 1793041159000,
          "title": "research/lowcomm-training: milestone 5b, strong attacker vs mean and median aggregation",
          "pr": 10685,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: pre-register milestone 5b (strong attacker, mean vs median) and add script",
            "research/lowcomm-training: 5b partial raw run output (runs still in progress)",
            "research/lowcomm-training: 5b partial raw run output (in progress)",
            "research/lowcomm-training: milestone 5b outcome, post and agent doc"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 8,
          "lines_added": 195,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-lowcomm-median-aggregation-strong-attacker.md",
            "docs/reports/lowcomm-training-milestone-5b.md",
            "prompts/runs/2026-10-26-session_0188euskv5DfPkcAYXrmkiBN.json",
            "research/lowcomm-training/experiments/gpt_median_attack_strong/median_attack_strong.jsonl",
            "research/lowcomm-training/experiments/gpt_median_attack_strong/median_attack_strong.py",
            "research/lowcomm-training/experiments/gpt_median_attack_strong/median_attack_strong_results.txt",
            "research/lowcomm-training/experiments/gpt_median_attack_strong/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5ac2429ea63af40572b2670e621c2f96e22f2433",
          "at": 1793057961000,
          "title": "research/lowcomm-training: milestone 5c, the median's sign-flip cost is a sign effect",
          "pr": 10758,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: pre-register milestone 5c (median mechanism test) and add script",
            "research/lowcomm-training: 5c runs in progress",
            "research/lowcomm-training: 5c partial results",
            "research/lowcomm-training: milestone 5c outcome and run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 6,
          "lines_added": 222,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_018h4aV9M6vythihsGeBrZ5T.json",
            "research/lowcomm-training/experiments/gpt_median_mechanism/median_mechanism.jsonl",
            "research/lowcomm-training/experiments/gpt_median_mechanism/median_mechanism.py",
            "research/lowcomm-training/experiments/gpt_median_mechanism/median_mechanism_results.txt",
            "research/lowcomm-training/experiments/gpt_median_mechanism/run.out"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "civ-levers",
      "merges": [
        {
          "sha": "422defec44cafcbeb7a44026044408cc240d79d8",
          "at": 1793028568000,
          "title": "research/civ-levers: milestone 2, contact that widens tolerance",
          "pr": 10670,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/civ-levers: milestone 2 plan and contact model (draft)",
            "research/civ-levers: contact that widens tolerance, results, post, run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "civ-levers"
          },
          "files": 8,
          "lines_added": 418,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-civ-contact-tolerance.md",
            "prompts/runs/2026-10-26-session_01PfwcJkrph75YL5xdRhxc8y.json",
            "research/civ-levers/experiments/contact/results.txt",
            "research/civ-levers/experiments/contact/run.py",
            "research/civ-levers/src/civ_levers/contact.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "codesign-aero-cant-poshold",
      "merges": [
        {
          "sha": "82991aa347815f1ca70f0912fbaaaac566a419ed",
          "at": 1792996071000,
          "title": "research/codesign-aero-cant-poshold: cant buys yaw, not position; the lateral force breaks designs that ignore it",
          "pr": 10575,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/codesign-aero-cant-poshold: position-hold model and tests (claim; results follow)",
            "research/codesign-aero-cant-poshold: position hold, cant buys yaw not position, lateral force breaks designs that ignore it",
            "Fix forward main: shorten ai-bookkeeper next (cap 2000), add description to chip-search post",
            "Fix forward main: shorten ai-bookkeeper next below the 2000 cap"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "codesign-aero-cant-poshold"
          },
          "files": 17,
          "lines_added": 727,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-26-rotor-cant-position-hold.md",
            "docs/reports/codesign-aero-cant-poshold.md",
            "prompts/runs/2026-10-26-session_01LRwJYfY2YhvQHEpPnqjwT1.json",
            "research/codesign-aero-cant-poshold/README.md",
            "research/codesign-aero-cant-poshold/experiments/figure.py",
            "research/codesign-aero-cant-poshold/experiments/poshold.png",
            "research/codesign-aero-cant-poshold/experiments/results.json",
            "research/codesign-aero-cant-poshold/experiments/results.txt",
            "research/codesign-aero-cant-poshold/experiments/run.py",
            "research/codesign-aero-cant-poshold/project.json",
            "research/codesign-aero-cant-poshold/pyproject.toml",
            "research/codesign-aero-cant-poshold/src/codesign_aero_cant_poshold/__init__.py",
            "research/codesign-aero-cant-poshold/src/codesign_aero_cant_poshold/aero.py",
            "research/codesign-aero-cant-poshold/tests/test_poshold.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "writing": [
    {
      "sha": "86f197f480ee6571713353b38422b0b2dc80e2d3",
      "at": 1792974618000,
      "title": "vsme-report-builder: VSME Basic Module draft report builder",
      "pr": 10510,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": null,
      "bullets": [
        "vsme-report-builder: VSME Basic Module draft report builder (B1-B11), completeness and consistency checks",
        "vsme-report-builder: tab icon, post description, sibling links; trim an over-long post description that broke the pages build",
        "docs/posts: shorten four post descriptions over 160 characters (they fail the pages build)",
        "docs/posts: shorten four post descriptions over 160 characters (they fail the pages build)",
        "docs/posts: add missing descriptions so the pages build passes",
        "posts: tags and honest dates; launch date for vsme-report-builder"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 27,
      "lines_added": 688,
      "lines_removed": 8,
      "added_files": [
        "docs/posts/2026-10-26-vsme-report-builder.md",
        "ventures/vsme-report-builder/LICENSE",
        "ventures/vsme-report-builder/README.md",
        "ventures/vsme-report-builder/VENTURE.yaml",
        "ventures/vsme-report-builder/calc.mjs",
        "ventures/vsme-report-builder/calc.test.mjs",
        "ventures/vsme-report-builder/index.html",
        "ventures/vsme-report-builder/llms.txt",
        "ventures/vsme-report-builder/page.test.mjs",
        "ventures/vsme-report-builder/robots.txt",
        "ventures/vsme-report-builder/sitemap.xml",
        "ventures/vsme-report-builder/usage.mjs",
        "ventures/vsme-report-builder/usage.test.mjs"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "d244623c0885ca27bf0be1b30039f6ad80fecced",
      "at": 1792984226000,
      "title": "process: bring 16 blog posts inside the front-matter check (P058 follow-up)",
      "pr": 10547,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: bring 16 blog posts inside the front-matter check (P058 follow-up)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 18,
      "lines_added": 164,
      "lines_removed": 11,
      "added_files": [
        "docs/posts/2026-10-26-sixteen-posts-slipped-past-the-front-matter-check.md",
        "prompts/runs/2026-10-26-session_014mZQMJWqEVcPq93GsvKeB5.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "a901aa576f3646c3829f0283cb2dc4f43b072535",
      "at": 1792987912000,
      "title": "process: run post front-matter check on post-only PRs; fix five posts",
      "pr": 10556,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "ci: run the post front-matter check on post-only PRs; fix five posts that slipped past it"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 8,
      "lines_added": 75,
      "lines_removed": 3,
      "added_files": [
        "docs/posts/2026-10-26-post-check-never-ran-on-posts.md",
        "prompts/runs/2026-10-26-session_01Sc4sQRnfugcifpeGg77jhv.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "aa28458022fdee724de7b46b831bf6a7a78c55c9",
      "at": 1792988357000,
      "title": "process: fix post front matter red on main (shift-roster-ilp-check)",
      "pr": 10558,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: add missing description and tags to shift-roster-ilp-check (check_post_frontmatter red on main)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 2,
      "lines_added": 46,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-26-session_0153tMM1MEwDnyoX81AEyzeq.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "d2559b4a1b874abcf718c5b3c519b4cb0f1c95b1",
      "at": 1792992013000,
      "title": "process: fix 13 blog front-matter faults on main",
      "pr": 10567,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix 13 front-matter faults on main (dates, descriptions, tags)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 8,
      "lines_added": 141,
      "lines_removed": 5,
      "added_files": [
        "docs/posts/2026-10-26-thirteen-front-matter-faults-on-main.md",
        "prompts/runs/2026-10-26-session_01GUETEkzAUBWTKtdijh7Vfv.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "aa9486f8d66b93f4cc95a1a881457e37296defda",
      "at": 1792995226000,
      "title": "redteam: platform/ci checkers 2026-10-26",
      "pr": 10574,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "redteam: platform/ci checkers 2026-10-26",
        "redteam: run record"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 2,
      "lines_added": 620,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-26-redteam-ci-checkers-catch-rate.md",
        "prompts/runs/2026-10-26-session_011ZT5Fn1SANa49sJm8YUv1W.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ba513878d72994aba017d2276a703e1bc7b3a37b",
      "at": 1792995879000,
      "title": "ai-bookkeeper: fixture sweeps saturated, steer next runs to real exports",
      "pr": 10579,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "ventures",
      "bullets": [
        "ai-bookkeeper: fixture sweeps saturated, steer next runs to real exports (post)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 59,
      "lines_removed": 1,
      "added_files": [
        "docs/posts/2026-10-26-bank-fixture-sweeps-have-run-dry.md",
        "prompts/runs/2026-10-26-session_01H6g9b8wrNkSy1FTLMatNHw.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "29b450dec07bc2169bed797406ac939e4a19957f",
      "at": 1792998821000,
      "title": "process: fix front matter on 8 blog posts (check_post_frontmatter was red on main)",
      "pr": 10586,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix front matter on 8 posts (missing tags/description, over-length descriptions, future dates)"
      ],
      "detail": "check_post_frontmatter.py reported 12 faults on main; the future-dated posts topped the feed and long descriptions break the Pages build.",
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 9,
      "lines_added": 65,
      "lines_removed": 7,
      "added_files": [
        "prompts/runs/2026-10-26-session_01H6xiLNs8QGonoUF523Jqjy.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "156460a462d5c3420b0b4510fbe1361120f13815",
      "at": 1792999254000,
      "title": "process: fix post front matter red on main (check_post_frontmatter)",
      "pr": 10588,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: fix post front matter on main (changepoint post missing description/tags; drywall post dated in the future)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 52,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01HHdFcAn6vgBkqrZ9u9CYcM.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "479cd4fd5eac9c68590f39d158ef2762c3420f46",
      "at": 1793002451000,
      "title": "process: main_health.py lists red CI checks on main in one command",
      "pr": 10596,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: main_health.py runs all argument-free CI checks and lists red ones"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 4,
      "lines_added": 97,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-26-main-health-one-command.md",
        "platform/ci/main_health.py",
        "prompts/runs/2026-10-26-session_01XXAoVgfqxZFJBqjnfG1tBz.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "c7617c97cfb56542eb5034cf5e9d11055abf905e",
      "at": 1793005929000,
      "title": "redteam: platform/pages/writing.mjs 2026-10-26",
      "pr": 10608,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "docs/posts: shorten the AEON receipt post description to 160 characters (unbreaks writing.test.mjs)",
        "redteam: writing.mjs 2026-10-26, guard future-post filter and chip aria-pressed",
        "redteam: record names PR 10608"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 186,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01FsjQoxoBkhMoSPyfqJ2STd.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ef70b1dd20a175a69d626def48680fe95cefe2cd",
      "at": 1793009396000,
      "title": "redteam: platform/ci/slug_dupe.py 2026-10-26",
      "pr": 10617,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "redteam: trim two over-long post descriptions that broke writing and shorts suites",
        "redteam: record PR number"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 190,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-26-session_019V8gywToKCPETzSuHXpj1w.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ea2b36e1b07244ef94c8b8ff27a514f7e5cd919c",
      "at": 1793013000000,
      "title": "process: fix front matter on two posts failing check_post_frontmatter on main",
      "pr": 10628,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix front matter on two 2026-10-26 posts that fail check_post_frontmatter on main",
        "prompts: run record for process/1 post front-matter fix"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 47,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_019phk6ECi9aETW4dC4AQfLP.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "a680f2f762863b809af73f7c319f04064317077a",
      "at": 1793018072000,
      "title": "process: shorten two post descriptions over 160 chars (main red on post front matter check)",
      "pr": 10643,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: shorten two descriptions over the 160-character cap (process lens: main red on check_post_frontmatter)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 51,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-26-session_01NF8LLUUstYnti8PUCuAgHh.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "4816c1d8f81a67411c737efc17c7334520e1ee46",
      "at": 1793021789000,
      "title": "platform/ci: page_js_errors.mjs, headless-browser load sweep of all venture pages (0 of 1,326 with JS errors)",
      "pr": 10655,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "explore",
      "bullets": [
        "platform/ci: page_js_errors.mjs, headless-browser load sweep of all venture pages (0 of 1,326 with JS errors)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 115,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-26-every-venture-page-loads-without-js-errors.md",
        "platform/ci/page_js_errors.mjs",
        "prompts/runs/2026-10-26-session_01R7H4YTaLH2cn83HWBuJAZL.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "724d542aba71ed6620d661c13831dc9f328a0cf3",
      "at": 1793021824000,
      "title": "posts: trim three descriptions over 160 chars (main_health red)",
      "pr": 10656,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: trim three descriptions over 160 chars (main_health red)",
        "prompts: run record"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 4,
      "lines_added": 52,
      "lines_removed": 3,
      "added_files": [
        "prompts/runs/2026-10-26-session_01J4yYEvFiXkH6o8DeSDbEcH.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3909e00288b5ac4291a878f389ae2af828531095",
      "at": 1793027500000,
      "title": "process: point prompt-1 at main_health.py (critique: doc friction)",
      "pr": 10669,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: point prompt-1 at main_health.py for live-fault finding"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 57,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-26-main-health-pointer-process-prompt.md",
        "prompts/runs/2026-10-26-session_01N4TcpC5qDUFLjf2xZiNfLC.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "b5a612e8d271b169c9c2feea5bfd6fd8038023fc",
      "at": 1793037560000,
      "title": "process: fix red check_post_frontmatter (seven post descriptions over 160 chars)",
      "pr": 10694,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: shorten seven post descriptions to 160 chars (main_health red check_post_frontmatter)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 8,
      "lines_added": 46,
      "lines_removed": 7,
      "added_files": [
        "prompts/runs/2026-10-26-session_016tLphhXqqD8YwgjmNhWRNo.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ba3dc5e1edf01c4f575f17440e30a9c781890e39",
      "at": 1793038368000,
      "title": "process: fix red check_post_frontmatter (changepoint FX post description)",
      "pr": 10698,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: fix red check_post_frontmatter (changepoint FX post description over 160 chars)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 2,
      "lines_added": 45,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01Cxc8wFmiA5sbCiw4j81KMX.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "c1b47669043638acd9468ba5d35191e13ae4a71d",
      "at": 1793039499000,
      "title": "redteam: sync_tree_counts 2026-10-26",
      "pr": 10704,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "redteam: sync_tree_counts 2026-10-26",
        "redteam: record PR number"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 559,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-26-redteam-sync-tree-counts.md",
        "prompts/runs/2026-10-26-session_01WmopMvj4DJJUjcjsvHzt3w.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "bc99caf9dc86adab48ac982bce2da3127a38c85c",
      "at": 1793045728000,
      "title": "redteam: platform/ci post_similarity + publish_surface 2026-10-26",
      "pr": 10718,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "redteam: don't run pytest-style suites under unittest; close mutation gaps in post_similarity and publish_surface",
        "redteam: run record",
        "Fix main's CI: shorten over-long post descriptions, repair a run record's shape"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 14,
      "lines_added": 363,
      "lines_removed": 10,
      "added_files": [
        "docs/posts/2026-10-26-mutation-testing-silently-passed-zero-tests.md",
        "prompts/runs/2026-10-26-session_011E8y9oM8fnHCbaTfeJTRkm.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "53c1e6c297cfc8abe9ffbfb6f077bb1bfc03ff94",
      "at": 1793052699000,
      "title": "process: validate runs the post front-matter check; fix four red posts",
      "pr": 10742,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: validate runs the post front-matter check; shorten four over-long post descriptions"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 8,
      "lines_added": 164,
      "lines_removed": 4,
      "added_files": [
        "docs/posts/2026-10-26-four-posts-red-on-main-one-check-moved.md",
        "prompts/runs/2026-10-26-session_01TtaUuajuqiygKNVzttRRPc.json"
      ],
      "revert": false,
      "fix_forward": false
    }
  ],
  "platform": [
    {
      "name": "ci",
      "merges": [
        {
          "sha": "7328a017851bf6d5c3df2f007a5171f6cc5f2fc7",
          "at": 1793009468000,
          "title": "explore: post_rate.py prints blog posts per day",
          "pr": 10618,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "post_rate.py: print blog posts per day and top tags from docs/posts",
            "Fix run record writeups shape"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 4,
          "lines_added": 175,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-counting-blog-posts-per-day.md",
            "platform/ci/post_rate.py",
            "platform/ci/test_post_rate.py",
            "prompts/runs/2026-10-26-session_0112gZUFsJVjRStGDHEKnWdb.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "37cc4961fe69b20ba84c5b708d754a86e6272f62",
          "at": 1793013803000,
          "title": "ci: check in-page anchors and aria references resolve",
          "pr": 10632,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ci: check in-page anchors and aria references resolve",
            "prompts: run record for explore run"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 5,
          "lines_added": 173,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-in-page-links-all-resolve.md",
            "platform/ci/check_inpage_refs.py",
            "platform/ci/test_check_inpage_refs.py",
            "prompts/runs/2026-10-26-session_017kLyHhEpn9jkbLDrwiw4Vp.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cd676bce8c0cfbbdff164a391ec282dfcef8e690",
          "at": 1793025116000,
          "title": "redteam: platform/ci/check_post_frontmatter.py 2026-10-26",
          "pr": 10665,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: guard check_post_frontmatter against indented-field mutant",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 249,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01SaRVWGTafNQuw2YTxC7Jsk.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "60625f50883d29b708402bc57b47c80139bbc351",
          "at": 1793031861000,
          "title": "redteam: platform/ci/unlanded_work.py 2026-10-26",
          "pr": 10681,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: unlanded_work tests for modified-file landing and list limit",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 194,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01XtVHrqxGTNDRXNwT34BBjn.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ed72527f0c4d7200231758a0cc9ec5d4b6063360",
          "at": 1793035246000,
          "title": "redteam: check_storage_guard + check_duplicate_ids 2026-10-26",
          "pr": 10690,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: check_storage_guard default-root test",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 342,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01R4jKppBaVji1X9yc6Szcc2.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e6cbfc9264581432e741ce232b8a3f8856b460f4",
          "at": 1793046123000,
          "title": "redteam: post_similarity 2026-10-26",
          "pr": 10724,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: post_similarity 2026-10-26, pin inclusive threshold",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 252,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01RYYXLwuFSousuRc5hMEq4T.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cc0db192e1d5b2c05873c98cc2d4bd38c83d4bc6",
          "at": 1793056600000,
          "title": "redteam: platform/ci 2026-10-26",
          "pr": 10756,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/ci 2026-10-26 guards for 4 escaped mutants",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 4,
          "lines_added": 542,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-26-redteam-a-gh-pages-test-that-tested-nothing.md",
            "prompts/runs/2026-10-26-session_01Mybiab6rxs9AN341GZGZb3.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "pages",
      "merges": [
        {
          "sha": "12b2721164d5537c4ef4d9003e1b1c5ad6f67436",
          "at": 1792984353000,
          "title": "redteam: platform/pages/share.mjs 2026-10-26",
          "pr": 10549,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/pages/share.mjs 2026-10-26",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 2,
          "lines_added": 185,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_014UXeY6eddxWmDtY7NXYBJ7.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c26bb370c75817b56c3385d51b894bfd0d269977",
          "at": 1792999402000,
          "title": "prompts: review 2026-10-26",
          "pr": 10590,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "review",
          "bullets": [
            "pages: hold future-dated posts until their date",
            "prompts: run record for review 2026-10-26"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 4,
          "lines_added": 68,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01VWeUK6FvyUjaGhoyMjeac2.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b716f91470601c51f03880d89822f23e255ee621",
          "at": 1793017839000,
          "title": "redteam: platform/pages/share.mjs 2026-10-26",
          "pr": 10642,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/pages/share.mjs 2026-10-26 — guard accent hash, section subtitle, cache env default",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 2,
          "lines_added": 268,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-26-session_017H8SGt6xagHEg9sZViwc79.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c287e27e3774dec62e30f5e7f0773a30e08f59bb",
          "at": 1793035136000,
          "title": "redteam: platform/pages/check.mjs 2026-10-26",
          "pr": 10689,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: start run record 2026-10-26",
            "redteam: platform/pages/check.mjs 2026-10-26 - CLI entry tests",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 2,
          "lines_added": 571,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01QXUUidEhqSBW5S9L5Y3vmk.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "deploy",
      "merges": [
        {
          "sha": "652bbcb2a13baaefcd25f4e07c75843966cb439d",
          "at": 1793009723000,
          "title": "redteam: platform/deploy/sealedbox 2026-10-26",
          "pr": 10621,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/deploy/sealedbox 2026-10-26",
            "redteam: record PR number"
          ],
          "detail": "open() returns null on too-short input.",
          "area": {
            "kind": "platform",
            "name": "deploy"
          },
          "files": 3,
          "lines_added": 183,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01HvBFBa7Mny5njo3xZH8HYs.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "webcheck",
      "merges": [
        {
          "sha": "bc39bd61213ad193462db7e668f75a697e632976",
          "at": 1793056842000,
          "title": "redteam: platform/webcheck/page-integrity.mjs 2026-10-26",
          "pr": 10757,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/webcheck/page-integrity.mjs 2026-10-26, EOF comment and finding-15 tests",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "webcheck"
          },
          "files": 2,
          "lines_added": 255,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-26-session_01DKL4VHJ5mH4dwJd1BzocEc.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "ci": [
    {
      "sha": "1aa1bd2b3ce9e15997853a76962122aab570deec",
      "at": 1793009524000,
      "title": "process: fix null pr in run record that broke validate; pyenv torch note",
      "pr": 10619,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: fix null pr in a run record that broke validate; cloud-session torch/pyenv note"
      ],
      "detail": null,
      "area": {
        "kind": "ci",
        "name": "CI and automation"
      },
      "files": 3,
      "lines_added": 56,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01XJYsMRLgs1Crnuvv7rj3JF.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "e219f1e39bd8977a7f370fb5c48338a0052205d6",
      "at": 1793018273000,
      "title": "process: post front-matter check in the verify checklist",
      "pr": 10644,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: add post front-matter check to the verify checklist"
      ],
      "detail": "Two posts merged over the 160-char description limit on 2026-10-26 and turned main red until PR 10643 shortened them.",
      "area": {
        "kind": "ci",
        "name": "CI and automation"
      },
      "files": 2,
      "lines_added": 45,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-26-session_01FKuubwcazBHASJVvWiik4K.json"
      ],
      "revert": false,
      "fix_forward": false
    }
  ],
  "process": [
    {
      "sha": "b31d69afe4e707bcdc6a6852b95df65cf85de860",
      "at": 1792981300000,
      "title": "prompts: review 2026-10-26",
      "pr": 10540,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-26 (reduced pass): regenerate derived, log E90",
        "prompts: run record for review 2026-10-26"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 4,
      "lines_added": 2000,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01M7vrTQsZUn2wYFqh1zqKuG.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "defe6ea93e66c202280d65c81a0c8dd7aced059f",
      "at": 1792992959000,
      "title": "usage: daily site page-load counts and feedback from platform/edge",
      "pr": null,
      "agent": null,
      "models": [],
      "track": null,
      "bullets": [],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "portfolio"
      },
      "files": 1,
      "lines_added": 6,
      "lines_removed": 0,
      "added_files": [],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "c580e9ab4e28c4423b1cbe3aa7ceff622a8eb498",
      "at": 1792995837000,
      "title": "redteam: check_input_bounds + check_social_proof 2026-10-26 (16/16 caught)",
      "pr": 10578,
      "agent": "Claude",
      "models": [],
      "track": "redteam",
      "bullets": [],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 1,
      "lines_added": 287,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-26-session_01CTgikhe6r3BRceoyWZCY57.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ae84e3c0a0f269be1a43255e733592c39378431e",
      "at": 1793002332000,
      "title": "process: promptctl backlog marks blocked items, points to Critique mode",
      "pr": 10595,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "promptctl backlog: mark blocked items and point to Critique mode when no agent row is workable"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 3,
      "lines_added": 66,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01LVma7dWj7DNJRRzkBjq2Te.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "71f7553cc1059e566b9f2153d4c9c63c60f31c4b",
      "at": 1793016453000,
      "title": "process: trim three flagship next: texts under the 2,000-char cap",
      "pr": 10635,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: trim three flagship next: texts under the 2,000-char cap (router validate was red on main)"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "portfolio"
      },
      "files": 2,
      "lines_added": 74,
      "lines_removed": 29,
      "added_files": [
        "prompts/runs/2026-10-26-session_017sEZ3yn5ycCtEJJeu5F8kT.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "b07440abe96f1e865c4258abf30bcebe3959476a",
      "at": 1793021145000,
      "title": "prompts: review 2026-10-26",
      "pr": 10650,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-26: landing order ignores bulk-added records (shallow clones)",
        "prompts: run record for review 2026-10-26"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 5,
      "lines_added": 4296,
      "lines_removed": 114,
      "added_files": [
        "prompts/runs/2026-10-26-session_01TMXSPp1BeMMUsDAUgRxeco.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "e46bec7d9b6c91176f8902bb05f1aba51d458d4e",
      "at": 1793045477000,
      "title": "prompts: review 2026-10-26 (E93 cadence check)",
      "pr": 10719,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-26, E93 cadence check",
        "prompts: run record for review E93"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 2,
      "lines_added": 137,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-26-session_01SitLAvo6QmgByBv7rLjA8e.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "df570f44609c774f06981ac3527f9c6d14810f67",
      "at": 1793045546000,
      "title": "prompts: review 2026-10-26 (run 21)",
      "pr": 10720,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-26, run measure and derive in the background",
        "prompts: run record for review 2026-10-26",
        "experiments: renumber review entry to E94"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 3,
      "lines_added": 67,
      "lines_removed": 3,
      "added_files": [
        "prompts/runs/2026-10-26-session_01KwkdCFPmkKykBnCAU3s8GQ.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "9bb1126f5a3d4f935e573101b049b2e751154fab",
      "at": 1793045596000,
      "title": "prompts: review 2026-10-26",
      "pr": 10721,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "review: drop stale lowcomm numpy tests, clarify derive background step",
        "review: run record"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 6,
      "lines_added": 2879,
      "lines_removed": 107,
      "added_files": [
        "prompts/runs/2026-10-26-session_01KvEyfN12ZYTBUkSW498iKe.json"
      ],
      "revert": false,
      "fix_forward": false
    }
  ],
  "new_ventures": [
    "vsme-report-builder"
  ],
  "new_research": [
    "codesign-aero-cant-poshold"
  ],
  "new_posts": [
    "2026-10-26-simpler-twin-interval-clustered",
    "2026-10-26-simpler-eggplant-pdf-check",
    "2026-10-26-changepoint-detector-dispersion-penalty",
    "2026-10-26-ai-bookkeeper-mt940-triodos",
    "2026-10-26-ai-bookkeeper-oca-sweep",
    "2026-10-26-small-audits-leverage-correction-ppi",
    "2026-10-26-vsme-report-builder",
    "2026-10-26-ai-bookkeeper-excel-bank-exports-swept",
    "2026-10-27-ai-bookkeeper-ambiguous-dates-note",
    "2026-10-26-the-folded-paper-delayed-prescription-story",
    "2026-10-27-sim2real-simpler-transfer",
    "2026-10-26-favicon-sweep-broke-15-venture-suites",
    "2026-10-27-ai-bookkeeper-payee-and-narration",
    "2026-10-26-saint-martin-half-a-cloak-bedtime-episode",
    "2026-10-26-verifiable-training-skip-predictor",
    "2026-10-28-ai-bookkeeper-ofx-balance-order",
    "2026-10-27-ai-bookkeeper-bigcapital-demo-feed",
    "2026-10-28-ai-bookkeeper-german-headers",
    "2026-10-26-the-book-says-twenty-one-for-other-minds",
    "2026-10-26-ai-bookkeeper-statement-balances",
    "2026-10-29-ai-bookkeeper-mt940-blank-entry-date",
    "2026-10-26-ai-bookkeeper-ynab-blank-payee",
    "2026-10-26-saints-by-candlelight-seraphim-of-sarov",
    "2026-10-26-the-four-minutes-defibrillator-drone-island-story",
    "2026-10-26-ai-bookkeeper-running-balance-reorder",
    "2026-10-26-shootflow-closed-eye-culling",
    "2026-10-30-ai-bookkeeper-receipts-through-tesseract",
    "2026-10-26-verifiable-training-fitted-correction",
    "2026-10-29-ai-bookkeeper-ing-payee",
    "2026-10-26-sixteen-posts-slipped-past-the-front-matter-check",
    "2026-10-26-thirty-minute-cycle-altitude-steriliser-story",
    "2026-10-26-verified-dse-nonarithmetic-cut-floor",
    "2026-10-26-einvoice-preflight-luxembourg-bill",
    "2026-10-30-ai-bookkeeper-two-digit-years",
    "2026-10-31-ai-bookkeeper-coin-units",
    "2026-10-26-post-check-never-ran-on-posts",
    "2026-10-26-shift-roster-ilp-check",
    "2026-10-26-ai-bookkeeper-debit-positive-amounts",
    "2026-10-26-verified-dse-pilot-gate",
    "2026-10-31-llm-coder-small-gain",
    "2026-10-31-kmymoney-qif-sweep",
    "2026-10-31-sales-agent-non-english-replies",
    "2026-10-26-the-last-barge-erosion-cemetery-hearth-and-horizon-story",
    "2026-10-31-camt-balances-self-check",
    "2026-10-26-ai-bookkeeper-footer-line",
    "2026-10-26-thirteen-front-matter-faults-on-main",
    "2026-10-26-akaunting-export-zero-rows",
    "2026-10-26-receipt-ocr-preprocessing-hurts",
    "2026-10-31-receipt-ocr-preprocessing-hurts",
    "2026-10-31-the-eighteenth-place-lead-in-water-hearth-and-horizon-story",
    "2026-10-26-redteam-ci-checkers-catch-rate",
    "2026-10-26-chip-search-pilot-gate-does-not-hold-out",
    "2026-10-26-bank-fixture-sweeps-have-run-dry",
    "2026-10-26-rotor-cant-position-hold",
    "2026-10-31-roster-builder-finds-the-last-hour",
    "2026-10-26-quick-pick-survey-long-budgets",
    "2026-10-26-changepoint-range-holds-on-fresh-seeds",
    "2026-10-31-drywall-joints-on-studs",
    "2026-10-26-roster-proof-branches-on-open-hours",
    "2026-10-26-malta-e-invoice-rules-page",
    "2026-10-27-wall-framing-takeoff-drywall-joint-control",
    "2026-10-26-main-health-one-command",
    "2026-10-26-wall-framing-takeoff-ceiling-joists",
    "2026-10-26-ai-bookkeeper-receipt-merchant-ocr",
    "2026-10-26-shift-roster-builder-plateau-walks",
    "2026-10-26-sales-agent-foreign-quote-headers",
    "2026-10-26-wall-framing-takeoff-ceiling-joist-control",
    "2026-10-27-ai-bookkeeper-receipt-merchant-registration-number",
    "2026-10-26-verified-dse-why-r2-misranks",
    "2026-10-26-the-clear-reading-screening-base-rate-hearth-and-horizon-story",
    "2026-10-26-sim2real-suresim-repo-check",
    "2026-10-26-cheating-gradients-hit-the-sharp-directions",
    "2026-10-26-ai-bookkeeper-receipt-ocr-remeasured",
    "2026-10-27-three-plain-and-a-bob-bell-ringing-hearth-and-horizon-story",
    "2026-10-26-the-third-list-capture-recapture-homeless-count-story",
    "2026-10-26-counting-blog-posts-per-day",
    "2026-10-26-verified-dse-learned-score",
    "2026-10-26-changepoint-detector-seat-belt-law",
    "2026-10-26-verified-dse-surrogate-loses",
    "2026-10-26-ai-bookkeeper-cash-handed-over-is-not-the-total",
    "2026-10-27-ai-bookkeeper-receipt-company-name",
    "2026-10-26-shift-roster-three-person-chain-negative",
    "2026-10-26-llm-coding-inference-paper-draft-1",
    "2026-10-26-wall-framing-takeoff-insulation-on-the-page",
    "2026-10-26-in-page-links-all-resolve",
    "2026-10-26-nile-break-four-ways",
    "2026-10-26-redteam-estimatedtax",
    "2026-10-26-changepoint-detector-coal-disasters",
    "2026-10-27-wall-framing-takeoff-insulation-in-budget",
    "2026-10-26-sim2real-paper-builds",
    "2026-10-26-llm-coder-size-does-not-buy-narrower-intervals",
    "2026-10-26-does-calibrating-an-llm-coder-pay-for-its-labels",
    "2026-10-26-ai-bookkeeper-voucher-totals",
    "2026-10-26-shift-roster-exact-repair",
    "2026-10-26-ai-bookkeeper-receipt-tax-codes",
    "2026-10-26-ai-bookkeeper-receipt-date-order",
    "2026-10-26-how-accurate-must-an-llm-coder-be",
    "2026-10-26-ai-bookkeeper-parking-receipt-total",
    "2026-10-26-changepoint-second-dispersion-round",
    "2026-10-26-ai-bookkeeper-garbled-tax-cell-receipt-total",
    "2026-10-26-every-venture-page-loads-without-js-errors",
    "2026-10-26-wall-framing-takeoff-ceiling-joists-from-the-roof",
    "2026-10-26-wall-framing-takeoff-ceiling-joists-from-roof-page",
    "2026-10-27-shift-roster-builder-repair-search-same-roster-every-machine",
    "2026-10-27-wall-framing-takeoff-ceiling-steps",
    "2026-10-26-llm-coder-error-shape-ppi",
    "2026-10-26-ai-bookkeeper-receipt-reader-ceiling",
    "2026-10-27-wall-framing-takeoff-drywall-insulation-labor",
    "2026-10-27-wall-framing-takeoff-ceiling-steps-on-the-page",
    "2026-10-26-main-health-pointer-process-prompt",
    "2026-10-26-civ-contact-tolerance",
    "2026-10-26-why-a-weak-llm-coder-gives-no-gain",
    "2026-10-26-lowcomm-training-quantised-deltas",
    "2026-10-26-einvoice-preflight-austria-page",
    "2026-10-27-wall-framing-takeoff-dxf-import",
    "2026-10-26-einvoice-preflight-austria-finland",
    "2026-10-26-ai-bookkeeper-lbb-csv-and-2027-rev-proc",
    "2026-10-27-changepoint-detector-garch-filter",
    "2026-10-27-changepoint-detector-bootstrap-penalty",
    "2026-10-26-einvoice-preflight-sweden",
    "2026-10-26-einvoice-preflight-turkey-e-fatura",
    "2026-10-26-einvoice-preflight-japan",
    "2026-10-26-einvoice-preflight-switzerland",
    "2026-10-27-lowcomm-quantisation-cost",
    "2026-10-26-changepoint-detector-mean-bootstrap",
    "2026-10-26-how-good-must-an-llm-coder-be-to-pay",
    "2026-10-26-llm-coding-agreement-is-the-wrong-axis",
    "2026-10-26-changepoint-detector-real-fx-shocks",
    "2026-10-26-suresim-released-code-on-our-pairs",
    "2026-10-26-changepoint-detector-why-bootstrap-missed-the-franc",
    "2026-10-27-changepoint-detector-bootstrap-tail-fix-fails",
    "2026-10-26-redteam-sync-tree-counts",
    "2026-10-26-changepoint-detector-bootstrap-for-counts",
    "2026-10-26-ai-bookkeeper-michigan-annual-sales-tax-due-date",
    "2026-10-26-einvoice-preflight-cyprus",
    "2026-10-26-lowcomm-median-aggregation-strong-attacker",
    "2026-10-27-shift-roster-builder-fewer-hours-more-open-shifts",
    "2026-10-26-ai-bookkeeper-wage-bases-checked",
    "2026-10-27-ai-bookkeeper-amazon-order-history",
    "2026-10-26-saints-by-candlelight-naaman-and-the-jordan",
    "2026-10-26-verified-dse-bohb-model-does-not-rescue-cheap-rung",
    "2026-10-26-agreement-between-cheap-gradients",
    "2026-10-27-einvoice-preflight-mexico",
    "2026-10-27-wall-framing-takeoff-double-line-walls",
    "2026-10-26-mutation-testing-silently-passed-zero-tests",
    "2026-10-26-ai-bookkeeper-period-comparison-on-the-page",
    "2026-10-26-llm-coding-inference-audit-size-second-corpus",
    "2026-10-27-quick-pick-survey-inconsistent-respondent",
    "2026-10-27-ai-bookkeeper-customer-concentration",
    "2026-10-26-ai-bookkeeper-cash-flow-depreciation",
    "2026-10-27-wall-framing-takeoff-reads-open-house-plans",
    "2026-10-27-ai-bookkeeper-free-cash-flow",
    "2026-10-26-a-bigger-tank-buys-nothing-in-a-dry-year",
    "2026-10-26-the-latest-easter",
    "2026-10-27-tune-the-control-variate-before-sizing-an-audit",
    "2026-10-27-ai-bookkeeper-monthly-cash-flow",
    "2026-10-27-before-the-fourteenth-altar-wine-harvest-date",
    "2026-10-27-half-the-tide-a-fifth-of-the-power",
    "2026-10-27-ai-bookkeeper-lender-ratios",
    "2026-10-27-wall-framing-takeoff-shared-king-studs",
    "2026-10-27-ai-bookkeeper-profit-and-loss-by-project",
    "2026-10-26-four-posts-red-on-main-one-check-moved",
    "2026-10-27-ai-bookkeeper-stray-trailing-comma",
    "2026-10-27-size-the-audit-from-a-400-item-pilot",
    "2026-10-26-ai-bookkeeper-export-packaging",
    "2026-10-27-ai-bookkeeper-extra-column-checks",
    "2026-10-26-foreign-credit-notes-ai-bookkeeper",
    "2026-10-26-einvoice-preflight-brazil",
    "2026-10-27-ai-bookkeeper-ebay-payout-page",
    "2026-10-26-wall-framing-takeoff-doors-near-corners",
    "2026-10-26-ai-bookkeeper-foreign-invoice-instalments",
    "2026-10-26-sim2real-paper-leads-with-real-data",
    "2026-10-26-llm-coding-rare-category-pilot",
    "2026-10-27-ai-bookkeeper-share-quantity-not-dollars",
    "2026-10-26-redteam-a-gh-pages-test-that-tested-nothing",
    "2026-10-27-changepoint-detector-uk-gas",
    "2026-10-28-shift-roster-builder-open-shifts-versus-open-hours"
  ],
  "reverts": [],
  "fix_forwards": [
    {
      "sha": "aa28458022fdee724de7b46b831bf6a7a78c55c9",
      "at": 1792988357000,
      "title": "process: fix post front matter red on main (shift-roster-ilp-check)",
      "pr": 10558,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: add missing description and tags to shift-roster-ilp-check (check_post_frontmatter red on main)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 2,
      "lines_added": 46,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-26-session_0153tMM1MEwDnyoX81AEyzeq.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "d2559b4a1b874abcf718c5b3c519b4cb0f1c95b1",
      "at": 1792992013000,
      "title": "process: fix 13 blog front-matter faults on main",
      "pr": 10567,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix 13 front-matter faults on main (dates, descriptions, tags)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 8,
      "lines_added": 141,
      "lines_removed": 5,
      "added_files": [
        "docs/posts/2026-10-26-thirteen-front-matter-faults-on-main.md",
        "prompts/runs/2026-10-26-session_01GUETEkzAUBWTKtdijh7Vfv.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "29b450dec07bc2169bed797406ac939e4a19957f",
      "at": 1792998821000,
      "title": "process: fix front matter on 8 blog posts (check_post_frontmatter was red on main)",
      "pr": 10586,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix front matter on 8 posts (missing tags/description, over-length descriptions, future dates)"
      ],
      "detail": "check_post_frontmatter.py reported 12 faults on main; the future-dated posts topped the feed and long descriptions break the Pages build.",
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 9,
      "lines_added": 65,
      "lines_removed": 7,
      "added_files": [
        "prompts/runs/2026-10-26-session_01H6xiLNs8QGonoUF523Jqjy.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "156460a462d5c3420b0b4510fbe1361120f13815",
      "at": 1792999254000,
      "title": "process: fix post front matter red on main (check_post_frontmatter)",
      "pr": 10588,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: fix post front matter on main (changepoint post missing description/tags; drywall post dated in the future)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 52,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_01HHdFcAn6vgBkqrZ9u9CYcM.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "ea2b36e1b07244ef94c8b8ff27a514f7e5cd919c",
      "at": 1793013000000,
      "title": "process: fix front matter on two posts failing check_post_frontmatter on main",
      "pr": 10628,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: fix front matter on two 2026-10-26 posts that fail check_post_frontmatter on main",
        "prompts: run record for process/1 post front-matter fix"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 47,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-26-session_019phk6ECi9aETW4dC4AQfLP.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "a680f2f762863b809af73f7c319f04064317077a",
      "at": 1793018072000,
      "title": "process: shorten two post descriptions over 160 chars (main red on post front matter check)",
      "pr": 10643,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: shorten two descriptions over the 160-character cap (process lens: main red on check_post_frontmatter)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 51,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-26-session_01NF8LLUUstYnti8PUCuAgHh.json"
      ],
      "revert": false,
      "fix_forward": true
    }
  ],
  "biggest": {
    "sha": "f8b6d8a085465d718c6fd1b90fe0abbdf34d0b29",
    "at": 1793048724000,
    "title": "wall-framing-takeoff: DXF import reads wall-rectangle plans (Open House Plans)",
    "pr": 10729,
    "agent": "Claude Sonnet 5.5",
    "models": [
      "Claude Sonnet 5.5"
    ],
    "track": "ventures",
    "bullets": [
      "wall-framing-takeoff: DXF import reads wall-rectangle plans, gaps become openings"
    ],
    "detail": "Checked on four Open House Plans DXFs; openings match their schedules.",
    "area": {
      "kind": "product",
      "name": "wall-framing-takeoff"
    },
    "files": 10,
    "lines_added": 18209,
    "lines_removed": 18,
    "added_files": [
      "docs/posts/2026-10-27-wall-framing-takeoff-reads-open-house-plans.md",
      "prompts/runs/2026-10-26-session_017H6ead89JkAMHQszoBhB8q.json",
      "ventures/wall-framing-takeoff/fixtures/open-house-plans-1.dxf",
      "ventures/wall-framing-takeoff/fixtures/open-house-plans-1.openings.csv",
      "ventures/wall-framing-takeoff/fixtures/open-house-plans-2.dxf",
      "ventures/wall-framing-takeoff/fixtures/open-house-plans-2.openings.csv"
    ],
    "revert": false,
    "fix_forward": false
  },
  "runs": {
    "runs": 208,
    "by_track": [
      [
        "ventures",
        78
      ],
      [
        "research",
        58
      ],
      [
        "redteam",
        21
      ],
      [
        "creative",
        20
      ],
      [
        "process",
        18
      ],
      [
        "explore",
        7
      ],
      [
        "review",
        6
      ]
    ],
    "by_outcome": [
      [
        "success",
        184
      ],
      [
        "partial",
        24
      ]
    ],
    "by_model": [
      [
        "claude-sonnet-5-5",
        201
      ],
      [
        "unrecorded",
        7
      ]
    ],
    "measured": 75,
    "api_usd": 56.7,
    "active_minutes": 329,
    "errors": [
      "HVP call passed per-parameter grad_outputs for a flat output (RuntimeError); fused CPU attention has no double backward (fixed with the math SDPA backend)",
      "first h6n launch gave nan cross-fit ratios (leverage-1 rows); fixed by dropping non-finite draws and rerunning",
      "second apt-get failed on dpkg lock held by first background install",
      "first run.py attempt failed: scikit-learn missing from the pyenv.py interpreter; pip-installed it",
      "pyenv.py torch install ran 30 min and was killed; download.pytorch.org 403 via proxy; plain pip install torch from PyPI worked in a venv",
      "first m7q run had non-exchangeable uniform-PPI summand order (coverage 0%); fixed and disclosed in LOG.md",
      "git push 500 once, PR create 500 once; retries worked"
    ],
    "friction": [
      {
        "file": "portfolio/flagships.yaml",
        "n": 22,
        "issue": "ai-bookkeeper and wall-framing next: items nearly all need real outside data; took quick-pick-survey instead, whose items are simulations."
      },
      {
        "file": "research/CLAUDE.md",
        "n": 21,
        "issue": "pyenv.py torch install took several minutes and printed nothing until done; the stop hook nagged about uncommitted run.out during the 20+ minute experiment"
      },
      {
        "file": "prompts/process/prompt-1.md",
        "n": 14,
        "issue": "Only owner rows open besides blocked P056; friction table mixes fixed items (cite_check eprint/DOI) with live ones, so finding the live fault (16 posts failing check_post_frontmatter) took several calls."
      },
      {
        "file": "research/llm-coding-inference/LOG.md",
        "n": 5,
        "issue": "Earlier entries said no model was reachable; HF and PyPI worked this session, so a quick probe at start is worth it."
      },
      {
        "file": "prompts/review/prompt-1.md",
        "n": 5,
        "issue": "derive fetch/build backgrounding did not say to run it alone; fixed. An empty TMPDIR made my redirect write /derive.log at filesystem root."
      },
      {
        "file": "CLAUDE.md",
        "n": 4,
        "issue": "Venture test suites outlast 120s; ran only the new test and did not wait for the full suite."
      },
      {
        "file": "prompts/explore/prompt-0.md",
        "n": 3,
        "issue": "Image/alt/lang/viewport sweep of venture HTML was clean (hits were JS strings); not listed among swept audits, add it."
      },
      {
        "file": "prompt.md",
        "n": 3,
        "issue": "Backgrounding a subshell with & inside run_in_background killed it silently; needed a script file."
      },
      {
        "file": "prompts/creative/prompt-0.md",
        "n": 3,
        "issue": "Says the audio check is on three folders; fine, but no guidance on whether a text-only story on a shelf already over the cap should still get a blog post (I wrote one)."
      },
      {
        "file": "research/sim2real-inference/LOG.md",
        "n": 3,
        "issue": "Its 'Next' line said to put transfer figures in the paper's SIMPLER paragraph; that was already done, only the abstract was stale, so the first step was verification."
      },
      {
        "file": "prompts/research/prompt-0.md",
        "n": 2,
        "issue": "Landing steps 2-3 (scan open PRs/branches) were skipped for time; pick_track.py already redrew past claimed programmes, which was enough here."
      },
      {
        "file": "platform/ci/check_post_frontmatter.py",
        "n": 2,
        "issue": "Reports a red post (suresim-released-code-on-our-pairs, description 192 chars) from another run; not fixed here."
      },
      {
        "file": "ventures/ai-bookkeeper/README.md",
        "n": 2,
        "issue": "The SROIE tesseract recipe omits OMP_THREAD_LIMIT=1; eight parallel tesseract runs on 4 cores took over 10 minutes for 8 files."
      },
      {
        "file": "research/PROGRAMMES.md",
        "n": 2,
        "issue": "Milestone list in llm-coding-inference PROPOSAL.md is stale versus LOG.md (milestones 5b-5h, 6k not listed), so the next step had to be inferred from the log."
      },
      {
        "file": "prompts/promptctl.py",
        "n": 2,
        "issue": "route is a random draw: first call said review (due), second said research; two calls in one run gave different tracks. Twenty reduced review passes already merged today (experiments.md E80-E92)."
      },
      {
        "file": "prompts/process/prompt-2.md",
        "n": 2,
        "issue": "Only P056 (blocked) agent-owned; live fault found by running check_post_frontmatter.py on main, not from the friction table."
      },
      {
        "file": "research/verified-dse/LOG.md",
        "n": 2,
        "issue": "Earlier 'paper sync' entry said BO/BOHB absent while PAPER.md already had them; README was the stale one."
      },
      {
        "file": "research/lowcomm-training/tests/test_lowcomm.py",
        "n": 2,
        "issue": "7 tests fail with 'lowcomm.model has no attribute Config' both before and after my change (a module name clash in this environment); not investigated."
      },
      {
        "file": ".claude/hooks/block_pkill_f.py",
        "n": 1,
        "issue": "Blocked my pkill -f cleanup of a local http server and aborted the whole command (including the sed before it)."
      },
      {
        "file": "CLAUDE hooks",
        "n": 1,
        "issue": "pkill -f / pgrep -f patterns containing the script name killed the shell (exit 144) even when bracketed inside a larger command"
      },
      {
        "file": "research/_shared/pick_track.py",
        "n": 1,
        "issue": "drew a codesign-* track (not a programme) although PROGRAMMES.md says advance a programme by default"
      },
      {
        "file": ".github/prompts/cloud-session.md",
        "n": 1,
        "issue": "pyenv.py reports torch-free python3 as fine for numpy/pytest; lowcomm needs torch, which pip installed into /usr/bin/python3 (not /usr/local/bin/python3), cost ~30 min."
      },
      {
        "file": "prompts/redteam/prompt-0.md",
        "n": 1,
        "issue": "Red baseline was in the posts, not the target code; two posts merged over the 160-char description limit without CI catching it."
      },
      {
        "file": "ventures/ai-bookkeeper README / flagships.yaml",
        "n": 1,
        "issue": "next: lists many sweep items already done; hard to tell what is open"
      },
      {
        "file": "prompts/ventures/prompt-2.md",
        "n": 1,
        "issue": "Says to run venture-preflight for new/changed ventures (5+ min); skipped for a reader-only change with its own full test suite, 1385 tests passing."
      },
      {
        "file": "prompts/routing.json",
        "n": 1,
        "issue": "Router drew research while the scheduled prompt asked for revenue ventures; followed the prompt and the flagship list."
      },
      {
        "file": "research/_shared/cite_check.py",
        "n": 1,
        "issue": "Friction table still lists eprint= not parsed, but the regex already handles it; stale report."
      },
      {
        "file": "research/codesign-aero-cant-bound/README.md",
        "n": 1,
        "issue": "Five sibling READMEs copy forward the same 'add position hold' next step; it is now done."
      },
      {
        "file": "research/PROJECTS.md",
        "n": 1,
        "issue": "civ-contact is listed as a separate project but programme_check wants steps inside a programme; I put it in civ-levers."
      },
      {
        "file": "research/lowcomm-training/LOG.md",
        "n": 1,
        "issue": "Its 'Next: quantisation' was open to parallel runs; I did not re-check main for a 4e claim before 50 minutes of compute, and PR 10664 had landed the same milestone."
      },
      {
        "file": "research/lowcomm-training/tests",
        "n": 1,
        "issue": "pytest needs PYTHONPATH=src for test_harness.py; not documented."
      },
      {
        "file": "prompts/ventures/prompt-1.md",
        "n": 1,
        "issue": "Flagship next: texts are 1.7-2k chars of nested history; finding an unmeasured, offline-doable slice took most of the run."
      },
      {
        "file": "ventures/hearth-and-horizon/BIBLE.md",
        "n": 1,
        "issue": "Next-up list had stale 'twenty-year strand, next' items already done; no open proposals remained, so I invented a topic."
      },
      {
        "file": ".github/prompts/cloud-session.md / research/CLAUDE.md",
        "n": 1,
        "issue": "No note that the nixpkgs OpenROAD (doCheck=false) is a ~1.5 h source build, that background commands default to a 30-50 min limit and kill it, or that `pgrep -f` is hook-blocked."
      }
    ],
    "notes": [
      "Explore idea: post_rate.py, posts per day and tag mix from docs/posts. 543 posts, 9 days.",
      "Found a harness defect: redteam.py fell back to unittest for pytest-style suites (zero tests run, all mutants escaped). Fixed with a guard and test; reran campaigns with pytest; added 4 tests in post_similarity and publish_surface suites. First campaign on check_conflict_markers.py caught 8/8 (not recorded).",
      "Project: Hearth & Horizon (For Other Minds shelf); piece slug the-book-says-twenty-one. Text only.",
      "Four campaigns x 8 mutants on platform/ci checkers (check_input_bounds, check_form_defaults, check_shared_link_clears, shorten_descriptions). 28 of 32 caught; the 4 escapes were each triaged equivalent with a reason. No real defects found, so no code or test changes.",
      "m4f: twin ranks policy pairs at 0.887; real trials match at m=11 per policy, agreeing with n*~10. Tests and homepage build ok locally.",
      "Did not rewrite flagships.yaml next: (item 2 sweep, no change to open items). Cloning ledger fixtures via blobless sparse checkout was slow (>2 min).",
      "Measured that 10x coverBranch nodes/time leaves floors unchanged on 12x30 and 10x28 (no engine change). No blog post or agent doc: small negative result, recorded in the README. Venture tests not run (eval script and docs only).",
      "Flagship 4 slice: --bootstrap. New bootstrap tests 4/4 pass; broader engine/cli/page suites were still running when the PR opened. Simulated data only.",
      "Simulation 20 seeds x 6 cells ran in 30 s locally (npm ci first). Full venture verify/CI not run locally; only the new vitest file (7 tests passed). Hybrid dip at 300 answers was noise; info-only loses at 20% lapse.",
      "verified-dse milestone 16: pilot gate replay on 20 designs; no flow run. Homepage build ok, link check ok; test_proof_success import error is pre-existing (sklearn missing).",
      "Small flagship-1 slice: SROIE total 604->606 of 625 on boxes. No tesseract available, so no OCR re-measure. Did not rewrite flagships.yaml next:.",
      "Project: saints-by-candlelight; piece: jacob-and-the-ladder-at-bethel (episode 34, text only). Script check and node --test pass.",
      "Milestone 5: first real local LLM coder (Qwen2.5-1.5B-Instruct zero-shot, 6000 items). Local checks: research/_homepage/build.py ok, check_md_links ok. Pre-registered predictions all held.",
      "Milestone 5e of llm-coding-inference; homepage build and md-link check run locally.",
      "Switzerland page from vendor search excerpts only (primary hosts blocked by proxy); disagreements flagged on page. Tests: 14 pass. venture-preflight not run.",
      "Cyprus page from search excerpts only (vendor/advisory guides); TAD unread, flagged on page. Bulgaria page checked first: still current, no outcome published. Tests: cyprus + hub 14 pass.",
      "Milestone 6p. Local checks: pytest 15 passed, research build ok, md links ok. Predictions 2-4 held, 1 partly refuted (savings smaller).",
      "Project hearth-and-horizon, slug the-folded-paper (Hearth & Horizon, text only). Effect sizes are rounded and hedged in the story notes, not cited.",
      "Flagship 2 slice: insulation on the page. Local node tests 51/51 and a Playwright check; venture-preflight not run. No agent doc written.",
      "Backlog P058 touched (follow-up; 16 posts re-broke the check). cite_check friction items verified already fixed.",
      "Small step; no experiment. Time mostly spent waiting on LaTeX install.",
      "Router drew process/1; the scheduled prompt asked for revenue ventures, so ran the top open flagship slice instead (deviation). Page select Wall end joints; page.test and drywall.test pass; full wall-framing suite run in background.",
      "Small fix only: added missing description/tags to one post (check_post_frontmatter red). No backlog ids closed; P056 blocked. No blog post written.",
      "Small step: PDF check of SIMPLER WidowX values; build.py ok; no CI wait, merged on local checks.",
      "Project: saints-by-candlelight, piece seraphim-of-sarov-and-the-bear-in-the-clearing (episode 31), text only: audio folders 423 MB, over 400 MB line. No agent doc written. Local checks: check-script ok (5103 words), node --test 12/12.",
      "Creative track, Hearth & Horizon, slug the-thirty-minute-cycle. Text only: audio dirs 423 MB (> 400 MB). Venture tests 11 pass. No agent doc written.",
      "Creative track, Hearth & Horizon, slug the-last-barge (text only; audio 423 MB, over the 400 MB cap). Bootstrap figures computed with a script and checked against the text. First draft had timeline and number slips (barge month, paces vs metres) caught on adversarial re-read and fixed before commit.",
      "Measured coverRepair default-on on shift-roster-builder: 19->15 open hours but 3->5 open shifts, $3,622->$3,690, 547 s suite, 9/157 tests fail. Reverted the flip; recorded in README, flagships next, and a post. No code change shipped.",
      "Milestone 4d: EF top-k at keep 1/32 and 1/128, 6 runs. H4d-i refuted narrowly, H4d-ii supported; no sharp knee.",
      "Idea: run every venture suite (run_venture_tests.py) and fix what is red on main. 15 of 1314 failed, all from the inline favicon sweep; fixed tests and 3 generators; the 15 pass.",
      "Ran eval scripts on 12 seeded weeks; all ILPs optimal. Engine tests not run (calc.mjs unchanged).",
      "Cash flow statement fix in ai-bookkeeper (depreciation add-back to operating, disposal proceeds to investing). Router drew research track; followed the user's product brief instead. External hosts blocked by proxy, so offline slice. engine/page/venture tests pass.",
      "Fixture sweeps of firefly-iii/data-importer, erpnext, ledger had no statement fixtures; added a trailing-comma metamorphic relation instead. ai-bookkeeper suite via run_venture_tests: 0 failed.",
      "main_health.py showed 21/22; shortened seven post descriptions (163-216 chars) to <=160. Backlog has no agent-owned open item (P056 blocked); no backlog ids touched. Posts keep tripping the limit: runs merge without running check_post_frontmatter locally, a candidate for a future process item.",
      "Milestone 5c; prediction 1 was ill-posed (null coder scores sens+spec 1.0), disclosed in LOG. runcost not attached.",
      "Milestone 6q: sizing rule on NaijaSenti with real Qwen coders, oracle and pilot versions; all 4 predictions held.",
      "224 wall-framing-takeoff tests pass locally. Opening widths match openings.csv on 4 Open House Plans houses.",
      "Target platform/pages/share.mjs; 8 mutants, 4 escaped (3 gaps guarded, 1 equivalent); no real defects found in a short hunt. No blog post: small guard-only run.",
      "Explore idea: in-page anchor/aria reference checker (check_inpage_refs.py). Sweep found 0 broken; shipped as CI guard. No agent doc written: nothing for the next run to know beyond the post.",
      "Trimmed ai-bookkeeper, changepoint-detector, shift-roster-builder next: under the cap. validate.py ok; test_allocate 71 OK; promptctl validate ok.",
      "184 venture tests pass locally; ILP check on 12 seeded weeks. A mistaken git checkout of the working tree was blocked by the classifier before any loss.",
      "meanvar-bootstrap.test.mjs 6/6 pass; engine/cli/page suites were still running at record time.",
      "Hearth & Horizon, slug the-third-list: capture-recapture story; numbers computed in Python (Chapman, log-linear fits). Text only: audio dirs 423 MB, over the 400 MB cap. Blog post added.",
      "Milestone 6o: audit-size rule checked on GoEmotions subreddit groups; 3 of 4 predictions held, the 4th refuted. Local checks: research build.py ok, check_md_links ok, programme_check ok.",
      "Small writing step: abstract reordered, paper rebuilt (pdflatex installed via apt after apt-get update; texlive-science absent before update). Checked: build.py ok. No experiment.",
      "Campaign on platform/ci/slug_dupe.py: 8/8 caught. Real defects were two over-long post descriptions.",
      "coverRepair now ends on a node budget (deterministic). Default-on was tried: calc.test.mjs + page.test.mjs 156 tests, 147 pass, 9 fail (7 guide-page tables, repair-off baseline test), 427 s; kept off. New determinism test passes; coverRepair test passes. After reverting the default: calc, page and cli tests 172, 171 pass, 1 fails: the call-out page table (24 changed shifts, expected 22). It fails identically on unmodified main (724d542a, run alone, 192 s), so it predates this PR and is left for a later run. venture-preflight not run. Other flagships' items needed real data or blocked hosts (irs.gov unreachable).",
      "Critique mode. Fixed 2 posts failing check_post_frontmatter on main (missing description/tags; 172-char description). No new blog post: small fix. Open question left: portfolio-validate runs the check on docs/posts changes yet these posts merged; cause not investigated. No backlog ids touched.",
      "Installed tesseract via apt; total 74.9% to 75.8% on tesseract text, boxes unchanged 607/625; ran 51 tests in 3 receipt test files. Full venture-preflight not run.",
      "node --test *.test.mjs in wall-framing-takeoff: 218 pass, 0 fail. DXF import tested on hand-built DXF text only; no real architect DXF tried.",
      "verified-dse milestone 19: greedy ridge multi-fidelity surrogate on cached tables; negative result (3 of 4 predictions refuted). No flow run (no yosys/OpenROAD in image). Build ok, check_md_links ok, programme_check ok.",
      "Small fix: coin-unit Coinbase history refused instead of booked as cents. ai-bookkeeper suite 1376/1376 local. Sample-repo sweeps are saturated; did not do a bigger flagship slice.",
      "Turkey mandate page for einvoice-preflight (flagship 5); Bulgaria checked, no outcome yet. Local tests 14/14; venture-preflight not run (long).",
      "verified-dse milestone 17; sweep.py ran in 90s; predictions 1,3,4 held, 2 half held; build.py ok, md links ok.",
      "Project hearth-and-horizon; slug the-latest-easter; text only (audio over budget). No separate docs/reports agent doc.",
      "Swept 11 GnuCash doc/examples QIF/CSV files; one fault (two-digit year always 20yy) fixed. ai-bookkeeper suite: 1374 tests pass locally.",
      "Target ventures/ai-bookkeeper/estimatedtax.mjs; 3/8 caught, 5 gaps closed by one test; rerun 8/8.",
      "Small writing step: synced the paper abstract to SIMPLER 4c/4e, re-ran m4e (identical output). No new experiment; partial because the bar asks for a deeper step. research build ok, md links ok; CI not waited on.",
      "Austria/Finland pages from search excerpts only; IRS 2027 rev proc still not out (irs.gov blocked by proxy). Tests: node --test '*.test.mjs' in ventures/einvoice-preflight, 714 pass.",
      "Milestone 5b: Qwen2.5 0.5B/1.5B/3B zero-shot, 2 of 4 predictions refuted. build.py and check_md_links ok; no unit tests touched. runcost not attached.",
      "Landed drywall ceiling steps in wall-framing-takeoff (engine + CLI plan key); README and flagships next updated.",
      "Swept MugenLab/ledgerbridge fixtures; 3 CAMT faults fixed; one existing hand-made MT940 test fixture had inconsistent balances and was corrected.",
      "Two campaigns (check_input_bounds.py, check_social_proof.py), 16 mutants, all caught. Read check_input_bounds.py as an attacker; no real defect reproduced. No post or agent doc: nothing new to report beyond the catch rate.",
      "Swept csv2ofx's 19 sample CSVs; one fault (running-balance check false breaks on a file in neither order), fixed with a balance-chain fallback. Full ai-bookkeeper node suite 1366 pass. IRS 2027 revenue procedure still unavailable (irs.gov 403, not found by search). Venture preflight not run (no new page).",
      "creative track; saints-by-candlelight episode 37 slug moses-and-the-bush-that-was-not-consumed, text only (audio 423 MB over the 400 MB line; huggingface 403).",
      "Backlog had no workable agent item (P056 blocked). Critique mode: main_health.py showed check_post_frontmatter red (195-char description); fixed. Second occurrence after #10694, so posts are merging with this check red.",
      "Target platform/webcheck/page-integrity.mjs, 8 mutants, 5 caught; added tests for review finding 15 (regex quote) and EOF line comment; 2 equivalent (529, 813 unreachable for valid input). Gap 753 guarded. Catch rate 0.625 -> 1.0 excluding equivalents (after fix, equivalent excluded).",
      "Milestone 24 of verifiable-training-mechanisms: parameter-free path-length predictor for H6; partly supported (half of detectable rows).",
      "Flagship 4 slice: measured why --bootstrap missed CHF; eval + test run locally (2 pass). Pilot-minSegment fix tried, did not work; recorded.",
      "Hearth & Horizon, story the-four-minutes (Hearth & Horizon shelf). Text only; node generate.mjs and node --test (11/11) pass.",
      "Negative result: GARCH-filtered meanvar 1% false alarms on GARCH noise but sd-break detection 97%->6%. Full engine.test.mjs outlasted tool timeout; ran only the new test (pass). No agent doc in docs/reports written.",
      "Campaign on ventures/ai-bookkeeper/bank.mjs: 8 seeded, 5 caught, 3 escaped (2 equivalent, 1 gap now guarded). Catch rate 62.5% -> 75% of all seeded (100% of non-equivalent). No real defects found in the hunt.",
      "Flagship 4 (changepoint-detector). New real-data test and eval pass; full venture suite result in the PR.",
      "Small slice on flagship 1: free cash flow line. engine.test.mjs 59/59 locally. Not checked on real books.",
      "Saints by Candlelight episode 32, samuel-and-the-voice-in-the-night (1 Samuel 1-3, Scripture straight). Text only: audio at 423 MB, over the 400 MB line. check-script ok (5494 words, slightly under the 5,500 target, over the 4,500 floor); node --test 12/12 pass.",
      "No backlog id touched. Critique mode. Small checklist line only; no blog post (tiny process change), declined to pad.",
      "Full ai-bookkeeper node suite 1379/1379 locally. Did not rewrite flagship next:. Did not run venture-preflight (no new page).",
      "Creative track, Hearth & Horizon, slug the-eighteenth-place (text only; audio 423 MB, over the 400 MB cap). Binomial interval and tail probabilities computed with a script; calendar dates (Easter 5 Apr 2048, St Joseph Thursday 19 Mar) checked. Adversarial re-read fixed a wrong tail probability (1 in 30 -> 1 in 28) and a timeline order slip.",
      "ai-bookkeeper flagship 1: foreign invoice instalment fix in accruals.mjs near(); venture suite passes (run_venture_tests.py ai-bookkeeper). No CI waited on; local checks only. No agent doc in docs/reports.",
      "Red baseline on platform/pages/writing.mjs was a post description 209 chars long (PR #10605 landed it); shortened to 154. Campaign 8 mutants: 2 caught, 6 escaped (4 cosmetic CSS equivalent, 2 gaps guarded by new tests: lone future post, aria-pressed polarity). Catch rate 25% -> 75%. Writing suite 17/17.",
      "Brazil NF-e page + brazil.mjs CNPJ/CPF check (alphanumeric CNPJ). WebFetch could not reach the notice sites, so facts are from web-search excerpts and stated so on the page. Blind spot measured: digit-for-digit never missed; 24/420 and 27/420 with letters. Checks: node --test brazil*.test.mjs e-invoicing-mandates-by-country.test.mjs (20 pass); widget in headless Chromium over http, no page errors.",
      "Milestone 23 TPE baseline; negative result. Checks run: research/_homepage/build.py ok, check_md_links ok.",
      "No backlog ids touched. Fixed 13 front-matter faults on 6 posts; checker exits 0; validate ok.",
      "Idea: Japan qualified-invoice page with a local T-number check (japan.mjs) and the 1 Oct 2026 transitional credit step. Check digit pinned on one real number (the tax agency's own); 0/9 blind spot measured and documented. Reform revisions unread. Checks run: node --test japan*.test.mjs e-invoicing-mandates-by-country.test.mjs (20 pass), widget in headless Chromium over http.",
      "estimatedtax.mjs 8/8 mutants caught; 2 campaigns; real defects found by hand-hunt and patched with a failing-first test. ai-bookkeeper estimatedtax/page/cli suites pass.",
      "Small slice on flagship changepoint-detector: Nile variants test. Did not rewrite flagships next: (item not in open list). CI not awaited; ran node --test locally (5 pass).",
      "Doc-only paper step, no experiment, not LaTeX-compiled (no TeX in container). Partial because no new result and no blog post.",
      "Project hearth-and-horizon, piece the-neap-week (text only).",
      "Saints by Candlelight, slug rebekah-and-the-camels-at-the-well (episode 33), text only.",
      "No fault found; no code shipped. Sweep of Maybe, GnuCash, skrooge, grisbi, ERPNext, smart_importer, firefly data-importer was clean or fixture-free. Landed guidance edit + post only. 2027 IRS rev proc still not out.",
      "Backlog: none touched (P056 blocked). check_post_frontmatter exits 0 after fix. Did not run full unittest/validate beyond the checker.",
      "Idea: fill the EU country gap with Sweden. Sources were vendor pages via search; primary Swedish sources unread. No agent doc written. Local check_pages_links not run (no _site).",
      "P056 untouched (blocked on P018). Check run locally: check_post_frontmatter.py rc=0.",
      "Milestone 5a: median aggregation and attack hook in DiLoCo, test, 12 GPT runs; the offset-3 attack is too weak to move loss. 4e (quantisation) is PR 10664, another run.",
      "Target job-application-tracker/tracker.mjs: 12 mutants, 8 caught; real defect: ICS semicolon escape was a no-op. Fixed + 4 tests.",
      "Target platform/deploy/sealedbox.mjs, 7/8 caught, 1 equivalent. No blog post: small redteam run.",
      "Ran node --test drywall.test.mjs cli.test.mjs locally: 32 pass. Did not run venture-preflight or full CI locally.",
      "Critique mode; no backlog ids touched. Fixed descriptions in 3 posts; main_health 22/22.",
      "Project: saints-by-candlelight, episode 35 slug tobias-and-the-angel-on-the-road-to-media (text only).",
      "Milestone 5f: synthetic coders at 0.70/0.60 agreement, five error shapes; 4 of 5 predictions held, 1 refuted. Homepage build and md link check ok; no CI waited on.",
      "Swept 49 wolph/mt940 fixtures; one fault fixed (blank entry date). Ran new test plus mt940slash, thirdparty, sepa tests locally; venture-preflight and flagships.yaml next: not run/updated (small slice).",
      "No real architect DXF reachable (GitHub scope limited, search found none). Tests on hand-built double-line house.",
      "Programmes saturated today; did not start BOHB bracket arm (complex harness, 20-min runs).",
      "Chose shift-roster-builder after ai-bookkeeper's items were data-blocked. 10x28 x 8 weeks vs HiGHS: week 5 94->89 h (optimum), week 7 65->62 (optimum 61). 142 tests pass locally; CI not awaited yet.",
      "Local node tests for mt940/sepa/formats pass (55). Venture preflight and flagships.yaml next: not rewritten (item 2 stays open).",
      "No blog post: reduced review pass. A rm of stray /derive.log was denied by the safety check; file left in place.",
      "No blog post: a reduced review pass; validate shows errors only on another run's record (2026-10-27-session_01RQ4r...) not touched here.",
      "Cash flow burn/runway; engine, page, cli tests pass locally (82). flagships.yaml next: unchanged (slice not in the open items list).",
      "Tests 17 pass; build.py ok; check_md_links ok; programme_check ok. Experiment 25 cells x 3200 evals.",
      "coverBranch: floor equals ILP optimum on 10/12 seeded weeks (was 5). 190 venture tests pass locally; CI not awaited beyond merge check. One bench run, timed beside tests; no agent doc in docs/reports (README holds the detail).",
      "Flagship 1 (ai-bookkeeper). Fixture sweeps of Firefly III importer, ERPNext, MMEX found no bank files; apt installed tesseract, so scored the receipt reader on real OCR of 626 SROIE scans. Venture suite 1367 pass locally (node --test). venture-preflight not run.",
      "Touched P056 (display only, still blocked). No post or agent doc: small tooling change; deviation not recorded as a hard rule. Checks: unittest discover -s prompts 108 OK, promptctl validate OK.",
      "m7u: SureSim released interval code run on our pairs; wider than real-only on 84/84 cells. Homepage build and md link check pass locally.",
      "No yosys/OpenROAD in session; analysis used committed results only. Predictions partly post-hoc, disclosed in LOG.",
      "Reduced pass (steps 1,3,7,8). Skipped audit and drift report.",
      "Small step: first compile of the paper draft (texlive installed via apt, 8 pages, clean). No new experiment.",
      "Swept OCA/bank-statement-import CSV/QIF fixtures; fixed D/C flag column and Label alias in bank.mjs; full suite 1341 pass. No agent doc written (nothing the next run needs beyond README Next).",
      "Explore idea: sweep for unescaped innerHTML next to free-text inputs; also clean: html lang, viewport, img alt, target=_blank rel. One page fixed.",
      "Venture tests for changepoint-detector 103 pass, run locally in background (370 s). venture-preflight not run.",
      "3 campaigns, 24 mutants (research_idea_dupe, checklist_coverage, unlanded_work); 4 escaped, all guarded. 1 real defect (orphan branches read as landed) documented, not patched. No agent doc written.",
      "Critique mode; main_health 22/22 green. No backlog ids touched.",
      "Critique mode. No backlog ids touched. The check is in portfolio-validate.yml yet posts still reached main, likely concurrent merges.",
      "Checked ai-bookkeeper bank-reader sweeps (saturated) and IRS 2027 rev proc (not out). Luxembourg page refreshed from search excerpts; chd.lu/kpmg unreachable. node --test on luxembourg and hub tests: 15 pass.",
      "stdlib experiment run locally (~350 s); build.py ok, check_md_links ok.",
      "Project: hearth-and-horizon; piece: the-clear-reading (text only, audio 423 MB over 400 MB cap). Venture tests 11/11.",
      "Swept we-promise/sure import fixtures; one fault fixed (blank YNAB payee -> memo). Tried joining Original Description for Mint, reverted: neobank.test.mjs pins USAA ignoring it. ai-bookkeeper suite 1356/1356 locally. venture-preflight not run (engine-only change).",
      "Flagship 2 slice: insulation in budget. venture tests 192 pass locally; venture-preflight not run.",
      "civ-levers milestone 2: contact-widened tolerance and identity; 14 tests pass, homepage build ok, links ok.",
      "Milestone 22 of verified-dse: GP-EI/LCB BO baseline on cached tables; negative against f3, closes barrel64 at 40. No new blog post: research-only step, logged in LOG.md.",
      "Negative result: preprocessing hurts on flat SROIE scans. Deskew+threshold combined variant never ran. Local checks only; no engine code changed.",
      "Akaunting transactions workbook fix; ai-bookkeeper node suite 1390 pass locally. Did not rewrite flagships next: (item 2 sweep list only grew by one line in README).",
      "Flagship 1 slice: Amazon Business order-history aliases in bank.mjs, 2 tests, full suite 1349 pass. irs.gov unreachable (000) so the 2027 rev-proc item was not probed. Did not run venture-preflight.mjs or the workflow-local checks; no new venture.",
      "changepoint-detector/engine.mjs abandoned (baseline 444s). Campaigns: check_input_bounds.py 12/12, check_step_grid.py 12/12, pages/check.mjs 8/10 caught; 2 gaps in the CLI entry closed with two spawn tests (99 pass). Catch rate 0.941 -> 1.0.",
      "Milestone 4f of lowcomm-training (3-bit and un-fed-back sign cells). My first 4e run (15 runs) duplicated PR 10664, which landed while it ran; I reset the branch to main and kept only the two cells 4e lacked. Local checks: research/_homepage/build.py ok. CI not awaited. No post: run time went to the torch install and the duplicate.",
      "metamorphic.test.mjs 549 pass locally; CI not awaited beyond merge check.",
      "Router drew creative; the scheduled prompt asked for revenue ventures, so took flagship 5. Malta page from search excerpts (ec.europa.eu, vatupdate unreachable via WebFetch). node --test *mandate*.test.mjs page.test.mjs: 287 pass.",
      "Flagship 1 slice: ACCEPTED TOTAL as cash tendered; SROIE total 607->609/625. Boxes only (no tesseract). 2027 IRS rev proc still absent (rp-26-31+ 404). Remaining misses are label noise. Did not run venture-preflight (no new venture); ran 3 test files, 51 pass.",
      "Milestone 4f of lowcomm-training: logged EF residual norm; 2-bit EF ratio ~1.00 (no growth), sign EF 0.63-0.74. One seed. build.py/homepage not rerun (no project added).",
      "Two campaigns: check_duplicate_ids 6/6 caught; check_storage_guard 6/8, one gap (default root), one equivalent. No real defects.",
      "Explore: sweep of kinds not yet audited (static a11y/meta, then headless-browser JS errors on all venture pages). All clean; shipped the browser sweep as platform/ci/page_js_errors.mjs.",
      "Small step: negative check; arxiv/project site blocked by proxy.",
      "Milestone 4e of lowcomm-training: quantize() added, 12 runs; 4-bit and scaled sign+EF match uncompressed, 2-bit+EF fails (+0.87). Tests 9 passed with PYTHONPATH=src; homepage build ok; md links ok. Failure mechanism untested.",
      "Installed tesseract via apt, cloned SROIE, merchant exact 33.1->36.6% on OCR, boxes 63.7->63.6. Local checks: 56 receipt/ocr tests pass; CI not awaited.",
      "Skrooge, firefly-iii repos had no sample files; beancount-ing/dkb/n26 inline samples swept; ING payee column fixed. Full suite 1367 pass. Venture preflight not run (small reader fix).",
      "Campaign on post_similarity.py first escaped the ge-to-gt threshold mutant; added test_threshold_is_inclusive. Re-campaign 7/8, remaining escape equivalent. No real defects found in check_duplicate_ids.py.",
      "ai-bookkeeper cashFlowByMonth; node --test '*.test.mjs' in ventures/ai-bookkeeper 1426 pass. flagship next: unchanged (open items are real-data ones). No agent doc written.",
      "SROIE boxes merchant 521->530 of 626 (83.2%->84.7%), no regressions by miss-list diff; 1393 venture tests pass. irs.gov blocked (403) so 2027 tax items untouched; tesseract not installed so OCR-text figures not re-measured.",
      "Milestone 6m: HC3-type leverage for PPI++ at small audits; predictions 1-3 held (2 at the bar for one cell), 4 untested. Build ok, link checks ok. Width comparison left as next step.",
      "Small negative-result slice on changepoint-detector; eval run locally, no CI waited on.",
      "Real FX returns through meanvar modes; bootstrap negative on CHF. Ran only fx-shocks.test.mjs (passes), not full venture suite or venture-preflight; no new venture-level pages so preflight skipped.",
      "Per-episode SIMPLER data unreachable (huggingface.co refused by proxy; SimplerEnv repo has no episode logs). Pre-registered H4e-i/ii had a sign error, disclosed in LOG.",
      "No blog post: slice found no fault. node --test metamorphic.test.mjs 480 pass.",
      "One campaign on check_post_frontmatter.py: 7/8 caught, 1 gap guarded. No real defects found.",
      "Critique mode. Backlog ids touched: none (P056 blocked). Verified: check_post_frontmatter.py exit 0, its unit tests OK, promptctl validate OK. Not run: CI on the PR.",
      "No blog post: nothing new to report beyond E93. Merge of main brought in another run's invalid 2026-10-27 record (validate errors), not mine.",
      "Several candidate repos (Firefly III importer, MMEX, beancounttools, Odoo CSV) had no bank samples; Odoo's demo PDF gave three real faults. Full suite 1359 pass.",
      "Milestone 28 run (10 seeds x 6 arms) executed locally; results in experiments/subsample_decomp. Checks: research CI not run locally beyond the experiment itself.",
      "Reduced pass. No post: review run; finding logged in experiments.md E92.",
      "Critique mode. No backlog ids touched. main_health 21/22 -> fixed four post descriptions; promptctl validate now runs check_post_frontmatter. validate and unittest discover -s prompts pass.",
      "Sales-agent and ai-bookkeeper next items need real data (no public labelled cold-reply set found); einvoice Bulgaria status unchanged on search. Landed a quick-pick-survey long-budget simulation (vitest, 7 passed locally). CI not awaited beyond what runs on the PR.",
      "Added projects.mjs + CLI; node --test cli/engine/rental/projects: 73 pass. Did not run venture-preflight or full CI locally.",
      "CI not awaited; ran fx-bootstrap-tail.test.mjs locally (2 pass). Venture preflight not run: eval/test/README only.",
      "Flagship 1 slice: Fava sample sweep, two description-column faults fixed. Full node suite 1349 pass locally; venture-preflight not run.",
      "changepoint-detector: UK gas (Rdatasets) real slope-change series, eval, 3 tests; full venture suite 155/155 locally. Literature link to ~1970 recalled, not verified; stated as such.",
      "Milestone 31: measured delta/alpha/kappa on transformer, fed to H3 LP. One prediction refuted (logged). Local checks: homepage build ok, md links ok, live links ok. CI not awaited.",
      "Milestone 6n: width of HC3+t PPI++ intervals vs human-only. 3 of 4 predictions held; (2) refuted. Cross-fit n=60 invalid (nan se, disclosed). Bare python3 lacks numpy; pyenv.py output ended up /usr/local/bin/python3 which worked.",
      "Project saints-by-candlelight, piece martin-of-tours-and-the-half-a-cloak (episode 30). Text only: audio folders at 423 MB, over the 400 MB line. No agent doc written; nothing for the next run beyond the PRODUCTION.md list update.",
      "Reduced pass. No blog post: review run, short. Future-dated posts now held until their date.",
      "Committed once on a stray local branch by mistake, fast-forwarded onto the designated branch; no effect on history. Tests: fx.test.mjs 16 pass; run_venture_tests ai-bookkeeper 0 failed.",
      "Paper-only step: no experiments; numbers copied from LOG.md. Gligoric/Fisch full reads still open.",
      "Milestone 6r run locally (about 1 min). Predictions 1 and 4 held, 2 and 3 partly refuted. Library unchanged, so tests not rerun (no pytest in bare python). Homepage build.py ok. No agent doc in docs/reports; the log carries the finding.",
      "Wired compare report into the page; page.test caught missing sw.js shell entry. Did not run venture-preflight or full CI locally; flagships next: not rewritten (no listed item landed).",
      "Small slice: re-measured NB growth-change range on 2 fresh seeds (101/107). No agent doc written; no engine change; venture-preflight not run (docs/eval only).",
      "Catch rate 26/28 (8/8, 10/10, 1/10 on sync_tree_counts.py) before fix; 7 of 9 escapes closed by new tests, 2 equivalent. No real defects. No agent doc: nothing the next run needs.",
      "Flagship 2 slice: drywall jointsOnStuds. 63 tests pass locally (drywall, cli, page, budget). venture-preflight not run.",
      "creative: hearth-and-horizon, slug more-roof; text only. node --test 11/11 pass.",
      "Process track; touched no backlog ids (P056 blocked). Shipped platform/ci/main_health.py; 21/21 checks pass on main. Did not run unittest discover for prompts; validate passed.",
      "verified-dse milestone 15: 600 flow runs on five non-arithmetic larger designs; predictions 1 and 3 refuted, 2 held at 80 s. research build.py ok, check_md_links ok, live_links 0 updates. Cite check not needed (no new citations).",
      "Redteam on ai-bookkeeper/plaid.mjs: 8 mutants, 7 caught (87.5%), 1 escaped (and-to-or in plaidList) now guarded by a sync added/modified test; rerun catches it (100%). No real defects found. plaid.test.mjs 5/5 pass.",
      "saints-by-candlelight, episode 36 naaman-and-the-seven-dips-in-the-jordan; text only, audio 423 MB over the 400 MB line. Hearth & Horizon and Saints both landed pieces earlier the same day; chose Saints as H&H had the newer piece. No separate agent doc: nothing the next run needs beyond PRODUCTION.md."
    ]
  },
  "asks": null,
  "snapshot": null
}
