{
  "day": "2026-10-27",
  "merges": 224,
  "baseline_merges_per_day": 302.1,
  "lines_added": 71376,
  "lines_removed": 1361,
  "files_changed": 1716,
  "busiest_hour": {
    "hour": 22,
    "merges": 13
  },
  "hours": [
    9,
    8,
    12,
    9,
    11,
    10,
    6,
    11,
    12,
    9,
    9,
    8,
    5,
    8,
    11,
    10,
    10,
    10,
    8,
    12,
    6,
    9,
    13,
    8
  ],
  "agents": [
    [
      "Claude Sonnet 5.5",
      187
    ],
    [
      "Claude",
      37
    ]
  ],
  "products": [
    {
      "name": "ai-bookkeeper",
      "merges": [
        {
          "sha": "99607d181b0453e8d86a019abd7a5de53b3695b3",
          "at": 1793059205000,
          "title": "ai-bookkeeper: match foreign invoices to payments in their own currency",
          "pr": 10762,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 81,
          "lines_removed": 12,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-euro-invoice-euro-payments.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7e71b9986390fb8631d7cf1999d32fcd28958fba",
          "at": 1793059852000,
          "title": "ai-bookkeeper: pin twelve amount spellings in a test",
          "pr": 10764,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: pin twelve amount spellings in a test; post",
            "ai-bookkeeper post: shorten description",
            "ai-bookkeeper post: shorten description again",
            "ai-bookkeeper post: description under 160"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 96,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-amount-spellings.md",
            "prompts/runs/2026-10-27-session_01FttoodUWQ4XSVjTHhBt94P.json",
            "ventures/ai-bookkeeper/amount-spellings.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "55b3080f5d7095a928e3ecfc54888dc5bdd9d5e2",
          "at": 1793060018000,
          "title": "ai-bookkeeper: pin cross-currency credit note behaviour",
          "pr": 10766,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: pin cross-currency credit note behaviour, post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 70,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-credit-note-other-currency.md",
            "prompts/runs/2026-10-27-session_01HT717sbFJbdF58vzjki2wq.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3c677d5f4b81c8c46198c45d6ff4fcdf9a79e706",
          "at": 1793077127000,
          "title": "ai-bookkeeper: property test for foreign documents paid in instalments",
          "pr": 10810,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 50,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-foreign-settlement-property-test.md",
            "ventures/ai-bookkeeper/fx-settle-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "34e7d527021fd58123115c82af8d89fdb08d4167",
          "at": 1793077786000,
          "title": "ai-bookkeeper: read Publication 1099 (2026) for the 1099-K and backup withholding figures",
          "pr": 10814,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read Publication 1099 (2026) for the 1099-K and backup withholding figures"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 75,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-irs-pdfs-readable.md",
            "prompts/runs/2026-10-27-session_01AcxTtJgrdMWxgFfbSu2abB.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6058f8685c0456b9be20559b4a9754989fb749ac",
          "at": 1793080774000,
          "title": "redteam: ai-bookkeeper billpay 2026-10-27",
          "pr": 10820,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ai-bookkeeper billpay 2026-10-27"
          ],
          "detail": "Two tests close the escaped mutants (default reserve, late fee on a bill that cannot fit).",
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 176,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVKiad1qfmy7KkNK1U4.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ad7c08add38738fdb722a2684e7d54ab45c5932b",
          "at": 1793085078000,
          "title": "ai-bookkeeper: read Fidelity cash-export payees from Action and skip buys",
          "pr": 10831,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: read Fidelity cash-export payees from Action and skip buys",
            "flagships: trim two next: items under the 2,000 character cap"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 97,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-fidelity-cash-exports.md",
            "prompts/runs/2026-10-27-session_01EhTJVKQ29i2hohLYqbFPHG.json",
            "ventures/ai-bookkeeper/fidelity-cash.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8be075ce2bf5227c863504be5e68a162a58b7d62",
          "at": 1793085468000,
          "title": "ai-bookkeeper: HDFC \"Value Dat\" no longer read as Amount; Txn Date over Value Date; footer line",
          "pr": 10836,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: HDFC 'Value Dat' no longer read as Amount; Txn Date over Value Date; computer-generated footer line"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 95,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-hdfc-value-date.md",
            "prompts/runs/2026-10-27-session_01AcxTtHTm4YmWH9k94e8guo.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4e01d8ae774bf021e7dba678f6f00e7dd0b19791",
          "at": 1793091538000,
          "title": "ai-bookkeeper: property test for loan schedules, rounding drift measured",
          "pr": 10851,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 56,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-28-ai-bookkeeper-loan-schedule-drift.md",
            "ventures/ai-bookkeeper/loans-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e79474b73c0bdfdc402a2cd74a7e28bd304393b1",
          "at": 1793092398000,
          "title": "ai-bookkeeper: sales tax due dates read from WA, TX, FL pages; WA annual is April 15",
          "pr": 10856,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: sales tax due dates read from WA, TX, FL pages; WA annual is April 15"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 148,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-state-due-dates-primary.md",
            "prompts/runs/2026-10-27-session_01AcxTtGtsPnuomGvy2Wt93y.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5170ee0cb065ccd95a4c8b5083d6b458af40a24d",
          "at": 1793095170000,
          "title": "ai-bookkeeper: break-even income and margin of safety in the report",
          "pr": 10860,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 55,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-break-even.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4b18eacc39ae07eeee4d01058ffa568a8d908563",
          "at": 1793095903000,
          "title": "ai-bookkeeper: days sales outstanding and days payable in the report ratios",
          "pr": 10864,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: days sales outstanding and days payable in the report ratios"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 8,
          "lines_added": 98,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-how-long-customers-take-to-pay.md",
            "prompts/runs/2026-10-27-session_01AcxTtKhsgeJaFdXEzYoWFc.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "caec54c45b8f96cd3a2afe8dcbf2d664c6ce4f8e",
          "at": 1793096043000,
          "title": "ai-bookkeeper: merchant reader skips OCR fragment lines and marked TAX INVOICE",
          "pr": 10865,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: merchant reader skips OCR fragment lines and marked TAX INVOICE (SROIE tesseract 281 to 287 of 626)",
            "post: shorten description",
            "post: shorten description again"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 97,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-reading-the-shop-name-off-a-receipt-photo.md",
            "prompts/runs/2026-10-27-session_01AcxTtM1rvxdQAnLxcs7JqM.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "458775a49a2dbce061a2b4b090bb35b04b53f4d0",
          "at": 1793100327000,
          "title": "ai-bookkeeper: property test for break-even and days outstanding",
          "pr": 10876,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for break-even and days outstanding",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 130,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-break-even-property-test.md",
            "prompts/runs/2026-10-27-session_01E5sJKkZGNeY7TSAUFcq6uv.json",
            "ventures/ai-bookkeeper/breakeven-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "de52cac0dc19bdcfc0e35215ab261975b02aa6f1",
          "at": 1793104236000,
          "title": "ai-bookkeeper: property test for fixed assets, two bugs fixed",
          "pr": 10880,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for fixed assets; disposal dates extend depreciation, cash flow keeps 1590 adjustments"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 114,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-a-random-test-found-two-bugs-in-asset-disposals.md",
            "prompts/runs/2026-10-27-session_01AcxTtKoRZ5ssisNmTnJWXm.json",
            "ventures/ai-bookkeeper/assets-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4f3dd62bc04888cedd77d87b9a8c607b794716bf",
          "at": 1793104455000,
          "title": "ai-bookkeeper: property test for prepaid schedules",
          "pr": 10882,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for prepaid schedules (500 random items, no bugs found)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 85,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKn1LZ5VYUyiRLnZ8zN.json",
            "ventures/ai-bookkeeper/prepaid-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4a485dba3bd3c4af8883e823e21a3f791907f500",
          "at": 1793106116000,
          "title": "ai-bookkeeper: property test for perpetual inventory (FIFO and average)",
          "pr": 10884,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ai-bookkeeper: property test for perpetual inventory (FIFO and average)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 87,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVLRn6uGk2mQrnr8eUU.json",
            "ventures/ai-bookkeeper/inventory-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "86186bad0ac93e122fe0f915a5e4e13872831c4d",
          "at": 1793107536000,
          "title": "ai-bookkeeper: property test for documents, payments, credits and write-offs",
          "pr": 10887,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for documents, payments, credits and write-offs"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 91,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtGM6vzg6PyuiHLfM5L.json",
            "ventures/ai-bookkeeper/accruals-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c8f9fe608e1ba5611a632f82e006cac2c53d85c5",
          "at": 1793107785000,
          "title": "ai-bookkeeper: property test for payroll 941, 940 and W-2 tie-out",
          "pr": 10888,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 56,
          "lines_removed": 0,
          "added_files": [
            "ventures/ai-bookkeeper/payroll-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f3a88fc43037221db37167b8c4b1f65515945419",
          "at": 1793111279000,
          "title": "ai-bookkeeper: property test for the sales tax return and state due-day rules + blog post",
          "pr": 10896,
          "agent": "Claude",
          "models": [],
          "track": "explore",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 83,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-sales-tax-return-property-test.md",
            "ventures/ai-bookkeeper/salestaxreturn-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a1118a7b51a839f079d6f1ab7e83f3cacb7bff11",
          "at": 1793111670000,
          "title": "ai-bookkeeper: property test for statement reconciliation + blog post",
          "pr": 10897,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for statement reconciliation + blog post",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 113,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-reconcile-property-test.md",
            "prompts/runs/2026-10-27-session_01E5sJKmLziTFYVDouZJkgTX.json",
            "ventures/ai-bookkeeper/reconcile-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cc4c0ebcce8681ac87b730b12025ab9396794aae",
          "at": 1793111816000,
          "title": "ai-bookkeeper: property test for reports and year-end close + blog post",
          "pr": 10899,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for reports and year-end close + blog post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 122,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-ai-bookkeeper-year-end-property-test.md",
            "prompts/runs/2026-10-27-session_01E5sJKkE9uy1ey5LDshgBEW.json",
            "ventures/ai-bookkeeper/yearend-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0b4a9980f692dbe399f97d10e92d49e89471a013",
          "at": 1793113728000,
          "title": "ai-bookkeeper: property test for import order and overlap",
          "pr": 10904,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for import order and overlap",
            "Post front matter"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 51,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-does-the-order-your-bank-rows-arrive-in-change-your-books.md",
            "ventures/ai-bookkeeper/import-order-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d733a49ea01fcdd9c2d3a9e38e19bb10769c70c7",
          "at": 1793114789000,
          "title": "ai-bookkeeper: property test for tax depreciation",
          "pr": 10907,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for tax depreciation"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 102,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-do-macrs-tables-still-add-up-to-the-cost.md",
            "prompts/runs/2026-10-27-session_01E5sJKiTeU6uHhbg54hFDQa.json",
            "ventures/ai-bookkeeper/taxdepr-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d1bd61720fb975fc7be2ed15e55c5366a214979c",
          "at": 1793118348000,
          "title": "ai-bookkeeper: estimate --tax-table for years without a built-in table",
          "pr": 10919,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: estimate --tax-table for years without a built-in table, plus post",
            "ai-bookkeeper: README note and flagship next for --tax-table"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 146,
          "lines_removed": 9,
          "added_files": [
            "docs/posts/2026-10-27-bookkeeping-estimate-for-a-tax-year-the-irs-has-not-published.md",
            "prompts/runs/2026-10-27-session_01EhTJVM9tucmUHufkB2J2Tm.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e34fc5d4f846e30c2fcfc186bd12f293f6468763",
          "at": 1793120389000,
          "title": "ai-bookkeeper: read OCR-damaged SDN BND as a company suffix (SROIE merchant 84.7% to 84.8%)",
          "pr": 10922,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 33,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-when-the-receipt-reader-met-sdn-bnd.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ee4f46021145e0630b1aeb6988a799cd137f4452",
          "at": 1793121559000,
          "title": "ai-bookkeeper: NY annual sales tax returns cover Mar-Feb, due March 20",
          "pr": 10927,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: NY annual sales tax returns cover Mar-Feb, due March 20 (read from tax.ny.gov)",
            "prompts: run record for NY annual sales tax slice"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 79,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-new-york-sales-tax-year-ends-in-february.md",
            "prompts/runs/2026-10-27-session_01AcxTtHwq1MDEPn51Lj2qeN.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8783245caad10e36d44ce2a80b0cbedca1c0fe3c",
          "at": 1793121709000,
          "title": "ai-bookkeeper: property test for the federal estimate and payment plan",
          "pr": 10931,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for the federal estimate and payment plan",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 132,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-random-incomes-through-the-tax-estimate-found-nothing.md",
            "prompts/runs/2026-10-27-session_01E5sJKktegpTX1xkASNc2QQ.json",
            "ventures/ai-bookkeeper/estimatedtax-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "26b7b2c559cf5d73d7b91fe2934adc2a83ae09a2",
          "at": 1793123935000,
          "title": "ai-bookkeeper: Massachusetts monthly sales tax returns due day 30, not 20",
          "pr": 10932,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 22,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-massachusetts-monthly-sales-tax-is-due-day-30-not-20.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "bdd3d97d2723b1fce19a92e3bf8c94c046fe398c",
          "at": 1793124070000,
          "title": "ai-bookkeeper: reseller bookkeeping page, resale-app payout and thrift-stock rules, pinned worked example",
          "pr": 10933,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 8,
          "lines_added": 168,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-why-a-resellers-bank-statement-understates-profit.md",
            "ventures/ai-bookkeeper/fixtures/reseller-checking.csv",
            "ventures/ai-bookkeeper/reseller-bookkeeping.html",
            "ventures/ai-bookkeeper/reseller.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7d7e89d6be698dbeb1ccd121c2cc1d65a657a629",
          "at": 1793124708000,
          "title": "ai-bookkeeper: Virginia sales tax due dates read from tax.virginia.gov",
          "pr": 10937,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 48,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtH4iDx4bvKJUNQ8e7o.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "50df43263322fe0299366f780b51fb22ed1df93b",
          "at": 1793127667000,
          "title": "ai-bookkeeper: retirement command, SEP-IRA and solo 401(k) limits",
          "pr": 10941,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: retirement command, SEP-IRA and solo 401(k) limits for sole proprietors"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 174,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-how-much-can-a-freelancer-put-in-a-sep-ira.md",
            "prompts/runs/2026-10-27-session_01EhTJVPWM2fjuft8AeRya2o.json",
            "ventures/ai-bookkeeper/retirement.mjs",
            "ventures/ai-bookkeeper/retirement.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "696e46dc1995aadc4486ab3ce222abfa6fcb4030",
          "at": 1793127857000,
          "title": "ai-bookkeeper: freelancer bookkeeping page, Wise/Payoneer payouts as sales, pinned quarter with tax estimate",
          "pr": 10943,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 8,
          "lines_added": 165,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-irs-payments-are-not-a-freelancers-expense.md",
            "ventures/ai-bookkeeper/fixtures/freelancer-checking.csv",
            "ventures/ai-bookkeeper/freelancer-bookkeeping.html",
            "ventures/ai-bookkeeper/freelancer.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "02daf0681caa4d3734e322487745277c4e88b7c0",
          "at": 1793128498000,
          "title": "ai-bookkeeper: property test for retirement limits",
          "pr": 10947,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for retirement limits (800 random sole proprietors)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 103,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-pinning-retirement-limits-with-800-random-freelancers.md",
            "prompts/runs/2026-10-27-session_01E5sJKims6LgGug6jeJUKgb.json",
            "ventures/ai-bookkeeper/retirement-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1d188f09e22e3c807cea7e57a640bf5a4485a66c",
          "at": 1793128875000,
          "title": "ai-bookkeeper: property test for planBills",
          "pr": 10948,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ai-bookkeeper: property test for planBills (dates, status, shortfall, cash monotonicity)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 2,
          "lines_added": 121,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKmxBY4serzE398YahC.json",
            "ventures/ai-bookkeeper/billpay-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3822a594c1760756aa7767906266847e354f47f4",
          "at": 1793128950000,
          "title": "ai-bookkeeper: property test for ledger reports",
          "pr": 10949,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for ledger reports, post",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 127,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-pinning-the-ledger-reports-with-random-books.md",
            "prompts/runs/2026-10-27-session_01E5sJKix51WLiwGkmtf5Dcd.json",
            "ventures/ai-bookkeeper/ledger-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "31d043d9b8a65cab97bf167cab9b6e09f2025b81",
          "at": 1793131126000,
          "title": "ai-bookkeeper: property tests for GST worksheets and budget against actual",
          "pr": 10952,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 3,
          "lines_added": 80,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-pinning-gst-and-budget-reports-with-random-books.md",
            "ventures/ai-bookkeeper/gst-budget-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9978f014164a5e0b404cf3b63868a45a3a3dcf97",
          "at": 1793139309000,
          "title": "ai-bookkeeper: pin hostile and spec OFX files (libofx sweep)",
          "pr": 10975,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: hostile and spec OFX files from libofx pinned by a test"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 5,
          "lines_added": 106,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-fuzzer-crash-files-bookkeeper-ofx-reader.md",
            "prompts/runs/2026-10-27-session_01E5sJKm2J4idYuf4rZZAaqM.json",
            "ventures/ai-bookkeeper/ofx-hostile.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6d8013b380287acc090bdef3f0e1ba2e76b33f95",
          "at": 1793141924000,
          "title": "ai-bookkeeper: landed cost (freight, duty) spread over inventory purchases",
          "pr": 10980,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 117,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-28-freight-is-part-of-what-your-stock-cost.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9c8ac3c4a472710d9f82fe668d1eb907ba6170b6",
          "at": 1793142614000,
          "title": "ai-bookkeeper: inventory write-down to net realizable value",
          "pr": 10983,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: inventory write-down to net realizable value + blog post",
            "post: date 2026-10-27"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 7,
          "lines_added": 139,
          "lines_removed": 8,
          "added_files": [
            "docs/posts/2026-10-27-when-stock-is-worth-less-than-you-paid.md",
            "prompts/runs/2026-10-27-session_01AcxTtJm1AZXCPVqYZzK8KT.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "73c36f95e7225fb25f9e33f68721cdecb41545bd",
          "at": 1793142709000,
          "title": "ai-bookkeeper: pin Minnesota's own 2026 sales tax due-date table",
          "pr": 10984,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: pin Minnesota's own 2026 sales tax due-date table in a test, plus post",
            "post: date today"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 6,
          "lines_added": 79,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-checking-a-sales-tax-calendar-against-the-states-own-page.md",
            "prompts/runs/2026-10-27-session_01AcxTtHCBvm8a1JLxndLX3P.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "49edae4e16b0f51db5d6b164b4734182a6069e8c",
          "at": 1793143218000,
          "title": "ai-bookkeeper: property test for inventory with landed cost and write-downs",
          "pr": 10987,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "ai-bookkeeper: property test for inventory with landed cost and write-downs, plus post",
            "fix post date"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-bookkeeper"
          },
          "files": 4,
          "lines_added": 202,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-testing-that-freight-and-write-downs-leak-no-cents.md",
            "prompts/runs/2026-10-27-session_01E5sJKkerU3bVKFZYFi2MYm.json",
            "ventures/ai-bookkeeper/inventory-landed-property.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "wall-framing-takeoff",
      "merges": [
        {
          "sha": "995a63b8b55c476376e290cd115815f4afdf37b8",
          "at": 1793060468000,
          "title": "wall-framing-takeoff: read IFC floor plans",
          "pr": 10768,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: read IFC floor plans (walls, doors, windows)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 8,
          "lines_added": 287,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-reads-ifc.md",
            "prompts/runs/2026-10-27-session_017XULS1j7GRqLzWjtq3YQ3b.json",
            "ventures/wall-framing-takeoff/ifc.mjs",
            "ventures/wall-framing-takeoff/ifc.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "52f89cbe5c6ffb4dd6d2459c9cb60910d4949f9c",
          "at": 1793062795000,
          "title": "wall-framing-takeoff: foundation corner L-bars (cornerBars option and page select)",
          "pr": 10770,
          "agent": "Claude",
          "models": [],
          "track": "process",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 46,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-foundation-corner-bars.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e2b336ce102eded012b609ac3ec3d86b58fcf11d",
          "at": 1793063356000,
          "title": "wall-framing-takeoff: anchor bolt fields on the page",
          "pr": 10772,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: anchor bolt fields on the page"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 64,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-anchor-bolts-on-the-page.md",
            "prompts/runs/2026-10-27-session_012HFufUNeFJcnE143ZcTCor.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "87656251b842525ced6235398d75cb0fd6b05c92",
          "at": 1793063875000,
          "title": "redteam: wall-framing-takeoff ifc reader 2026-10-27",
          "pr": 10775,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: wall-framing-takeoff ifc reader 2026-10-27",
            "redteam: run record for wall-framing-takeoff ifc"
          ],
          "detail": "Read IFC files written on one line (quote-aware statement split) and add tests for the escaped mutants: rotation sign, rectangle centre and half width, unit override.",
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 3,
          "lines_added": 258,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVNYGpuvRToFApvYvPP.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ddee953635ae84351cf9ee3f6bebffe0a64583ea",
          "at": 1793066332000,
          "title": "wall-framing-takeoff: per-panel sheets in the PDF drawings",
          "pr": 10777,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 118,
          "lines_removed": 58,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-panel-sheets-in-the-pdf.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1a188a5ce46db17b5468e4bf39b7da7bc4444f2d",
          "at": 1793066504000,
          "title": "wall-framing-takeoff: one printable sheet per shop panel (--panel-sheets)",
          "pr": 10779,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 55,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-one-sheet-per-panel.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ff53c0edf77024061a84e063700ec104e22ef53e",
          "at": 1793067657000,
          "title": "wall-framing-takeoff: gable panel plates cut along the slope",
          "pr": 10787,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: gable panel plates cut along the slope"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 68,
          "lines_removed": 10,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-gable-panel-plates.md",
            "prompts/runs/2026-10-27-session_01E5sJKjJ9kU8fedUCXn9Rxp.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "16d30d6af5e3bc9625ebaad04a889077e38760b7",
          "at": 1793070090000,
          "title": "wall-framing-takeoff: nail counts by connection (--fasteners)",
          "pr": 10791,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: nail counts by connection (--fasteners), budget nail boxes",
            "date the nail-count post today"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 9,
          "lines_added": 261,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-wall-framing-takeoff-nail-counts.md",
            "prompts/runs/2026-10-27-session_01EhTJVNqEoLYGnaLM73CnLy.json",
            "ventures/wall-framing-takeoff/fasteners.mjs",
            "ventures/wall-framing-takeoff/fasteners.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9545bb6461d0128e5b0e7cb6c060d5ca48e542d1",
          "at": 1793070640000,
          "title": "wall-framing-takeoff: hold-down counts from a typed rule",
          "pr": 10792,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: hold-down counts from a typed rule (wall ends, wide openings) and a budget line"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 181,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-hold-downs.md",
            "prompts/runs/2026-10-27-session_01AcxTtJwau838JQXwJAa4jx.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f1dfc805008f365fafe31d441f60dc04b54c5639",
          "at": 1793070765000,
          "title": "wall-framing-takeoff: nail counts by connection on the page",
          "pr": 10794,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: nail counts by connection on the page"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 114,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-nails-on-the-page.md",
            "prompts/runs/2026-10-27-session_01AcxTtJLo99Hda81GApCeSr.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ec02133b2dbb0832c7bf741d89310da4c180d58c",
          "at": 1793071206000,
          "title": "wall-framing-takeoff: hold-down page controls",
          "pr": 10797,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: hold-down page controls"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 73,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-hold-down-controls.md",
            "prompts/runs/2026-10-27-session_01E5sJKkXcQWud6d9EvBfh46.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4c583c13e46f609024999ab97f32a0a23e7a6baa",
          "at": 1793073481000,
          "title": "wall-framing-takeoff: --budget --csv on the command line",
          "pr": 10800,
          "agent": "Claude",
          "models": [],
          "track": "process",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 4,
          "lines_added": 24,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-budget-csv-from-the-command-line.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "43ddcd13c15028909a44bd5aaa256360fbd86140",
          "at": 1793073572000,
          "title": "wall-framing-takeoff: rafter-tie counts (CLI, page, tests)",
          "pr": 10801,
          "agent": "Claude",
          "models": [],
          "track": "process",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 53,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-rafter-tie-counts.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8dd42dfef3343d878b90a40d624dd1d6d47fbd0a",
          "at": 1793074187000,
          "title": "wall-framing-takeoff: baseboard and casing boards (--trim)",
          "pr": 10804,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: baseboard and casing boards (--trim, budget lines)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 11,
          "lines_added": 230,
          "lines_removed": 11,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-trim-boards.md",
            "prompts/runs/2026-10-27-session_01AcxTtJtj1xFi63W9U3faxA.json",
            "ventures/wall-framing-takeoff/trim.mjs",
            "ventures/wall-framing-takeoff/trim.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5613d7739fca88d7f1a21914b882399f40ab98b6",
          "at": 1793074770000,
          "title": "wall-framing-takeoff: counted order against two allowance rules",
          "pr": 10808,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "wall-framing-takeoff: counted order against two allowance rules (bench, test, README)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 5,
          "lines_added": 230,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-counted-order-vs-allowances.md",
            "prompts/runs/2026-10-27-session_01E5sJKo9GZdFGbptwMyT1NG.json",
            "ventures/wall-framing-takeoff/allowance-bench.mjs",
            "ventures/wall-framing-takeoff/allowance-bench.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3f6cfe4ffb1ece8f3a80db74daf1c57a69ef54a7",
          "at": 1793084447000,
          "title": "wall-framing-takeoff: page card for interior trim boards (baseboard, casing) with budget and saved plan",
          "pr": 10829,
          "agent": "Claude",
          "models": [],
          "track": "explore",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 76,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-28-wall-framing-takeoff-trim-on-the-page.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9baf0b05c92b724de22d907a80b28b7b31098116",
          "at": 1793135684000,
          "title": "wall-framing-takeoff: plate straps at plate joints, priced in the budget",
          "pr": 10965,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: plate straps counted at top and cap plate joints, priced in the budget; post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 7,
          "lines_added": 105,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-counting-the-steel-at-wall-plate-joints.md",
            "prompts/runs/2026-10-27-session_01AcxTtJjoVZkYzbEMCRHJ2L.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cac28d078045010852a2cc43aae6ad1dee8fc8f1",
          "at": 1793135969000,
          "title": "wall-framing-takeoff: plate strap page controls",
          "pr": 10968,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "wall-framing-takeoff: plate strap page controls"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 74,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-plate-straps-on-the-framing-page.md",
            "prompts/runs/2026-10-27-session_01E5sJKiWLwwb4kCYyN4VuPU.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0324f079f5621cc05a0e0f8f25f1942abfb3b329",
          "at": 1793138511000,
          "title": "wall-framing-takeoff: read door and window block symbols from DXF as openings",
          "pr": 10971,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "wall-framing-takeoff: read door and window block symbols from DXF as openings",
            "post description length"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 222,
          "lines_removed": 8,
          "added_files": [
            "docs/posts/2026-10-27-reading-door-and-window-blocks-from-a-cad-plan.md",
            "prompts/runs/2026-10-27-session_01EhTJVM4zjCEo2oSzHLjJDG.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "42859c291fe47c99ce2e43dc89fb9c44c1d36745",
          "at": 1793141969000,
          "title": "wall-framing-takeoff: read mesh walls and project units from buildingSMART's real IFC sample",
          "pr": 10981,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "wall-framing-takeoff: read mesh walls and project units from buildingSMART's real IFC sample",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 9,
          "lines_added": 2570,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-the-first-real-ifc-file-broke-our-wall-reader-twice.md",
            "prompts/runs/2026-10-27-session_01EhTJVLvieBcKAw3jYep5uR.json",
            "ventures/wall-framing-takeoff/fixtures/BSI-LICENSE.md",
            "ventures/wall-framing-takeoff/fixtures/bsi-simple-scene-architecture-ifc2x3.ifc",
            "ventures/wall-framing-takeoff/fixtures/bsi-simple-scene-architecture-ifc43.ifc"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "02ad76e628f201a0e42e56d4d83e9afbb37d17fa",
          "at": 1793145478000,
          "title": "wall-framing-takeoff: bid leveling against the model's quantities (--level-bids)",
          "pr": 10990,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "wall-framing-takeoff"
          },
          "files": 6,
          "lines_added": 181,
          "lines_removed": 2,
          "added_files": [
            "ventures/wall-framing-takeoff/bidlevel.mjs",
            "ventures/wall-framing-takeoff/bidlevel.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "changepoint-detector",
      "merges": [
        {
          "sha": "b3ca048871c29bf1b2b5f2ab07b4306a030f5e93",
          "at": 1793063847000,
          "title": "changepoint-detector: driftWarning for steps clustered under --drift",
          "pr": 10774,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: driftWarning when --drift cuts steps clustered within two seasonal cycles"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 166,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-28-changepoint-detector-drift-warning.md",
            "prompts/runs/2026-10-27-session_01T1Duz9XrjqC2kuCc4xiXLD.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ec3b17dd16668fffed2489b3e79a07e933799f31",
          "at": 1793067145000,
          "title": "changepoint-detector: driftWarning false-alarm rate measured",
          "pr": 10785,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: measure driftWarning false-alarm rate on simulated seasonal series"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 131,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-28-changepoint-detector-drift-warning-false-alarms.md",
            "prompts/runs/2026-10-27-session_01E5sJKivDdq5F8YVsZpARwL.json",
            "ventures/changepoint-detector/drift-warning.test.mjs",
            "ventures/changepoint-detector/eval/drift-warning.mjs",
            "ventures/changepoint-detector/eval/drift-warning.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4f877440adbc7c8169f8de9e49fdcbf124549e90",
          "at": 1793081940000,
          "title": "changepoint-detector: Poisson --bootstrap with --trend, season and nb measured",
          "pr": 10826,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: Poisson --bootstrap combined with --trend, season and nb measured"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 6,
          "lines_added": 120,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-28-changepoint-detector-bootstrap-with-trend.md",
            "prompts/runs/2026-10-27-session_01AcxTtLrTtmjKtjbigkntr4.json",
            "ventures/changepoint-detector/eval/poisson-bootstrap-options.mjs",
            "ventures/changepoint-detector/eval/poisson-bootstrap-options.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "bde24c70b411c3c00a992cf9d6399acd6d77f2bb",
          "at": 1793086225000,
          "title": "changepoint-detector: --multiplicative season for the Gaussian path",
          "pr": 10839,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: --multiplicative season for the Gaussian path, measured",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 227,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-detector-multiplicative-season.md",
            "prompts/runs/2026-10-27-session_01E5sJKk3j7cDzYT1uArj6kX.json",
            "ventures/changepoint-detector/eval/multiplicative-season.mjs",
            "ventures/changepoint-detector/eval/multiplicative-season.out.txt",
            "ventures/changepoint-detector/multiplicative-season.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c263b72e593afe1a9f8082794943b52ab35c0c58",
          "at": 1793089485000,
          "title": "changepoint-detector: multiplicative season on the real airline passengers series",
          "pr": 10849,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: multiplicative season on the real airline passengers series (21/22 false steps raw, 8 on logs)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 254,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-28-changepoint-detector-airline-passengers.md",
            "prompts/runs/2026-10-27-session_01E5sJKo66KK5vm8WvqFsbof.json",
            "ventures/changepoint-detector/airline-passengers.test.mjs",
            "ventures/changepoint-detector/data/airline-passengers.csv"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "cde42e018485b2bd10a99a58793f03513d8b6f6c",
          "at": 1793091509000,
          "title": "changepoint-detector: real autocorrelated series (Lake Huron levels), pinned in a test",
          "pr": 10850,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 6,
          "lines_added": 169,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-lake-huron-changepoints.md",
            "ventures/changepoint-detector/data/lake-huron.csv",
            "ventures/changepoint-detector/lake-huron.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e914bf07745936e37fa1ca4c61b1ab1a09a5e1a5",
          "at": 1793091784000,
          "title": "changepoint-detector: --bootstrap with known holidays behaves like a season (eval, README, post)",
          "pr": 10852,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 5,
          "lines_added": 67,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-28-changepoint-detector-holidays-bootstrap.md",
            "ventures/changepoint-detector/eval/poisson-bootstrap-holidays.mjs",
            "ventures/changepoint-detector/eval/poisson-bootstrap-holidays.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9e68870a4971cfc73646536e21886b86ccf72305",
          "at": 1793092855000,
          "title": "changepoint-detector: diagnose --ar1 on Lake Huron (profile over rho)",
          "pr": 10858,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: diagnose --ar1 on Lake Huron with a profile over rho",
            "post: fix date and description length"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 5,
          "lines_added": 120,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-lake-huron-ar1-is-not-hiding-a-drop.md",
            "prompts/runs/2026-10-27-session_01E5sJKo8fcFoN8ChTz2dkFW.json",
            "ventures/changepoint-detector/lake-huron-profile.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2c544414962482607ffa29d05274698bce464b1d",
          "at": 1793095528000,
          "title": "changepoint-detector: profile over rho measured against --ar1 joint, no gain (ar1ProfileFit as diagnostic)",
          "pr": 10861,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 135,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-28-does-scanning-for-autocorrelation-help-changepoint-detection.md",
            "ventures/changepoint-detector/ar1-profile.test.mjs",
            "ventures/changepoint-detector/eval/ar1-profile.mjs",
            "ventures/changepoint-detector/eval/ar1-profile.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "83bc8b9fd3c51fc41b362d1d3254a998e6ebcee3",
          "at": 1793100022000,
          "title": "changepoint-detector: missed holidays do not break the Poisson bootstrap",
          "pr": 10873,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: missed holidays do not break the Poisson bootstrap (measured)",
            "Fix three posts failing validate/build; name PR in run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 6,
          "lines_added": 111,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-missed-holidays-changepoint-bootstrap.md",
            "prompts/runs/2026-10-27-session_01AcxTtJcUi4TwznYrNXGcCK.json",
            "ventures/changepoint-detector/eval/poisson-bootstrap-missed-holidays.mjs",
            "ventures/changepoint-detector/eval/poisson-bootstrap-missed-holidays.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ab775019b8f4a11198f3f95b19a2197814ae5ddc",
          "at": 1793100455000,
          "title": "changepoint-detector: steep-bend growth range covers 82%, not 95%",
          "pr": 10877,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: steep-bend growth range covers 82%, not 95% (fresh seeds)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 5,
          "lines_added": 178,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-changepoint-range-steep-bends.md",
            "prompts/runs/2026-10-27-session_01E5sJKkp3N2vDykC9gqzTLx.json",
            "ventures/changepoint-detector/eval/growth-change-interval-nb-steep.out.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fabca2cf15d72b9fdb7f5094268cac6c96f3c6d3",
          "at": 1793109089000,
          "title": "changepoint-detector: NB growth-change range states its steep-bend coverage",
          "pr": 10889,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: NB growth-change range carries its measured steep-bend coverage caveat"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 142,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-an-interval-that-admits-where-it-is-optimistic.md",
            "prompts/runs/2026-10-27-session_01AcxTtLhVtVfAwZdGQ57tpF.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "73ad2c213138828890b1f32e8ff83e80a739579e",
          "at": 1793131322000,
          "title": "changepoint-detector: real US inflation series (three documented regimes, one artefact)",
          "pr": 10953,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: real US inflation series, three documented regimes and the 2008 artefact",
            "changepoint-detector: shorten post description, record PR"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 9,
          "lines_added": 372,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-a-changepoint-detector-on-fifty-years-of-us-inflation.md",
            "prompts/runs/2026-10-27-session_01EhTJVLXg42G2quZ2Qvfduu.json",
            "ventures/changepoint-detector/data/us-inflation.csv",
            "ventures/changepoint-detector/eval/us-inflation.mjs",
            "ventures/changepoint-detector/eval/us-inflation.out.txt",
            "ventures/changepoint-detector/us-inflation.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "bf3c2af02a368a7e581b2251f50160dd45515fd5",
          "at": 1793139019000,
          "title": "changepoint-detector: real null series (Nottingham temperatures)",
          "pr": 10973,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: real null series (Nottingham temperatures): default mean cuts 4 spike steps, meanvar 0",
            "ventures: run record",
            "changepoint-detector: shorten post description; run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 8,
          "lines_added": 350,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-a-changepoint-detector-reads-two-cold-months-as-four-steps.md",
            "prompts/runs/2026-10-27-session_01AcxTtHEbJN2SXo1wgWbaJv.json",
            "ventures/changepoint-detector/data/nottem.csv",
            "ventures/changepoint-detector/nottem.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d46f191c5fe356a457effbb22f3ad82e1c6f0d32",
          "at": 1793139810000,
          "title": "changepoint-detector: real DAX volatility series",
          "pr": 10978,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: real DAX volatility series (four variants, one shared cut)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 1985,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-dax-volatility-changepoints.md",
            "prompts/runs/2026-10-27-session_01E5sJKje1bCtDKXiCM2uk6C.json",
            "ventures/changepoint-detector/data/dax-returns.csv",
            "ventures/changepoint-detector/dax-returns.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3c833883e3f96d7b99d062b30a6f9d6d0ad5ea20",
          "at": 1793142825000,
          "title": "changepoint-detector: real overdispersed counts (great discoveries)",
          "pr": 10985,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "changepoint-detector: real overdispersed counts (great discoveries) test and write-up",
            "Date the post today"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "changepoint-detector"
          },
          "files": 7,
          "lines_added": 285,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-a-five-year-burst-is-not-two-level-changes.md",
            "prompts/runs/2026-10-27-session_01E5sJKkd8HuKuULzmgshipd.json",
            "ventures/changepoint-detector/data/great-discoveries.csv",
            "ventures/changepoint-detector/great-discoveries.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "hearth-and-horizon",
      "merges": [
        {
          "sha": "0b2e886c3a9bc92567a497f1f325a15786568f71",
          "at": 1793059814000,
          "title": "hearth-and-horizon: The Grey Hour (carp pond oxygen story, text only)",
          "pr": 10763,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Grey Hour (carp pond oxygen story, text only; audio folders over 400 MB)",
            "creative run record",
            "shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 391,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-the-aerator-works-hardest-when-the-pond-is-emptiest.md",
            "prompts/runs/2026-10-27-session_01P9vww1quhfi6bnPdR7FTZe.json",
            "ventures/hearth-and-horizon/stories/the-grey-hour.md",
            "ventures/hearth-and-horizon/the-grey-hour.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b8b9f78e0ffff146185d577da4c27f6d4dbc38c1",
          "at": 1793067674000,
          "title": "hearth-and-horizon: The Salt Line (cistern leak story, text only)",
          "pr": 10786,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Salt Line (cistern leak story, text only)",
            "creative run record",
            "shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 344,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-leak-gives-away-its-height.md",
            "prompts/runs/2026-10-27-session_01E5sJKkD9tXmkGUaxtoWjTX.json",
            "ventures/hearth-and-horizon/stories/the-salt-line.md",
            "ventures/hearth-and-horizon/the-salt-line.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "855af08bdd47eb43d7f03224406bb949e8b1793b",
          "at": 1793067718000,
          "title": "hearth-and-horizon: The Coal Charity (fuel allotment charity, 2046; text only)",
          "pr": 10788,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Coal Charity (fuel allotment charity, 2046; text only)",
            "creative run record"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 10,
          "lines_added": 476,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-what-is-a-ton-of-coal-worth-when-nobody-sells-coal.md",
            "prompts/runs/2026-10-27-session_01E5sJKmyQi3LmjKko7KstcX.json",
            "ventures/hearth-and-horizon/stories/the-coal-charity.md",
            "ventures/hearth-and-horizon/the-coal-charity.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ce83093a4a1ea166d3164ae077a702ec6abac859",
          "at": 1793070673000,
          "title": "hearth-and-horizon: The Second Slope (pumping-test boundary story, text only)",
          "pr": 10793,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Second Slope (pumping-test boundary story, text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 385,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-the-second-slope.md",
            "prompts/runs/2026-10-27-session_01AcxTtJwrGtmvYqiLKLjuYM.json",
            "ventures/hearth-and-horizon/stories/the-second-slope.md",
            "ventures/hearth-and-horizon/the-second-slope.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "25be3971f78f315cb572f0975d5a68424bc8bdfa",
          "at": 1793084462000,
          "title": "hearth-and-horizon: The Grandmother's Sorghum (seed-store germination story, text only)",
          "pr": 10830,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Grandmother's Sorghum (seed-store germination story, text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 367,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-the-grandmothers-sorghum.md",
            "prompts/runs/2026-10-27-session_01EhTJVMkZEF4wXXffAnH71c.json",
            "ventures/hearth-and-horizon/stories/the-grandmothers-sorghum.md",
            "ventures/hearth-and-horizon/the-grandmothers-sorghum.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "66f9d33ac7ed4ed15df853b70b9b399131586164",
          "at": 1793092955000,
          "title": "hearth-and-horizon: The Rope at the Side Gate (crowd density and an uncounted gate, text only)",
          "pr": 10859,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Rope at the Side Gate (crowd density and an uncounted gate, text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 592,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-the-rope-at-the-side-gate.md",
            "prompts/runs/2026-10-27-session_01E5sJKjeRPg11chAFi1ggAr.json",
            "ventures/hearth-and-horizon/stories/the-rope-at-the-side-gate.md",
            "ventures/hearth-and-horizon/the-rope-at-the-side-gate.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c51e98a5853adf30cd817501d1afb5f954ca834e",
          "at": 1793109097000,
          "title": "hearth-and-horizon: The Day He Is Married (will condition and tribunal clock, text only)",
          "pr": 10890,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Day He Is Married (a will's condition and a tribunal clock, text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 10,
          "lines_added": 412,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtGX7ShiK2EtViHB1rw.json",
            "ventures/hearth-and-horizon/stories/the-day-he-is-married.md",
            "ventures/hearth-and-horizon/the-day-he-is-married.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "54a7efde5697edf75f258edc29c23072c631ecc7",
          "at": 1793109743000,
          "title": "hearth-and-horizon: The Fifth Asking (2046 chaplaincy, text only) + blog post",
          "pr": 10892,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Fifth Asking (chaplaincy notes and a dying man's wish, text only) + blog post",
            "fix post description length"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 409,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-a-wish-you-asked-about-every-year.md",
            "prompts/runs/2026-10-27-session_01EhTJVNVbrBzV9dHPb43Wz2.json",
            "ventures/hearth-and-horizon/stories/the-fifth-asking.md",
            "ventures/hearth-and-horizon/the-fifth-asking.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b4122b620ddafa13763904d31285a5daf03dcf32",
          "at": 1793115555000,
          "title": "hearth-and-horizon: Three Pouches (chlorine demand and turbidity, text only)",
          "pr": 10908,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: Three Pouches (chlorine demand and turbidity, Uganda 2047, text only) + blog post",
            "prompts: run record for three-pouches"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 390,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-one-dose-cannot-serve-two-seasons.md",
            "prompts/runs/2026-10-27-session_01AcxTtLX5pH1UdzqbYfCHvq.json",
            "ventures/hearth-and-horizon/stories/three-pouches.md",
            "ventures/hearth-and-horizon/three-pouches.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "468597caf84e68f349076af69abc2cd0b993224d",
          "at": 1793134754000,
          "title": "hearth-and-horizon: The Coat on the Bell (Angelus decibels, text only) + blog post",
          "pr": 10961,
          "agent": "Claude",
          "models": [],
          "track": "creative",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 10,
          "lines_added": 254,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-a-bell-with-a-coat-on.md",
            "ventures/hearth-and-horizon/stories/the-coat-on-the-bell.md",
            "ventures/hearth-and-horizon/the-coat-on-the-bell.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "ee917d6572027a616c8796b5da3eb303ad389a42",
          "at": 1793134804000,
          "title": "hearth-and-horizon: Sixty-One Point Three (pasteuriser probe, text only) + blog post",
          "pr": 10962,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: Sixty-One Point Three (pasteuriser probe found with boiling water at altitude, text only) + blog post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 358,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-pan-of-boiling-water-at-1950-metres.md",
            "prompts/runs/2026-10-27-session_01EhTJVLK3nrEqBfv4aDBHHu.json",
            "ventures/hearth-and-horizon/sixty-one-point-three.html",
            "ventures/hearth-and-horizon/stories/sixty-one-point-three.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "78780d98a10ef400f402ec80f8e61f8b335dc2bd",
          "at": 1793141918000,
          "title": "hearth-and-horizon: Andrew and the Nets (Little Lamps, text only) + blog post",
          "pr": 10979,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: Andrew and the Nets (Little Lamps, Gospel-sourced, text only) + blog post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 11,
          "lines_added": 310,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-andrew-and-the-nets.md",
            "prompts/runs/2026-10-27-session_01EhTJVLsVRfSB6p6RWh8NPU.json",
            "ventures/hearth-and-horizon/andrew-and-the-nets.html",
            "ventures/hearth-and-horizon/stories/andrew-and-the-nets.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "11a488af2e43d66d51c2e5cf685202f462a21a5f",
          "at": 1793143283000,
          "title": "hearth-and-horizon: The Float Test (ergot sampling, text only)",
          "pr": 10989,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "hearth-and-horizon: The Float Test (ergot sampling, text only) + blog post",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "hearth-and-horizon"
          },
          "files": 10,
          "lines_added": 417,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-the-float-test.md",
            "prompts/runs/2026-10-27-session_01E5sJKmhAuXeJfsxY2d5zwG.json",
            "ventures/hearth-and-horizon/stories/the-float-test.md",
            "ventures/hearth-and-horizon/the-float-test.html"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "einvoice-preflight",
      "merges": [
        {
          "sha": "06d2bc18a9514111eca6a6147cf3bbec7cdc66e2",
          "at": 1793069903000,
          "title": "einvoice-preflight: FA(3) rules measured on the Ministry's own KSeF templates (14 files, agrees with xmllint)",
          "pr": 10790,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 4,
          "lines_added": 67,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-polish-ksef-templates.md",
            "ventures/einvoice-preflight/eval/ksef-official-templates.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "97a8a562e7856ac5d1828b81144c20a44d0ca52e",
          "at": 1793075155000,
          "title": "einvoice-preflight: Colombia and Chile pages with NIT and RUT check-digit tests",
          "pr": 10803,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Colombia and Chile pages with NIT and RUT check-digit tests",
            "flagships: trim two next: entries over the 2000-character cap (history is in the READMEs)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 57,
          "lines_added": 563,
          "lines_removed": 47,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-colombia-chile.md",
            "prompts/runs/2026-10-27-session_01EhTJVM5bwh8ssgK7CySDMr.json",
            "ventures/einvoice-preflight/chile-sii-e-invoice-mandate.html",
            "ventures/einvoice-preflight/chile-sii-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/chile.mjs",
            "ventures/einvoice-preflight/chile.test.mjs",
            "ventures/einvoice-preflight/colombia-dian-e-invoice-mandate.html",
            "ventures/einvoice-preflight/colombia-dian-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/colombia.mjs",
            "ventures/einvoice-preflight/colombia.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "00a4553d398db4bdf9cb40c56261efe5a9857612",
          "at": 1793077200000,
          "title": "einvoice-preflight: Peru and Argentina pages with RUC and CUIT check-digit tests",
          "pr": 10811,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 59,
          "lines_added": 533,
          "lines_removed": 46,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-peru-argentina.md",
            "prompts/runs/2026-10-27-session_01EhTJVLbgey8RhToyfyWUyL.json",
            "ventures/einvoice-preflight/argentina-arca-e-invoice-mandate.html",
            "ventures/einvoice-preflight/argentina-arca-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/argentina.mjs",
            "ventures/einvoice-preflight/argentina.test.mjs",
            "ventures/einvoice-preflight/peru-sunat-e-invoice-mandate.html",
            "ventures/einvoice-preflight/peru-sunat-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/peru.mjs",
            "ventures/einvoice-preflight/peru.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3b2bd08304e8a356f85c189ceeb3f587cd3f792a",
          "at": 1793077775000,
          "title": "einvoice-preflight: measure check-digit blind spots across seven ID rules",
          "pr": 10813,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "einvoice-preflight: measure check-digit blind spots across seven ID rules"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 6,
          "lines_added": 159,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-check-digit-blind-spots.md",
            "docs/reports/einvoice-id-blindspots.md",
            "prompts/runs/2026-10-27-session_01AcxTtGXN5QxEqCawz5i7Ne.json",
            "ventures/einvoice-preflight/eval/id-blindspots.mjs",
            "ventures/einvoice-preflight/id-blindspots.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5314ea9c8bcffd89e8e5ffa80fc52d0bcda27980",
          "at": 1793077844000,
          "title": "einvoice-preflight: Uruguay page with RUT check-digit test",
          "pr": 10815,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Uruguay page with RUT check-digit test"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 57,
          "lines_added": 324,
          "lines_removed": 48,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-uruguay.md",
            "prompts/runs/2026-10-27-session_01AcxTtGq1y3u3ZSyBbUpMVj.json",
            "ventures/einvoice-preflight/uruguay-dgi-e-invoice-mandate.html",
            "ventures/einvoice-preflight/uruguay-dgi-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/uruguay.mjs",
            "ventures/einvoice-preflight/uruguay.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3fc63e588f3bdb463707ec872f232c0eecdcccc6",
          "at": 1793078579000,
          "title": "einvoice-preflight: Paraguay SIFEN page with RUC check-digit test",
          "pr": 10819,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Paraguay SIFEN page with RUC check-digit test"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 58,
          "lines_added": 403,
          "lines_removed": 49,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-paraguay.md",
            "prompts/runs/2026-10-27-session_01E5sJKnrrbjYo7yE92cuzjc.json",
            "ventures/einvoice-preflight/paraguay-dnit-e-invoice-mandate.html",
            "ventures/einvoice-preflight/paraguay-dnit-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/paraguay.mjs",
            "ventures/einvoice-preflight/paraguay.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d57c0e8d6e550b2b7137df5ccc37bc07c2d036d8",
          "at": 1793080786000,
          "title": "einvoice-preflight: Ecuador SRI page with RUC and clave de acceso check-digit tests",
          "pr": 10821,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Ecuador SRI page with RUC and clave de acceso check-digit tests"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 58,
          "lines_added": 397,
          "lines_removed": 49,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-ecuador.md",
            "prompts/runs/2026-10-27-session_01EhTJVL9BD8fgUha15U8f1d.json",
            "ventures/einvoice-preflight/ecuador-sri-e-invoice-mandate.html",
            "ventures/einvoice-preflight/ecuador-sri-e-invoice-mandate.test.mjs",
            "ventures/einvoice-preflight/ecuador.mjs",
            "ventures/einvoice-preflight/ecuador.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "27a4143c7cd3469c6d7527481947c82a31b59a73",
          "at": 1793081065000,
          "title": "einvoice-preflight: measure Ecuador RUC establishment-digit blind spot",
          "pr": 10823,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Ecuador SRI page with RUC and access-key check-digit tests",
            "einvoice-preflight: measure Ecuador RUC establishment-digit blind spot"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 3,
          "lines_added": 62,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVMthdALaRwGYbYwBNf.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2334f466e859bdf891443f8c4e7335e33b001c4f",
          "at": 1793117041000,
          "title": "einvoice-preflight: Spain B2B e-invoicing dates (Order HAC/1028/2026)",
          "pr": 10913,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "einvoice-preflight: Spain B2B e-invoicing dates (Order HAC/1028/2026) on the Spain page",
            "flagships: trim einvoice-preflight next under the cap"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 8,
          "lines_added": 104,
          "lines_removed": 14,
          "added_files": [
            "docs/posts/2026-10-27-einvoice-preflight-spain-b2b.md",
            "prompts/runs/2026-10-27-session_01EhTJVNqnnftRVxDF71Xn25.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3ee9c4068d0842145fb02e5c1d1946e54602a5d1",
          "at": 1793131099000,
          "title": "einvoice-preflight: Spain page cites the BOE legal chain (Order HAC/1028/2026, RD 238/2026); post",
          "pr": 10951,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "einvoice-preflight"
          },
          "files": 2,
          "lines_added": 24,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-spains-b2b-e-invoice-clock-starts-from-an-order-not-a-calendar-date.md"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "saints-by-candlelight",
      "merges": [
        {
          "sha": "715d5a1d4ddfad885c047f6f9c2ecfd1840aa3f8",
          "at": 1793066998000,
          "title": "saints-by-candlelight: episode 38, Elisha and the Widow's Jars of Oil (text only)",
          "pr": 10783,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 38, Elisha and the Widow's Jars of Oil (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 603,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-saints-by-candlelight-elisha-widows-jars-of-oil.md",
            "prompts/runs/2026-10-27-session_01AcxTtJH4uW8rgmZogQDo2a.json",
            "ventures/saints-by-candlelight/elisha-and-the-widows-jars-of-oil.html",
            "ventures/saints-by-candlelight/episodes/038-elisha-and-the-widows-jars-of-oil.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8f9f17b416f3aef8d806d2846344e97cc472e3d5",
          "at": 1793074151000,
          "title": "saints-by-candlelight: episode 39, Isaac and the Wells That Were Dug Again (text only)",
          "pr": 10802,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 39, Isaac and the Wells That Were Dug Again (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 742,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-saints-by-candlelight-isaac-wells.md",
            "prompts/runs/2026-10-27-session_01AcxTtKrsfWarTPLx8cLj8M.json",
            "ventures/saints-by-candlelight/episodes/039-isaac-and-the-wells-that-were-dug-again.md",
            "ventures/saints-by-candlelight/isaac-and-the-wells-that-were-dug-again.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "015e44c85ba8f2987efb816bd962b85882fa5080",
          "at": 1793074251000,
          "title": "saints-by-candlelight: episode 39, David and the Giant in the Valley of Elah (text only)",
          "pr": 10806,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 39, David and the Giant in the Valley of Elah (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 686,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-saints-by-candlelight-david-and-the-giant.md",
            "prompts/runs/2026-10-27-session_01AcxTbQex6EWjfBb9Beh.json",
            "ventures/saints-by-candlelight/david-and-the-giant-in-the-valley-of-elah.html",
            "ventures/saints-by-candlelight/episodes/040-david-and-the-giant-in-the-valley-of-elah.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b48e67df9fc219de091d6c87d86624e5f3dcf22f",
          "at": 1793084967000,
          "title": "saints-by-candlelight: episode 41, Francis and the Christmas Night at Greccio (text only)",
          "pr": 10832,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 41, Francis and the Christmas Night at Greccio (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 446,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-saints-by-candlelight-greccio-crib.md",
            "prompts/runs/2026-10-27-session_01AcxTtLSXEaaKLbJc2YRTqp.json",
            "ventures/saints-by-candlelight/episodes/041-francis-and-the-christmas-night-at-greccio.md",
            "ventures/saints-by-candlelight/francis-and-the-christmas-night-at-greccio.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c516c0a3b259ec6e9e338a3522dd48cc14243acf",
          "at": 1793095856000,
          "title": "saints-by-candlelight: episode 42, Gideon and the Three Hundred with Jars (text only)",
          "pr": 10863,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 42, Gideon and the Three Hundred with Jars (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 668,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtJ7rWTc8iLGvqPccVS.json",
            "ventures/saints-by-candlelight/episodes/042-gideon-and-the-three-hundred-with-jars.md",
            "ventures/saints-by-candlelight/gideon-and-the-three-hundred-with-jars.html"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "81298ea32db118d6f0d7bc91dde71ed03c9d2b46",
          "at": 1793117798000,
          "title": "saints-by-candlelight: episode 43, Benedict and the Sieve That Was Mended (text only)",
          "pr": 10915,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 43, Benedict and the Sieve That Was Mended (text only)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 6,
          "lines_added": 651,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtGP9TVM9NmQTSF7LEx.json",
            "ventures/saints-by-candlelight/benedict-and-the-sieve-that-was-mended.html",
            "ventures/saints-by-candlelight/episodes/043-benedict-and-the-sieve-that-was-mended.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5c482a71306f667bdefda759d88f4383d1354711",
          "at": 1793117878000,
          "title": "saints-by-candlelight: episode 43, Hannah and the Prayer at Shiloh (text only)",
          "pr": 10916,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "creative",
          "bullets": [
            "saints-by-candlelight: episode 43, Hannah and the Prayer at Shiloh (text only) + blog post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "saints-by-candlelight"
          },
          "files": 7,
          "lines_added": 585,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-a-prayer-nobody-could-hear-hannah-at-shiloh.md",
            "prompts/runs/2026-10-27-session_01E5sJKnET5ypoUNPNeV36JW.json",
            "ventures/saints-by-candlelight/episodes/044-hannah-and-the-prayer-at-shiloh.md",
            "ventures/saints-by-candlelight/hannah-and-the-prayer-at-shiloh.html"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "league-schedule-generator",
      "merges": [
        {
          "sha": "cf48ecbaba6785325b1cf3e7aa7763fc1aed21e0",
          "at": 1793110705000,
          "title": "league-schedule-generator: random-league build check (3,200 leagues valid) + blog post",
          "pr": 10893,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "league-schedule-generator"
          },
          "files": 6,
          "lines_added": 120,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-3200-random-leagues-all-valid.md",
            "prompts/runs/2026-10-27-session_01EhTJVKcV1QoyQ6MSurczQp.json",
            "ventures/league-schedule-generator/eval/fuzz-build.mjs",
            "ventures/league-schedule-generator/fuzz-build.test.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "2b3ddbb07c835af31a2461b5cbdb602afb259c8c",
          "at": 1793120620000,
          "title": "league-schedule-generator: fuzz rainouts, late teams and officials; validator accepts a named make-up date on a skip day",
          "pr": 10923,
          "agent": "Claude",
          "models": [],
          "track": "ventures",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "league-schedule-generator"
          },
          "files": 9,
          "lines_added": 195,
          "lines_removed": 33,
          "added_files": [
            "docs/posts/2026-10-27-fuzzing-the-league-scheduler-edit-passes.md",
            "ventures/league-schedule-generator/eval/fuzz-passes.mjs",
            "ventures/league-schedule-generator/eval/random-league.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "783c3562d6b1b808e289ed419a658b5c78b51a87",
          "at": 1793124728000,
          "title": "league-schedule-generator: fuzz multi-division builds and rainout make-ups",
          "pr": 10936,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "league-schedule-generator: fuzz multi-division builds and rainout make-ups (996 leagues, 0 invalid)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "league-schedule-generator"
          },
          "files": 6,
          "lines_added": 211,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-fuzzing-a-multi-division-league-scheduler.md",
            "prompts/runs/2026-10-27-session_01AcxTtKxVWAX9HZgQwRz1Bk.json",
            "ventures/league-schedule-generator/eval/fuzz-divisions.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9c2c9d960d8a4a2c6a5d19d376616e91f999315c",
          "at": 1793127752000,
          "title": "league-schedule-generator: fuzz withdrawals, shared grounds, linked teams, travel and carry-over",
          "pr": 10942,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "league-schedule-generator: fuzz withdrawals, shared grounds, linked teams, travel tables and 3-season carry-over"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "league-schedule-generator"
          },
          "files": 6,
          "lines_added": 180,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-fuzzing-league-schedules-withdrawals-grounds-travel.md",
            "prompts/runs/2026-10-27-session_01EhTJVPmtQgg6uuth1qf3K2.json",
            "ventures/league-schedule-generator/eval/fuzz-more.mjs"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "86d40958a4a3ca0286688fe4f74ad5cd562bdaf7",
          "at": 1793128427000,
          "title": "league-schedule-generator: fuzz suggestFairnessWeight",
          "pr": 10946,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "league-schedule-generator: fuzz suggestFairnessWeight (eval/fuzz-weight.mjs)",
            "league-schedule-generator: record fairness-weight fuzz, post, next milestone",
            "prompts: run record for fairness-weight fuzz"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "league-schedule-generator"
          },
          "files": 5,
          "lines_added": 111,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-fuzzing-the-fairness-weight-picker.md",
            "prompts/runs/2026-10-27-session_01AcxTtHb7LHFJ7GKWEswfHc.json",
            "ventures/league-schedule-generator/eval/fuzz-weight.mjs"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "quick-pick-survey",
      "merges": [
        {
          "sha": "a74616f2f4809caf439619ba4f82a787c84bea51",
          "at": 1793059924000,
          "title": "quick-pick-survey: pair selector across lapse rates 0.05 to 0.5",
          "pr": 10765,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "quick-pick-survey: pair selector across lapse rates 0.05 to 0.5",
            "post: add front matter"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 5,
          "lines_added": 123,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-quick-pick-survey-lapse-sweep.md",
            "prompts/runs/2026-10-27-session_01SrEH59p6Lx9FudeLLZQp8u.json",
            "ventures/quick-pick-survey/src/lib/lapseSweep.simulation.test.ts"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8652458c7a8e0395f7f188d63fd3646f4a44db50",
          "at": 1793088090000,
          "title": "quick-pick-survey: pair selectors against a first-option-biased respondent",
          "pr": 10840,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "process",
          "bullets": [
            "quick-pick-survey: pair selectors against a first-option-biased respondent",
            "flagships: quick-pick-survey first-option bias result; blog post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 5,
          "lines_added": 82,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-28-quick-pick-survey-first-option-bias.md",
            "ventures/quick-pick-survey/src/lib/biasedRespondent.simulation.test.ts"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9fec99c9bbfb99396b700998aeed3167ba989ff7",
          "at": 1793088697000,
          "title": "quick-pick-survey: hybrid selector falls back to shipped for a first-option-biased respondent",
          "pr": 10844,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "quick-pick-survey: hybrid selector falls back to shipped for a first-option-biased respondent",
            "post: shorten description",
            "post: shorten description again"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 9,
          "lines_added": 223,
          "lines_removed": 6,
          "added_files": [
            "docs/posts/2026-10-27-quick-pick-survey-first-option-fallback.md",
            "prompts/runs/2026-10-27-session_01AcxTtGu15PnRfM9bjP7UhK.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "491c6d65bbe97b55e909f190338bdae89ab50b23",
          "at": 1793098965000,
          "title": "quick-pick-survey: hybrid selector falls back for second-option bias too",
          "pr": 10870,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "quick-pick-survey: hybrid falls back to shipped selector for second-option bias too (0.574 -> 0.666 at bias 0.5)",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "quick-pick-survey"
          },
          "files": 8,
          "lines_added": 108,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-quick-pick-survey-second-option-bias.md",
            "prompts/runs/2026-10-27-session_01EhTJVLVfm5JvakW3umnuJW.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "shift-roster-builder",
      "merges": [
        {
          "sha": "8a62220a18c8bd6c50c028f720ce9df217088b2d",
          "at": 1793088572000,
          "title": "shift-roster-builder: openShiftWeight prices an open shift in hours for coverRepair (15 h/5 shifts at 0, 19 h/3 at 100)",
          "pr": 10842,
          "agent": "Claude",
          "models": [],
          "track": null,
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 5,
          "lines_added": 27,
          "lines_removed": 7,
          "added_files": [
            "docs/posts/2026-10-28-shift-roster-builder-open-shift-weight.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7475407cbf0bd46224a39ea73e98db798ff811ee",
          "at": 1793096146000,
          "title": "shift-roster-builder: open-shift preference on page and CLI",
          "pr": 10866,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "shift-roster-builder: open-shift preference on the page and --open-shift-hours on the CLI"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 10,
          "lines_added": 99,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-shift-roster-builder-open-hours-or-open-shifts.md",
            "docs/reports/shift-roster-open-shift-control.md",
            "prompts/runs/2026-10-27-session_01EhTJVPCBdSGkY8cwEbS3wZ.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8ba5c25a424daebf364b8b6bd077abcb6ef1cc15",
          "at": 1793113160000,
          "title": "shift-roster-builder: Tell the team text and email links on the admin page + blog post",
          "pr": 10903,
          "agent": "Claude",
          "models": [],
          "track": "product",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 4,
          "lines_added": 38,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-telling-the-team-without-a-text-message-bill.md"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5d5e26fde106c3ff9c5365cc5b18e8bd69c68a55",
          "at": 1793120597000,
          "title": "shift-roster-builder: --changes prices late schedule changes in the CLI",
          "pr": 10924,
          "agent": "Claude",
          "models": [],
          "track": "explore",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "shift-roster-builder"
          },
          "files": 4,
          "lines_added": 76,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-shift-roster-builder-changes-from-the-command-line.md"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "actions-continue-on-error-check",
      "merges": [
        {
          "sha": "cc0a26f8a2d4bad84b05acbe852d53f611399181",
          "at": 1793082070000,
          "title": "actions-continue-on-error-check: find jobs and steps that can fail and still go green",
          "pr": 10827,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "actions-continue-on-error-check: scan workflows for jobs and steps that can fail and still go green"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "actions-continue-on-error-check"
          },
          "files": 7,
          "lines_added": 518,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-continue-on-error-check.md",
            "prompts/runs/2026-10-27-session_01E5sJKnRRPn5gKc7iqodN8q.json",
            "ventures/actions-continue-on-error-check/LICENSE",
            "ventures/actions-continue-on-error-check/README.md",
            "ventures/actions-continue-on-error-check/VENTURE.yaml",
            "ventures/actions-continue-on-error-check/check.py",
            "ventures/actions-continue-on-error-check/test_check.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "5cf5c5c68fc924c05c02d2b36838378f962c7ad7",
          "at": 1793138684000,
          "title": "redteam: platform/distribution/precommit.mjs 2026-10-27",
          "pr": 10972,
          "agent": "Claude",
          "models": [],
          "track": "redteam",
          "bullets": [
            "precommit: make actions-continue-on-error-check/check.py executable, regenerate hooks",
            "precommit: boundary and CLI tests for escaped mutants",
            "redteam: run record 2026-10-27"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "actions-continue-on-error-check"
          },
          "files": 4,
          "lines_added": 197,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVPfDpdorwj27rFckVv.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "sales-agent",
      "merges": [
        {
          "sha": "f31445034e44c8aa05a43a198f16ec5b9a84262b",
          "at": 1793066362000,
          "title": "sales-agent: skip salutations when reading the job title",
          "pr": 10778,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "sales-agent: skip salutations when reading the job title (Mautic export)"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "sales-agent"
          },
          "files": 6,
          "lines_added": 66,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-sales-agent-salutation-is-not-a-job-title.md",
            "prompts/runs/2026-10-27-session_01EhTJVKX8Hxro41gNxHFQTh.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c0bc8177402e230ba568c7b7c25c9ab2148484b3",
          "at": 1793085742000,
          "title": "sales-agent: read HubSpot Associated Company and Salesforce mailing country / email opt-out headers",
          "pr": 10837,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "ventures",
          "bullets": [
            "sales-agent: read HubSpot Associated Company and Salesforce mailing country / email opt-out headers"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "sales-agent"
          },
          "files": 5,
          "lines_added": 65,
          "lines_removed": 5,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKithMafEeRJdWcQU6n.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "ai-crawler-access-check",
      "merges": [
        {
          "sha": "865b37ce1d54108fc3a8adc7a1fc7efce3538e05",
          "at": 1793116298000,
          "title": "ai-crawler-access-check: fix CLI table alignment, add llms.txt",
          "pr": 10912,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ai-crawler-access-check: size CLI table columns from data, add llms.txt and post"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "ai-crawler-access-check"
          },
          "files": 5,
          "lines_added": 89,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-ai-crawler-check-table-and-llms-txt.md",
            "prompts/runs/2026-10-27-session_01E5sJKo95AkoEpvodHU2afZ.json",
            "ventures/ai-crawler-access-check/llms.txt"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "patent-maintenance-fee-planner",
      "merges": [
        {
          "sha": "87139d95bcd9a474677375cfdd869a20ac9ee90b",
          "at": 1793098999000,
          "title": "redteam: patent-maintenance-fee-planner usage opt-out 2026-10-27",
          "pr": 10871,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: patent-maintenance-fee-planner usage opt-out default guard 2026-10-27"
          ],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "patent-maintenance-fee-planner"
          },
          "files": 3,
          "lines_added": 186,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-red-team-usage-opt-out-default.md",
            "prompts/runs/2026-10-27-session_01EhTJVN9sgjTomzbpuiqMpo.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "za-freelancer-provisional-tax-set-aside-calculator",
      "merges": [
        {
          "sha": "d99fdf2803c0cec7a34cf558a2b84c0723733b0d",
          "at": 1793135789000,
          "title": "redteam: za-freelancer provisional tax calc 2026-10-27",
          "pr": 10966,
          "agent": "Claude",
          "models": [],
          "track": "redteam",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "product",
            "name": "za-freelancer-provisional-tax-set-aside-calculator"
          },
          "files": 3,
          "lines_added": 344,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtLsY8GQkDm1eJpSWzd.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "research": [
    {
      "name": "aerolog-scaling",
      "merges": [
        {
          "sha": "75c466ffcb7ceb1ba0de66bfc40f72ff9e7b68ea",
          "at": 1793074949000,
          "title": "research/aerolog-scaling: open programme, Froude-scaling calculator and first-order result",
          "pr": 10809,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: open programme, Froude-scaling calculator and first-order result"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 14,
          "lines_added": 525,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-scaled-drone-models-need-more-power-than-froude-says.md",
            "prompts/runs/2026-10-27-session_01E5sJKnC1F5mambiQVSyYYz.json",
            "research/aerolog-scaling/LOG.md",
            "research/aerolog-scaling/PROPOSAL.md",
            "research/aerolog-scaling/README.md",
            "research/aerolog-scaling/experiments/results.txt",
            "research/aerolog-scaling/experiments/run.py",
            "research/aerolog-scaling/project.json",
            "research/aerolog-scaling/pyproject.toml",
            "research/aerolog-scaling/src/aerolog_scaling/__init__.py",
            "research/aerolog-scaling/src/aerolog_scaling/scaling.py",
            "research/aerolog-scaling/tests/test_scaling.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "671ca3b935c8378eef7191cdb070540b9222b773",
          "at": 1793081568000,
          "title": "research/aerolog-scaling: airfoil-polar check of H2 and H3",
          "pr": 10825,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: airfoil-polar check of H2 and H3 (milestone 4a)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 6,
          "lines_added": 163,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-froude-model-airfoil-polars.md",
            "prompts/runs/2026-10-27-session_01AcxTtM1dYvxJxkhVBVx8pb.json",
            "research/aerolog-scaling/experiments/airfoil_polars/results.txt",
            "research/aerolog-scaling/experiments/airfoil_polars/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "080b01c62edfa00fddae9c030abbb29e483e43f2",
          "at": 1793085896000,
          "title": "research/aerolog-scaling: milestone 3a longitudinal modes (H1)",
          "pr": 10838,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 3a longitudinal modes with NeuralFoil polars (H1 refuted for same-alpha rule)",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 6,
          "lines_added": 329,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-froude-model-trim-speed-low-reynolds.md",
            "prompts/runs/2026-10-27-session_01E5sJKkHzbnoS4uzVK5nSBA.json",
            "research/aerolog-scaling/experiments/longitudinal_modes/results.txt",
            "research/aerolog-scaling/experiments/longitudinal_modes/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a3cd251c25e22bcd36fbc80f4dbe8c4916fef901",
          "at": 1793088635000,
          "title": "research/aerolog-scaling: milestone 5a, propeller efficiency vs Reynolds number (UIUC data)",
          "pr": 10843,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 5a, propeller efficiency vs Reynolds number from UIUC data",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 6,
          "lines_added": 257,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-small-propellers-lose-about-ten-points-of-efficiency.md",
            "prompts/runs/2026-10-27-session_01AcxTtK9vZ5oPE4EhSpUEfm.json",
            "research/aerolog-scaling/experiments/propeller_efficiency/results.txt",
            "research/aerolog-scaling/experiments/propeller_efficiency/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "143a0746abda18aaf1b9f7f4c4c79f80429856cd",
          "at": 1793095830000,
          "title": "research/aerolog-scaling: open TP-1435, check every reference",
          "pr": 10862,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: open TP-1435, check every reference, fix author and three NASA ids",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 7,
          "lines_added": 116,
          "lines_removed": 14,
          "added_files": [
            "docs/posts/2026-10-27-checking-the-scaling-table-i-quoted-from-memory.md",
            "prompts/runs/2026-10-27-session_01AcxTtLiasWgNRjnGTzmarb.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "250b6a2fe50d0fd4ec11567d3eafa06f093866e1",
          "at": 1793104233000,
          "title": "research/aerolog-scaling: milestone 6a, measured power vs mass exponent (Rodrigues flights)",
          "pr": 10879,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 6a, measured power vs mass exponent on Rodrigues flights",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 8,
          "lines_added": 317,
          "lines_removed": 3,
          "added_files": [
            "docs/posts/2026-10-27-quadcopter-power-scales-as-mass-to-the-1-5.md",
            "docs/reports/aerolog-scaling-milestone-6a.md",
            "prompts/runs/2026-10-27-session_01AcxTtGK87gXPe71FPnpxst.json",
            "research/aerolog-scaling/experiments/rodrigues_energy/results.txt",
            "research/aerolog-scaling/experiments/rodrigues_energy/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7ed1f441c7643989901fd3072715be409802fe2f",
          "at": 1793109284000,
          "title": "research/aerolog-scaling: milestone 7a, correction search for H5",
          "pr": 10891,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7a, correction search for H5 (refuted in section space)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 7,
          "lines_added": 207,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-no-airfoil-fixes-a-fifth-scale-model-uav.md",
            "prompts/runs/2026-10-27-session_01E5sJKj6G8NibXQkj5Eh1UD.json",
            "research/aerolog-scaling/experiments/correction_search/results.txt",
            "research/aerolog-scaling/experiments/correction_search/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "26e16905fcaa24013f8d028d85afc9fd028bd5d6",
          "at": 1793111845000,
          "title": "research/aerolog-scaling: day-clustered bootstrap for the m^1.5 exponent (milestone 6b)",
          "pr": 10900,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: day-clustered bootstrap and date fixed effects for the m^1.5 exponent (milestone 6b) + blog post"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 5,
          "lines_added": 150,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-does-a-drones-power-law-survive-flight-day-effects.md",
            "prompts/runs/2026-10-27-session_01AcxTtKqcmKB6HZwTgMGWVg.json",
            "research/aerolog-scaling/experiments/rodrigues_energy/results_days.txt",
            "research/aerolog-scaling/experiments/rodrigues_energy/run_days.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7cdac0bb3b1106de85bbc81293ddcd670b999e4f",
          "at": 1793115858000,
          "title": "research/aerolog-scaling: milestone 7b, non-similar corrections for H5",
          "pr": 10909,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7b, non-similar corrections (area, aspect ratio) for H5",
            "prompts: run record for aerolog-scaling 7b"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 5,
          "lines_added": 219,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKnG3aPdofGCV1YFrnr.json",
            "research/aerolog-scaling/experiments/nonsimilar_search/results.txt",
            "research/aerolog-scaling/experiments/nonsimilar_search/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "35cef1a9115bc3e36647926ee66a733e814c27ff",
          "at": 1793121303000,
          "title": "research/aerolog-scaling: milestone 7c, do power-matched non-similar models keep the flight modes?",
          "pr": 10928,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7c, do power-matched non-similar models keep the flight modes?",
            "prompts: run record for aerolog-scaling 7c",
            "docs: shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 6,
          "lines_added": 332,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-a-scale-model-that-matches-power-still-flies-differently.md",
            "prompts/runs/2026-10-27-session_01AcxTtHiR7p4WsGU4qAcZjK.json",
            "research/aerolog-scaling/experiments/nonsimilar_modes/results.txt",
            "research/aerolog-scaling/experiments/nonsimilar_modes/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3e4d9fe67c36691418554657673023dba0b537b3",
          "at": 1793129076000,
          "title": "research/aerolog-scaling: milestone 7d, tail search at n = 0.2",
          "pr": 10945,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7d plan, tail search at n = 0.2",
            "research/aerolog-scaling: 7d outcome, post, run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 5,
          "lines_added": 228,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-smaller-longer-tail-restores-the-short-period-of-a-scale-model.md",
            "prompts/runs/2026-10-27-session_01AcxTtHgMMFwFy8hM5Q8n1v.json",
            "research/aerolog-scaling/experiments/tail_search/results.txt",
            "research/aerolog-scaling/experiments/tail_search/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "91e428963b514ac81e6f596c693df769474d0733",
          "at": 1793135921000,
          "title": "research/aerolog-scaling: milestone 7e, tail mass vs 7d's passing tails",
          "pr": 10967,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7e, tail mass does not move 7d's passing tails"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 4,
          "lines_added": 182,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKmyEY8EXRBuddUEETP.json",
            "research/aerolog-scaling/experiments/tail_mass/results.txt",
            "research/aerolog-scaling/experiments/tail_mass/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "13a76315ea6206ac1d8193910f2a27a4c134953a",
          "at": 1793139493000,
          "title": "research/aerolog-scaling: milestone 7f, CG and static-margin sweep",
          "pr": 10976,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: milestone 7f, CG and static-margin sweep of 7d's tails",
            "prompts: run record for aerolog-scaling 7f"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 4,
          "lines_added": 156,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtJupjuwJRwZ6ujuo5c.json",
            "research/aerolog-scaling/experiments/cg_margin/results.txt",
            "research/aerolog-scaling/experiments/cg_margin/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "506042b494d4a31cb6a4185dd3b81e121a80222d",
          "at": 1793139704000,
          "title": "research/aerolog-scaling: 7g fixed-tail CG tolerance",
          "pr": 10977,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/aerolog-scaling: 7g fixed-tail CG tolerance",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "aerolog-scaling"
          },
          "files": 5,
          "lines_added": 177,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-how-far-off-can-a-sub-scale-uav-cg-be.md",
            "prompts/runs/2026-10-27-session_01E5sJKim6hysLRt8qDKZFuy.json",
            "research/aerolog-scaling/experiments/fixed_tail/results.txt",
            "research/aerolog-scaling/experiments/fixed_tail/run.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "marine-hull",
      "merges": [
        {
          "sha": "be3599bcfc459803f94ea5cd422699196761c54f",
          "at": 1793111158000,
          "title": "research/marine-hull: open the marine-hull programme (track 23)",
          "pr": 10894,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: open the marine-hull programme (track 23) with a calculator and first sweep"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 14,
          "lines_added": 513,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-does-a-catamaran-out-range-a-monohull-for-autonomous-survey.md",
            "prompts/runs/2026-10-27-session_01AcxTtLcgusoaL4ojif81qB.json",
            "research/marine-hull/LOG.md",
            "research/marine-hull/PROPOSAL.md",
            "research/marine-hull/README.md",
            "research/marine-hull/experiments/results.txt",
            "research/marine-hull/experiments/run.py",
            "research/marine-hull/project.json",
            "research/marine-hull/pyproject.toml",
            "research/marine-hull/src/marine_hull/__init__.py",
            "research/marine-hull/src/marine_hull/hull.py",
            "research/marine-hull/tests/test_hull.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "911ceebda8afca2b9cddef7e34db237acf7edb1c",
          "at": 1793112069000,
          "title": "research/marine-hull: milestone 2, Michell wave term replaces the placeholder",
          "pr": 10902,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 2, Michell wave term replaces the placeholder"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 9,
          "lines_added": 408,
          "lines_removed": 9,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtH89qbzroVmPvMwrhK.json",
            "research/marine-hull/experiments/results_michell.txt",
            "research/marine-hull/experiments/run_michell.py",
            "research/marine-hull/src/marine_hull/michell.py",
            "research/marine-hull/tests/test_michell.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "18017a475a29544d72f7a30e6b3556ab89101b3d",
          "at": 1793121361000,
          "title": "research/marine-hull: milestone 4, glider vs propeller AUV",
          "pr": 10929,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4, glider against propeller AUV (hotel load drives the ranking)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 10,
          "lines_added": 375,
          "lines_removed": 5,
          "added_files": [
            "docs/posts/2026-10-27-a-glider-beats-a-propeller-auv-only-through-hotel-load.md",
            "prompts/runs/2026-10-27-session_01E5sJKnsqsLpQL9zrkQoN3T.json",
            "research/marine-hull/experiments/results_glider.txt",
            "research/marine-hull/experiments/run_glider.py",
            "research/marine-hull/src/marine_hull/glider.py",
            "research/marine-hull/tests/test_glider.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "59a2661e98ac42cb0034d9850a78cb5c80d92f5e",
          "at": 1793129025000,
          "title": "research/marine-hull: milestone 4b, glider vs AUV with Slocum coefficients from gliderflight",
          "pr": 10950,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4b, glider vs AUV with Slocum coefficients from gliderflight",
            "Fix post front matter"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 9,
          "lines_added": 202,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-a-slocum-glider-needs-five-times-the-auv-hotel-load-to-win.md",
            "prompts/runs/2026-10-27-session_01E5sJKjAWNdGUGnyVMRMqDj.json",
            "research/marine-hull/experiments/results_slocum.txt",
            "research/marine-hull/experiments/run_slocum.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c4d517a7406a3c937ece87476a5ab14f7ce6af16",
          "at": 1793131815000,
          "title": "research/marine-hull: milestone 4c, REMUS-class hotel load from vendor endurance",
          "pr": 10954,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4c, REMUS-class hotel load from vendor endurance",
            "Post front matter: description and tags"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 9,
          "lines_added": 257,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-a-glider-beats-an-auv-once-you-read-the-auvs-power-bill.md",
            "prompts/runs/2026-10-27-session_01AcxTtHqT2s4GYVZbssoi5B.json",
            "research/marine-hull/experiments/results_remus.txt",
            "research/marine-hull/experiments/run_remus.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0f2c572e4881bf9cd5833b288f9852d0c91cdcfd",
          "at": 1793131993000,
          "title": "research/marine-hull: milestone 5, hydrofoil rung vs displacement monohull",
          "pr": 10956,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 5, hydrofoil rung never out-ranges the displacement hull"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 8,
          "lines_added": 183,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-a-hydrofoil-does-not-out-range-a-displacement-hull.md",
            "prompts/runs/2026-10-27-session_01AcxTtJ6aNoje7zQirz4mbe.json",
            "research/marine-hull/experiments/results_foil.txt",
            "research/marine-hull/experiments/run_foil.py",
            "research/marine-hull/src/marine_hull/foil.py",
            "research/marine-hull/tests/test_foil.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fb5c02b61328f9ae87f3a078556eef0bf876a4bf",
          "at": 1793132031000,
          "title": "research/marine-hull: milestone 4d, energy-delay of glider vs REMUS-class AUV",
          "pr": 10957,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4d, energy-delay of glider vs REMUS-class AUV"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 6,
          "lines_added": 220,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-gliders-energy-win-costs-it-days-per-hundred-km.md",
            "prompts/runs/2026-10-27-session_01AcxTtLiH1RzFeXJsc9pJ7u.json",
            "research/marine-hull/experiments/results_time.txt",
            "research/marine-hull/experiments/run_time.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a8fde8a9ac3d89071790ed39ad9f88196355f4e9",
          "at": 1793132462000,
          "title": "research/marine-hull: milestone 4e, break-even value of a day of delay (glider vs AUV)",
          "pr": 10959,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4e, break-even value of a day of delay, glider vs AUV",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 6,
          "lines_added": 131,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-what-a-day-of-delay-is-worth-glider-vs-auv.md",
            "prompts/runs/2026-10-27-session_01E5sJKiokDA1CF2uxNNdKX6.json",
            "research/marine-hull/experiments/results_value.txt",
            "research/marine-hull/experiments/run_value.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4773a9d13abee15e38082d33d88bc7c9cc535951",
          "at": 1793143215000,
          "title": "research/marine-hull: milestone 4f, glider vs AUV in a cross-current",
          "pr": 10988,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/marine-hull: milestone 4f, glider vs AUV in a cross-current"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "marine-hull"
          },
          "files": 6,
          "lines_added": 206,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKkEPJqYPMcJL4yabXD.json",
            "research/marine-hull/experiments/results_current.txt",
            "research/marine-hull/experiments/run_current.py"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "verifiable-training-mechanisms",
      "merges": [
        {
          "sha": "90fad23498270a05516f4e4b1c03a17283a07e5d",
          "at": 1793066898000,
          "title": "research/verifiable-training-mechanisms: milestone 32, paper H3 section with measured agreement",
          "pr": 10781,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 32, paper H3 section with measured agreement"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 3,
          "lines_added": 63,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtKXxNUo6e2VrXmocvr.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "56e9704f2fd8950d504771266dfb3506d26a4273",
          "at": 1793070854000,
          "title": "research/verifiable-training-mechanisms: side payments do not bring back 1/m (H4, milestone 33)",
          "pr": 10796,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: side payments do not bring back the 1/m stake law (H4, milestone 33)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 9,
          "lines_added": 280,
          "lines_removed": 12,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKnBSX64mG8DyKasRVs.json",
            "research/verifiable-training-mechanisms/experiments/side_payments/results.json",
            "research/verifiable-training-mechanisms/experiments/side_payments/results.txt",
            "research/verifiable-training-mechanisms/experiments/side_payments/run.out",
            "research/verifiable-training-mechanisms/experiments/side_payments/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7bb801fb5daec0c6f08da022c22d3487e29cbdc4",
          "at": 1793089004000,
          "title": "research/verifiable-training-mechanisms: milestone 34, a bribable auditor",
          "pr": 10845,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 34, a bribable auditor in the coalition game",
            "post: shorten description",
            "post: shorten description again"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 12,
          "lines_added": 346,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-verifiable-training-bribable-auditor.md",
            "prompts/runs/2026-10-27-session_01AcxTtHrmR3kav7Uv6j1PmD.json",
            "research/verifiable-training-mechanisms/experiments/auditor/results.json",
            "research/verifiable-training-mechanisms/experiments/auditor/results.txt",
            "research/verifiable-training-mechanisms/experiments/auditor/run.out",
            "research/verifiable-training-mechanisms/experiments/auditor/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "45fe23bcc4d92d8af92c78d89758e845d055be33",
          "at": 1793092289000,
          "title": "research/verifiable-training-mechanisms: milestone 35, partial copying (kappa) in the m-worker game",
          "pr": 10854,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 35, partial copying (kappa) in the m-worker game"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 9,
          "lines_added": 165,
          "lines_removed": 14,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtJgt7YVkTxT7duLs3k.json",
            "research/verifiable-training-mechanisms/experiments/partial_copy/results.json",
            "research/verifiable-training-mechanisms/experiments/partial_copy/results.txt",
            "research/verifiable-training-mechanisms/experiments/partial_copy/run.out",
            "research/verifiable-training-mechanisms/experiments/partial_copy/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "d032bb158beb8914fdb729901e57b5a6455ddbc8",
          "at": 1793092442000,
          "title": "research/verifiable-training-mechanisms: milestone 35, partial copying in the m-worker game",
          "pr": 10855,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 35, partial copying in the m-worker game"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 9,
          "lines_added": 255,
          "lines_removed": 2,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKkb3GnjtDqunAVJL6Y.json",
            "research/verifiable-training-mechanisms/experiments/partial_copy_mode/results.json",
            "research/verifiable-training-mechanisms/experiments/partial_copy_mode/results.txt",
            "research/verifiable-training-mechanisms/experiments/partial_copy_mode/run.out",
            "research/verifiable-training-mechanisms/experiments/partial_copy_mode/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "3668b0cde92a5281c451c0f3b2349b0a27364aed",
          "at": 1793092815000,
          "title": "research/verifiable-training-mechanisms: milestone 37, pricing replication against a single worker",
          "pr": 10857,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 37, pricing replication against a single worker"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 8,
          "lines_added": 210,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKnN5xrHXr8bmKPT6xA.json",
            "research/verifiable-training-mechanisms/experiments/replication_cost/results.json",
            "research/verifiable-training-mechanisms/experiments/replication_cost/results.txt",
            "research/verifiable-training-mechanisms/experiments/replication_cost/run.out",
            "research/verifiable-training-mechanisms/experiments/replication_cost/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c398d9145bf3a708eb900409bfb984f3716a8830",
          "at": 1793118764000,
          "title": "research/verifiable-training-mechanisms: milestone 38, joint audit-stake-replication pricing",
          "pr": 10920,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 38, joint audit-stake-replication pricing"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 8,
          "lines_added": 787,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-is-replication-ever-the-cheap-way-to-deter-cheating.md",
            "prompts/runs/2026-10-27-session_01AcxTtKQRScVLhtpYAN1qeP.json",
            "research/verifiable-training-mechanisms/experiments/joint_audit_price/results.json",
            "research/verifiable-training-mechanisms/experiments/joint_audit_price/results.txt",
            "research/verifiable-training-mechanisms/experiments/joint_audit_price/run.out",
            "research/verifiable-training-mechanisms/experiments/joint_audit_price/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0f1e7a08060ba8fb7534579fa887bf3e2b4d9050",
          "at": 1793121005000,
          "title": "research/verifiable-training-mechanisms: milestone 39, replication vs faulty workers",
          "pr": 10925,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verifiable-training-mechanisms: milestone 39, replication vs faulty workers with a priced audit"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 6,
          "lines_added": 5154,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtJJ99Xi3zR2953b2S8.json",
            "research/verifiable-training-mechanisms/experiments/faulty_workers/results.json",
            "research/verifiable-training-mechanisms/experiments/faulty_workers/results.txt",
            "research/verifiable-training-mechanisms/experiments/faulty_workers/run.out",
            "research/verifiable-training-mechanisms/experiments/faulty_workers/run.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "4a825de4b1d42cd4587d3954a95ded4b1a037dd5",
          "at": 1793135405000,
          "title": "research/verifiable-training-mechanisms: paper H4 gains faulty-worker and replication-pricing results",
          "pr": 10963,
          "agent": "Claude",
          "models": [],
          "track": "research",
          "bullets": [],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verifiable-training-mechanisms"
          },
          "files": 2,
          "lines_added": 3,
          "lines_removed": 1,
          "added_files": [],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "verified-dse",
      "merges": [
        {
          "sha": "9a573a72e538d203f5564f88a072bf2e959eb7ca",
          "at": 1793065478000,
          "title": "research/verified-dse: milestone 24, second corner (ss_100C_1v60)",
          "pr": 10776,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 24 plan, second corner (ss_100C_1v60), run.py --lib",
            "research/verified-dse: milestone 24 outcome, ss corner results, run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 10,
          "lines_added": 1643,
          "lines_removed": 5,
          "added_files": [
            "prompts/runs/2026-10-27-session_01Sf7PwLQBNxTK3qfGPg2CnE.json",
            "research/verified-dse/experiments/corner_ss/compare.py",
            "research/verified-dse/experiments/corner_ss/meta.json",
            "research/verified-dse/experiments/corner_ss/results.jsonl",
            "research/verified-dse/experiments/corner_ss/results.txt",
            "research/verified-dse/experiments/corner_ss/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "574b3d70e2b6f8453655823c21c4d2ad82e8a1a5",
          "at": 1793066531000,
          "title": "research/verified-dse: milestone 24, rung bias at 65% utilisation",
          "pr": 10780,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 24 plan (65% utilisation corner), VDSE_UTIL override",
            "research/verified-dse: milestone 24, rung bias at 65% utilisation holds"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 11,
          "lines_added": 1188,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-verified-dse-denser-placement-same-rung-bias.md",
            "prompts/runs/2026-10-27-session_0184c5QVUqwMRYcQyF5VDjXN.json",
            "research/verified-dse/experiments/util65/analyse.py",
            "research/verified-dse/experiments/util65/meta.json",
            "research/verified-dse/experiments/util65/results.jsonl",
            "research/verified-dse/experiments/util65/results.txt",
            "research/verified-dse/experiments/util65/run.py",
            "research/verified-dse/experiments/util65/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9bbb73af11d492a5cd371457dd2802feded0d10f",
          "at": 1793067029000,
          "title": "research/verified-dse: milestone 26, strategy replay on the ss corner",
          "pr": 10784,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 26, strategy replay on the ss corner",
            "prompts: run record for verified-dse milestone 26",
            "docs: shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 9,
          "lines_added": 837,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-verified-dse-halving-flips-with-the-corner.md",
            "docs/reports/verified-dse-milestone-26.md",
            "prompts/runs/2026-10-27-session_01AcxTtHYS6rXte9WGQYers8.json",
            "research/verified-dse/experiments/corner_replay/replay.py",
            "research/verified-dse/experiments/corner_replay/results.txt",
            "research/verified-dse/experiments/corner_replay/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e6e8bb8dfa40c3227fb8a51bfe5d87b22acce158",
          "at": 1793098467000,
          "title": "research/verified-dse: milestone 27, pilot gate on five unseen designs",
          "pr": 10868,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 27 plan, five unseen designs, flow runner",
            "research/verified-dse: milestone 27, pilot gate on five unseen designs; run record",
            "research/verified-dse: fix post date and description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 15,
          "lines_added": 1429,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-does-never-cut-on-the-cheap-rung-hold-on-unseen-chip-designs.md",
            "prompts/runs/2026-10-27-session_01E5sJKmUe5ejQKoBpqSF4ZF.json",
            "research/verified-dse/designs/crc32_w.v",
            "research/verified-dse/designs/decmux.v",
            "research/verified-dse/designs/prio_enc.v",
            "research/verified-dse/designs/sbox.v",
            "research/verified-dse/designs/sort_net.v",
            "research/verified-dse/experiments/unseen/meta.json",
            "research/verified-dse/experiments/unseen/replay.py",
            "research/verified-dse/experiments/unseen/results.jsonl",
            "research/verified-dse/experiments/unseen/results.txt",
            "research/verified-dse/experiments/unseen/run.py",
            "research/verified-dse/experiments/unseen/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "8d2688bb137ed0773c8252250dfa3078fd75cffe",
          "at": 1793100578000,
          "title": "research/verified-dse: milestone 28, designs built to make R2 fail",
          "pr": 10872,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 28 plan, R2-hostile designs and harness",
            "research/verified-dse: milestone 28 outcome, R2-hostile designs, post and run record",
            "docs: shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 16,
          "lines_added": 1082,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-when-timing-repair-rescues-the-netlist-that-looked-worst.md",
            "prompts/runs/2026-10-27-session_01AcxTtGkd3J4XkV8aykKGKG.json",
            "research/verified-dse/designs/bcastmix.v",
            "research/verified-dse/designs/cmp128.v",
            "research/verified-dse/designs/gf2mat.v",
            "research/verified-dse/designs/rotmix.v",
            "research/verified-dse/designs/xbar.v",
            "research/verified-dse/experiments/hostile/meta.json",
            "research/verified-dse/experiments/hostile/replay.py",
            "research/verified-dse/experiments/hostile/results.jsonl",
            "research/verified-dse/experiments/hostile/results.txt",
            "research/verified-dse/experiments/hostile/run.py",
            "research/verified-dse/experiments/hostile/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "12914ae0ece38f76ac12814be8bf7084c9a7aa57",
          "at": 1793112050000,
          "title": "research/verified-dse: paper covers milestones 24 to 28",
          "pr": 10901,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: paper section 3 covers milestones 24 to 28; section 6 rewritten"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 3,
          "lines_added": 83,
          "lines_removed": 6,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKixq9JwpkDSaVD39wP.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "18ea8c0ef36f1224c56e9ad4e4a5162d749e77a8",
          "at": 1793114113000,
          "title": "research/verified-dse: milestone 29, pooled significance on ten held-out designs",
          "pr": 10906,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 29, pooled significance on ten held-out designs",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 10,
          "lines_added": 520,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-how-many-chip-designs-does-it-take-to-trust-a-search-trick.md",
            "docs/reports/verified-dse-milestone-29.md",
            "prompts/runs/2026-10-27-session_01AcxTtHQ7YAWNsuogXiXVbF.json",
            "research/verified-dse/experiments/heldout_signif/results.txt",
            "research/verified-dse/experiments/heldout_signif/summary.json",
            "research/verified-dse/experiments/heldout_signif/test.py"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6766aaf761de6c439a14e9d1439a5c4b10edd8de",
          "at": 1793118417000,
          "title": "research/verified-dse: milestone 30, repair-driven inversion on high-fanout designs with rich outcomes",
          "pr": 10917,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 30 setup (predictions logged, two high-fanout designs, run/analyse scripts)",
            "research/verified-dse: milestone 30 results (high-fanout designs with rich outcomes), paper, README, post",
            "prompts: run record for verified-dse milestone 30"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 16,
          "lines_added": 789,
          "lines_removed": 4,
          "added_files": [
            "docs/posts/2026-10-27-cheap-rung-fails-on-fanout.md",
            "prompts/runs/2026-10-27-session_01AcxTtLHsa7p1Jb6eMJiLYx.json",
            "research/verified-dse/designs/bcastadd.v",
            "research/verified-dse/designs/fanao.v",
            "research/verified-dse/experiments/fanout_rich/analyse.py",
            "research/verified-dse/experiments/fanout_rich/meta.json",
            "research/verified-dse/experiments/fanout_rich/outcomes.txt",
            "research/verified-dse/experiments/fanout_rich/replay.py",
            "research/verified-dse/experiments/fanout_rich/results.jsonl",
            "research/verified-dse/experiments/fanout_rich/results.txt",
            "research/verified-dse/experiments/fanout_rich/run.py",
            "research/verified-dse/experiments/fanout_rich/summary.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "73705ad5b3fc1fb2af05922a2452514d71ffde8c",
          "at": 1793128142000,
          "title": "research/verified-dse: milestone 31, why R2 mis-ranks fanao96 (period, not area)",
          "pr": 10944,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/verified-dse: milestone 31, area vs period mechanism on fanao96",
            "prompts: run record for verified-dse milestone 31"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "verified-dse"
          },
          "files": 8,
          "lines_added": 125,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-why-the-cheap-rung-misranks-a-high-fanout-chip-design.md",
            "docs/reports/verified-dse-milestone-31.md",
            "prompts/runs/2026-10-27-session_01AcxTtLffWC8auU2oM17JvY.json",
            "research/verified-dse/experiments/fanao_mech/analyse.py",
            "research/verified-dse/experiments/fanao_mech/results.txt"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "llm-coding-inference",
      "merges": [
        {
          "sha": "79dbfeff6a0d48ab0fdc1e0c312ce13d73689b33",
          "at": 1793060529000,
          "title": "research/llm-coding-inference: milestone 6s, Wilson-upper pilot variance at a rare category",
          "pr": 10769,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6s, Wilson-upper pilot variance at a rare category",
            "prompts: run record for research/llm-coding-inference 6s"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 7,
          "lines_added": 284,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-llm-coding-wilson-pilot-overplans.md",
            "prompts/runs/2026-10-27-session_019H768ohEGJ5fzR5oYRXrcA.json",
            "research/llm-coding-inference/experiments/h6s_wilson_pilot.py",
            "research/llm-coding-inference/experiments/h6s_wilson_pilot.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a03f0f23fd632c8e62eb82e53705f0dabf99c36b",
          "at": 1793070777000,
          "title": "research/llm-coding-inference: milestone 6t, sequential audit at a rare category",
          "pr": 10795,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6t, sequential audit at a rare category (optional stopping undercovers)"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 7,
          "lines_added": 255,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-llm-coding-inference-sequential-audit-rare.md",
            "prompts/runs/2026-10-27-session_01AcxTtHos38jcaNWf8XjCKX.json",
            "research/llm-coding-inference/experiments/h6t_rare_sequential.py",
            "research/llm-coding-inference/experiments/h6t_rare_sequential.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "a8ebae58427c88378d839058069fb5b9b504a810",
          "at": 1793085251000,
          "title": "process: llm-coding-inference scripts fetch all GoEmotions parts themselves",
          "pr": 10834,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "process",
          "bullets": [
            "llm-coding-inference: rare_audit fetches GoEmotions parts 2-3 itself",
            "prompts: run record for process/2 GoEmotions fetch fix"
          ],
          "detail": "Nine experiment scripts needed ~/.cache/qual-real/goemotions_{1,2,3}.csv but only part 1 was ever downloaded (process friction, 2026-10-24 and 2026-10-27).",
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 11,
          "lines_added": 75,
          "lines_removed": 13,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtGjT6oQWqzwdxZdQn4.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "c8c45ae0e8d8c1b078062fdd40bc4c017122a475",
          "at": 1793107492000,
          "title": "research/llm-coding-inference: milestone 6u, Wilson-upper stopping at a rare category",
          "pr": 10886,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: milestone 6u plan and experiment script (Wilson-upper stopping)",
            "research/llm-coding-inference: milestone 6u outcome (Wilson-upper stopping undercovers) and run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 4,
          "lines_added": 175,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtHezEtUas9B8w2onq5.json",
            "research/llm-coding-inference/experiments/h6u_wilson_stop.py",
            "research/llm-coding-inference/experiments/h6u_wilson_stop.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "fc3b49a84d650f2157f527cc897a6eeebf384918",
          "at": 1793121125000,
          "title": "research/llm-coding-inference: 6v, a wider critical z does not repair the rare-category sequential audit",
          "pr": 10926,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: 6v, a wider critical z does not repair the rare-category sequential audit",
            "post: shorten description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 5,
          "lines_added": 196,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-widening-the-interval-does-not-fix-a-rare-category-audit.md",
            "prompts/runs/2026-10-27-session_01AcxTtKFoHUV3S5E1149m7x.json",
            "research/llm-coding-inference/experiments/h6v_alpha_spend.py",
            "research/llm-coding-inference/experiments/h6v_alpha_spend.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9442c22994984037f1f3d478d3733398f356a411",
          "at": 1793135429000,
          "title": "research/llm-coding-inference: 6w, rare-category sequential audit fails through a downward bias at the stop",
          "pr": 10964,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: 6w, sequential rare-category audit fails through a downward bias at the stop",
            "prompts: run record for research/0 session"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 5,
          "lines_added": 247,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtJ7KmMSBpZFMEcJBni.json",
            "research/llm-coding-inference/experiments/h6w_stop_z.py",
            "research/llm-coding-inference/experiments/h6w_stop_z.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "f1ebcacf0f6ffcd9a3cdf98a2d8b4d926d9a0f5f",
          "at": 1793142583000,
          "title": "research/llm-coding-inference: 6x, a label-free audit size stays valid at a rare category",
          "pr": 10982,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/llm-coding-inference: 6x, a label-free audit size stays valid at a rare category (1.9 to 2.8x oracle)",
            "prompts: run record for research/llm-coding-inference 6x",
            "docs: shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "llm-coding-inference"
          },
          "files": 6,
          "lines_added": 219,
          "lines_removed": 1,
          "added_files": [
            "docs/posts/2026-10-27-a-label-free-audit-size-is-valid-at-a-rare-category.md",
            "prompts/runs/2026-10-27-session_01AcxTtGqYDQGQ3RNvCYRHzw.json",
            "research/llm-coding-inference/experiments/h6x_label_free.py",
            "research/llm-coding-inference/experiments/h6x_label_free.txt"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "lowcomm-training",
      "merges": [
        {
          "sha": "d27455006c547098d641f2c80e78978b18a705b2",
          "at": 1793074449000,
          "title": "research/lowcomm-training: milestone 5d, median aggregation at M = 8",
          "pr": 10798,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 5d plan (median at M = 8)",
            "research/lowcomm-training: 5d partial run output",
            "research/lowcomm-training: 5d partial run output",
            "research/lowcomm-training: milestone 5d outcome, median cost falls at M = 8"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 6,
          "lines_added": 147,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKmE6jQ1Av5KgLWAHdy.json",
            "research/lowcomm-training/experiments/gpt_median_m8/median_m8.jsonl",
            "research/lowcomm-training/experiments/gpt_median_m8/median_m8.py",
            "research/lowcomm-training/experiments/gpt_median_m8/median_m8_results.txt",
            "research/lowcomm-training/experiments/gpt_median_m8/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "faba0b12742174adeccefe6ab94a310ff1f54ddd",
          "at": 1793076214000,
          "title": "research/lowcomm-training: milestone 5d, trimmed mean and median at M = 8 under a sign-flip attacker",
          "pr": 10799,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: trimmed-mean aggregator, M=8 attack experiment script and pre-registration (milestone 5d)",
            "research/lowcomm-training: milestone 5d runs in progress",
            "research/lowcomm-training: milestone 5d results, post and run record",
            "Shorten post description"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 9,
          "lines_added": 186,
          "lines_removed": 2,
          "added_files": [
            "docs/posts/2026-10-27-lowcomm-training-median-at-eight-workers.md",
            "prompts/runs/2026-10-27-session_01E5sJKiW6KXi5D64vTtdFeV.json",
            "research/lowcomm-training/experiments/gpt_trimmed_m8/run.out",
            "research/lowcomm-training/experiments/gpt_trimmed_m8/trimmed_m8.jsonl",
            "research/lowcomm-training/experiments/gpt_trimmed_m8/trimmed_m8.py",
            "research/lowcomm-training/experiments/gpt_trimmed_m8/trimmed_m8_results.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "7b007c55c522ae94f9d1122d7ac95df604ffb4dc",
          "at": 1793082108000,
          "title": "research/lowcomm-training: order-statistic check of the median's sign-flip cost (5f)",
          "pr": 10828,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 5f, order-statistic check of the median's flip cost"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 4,
          "lines_added": 125,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKo3BSyFreuyMsgcdcR.json",
            "research/lowcomm-training/experiments/median_order_stat/order_stat.py",
            "research/lowcomm-training/experiments/median_order_stat/order_stat_results.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b5813fc2b3981b100731dd102bb01e47d6f2dcd4",
          "at": 1793096506000,
          "title": "research/lowcomm-training: 5g heavy-tailed check of the median order-statistic account",
          "pr": 10867,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 5g, heavy-tailed check of the median order-statistic account"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 4,
          "lines_added": 188,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKjyoEAvTx397XVZiGS.json",
            "research/lowcomm-training/experiments/median_order_stat_heavy/heavy.py",
            "research/lowcomm-training/experiments/median_order_stat_heavy/heavy_results.txt"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "9f671c116ccda74c154750f6801cc86347af9db6",
          "at": 1793114075000,
          "title": "research/lowcomm-training: 5h measure real worker-delta tail weight and mu/sigma",
          "pr": 10898,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: 5h delta-statistics measurement (script and planned hypotheses; runs in progress)",
            "research/lowcomm-training: 5h outcome, post, run record"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 9,
          "lines_added": 281,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-what-do-real-worker-updates-look-like-in-low-communication-training.md",
            "prompts/runs/2026-10-27-session_01E5sJKiUfjt5QRUqW2Wx3vq.json",
            "research/lowcomm-training/experiments/delta_stats/delta_stats.jsonl",
            "research/lowcomm-training/experiments/delta_stats/delta_stats.py",
            "research/lowcomm-training/experiments/delta_stats/delta_stats_results.txt",
            "research/lowcomm-training/experiments/delta_stats/run0.out",
            "research/lowcomm-training/experiments/delta_stats/run1.out",
            "research/lowcomm-training/experiments/delta_stats/run2.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "00db28fc6cd01fc2b1ba74e500d0ae86192dcaa5",
          "at": 1793140616000,
          "title": "research/lowcomm-training: 5i median flip cost at M=16 reaches the noise floor",
          "pr": 10960,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: 5i plan, M=16 median flip test (pre-registered)",
            "research/lowcomm-training: 5i partial raw results (runs still in progress)",
            "research/lowcomm-training: 5i M=16 median flip test result, post, run record",
            "docs: shorten post description to 160 characters"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 7,
          "lines_added": 231,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-median-aggregator-shrugs-off-one-attacker-in-sixteen.md",
            "prompts/runs/2026-10-27-session_01E5sJKk983ze1T5TYM4aMNg.json",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16.jsonl",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16.py",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16_results.txt",
            "research/lowcomm-training/experiments/gpt_median_m16/run.out"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "10e5e62a008ab13fc97519f14c6d68b4326425a3",
          "at": 1793141618000,
          "title": "research/lowcomm-training: 5i-b, trimmed-mean arm at M=16 (median arms landed in #10960)",
          "pr": 10958,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/lowcomm-training: milestone 5i plan and M=16 harness",
            "research/lowcomm-training: milestone 5i outcome, post, run record",
            "research/lowcomm-training: restore 5i-b data files",
            "docs: 5i note reflects parallel landing"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "lowcomm-training"
          },
          "files": 8,
          "lines_added": 225,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-a-median-defence-at-sixteen-workers-is-below-what-three-seeds-can-see.md",
            "docs/reports/lowcomm-training-milestone-5i.md",
            "prompts/runs/2026-10-27-session_01E5sJKnRLB7PgW3x8z2UWpH.json",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16_full.jsonl",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16_full_results.txt",
            "research/lowcomm-training/experiments/gpt_median_m16/median_m16_with_trimmed.py",
            "research/lowcomm-training/experiments/gpt_median_m16/trimmed_arm.jsonl"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "sim2real-inference",
      "merges": [
        {
          "sha": "76b4087193c18629c608de65501ba1173d925edb",
          "at": 1793078044000,
          "title": "research/sim2real-inference: fix order-dependent analyse import in benchmark test",
          "pr": 10816,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: fix order-dependent analyse import in benchmark test"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 3,
          "lines_added": 65,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKoCrNagL3x1DVxQFK9.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "16d7a6285c132e378a3e13c3a47a9fbf787abeef",
          "at": 1793081521000,
          "title": "research/sim2real-inference: verified citations log + post",
          "pr": 10824,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "research",
          "bullets": [
            "research/sim2real-inference: log verified citations, add post"
          ],
          "detail": null,
          "area": {
            "kind": "research",
            "name": "sim2real-inference"
          },
          "files": 3,
          "lines_added": 57,
          "lines_removed": 0,
          "added_files": [
            "docs/posts/2026-10-27-sim2real-inference-citations-verified.md",
            "prompts/runs/2026-10-27-session_01AcxTtGkPAMgnn89vyGoMyN.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "writing": [
    {
      "sha": "da718ad8c8581b0dd618c145e9c51fc523ddc9b3",
      "at": 1793085255000,
      "title": "dogfood: run actions-continue-on-error-check over our own workflows",
      "pr": 10835,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "explore",
      "bullets": [
        "dogfood: run actions-continue-on-error-check over our workflows, six accepted with reasons"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 59,
      "lines_removed": 1,
      "added_files": [
        "docs/posts/2026-10-27-dogfooding-the-continue-on-error-check.md",
        "prompts/runs/2026-10-27-session_01AcxTtGcuxA21wy3PGfoWgg.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3b2f36c990d830e2c2d7f699565e0009b6ec3355",
      "at": 1793088982000,
      "title": "process: fix main_health red, missing front matter on shift-roster-builder post",
      "pr": 10846,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "docs: add missing front matter to the shift-roster-builder post (main_health red)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 2,
      "lines_added": 45,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKnXZz6YPrDcZYP71wD.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "42375a139a6467d802714d858ebe0f962f5ec201",
      "at": 1793089322000,
      "title": "process: post-date check allows no day of slack; redate 19 posts",
      "pr": 10848,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "check_post_frontmatter: no day of slack for future-dated posts; redate 19 posts dated 2026-10-28"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 23,
      "lines_added": 160,
      "lines_removed": 23,
      "added_files": [
        "docs/posts/2026-10-27-a-day-of-slack-let-posts-date-themselves-tomorrow.md",
        "prompts/runs/2026-10-27-session_01E5sJKkTZ5MrrYzd5g994v4.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3cc38b89f3b90a0edfa686ac76efaaa9339d4eb6",
      "at": 1793092226000,
      "title": "process: fix main_health red (3 future-dated posts, 4 long descriptions)",
      "pr": 10853,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: redate three posts dated 2026-10-28 and shorten four over-long descriptions (main_health red)"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 6,
      "lines_added": 58,
      "lines_removed": 7,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtGhyYwrJZfhQSg66iw.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "c2dac80dc4c76a542de912cdfabb5051bffea8e4",
      "at": 1793099977000,
      "title": "posts: fix front matter on three posts failing check_post_frontmatter",
      "pr": 10874,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "explore",
      "bullets": [
        "posts: fix front matter on four posts that failed check_post_frontmatter",
        "posts: correct counts in front-matter post",
        "prompts: run record for explore post-front-matter fix"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 5,
      "lines_added": 70,
      "lines_removed": 2,
      "added_files": [
        "docs/posts/2026-10-27-three-posts-failed-our-own-front-matter-check.md",
        "prompts/runs/2026-10-27-session_01AcxTtJEi285fNMHW8HbQzX.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3a169b732baab4a1f24c36193a5fa2fc35aeb7c2",
      "at": 1793111211000,
      "title": "posts: merge five split tag spellings; check flags tag variants",
      "pr": 10895,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "explore",
      "bullets": [
        "posts: merge five split tag spellings; front-matter check flags tag variants"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 19,
      "lines_added": 116,
      "lines_removed": 18,
      "added_files": [
        "docs/posts/2026-10-27-five-tags-that-split-the-blog-filter.md",
        "prompts/runs/2026-10-27-session_01AcxTtKpfDNeHU6SECtDbvx.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "514754ea60ef5b4bacbca76602b0341c509f5d81",
      "at": 1793124686000,
      "title": "process: fix main_health red, five post descriptions over 160 chars",
      "pr": 10935,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "posts: shorten five 2026-10-27 descriptions to 160 characters (main_health red)",
        "prompts: run record for process/2"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 6,
      "lines_added": 51,
      "lines_removed": 5,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtJryqE5y8PHBJ5npa2.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "c906537765e7433cf2d936780889271b1dea4213",
      "at": 1793125306000,
      "title": "redteam: platform/pages/backup.mjs 2026-10-27",
      "pr": 10939,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "redteam",
      "bullets": [
        "redteam: backup.mjs 2026-10-27, guard the embedded browser script and parseBackup bounds",
        "redteam: run record"
      ],
      "detail": null,
      "area": {
        "kind": "writing",
        "name": "posts"
      },
      "files": 3,
      "lines_added": 367,
      "lines_removed": 0,
      "added_files": [
        "docs/posts/2026-10-27-seeded-bugs-in-the-saved-bid-backup-six-of-eight-got-through.md",
        "prompts/runs/2026-10-27-session_01E5sJKjbPqY6xQ65K8Xe6Fz.json"
      ],
      "revert": false,
      "fix_forward": false
    }
  ],
  "platform": [
    {
      "name": "ci",
      "merges": [
        {
          "sha": "03e72a46f183f669c3425838830ca073e7527f5a",
          "at": 1793063446000,
          "title": "process: wait_for.py, a safe wait for background jobs",
          "pr": 10773,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "process",
          "bullets": [
            "process: wait_for.py, a safe wait for background jobs; fix Monitor contradiction in cloud-session and review docs"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 5,
          "lines_added": 132,
          "lines_removed": 2,
          "added_files": [
            "platform/ci/test_wait_for.py",
            "platform/ci/wait_for.py",
            "prompts/runs/2026-10-27-session_013fLPJk81yMBDSLiyaRwAU8.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "0e3a1065ca854ea7daee09dc6e46d458671f6c23",
          "at": 1793066952000,
          "title": "redteam: platform/ci/validate_workflows.py 2026-10-27",
          "pr": 10782,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: guard validate_workflows jobs check against empty and non-mapping jobs",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 324,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtKqXK19K5AWcPPnZMy.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6099084d59266a12e1f704f269773c89c6c9bcf4",
          "at": 1793103883000,
          "title": "ci: parser-based markup basics check for all venture pages",
          "pr": 10878,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "explore",
          "bullets": [
            "ci: parser-based markup basics check for venture pages",
            "docs: shorten post description",
            "prompts: run record",
            "fix main-red: two run records, two flagship next: caps"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 8,
          "lines_added": 186,
          "lines_removed": 9,
          "added_files": [
            "docs/posts/2026-10-27-markup-basics-sweep-found-nothing-so-now-ci-checks-it.md",
            "platform/ci/check_markup_basics.py",
            "platform/ci/test_check_markup_basics.py",
            "prompts/runs/2026-10-27-session_01AcxTtJqjvF9iMWPLo3axDj.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "13472cf9aef7741a095859d5eceaebf9e84cc099",
          "at": 1793106931000,
          "title": "redteam: platform/ci/ci_starvation.py 2026-10-27",
          "pr": 10885,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ci_starvation.py: no jobs and malformed jobs no longer read as runners fine or starved",
            "redteam: run record"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 3,
          "lines_added": 202,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVLtD5ZqLkbLmyr8T2Q.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "6e2ea4eeb381a95a5e90357afd55899abbe6b21b",
          "at": 1793118134000,
          "title": "redteam: platform/ci/check_jsonld.py 2026-10-27",
          "pr": 10918,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/ci/check_jsonld.py 2026-10-27",
            "redteam: run record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 207,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKkSWa3w3roA4VsopMd.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "379fcba775a50f88b64f0e2affb93bbae3a3d043",
          "at": 1793121642000,
          "title": "redteam: check_inpage_refs 2026-10-27",
          "pr": 10930,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: check_inpage_refs 2026-10-27",
            "redteam record: PR number"
          ],
          "detail": "Guard default root and clean-tree exit code.",
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 2,
          "lines_added": 333,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKmjJ8wApHAfvBSa7ZS.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "b0fa57f82d8c01d158dfac2c6acd69f58cdb8a56",
          "at": 1793124767000,
          "title": "redteam: platform/ci 2026-10-27",
          "pr": 10934,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/ci guards for figureless_projects, sync_tree_counts, branch_cleanup 2026-10-27",
            "redteam: record PR number",
            "Trim five blog descriptions over the 160-character limit",
            "Trim ai-bookkeeper flagship next: under the 2000-character cap"
          ],
          "detail": "Catch rate 71.4% -> 100% on 36 mutants.",
          "area": {
            "kind": "platform",
            "name": "ci"
          },
          "files": 5,
          "lines_added": 703,
          "lines_removed": 1,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVM3DpVTke6inixUXZM.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "distribution",
      "merges": [
        {
          "sha": "a3fcc0d610dc64c14fe3187b0e78cf594b564d38",
          "at": 1793088251000,
          "title": "redteam: platform/distribution/bluesky.mjs 2026-10-27",
          "pr": 10841,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: platform/distribution/bluesky.mjs 2026-10-27 (live gate, window edge, clip guards)",
            "redteam record: pr 10841"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "distribution"
          },
          "files": 2,
          "lines_added": 219,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01EhTJVLstjFGJY3Dzkr2GVe.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "e9e83cd3ba5735198f3fd236919d0a914f445e6f",
          "at": 1793100251000,
          "title": "redteam: ghaction 2026-10-27",
          "pr": 10875,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: ghaction 2026-10-27, regenerate stale action, add boundary tests",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "distribution"
          },
          "files": 4,
          "lines_added": 242,
          "lines_removed": 0,
          "added_files": [
            "platform/distribution/actions/actions-continue-on-error-check/README.md",
            "platform/distribution/actions/actions-continue-on-error-check/action.yml",
            "prompts/runs/2026-10-27-session_01E5sJKjXi5ekh9mzi8zGioW.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "1017492b07070aa23d95fbd4fc689f55340f806e",
          "at": 1793139086000,
          "title": "redteam: platform/distribution/citation.mjs 2026-10-27",
          "pr": 10974,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: citation.mjs 2026-10-27 - guard 5 escaped mutants, escape LaTeX specials, refresh stale citation files",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "distribution"
          },
          "files": 5,
          "lines_added": 3090,
          "lines_removed": 359,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtKwZwhppbRTodJzs2y.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "pages",
      "merges": [
        {
          "sha": "6345e17f4340b3991dfa594a13e74ecf3e54476c",
          "at": 1793113910000,
          "title": "redteam: platform/pages/entities.mjs 2026-10-27",
          "pr": 10905,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: entities.mjs 2026-10-27, add 0x10FFFF boundary test",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 2,
          "lines_added": 167,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01AcxTtKkuzQAjEtJdj2x7Rb.json"
          ],
          "revert": false,
          "fix_forward": false
        },
        {
          "sha": "79d0b9b0f35ae438def9eedab5b0d814d73e8954",
          "at": 1793119109000,
          "title": "redteam: published-base-url 2026-10-27",
          "pr": 10921,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: published-base-url 2026-10-27",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "pages"
          },
          "files": 2,
          "lines_added": 199,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKm9QhSvy76tEES6rih.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    },
    {
      "name": "business-template",
      "merges": [
        {
          "sha": "f41146099b4cdb807ce5c0bf7ab4451613d0761d",
          "at": 1793085234000,
          "title": "redteam: business-template 2026-10-27",
          "pr": 10833,
          "agent": "Claude Sonnet 5.5",
          "models": [
            "Claude Sonnet 5.5"
          ],
          "track": "redteam",
          "bullets": [
            "redteam: business-template 2026-10-27 — guard interactive() and --out",
            "redteam: record PR number"
          ],
          "detail": null,
          "area": {
            "kind": "platform",
            "name": "business-template"
          },
          "files": 2,
          "lines_added": 196,
          "lines_removed": 0,
          "added_files": [
            "prompts/runs/2026-10-27-session_01E5sJKkD7ezatkcf96X7h4w.json"
          ],
          "revert": false,
          "fix_forward": false
        }
      ]
    }
  ],
  "ci": [],
  "process": [
    {
      "sha": "3bb2bafdfd511052c2815e2571efc0c0d9e26ab0",
      "at": 1793060462000,
      "title": "prompts: review 2026-10-27",
      "pr": 10767,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-27 (reduced pass)"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 6,
      "lines_added": 2027,
      "lines_removed": 4,
      "added_files": [
        "prompts/runs/2026-10-27-session_017fBxbs5jQxBuhxWbDJMYFT.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "1cf81838b1506cbcfb43703c09014fb4cf4c7221",
      "at": 1793063284000,
      "title": "wall-framing-takeoff: shop drawings as a PDF with no browser",
      "pr": 10771,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "ventures",
      "bullets": [
        "wall-framing-takeoff: shop drawings as a PDF with no browser (--pdf, page button)",
        "Regenerate front-door mirror after wall-framing-takeoff change"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "gitops"
      },
      "files": 80,
      "lines_added": 351,
      "lines_removed": 39,
      "added_files": [
        "docs/posts/2026-10-27-wall-framing-takeoff-pdf-shop-drawings.md",
        "ventures/wall-framing-takeoff/pdf.mjs",
        "ventures/wall-framing-takeoff/pdf.test.mjs"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "6280887c93aa6337d00a03fb01e0e37abee7be95",
      "at": 1793069879000,
      "title": "podcast: script for the coal-charity post (no audio: audio over 400 MB cap, huggingface.co blocked)",
      "pr": 10789,
      "agent": "Claude",
      "models": [],
      "track": "creative",
      "bullets": [],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "docs"
      },
      "files": 1,
      "lines_added": 24,
      "lines_removed": 0,
      "added_files": [
        "docs/podcast/2026-10-27-what-is-a-ton-of-coal-worth-when-nobody-sells-coal.md"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "b41855b91dfacbd1fa382670eca74add54bf839e",
      "at": 1793074184000,
      "title": "process: measure friction table marks deleted files as not live",
      "pr": 10805,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: measure marks friction reports on deleted files as not live"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 3,
      "lines_added": 65,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtGvsBbtvNs65nZVurU.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3e451a9e413a7e8be4370400a45aa9add70482b2",
      "at": 1793074429000,
      "title": "process: promptctl measure tags friction keys for deleted files",
      "pr": 10807,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "promptctl measure: tag friction keys whose file no longer exists",
        "Use main's promptctl tests"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 1,
      "lines_added": 131,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKo7xgR1Mn2sNFCGw5T.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "db22214b1a1e4a41ef68a0d77ae3e7be890c5e88",
      "at": 1793078377000,
      "title": "podcast: script for The Second Slope post (no audio)",
      "pr": 10817,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "creative",
      "bullets": [
        "podcast: script for The Second Slope post (no audio: over 400 MB cap)"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "docs"
      },
      "files": 2,
      "lines_added": 70,
      "lines_removed": 0,
      "added_files": [
        "docs/podcast/2026-10-27-when-the-water-level-falls-twice-as-fast.md",
        "prompts/runs/2026-10-27-session_01E5sJKjtqaSLahz86DgCHWS.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "ab060f25b0258797b540b6a7c92037a31eb0cb0b",
      "at": 1793078395000,
      "title": "prompts: review 2026-10-27",
      "pr": 10818,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-27 (torch/pyenv note, derived refresh)",
        "prompts: review run record"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 5,
      "lines_added": 1845,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKmgKoJpCLbAVoDPori.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "3684581033048901d24fc83cbf083b86c09ca9e9",
      "at": 1793089299000,
      "title": "process: creative prompt says audio is text-only while over the cap",
      "pr": 10847,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "creative prompt: say audio is text-only while over the cap, skip podcast option"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 2,
      "lines_added": 58,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKo9TUv3KMJyWaUvHUu.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "923652050be12c6fa6e89a6c99adbf523a7f53a0",
      "at": 1793096710000,
      "title": "prompts: review 2026-10-27",
      "pr": 10869,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-27 claim",
        "prompts: review 2026-10-27 (pkill hook pointer, derived refresh)",
        "prompts: run record for review 2026-10-27"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 5,
      "lines_added": 1953,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKjbyZXezvSaV26F7Ti.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "aac2bd78ffc3e898b7b1716844659e4353644eec",
      "at": 1793104577000,
      "title": "ai-bookkeeper: property test for the prepaid schedule",
      "pr": 10883,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "ventures",
      "bullets": [
        "ai-bookkeeper: property test for the prepaid schedule"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 1,
      "lines_added": 51,
      "lines_removed": 0,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtJAXk6TtM8Fcsifr2N.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "8f1dd1e20f7545dd9d7cf3b0b13a10c84a190774",
      "at": 1793115947000,
      "title": "process: cite_check falls back to DataCite for non-Crossref DOIs",
      "pr": 10910,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "cite_check: fall back to DataCite when Crossref has no such DOI"
      ],
      "detail": "Figshare/Zenodo dataset DOIs gave a false FAIL (404 at Crossref).",
      "area": {
        "kind": "process",
        "name": "research"
      },
      "files": 3,
      "lines_added": 79,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtKF76t1MNiJ3X9tbXc.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "f6566367aa9cbaa054a16c4fd2cdc96ea2f97533",
      "at": 1793116204000,
      "title": "process: fix stale torch advice in research/CLAUDE.md",
      "pr": 10911,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "research/CLAUDE.md: replace stale torch install advice, point at wait_for.py"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "research"
      },
      "files": 2,
      "lines_added": 50,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKiTWY3VD6mfVwU313P.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "0d1a9d09e74311b7e817f503e43e743b153b8bb2",
      "at": 1793117699000,
      "title": "prompts: review 2026-10-27",
      "pr": 10914,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-27 (explore audit-skip list)"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 3,
      "lines_added": 58,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01AcxTtKKP5YJTSmEcmzor8L.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "6aa1160f19f595ebcf84d9c7b0010497d2734b39",
      "at": 1793125298000,
      "title": "process: fix red validate on main (run record names PR 10937)",
      "pr": 10938,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: name PR 10937 in its run record so validate is green on main"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 2,
      "lines_added": 123,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKnxmJSLkj73XDdts2F.json"
      ],
      "revert": false,
      "fix_forward": true
    },
    {
      "sha": "29bdc88932a17f84feaa97c1650527845e070a7b",
      "at": 1793125345000,
      "title": "process: measure warns its fetch holds shallow.lock; fix null pr on #10937 record",
      "pr": 10940,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: measure warns its fetch holds shallow.lock; fill pr on #10937 record"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 2,
      "lines_added": 52,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKmwgXLhvrQYEPbNHq5.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "df05578527b394bf50530a77e391f9b0397d3b67",
      "at": 1793136052000,
      "title": "prompts: review 2026-10-27",
      "pr": 10969,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "review",
      "bullets": [
        "prompts: review 2026-10-27 (reduced pass): shallow.lock note, three post front-matter fixes, derived refresh",
        "prompts: record review run"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 8,
      "lines_added": 3919,
      "lines_removed": 118,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKkYaT94EJ6FjgsqxdZ.json"
      ],
      "revert": false,
      "fix_forward": false
    },
    {
      "sha": "d80b76e198a18556b70fa3104c68eaa12ea40458",
      "at": 1793136118000,
      "title": "prompts: review 2026-10-27 reduced pass; fix validate failures",
      "pr": 10970,
      "agent": "Claude",
      "models": [],
      "track": "review",
      "bullets": [],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 5,
      "lines_added": 75,
      "lines_removed": 2,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKnmqU5soUuwCesZXpY.json"
      ],
      "revert": false,
      "fix_forward": false
    }
  ],
  "new_ventures": [
    "actions-continue-on-error-check"
  ],
  "new_research": [
    "aerolog-scaling",
    "marine-hull"
  ],
  "new_posts": [
    "2026-10-27-ai-bookkeeper-euro-invoice-euro-payments",
    "2026-10-27-the-aerator-works-hardest-when-the-pond-is-emptiest",
    "2026-10-27-ai-bookkeeper-amount-spellings",
    "2026-10-27-quick-pick-survey-lapse-sweep",
    "2026-10-27-ai-bookkeeper-credit-note-other-currency",
    "2026-10-27-wall-framing-takeoff-reads-ifc",
    "2026-10-27-llm-coding-wilson-pilot-overplans",
    "2026-10-28-wall-framing-takeoff-foundation-corner-bars",
    "2026-10-27-wall-framing-takeoff-pdf-shop-drawings",
    "2026-10-28-wall-framing-takeoff-anchor-bolts-on-the-page",
    "2026-10-28-changepoint-detector-drift-warning",
    "2026-10-28-wall-framing-takeoff-panel-sheets-in-the-pdf",
    "2026-10-27-sales-agent-salutation-is-not-a-job-title",
    "2026-10-28-wall-framing-takeoff-one-sheet-per-panel",
    "2026-10-27-verified-dse-denser-placement-same-rung-bias",
    "2026-10-27-saints-by-candlelight-elisha-widows-jars-of-oil",
    "2026-10-27-verified-dse-halving-flips-with-the-corner",
    "2026-10-28-changepoint-detector-drift-warning-false-alarms",
    "2026-10-28-wall-framing-takeoff-gable-panel-plates",
    "2026-10-27-a-leak-gives-away-its-height",
    "2026-10-27-what-is-a-ton-of-coal-worth-when-nobody-sells-coal",
    "2026-10-27-einvoice-preflight-polish-ksef-templates",
    "2026-10-27-wall-framing-takeoff-nail-counts",
    "2026-10-28-wall-framing-takeoff-hold-downs",
    "2026-10-27-the-second-slope",
    "2026-10-28-wall-framing-takeoff-nails-on-the-page",
    "2026-10-27-llm-coding-inference-sequential-audit-rare",
    "2026-10-28-wall-framing-takeoff-hold-down-controls",
    "2026-10-28-wall-framing-takeoff-budget-csv-from-the-command-line",
    "2026-10-28-wall-framing-takeoff-rafter-tie-counts",
    "2026-10-27-saints-by-candlelight-isaac-wells",
    "2026-10-28-wall-framing-takeoff-trim-boards",
    "2026-10-27-saints-by-candlelight-david-and-the-giant",
    "2026-10-28-wall-framing-takeoff-counted-order-vs-allowances",
    "2026-10-27-scaled-drone-models-need-more-power-than-froude-says",
    "2026-10-27-einvoice-preflight-colombia-chile",
    "2026-10-27-lowcomm-training-median-at-eight-workers",
    "2026-10-27-ai-bookkeeper-foreign-settlement-property-test",
    "2026-10-27-einvoice-preflight-peru-argentina",
    "2026-10-27-einvoice-preflight-check-digit-blind-spots",
    "2026-10-27-ai-bookkeeper-irs-pdfs-readable",
    "2026-10-27-einvoice-preflight-uruguay",
    "2026-10-27-einvoice-preflight-paraguay",
    "2026-10-27-einvoice-preflight-ecuador",
    "2026-10-27-sim2real-inference-citations-verified",
    "2026-10-27-froude-model-airfoil-polars",
    "2026-10-28-changepoint-detector-bootstrap-with-trend",
    "2026-10-27-continue-on-error-check",
    "2026-10-28-wall-framing-takeoff-trim-on-the-page",
    "2026-10-27-the-grandmothers-sorghum",
    "2026-10-27-saints-by-candlelight-greccio-crib",
    "2026-10-27-ai-bookkeeper-fidelity-cash-exports",
    "2026-10-27-dogfooding-the-continue-on-error-check",
    "2026-10-27-ai-bookkeeper-hdfc-value-date",
    "2026-10-27-froude-model-trim-speed-low-reynolds",
    "2026-10-27-changepoint-detector-multiplicative-season",
    "2026-10-28-quick-pick-survey-first-option-bias",
    "2026-10-28-shift-roster-builder-open-shift-weight",
    "2026-10-27-small-propellers-lose-about-ten-points-of-efficiency",
    "2026-10-27-quick-pick-survey-first-option-fallback",
    "2026-10-27-verifiable-training-bribable-auditor",
    "2026-10-27-a-day-of-slack-let-posts-date-themselves-tomorrow",
    "2026-10-28-changepoint-detector-airline-passengers",
    "2026-10-27-lake-huron-changepoints",
    "2026-10-28-ai-bookkeeper-loan-schedule-drift",
    "2026-10-28-changepoint-detector-holidays-bootstrap",
    "2026-10-27-ai-bookkeeper-state-due-dates-primary",
    "2026-10-27-lake-huron-ar1-is-not-hiding-a-drop",
    "2026-10-27-the-rope-at-the-side-gate",
    "2026-10-27-ai-bookkeeper-break-even",
    "2026-10-28-does-scanning-for-autocorrelation-help-changepoint-detection",
    "2026-10-27-checking-the-scaling-table-i-quoted-from-memory",
    "2026-10-27-ai-bookkeeper-how-long-customers-take-to-pay",
    "2026-10-27-reading-the-shop-name-off-a-receipt-photo",
    "2026-10-27-shift-roster-builder-open-hours-or-open-shifts",
    "2026-10-27-does-never-cut-on-the-cheap-rung-hold-on-unseen-chip-designs",
    "2026-10-27-quick-pick-survey-second-option-bias",
    "2026-10-27-red-team-usage-opt-out-default",
    "2026-10-27-three-posts-failed-our-own-front-matter-check",
    "2026-10-27-missed-holidays-changepoint-bootstrap",
    "2026-10-27-ai-bookkeeper-break-even-property-test",
    "2026-10-27-changepoint-range-steep-bends",
    "2026-10-27-when-timing-repair-rescues-the-netlist-that-looked-worst",
    "2026-10-27-markup-basics-sweep-found-nothing-so-now-ci-checks-it",
    "2026-10-27-quadcopter-power-scales-as-mass-to-the-1-5",
    "2026-10-27-a-random-test-found-two-bugs-in-asset-disposals",
    "2026-10-27-an-interval-that-admits-where-it-is-optimistic",
    "2026-10-27-no-airfoil-fixes-a-fifth-scale-model-uav",
    "2026-10-27-a-wish-you-asked-about-every-year",
    "2026-10-27-3200-random-leagues-all-valid",
    "2026-10-27-does-a-catamaran-out-range-a-monohull-for-autonomous-survey",
    "2026-10-27-five-tags-that-split-the-blog-filter",
    "2026-10-27-ai-bookkeeper-sales-tax-return-property-test",
    "2026-10-27-ai-bookkeeper-reconcile-property-test",
    "2026-10-27-ai-bookkeeper-year-end-property-test",
    "2026-10-27-does-a-drones-power-law-survive-flight-day-effects",
    "2026-10-27-telling-the-team-without-a-text-message-bill",
    "2026-10-27-does-the-order-your-bank-rows-arrive-in-change-your-books",
    "2026-10-27-what-do-real-worker-updates-look-like-in-low-communication-training",
    "2026-10-27-how-many-chip-designs-does-it-take-to-trust-a-search-trick",
    "2026-10-27-do-macrs-tables-still-add-up-to-the-cost",
    "2026-10-27-one-dose-cannot-serve-two-seasons",
    "2026-10-27-ai-crawler-check-table-and-llms-txt",
    "2026-10-27-einvoice-preflight-spain-b2b",
    "2026-10-27-a-prayer-nobody-could-hear-hannah-at-shiloh",
    "2026-10-27-bookkeeping-estimate-for-a-tax-year-the-irs-has-not-published",
    "2026-10-27-cheap-rung-fails-on-fanout",
    "2026-10-27-is-replication-ever-the-cheap-way-to-deter-cheating",
    "2026-10-27-when-the-receipt-reader-met-sdn-bnd",
    "2026-10-27-shift-roster-builder-changes-from-the-command-line",
    "2026-10-27-fuzzing-the-league-scheduler-edit-passes",
    "2026-10-27-widening-the-interval-does-not-fix-a-rare-category-audit",
    "2026-10-27-a-scale-model-that-matches-power-still-flies-differently",
    "2026-10-27-a-glider-beats-a-propeller-auv-only-through-hotel-load",
    "2026-10-27-new-york-sales-tax-year-ends-in-february",
    "2026-10-27-random-incomes-through-the-tax-estimate-found-nothing",
    "2026-10-27-massachusetts-monthly-sales-tax-is-due-day-30-not-20",
    "2026-10-27-why-a-resellers-bank-statement-understates-profit",
    "2026-10-27-fuzzing-a-multi-division-league-scheduler",
    "2026-10-27-seeded-bugs-in-the-saved-bid-backup-six-of-eight-got-through",
    "2026-10-27-how-much-can-a-freelancer-put-in-a-sep-ira",
    "2026-10-27-fuzzing-league-schedules-withdrawals-grounds-travel",
    "2026-10-27-irs-payments-are-not-a-freelancers-expense",
    "2026-10-27-why-the-cheap-rung-misranks-a-high-fanout-chip-design",
    "2026-10-27-fuzzing-the-fairness-weight-picker",
    "2026-10-27-pinning-retirement-limits-with-800-random-freelancers",
    "2026-10-27-pinning-the-ledger-reports-with-random-books",
    "2026-10-27-a-slocum-glider-needs-five-times-the-auv-hotel-load-to-win",
    "2026-10-27-a-smaller-longer-tail-restores-the-short-period-of-a-scale-model",
    "2026-10-27-spains-b2b-e-invoice-clock-starts-from-an-order-not-a-calendar-date",
    "2026-10-27-pinning-gst-and-budget-reports-with-random-books",
    "2026-10-27-a-changepoint-detector-on-fifty-years-of-us-inflation",
    "2026-10-27-a-glider-beats-an-auv-once-you-read-the-auvs-power-bill",
    "2026-10-27-a-hydrofoil-does-not-out-range-a-displacement-hull",
    "2026-10-27-a-gliders-energy-win-costs-it-days-per-hundred-km",
    "2026-10-27-what-a-day-of-delay-is-worth-glider-vs-auv",
    "2026-10-27-a-bell-with-a-coat-on",
    "2026-10-27-a-pan-of-boiling-water-at-1950-metres",
    "2026-10-27-counting-the-steel-at-wall-plate-joints",
    "2026-10-27-plate-straps-on-the-framing-page",
    "2026-10-27-reading-door-and-window-blocks-from-a-cad-plan",
    "2026-10-27-a-changepoint-detector-reads-two-cold-months-as-four-steps",
    "2026-10-27-fuzzer-crash-files-bookkeeper-ofx-reader",
    "2026-10-27-how-far-off-can-a-sub-scale-uav-cg-be",
    "2026-10-27-dax-volatility-changepoints",
    "2026-10-27-a-median-aggregator-shrugs-off-one-attacker-in-sixteen",
    "2026-10-27-a-median-defence-at-sixteen-workers-is-below-what-three-seeds-can-see",
    "2026-10-27-andrew-and-the-nets",
    "2026-10-28-freight-is-part-of-what-your-stock-cost",
    "2026-10-27-the-first-real-ifc-file-broke-our-wall-reader-twice",
    "2026-10-27-a-label-free-audit-size-is-valid-at-a-rare-category",
    "2026-10-27-when-stock-is-worth-less-than-you-paid",
    "2026-10-27-checking-a-sales-tax-calendar-against-the-states-own-page",
    "2026-10-27-a-five-year-burst-is-not-two-level-changes",
    "2026-10-27-testing-that-freight-and-write-downs-leak-no-cents",
    "2026-10-27-the-float-test"
  ],
  "reverts": [],
  "fix_forwards": [
    {
      "sha": "6aa1160f19f595ebcf84d9c7b0010497d2734b39",
      "at": 1793125298000,
      "title": "process: fix red validate on main (run record names PR 10937)",
      "pr": 10938,
      "agent": "Claude Sonnet 5.5",
      "models": [
        "Claude Sonnet 5.5"
      ],
      "track": "process",
      "bullets": [
        "process: name PR 10937 in its run record so validate is green on main"
      ],
      "detail": null,
      "area": {
        "kind": "process",
        "name": "prompts"
      },
      "files": 2,
      "lines_added": 123,
      "lines_removed": 1,
      "added_files": [
        "prompts/runs/2026-10-27-session_01E5sJKnxmJSLkj73XDdts2F.json"
      ],
      "revert": false,
      "fix_forward": true
    }
  ],
  "biggest": {
    "sha": "0f1e7a08060ba8fb7534579fa887bf3e2b4d9050",
    "at": 1793121005000,
    "title": "research/verifiable-training-mechanisms: milestone 39, replication vs faulty workers",
    "pr": 10925,
    "agent": "Claude Sonnet 5.5",
    "models": [
      "Claude Sonnet 5.5"
    ],
    "track": "research",
    "bullets": [
      "research/verifiable-training-mechanisms: milestone 39, replication vs faulty workers with a priced audit"
    ],
    "detail": null,
    "area": {
      "kind": "research",
      "name": "verifiable-training-mechanisms"
    },
    "files": 6,
    "lines_added": 5154,
    "lines_removed": 0,
    "added_files": [
      "prompts/runs/2026-10-27-session_01AcxTtJJ99Xi3zR2953b2S8.json",
      "research/verifiable-training-mechanisms/experiments/faulty_workers/results.json",
      "research/verifiable-training-mechanisms/experiments/faulty_workers/results.txt",
      "research/verifiable-training-mechanisms/experiments/faulty_workers/run.out",
      "research/verifiable-training-mechanisms/experiments/faulty_workers/run.py"
    ],
    "revert": false,
    "fix_forward": false
  },
  "runs": {
    "runs": 192,
    "by_track": [
      [
        "ventures",
        68
      ],
      [
        "research",
        56
      ],
      [
        "creative",
        21
      ],
      [
        "redteam",
        17
      ],
      [
        "process",
        13
      ],
      [
        "explore",
        11
      ],
      [
        "review",
        6
      ]
    ],
    "by_outcome": [
      [
        "success",
        169
      ],
      [
        "partial",
        22
      ],
      [
        "failed",
        1
      ]
    ],
    "by_model": [
      [
        "claude-sonnet-5-5",
        182
      ],
      [
        "unrecorded",
        10
      ]
    ],
    "measured": 52,
    "api_usd": 38.75,
    "active_minutes": 376,
    "errors": [
      "first run of nonsimilar_modes failed: aerosandbox missing from python3.13 until pyenv.py installed it",
      "first run failed: aerosandbox missing from both interpreters; pyenv install took ~5 min",
      "container restart lost the first batch of M=16 runs; rerun unchanged (about 1 hour lost)",
      "first run used a one-sided power-ratio criterion (<=1.05) that high-AR designs trivially met; caught from the output, rerun two-sided",
      "pip install of aerosandbox/neuralfoil took several minutes; m-selig.ae.illinois.edu refused by the proxy so the UIUC polar check was not done",
      "cite_check.py: arxiv/doi hosts 403 via proxy"
    ],
    "friction": [
      {
        "file": "research/CLAUDE.md",
        "n": 25,
        "issue": "No mention that OpenROAD installs from the nixpkgs binary cache with `nix build nixpkgs#openroad` (a minute), while chip-pnr's README says it compiles for 1.5 h."
      },
      {
        "file": "portfolio/flagships.yaml",
        "n": 16,
        "issue": "next: item 9 says the IRS is unreachable; irs.gov answered, the revenue procedure itself is not out"
      },
      {
        "file": "prompts/process/prompt-1.md",
        "n": 8,
        "issue": "Only owner rows and blocked P056 open again; main_health.py was green, so critique had to come from friction table, whose lowcomm and post-date entries were already fixed."
      },
      {
        "file": "CLAUDE.md",
        "n": 6,
        "issue": "No friction beyond the cloud-session need for npm ci before vitest in quick-pick-survey (about 2 min)."
      },
      {
        "file": "prompts/creative/prompt-0.md",
        "n": 6,
        "issue": "Said 'Hearth & Horizon has none yet' for a series bible, but BIBLE.md already exists."
      },
      {
        "file": "prompts/review/prompt-1.md",
        "n": 3,
        "issue": "Step 1 chained waits hit blocked sleep/pgrep -f hooks; no example of a safe wait loop"
      },
      {
        "file": "prompts/process/prompt-2.md",
        "n": 3,
        "issue": "Only owner rows and blocked P056 open again; main_health green, so the live fault came from the friction table by hand."
      },
      {
        "file": "research/PROGRAMMES.md",
        "n": 3,
        "issue": "pick_track.py drew llm-coding-inference; its LOG is 600+ lines so finding the next step meant reading several milestones of context."
      },
      {
        "file": "prompts/redteam/prompt-0.md",
        "n": 3,
        "issue": "pyenv install of pytest/numpy blocked the first command for 120s though the chosen node target needed neither"
      },
      {
        "file": "prompts/routing.json",
        "n": 3,
        "issue": "Router drew the process track while the scheduled prompt asked for revenue-generating products; followed the prompt."
      },
      {
        "file": "research/marine-hull/LOG.md",
        "n": 2,
        "issue": "Its 'Next' (milestone 4c) had been claimed by PR 10954 within minutes; the log has no claim marker, only an open-PR search shows it."
      },
      {
        "file": "prompts/ventures/prompt-1.md",
        "n": 2,
        "issue": "Flagship slices are mostly synthetic-data research; no real-data source was reachable quickly, so the slice was a small honesty fix."
      },
      {
        "file": "prompts/review/prompt-2.md",
        "n": 2,
        "issue": "Reduced pass is fine, but step 8 validate fails on other runs' posts (future-dated 2026-10-28, missing tags, 167-char description) that no review owns."
      },
      {
        "file": ".github/prompts/cloud-session.md",
        "n": 1,
        "issue": "Said to wait with Monitor; review/prompt-1.md says Monitor is blocked. Now both point at wait_for.py."
      },
      {
        "file": "research/llm-coding-inference/experiments/rare_audit.py",
        "n": 1,
        "issue": "needs GoEmotions CSVs in ~/.cache/qual-real; download URL is only in other projects' scripts (qual-real/experiments/run.py)"
      },
      {
        "file": "research/_shared/pick_track.py",
        "n": 1,
        "issue": "Drew track 23 (marine) while PROGRAMMES.md says advance an open programme by default; I advanced aerolog-scaling and treated the draw as raw material."
      },
      {
        "file": "research/verified-dse/tests",
        "n": 1,
        "issue": "unittest discover errors on a test file that imports pytest, which bare python3 lacks; README says to run unittest discover"
      },
      {
        "file": "research/marine-hull/tests/test_hull.py",
        "n": 1,
        "issue": "imports pytest, absent from the bare python3; unittest discovery errors on it"
      },
      {
        "file": "portfolio/router/allocate.py",
        "n": 1,
        "issue": "shallow-clone fetch exceeded 50s and printed partial counts"
      },
      {
        "file": "prompt.md",
        "n": 1,
        "issue": "Route/prompt reading is heavy for a small slice; flagship next: texts are 3k+ chars and hard to scan."
      },
      {
        "file": "ventures/ai-bookkeeper/README.md",
        "n": 1,
        "issue": "README says irs.gov is refused by the proxy; probe showed PDFs under /pub/irs-pdf and irs-drop return 200 now."
      },
      {
        "file": "ventures/saints-by-candlelight/PRODUCTION.md",
        "n": 1,
        "issue": "Episode 39 appears twice in git log (two PRs) and the 'Next up' list has no unclaimed items, so the next subject had to be chosen from scratch."
      },
      {
        "file": "research/PROJECTS.md",
        "n": 1,
        "issue": "Track 23 cites Rudnick 2004 and I wrote DOIs from memory; two were wrong, caught by cite_check. Proposals could say 'look DOIs up on Crossref first'."
      },
      {
        "file": "prompts/research/prompt-0.md",
        "n": 1,
        "issue": "Claim check (open PRs, recent branches) passed, yet a parallel run landed the identical marine-hull milestone 4c minutes later; programme LOG Next lines invite same-step collisions. Cost one duplicate PR (#10955, closed)."
      },
      {
        "file": "research/aerolog-scaling/experiments/airfoil_polars/run.py",
        "n": 1,
        "issue": "needs /usr/bin/python3.13 with aerosandbox/neuralfoil; bare python3 is 3.11 without them, pip install targets 3.13 silently"
      },
      {
        "file": "research/lowcomm-training/LOG.md",
        "n": 1,
        "issue": "said torch installs with pip; bare `pip` targeted a different python than `python3`, needed `python3 -m pip install torch`"
      },
      {
        "file": "research/aerolog-scaling/PROPOSAL.md",
        "n": 1,
        "issue": "cite_check cannot reach doi.org through the proxy (403), so the proposal's 5 DOIs stay unverified"
      },
      {
        "file": "research/aerolog-scaling/README.md",
        "n": 1,
        "issue": "README still says the next step is 7d; stale after 7d landed."
      },
      {
        "file": "research/_shared/cite_check.py",
        "n": 1,
        "issue": "Crossref, arXiv and NTRS all 403 through the proxy, so no citation could be machine-checked; proposal discloses this."
      },
      {
        "file": "prompts/promptctl.py",
        "n": 1,
        "issue": "measure friction table listed reports about deleted files (lowcomm test) as live; fixed with a gone-file tag."
      },
      {
        "file": "research/sim2real-inference/README.md",
        "n": 1,
        "issue": "says run tests with unittest (11 tests); suite now 33 and pytest with PYTHONPATH=src is what exposed the shadowing failure"
      },
      {
        "file": "prompts/promptctl.py route",
        "n": 1,
        "issue": "Routed to the research track while the scheduled prompt asked for venture work."
      }
    ],
    "notes": [
      "Small flagship 2 slice: anchor bolt page fields; page.test and foundation.test pass (36). Venture preflight not run; CI covers it.",
      "Backlog ids: none (P056 blocked). Added platform/ci/wait_for.py + test.",
      "Project: hearth-and-horizon; piece: three-plain-and-a-bob (text only, audio 423 MB over 400 MB cap). Touch counts computed by program (4 of 4096 patterns true). Venture tests 11/11.",
      "IFC reader on hand-written fixtures; no real export tried (buildingSMART samples not reachable).",
      "Reduced pass: measure, derive fetch/build, one doc fix (TeX trap in research/CLAUDE.md), E96, fixed a 179-char post description that failed validate. Candidates still keep collecting.",
      "Milestone 24: 600 OpenROAD points at 65% utilisation; 4 predictions held. Checks run: build.py ok, check_md_links ok, research_live_links ok.",
      "Project: saints-by-candlelight. Piece: episode 40, david-and-the-giant-in-the-valley-of-elah (1 Samuel 17), 6496 words, text only. No separate agent doc: PRODUCTION.md carries the next-up and audio status.",
      "Checks run locally: homepage build ok, md links ok. Prediction 2 refuted, others held.",
      "node --test accruals-property.test.mjs passes locally. No new code fault found; flagships.yaml next: unchanged.",
      "saints-by-candlelight episode 43 benedict-and-the-sieve-that-was-mended; text only, audio over cap (423 MB)",
      "Hearth & Horizon, slug the-day-he-is-married, twenty-year strand (will condition). Text only: audio 423 MB over the 400 MB cap.",
      "Explore idea: measure how often each of seven tax-ID check digits misses a typo (eval/id-blindspots.mjs + test + README + post). 3 tests pass; 3 seeds x 2000 IDs.",
      "Explore idea: dogfood the new continue-on-error checker over our own workflows; 6 findings, all deliberate, accepted with reasons.",
      "Critique mode via main_health. No backlog ids touched. Repeat of future-dated posts despite the earlier slack fix.",
      "Critique mode. No backlog ids touched. Fixed 3 scripts' CSV fetch (9 usage lines). Merge not done by this session if checks pending.",
      "Small step: cite_check on refs.bib, 14/14 ok. Programme is near paper-ready; no larger experiment run this session.",
      "verified-dse milestone 28: 600 flow runs on five wiring-dominated designs. Predictions 1-3 held (1 is one design with two outcome classes), 4 refuted. Checks: build.py ok, md links ok, live links ok; one pre-existing pytest import error in tests.",
      "venture test suite: 851 pass 0 fail; venture-preflight not run",
      "6x label-free audit size: coverage 91.8-94.4% at 1.9-2.8x oracle; one of three predictions refuted (cost ratio of c=2 vs c=1). build.py and check_md_links ok; no research tests run (no code in llmci changed).",
      "Tests: node --test salestaxreturn.test.mjs 29 pass. Venture preflight not run (small engine change).",
      "Flagship 8 slice: first-option fallback in selectNextPairHybrid. pairing.test.ts 8/8, bias sweep rerun (0.5: 0.592 to 0.651). tsc errors are pre-existing (no prisma generate). Venture preflight not run.",
      "Critique mode (only owner rows and blocked P056 open). main_health 22/22 green. Fixed measure friction table listing reports on deleted files as live. No backlog ids touched.",
      "Read tax.virginia.gov sales-and-use-tax page directly: monthly 20th, quarterly Apr/Jul/Oct/Jan 20; matches preset. salestaxreturn tests 30 pass.",
      "Small slice: Minnesota's whole due-date table read from the state page and pinned in a test; no code change needed. Colorado 404, Michigan 403.",
      "Ran nottem.test.mjs (2 pass). Flagship 4 slice; did not run full venture preflight.",
      "Paisa fixture sweep: 3 bank.mjs faults fixed; full ai-bookkeeper suite 1591 pass. Cost attach skipped.",
      "Stdlib replay, tt half reproduces eta_floor. build.py ok, md links ok. Local checks only; CI not awaited.",
      "Milestone 6u: Wilson-upper stopping rule refuted (coverage 51 to 74%). Paper section not updated.",
      "Milestone 7d: 6 of 17 power-matched wings have a tail within 5% on all three modes; both predictions held. homepage build ok, md links ok.",
      "Milestone 6t; GoEmotions cache fetched from public bucket. Fixed-n coverage check was a scratch script, not kept; stated in LOG. No agent doc in docs/reports.",
      "marine-hull milestone 4c; 24 tests pass, homepage build ok, md link check ok. Vendor figures from web search/fetch, flagged approximate.",
      "Milestone 34 of verifiable-training-mechanisms: bribable auditor. Prediction 4 first failed from a vacuous test at stake 0; fixed and logged. First closed form was wrong (brute force caught it); logged. Checks run locally: tests/test_coalition.py 10 passed, research build.py ok, check_md_links ok. Paper not compiled (no LaTeX).",
      "Saints by Candlelight episode 42 (gideon-and-the-three-hundred-with-jars), text only because audio is over the cap.",
      "Another session landed ventures/ai-bookkeeper/prepaid-property.test.mjs on main first; my duplicate was dropped on merge. Only this record remains.",
      "Explore idea: run existing front-matter checker on main; found and fixed 3 failing posts. Small run; checks run locally: check_post_frontmatter.py exit 0. Cost attach skipped.",
      "Project saints-by-candlelight, piece elisha-and-the-widows-jars-of-oil (episode 38). No agent doc written.",
      "page.test.mjs 25/25; eval-browser-click.mjs all ok, 0 page errors. Venture preflight and full CI not run locally.",
      "Changepoint-detector: missed-holiday test for the Poisson bootstrap (no effect beyond noise). Eval script run locally; node tests not rerun (docs/eval only). Also fixed three main-branch posts failing validate/build (missing description/tags, future date).",
      "Small slice: irs.gov PDFs now readable; Pub 1099 (2026) confirms 1099-K thresholds, 24% backup rate, $2,000 line. form1099k.test.mjs 8/8. 2027 rev proc still unpublished. Did not run venture-preflight (comment/README-only change). No agent doc written.",
      "wall-framing-takeoff plateStraps; node --test '*.test.mjs' 266 pass locally; CI not awaited.",
      "ai-bookkeeper flagship: inventory writedown (NRV). inventory.test.mjs 13 pass locally; flagship next: not rewritten (item list unaffected). venture-preflight not run.",
      "Explore idea: parser-based markup-basics CI check (lang, viewport, charset, img alt, noopener, tabindex, http). 0 problems in 3115 pages. Regex draft gave 2 false positives. Verified locally, not via CI.",
      "Critique mode (no agent-owned backlog item open). main_health.py found check_post_frontmatter red; shortened 5 descriptions; check passes locally.",
      "node --test trim/cli/budget tests: 40 pass. Venture preflight and CI not run locally.",
      "Merge of the PR is not done in this record; see final message.",
      "Hold-down counts in fasteners.mjs plus budget line; full venture suite 254 pass. No agent doc: nothing the next run needs beyond README/next:.",
      "creative track; hearth-and-horizon piece the-second-slope, text only (audio 423 MB over the 400 MB cap). Sums recomputed in a script; node --test 11 pass.",
      "Milestone 5a of aerolog-scaling: UIUC propeller data (reachable via proxy) tested H4. Local checks: homepage build ok, md links ok, programme_check ok. No CI check runs existed at merge time.",
      "Critique mode: cite_check.py DataCite fallback (friction: Figshare DOIs false FAIL). No backlog ids touched. No blog post: small tooling fix.",
      "Milestone 6v: Bonferroni z does not repair rare-category sequential audit (negative). Built the experiment by editing 6u. Ran locally; CI not awaited beyond homepage build ok. No separate agent doc written.",
      "Reduced pass: measure, explore audit-skip list fix (E99), validate ok. No blog post (reduced review pass).",
      "Homepage build ok, md links ok; CI not waited on (local checks).",
      "Paper H3 paragraph from milestone 31 results; LaTeX not compiled; build.py ok.",
      "Target platform/pages/entities.mjs. 6/8 caught; gt-to-ge at 0x10ffff was a gap (added boundary test); isFinite mutant equivalent. No real defects. No blog post: small run.",
      "ai-bookkeeper full suite 1600 pass; CI not waited on, local checks only.",
      "Explore idea: tag-spelling sweep of blog posts; merged 5 split tag pairs and added a check. Broken-relative-link sweep of posts found 0. Local checks: unittest 12 pass; CI not awaited.",
      "node --test trim/cli/budget tests: 40 pass. Venture preflight and CI not run locally.",
      "creative: saints-by-candlelight, episode 39 slug isaac-and-the-wells-that-were-dug-again; 5,922 words; node --test 12 pass",
      "Flagship 9 slice: fuzz-divisions.mjs, 996 leagues, 0 invalid. fuzz-build.test.mjs passes locally (3 tests). CI not awaited beyond that; no agent doc written (nothing the next run needs beyond README).",
      "verified-dse milestone 30: 240 flow runs, 3 predictions held; build.py ok, md links ok.",
      "Project: saints-by-candlelight; piece: francis-and-the-christmas-night-at-greccio (episode 41, text only, 4530 words).",
      "Opened marine-hull programme; tests 9 pass; homepage build, programme_check, md links ok. Wave term is a placeholder (disclosed).",
      "Milestone 31 of verified-dse; analysis of existing data, no flow tools available. Build ok, md links ok.",
      "engine.test.mjs + cli.test.mjs 98/98 pass locally (run in background; foreground 120s timeout killed first attempt). Small slice; real steep-break series still open.",
      "First attempt duplicated PR #10954 (marine-hull 4c); closed #10955, reset branch to main, shipped the follow-up 4d (time penalty). Both predictions in 4d refuted; speed-grid change after run 1 disclosed.",
      "Citation check of aerolog-scaling: fixed 1 author and 3 NASA ids, TP-1435 Table 4 matches code exponents, test added. 10 tests pass, homepage build ok, md links ok. Did not run CI wait; merged on local checks.",
      "Eval run locally (2 min, background); CI not waited on beyond local checks.",
      "changepoint-detector baseline timed out at 300s (too slow), switched target. zoho usage.mjs 8/8 caught; ZA calc.mjs 7/10 then 10/10 after tests.",
      "Surrogate not validated against UIUC data (hosts not probed); stated in log.",
      "ai-bookkeeper flagship 1, item 5: installed tesseract 5.3.4, re-ran 626 SROIE scans (merchant 281->287, date/total unchanged, boxes unchanged at 530). Tests: node --test receipt-ocr-columns, sroie-receipts, receipts: 54 pass. No agent doc in docs/reports: the README entry carries it.",
      "Critique mode. Replaced stale torch install advice in research/CLAUDE.md; pointed at wait_for.py. Backlog ids: none (P056 blocked).",
      "Only taxdepr-property.test.mjs run locally (passes); full CI and venture-preflight not run. No fault found.",
      "5e (a parallel run landed the median arms as 5d; merged, mine renumbered to 5e, trimmed arm is the new part): 12 runs, H5d-i..iii all held (median flip cost +0.021 at M=8 vs +0.095 at M=4; trimmed +0.026). Tests: 2 new/related harness tests pass; full homepage/cite checks below in PR.",
      "Ran page.test.mjs only; venture-preflight and a real browser check not run.",
      "Milestone 7g; CI not awaited before record; local build.py and check_md_links ok.",
      "retirement tests pass locally (5/5). Property test found no fault.",
      "marine-hull 4e; sourced ship day rate unreachable (hosts 403/DNS), so break-even value is the output.",
      "Small slice: header aliases from vendor field lists; not a real-data check. research.test.mjs 13 pass. Venture preflight and full CI not run locally.",
      "Fixed gable panel plate lengths in wall-framing-takeoff; panels.test.mjs 9/9 pass.",
      "Spot-checked hostile/unseen numbers against results.txt. Corrected one unverified count I wrote before committing.",
      "Milestone 7a H5 correction search; homepage build ok; no new unit tests (experiment script). Low-Re airfoil list added after first NACA-only run, disclosed in LOG.",
      "marine-hull milestone 4b. Tests 23 pass, homepage build ok, md links ok. Papers and DOI not cite-checked this step; coefficients read from the gliderflight package source.",
      "Fixed gable panel plate lengths in wall-framing-takeoff; panels.test.mjs 9/9 pass.",
      "Reduced pass (steps 1,3,7,8, one fix). Candidates keep collecting. validate errors are pre-existing posts from other runs (not mine). derive fetch/build run, 3360 rows.",
      "New test dax-returns.test.mjs passes (2/2, ~95s). Full CI and venture-preflight not run locally; row dates unverified, stated in README.",
      "creative: hearth-and-horizon, slug the-rope-at-the-side-gate, text only (audio 423 MB over cap). Tests 11/11 pass.",
      "Project: writing podcast (docs/podcast), slug the-second-slope. Audio 423 MB > 400 MB cap, so text only.",
      "Flagship 4 slice: --multiplicative season; mixed synthetic result (monthly better, quarterly worse), opt-in.",
      "Target platform/business-template/new_business.py. 8 mutants, 5 caught (62.5%); 3 gaps (interactive(), --out required) now covered, 100% after fix. No real defects found.",
      "Project hearth-and-horizon, slug the-salt-line. Local checks: node generate.mjs, node --test (11 pass).",
      "marine-hull milestone 4f (cross-current). No blog post: small step; milestone 3 blocked on unreachable data hosts (mdpi, unican 403/DNS).",
      "check_jsonld.py campaign: 8 mutants, 3 caught, 5 gaps (main()). Added 4 tests; catch rate 0.375 -> 1.0. No real defects found in a short read.",
      "Critique mode. check_post_frontmatter had 1 day of slack; 19 posts dated 2026-10-28 on UTC 10-27. Removed slack, redated posts. No backlog ids touched. validate fails on another run's record (pr null), not mine.",
      "Venture tests: node --test page.test.mjs only; no browser check.",
      "Reduced pass (steps 1,3,7,8 + one step-5 fix). No audit or drift report. Candidates still too few/overlapping. Two other runs' records fail validate and were not edited.",
      "Ran breakeven-property.test.mjs locally: 2 pass. Skipped venture-preflight (test-only change). No agent doc written.",
      "Local checks: coalition tests 13 OK, homepage build ok. No CI wait; see PR.",
      "Added great-discoveries real count series, test (passes locally), README, SOURCE; flagship next updated. Full CI not run locally; no agent doc in docs/reports.",
      "Measurement slice on changepoint-detector; no code change, so no venture tests run. CI not awaited locally beyond post front-matter check.",
      "Ran node --test on the new file only (3/3). Full CI not run locally.",
      "Flagship 1 (ai-bookkeeper). All state tax sites, irs.gov and ssa.gov refused the proxy, so items 8/9 could not be probed. Swept libofx sample files: no fault, test pins behaviour. No agent doc in docs/reports (nothing the next run needs beyond README).",
      "platform/pages/published-base-url.mjs: 8 mutants, 5 caught (62.5%); 2 gaps closed by new tests (75% after fix), 1 equivalent. No real defects found. Node suite passes (15/15).",
      "Milestone 5d: median at M=8, sign-flip x10 costs +0.021 nats vs +0.095 at M=4; 9 runs, 3 seeds.",
      "Flagship ai-bookkeeper; irs.gov refused by proxy so item 9 unprobed; landed reconcile property test (mutation-checked). No flagships.yaml change.",
      "Milestone 27 of verified-dse: 5 unseen designs, 600 flow runs, held-out pilot-gate replay; 2 of 4 predictions refuted and logged. research build.py ok, check_md_links ok.",
      "Candidates still keep collecting. No blog post: reduced review pass.",
      "Hearth & Horizon, slug the-float-test. Text only: audio 423 MB over the 400 MB cap. node --test 11/11. Story assumes the EU ergot limit of 0.02% and says to check the current text.",
      "Campaign 1 (platform, published-base-url.mjs) 8/8 caught. Campaign 2 (check_inpage_refs.py) 7/10 caught; 2 gaps (default ROOT, exit 0 on clean tree) guarded by new tests, 1 equivalent (argparse description). No real defects found.",
      "Critique mode. No backlog ids touched. Fixed the null pr in the #10937 record that broke validate on main.",
      "Explore idea: seeded property tests for ai-bookkeeper planBills (billpay.mjs), previously fixture-only. 450 random cases pass; no bug found. Next candidates: forecastCash, depositSchedule.",
      "Project hearth-and-horizon, piece the-coal-charity (text only). node generate.mjs and node --test (11/11) run in ventures/hearth-and-horizon.",
      "Property test for prepaid.mjs, 500 random items, passed first run. Flagship next: not rewritten (no item landed).",
      "Opened aerolog-scaling programme; local checks: pytest 9 pass, programme_check, homepage build, md links all ok. CI not waited on.",
      "saints-by-candlelight episode 44, hannah-and-the-prayer-at-shiloh, text only (audio 423 MB over cap).",
      "lowcomm-training milestone 5i: M=16 median/trimmed sign-flip cost; result unresolved at 3 seeds, logged honestly. Homepage build ok, md links ok.",
      "Explore idea: actions-continue-on-error-check (gap in actions-* family). 8 unit tests pass locally; run_venture_tests.py ran 0 suites (python-only venture not picked up).",
      "Critique mode (no agent-owned backlog item workable). main_health.py found check_post_frontmatter red: post from #10842 merged without front matter. Fixed. No blog post: one-line fix; no backlog ids touched.",
      "No registered RUC reachable; digit rule from search summaries of open-source implementations; pinned on hand-computed 80016875-5 and disclosed. Mandate dates from press excerpts. No separate agent doc.",
      "Critique mode. main_health 23/23 green; promptctl validate red on the ventures record for PR 10937 (pr null). Set pr to 10937; validate ok. No backlog ids touched.",
      "Flagship 1 item 9 (2027 revenue procedure) not out and irs.gov refused by proxy again; took changepoint-detector open item (multiplicative season on a real series). New test passes; full venture suite started in background but not confirmed before merge.",
      "Critique mode. My fix (tag friction keys for deleted files) was landed identically on main by a concurrent run before I merged; I took main's code and dropped my duplicate post and test. Nothing else shipped. main_health 22/22.",
      "Ran only the new node test (passes); full venture suite not run. No venture-preflight (no new venture).",
      "Explore: ai-crawler-access-check CLI table alignment fix + llms.txt. No agent doc written (small change).",
      "Explore idea: allowance-bench.mjs, counted lumber order vs two rules of thumb (ROADMAP research thread). Did not run full venture suite or write an agent doc; only the new test.",
      "Critique mode. No backlog ids touched. promptctl validate fails on another run's record with null pr (2026-10-27-session_01EhTJVLbgey8RhToyfyWUyL.json), and one prompts unit test fails; not mine.",
      "irs.gov refused by proxy, web search found no 2027 rev proc. Swept beancount_reds_importers, beangulp, maybe fixtures (30 files); one fault fixed (Fidelity cash export). Full ai-bookkeeper node suite 1590/1590 pass locally. venture-preflight and run_workflow_locally not run; CI is the check.",
      "research.test.mjs 12/12 pass locally. Flagship 1 (ai-bookkeeper) skipped: remaining items need real exports or irs.gov (403 via proxy). Mautic fixtures read via sparse clone, nothing copied. venture-preflight and full CI not run locally.",
      "ai-bookkeeper saturated (113 commits in 2 days; 2027 revenue procedure still blocked, irs.gov 403). Took league-schedule-generator: eval/fuzz-build.mjs, 3,200 random leagues all valid, no fault; pinned by fuzz-build.test.mjs (passes locally). Small slice, no product fault found.",
      "redteam on ventures/ai-bookkeeper/billpay.mjs: 8 mutants, 6 caught, 2 gaps (default reserve; late fee on unfit bill) closed with 2 tests; no real defects found. Scheduled prompt asked for venture work; router drew redteam, applied to a flagship.",
      "Ecuador page; 882 einvoice-preflight tests pass locally. Rules from libraries/vendor guides, SRI sheet unread.",
      "Creative track, hearth-and-horizon, slug sixty-one-point-three (pasteuriser probe at altitude). Text only: audio 423 MB over cap. generate --check clean, 11 node tests pass. Numbers recomputed in python (bp 93.39 C at 1950 m, true 61.28 C, 9.67 vs 9.28 kWh).",
      "Idea: property test for ventures/ai-bookkeeper inventory (cost conservation, both methods). Passed; no bug found. Small slice.",
      "pairing.test.ts 13 pass; simulation: second-option bias 0.5 hybrid 0.574 -> 0.666 (shipped 0.657), bias 0.3 0.799 -> 0.793 (noise). Full run_workflow_locally --for-changes was started but not awaited; CI on the PR is the check. 2027 IRS rev proc still not out (web search).",
      "Tax-site hosts (irs.gov, state revenue sites) returned 403/000 through the proxy and the 2027 revenue procedure is not out, so ai-bookkeeper items needing outside data were skipped; took changepoint-detector instead. Real series from the local statsmodels install. us-inflation.test.mjs passes (2); full venture suite was started in the background.",
      "Peru and Argentina pages with RUC/CUIT check digits. Search excerpts only (no page fetches). Checks: einvoice-preflight node --test *.test.mjs (839 pass, 0 fail); country-page More lists and hub/index/sitemap updated.",
      "hearth-and-horizon, Little Lamps: andrew-and-the-nets (text only, audio cap 423 MB). node --test 11/11. Blog post added.",
      "Scheduled run; changepoint-detector suite exceeded 300s baseline so target was redrawn under platform/. Catch rate 2/8 -> 8/8 after guards. Most important gap: the DISTRIBUTE_BLUESKY live gate (posting to a public account) had no test of the off/missing-credential paths.",
      "Target platform/ci/ci_starvation.py: 8 mutants, 7 caught, 1 equivalent. 2 real defects patched with tests first; 69 tests pass.",
      "Local: node --test ifc/cli/dxf tests, 44 pass. Real buildingSMART IFC files found mesh-wall and unit bugs.",
      "Five platform/ci targets, 36 mutants; 10 escaped before (figureless_projects CLI untested, sync_tree_counts main exit codes, branch_cleanup message/param shapes), all caught after new tests. No real defects found.",
      "Explore track; idea: DXF block symbols (most CAD plans) were skipped, now read via block bounding boxes. dxf/cli/page/engine tests 95+14 pass locally. Hand-written blocks only; real architect DXF still open.",
      "Colombia and Chile pages with NIT/RUT check digits. First claim (Colombia digit catches every single wrong digit) was wrong: remainders 1 and 10 both give 1; measured 3,015/162,000 and pinned. WebFetch hosts were blocked (ENOTFOUND), so facts come from search excerpts and are flagged on the pages. Checks: einvoice-preflight node --test *-mandate.test.mjs + hub + new module tests (366 pass); full venture suite had 4 cross-link failures, fixed by linking the new pages from every country page; widgets in headless Chromium; check_post_frontmatter, check_jsonld, check_heading_order, check_md_links clean.",
      "Flagship 1 (ai-bookkeeper) item 9. irs.gov refused by proxy, so 2027 figures unavailable; shipped --tax-table instead. estimatedtax.test.mjs 25 pass locally. Full CI/preflight not run here.",
      "creative track; hearth-and-horizon piece the-grandmothers-sorghum (seed-store germination test, regeneration threshold), text only (audio over the 400 MB cap). Intervals and probabilities recomputed in a script; node --test 11 pass.",
      "First PR (#10822, a full Ecuador page) duplicated PR #10821 landed minutes earlier and was closed. Salvaged the one new finding: establishment digits of a 13-digit Ecuadorian RUC are unchecked (26/117 and 35/117 single-digit typos pass), as a test and README line. Force-push was denied, so the branch carries a merge that resets its tree to main.",
      "Redteam on patent-maintenance-fee-planner/usage.mjs: 7/8 caught, 1 gap (writeOptOut default) guarded. The same usage.mjs is copied into ~207 ventures; the default is likely untested in many.",
      "New H&H story The Fifth Asking (text only, audio cap), README/BIBLE/pages regenerated, node --test 11/11, blog post. Later firing of the same session id (2026-10-27): H&H story The Coat on the Bell (text only, audio cap), BIBLE line, blog post, pages regenerated, node --test 11/11. Flagship venture items all wait on real exports and sample-repo sweeps are saturated, so no product slice was honest to ship.",
      "Target wall-framing-takeoff/ifc.mjs (new IFC reader). 12 mutants, 7 caught (0.583 before; tally 0.636 after one equivalent). 4 gap tests added, rerun catch_rate_after_fix 1.0. Real defect: one-line IFC files kept only the first entity; fixed with a quote-aware statement splitter. Campaign takes ~13 min because the suite includes engine.test.mjs.",
      "node --test '*.test.mjs' in ventures/wall-framing-takeoff: 253 pass. Engine, CLI, budget only; no page control. Venture preflight not run (no page change).",
      "Checked Bulgaria and Luxembourg: no change since the pages (no outcome found 2026-10-27). Found Spain's B2B order (BOE 5 Oct 2026) missing from the catalogue; sources are search excerpts, BOE unread (chd.lu and kpmg.com unreachable). node --test on the Spain and hub tests: 15 pass.",
      "shift-roster-builder: openShiftWeight on CLI (--open-shift-hours) and page select; new cli/page tests pass. page.test.mjs call-out table test fails (24 vs 22) with and without the change on this container (exact-search time limit). 2027 IRS rev proc still not out; irs.gov refused by proxy.",
      "Scheduled run. Every state tax site, irs.gov and cdtfa refused through the proxy (403), and fixture sweeps (maybe-finance etc.) were already done, so no outside-data flagship item was open. Landed retirement.mjs (SEP-IRA and solo 401(k) limits) with 4 passing node tests and a CLI smoke test on made-up rows; limits are from memory and flagged in every result. Not run: venture-preflight, full suite.",
      "First target shift-roster-builder/calc.mjs: baseline timed out at 300s (glob suite), abandoned. Second draw platform/distribution/precommit.mjs: baseline red (real defect, fixed). Catch rate 4/8 -> 8/8 after tests. Ran node --test platform/distribution/precommit.test.mjs: 4 pass.",
      "Flagship 9 slice: eval/fuzz-more.mjs; 6 seeds x150 + seed 9 x60 clean (0 invalid); fuzz-build.test.mjs 4/4 pass locally. Synthetic only; no fault found.",
      "Low-value run: probed 22 amount spellings, no fault (one apparent diff was my arithmetic). IRS 2027 rev proc not out per web search. No venture-preflight needed (test only).",
      "Mexico CFDI page + mexico.mjs RFC check. Initial assumption that mod 11 catches all single substitutions was wrong; measured 60/385 missed and pinned. Checks: node --test mexico*.test.mjs e-invoicing-mandates-by-country.test.mjs (20 pass); widget in headless Chromium over http.",
      "Second corner ss_100C_1v60 (efabless mirror liberty), OpenROAD 26Q2 from nix cache, Yosys 0.33 apt. A PyPI openroad wheel was not installed (unvetted code). Predictions 1 refuted, 2 half refuted, 3 held.",
      "Ran lapseSweep.simulation.test.ts locally (7 passed). No agent doc written; the doc section carries the table.",
      "Flagship 4: driftWarning under --drift. Threshold unmeasured; one real series."
    ]
  },
  "asks": null,
  "snapshot": null
}
