{
 "round": "two-frontiers-cove-r1",
 "gate": "hostile-read",
 "utc": "20260907T010309Z",
 "verdict": "VERIFIED AT SOURCE — 8 of 8 must-fixes LANDED, 2 of 2 folded should-fixes landed, 0 new must-fixes, CLEAR TO BUILD AND RELEASE on this lens. Read the DIFFS that produce v7, not v7's bytes, because the built page does not exist yet: every changed slot was traced to the data that fills it and, for the two computed clauses, the rendered string was derived from the roster and the scorer rather than read off a template. One confirmation is therefore owed on the built bytes and is named below; nothing in it can change a verdict here, because the strings are computed from files that are already frozen",
 "detail": "the eight fixes close their findings and two of them close more than they were asked to. Finding 1's clause is no longer a claim at all: the overlap between seat families and arm families is DERIVED (roster arms {anthropic, google, openai, zhipu} against the six families that read {alibaba, deepseek, google, mistral, moonshot, nvidia}) and comes back as exactly {google}, so the credits take the non-empty branch and say google built the local seat, that its own chair is recused from that row, that this is why the row carries one family and eight cells fewer, and that neither frontier arm's family holds a chair — every clause of which I re-derived (6 minus 5 families, 48 minus 40 cells, anthropic and openai absent from the seat list entirely). The second site now enumerates all three cases in one sentence and the enumeration is exhaustive over the four arms. Findings 2 and 3 are gone with their clauses: the sentence reads 'produced, on the spare ask, the sentence:', so the forbidden ordering word and the five-draft-stale deck pointer are both out, and a page-wide sweep for the §7 vocabulary now returns nothing in the author's own voice. Finding 4 is read off the kit index's own files list — 59 receipt rows today, which renders 'all 59 probe receipts' and cannot drift again, and which will read 60 once this receipt and the read before it ship. Finding 5's sentence names the sharper conflict in the shape I asked for, drops the unreceipted reason entirely, and says which draft was read from the receipt's own field. Finding 6 prints §6's caution under the spread table in §6's own words, and the MIXED promise is struck with the reason it was struck rather than silently. Finding 7 refuses on an open first-pass list as well as on a verify pass, with a test for each, and version_read is now what supplies the version words — which is why this receipt has to carry 8 landed against 8 raised for the page to build at all, and why that is a true statement rather than a convenience. Finding 8 asserts absence over a PROSE view of the released page and reads the private name out of the hub's own sash builder at run time: I ran that regex against the builder and it matches exactly once, so the check is live and fail-closed rather than vacuous",
 "evidence": {
  "findings_raised": 8,
  "must_fixes": 8,
  "must_fixes_landed": 8
 },
 "verify_pass": {
  "version": 7,
  "utc": "20260907T010309Z",
  "must_fixes_verified_landed": 8,
  "of": 8,
  "new_must_fixes": 0,
  "read_at": "SOURCE — the diffs that produce v7. The built page does not exist yet: the fill refuses while the read before this one records 8 raised against 0 landed, which is finding 7's own fix working as designed.",
  "source_read": [
   {
    "file": "harness/cove/article_fill_cove.py",
    "md5": "10ec06ad351846bbb020a6defb76c666",
    "closes": [
     "1a",
     "4",
     "5",
     "6a",
     "7"
    ]
   },
   {
    "file": "harness/cove/score_cove.py",
    "md5": "ecd76629db797ff1ec355a2094cb79c5",
    "closes": [
     "6b"
    ]
   },
   {
    "file": "release/cut41.sh",
    "md5": "42feb2944564ca35e6d5c10500ca5bed",
    "closes": [
     "8"
    ]
   },
   {
    "file": "article/cove/three-new-voices-at-the-narrators-chair-v0.10.md",
    "md5": "317b89e7571f352c299deee44a9ff1be",
    "closes": [
     "2",
     "3",
     "should-fix 1",
     "should-fix 2 (half)"
    ]
   },
   {
    "file": "harness/tests/test_article_fill_cove.py",
    "md5": "409cc81381feb312073a5eaf1efd9069",
    "closes": [
     "7 — both guard shapes and both version-word branches are asserted"
    ]
   }
  ],
  "also_read": [
   "prereg/rosters-cove.json — arms[].family and panel.seats[].family, to derive the credits' overlap clause rather than read it",
   "results/cove/scores/SCORE-two-frontiers-cove-r1.json — panel_shape.shape (families_carried, seats_retired, per-arm cells_scoring / families_scoring / recused_cells)",
   "release/kit-cove/index.json — the files list, counted for the receipts figure (59 rows under receipts/)",
   "the hub's own drafts-repour sash builder, to test finding 8's run-time regex against the string it must find",
   "harness/article_fill.py::plural, to confirm the receipts figure renders as a count and not a word"
  ],
  "notes": [
   "1 LANDED, and it now cannot regress: the credits clause is computed, not asserted. overlap = roster arm families INTERSECT the families that read = {google}, so the non-empty branch fires. Every figure in the rendered sentence re-derives: 6 families read; google built local-gemma4-26b; that row carries 5 families and 40 cells against the others' 6 and 48, which is the 'one family and eight cells fewer' the sentence claims; anthropic and openai hold no seat at all, which is what makes 'neither frontier arm's family holds a chair here' true. If a future round seats two overlapping families the branch stays correct and the PROSE does not — it opens 'One of them built a contestant' and names only the local seat — but overlap is 1 in the round this governs, so it is a latent template note and not a live defect",
   "1 SECOND SITE LANDED: the panel-independence paragraph now reads 'tonight seats no chair from either frontier arm's family, one chair from a contestant's family that read nothing because the audition retired it, and one, google's, that built the local seat and read every sheet, recused from that row alone'. The enumeration is exhaustive over all four arms and every clause is true of the round: zhipu retired at its audition, google recusing on one row only",
   "2 and 3 LANDED in one edit: 'in the act it lost' and 'the sentence we chose to open this page with' are both gone; the sentence reads 'produced, on the spare ask, the sentence:'. A fresh sweep of the author copy for beats/wins/loses/best/ahead-of and for superlatives returns no author comparative — what remains are two quoted model replies ('walked in ahead of', 'any seat's better than a kitchen floor') and the clock's unattributed range, which the earlier pass ruled permitted",
   "4 LANDED: the count is len of the kit index's own rows whose first path segment is 'receipts', which is 59 today and renders 'all 59 probe receipts' through the same plural() every other count uses. Residual, small and not blocking: the NOUN is still 'probe receipts' over a set that includes the co-sign, balances, blind-seed, CLI-build and adversarial-read receipts — 54 of the 59 are g-* probes. My finding was the drifting COUNT and it is closed; the loose noun predates it and is a should-fix",
   "5 LANDED, in the shape I asked for and slightly past it. It names the same-family-as-the-author conflict ('the same family that wrote this page, ran this round and sits one of the four chairs, so this reader could not be recused the way every judging seat was'), the unreceipted 'no outside model with the context' clause is gone rather than softened, and the draft is named from the receipt's own field. The test now asserts the absence of the old reason as well as the presence of the new sentence, which is the stronger form",
   "6a LANDED: §6's caution prints immediately under the spread table, before the grouping note, in §6's own words and with 'a narrow one is not a calibration' emphasised. 6b LANDED: the NOT-RUN row no longer promises a MIXED companion figure and says why it does not — that the scorer's by-scenario grouping pools two different anchor replies, which is the reason the field is NOT-RUN in the first place. That is a better answer than printing it",
   "7 LANDED, and this receipt is the proof: the guard refuses on evidence.must_fixes > evidence.must_fixes_landed as well as on verify_pass.new_must_fixes, so the read before this one (8 against 0) stops the build, and only a receipt recording the findings actually landed lets it through. version_read supplies the version words when there is no verify block. Two tests hold it: an open first-pass list raises and the message says 'open finding'; the same receipt with the list landed fills and names the draft",
   "8 LANDED and not vacuous, which was the risk worth checking. The assertion runs over a prose view (HTML comments stripped, then style and script blocks removed) and counts two things at 0: the definite 'the operator'/'the operators', and the draft chassis's private name — read at run time out of the hub's own sash builder by a regex I ran against that file, where it matches exactly once and captures a five-character lowercase token. If the builder is reworded the regex fails and the assert refuses the cut, which is the right direction. The scoping to prose is correct and is explained on the spot: the chassis carries a style-block comment quoting an operator on every page on the shelf, including the two already released, so a raw count would have refused a page for a string no reader sees",
   "METHOD, stated because it bounds the verdict: I did NOT run the test suite. Two fixtures in this round have been measured able to delete live artifacts (a judge-journal teardown and a kit test writing to the round's real scores path), and three hours before a release is the wrong moment to find a third. The tests are verified by READING them against the code they assert, which is what the diffs allowed",
   "WHAT IS OWED ON THE BUILT BYTES, and why it cannot change this verdict: every string I verified is computed from files that are frozen — the roster, the scorer's output, the kit index — so the rendered v7 sentences follow from them. What a read of the built page would add is confirmation that the slots landed in the right sections and that the page-wide sweeps (0 percentages, 0 publication-law literals in the body, 0 unsourced numeric tokens against fills.json) still return what they returned on v6. I recommend that read after the build and before the cut, and it is a re-run of three commands rather than a pass",
   "SHOULD-FIXES, on your question of whether any now crosses into must territory: ONE does, and it is the unlanded half of should-fix 2. The glossary still reads 'The panel is seven judging seats from seven OUTSIDE model families'. With finding 1 fixed in the credits and in the context paragraph, that sentence is now the LAST place on the page that tells a reader the seven families were all outside the contestants — and it is in the glossary, which a cold reader meets before any table. It is one clause: 'seven judging seats from seven model families outside this house, six of which read here'. I would not hold a release for it on its own, but of everything left it is the one I would take tonight",
   "the other should-fixes stand where they were and none of them has moved into must territory: the pick-accountability line printing in one act of three (3), the deck carrying no reply sha (4), the persona line's tablet make against §2's registered paraphrase (5, and already public on the released sibling page), the two unmanifested kit files (6), the by_reply grouping's dangling clause (7), the prior pass's subject-verb and bare-function-name residues (9). Should-fix 8 — the byline date — I withdrew during the read: the cut re-fills with the ruled slot and asserts it",
   "no measurement moved: I re-derived nothing that changed. The credits and the context paragraph are the only figure-bearing sentences these fixes touch, and both re-derive from panel_shape as 6/5 families and 48/40 cells, exactly as v6's tables print them"
  ],
  "verify_report": "article/cove/panel-v5/CRITIQUE-hostile.md",
  "verify_report_note": "the critique of record is the read's own file; this receipt carries the verify pass rather than a second report, because every fix is a diff and the diffs are named above with their hashes",
  "history": [
   {
    "version": 6,
    "utc": "20260907T004610Z",
    "gate": "hostile-read",
    "receipt": "prereg/receipts-cove/20260907T004610Z-hostile-read.json",
    "must_fixes": 8,
    "must_fixes_landed_at_the_time": 0,
    "note": "the read this pass verifies: draft v6, 1,063 lines, md5 b08577df234fc82b1e72fb6acce49562"
   },
   {
    "version": 1,
    "utc": "20260906T181649Z",
    "gate": "hostile-read",
    "receipt": "prereg/receipts-cove/20260906T181649Z-hostile-read.json",
    "must_fixes": 17,
    "must_fixes_landed": 17,
    "note": "the earlier pass, whose seventeen and whose two v3 findings are not re-litigated here"
   }
  ]
 },
 "version_read": 7,
 "critique": "article/cove/panel-v5/CRITIQUE-hostile.md",
 "critique_sha256": "7f995c5baa11b52c23ac23b046d987eae35881ea0a88607f9b8adf26d79c0ca3",
 "read_against": {
  "page": "the diffs that produce article/cove/three-new-voices-at-the-narrators-chair-v7.md",
  "page_lines": null,
  "page_md5": null,
  "page_note": "v7 does not exist at this stamp: finding 7's own fix refuses the fill while the read before this receipt records eight must-fixes against zero landed. This pass therefore verifies the SOURCE of v7 — the five files named in verify_pass.source_read, each hashed — and the data those files read.",
  "also_read": [
   "article/cove/three-new-voices-at-the-narrators-chair-v6.md, as the before-state every fix is measured against",
   "prereg/PREREG-COVE-LEG.md §6, §7 and §11 and amendments A6, A7, A9 and A10, for the wording each fix had to meet",
   "prereg/rosters-cove.json, results/cove/scores/SCORE-two-frontiers-cove-r1.json and release/kit-cove/index.json, to derive the computed clauses rather than trust them"
  ]
 },
 "checks_that_passed": [
  "8 of 8 must-fixes landed, each traced to the code or copy that closes it and, where the fix computes a sentence, re-derived from the frozen data that fills it rather than read off the template",
  "2 of 2 folded should-fixes landed: the two cross-arm superlatives now read 'made us laugh' and 'went out of the material', and 'the seven judges were asked' reads 'the judges who read were asked'",
  "0 new must-fixes",
  "the derived overlap clause is correct on this round's own data: roster arm families INTERSECT families that read = {google}, and every figure in the sentence it renders re-derives (6 and 5 families, 48 and 40 cells, anthropic and openai holding no seat)",
  "finding 8's assertion is live rather than vacuous: the sash-name regex matches the hub's own builder exactly once and captures the name, and a rewording makes the cut refuse instead of pass",
  "the receipts figure is read off the kit index's 59 receipt rows and renders through the same plural() as every other count on the page",
  "the two guard shapes and the two version-word branches each have a test that asserts them, read against the code they assert",
  "the author copy carries no publication-law literal: 0 for a person's name, a dog's name, a home path, a box name, a port shape and the definite 'the operator'"
 ],
 "not_relitigated": "the earlier pass's seventeen must-fixes and its two v3 findings; the panel composition, the promoted spares, the absent head-to-head leg, the third contestant, the caps, the fence ruling and the tie band's value; the fence's port-shaped literals; and the clock lead's unattributed range",
 "not_reached": "the built v7 bytes, which do not exist at this stamp — see verify_pass.notes for the one confirmation owed on them and why it cannot change this verdict. Also still unread from the read before this one: the matrix's spearman and widest-difference columns re-derived from the verdict arrays, stripped.json row by row, the six sheet keys joined letter-by-letter, and the freeze index re-hashed independently of G-PREREG's own receipt. The test suite was deliberately not run",
 "model_calls_made": 0,
 "no_name": "this file names no person, no box, no path and no port: an operator is 'an operator', the draft chassis's private name is described rather than printed even where the check that removes it is the subject, and every port-shaped literal is named by its field"
}
