{
 "kit": "s2s-bench-v1",
 "round": "two-frontiers-r1",
 "exhibit": "forty",
 "licence": "CC BY 4.0",
 "built_utc": "2026-09-06T04:17:28Z",
 "post_seal_reporting_additions": "PREREG A16 (2026-09-05T18:48Z), A17 (2026-09-05T20:40Z), A18 (2026-09-05T21:53Z), A19 (2026-09-05T22:57Z), A20 (2026-09-06T00:06Z), A21 (2026-09-06T00:52Z) — report-only amendments stamped after the run's seal (tag seal-r1, the window's close 2026-09-05T18:15:00Z), each of them changing only what the scorers print and what this kit ships. The scorer shas below are therefore post-seal; prereg-index.md's post-seal-drift section names which row each amendment moved, and the freeze index's own shas are unchanged.",
 "window": {
  "opened_utc": "2026-09-05T14:13:33Z",
  "closed_utc": "2026-09-05T18:15:00Z",
  "_note": "PLAN §2 fence 3: the window is stamped UTC at BOTH ends, here and in the kit's index.json."
 },
 "files": [
  {
   "file": "legA-gates.json",
   "bytes": 33465,
   "sha256": "5e52c1e9ca9fb4b1397afb7c292523ffe6346da74bef5057faca3259a08369a2",
   "what": "every Leg A gate, per arm, against the floors frozen 2026-08-15",
   "state": "PUBLISHED",
   "scrubbed": {
    "repo_relative_paths": 2,
    "engine_name_mapped": 3
   }
  },
  {
   "file": "legA-queries.json",
   "bytes": 16356,
   "sha256": "da86ee292ca6666648cf64c1e064d872ced044daa21cfcc78fe7fc2aae09442a",
   "what": "the 26 canonical asks verbatim and the 34 substituted queries (D-20260905-09 (b))",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "legA-g4.json",
   "bytes": 33793,
   "sha256": "776eaf6fef0096ea3d11d46b3c1fe15498c25452e0d31ad8919ec96944993284",
   "what": "G4 groundedness per arm, per judging family, with the recusal count",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "pairwise.json",
   "bytes": 9143,
   "sha256": "91c427876f669985603d23ba99907d5fb97ebd3ce525d25b0415b0bcf12f4df0",
   "what": "the head-to-head: the collapsed per-case observations, the pooled rate, the 36-cluster interval, the per-judge rates, the order-flip rate and the per-case table",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "pairwise-key.json",
   "bytes": 25861,
   "sha256": "a2f1225d48e42c050694f52930817f85354f0dccc5921fa535b8f8042fe4eb7c",
   "what": "which arm sat in which position on each sheet — the join the blind withheld until scoring",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "legC-cells.json",
   "bytes": 71753,
   "sha256": "c103207f33a4098de999b150d59105525200bdf8c4880048ecad8fe58b106c67",
   "what": "Leg C by tier × depth: recall, abstention, fabrications, NOT-CLASSIFIED",
   "state": "PUBLISHED",
   "scrubbed": {
    "repo_relative_paths": 1
   }
  },
  {
   "file": "legC-cells-think-true.json",
   "bytes": 23827,
   "sha256": "bbc44df8c5e172180a0a72d56224da647b0b9021d373a6fbd640c7b741eb04d4",
   "what": "the local seat's think:true polarity control (PREREG A3 FOLDED (2))",
   "state": "PUBLISHED",
   "scrubbed": {
    "repo_relative_paths": 1
   }
  },
  {
   "file": "legC-needles.json",
   "bytes": 8569,
   "sha256": "7440beee268378c9b1051a4375d26d5a93a9333f2113016231aac0c68b70552e",
   "what": "the drawn needles and absent topics, with every screen that ran",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "legC-fixture-manifest.json",
   "bytes": 17845,
   "sha256": "da4025a7c9bfde59fbfd5d6ca8b0b648a1b8cbbc8f81055bfe991e2073015b10",
   "what": "the 36-item grid's shape, its unique-fraction table and its stamped sha — one row per item with its tier, depth, kind, filler window, needle and PROMPT SHA256; the prompt text itself is not published (it is reducible from the public-domain filler, the recorded window and the needles, and the sha is what makes a reproduction checkable)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "counting-rules.json",
   "bytes": 2146,
   "sha256": "e214226f7bbe7582714a87d70388bedf07801807dc422e0912a52f5790ec2bb6",
   "what": "every registered denominator and every counting rule, as data",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "seats.json",
   "bytes": 2446,
   "sha256": "ccb6289bb07726fc822b0aa606e48d01c1ec9e71e037e4491a0f1abf78f2d3c7",
   "what": "the seven judging seats, their families and their cost states",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "bill.json",
   "bytes": 7580,
   "sha256": "0d61c8f18300068566705a4be967dd778770920960097b13db028111f96a20d1",
   "what": "the bill in four cost states, never collapsed",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "seal-manifest.json",
   "bytes": 1901,
   "sha256": "a88514006ae20f6e574b38a6d0019a208d6c02fd1e21dd2995c7d70a076f4635",
   "what": "the shas of the bank, the fixture and the prompts (the bank itself is NOT published)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "prereg.md",
   "bytes": 63660,
   "sha256": "2b58a71212380e6ea76275cb299a724bef7c5b201bd010b4948d065e3d051736",
   "what": "the pre-registration, frozen before the first scored call, with every amendment — the PUBLIC copy (prereg A4.3), cut from the sealed file BY CODE (`public_copy.py`, in this kit): byte-identical to the sealed file except that the human co-signer's name reads \"an operator\" and the production port and home-directory paths are described, not printed; the sealed file's sha256 is in seal-manifest.json and prereg-index.md",
   "state": "PUBLISHED",
   "scrubbed": {
    "engine_name_mapped": 3
   }
  },
  {
   "file": "prereg-index.md",
   "bytes": 12904,
   "sha256": "72b8788cfa9e6bb5bd38e4777d8e5c9e4575a17868ef206336500fa87321ab1b",
   "what": "every artifact the prereg names, with its sha256 at the freeze",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 2,
    "engine_name_mapped": 2,
    "co_signer_voice_mapped": 1
   }
  },
  {
   "file": "legC-score.py",
   "bytes": 44106,
   "sha256": "1f5635fcffb6eb8aaf1c9cc6157be717bb374ecc10772b6685d587b810a1e500",
   "what": "Leg C's scorer as CODE: both normalisers, published so the neutrality claim is readable",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "score.py",
   "bytes": 44179,
   "sha256": "bdf9885226e1ae2cb1d6bfae478f6100cfc074c6d3a605296474f88d577035ff",
   "what": "Leg A's gate scorer as CODE",
   "state": "PUBLISHED",
   "scrubbed": {
    "engine_name_mapped": 1
   }
  },
  {
   "file": "pairwise-score.py",
   "bytes": 24362,
   "sha256": "6cde0471edef449cc7005d19f085c1c0e2cb359651a2185ba256eb290b3d3b22",
   "what": "the head-to-head scorer as CODE — there is no rating function in it",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "design-floors.py",
   "bytes": 9857,
   "sha256": "34eabb8a9ebd01d408632218a1aba96e0f86a0c20082e50c651862b622e4efec",
   "what": "the FLOOR READER as CODE — RUNNABLE: it parses every Leg A floor out of the frozen design text beside it, so a floor cannot be a number somebody typed into a scorer",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "prereg-integers.py",
   "bytes": 7386,
   "sha256": "7831d3abb00fa5fd36da43db59f7190032f46efe11c0e8288ccab87a44a7e226",
   "what": "every registered denominator in ONE place, as CODE — shipped to be READ: it is the refusal each scorer makes before it scores",
   "state": "PUBLISHED",
   "scrubbed": {
    "co_signer_voice_mapped": 1
   }
  },
  {
   "file": "article-fill.py",
   "bytes": 184025,
   "sha256": "7e11e6a9cde77f457997e81a3c6b98851910834339c7ccaeea312a00debb8e5d",
   "what": "the script that writes every number into the article's prose, as CODE — RUNNABLE against this kit's own result files: no figure on the page is typed by hand, and this is the proof",
   "state": "PUBLISHED",
   "scrubbed": {
    "co_signer_voice_mapped": 9
   }
  },
  {
   "file": "fills.json",
   "bytes": 137878,
   "sha256": "5aa603f3ba96da9d7bb8028fe98e46af199129a623174ed96625d1878f9002e4",
   "what": "every filled value the article prints, with the result-file path it was read from — the join between a sentence on the page and a cell in this kit",
   "state": "PUBLISHED",
   "scrubbed": {
    "co_signer_voice_mapped": 5
   }
  },
  {
   "file": "public-copy.py",
   "bytes": 11757,
   "sha256": "ae0f17a6b0854d29f650134cc239abd014175406b767535a419918c84c352fb4",
   "what": "the cut that makes `prereg.md` from the sealed file, as CODE — RUNNABLE: it applies A4.3's three substitutions and nothing else, and it never stores the name it removes",
   "state": "PUBLISHED",
   "scrubbed": {
    "co_signer_voice_mapped": 3
   }
  },
  {
   "file": "receipts/2026-09-04-astra-effort-high.json",
   "bytes": 795,
   "sha256": "d52b5675b07741c478b59f1f0ffc7d89e81bde8bc543e0b4e33496b7a8596344",
   "what": "a receipt filed before the seal",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/2026-09-04-astra-effort-low.json",
   "bytes": 794,
   "sha256": "001f1264d6ccd02f8e3ec36a5e53b9f7e19cc79415386b7fee319034f791fded",
   "what": "a receipt filed before the seal",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/2026-09-04-astra-smoke.json",
   "bytes": 793,
   "sha256": "62cc458d80949af2e72ee5ecb8fec20c3e094341c12dcfbff1883e1d2789ccd7",
   "what": "a receipt filed before the seal",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/2026-09-05T140417Z-cli-claude-fable-5-1-g-quota.json",
   "bytes": 12757,
   "sha256": "ca75274f846191f7de23c623100b7a23a866f4f05d233b88f4b09671e74f7baa",
   "what": "the G-QUOTA receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 7
   }
  },
  {
   "file": "receipts/2026-09-05T140422Z-cli-claude-fable-5-1-hook-nonce.json",
   "bytes": 7054,
   "sha256": "8dd148f3589e193f707e85280fbfbfbc238097b6be93a34a16fd62ba362adce4",
   "what": "the G-TOOLS receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 2
   }
  },
  {
   "file": "receipts/2026-09-05T140425Z-cli-claude-fable-5-1-session-persistence.json",
   "bytes": 12441,
   "sha256": "c637080ac02eb3ae61c126cb157e0a3bde72bb6f982fc4cb46c9bd9750144889",
   "what": "the G-TOOLS receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 9
   }
  },
  {
   "file": "receipts/2026-09-05T140429Z-cli-claude-fable-5-1-g-tools.json",
   "bytes": 16030,
   "sha256": "859b327d9ff7fff1660a2afc7ef3f845e3e8981ecdfa251d9279309276e88afb",
   "what": "the G-TOOLS receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 9
   }
  },
  {
   "file": "receipts/2026-09-05T140431Z-openai-gpt-6-astra-g-tools.json",
   "bytes": 6258,
   "sha256": "f5715a2870845b7dc25b4202918439621b4a222d675e6845d00657473140d681",
   "what": "the G-TOOLS receipt for openai-gpt-6-astra",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 2
   }
  },
  {
   "file": "receipts/2026-09-05T140442Z-cli-claude-fable-5-1-g-effort.json",
   "bytes": 13560,
   "sha256": "2ec296b3ccadbc47a706a6cf41f4e65d11ad6a3ab46cc4f7a011317cfe75474e",
   "what": "the G-EFFORT receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 8
   }
  },
  {
   "file": "receipts/2026-09-05T140448Z-openai-gpt-6-astra-g-effort.json",
   "bytes": 5859,
   "sha256": "9e63f11891e2595cb896e278398529549336bfa56fc0e973b72e2ca28711a2e4",
   "what": "the G-EFFORT receipt for openai-gpt-6-astra",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 3
   }
  },
  {
   "file": "receipts/2026-09-05T144532Z-cli-claude-fable-5-1-g-quota.json",
   "bytes": 12799,
   "sha256": "eff8a30ad79551a30256314af0ab071ad93e4bc776027f58b8df1335f5a5537b",
   "what": "the G-QUOTA receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 7
   }
  },
  {
   "file": "receipts/2026-09-05T144819Z-cli-claude-fable-5-1-g-quota.json",
   "bytes": 12799,
   "sha256": "db682e5b4571867766213b1ab1006254942f499237319e56b3374f5df661e482",
   "what": "the G-QUOTA receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 7
   }
  },
  {
   "file": "receipts/20260905T043729Z-ollama-shelf-read.json",
   "bytes": 1107,
   "sha256": "c8a073fae8a715db9361c2385f30735782468a0243fd03df790cf3cc7ed0c0da",
   "what": "a receipt filed before the seal",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T043934Z-outside-prereg-read.json",
   "bytes": 11950,
   "sha256": "f6f2fd61003446fbaac681357916b07685ba231abd395263948dff9cf374cddd",
   "what": "the G-OUTSIDE-READ receipt for mistral-large-3-675b",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T140442Z-cli-claude-fable-5-1-double-canary.json",
   "bytes": 441,
   "sha256": "b056d020c2a21e96e8c60fd2eaf5eaf22439b418efaa99bcdb13bf07605e0672",
   "what": "the G-EFFORT / Leg C context integrity receipt for cli-claude-fable-5-1",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T140448Z-openai-gpt-6-astra-double-canary.json",
   "bytes": 439,
   "sha256": "6f003d47092701e04ec34ab25125f378c955d5584bd281c8b38cd8dc865842f0",
   "what": "the G-EFFORT / Leg C context integrity receipt for openai-gpt-6-astra",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T140451Z-local-gemma4-26b-double-canary.json",
   "bytes": 438,
   "sha256": "652d8e83c90446d33e140dd46fd43ab71de371a2b71e62866811fb1f9a8a1e9b",
   "what": "the G-EFFORT / Leg C context integrity receipt for local-gemma4-26b",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T144854Z-cli-identity-census.json",
   "bytes": 917,
   "sha256": "70893b6d505547f96d908ac7488f9ac457deee4911b0f5e3e47a5ce058b1ba0a",
   "what": "the G-ID (per cell) — the identity census over every CLI stream to this minute receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T181859Z-g-pen.json",
   "bytes": 407,
   "sha256": "5538a1db43d99cdc953120e8be6719c98ea29d3fa817192f5a59919aedded649",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T181859Z-hostile-read.json",
   "bytes": 389,
   "sha256": "96fb1a1d436be2911d9536ba58212b90577aee0864d4ba136a529d755700c69e",
   "what": "the hostile-read receipt — SUPERSEDED by receipts/20260905T224559Z-hostile-read.json (append-only; the newest stamp is the current one)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T195339Z-hostile-read.json",
   "bytes": 1293,
   "sha256": "08e9a397e1813a2ebf580e06f71d7c8c23acbb4d6b487f06d41f6d084bec44cc",
   "what": "the hostile-read receipt — SUPERSEDED by receipts/20260905T224559Z-hostile-read.json (append-only; the newest stamp is the current one)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T195711Z-hostile-read.json",
   "bytes": 1324,
   "sha256": "9b0cc1f4aff4ce63fe693f4fccb44a5e13de4f73f98cd271a0d0857d243b55d6",
   "what": "the hostile-read receipt — SUPERSEDED by receipts/20260905T224559Z-hostile-read.json (append-only; the newest stamp is the current one)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T203537Z-hostile-read.json",
   "bytes": 1222,
   "sha256": "642f7f4cddd0e66dfa65e00e428cf2543f50fa501922622f54567172ea47246a",
   "what": "the hostile-read receipt — SUPERSEDED by receipts/20260905T224559Z-hostile-read.json (append-only; the newest stamp is the current one)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T210832Z-hostile-read.json",
   "bytes": 2434,
   "sha256": "63fbd81b87600aff839caea37271e71e48cf9222c754cab6f3df95301e545610",
   "what": "the hostile-read receipt — SUPERSEDED by receipts/20260905T224559Z-hostile-read.json (append-only; the newest stamp is the current one)",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T221500Z-operator-read.json",
   "bytes": 1374,
   "sha256": "f4aa07f92387c6cbb98b0d424461e1ed5669c2a0818f47b2cbe075a6e4a14f8e",
   "what": "the OPERATOR-READ receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T224559Z-hostile-read.json",
   "bytes": 27999,
   "sha256": "3b0d5f50bcf3a410b1c722df3e19b8a38b34d8a2b5ba72a8c7a4f5449438846b",
   "what": "the hostile-read receipt — CURRENT",
   "state": "PUBLISHED",
   "scrubbed": {
    "port-shaped literal → \"a production port\"": 1,
    "a production port written as a bare number → \"a production port\"": 2,
    "co_signer_voice_mapped": 6
   }
  },
  {
   "file": "receipts/20260905T230427Z-g-pen.json",
   "bytes": 913,
   "sha256": "c9637b68193ab0267939676229634ea4dab6ab619aef56b0221cfd8b70e50772",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260905T231355Z-g-pen.json",
   "bytes": 913,
   "sha256": "bb918a5e283bb0fc0e200ae213d6452b9df411aad57102abffff14e0cf045350",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T001050Z-g-pen.json",
   "bytes": 1083,
   "sha256": "42a1130008a081c35e9b0a9a737057f450413ba0c46b6d35b05209012c61d605",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T003223Z-g-pen.json",
   "bytes": 1083,
   "sha256": "95d2af9f0fdbcab46b264256101017767deeb9215586bd8fa2d5c769dc2dd0b6",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T005938Z-g-pen.json",
   "bytes": 1083,
   "sha256": "4988fbab9282d65dfaa23968f7db03358a0b5eb513e7dee3fbe664095119aa5d",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T010732Z-g-pen.json",
   "bytes": 1083,
   "sha256": "949925615d4765865d59d9b8174c8d6bb0929f3244aeb667847e65bf7e54b28e",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T011522Z-g-pen.json",
   "bytes": 1083,
   "sha256": "9f8b34ffb51dacc4bae8386265ba607e61bee77431f16509898c63e197a68fb1",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T012303Z-g-pen.json",
   "bytes": 1083,
   "sha256": "525a16661bb831de3d7cc30f72f6326c47f3a9ce38b2dd211c3643391f355bdc",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T012814Z-g-pen.json",
   "bytes": 1083,
   "sha256": "ca3fbfece474ea723867abff744590ab15118867a3448184e39b9c5dc85c694f",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T013439Z-g-pen.json",
   "bytes": 1083,
   "sha256": "6b6090eb7b170f30255325cb054f9c222dd076a8830e251d3f3038c14bde3e51",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T013912Z-g-pen.json",
   "bytes": 1083,
   "sha256": "23e0366a2d789a2ab9beedb6625d1bd8e99b7dfb43e429b913390f3ad07f0bb6",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T014310Z-g-pen.json",
   "bytes": 1083,
   "sha256": "2c5a67ad855840521fd37835e1d03ccd3ccc109d6a9aeeb649974118a69c357a",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T014743Z-g-pen.json",
   "bytes": 1083,
   "sha256": "3fa93919c632d6bdd9dc2badf3d0bd29b79a44e5d51bb26c7d54006a98fc688b",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "receipts/20260906T041725Z-g-pen.json",
   "bytes": 1083,
   "sha256": "68e019ac9ee500f51f336eac4fcc3caa85428c75d38e6434700131d8c2349a53",
   "what": "the G-PEN receipt",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "readers/v1-coldscroll.md",
   "bytes": 42093,
   "sha256": "e4fb9699b06b492a9a58f6b45736e3b17e9f5a1ee98ce5800e4796dd736eaaaf",
   "what": "the coldscroll reader's critique of draft v1 of the article",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 1
   }
  },
  {
   "file": "readers/v1-hostile.md",
   "bytes": 50019,
   "sha256": "889b5ac2000690c71f01b7e2b3348ccf6e3544087f43fd2a4376f505926a1750",
   "what": "the hostile reader's critique of draft v1 of the article",
   "state": "PUBLISHED",
   "scrubbed": {
    "co_signer_voice_mapped": 4
   }
  },
  {
   "file": "readers/v1-numbers.md",
   "bytes": 84545,
   "sha256": "7a81d735fc6eed75182ca69b4dc71c27bd80b582af0c873e8833008ae0e5783d",
   "what": "the numbers reader's critique of draft v1 of the article",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "readers/v1-stranger.md",
   "bytes": 30578,
   "sha256": "d48a5375040b4007276c93d0dd33bb166b25cf4c5ad58a7a77c0c89e05da3f86",
   "what": "the stranger reader's critique of draft v1 of the article",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "readers/v2-numbers.md",
   "bytes": 159608,
   "sha256": "359942b3e1fb2bce6e82e76eab44a26b6597ebb7e210f634fd19d3d7bb9067a9",
   "what": "the numbers reader's critique of draft v2 of the article",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "readers/v2-stranger.md",
   "bytes": 36760,
   "sha256": "87b7df5d3df8d3115dc3a4b4fce21d61565c7a1890d22038510d06a112d3ac24",
   "what": "the stranger reader's critique of draft v2 of the article",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "readers/v3-coldscroll.md",
   "bytes": 44170,
   "sha256": "c618d060f822a0ea24031f5b0133c1c1ba91dc596eca14634ffcf8731fd98948",
   "what": "the coldscroll reader's critique of draft v3 of the article",
   "state": "PUBLISHED",
   "scrubbed": {
    "absolute_paths": 1
   }
  },
  {
   "file": "readers/v4-numbers.md",
   "bytes": 120564,
   "sha256": "c59bd77564f4c2ba83dccb507d246a72086a5b1afbb592a288625f5fbfbbad57",
   "what": "the numbers reader's critique of draft v4 of the article",
   "state": "PUBLISHED",
   "scrubbed": {}
  },
  {
   "file": "README.md",
   "bytes": 13463,
   "sha256": "06f67ac1268bb86b9f40502892168c2842bcc2e3bff79433b3a2e3fc7e3b80cd",
   "what": "what this kit is, its licence, and how to check it",
   "state": "PUBLISHED",
   "scrubbed": {}
  }
 ],
 "absent": [],
 "withheld": [
  {
   "file": "gen-needles.py",
   "sha256": "0609d235898902829a8b9bafa50a9e6799ab98dffc19708458a46acdaf4f5775",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 54, 116, 118, 119). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "build-fixtures.py",
   "sha256": "d7020747159d7bc8669d99512d8a1db81bc1bd467e1b4c78280c293224adf572",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 6, 43). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "BENCH-DESIGN-offload.md",
   "sha256": "23f32aba95fff6373b1a5e8d2d758cec077e6e9cdbd0466081888fd82625c920",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 48, 61, 158, 183, 194, 298, 299, 425, 426, 431, 448, 449, 450, 457, 460, 466, 467). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "sample-record.py",
   "sha256": "f40e67c91d9d4c110baa7ebb6899bf9eb5fbd18cf5b8ecda6a943e63d5fa755d",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 68, 434); one of this round's own forbidden literals (line 77). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. prereg-index.md recorded it at the freeze as 0a969fee…; the file has changed since, by design (post-seal reporting drift, PREREG A16), and the sha256 beside this row is the file as it is now — both shas are on the record. A redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "screen-literals.py",
   "sha256": "f600a4e6bd9493981bf5ebee3881cd204e9456404df022409f887d67803ccf34",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 17, 18, 19, 20, 30, 55, 56, 204, 205, 206, 208, 209, 210, 211, 212, 213, 215, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 230, 234, 235, 236, 239, 242). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "receipts/2026-09-05T140434Z-local-gemma4-26b-g-tools.json",
   "sha256": "02c5b9c1387ba9dcc3b65f4d0b92596a69d8eb4dadf5f1cf98e2d3e39fc6856e",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 144). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "receipts/2026-09-05T140451Z-local-gemma4-26b-g-effort.json",
   "sha256": "7e78750b41d0c2549aae90d4c9b742726213bec0624b57248a4d3775104e6381",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 117). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "receipts/2026-09-05T140902Z-openai-gpt-6-astra-scaffolding-delta.json",
   "sha256": "c7349c4e79edfd881cc38a46344510941faa3329815e653fc6d5fb4197e7bf4c",
   "why": "the round's own screen refused this file: a card-shaped number that passes Luhn (lines 127, 1249, 1256, 1323). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "receipts/20260905T130933Z-g-id.json",
   "sha256": "6881ba362b2f58395645c3c664ff91919e14c636d56c24483cd5c887b5d65a41",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 25). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "receipts/20260905T141519Z-g-egress.json",
   "sha256": "1b75b9b2b66b3f19d96645869702fdc4e1dc3ff738e1855571a0d70137ae2b4b",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 180). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "readers/v1-voice.md",
   "sha256": "a2c93f7564869493ebacd179909393f54e21649e484f8058c87064ca6f706fb6",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 607). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "readers/v2-voice.md",
   "sha256": "a020936264aa1bfcb9224d5c13dc70ab8addccc265f54ee476358e7f64134640",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 282). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "readers/v3-hostile.md",
   "sha256": "b26781877469f944be6c90582a6395297bd95fc1fe622c2ecd171484e35f11d8",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (line 346). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "readers/v5-hostile.md",
   "sha256": "97ca1917c186f2c82a2f0b3d34a17a03fc1246e0ebb9699f05d37261bd48fdca",
   "why": "the round's own screen refused this file: a name the hub's publication gate refuses (lines 95, 675, 678); one of this round's own forbidden literals (lines 95, 675). The sha256 beside this row is of the file AS IT IS ON THE BENCH, so it stays checkable; it is not edited to pass, and it is not dropped without saying so. This file postdates the freeze (written during or after the round), so the sha256 beside this row is its only registration; a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "results/sent/",
   "sha256": "85e105aa6ee03a1de764bdccab88e83ee513443a9ae4dc2f0bdee69320d726cc",
   "why": "the FINAL record of every call — 748 files, 6,287,064 bytes. Each holds the prompt it sent, and a Leg A prompt is the bank's licensed rulebook passages. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it. The GATE RESULTS computed from these records are what this kit publishes."
  },
  {
   "file": "results/attempts/",
   "sha256": "8eb39fa5729223d8824cd2df6d1d3b426ce3262c902b7b7c0222c4904181a4b9",
   "why": "every attempt, including the ones that failed and retried — 724 files, 6,253,914 bytes; append-only, and withheld for the same reason as the final records: the prompts are in them."
  },
  {
   "file": "results/raw-streams/",
   "sha256": "f045595c26cb97d67e930a0fdcc6b1ade870de56a21ce6b1d2eed3e036538ddd",
   "why": "the CLI arm's raw stream-json — 223 file(s), 1,854,437 bytes. They carry the model's own reasoning text; PREREG §11 quarantines them outside the kit."
  },
  {
   "file": "results/legA/rows/",
   "sha256": "aa868eec33943e2a9ed171efac8ebdcff5ecaf3a387a99d621a426e7820038ba",
   "why": "the Leg A rows files, one per arm and draw — the scored record of every reply. The three replies the page quotes verbatim come from them, each with its own sha256 printed beside it; the rows hold the bank's licensed passages alongside the replies and are withheld for that reason (PREREG A17 (2)). The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/legA/judge/",
   "sha256": "4e89092c4f8f3fc4ad3a788c5c786b496b9ce9af81d3876bc784036fa24f16c3",
   "why": "the groundedness reading's judge rows, one file per arm and seat — every verdict on the G4 table with the judge's own `why` text, which quotes the licensed passages. The per-case × family verdicts ship in legA-g4.json (`per_case_verdicts`); the text stays home. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/legH/judge/",
   "sha256": "8b72c21afbbb2a099e01a10486ec48c002bc2c5f72b871fbcdb61bf53b6ca338",
   "why": "the head-to-head's judge rows, one file per seat — every verdict, its recognition claim and the judge's `why` text, which quotes the passages. pairwise.json and pairwise-key.json are computed from them. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/legH/sheets.json",
   "sha256": "d662c9bb85291c7964cfd642df43d4a2ec8f870d8af7c3c7ceb9178536a52fac",
   "why": "the paired answers as the judges saw them, blind, one sheet per case and order; the answers quote the licensed passages they cite. The key ships as pairwise-key.json."
  },
  {
   "file": "results/legH/manifest.json",
   "sha256": "e89d60c5de32163224cf87662069c5f417f241bd5a8c534b6e9d766a9d78740c",
   "why": "the sheet manifest — the blind seed, the comparison and order counts and the modal-answer rule — which names the bank by a home-directory path and so is described here rather than shipped; every figure in it prints in pairwise.json's registered_shape."
  },
  {
   "file": "results/legC/rows/",
   "sha256": "dcffef969068b9ba86933f7de986a6fba5c068d3eac07105cf1282d84b389216",
   "why": "the filing cabinet's rows, one file per arm and draw — every prompt and reply. The prompts are public-domain filler plus one needle each (2.69 MB); legC-fixture-manifest.json ships every prompt's sha, legC-cells.json every classed reply. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/legA/calibration/",
   "sha256": "05fbe9e441d332c715af1910ff7ac2e473a95c0a8266069795273c99aeef82d6",
   "why": "the G-CALIBRATE rows — the local seat's 102 readings against its own stored citation sets, carrying the licensed passages. The reading prints in legA-gates.json (G_CALIBRATE). The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/legA/warmup/",
   "sha256": "c4255ed6a64db5d0cb22207adb0671f4b14b59d0396d6bcd8b30d34b0de20c1f",
   "why": "the discarded warm-up rows, one per arm and draw, carrying the passages; billed and receipted in bill.json, scored nowhere. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "results/logs/",
   "sha256": "fd2b7a746d9eb6e663e1fdc5c06385bed18c6f3cf77aa5061538af769bea2f57",
   "why": "the harness's run logs, which name the estate's own machines and paths; nothing on the page reads from them. The sha is a manifest: sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it."
  },
  {
   "file": "harness/report_build.py",
   "sha256": "099431a94c3ed39730a97974e7f547e00d73f87e7936e6fdb4cb1467880677af",
   "why": "the internal report builder, whose EGRESS_ROWS constant is the registered egress matrix the page prints (PREREG §10.3); it is a description, not a scorer's output, and it names the estate's own machines (PREREG A17 (2)). prereg-index.md recorded it at the freeze as 6e5ad409…; the file has changed since, by design (post-seal reporting drift, PREREG A16), and the sha256 beside this row is the file as it is now — both shas are on the record. A redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "prereg/rosters.json",
   "sha256": "8cebe204ff60a0da73adab9ce46de292b060bd1e9d98a339158bdeb2300c6df9",
   "why": "the registered roster — arms, seats, the window and the spend caps, stamped before the first call. It names the estate's own instance, so it ships as projections: the window blocks in the scorer outputs and the seats in seats.json; fills.json names it as the source of the byline and the panel shape. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "prereg/panel.json",
   "sha256": "9d6548db5e03ec832515255defb86060712fd858f59a1d899e02946b98251cbe",
   "why": "the seven judging seats as registered (PREREG §7 + A1), the source seats.json is cut from; the file itself carries the seats' transport endpoints. Its own sha256 is in prereg-index.md where the freeze recorded it, which is why a redaction of it would be a re-registration rather than a copy — the substitution it would need is a publication ruling, not a build step."
  },
  {
   "file": "the bank's rulebook passages",
   "sha256": "cdffb8d0850aa93548c20e41953d11fb2a6e0b025d599db2eb6a8d3b2a2bfbf5",
   "why": "480 licensed rulebook passages across 39 titles. The sha is the FROZEN August bank's, the instrument itself; the round's own bank (the same cases with 34 substituted queries) is in seal-manifest.json, and the queries ship in legA-queries.json. The passages are somebody else's copyright."
  },
  {
   "file": "the Leg C prompt text",
   "sha256": "9f97278d8c1db0824eab00bc19ef951560b58617f1a81dadf148f2f0f2ecfa4a",
   "why": "2.69 MB of assembled prompts: public-domain filler plus one needle each. The sha is the fixture's, and legC-fixture-manifest.json ships every item's filler window, needle and PROMPT SHA256 — so a reader who fetches the same public-domain text can rebuild any prompt and check its sha rather than trust ours."
  }
 ],
 "withheld_manifest_sha_rule": "sha256 over the sorted lines `<repo-relative path> <sha256 of the file>\\n`, one per file, over every file in the tree — recomputable by anyone holding it",
 "provenance_notes": [
  "legC-needles.json: the file's sha256 differs from the one PREREG A4/A10 quote (58d614f8…) and from the fixture manifest's needles_sha256 (a sha over a canonical JSON dump at fixture-build time), because on 2026-09-05 a screen-token fix rewrote the file's bookkeeping fields (`screens_passed`, `forbidden_literals_sha256`, each absent's `near_miss_rule` description). The drawn content — every needle, every absent's question, term, action and attribute, the seed, the corpus sha — is byte-identical to the registered draw. Two fixture shas exist and both are right: 9f97278d… is the sha256 of the fixture FILE golden/legC-fixture.json at the freeze (prereg-index.md, and the withheld row for the Leg C prompt text); 76cef1d1… is the fixture's stamped content sha, computed over the manifest's own fields (legC-fixture-manifest.json → fixture_sha256_is_over), and it is the one the seal manifest and all three Leg C result files carry — its being unchanged is the proof the prompts did not move.",
  "receipts/: append-only. Where a receipt of one kind appears more than once (the hostile-read receipts), the newest stamp is the current one and the earlier ones are its history; the page's fill reads the newest."
 ],
 "scrubbing": {
  "shipped_text_map": [
   {
    "what": "the rules engine's package name",
    "reads_as": "the rules engine"
   }
  ],
  "shipped_text_map_why": "the engine's package name is an internal identifier; the kit names it by role and keeps every sha, which is the checkable half (the manifest key is `engine_commit`)",
  "truthful_path_fields": [
   "bank",
   "argv",
   "cwd",
   "cli_executable",
   "raw_stream_path",
   "attempt_file",
   "sent_file",
   "base_url",
   "planted_at",
   "path",
   "projects_dir",
   "prompt_path",
   "receipts_dir",
   "receipt_path",
   "bank",
   "queries",
   "fixture",
   "roster",
   "receipt",
   "legC_filler",
   "_filler",
   "rows_path",
   "previous_rows_kept_at"
  ],
  "repo_relative_path_fields": [
   "bank",
   "queries",
   "fixture",
   "roster",
   "receipt",
   "rows_path",
   "previous_rows_kept_at",
   "attempt_file",
   "sent_file",
   "raw_stream_path"
  ],
  "repo_relative_rule": "a declared path naming an artifact INSIDE this repo publishes as its repo-relative path (the reader's next move is to open it); one that cannot be made relative is outside the repo and gets an opaque id instead. Decided per value, never per key.",
  "opaque_ids_issued": 3,
  "opaque_id_shape": [
   "endpoint-N for an endpoint URL",
   "scratch-N for a local path"
  ],
  "values_published": false,
  "emails": "every email-shaped string and every bare account local part → [REDACTED-EMAIL]",
  "rule": "a path- or URL-shaped string under any OTHER key REFUSES the build rather than being rewritten quietly"
 },
 "not_published": [
  "the bank's 480 rulebook passages (shas only, in seal-manifest.json)",
  "any file listed under `withheld` above — each with its sha256 and its reason",
  "the CLI arm's raw streams (they carry reasoning text; quarantined on the box)",
  "the values behind the opaque ids"
 ],
 "screening": {
  "screen": "harness/forbidden_literals.txt",
  "rules_applied": 46,
  "rules_not_in_the_screen_file": [
   "a port-shaped literal, imported from public-copy.py's own port rule (PREREG A19 (5), applied to the kit by A20 (1)); a Python slice is not a port"
  ],
  "allowances": {
   "rulesage": "the product's own public name, which prereg A4.3 rules ships in the public prereg copy (its three substitutions are the human co-signer's name, the production port and home-directory paths — not the product name), and which the hub's publication gate does not refuse"
  },
  "hub_allowlist_applied_to_the_gate_s_own_rules": true,
  "literal_hits": [],
  "card_shaped_hits": [],
  "clean": true
 }
}
