[
 {
  "id": "M-ENV",
  "kind": "method",
  "severity": "High",
  "original": "The V3 review was expected to re-open every cited source before publication.",
  "challenge": "Outbound page fetches to every source host were blocked (HTTP 403 from the egress proxy) in the session that prepared this edition; WebSearch worked; GitHub was reachable through git only.",
  "evidence": "editorial record (not published) §0; data/source-register-v3.json meta (80 searches; 49 inherited records rechecked at search level; 57 candidates found, not opened; 2 repositories cloned and pinned).",
  "verdict": "recorded, not hidden",
  "change": "No source was re-opened; every inherited record keeps its stored 5 Oct 2026 audit passage, carried forward unread and labelled as such; search results are discovery aids, never support; the public edition uses only Tier 1/2 records; everything else is withheld (kind 'withheld') and listed with the check that would admit it.",
  "reason": "Environment limit of the preparing session; the author can widen network access and run the open-source pass.",
  "affected": "s02/P1-0012; s31/P2-0234; method_note; every ledger row's precise_support note",
  "src": [],
  "implementation": "Applied: stated in s02, s31 and the method note; the register carries access_limits on every inherited record.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F01",
  "kind": "audit finding",
  "severity": "High",
  "original": "Coverage is useful but cannot certify the whole paper.",
  "challenge": "A source-count graphic can be mistaken for complete verification.",
  "evidence": "Original: 232 selected claims, 362 paragraphs, 296 source records, 329 financial observations; many without a locator.",
  "verdict": "applied in V3",
  "change": "State targeted coverage up front with denominators; mark inherited research as not freshly audited.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s02/P1-0011; s02/P1-0012; s31/P2-0233; method_note; summary counts via build stat tokens",
  "src": [],
  "implementation": "Applied: s02 'Coverage, with denominators' and s31 state 49 / 72+20 / 32 / 362 / 232 / 329 and 'no source was re-opened'; the F12 count graphic is not drawn. One count is wrong (s02/P1-0011 and s31/P2-0233 'all 32 reproduce') — see FV3-03.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F02",
  "kind": "audit finding",
  "severity": "High",
  "original": "'Strongest acquisition strategies' is a ranking the evidence does not test.",
  "challenge": "The wording turns a plausible mechanism into an unsupported superiority claim.",
  "evidence": "A002 (unsupported).",
  "verdict": "applied in V3",
  "change": "Replace with 'One plausible acquisition logic is to enter more of the client's work'.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s05/P1-0041",
  "src": [],
  "implementation": "Applied: s05/P1-0041 prints the chain as 'One plausible deal logic … a logic, not a ranking' and 'this paper does not [rank]'; the editorial pass removed the residual 'strongest' wording (FV3-06).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F03",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "A rounded 3% headline becomes 3.0%, which implies unearned precision.",
  "challenge": "Readers can infer a precise result different from the detailed filing.",
  "evidence": "A072; bridge 38,936 / 1,162,316 = 3.35%.",
  "verdict": "applied in V3",
  "change": "Use 3.3% with the detailed source and the H1 label; replace common-axis peer bars with dated bridges.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s11/P1-0099; s13/P1-0120 R6; s11/tldr",
  "src": [
   "ALT-S018",
   "ALT-S023"
  ],
  "implementation": "Applied: 3.3% from the bridge, H1 label, method-change note; no shared-axis chart anywhere in V3.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F04",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "The Amazon source mixes a beta title with broader current availability.",
  "challenge": "A mutable page cannot cleanly date a rollout stage.",
  "evidence": "A057 (partly supported); PLT-S003 title vs body.",
  "verdict": "applied in V3",
  "change": "Say the title describes beta while the body describes wider availability; do not assert the exact stage from this page.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s12/P1-0115; s16/P2-0011; s17/P2-0015 R4; s23/P2-0157",
  "src": [
   "PLT-S003"
  ],
  "implementation": "Applied in all four places; s23/P2-0157 adds a supply detail beyond the passage (FV3-09).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F05",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "The pending LiveRamp link is right, but the evidence-date boundary needs to be louder.",
  "challenge": "Absence of a later record could be read as proof that nothing changed.",
  "evidence": "A013 (supported), A014 (unverified); PUB-S012 16 Sep 2026.",
  "verdict": "applied in V3",
  "change": "Use 'latest dated status checked: 16 September, still conditional; no later close verified'; never draw an owned link.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "summary_points[3]; s03/P1-0022 R4; s04/P1-0025 R22/R25; s06/P1-0051; s13/P1-0126; s29/P2-0224 R8; fig-timeline",
  "src": [
   "PUB-S009",
   "PUB-S012"
  ],
  "implementation": "Applied: every mention keeps agreement (17 May), vote (17 Aug, search record, unopened), bond release (16 Sep) and 'no completion found' apart; 'owned' never used; timeline draws LiveRamp as an open mark.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F06",
  "kind": "audit finding",
  "severity": "High",
  "original": "Evidence stage, observation date and current ownership can collapse into one cell.",
  "challenge": "A historical product or vendor case can look like a current, deployed capability.",
  "evidence": "Original F04 heatmap (Doc/Use/Claim/?) without dates or tasks; A045.",
  "verdict": "applied in V3",
  "change": "Replace the heatmap with dated entity checks, a six-level authority ladder and five evidence gates; no logo counts.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s02/P1-0016; s03/P1-0022; s16/P2-0009; s17/P2-0015",
  "src": [],
  "implementation": "Applied: five gates (s02), dated entity checks (s03), authority ladder (s16), protocol stage table (s17); no heatmap drawn.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F07",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "Repository status is not pinned to an immutable version.",
  "challenge": "A later reader cannot reproduce a version claim from a moving page.",
  "evidence": "ROOT-S005/S006 main branch opened by the audit without a commit.",
  "verdict": "applied in V3",
  "change": "Retain documentation-level claims only; add a protocol status table; require versioned cross-vendor tests.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s15/P2-0002 R5; s17/P2-0015 R2; s31/P2-0234",
  "src": [
   "ROOT-S005",
   "ROOT-S006"
  ],
  "implementation": "Applied: AdCP pinned at commit 6adfebe2 (5 Oct 2026); 3.2.1 GA dated from the pinned release notes; OpenProposal pinned via git (cite ROOT-S301 — FV3-05).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F08",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "Four broad models lack the requested full ownership and feedback treatment.",
  "challenge": "A circle can imply that fast operational signals equal causal learning.",
  "evidence": "Original F07/F08 arrows; no attribution/reporting split in the baseline.",
  "verdict": "applied in V3",
  "change": "Add the eight-task baseline and three seven-stage scenarios with execution, information, approval and feedback paths; text equivalents and ownership tables.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s20–s23; figures fig-baseline, fig-scenario-a/b/c; scenarios object",
  "src": [],
  "implementation": "Applied: s20 baseline (8 tasks → 7 stages, two clocks), s21–s23 seven-stage tables with feedback paths and text equivalents; the fourth V1 configuration survives as the 'who integrates' axis in A and B.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F09",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "Brand control of learning is a scenario condition, not a universal asset right.",
  "challenge": "A reader may assume ownership of data grants ownership of weights, states or identity links.",
  "evidence": "A051 (unverified); original §19.2 shorthand.",
  "verdict": "applied in V3",
  "change": "Make the rights contract conditions; separate data, client state, agency IP, platform state and test history; require a usable rebuild on exit.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s21/P2-0054; s21/P2-0056; s25/P2-0187; s25/P2-0191; s15/P2-0002 R9",
  "src": [],
  "implementation": "Applied: 'every right named here is a contract condition to prove' (s21); four kinds of learning and exit terms (s25); claim (j) in s15.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F10",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "The first interactive saving model omits new tool/review cost while the text model includes it.",
  "challenge": "Different boundaries can produce a misleading impression of one unified saving estimate.",
  "evidence": "F05 vs ECO-M002; M27–M31.",
  "verdict": "applied in V3",
  "change": "One interactive task model with labour saving, new cost and client fee inputs; all values labelled assumptions; original model checks kept in the calculation ledger.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s18/P2-0031; s18/P2-0034; task_economics; fig-economics",
  "src": [],
  "implementation": "Applied: one task model (fee 100; labour 60; other 20; saving 25%; new cost 5) with the stated boundary; M30/M31 remain ledger-only; fig-economics panel two is labelled as outside the task model.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F11",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "Accounting cautions are strong, but a shared growth axis still invites ranking.",
  "challenge": "Readers can infer a common basis despite the footnotes.",
  "evidence": "A049 (partly supported); H1/Q2 mix; Stagwell method change.",
  "verdict": "applied in V3",
  "change": "Separate sourced bridges; keep currency, period, gross/net label, scope and profit numerator; no smooth twenty-year trend.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s13/P1-0120; s13/P1-0123; s13/P1-0121",
  "src": [
   "PUB-S039",
   "PUB-S041",
   "DH-S041",
   "ALT-S028",
   "WPP-S003",
   "ALT-S018",
   "ALT-S023",
   "PUB-S015",
   "OMC-S036"
  ],
  "implementation": "Applied: one observation per row with measure, period, currency, method note and 'recomputable here?' column; margins at one decimal with definitions; no shared axis and no twenty-year series.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F12",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "The CMO implications need a fuller value and risk split.",
  "challenge": "The reader may choose a service model without seeing retained costs and liability.",
  "evidence": "Original §18–§19 lacked who funds failed tests, delayed proof and publisher value.",
  "verdict": "applied in V3",
  "change": "Add seven fee routes, six value-chain actors, proof-delay arithmetic, retained team roles and a risk allocation in each scenario.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s14/P1-0132; s18/P2-0025; s18/P2-0026; s18/P2-0028; s21/P2-0073; s22/P2-0106; s23/P2-0153; s27",
  "src": [],
  "implementation": "Applied: s14 mechanisms table, s18 fee routes and actors, spend-to-proof gap, per-scenario conflicts/failed tests/liability blocks, s27 retained team.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F13",
  "kind": "audit finding",
  "severity": "Low",
  "original": "Run-together words and dense repetition reduce clarity.",
  "challenge": "Readers may miss the few qualifications that change a decision.",
  "evidence": "Original prose defects (ANA'sJanuary, HerFY) and repeated warnings.",
  "verdict": "applied in V3",
  "change": "Rewrite the core in shorter prose; keep inherited records in an explicit archive; keep source distinctions in the core.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "whole manuscript; editorial record (not published)",
  "src": [],
  "implementation": "Applied in the V3 prose; the editorial pass fixed the s02/P1-0017 typo; the narrative Flesch target (≥ 85) is an open gate (whole narrative 71.3 after the pass; only s01 reaches 85).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "F14",
  "kind": "audit finding",
  "severity": "Medium",
  "original": "An open partner ecosystem does not establish client control or autonomous buying.",
  "challenge": "A useful strategic case could become unsupported proof of adoption, value or easy exit.",
  "evidence": "HOR-S001–S003; 20 supplement assessments; SharkNinja = audience collaboration.",
  "verdict": "applied in V3",
  "change": "Add the two-loop model as conditional analysis; separate vendor choice from client control; task-specific attribution; cost, outcome and exit tests.",
  "reason": "Inherited audit finding (5 Oct 2026) carried into the final edition.",
  "affected": "s12/P1-0112; s12/P1-0113; s22/P2-0119–P2-0135; fig-horizon",
  "src": [
   "HOR-S001",
   "HOR-S002",
   "HOR-S003"
  ],
  "implementation": "Applied: Horizon introduced as an independent with a proposed operating model (s12); two linked loops as interpretive design (s22); evidence boundaries list; classification 'closest to B'; no fee, margin or adoption inferred.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P1-1",
  "kind": "number",
  "severity": "High",
  "original": "V2 R052: '(£673.0m / £754.6m − 1) × 100 = −10.8137%' (S4 reported change).",
  "challenge": "The £754.6m prior-year input has no stored provenance; the archive holds FY2025 gross revenue £754.8m, a different line.",
  "evidence": "Numbers report P1 item 1; M17.",
  "verdict": "applied in V3",
  "change": "Quote −10.8% as reported; print no recomputation until the FY2024 column is read.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s11/P1-0102; s13/P1-0120 R3",
  "src": [
   "ALT-S028"
  ],
  "implementation": "Applied: 'down 10.8% as reported'; growth table says 'the prior-year input is not in the audited passage, so no recomputation is printed'.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P1-2",
  "kind": "number",
  "severity": "High",
  "original": "V2 R052 Omnicom row: '$6,562.5m − $567.5m = $5,995m'.",
  "challenge": "$567.5m is the residual of the other two numbers; $6,562.5m is archive-only.",
  "evidence": "Numbers report P1 item 2; M10.",
  "verdict": "applied in V3",
  "change": "Do not print the bridge; say why.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s08/P1-0069",
  "src": [
   "OMC-S036"
  ],
  "implementation": "Applied: s08/P1-0069 explains the circular bridge and omits it.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P1-3",
  "kind": "number",
  "severity": "High",
  "original": "M06: Publicis H1 2026 statutory operating income €1,149m → 15.9% margin.",
  "challenge": "The €1,149m is unstated in any stored record.",
  "evidence": "Numbers report P1 item 3; M06 cannot_recompute_here.",
  "verdict": "applied in V3",
  "change": "Do not print a statutory margin until the income statement is read.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s06/P1-0047; s13/P1-0123 R0",
  "src": [
   "PUB-S015"
  ],
  "implementation": "Applied: V3 prints the subtotal margins only and says 'not statutory operating income'.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P1-4",
  "kind": "number",
  "severity": "High",
  "original": "V2 R052 four-decimal percentages (17.4436%, 17.5405%, 8.3878%, 4.0954%, 12.8638%, −10.8137%).",
  "challenge": "False precision from inputs rounded to the nearest million.",
  "evidence": "Numbers report P1 item 4; P01.",
  "verdict": "applied in V3",
  "change": "One decimal, 'recomputed from rounded inputs', beside the company rate.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s06/P1-0047; s10/P1-0089; s13/P1-0120; s13/P1-0123; s13/P1-0124",
  "src": [
   "PUB-S039",
   "PUB-S015",
   "WPP-S003",
   "OMC-S036",
   "DH-S041",
   "ALT-S028",
   "ALT-S018"
  ],
  "implementation": "Applied: every recomputed ratio is printed at one decimal; s13/P1-0124 states the rule.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-5",
  "kind": "number",
  "severity": "Medium",
  "original": "V2 R033: 'about 52.2% relative' (Guitar Center).",
  "challenge": "Computed from whole-percentage inputs; admissible range 46.8–57.8%.",
  "evidence": "Numbers report P2 item 5; M20.",
  "verdict": "applied in V3",
  "change": "'12 percentage points, or roughly half again'.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s08/P1-0067",
  "src": [
   "OMC-S033"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-6",
  "kind": "number",
  "severity": "Medium",
  "original": "V2 R028: 'Its 4.1% reported margin used gross revenue.'",
  "challenge": "WPP's denominator is 'revenue'; 'gross revenue' is not WPP's label.",
  "evidence": "Numbers report P2 item 6; M08.",
  "verdict": "applied in V3",
  "change": "Use 'revenue'.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s07/P1-0059; s13/P1-0123 R2",
  "src": [
   "WPP-S003"
  ],
  "implementation": "Applied: '4.1% of revenue'.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-7",
  "kind": "number",
  "severity": "Medium",
  "original": "V2 left the $2.5bn vs ~$2.2bn LiveRamp confusion unaddressed.",
  "challenge": "Equity value and enterprise value are different quantities.",
  "evidence": "Numbers report P2 item 7; M01, N22.",
  "verdict": "applied in V3",
  "change": "Add one explanatory passage; keep the five events apart; never sum or swap the two values.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s13/P1-0126",
  "src": [
   "PUB-S009"
  ],
  "implementation": "Applied: 'LiveRamp: which number is which' (s13); $38.50 and the share count kept as next checks.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-8",
  "kind": "number",
  "severity": "Medium",
  "original": "V2 R048: S4 'operational EBITDA margin rose, and year-end net debt fell'.",
  "challenge": "Direction claims rest on prior-year values not in the stored passage.",
  "evidence": "Numbers report P2 item 8; M18, N31.",
  "verdict": "applied in V3",
  "change": "State the 2025 figures only.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s11/P1-0102",
  "src": [
   "ALT-S028"
  ],
  "implementation": "Applied: 'this edition states the 2025 figures only'.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-9",
  "kind": "number",
  "severity": "Medium",
  "original": "growth.csv labels Publicis H1 2026 4.7% as basis 'Net revenue'.",
  "challenge": "It is organic net revenue growth; WPP is LFL; Stagwell is on a changed method.",
  "evidence": "Numbers report P2 item 9; G01–G07.",
  "verdict": "applied in V3",
  "change": "If any figure uses the data, fix the basis labels; otherwise keep the chart out.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s13/P1-0120; s13/P1-0121",
  "src": [
   "PUB-S041",
   "WPP-S003",
   "ALT-S018"
  ],
  "implementation": "Applied (superseded): the chart is not used; the dated table carries the company's own measure label per row and lists the five excluded rows.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "NR-P2-10",
  "kind": "number",
  "severity": "Low",
  "original": "V2 R052 Stagwell row '3.3499%'.",
  "challenge": "Needless precision.",
  "evidence": "Numbers report P2 item 10; M15.",
  "verdict": "applied in V3",
  "change": "Print 3.3% as the filing does.",
  "reason": "Numbers audit (editorial record (not published)) item carried into the final edition.",
  "affected": "s11/P1-0099; s13/P1-0120 R6",
  "src": [
   "ALT-S018"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-001",
  "kind": "corrected",
  "severity": "High",
  "original": "V1 1.1.3: 'The strongest acquisition strategies seek links in a chain …'",
  "challenge": "F02; A002 unsupported.",
  "evidence": "V2 R019 'One plausible logic'.",
  "verdict": "realised in V3",
  "change": "Keep the six-link chain as a descriptive map without the superlative.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s05/P1-0041",
  "src": [],
  "implementation": "Realised: chain printed as 'one plausible deal logic … a logic, not a ranking'.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-003",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 1.1.4: 'The most durable client proposition may be accountable coordination …'",
  "challenge": "A003 unverified.",
  "evidence": "V2 R148 compressed.",
  "verdict": "realised in V3",
  "change": "Restore the four functions as a conditional hypothesis with a matched-scope test.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s01/P1-0005; s24/P2-0168; s30/tldr",
  "src": [],
  "implementation": "Realised in part: the functions (set the goal, act, stop, challenge proof, keep learning) frame s01 and s24; the 'most durable' claim is not printed (A003 withdrawn).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-005",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 Executive ¶9: 'Four models may coexist …'",
  "challenge": "F08: three seven-stage scenarios replace four sketches.",
  "evidence": "V2 R005/R049.",
  "verdict": "realised in V3",
  "change": "Keep three scenarios; state where a specialist network sits.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s01/P1-0006; s21/P2-0063; s22/P2-0096",
  "src": [],
  "implementation": "Realised: three paths plus a 'who integrates' axis inside A and B.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-010",
  "kind": "remove",
  "severity": "High",
  "original": "V1 F12 figure: '232 linked claims … Fact 190; Attributed …'",
  "challenge": "F01 (High).",
  "evidence": "V2 R008.",
  "verdict": "realised in V3",
  "change": "Replace with ledger counts carrying denominators; never a bare count.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s02/P1-0011; s31/P2-0233",
  "src": [],
  "implementation": "Realised: counts with denominators in text and build stat tokens tokens; no count graphic.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-055",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 6.9.1: 'signed on May 16, 2026, announced May 17 and approved by LiveRamp shareholders on August 17.'",
  "challenge": "F05; A013 supported; A014 unverified.",
  "evidence": "V2 R021; R013 row 5.",
  "verdict": "realised in V3",
  "change": "Keep V2 wording; re-run the completion check to the cutoff.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s06/P1-0051; s13/P1-0126",
  "src": [
   "PUB-S009",
   "PUB-S012"
  ],
  "implementation": "Realised: 17 May announcement (PUB-S009); 17 Aug vote stated as a search record not opened; 16 Sep status; no completion found (search-level, Q03). The 16 May signing date is not printed.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-060",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 6.11.2: 'the headline 17.5% margin excludes LiveRamp transaction costs, while the reported rate is 17.4%'.",
  "challenge": "A020 supported; A021 partly supported.",
  "evidence": "V2 R052 row 2.",
  "verdict": "realised in V3",
  "change": "Use 'operating-margin subtotal after deal costs'; distinguish statutory operating income.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s06/P1-0047; s13/P1-0123 R0",
  "src": [
   "PUB-S015",
   "PUB-S041"
  ],
  "implementation": "Realised.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-117",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 8.16.2: Omni 1,000+ product and technology staff; Guitar Center 23%→35%.",
  "challenge": "A028, A029 supported; the 1,000-staff figure unverified (OMC-C027).",
  "evidence": "V2 R033.",
  "verdict": "realised in V3",
  "change": "Keep V2 wording; add the staff figure only after a check.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s08/P1-0067",
  "src": [
   "OMC-S033"
  ],
  "implementation": "Realised: Guitar Center kept with attribution and the 12-point repair; the 1,000-staff figure withheld.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-120",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 8.18.1: Q2 2026 core revenue $5.9950bn, 6.1% organic, consolidated revenue …",
  "challenge": "OMC-C030 unverified; V2 adds $1,068.8m EBITA.",
  "evidence": "V2 R034; R052 row 4.",
  "verdict": "realised in V3",
  "change": "Keep V2 bridge; add 6.1% and margins only after a check.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s08/P1-0069; s13/P1-0123 R3",
  "src": [
   "OMC-S036"
  ],
  "implementation": "Realised: core revenue and EBITA printed; 6.1% and the consolidated bridge withheld; 17.8% recomputed.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-139",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 9.7.1: Dentsu FY2025 net revenue ¥1,197,530m; underlying OP ¥172,536m; loss …",
  "challenge": "A030, A031 supported; DH-C005 notes a separate ¥402.6bn line.",
  "evidence": "V2 R038 regional split.",
  "verdict": "realised in V3",
  "change": "Keep the regional split; restore P&L lines after a check.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s09/P1-0079",
  "src": [
   "DH-S016"
  ],
  "implementation": "Realised: regional split printed (M12 reconciles); P&L lines withheld (backlog item 43).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-172",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 11.1.11: Q1 2026 commitments from Con Edison, Microsoft …; $16m committed.",
  "challenge": "A037 partly supported; ALT-C018–C020 unverified.",
  "evidence": "V2 R046.",
  "verdict": "realised in V3",
  "change": "Keep A037 wording; add names after a check.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s11/P1-0097",
  "src": [
   "ALT-S018"
  ],
  "implementation": "Realised: '$16 million as committed enterprise-software revenue'; client names withheld.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-176a",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 11.1.15: 'H1 2026 net revenue $1.216 billion, up 5% reported and 3% organic …'",
  "challenge": "F03; A072 partly supported.",
  "evidence": "V2 R047; R052 row 6.",
  "verdict": "realised in V3",
  "change": "Keep 3.3% from the bridge; restore other figures after a check.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s11/P1-0099; s13/P1-0120 R6",
  "src": [
   "ALT-S018",
   "ALT-S023"
  ],
  "implementation": "Realised: bridge figures and 3.3% printed; adjusted EBITDA and net loss withheld.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-179",
  "kind": "remove",
  "severity": "High",
  "original": "V1 F06 figure: seven growth bars on one axis (Publicis 4.7%; WPP −4.7%; Omnicom 6.1%; Dentsu 0.3%; Havas 2.5%; Stagwell 3.0%; S4 −4.7%).",
  "challenge": "F03, F11; A049, A072.",
  "evidence": "V2 R052–R053.",
  "verdict": "realised in V3",
  "change": "Do not restore a shared-axis chart; keep dated bridges.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s13/P1-0120; s13/P1-0121",
  "src": [
   "ALT-S018",
   "WPP-S003",
   "PUB-S041"
  ],
  "implementation": "Realised: no chart; six-row dated table; five excluded observations listed with the primary that would settle each.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-180",
  "kind": "remove",
  "severity": "High",
  "original": "V1 F04 figure: six groups × sixteen layers heatmap (Doc/Use/Claim/?).",
  "challenge": "F06 (High); A045.",
  "evidence": "V2 R060/R062; R013.",
  "verdict": "realised in V3",
  "change": "Never restore the undated heatmap; dated per-entity evidence only.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s02/P1-0016; s03/P1-0022; s16/P2-0009",
  "src": [],
  "implementation": "Realised: not drawn; dated entity checks, gates and ladder instead.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-181",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 F05 figure and Appendix B: whole-budget illustrative model (media 72 / services 8 / …).",
  "challenge": "F10.",
  "evidence": "V2 R073–R074.",
  "verdict": "realised in V3",
  "change": "Keep the single task model.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s18/P2-0031; s18/P2-0034; fig-economics",
  "src": [],
  "implementation": "Realised: one task model; the route split appears only as fig-economics panel two labelled outside the task model (M25/M26).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-185",
  "kind": "rewrite",
  "severity": "Medium",
  "original": "V2 R027 (addition): rival explanation with 'account losses'.",
  "challenge": "No source for 'account losses'.",
  "evidence": "VC-185; outline fix R027.",
  "verdict": "realised in V3",
  "change": "Cite a dated record or drop the phrase.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s07/P1-0061",
  "src": [],
  "implementation": "Realised: phrase dropped and the drop stated in the text.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-186",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V2 R013 row 2 vs V1 6.4.2: Publicis Media March 2016 structure dated to the December 2015 plan.",
  "challenge": "F05/F06 dated rows; PUB-S016 V1-only.",
  "evidence": "Outline fix R013.",
  "verdict": "realised in V3",
  "change": "State plan date and structure date separately with their own sources.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s03/P1-0022 R1",
  "src": [
   "PUB-S035"
  ],
  "implementation": "Realised: row carries the 2 December 2015 plan (PUB-S035) and notes the unaudited 10 March 2016 source.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-114",
  "kind": "corrected",
  "severity": "High",
  "original": "V1 §13.1.1 + F04: sixteen-layer evidence matrix.",
  "challenge": "F06; A045.",
  "evidence": "V2 R013/R060/R062.",
  "verdict": "realised in V3",
  "change": "Keep the layer vocabulary; move the 44 stack records to a verified appendix.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s02/P1-0017; s17/P2-0014",
  "src": [],
  "implementation": "Realised in part: reading rule kept; the 44 stack records stay in the private archive (no verified appendix was built because no source could be re-opened).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-119",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 §14.1.1–14.1.3 protocol claims.",
  "challenge": "F07; A053–A056 supported.",
  "evidence": "V2 R064/R066.",
  "verdict": "realised in V3",
  "change": "Keep the status table; refresh status at the cutoff.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s17/P2-0015",
  "src": [
   "ROOT-S002",
   "ROOT-S003",
   "ROOT-S005",
   "ROOT-S006"
  ],
  "implementation": "Realised: six-stage table; AdCP pinned; OpenProposal comment window (closes 22 Oct 2026, after cutoff) stated as draft under comment.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-128",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 §16.1.2 + F06: selected organic/LFL growth chart.",
  "challenge": "F03, F11; A049, A072.",
  "evidence": "V2 R052.",
  "verdict": "realised in V3",
  "change": "Bridge-table approach; add rows only after re-opened filings.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s13/P1-0120",
  "src": [
   "PUB-S039",
   "PUB-S041",
   "DH-S041",
   "ALT-S028",
   "WPP-S003",
   "ALT-S018"
  ],
  "implementation": "Realised: Tier 1/2 rows only; the five unopened rows excluded and named.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-135",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 §16 basis column mixing 'Net revenue', 'Revenue less pass-through; LFL', 'Core …'.",
  "challenge": "F11; A049.",
  "evidence": "V2 R052/R053.",
  "verdict": "realised in V3",
  "change": "Carry basis labels into any visual; no shared axis.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s13/P1-0120",
  "src": [
   "WPP-S003"
  ],
  "implementation": "Realised: 'Measure as labelled by the company' column.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-137",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 §17.1.2: Amazon Performance+/Brand+ stage; OMD Italy–Nissan testimonial.",
  "challenge": "F04; A057 partly supported.",
  "evidence": "V2 R064/R141.",
  "verdict": "realised in V3",
  "change": "Keep the F04 qualification; restore the Nissan testimonial as attributed.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s12/P1-0115; s23/P2-0157",
  "src": [
   "PLT-S003"
  ],
  "implementation": "Realised in part: F04 qualification kept; the OMD–Nissan testimonial withheld (V1-only source).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-148",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 §18.2.1: Gordon et al. 2019 (15 experiments; 500m user-experiment observations).",
  "challenge": "Not re-opened.",
  "evidence": "V2 R080.",
  "verdict": "realised in V3",
  "change": "Keep V2; re-open before restoring the observation scale.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s15/P2-0002 R6; s19/P2-0040",
  "src": [
   "ECO-S020"
  ],
  "implementation": "Realised: 15 experiments kept; observation scale withheld; 'even with rich controls' in s19 went beyond the stored passage and was dropped at V3 close-out (FV3-09, CO-FV3-09).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-153",
  "kind": "corrected",
  "severity": "Medium",
  "original": "V1 §18.3.2 + F05 + Appendix B cost model ($100 / $60 / $20).",
  "challenge": "F10; M27–M31.",
  "evidence": "V2 R073/R074.",
  "verdict": "realised in V3",
  "change": "Keep one task model; restore the agency/principal reconciliation with 'assumed units'.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s18/P2-0031; fig-economics",
  "src": [],
  "implementation": "Realised: task model in units; route split as a separately bounded panel.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-161",
  "kind": "qualified",
  "severity": "Medium",
  "original": "V1 §19.2.1–19.2.2: 'The brand retains core data, permissions, decision history and resource allocation.'",
  "challenge": "F09; A051 unverified → condition.",
  "evidence": "V2 R084/R092.",
  "verdict": "realised in V3",
  "change": "Define A as brand-controlled first, openness as a variable.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s21/P2-0054; s21/deck",
  "src": [],
  "implementation": "Realised: 'the path is defined by control, not by openness'; rights as contract conditions.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-163",
  "kind": "rewrite",
  "severity": "Medium",
  "original": "V1 §19.4: modular specialist network as a fourth configuration.",
  "challenge": "F08; no finding recorded for the drop.",
  "evidence": "Absent from V2 as a scenario.",
  "verdict": "realised in V3",
  "change": "No fourth scenario; add a 'who integrates' axis inside A and B.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s21/P2-0063; s22/P2-0096",
  "src": [],
  "implementation": "Realised: 'Who integrates' blocks in s21 and s22 carry the modular variant and the two cautions.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-174",
  "kind": "rewrite",
  "severity": "Medium",
  "original": "V1 §22.1.1–22.1.8: eight hypotheses with verdicts.",
  "challenge": "None recorded.",
  "evidence": "V2 R059 nine propositions.",
  "verdict": "realised in V3",
  "change": "Bounded verdicts table with the test that would overturn each.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s15/P2-0002; s29/P2-0224",
  "src": [],
  "implementation": "Realised as eleven claims under pressure (s15) and ten dated, falsifiable calls (s29); no probabilities.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "VC-176b",
  "kind": "remove",
  "severity": "High",
  "original": "V1 F12 figure: claim-type counts (232 claims — 190 fact, 12 attributed, 25 inference, 5 model).",
  "challenge": "F01 (High).",
  "evidence": "V2 R008.",
  "verdict": "realised in V3",
  "change": "Do not redraw; report V3 ledger counts with denominators.",
  "reason": "Version-comparison decision (editorial record (not published)) as realised in the final edition.",
  "affected": "s02/P1-0011; s31/P2-0233",
  "src": [],
  "implementation": "Realised.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A002",
  "kind": "claim verdict",
  "severity": "High",
  "original": "The strongest acquisition strategies seek links in a chain …",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A002",
  "verdict": "applied in V3",
  "change": "Replace 'strongest' with 'one plausible acquisition logic'.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s05/P1-0041",
  "src": [],
  "implementation": "Applied; verdict recorded as withdrawn (original unsupported). Residual wording clash FV3-06.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A003",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "The most durable client proposition may be accountable coordination.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A003",
  "verdict": "applied in V3",
  "change": "Retain only as a conditional hypothesis with a matched-scope test, or omit.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "not printed",
  "src": [],
  "implementation": "Withdrawn from the public text; the functions survive as analysis in s01/s24.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A014",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "No later completion record was established in this review through October 5.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A014",
  "verdict": "applied in V3",
  "change": "Say 'latest dated status checked: 16 September, still conditional; no later close verified'.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s06/P1-0051; summary_points[3]",
  "src": [
   "PUB-S012"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A021",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "the reported rate is 17.4%.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A021",
  "verdict": "applied in V3",
  "change": "Use 'operating-margin subtotal after deal costs'; distinguish statutory operating income.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s06/P1-0047; s13/P1-0123 R0",
  "src": [
   "PUB-S015"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A037",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "$16 million of committed H1 revenue",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A037",
  "verdict": "applied in V3",
  "change": "Use 'the Q2/H1 presentation labels $16m as committed enterprise-software revenue'.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s11/P1-0097",
  "src": [
   "ALT-S018"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A046",
  "kind": "claim verdict",
  "severity": "Low",
  "original": "A shared login does not establish those links.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A046",
  "verdict": "applied in V3",
  "change": "Not needed in V3; the substance is the trace-one-brief test.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "not printed",
  "src": [],
  "implementation": "Withdrawn from the public text (original verdict supported).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A049",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "The figure uses selected latest organic or like-for-like growth rates.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A049",
  "verdict": "applied in V3",
  "change": "Replace the shared bar scale with dated figures and definition cards.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s13/P1-0120; s13/P1-0121",
  "src": [],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A051",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "The brand retains core data, permissions, decision history and resource allocation.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A051",
  "verdict": "applied in V3",
  "change": "Make those rights explicit assumptions subject to licences and data-use limits.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s21/P2-0054",
  "src": [],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A057",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "Amazon's March 2025 announcement put Performance+ into general availability and Brand+ into open beta.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A057",
  "verdict": "applied in V3",
  "change": "Qualify the historical stage: title says beta; the body describes broader availability.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s12/P1-0115; s16; s17; s23",
  "src": [
   "PLT-S003"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-A072",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "Stagwell · H1 2026 | 3.0%",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json A072",
  "verdict": "applied in V3",
  "change": "Use 3.3% from the detailed bridge; remove mixed-period peer ranking.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s11/P1-0099; s13/P1-0120 R6",
  "src": [
   "ALT-S018"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H007",
  "kind": "claim verdict",
  "severity": "High",
  "original": "The SharkNinja example proves autonomous buying.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H007",
  "verdict": "applied in V3",
  "change": "Remove this implication; autonomy remains unverified.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s12/P1-0113; s22/P2-0124",
  "src": [
   "HOR-S002"
  ],
  "implementation": "Applied; stated in the negative; verdict recorded as withdrawn (original unsupported).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H012",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "The ecosystem is free of vendor lock-in.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H012",
  "verdict": "applied in V3",
  "change": "Attribute the promise; require a contract and migration drill.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s12/P1-0113; s22/P2-0124 item 3",
  "src": [
   "HOR-S003"
  ],
  "implementation": "Applied; printed as an unverified commercial statement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H014",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "A vendor can improve ROAS by up to 300%.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H014",
  "verdict": "applied in V3",
  "change": "Omit as a performance finding.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s22/P2-0121 R5",
  "src": [
   "HOR-S003"
  ],
  "implementation": "Applied; the figure is not printed; the category of claim is marked unverified.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H015",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "Agents connect to any buying interface.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H015",
  "verdict": "applied in V3",
  "change": "Replace universal wording with individually tested surfaces.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s22/P2-0121 R5; s17 R5",
  "src": [
   "HOR-S003"
  ],
  "implementation": "Applied; not reproduced.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H016",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "A system can detect when AI is wrong.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H016",
  "verdict": "applied in V3",
  "change": "Require a bounded error-detection claim.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s22/P2-0121 R5",
  "src": [
   "HOR-S003"
  ],
  "implementation": "Applied; not reproduced.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H019",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "A repeatable capability-development loop could create agency advantage.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H019",
  "verdict": "applied in V3",
  "change": "Test repeated deployment cost, quality and matched client value.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s22/P2-0126; s22/P2-0133",
  "src": [
   "HOR-S001"
  ],
  "implementation": "Applied; hypothesis plus rival plus signposts.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "C-H020",
  "kind": "claim verdict",
  "severity": "Medium",
  "original": "Horizon fits closest to agency-led managed orchestration.",
  "challenge": "Audit verdict (5 Oct 2026) required a change of wording or withdrawal.",
  "evidence": "data/atomic-claim-ledger-v3.json H020",
  "verdict": "applied in V3",
  "change": "Describe strategic fit only, not a verified client contract.",
  "reason": "Audited correction carried into the final edition.",
  "affected": "s22/P2-0135; scenarios.B.intro",
  "src": [
   "HOR-S002"
  ],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-01",
  "kind": "editorial",
  "severity": "High",
  "original": "summary_points[0]: 'The dated record shows closed purchases from Digitas in 2006 to IPG in 2025'.",
  "challenge": "Digitas 2006 is an announced agreement (A009); the closing was not checked.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "'The dated record runs from the Digitas agreement of December 2006 to the IPG closing of November 2025.'",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "summary_points[0]",
  "src": [],
  "implementation": "Applied by the editor; verified (FV3-01).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-02",
  "kind": "editorial",
  "severity": "Medium",
  "original": "s02/P1-0011: '32 inherited … 9 only after a label fix'; s31/P2-0233: 104 / 97 / 7.",
  "challenge": "The two blocks disagreed; '9 after a label fix' was judged unverifiable by the editor.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "Both now say 32 inherited calculations recomputed, all reproduce; 104-row ledger; 97 / 7.",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "s02/P1-0011; s31/P2-0233",
  "src": [],
  "implementation": "Applied by the editor; 'all 32 reproduce' was wrong (M06 cannot be recomputed) — FV3-03 closed by CO-FV3-03 at V3 close-out (6 Oct 2026).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-03",
  "kind": "editorial",
  "severity": "Medium",
  "original": "s05/P1-0041 'the paper does not use that word'; s07 'strongest countercase' / 'strongest integration-reversal case'.",
  "challenge": "False as written; 'strongest' appeared in s05, s07 and the s15 headings.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "s05: 'ranks one group's deal strategy above another, and this paper does not'; 'firmest cross-case inference'; s07: 'largest'.",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "s05/P1-0041; s07/tldr; s07/P1-0060",
  "src": [],
  "implementation": "Applied by the editor; verified (FV3-06).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-04",
  "kind": "editorial",
  "severity": "Medium",
  "original": "s17/tldr: platform agent products 'were in beta or pilot at the cutoff on search-level evidence'.",
  "challenge": "Tier 3 stated as a stage.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "'search results describe beta or pilot stages, but no primary page was opened, so no stage is recorded.'",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "s17/tldr",
  "src": [],
  "implementation": "Applied by the editor; verified.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-05",
  "kind": "editorial",
  "severity": "Medium",
  "original": "Figure text equivalents and scenario objects described arrows (2→3 approval, 3→4 execution, 4→5 information) that the SVGs do not draw.",
  "challenge": "Text equivalents must match the drawn figure.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "Arrow types aligned with figures/scenario-{a,b,c}.svg and baseline.svg; narrated the same way in P2-0057, P2-0090 and P2-0139.",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "figures.fig-baseline/a/b/c text_equivalent; scenarios A/B/C; s21/P2-0057; s22/P2-0090; s23/P2-0139",
  "src": [],
  "implementation": "Applied by the editor; figure files not checked by pass one.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "E-06",
  "kind": "editorial",
  "severity": "Low",
  "original": "Classification of blocks that mixed fact and inference (P1-0020, P1-0021, P1-0042, P1-0052, P1-0070; inference sentences in P1-0047/48/59/69/70/79/86/102).",
  "challenge": "Block class must match the prose.",
  "evidence": "editorial record (not published) §3 and §5 (before → after log); pre-edit snapshot diffed against the final manuscript by pass one",
  "verdict": "applied in V3",
  "change": "Reclassified or moved into the adjacent 'Rival reading' analysis blocks; claim ids and citations kept on the original blocks.",
  "reason": "Pass-three editorial consistency fix.",
  "affected": "s03; s06; s07; s08; s09; s10; s11",
  "src": [],
  "implementation": "Applied by the editor; the ledger records each claim's own classification, unchanged.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "CO-FV3-02",
  "kind": "finding",
  "severity": "High",
  "original": "abstract, s01/P1-0001: '… identity data, commerce, creators, production and AI tools'; s04/P1-0023: 'The 2020s added commerce, creators, production tools and AI.'",
  "challenge": "Creators, production and AI tooling have no Tier 1/2 purchase record.",
  "evidence": "Register: Influential/Captiv8/160over90/Tag/WPP Production/CoreAI are V1-only (BL1-17, BL1-21, BL1-28, BL1-45).",
  "verdict": "applied in V3 close-out",
  "change": "Abstract and s01: 'digital skill, enterprise systems, identity and customer data and commerce operations; the original edition's records, not re-opened here, add creators, production and AI tools.' s04: 'The 2020s added commerce on the audited record; creators, production tools and AI rest on records not re-opened here.' summary_points[0] holds no category list and is unchanged.",
  "reason": "Pass-one finding FV3-02 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "abstract; s01/P1-0001; s04/P1-0023",
  "src": [
   "PUB-S001",
   "PUB-S003",
   "PUB-S006",
   "PUB-S015",
   "DH-S008",
   "WPP-S004",
   "OMC-S020"
  ],
  "implementation": "Applied: three blocks narrowed; V3-001 rewritten (attributed; partly supported, now for the attribution only).",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-03",
  "kind": "finding",
  "severity": "High",
  "original": "s02/P1-0011 and s31/P2-0233: 'all 32 reproduce'; 104 rows = 'those 32, every number checked from the revised edition, and the task model's edge cases'.",
  "challenge": "M06 cannot be recomputed from the stored records; the composition omits 7 growth observations and 2 precision rules.",
  "evidence": "data/calculations-v3.json: M 22 + 9 + 1 (M06 cannot_recompute_here); prefixes M 32, N 48, E 15, G 7, P 2.",
  "verdict": "applied in V3 close-out",
  "change": "'31 reproduce, and one, a statutory-margin check, cannot be recomputed from the stored records and is not printed'; 104 rows = 'those 32, 48 numbers checked from the revised edition, 15 task-model edge cases, 7 peer-growth observations and 2 precision rules'.",
  "reason": "Pass-one finding FV3-03 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s02/P1-0011; s31/P2-0233",
  "src": [
   "PUB-S015"
  ],
  "implementation": "Applied in both blocks; V3-019 unsupported → supported (new wording); V3-025 partly supported → supported; E-02 implementation note updated.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-04",
  "kind": "finding",
  "severity": "Medium",
  "original": "s07/P1-0061: 'The group restructured from a position of weakness.'",
  "challenge": "Unsourced characterisation (Elevate28 is V1-only).",
  "evidence": "Backlog BL1-25; WPP-S003 stored passage holds only the H1 2026 figures.",
  "verdict": "applied in V3 close-out",
  "change": "Sentence deleted; the block keeps the −4.7% LFL reading.",
  "reason": "Pass-one finding FV3-04 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s07/P1-0061",
  "src": [
   "WPP-S003"
  ],
  "implementation": "Applied; V3-062 withdrawn (not printed).",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-05",
  "kind": "finding",
  "severity": "Medium",
  "original": "s17/P2-0015 R0 and s31/P2-0234 cite OpenProposal repository facts to [ROOT-S002]; 'OpenProposal at tag v3.0-draft-1 … on 5 October 2026'.",
  "challenge": "The press release does not hold the repository facts; the tag date and the clone date were conflated.",
  "evidence": "Register ROOT-S301 (HEAD 66ce40a8, 25 Sep 2026; tag v3.0-draft-1 → cd63a329, 20 Sep 2026); ROOT-S302 (3.2.1 published 2026-09-30).",
  "verdict": "applied in V3 close-out",
  "change": "s17 R0: 'cloned on 5 October 2026 at commit 66ce40a8, with tag v3.0-draft-1 present … [ROOT-S301]'; s17 R2 release date cited [ROOT-S302]; s31: 'AdCP at commit 6adfebe2, whose release notes date version 3.2.1 to 30 September 2026 [ROOT-S005; ROOT-S302], and OpenProposal at commit 66ce40a8, with tag v3.0-draft-1 present [ROOT-S301; ROOT-S002]', both cloned on 5 October 2026.",
  "reason": "Pass-one finding FV3-05 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s17/P2-0015 R0, R2; s31/P2-0234",
  "src": [
   "ROOT-S301",
   "ROOT-S302",
   "ROOT-S005",
   "ROOT-S002"
  ],
  "implementation": "Applied; V3-027 partly supported → supported; V3-023 limitation cleared (register disposition public).",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-07",
  "kind": "finding",
  "severity": "Medium",
  "original": "s06/P1-0051: 'Trade press reported it on 18 May.'; s29/P2-0224 R0: 'below its 2024 wave (47%)'.",
  "challenge": "Search-level details printed as fact.",
  "evidence": "Status recheck §1.1; ECO-S002 stored passage says prior wave; 2024 comes from snippets and candidate ECO-S302.",
  "verdict": "applied in V3 close-out",
  "change": "s06 sentence deleted; s29 R0 reads 'below its prior wave (47%)'.",
  "reason": "Pass-one finding FV3-07 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s06/P1-0051; s29/P2-0224 R0",
  "src": [
   "PUB-S009",
   "ECO-S002"
  ],
  "implementation": "Applied in both named blocks; V3-004 stays unverified for the fig-timeline label 'reported 18 May' (figure files not editable by the close-out editor; designer item); V3-108 unverified → supported (new wording).",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-08",
  "kind": "finding",
  "severity": "Medium",
  "original": "s29/P2-0224 R5: '92% of in-housed ANA respondents still used outside agencies'.",
  "challenge": "Item base not established by the stored passage.",
  "evidence": "A066 stored passage and limitation (ECO-S003).",
  "verdict": "applied in V3 close-out",
  "change": "'Basis: 92% of ANA respondents still used outside agencies; all WFA/Observatory respondents did'.",
  "reason": "Pass-one finding FV3-08 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s29/P2-0224 R5",
  "src": [
   "ECO-S003",
   "ECO-S004"
  ],
  "implementation": "Applied; V3-109 partly supported → supported; A066 limitation updated.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-09",
  "kind": "finding",
  "severity": "Medium",
  "original": "Five phrases beyond the stored passage: Epsilon 'plan to put the data business at the centre' (s06/P1-0044); 'on a common base of tools, skills and support' (s07/P1-0056; same phrase in s07/P1-0063); 'even with rich controls' (s19/P2-0040); Horizon 'specialist client, science, analytics and product roles' (s22/P2-0121 R1); Amazon 'over its supply and third-party media' (s23/P2-0157).",
  "challenge": "Detail attributed to a source whose stored record does not carry it.",
  "evidence": "Register stored passages PUB-S006, WPP-S001, ECO-S020, HOR-S001, PLT-S003; VC-148; BL1-15.",
  "verdict": "applied in V3 close-out",
  "change": "s06: 'announced completion and consolidation [PUB-S006]; the original edition described its integration plan, not re-read here'; s07/P1-0056: phrase dropped; s07/P1-0063: 'kept three media brands'; s19: phrase dropped; s22 R1: 'described specialist staff'; s23: phrase dropped.",
  "reason": "Pass-one finding FV3-09 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s06/P1-0044; s07/P1-0056; s07/P1-0063; s19/P2-0040; s22/P2-0121 R1; s23/P2-0157",
  "src": [
   "PUB-S006",
   "WPP-S001",
   "ECO-S020",
   "HOR-S001",
   "PLT-S003"
  ],
  "implementation": "Applied; V3-014 rewritten (partly supported, attribution); A023 wording trimmed; V3-100 withdrawn; V3-106 partly supported → supported; V3-107 withdrawn; VC-148 note updated.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-10",
  "kind": "finding",
  "severity": "Medium",
  "original": "s08/P1-0066: 'In 2018 Omni launched around partners the group did not own. In 2026 a release named Acxiom and Flywheel inside the platform.'",
  "challenge": "Two V1-only releases (OMC-S010, OMC-S030) read as fact.",
  "evidence": "Backlog BL1-31; version-comparison VC-103 (Jul 2018; Jan 2026).",
  "verdict": "applied in V3 close-out",
  "change": "'The original edition reported that Omni launched in 2018 around partners the group did not own and that a January 2026 release named Acxiom and Flywheel inside the platform; neither release was opened here.' Kept as analysis.",
  "reason": "Pass-one finding FV3-10 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s08/P1-0066",
  "src": [
   "OMC-S020"
  ],
  "implementation": "Applied; V3-067 unverified → partly supported (attribution verified against the version-comparison records).",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-11",
  "kind": "finding",
  "severity": "Medium",
  "original": "Disclosure; s17/P2-0016; s30/P2-0226: author-supplied facts.",
  "challenge": "Cannot be checked against the register.",
  "evidence": "Author's published disclosure in public/research/audio-advertising-2026 (same employment, working-group and membership facts; sentence 'No vendor funded, reviewed or saw the paper before publication', R5-04).",
  "verdict": "applied in V3 close-out",
  "change": "No wording change. The final sentence 'No company named in this paper funded, reviewed or saw it before publication' adapts the author-approved sentence and is to be confirmed by the author on release, with each disclosure sentence, in the release manifest.",
  "reason": "Pass-one finding FV3-11 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "disclosure; s17/P2-0016; s30/P2-0226",
  "src": [],
  "implementation": "Closed without a text change; V3-030 and V3-031 unverified → partly supported (consistent with the published disclosure); V3-032 and V3-033 stay unverified pending author confirmation.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-12",
  "kind": "finding",
  "severity": "Medium",
  "original": "s31/P2-0236: 'This edition ran a real browser check at desktop and phone widths. It rendered every PDF page. It measured readability with a stated tool.'; s31/tldr and method note: checks 'were run on this edition'.",
  "challenge": "Written ahead of the final build; editorial record (not published) records those checks on the placeholder only.",
  "evidence": "editorial record (not published); dist/qa (browser-check.txt and PDF contact sheets dated 2026-10-05 22:47, placeholder; readability-narrative.json on this text).",
  "verdict": "applied in V3 close-out",
  "change": "s31/P2-0236 now names the checks (real browser at 1440 and 375 px, PDF page render review, printed type), says they ran on the placeholder and run again on the final build, states the readability result (71.1 against a target of 85, not met) and says link integrity was not probed because outbound fetches were denied and no source was re-opened; s31/tldr and the method note say the same in short. s02 carries no QA statement.",
  "reason": "Pass-one finding FV3-12 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s31/P2-0236; s31/tldr; method_note",
  "src": [],
  "implementation": "Applied; V3-029 unverified → partly supported; narrative readability re-measured at 71.1 (scripts/readability-narrative.py, 2026-10-06). The final-build run must be recorded before release.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-13",
  "kind": "finding",
  "severity": "Low",
  "original": "s12/P1-0108: 'compared with 78% in its 2018 study'.",
  "challenge": "In A064's audited wording but not in the stored ECO-S003 paraphrase.",
  "evidence": "A064 exact wording vs precise_support; ECO-S003 search snippet repeats 78% in 2018 (discovery aid, not support).",
  "verdict": "applied in V3 close-out",
  "change": "Clause dropped; ECO-S003 L129–136 added to the next-check list.",
  "reason": "Pass-one finding FV3-13 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s12/P1-0108",
  "src": [
   "ECO-S003"
  ],
  "implementation": "Applied; V3-091 withdrawn (not printed); A064 wording trimmed.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "CO-FV3-14",
  "kind": "finding",
  "severity": "Low",
  "original": "s31/P2-0234: 'Candidate primary sources found by search but not opened are listed in the register.'",
  "challenge": "Out of date: the 55 candidates sit in data/candidate-sources-v3.",
  "evidence": "data/source-register-v3.json meta (51 public records); data/candidate-sources-v3.json (55, status found by search, not opened).",
  "verdict": "applied in V3 close-out",
  "change": "'… are listed in a separate candidate-sources file, not in the source register. They are not used as support anywhere in this edition.'",
  "reason": "Pass-one finding FV3-14 closed by the V3 close-out editor on 6 October 2026.",
  "affected": "s31/P2-0234",
  "src": [],
  "implementation": "Applied; V3-115 unsupported → supported.",
  "verification": "Checked against editorial record (not published) (md5 f1695296…) on 2026-10-06 by the V3 close-out editor: the named block re-read after the edit; npm run data passed (warnings only); no source re-opened.",
  "review_pass": "V3 close-out"
 },
 {
  "id": "BL1-01",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ANA 2026 governance figures (76% reduced cost; 90% uncertainty; 57% guidelines; 63% contracts).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s02; s15 claim (h); s18 principal row",
  "src": [],
  "implementation": "Withheld; exact check recorded: ECO-S002 press page L128–146 and the 2026 report PDF (ECO-S301), item bases.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-02",
  "kind": "withheld",
  "severity": "Medium",
  "original": "2024 ANA wave details (fieldwork February 2024; prior-wave n).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s02; s13 survey denominators",
  "src": [],
  "implementation": "Withheld; exact check recorded: ANA release pr-2024-05-principal (ECO-S302) methodology.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-03",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Publicis Media 10 March 2016 structure (four global brands, seven practices).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s03 dated entity checks",
  "src": [],
  "implementation": "Withheld; exact check recorded: Publicis Media launch release of 10 March 2016, event body.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-04",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Omnicom Media six-brand structure from the December 2025 strategy release.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s03; s08",
  "src": [],
  "implementation": "Withheld; exact check recorded: omc.com release 'Omnicom Announces Strategy and Executive Leadership Following Acquisition of Interpublic' (Dec 2025).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-05",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Abandoned transactions: Publicis–Omnicom merger terminated May 2014; Dentsu decision not to sell international business, 13 Feb 2026.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 event table",
  "src": [],
  "implementation": "Withheld; exact check recorded: Joint termination release May 2014; Dentsu Group release 2026004-0213en (DH-S301).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-06",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Digitas closing date (January 2007).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 R0",
  "src": [],
  "implementation": "Withheld; exact check recorded: Publicis 20-F FY2006, Digitas completion date.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-07",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Lotame agreement date (6 March 2025).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 R16; s06",
  "src": [],
  "implementation": "Withheld; exact check recorded: Publicis release of 6 March 2025 (PUB-S308); H1 2025 report / 2025 URD business-combinations note.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-08",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Flywheel announced net price (~$835m vs ~$845m conflict).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 R13; s08",
  "src": [],
  "implementation": "Withheld; exact check recorded: Omnicom releases of 30 Oct 2023 and 2 Jan 2024; reconcile the two figures.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-09",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Seven-desk lineage (Xaxis→Nexus→retired; Accuen; Cadreon→Matterkind; Amnet; Amplifi; Affiperf; Varick).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 trading desk",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each launch/retirement release; WPP Q3 2023 trading update for Xaxis retirement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-10",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Omnicom 2019 reorganisation details (620 specialists; effective 1 April 2019; reprint date).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 R8; s08",
  "src": [],
  "implementation": "Withheld; exact check recorded: AdExchanger original 'Omnicom Reorgs Its Programmatic Talent' (OMC-S307).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-11",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Wider V1 timeline (~60 events) beyond the Tier 1/2 rows.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s04 event table; fig-timeline",
  "src": [],
  "implementation": "Withheld; exact check recorded: Every deals.csv date against the contemporaneous release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-12",
  "kind": "withheld",
  "severity": "Medium",
  "original": "LiveRamp $38.50/share; implied diluted share count; net-cash date; 'signed 16 May'.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: LiveRamp 8-K Ex-99.1 (PUB-S301) and merger agreement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-13",
  "kind": "withheld",
  "severity": "Medium",
  "original": "LiveRamp shareholder approval, 17 August 2026.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06/P1-0051",
  "src": [],
  "implementation": "Withheld; exact check recorded: LiveRamp 8-K on special-meeting results (PUB-S303); DEFM14A (PUB-S302).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-14",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Rival reactions to LiveRamp (WPP stopped using LiveRamp; Omnicom accelerated withdrawal), June 2026.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06",
  "src": [],
  "implementation": "Withheld; exact check recorded: Campaign article 1962691; The Current interview; date each statement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-15",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Epsilon integration plan details (PeopleCloud; CJ Affiliate; creative to Communications).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06/P1-0044",
  "src": [],
  "implementation": "Withheld; exact check recorded: PUB-S006 L16–43 plan wording.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-16",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Lotame identity-unit correction box (nearly 4bn profiles / 91% reach vs ~2.3bn people).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06",
  "src": [],
  "implementation": "Withheld; exact check recorded: Publicis Lotame announcement (6 Mar 2025); 2025 URD data-scale wording with units.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-17",
  "kind": "withheld",
  "severity": "Medium",
  "original": "CoreAI €300m over three years (Jan 2024); Microsoft expansion April 2026.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06",
  "src": [],
  "implementation": "Withheld; exact check recorded: Both Publicis releases.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-18",
  "kind": "withheld",
  "severity": "Medium",
  "original": "2016 results context (lost media accounts; 0.7% organic; Razorfish delays).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06/P1-0048",
  "src": [],
  "implementation": "Withheld; exact check recorded: PUB-S004 full release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-19",
  "kind": "withheld",
  "severity": "Medium",
  "original": "FY2025 organic growth 5.6%; H1 2026 organic 4.7%; net debt; 2015 figures.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: Publicis FY2025 results release (Feb 2026); H1 2026 release (16 Jul 2026).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-20",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Publicis H1 2026 statutory operating income €1,149m (M06).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: PUB-S015 consolidated income statement, printed p. 4 / PDF p. 6.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-21",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Creators/sports/AdgeAI deals (Influential, Captiv8, 160over90, AdgeAI); CitrusAd, Profitero, Mars United dates.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s06; s01 category list",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release; H1 2026 report note on acquisitions.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-22",
  "kind": "withheld",
  "severity": "Medium",
  "original": "AKQA–Grey combination (2020) reversed; Grey into Ogilvy CGU 1 July 2025; £641m goodwill impairments.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0060",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP Annual Report 2025 goodwill impairment and CGU notes; 2020 combination release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-23",
  "kind": "withheld",
  "severity": "Medium",
  "original": "InfoSum purchase terms (£108m cash; £32m intangibles; £91m goodwill; 4 April 2025).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0055",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP 2025 annual report acquisition note.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-24",
  "kind": "withheld",
  "severity": "Medium",
  "original": "WPP Media launch '$60 billion managed annual media investment'.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0056",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP-S001 L11–23.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-25",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Elevate28 (Feb 2026): four units; £500m savings by 2028; FY2025 revenue £13.55bn; £10.176bn net; −5.4% LFL; 13.0% margin.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0059",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP FY2025 results release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-26",
  "kind": "withheld",
  "severity": "Medium",
  "original": "H1 2026 prior-year base £5,026m; segment moves; Q2 −2.8% LFL; headcount 97k vs 106k.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0059; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP-S003 key figures table and operating review.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-27",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Kantar current stake (2026).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0060",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP 2025 annual report, associates note.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-28",
  "kind": "withheld",
  "severity": "Medium",
  "original": "WPP Open stack items (80,000+ colleagues; Google $400m; Open Pro; Agent Hub; Buyer Agent for Video; WPP Production; Devon's Point; Enterprise Solutions; trust principles; FGS sale).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0057",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each wpp.com / wppmedia.com release; investor presentation for the webinar.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-29",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Sorrell 2017 opt-in principal description of Xaxis; Lesser 2011 'agencies not mandated'.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07; s15 claim (h)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Earnings-call transcript; 2011 interview.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-30",
  "kind": "withheld",
  "severity": "Medium",
  "original": "R027 'account losses' (V2).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s07/P1-0061",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP trading statements or dated trade-press reports naming accounts.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-31",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Omni 2018 partner-neutral design vs January 2026 Omni naming Acxiom/Flywheel; 2.6bn identities; 1,000+ staff.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0066",
  "src": [],
  "implementation": "Withheld; exact check recorded: July 2018 Omni launch release; January 2026 Omni release; May 2026 Integrated Media release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-32",
  "kind": "withheld",
  "severity": "Medium",
  "original": "IPG Acxiom Marketing Solutions purchase ($2.3bn; LiveRamp excluded; closed 1 Oct 2018).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0065",
  "src": [],
  "implementation": "Withheld; exact check recorded: IPG releases of July and October 2018.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-33",
  "kind": "withheld",
  "severity": "Medium",
  "original": "IPG disposals (Huge; R/GA) and 2024 $232.1m goodwill impairment; 2024 net revenue figures.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0070",
  "src": [],
  "implementation": "Withheld; exact check recorded: IPG releases and the 2024 10-K.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-34",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Publicis–Omnicom merger terminated May 2014 (no termination fee).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0070",
  "src": [],
  "implementation": "Withheld; exact check recorded: Joint release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-35",
  "kind": "withheld",
  "severity": "Medium",
  "original": "FTC final order (Sept 2025) and EC unconditional clearance (Nov 2025).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0070",
  "src": [],
  "implementation": "Withheld; exact check recorded: FTC press release and order; EC-clearance statement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-36",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Hearts United detail (~$9.1bn 2025 billings; 40 markets).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0067",
  "src": [],
  "implementation": "Withheld; exact check recorded: OMC-S034 body.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-37",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Omnicom Q2 2026 consolidated revenue $6,562.5m; held-for-sale $567.5m; 6.1% organic; 17.8%/17.2% margins; guidance wording; H1 core bridge; 2025 pro forma; consideration; exchange ratio.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0069; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: OMC-S036 reconciliation table; Q2 investor presentation; 10-Q; 2025 10-K; 8-K of 26 Nov 2025.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-38",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Synergy target ($900m 2026; $1.5bn by 2028); PepsiCo media move (2 Sep 2026); ~15,000 headcount reduction.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08",
  "src": [],
  "implementation": "Withheld; exact check recorded: Q4 2025 investor presentation (OMC-S304); PepsiCo/Publicis statement; conference transcript 10 Sep 2026.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-39",
  "kind": "withheld",
  "severity": "Medium",
  "original": "December 2025 operating design (Connected Capabilities; DDB/MullenLowe into TBWA; FCB into BBDO); September 2026 Omnicom Advertising release.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08",
  "src": [],
  "implementation": "Withheld; exact check recorded: omc.com releases.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-40",
  "kind": "withheld",
  "severity": "Medium",
  "original": "2024 Omnicom accounting policy (some media contracts principal, recorded gross).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08; s15 claim (a)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Omnicom 2024 10-K revenue-recognition policy.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-41",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Annalect (2010); Credera (2018); Accuen LATAM 2013; Hearts & Science launch 2016; Draft+FCB 2006; Kinesso/Matterkind; TPN into Flywheel.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s08/P1-0065",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-42",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Dentsu H1 2026 regional organic growth (group 0.3%; Japan +5.0%; Americas −5.0%; EMEA −0.2%; APAC ex-Japan −3.8%); net revenue; margin.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s09/P1-0080; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: Dentsu Group semi-annual report / H1 FY2026 results release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-43",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Dentsu FY2025 P&L lines (net revenue ¥1,197,530m; underlying OP ¥172,536m; loss ¥327,601m; Q4 impairment ¥310.1bn; statutory operating loss; dividend suspended).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s09/P1-0079",
  "src": [],
  "implementation": "Withheld; exact check recorded: DH-S016 income statement and note 14; 13 Feb 2026 results release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-44",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Decision not to sell the international business (13 Feb 2026); Takeshi Sano effective 27 March 2026; 2026–2028 plan.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s09/P1-0080",
  "src": [],
  "implementation": "Withheld; exact check recorded: Dentsu Group releases of 13 Feb 2026 and Aug 2026 (DH-S301/S302).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-45",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Merkle 2016 rationale; Tag completion 2023; CARTA equity method; ANZ divestment; Generative Audiences UK; dentsu.Connect rename; One Management Team; Amnet; Amplifi.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s09/P1-0076",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release; DH-S016 consolidation-scope note for CARTA.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-46",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Tokyo 2020 Olympics bid-rigging matter (Japan governance).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s09 (omission noted)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Dentsu Group disclosures 2023–2024.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-47",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Havas H1 2026 results (net revenue €1,362m; organic +2.5%; adjusted EBIT €150m; 11.0%).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s10/P1-0089; s13",
  "src": [],
  "implementation": "Withheld; exact check recorded: havas.com H1 2026 release (DH-S305).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-48",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Havas FY2025 mix (38% media / 40% creative / 22% health; regional split; revenue €2,913m).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s10/P1-0089; s22 'where it does not travel'",
  "src": [],
  "implementation": "Withheld; exact check recorded: DH-S041 full release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-49",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Bolloré-related holdings at September 2026 (30.44%; 0.6%; 22.6%).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s10/P1-0085",
  "src": [],
  "implementation": "Withheld; exact check recorded: Bolloré SE September 2026 release / AMF threshold filings.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-50",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Prospectus items: material health-client budget loss; €400m 2024–2027 programme split.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s10/P1-0090",
  "src": [],
  "implementation": "Withheld; exact check recorded: Havas listing prospectus (Dec 2024).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-51",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Havas deals and tools (FullSIX; Havas CX; Uncommon; Channel Bakers; 2026 deals; SportVibes; Converged→Converged.AI; AVA; Akkio; Vivendi 2017 purchase); Horizon Global '$20bn billings' and '100+ markets'.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s10/P1-0085; s10/P1-0087",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release; DH-S038 body.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-52",
  "kind": "withheld",
  "severity": "Medium",
  "original": "The Machine (Jan 2026), The Media Machine (19 Jun 2026; 20+ agents), Curate (Jul 2026).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s11/P1-0096",
  "src": [],
  "implementation": "Withheld; exact check recorded: stagwellglobal.com releases (ALT-S303/S304).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-53",
  "kind": "withheld",
  "severity": "Medium",
  "original": "TTD Koa Agents adoption (21 April 2026; alpha; closed beta).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s11; s17 R3",
  "src": [],
  "implementation": "Withheld; exact check recorded: ALT-S302 release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-54",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Stagwell FY2025 figures; H1 2026 adjusted EBITDA $198,372k; net loss; segment growth; five segments; 70+ affiliates.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s11/P1-0099",
  "src": [],
  "implementation": "Withheld; exact check recorded: FY2025 release; Q2 2026 release; 10-K segment note.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-55",
  "kind": "withheld",
  "severity": "Medium",
  "original": "MDC lineage (72andSunny; Anomaly; Varick/Assembly; Harris; BNG; ADK GLOBAL; ESTYLE; Palantir test; Q1 2026 commitments).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s11/P1-0095",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release/filing.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-56",
  "kind": "withheld",
  "severity": "Medium",
  "original": "S4 Capital FY2024 net revenue £754.6m; FY2024 margin and net debt; £301.2m 2024 impairment; H1 2026 figures; founding history.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s11/P1-0102; s13 R3",
  "src": [],
  "implementation": "Withheld; exact check recorded: ALT-S028 FY2024 column; S4 H1 2026 RNS; Annual Report 2025 (ALT-S307).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-57",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Consultancies (Accenture Song/Droga5/Whalar; Deloitte/Appsynth).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12/P1-0105",
  "src": [],
  "implementation": "Withheld; exact check recorded: Accenture newsroom; Deloitte release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-58",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Brandtech/OLIVER; Jellyfish; Pencil; Scribble.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12",
  "src": [],
  "implementation": "Withheld; exact check recorded: Brandtech releases.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-59",
  "kind": "withheld",
  "severity": "Medium",
  "original": "DEPT/Carlyle; Horizon 2021 founder-control transaction; PMG; Serviceplan; Plus Company; Hakuhodo DY ONE; ADK/Krafton.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12/P1-0106",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-60",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Unilever 2017 U-Studios; Coca-Cola 2021 lead-group-plus-roster.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12; s24",
  "src": [],
  "implementation": "Withheld; exact check recorded: Unilever annual report 2017; Coca-Cola announcement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-61",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ANA January 2026 DSP direct-contracting summary (45%; no denominator).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12; s21 signposts",
  "src": [],
  "implementation": "Withheld; exact check recorded: ANA page respondent base.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-62",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Platform agent status at cutoff (Google Ask Advisor; Meta Ads MCP; Microsoft Advertising MCP pilot; TTD Koa).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12; s17 R3",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each vendor's primary page (PLT-S302–S305).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-63",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Amazon Brand+ GA worldwide as of 30 January 2026 (separate Amazon page).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s12/P1-0115; s17 R4",
  "src": [],
  "implementation": "Withheld; exact check recorded: Amazon Ads 'what's new' page (PLT-S301).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-64",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Regional rules: France Article 20 written mandate; Brazil Sicom 20% discount.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s02; s22/s23 'where it does not travel'",
  "src": [],
  "implementation": "Withheld; exact check recorded: Loi Sapin Article 20 text; Sicom dictionary entry.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-65",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Five growth observations excluded from the bridge table (Publicis H1 4.7%; Omnicom Q2 6.1%; Dentsu H1 0.3%; Havas H1 2.5%; S4 H1 −4.7%).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s13/P1-0121",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each issuer's H1/Q2 2026 release.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-66",
  "kind": "withheld",
  "severity": "Medium",
  "original": "S4 FY2025 reported-change recomputation (needs £754.6m).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s13 R3",
  "src": [],
  "implementation": "Withheld; exact check recorded: ALT-S028 FY2024 column.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-67",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ANA 2026 prior-wave n and item base for 58%.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s13/P1-0128",
  "src": [],
  "implementation": "Withheld; exact check recorded: ANA principal media report 2026 methodology.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-68",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Havas 2010/2015 personnel ratios; V1 §16 twenty-year anchors.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s13 (no smoothed series)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Havas 2010 annual report; DDR 2015; each group's original-label figures (only if a dated-anchors table is wanted).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL1-69",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ISBA 2020/2022 and ANA 2023 supply-chain reconciliation; ANA/K2 2016; WFA/MediaSense 2024; 4As Q1 2024; ASC 606 / IFRS 15 control test.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s18 'follow the money'",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each study's methodology pages.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-01",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ANA 2026: 90% uncertainty; 57% guidelines; 63% contracts addressing principal media.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s15 claim (h); s18 principal row",
  "src": [],
  "implementation": "Withheld; exact check recorded: ANA 19 March 2026 release and 2026 report PDF (ECO-S301).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-02",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Havas 50% of net revenue in Europe, 34% in North America.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s22 'Where it does not travel'",
  "src": [],
  "implementation": "Withheld; exact check recorded: DH-S041 / DH-S306 geographic split line.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-03",
  "kind": "withheld",
  "severity": "Medium",
  "original": "France Sapin law Article 20; Brazil Sicom 20% discount as regional limits on principal buying.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s22; s23; s24 negotiated-buying row",
  "src": [],
  "implementation": "Withheld; exact check recorded: Légifrance Loi 93-122 Art. 20; gov.br Sicom data dictionary.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-04",
  "kind": "withheld",
  "severity": "Medium",
  "original": "WPP payment terms (30–60 day invoices; supplier recourse) as the documented basis for the spend-to-proof gap.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s18 spend-to-proof gap",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP Annual Report 2025 credit-risk and accounting-policy notes.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-05",
  "kind": "withheld",
  "severity": "Medium",
  "original": "ANA January 2026: 45% contract directly with at least one DSP.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s21 signposts; s15 claim (j)",
  "src": [],
  "implementation": "Withheld; exact check recorded: ANA media committee summary; base n.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-06",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Unilever U-Studios content ~30% cheaper (2017).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s24 creative-production row",
  "src": [],
  "implementation": "Withheld; exact check recorded: Unilever 2017 Annual Report passage.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-07",
  "kind": "withheld",
  "severity": "Medium",
  "original": "WPP Open 80,000+ colleagues; Open as WPP IP; Elevate28 £500m savings target.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s15 claims (b) and (j)",
  "src": [],
  "implementation": "Withheld; exact check recorded: WPP 2025 annual report / capital markets material.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-08",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Omnicom accounting policy: some media contracts recorded as principal.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s15 claim (a); s29 call 1",
  "src": [],
  "implementation": "Withheld; exact check recorded: Omnicom 2025 Form 10-K revenue-recognition note.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-09",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Platform agent product stages (Google Ask Advisor; Meta Ads MCP; Microsoft Advertising MCP; TTD Koa).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s17 stage table R3",
  "src": [],
  "implementation": "Withheld; exact check recorded: Each vendor's primary page.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-10",
  "kind": "withheld",
  "severity": "Medium",
  "original": "AdCP conformance programme, public agent registry (~30 agents), a group's live client buys over AdCP, vendor case results.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s17 AdCP row; s15 claim (f)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Conformance programme page at the pinned commit; registry with dated capture; earnings-call transcript; never the author's own run.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-11",
  "kind": "withheld",
  "severity": "Medium",
  "original": "AAMP 2.0 page date (24 April vs August 2026) and the AAMP 2.3 page.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s17 AAMP 2.0 row",
  "src": [],
  "implementation": "Withheld; exact check recorded: Both iabtechlab.com pages (ROOT-S003; ROOT-S303).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-12",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Horizon 2021 capital structure (founder majority; Temasek and LionTree minority).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s22 entity-roles table",
  "src": [],
  "implementation": "Withheld; exact check recorded: December 2021 announcement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-13",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Hakuhodo DY ONE governed MCP connections (April 2026).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s17 stage table; s23 regional paragraph",
  "src": [],
  "implementation": "Withheld; exact check recorded: Hakuhodo DY ONE releases.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-14",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Brandtech / OLIVER / Pencil / Scribble embedded-team hybrid; client-retains-IP statement.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s24; s15 claim (j)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Brandtech / Pencil releases (Sept 2026).",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-15",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Consumer agents and AI-mediated discovery signpost (Google ads in AI Overviews, 21 May 2025).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s23 signposts",
  "src": [],
  "implementation": "Withheld; exact check recorded: Google blog post of 21 May 2025.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-16",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Guitar Center relative change (~52%).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s15 claim (c)",
  "src": [],
  "implementation": "Withheld; exact check recorded: Unrounded inputs from the release; otherwise keep the 12-point change only.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-17",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Publicis H1 2026 statutory operating income €1,149m (15.9%).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s15 claim (e)",
  "src": [],
  "implementation": "Withheld; exact check recorded: H1 2026 financial report income statement.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-18",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Google Meridian calibration rule.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s19 'Measure long-term demand on purpose'",
  "src": [],
  "implementation": "Withheld; exact check recorded: Meridian documentation page with access date.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-19",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Conference Board CMO pay caveat; Etsy 2022 plan; Kohl's 110% target; Coca-Cola 125% target and PSU mix.",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s19 pay-plan paragraph",
  "src": [],
  "implementation": "Withheld; exact check recorded: Coca-Cola DEF 14A; Kohl's DEF 14A; Etsy 2023 proxy.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "BL2-20",
  "kind": "withheld",
  "severity": "Medium",
  "original": "Jurisdiction rules for customer exclusions (US state sensitive-data definitions; EU DSA/DMA).",
  "challenge": "Wanted in the public text; rests on a Tier 3 basis (V1-only register record, search-found candidate not opened, or archive-only number).",
  "evidence": "editorial record (not published) / -part2.md; register search status",
  "verdict": "withheld from the public edition",
  "change": "Left out of the public text; where relevant the text says what this review did not show.",
  "reason": "not re-sourced in this review",
  "affected": "s26 mandate table, exclusions row",
  "src": [],
  "implementation": "Withheld; exact check recorded: Statutes or regulator guidance per market.",
  "verification": "Checked against editorial record (not published) (md5 cec15f30…) on 2026-10-05 by pass one (V3); no source re-opened."
 },
 {
  "id": "ER-F01",
  "kind": "review",
  "severity": "High",
  "original": "Edition labelled \"Final edition\"; sections 6 to 11 repeat \"await a fresh check\" caveats; exclusions scattered through the chapters.",
  "challenge": "Access failures should not define the history; a final label was premature while the source work is open.",
  "evidence": "External critical review, 6 October 2026, finding F01. Review finding F01 and its acceptance check.",
  "verdict": "accepted with limits",
  "change": "Edition renamed \"Research edition, 6 October 2026 update\"; a dated update note added; each chapter now carries one carried-forward sentence and reads as what the record shows; every material exclusion listed once in section 31 with its check and its effect on the conclusion; mechanics moved to section 31.",
  "reason": "External review finding F01 applied by the critical editor on 6 October 2026.",
  "affected": "edition; update_notes; s02/P1-0012; s04/P1-0024, P1-0027, P1-0030; s06 tldr, P1-0044, P1-0051, P1-0053; s07 tldr, P1-0055, P1-0057, P1-0060, P1-0063; s08/P1-0065, P1-0066, P1-0070, P1-0073; s09/P1-0076, P1-0080, P1-0083; s10/P1-0085, P1-0087, P1-0089, P1-0090, P1-0093; s11/P1-0095, P1-0096, P1-0098, P1-0104; s13/P1-0121; s31 tldr, P2-0233, P2-0234, new blocks P4-0013, P4-0014, P4-0015",
  "src": [],
  "implementation": "Applied with a limit: this edition cannot re-open sources (outbound fetches denied), so the backlog is listed and bounded, not completed; the source re-opening stays open and the update note says so.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F01"
 },
 {
  "id": "ER-F02",
  "kind": "review",
  "severity": "High",
  "original": "Section 13 withheld the $38.50 LiveRamp price as an unopened filing; section 7 said the \"account losses\" phrase was unsourced.",
  "challenge": "Both are supported by sources the paper already cites (PUB-S009, WPP-S003), per the review’s R2 and R6.",
  "evidence": "External critical review, 6 October 2026, finding F02. Review source checks R2 and R6; the stored passages for PUB-S009 and WPP-S003 do not carry the price or the attribution.",
  "verdict": "accepted, attributed",
  "change": "Printed the review’s wording for the price, values and conditional status (s13, s06) and for the WPP attribution (s07), each stated as confirmed by the external review of 6 October 2026 and not re-opened here; the \"unsourced\" sentence removed.",
  "reason": "External review finding F02 applied by the critical editor on 6 October 2026.",
  "affected": "s06/P1-0051; s13/P1-0126; s07/P1-0061; claims V3-009 (unverified → partly supported, basis \"external review check\"), V3-117 (new), V3-064 (withdrawn, superseded)",
  "src": [
   "PUB-S009",
   "PUB-S012",
   "WPP-S003"
  ],
  "implementation": "Applied as attributed external checks: the paper names the review and does not adopt its checks as its own verification; management’s explanation is not printed as a causal finding.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F02"
 },
 {
  "id": "ER-F03",
  "kind": "review",
  "severity": "High",
  "original": "Proposition (b) joined a software revenue model to an orchestration operating model under one test (a recurring technology-fee line with retention).",
  "challenge": "That test cannot assess delivery or client value; a service-fee model can pass the delivery test without software revenue.",
  "evidence": "External critical review, 6 October 2026, finding F03. Review finding F03 and its acceptance check.",
  "verdict": "accepted",
  "change": "Proposition (b) split into (b1) revenue model, (b2) delivery, (b3) client value, each with its own support, contrary, rival, condition and test; \"three weakest\" prose replaced by \"where the support is thinnest\" with the three grades stated.",
  "reason": "External review finding F03 applied by the critical editor on 6 October 2026.",
  "affected": "s15 deck, tldr, P2-0001, P2-0002 rows (b1)–(b3), P2-0003, P2-0004",
  "src": [
   "ALT-S018",
   "PUB-S039",
   "PUB-S035",
   "PUB-S023",
   "OMC-S034",
   "PUB-S004",
   "DH-S016",
   "WPP-S003",
   "OMC-S033"
  ],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F03"
 },
 {
  "id": "ER-F04",
  "kind": "review",
  "severity": "High",
  "original": "Section 29 \"Ten calls you can check\" made negative predictions from a limited register; several rejection rules did not negate their calls; a threshold was left unstated; calls 9 and 10 were compound.",
  "challenge": "Absence from the register does not justify projecting future absence.",
  "evidence": "External critical review, 6 October 2026, finding F04. Review finding F04 and its acceptance check.",
  "verdict": "accepted",
  "change": "Section renamed \"Ten research questions and update triggers\"; every row rewritten as an observation sought plus an update trigger; kept expectations state their basis and a threshold defined now (5% of net revenue; 80%; above 50%; 1% of net revenue; 47%); rejection criteria are logical negations; call 9 is an update rule and call 10 is split into 10a and 10b.",
  "reason": "External review finding F04 applied by the critical editor on 6 October 2026.",
  "affected": "s29 title, deck, tldr, P2-0223, P2-0224, P2-0225",
  "src": [
   "ECO-S002",
   "ALT-S018",
   "OMC-S033",
   "ROOT-S002",
   "ROOT-S003",
   "ROOT-S006",
   "ECO-S003",
   "ECO-S004",
   "ECO-S006",
   "PUB-S004",
   "DH-S016",
   "WPP-S007",
   "PUB-S009",
   "PUB-S012",
   "HOR-S002",
   "HOR-S003"
  ],
  "implementation": "Applied in full; the thresholds are labelled as choices set now.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F04"
 },
 {
  "id": "ER-F05",
  "kind": "review",
  "severity": "High",
  "original": "Scenarios A, B and C used different cost boundaries in their \"Full costs and risks\" blocks.",
  "challenge": "Different boundaries can make one route look cheaper by leaving supplier work outside it.",
  "evidence": "External critical review, 6 October 2026, finding F05. Review finding F05 and its acceptance check.",
  "verdict": "accepted",
  "change": "One brand-side nine-line total-cost boundary defined in section 20 (media and inventory; agency and specialist services; retained staff; creative production and rights; data, technology and compute; integration and maintenance; measurement and experiments; financing and commitments; exit and switching); each cost counted once; principal inventory counted once at the price paid with the spread disclosed inside it; equal scope, quality and horizon stated; the three blocks and the three scenario economics strings rewritten on that list; section 24 uses it as the full cost.",
  "reason": "External review finding F05 applied by the critical editor on 6 October 2026.",
  "affected": "s20 new blocks P4-0008, P4-0009, P4-0010, P4-0011; s21/P2-0071; s22/P2-0104; s23/P2-0151; s24/P2-0166; scenarios A/B/C economics; fig-scenario-b caption",
  "src": [],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F05"
 },
 {
  "id": "ER-F06",
  "kind": "review",
  "severity": "High",
  "original": "The retailer example allowed $400,000 over 13 weeks with a $90,000 cap before a week-13 read and no pause rule; the discount decisions lacked unit economics; the lapsed buyer was not placed against the 12-month exclusion; partial execution lacked an anti-splitting rule.",
  "challenge": "An unresolved operating design.",
  "evidence": "External critical review, 6 October 2026, finding F06. Review finding F06 and its acceptance check.",
  "verdict": "accepted",
  "change": "$400,000 made a contingent maximum in three tranches ($90,000; up to $150,000; up to $160,000) released only by pre-specified interim reads at weeks 4 and 8 with a decision owner and an evidence requirement, and a pause rule; price, cost of goods, fulfilment, returns and the contribution formula stated with the 25% (6.2%, fails) and 12% (20.1%, passes) results in a labelled illustrative table; the lapsed-buyer list defined as last purchase six to twelve months ago, inside the exclusion; a rolling seven-day aggregation rule across agents including pending commitments; a tranche-release override row; the simulated schedule stated.",
  "reason": "External review finding F06 applied by the critical editor on 6 October 2026.",
  "affected": "s26/P2-0198, P2-0201, P2-0202, P2-0207, P2-0210; new block P4-0012",
  "src": [],
  "implementation": "Applied in full; all values labelled illustrative.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F06"
 },
 {
  "id": "ER-F07",
  "kind": "review",
  "severity": "High",
  "original": "The baseline asserted prevailing practice (\"rarely\", \"often\") and listed what \"the baseline lacks\"; the 90-day plan tested the first stop in week 6, after live work began in week 5.",
  "challenge": "Frequency claims without prevalence evidence; no agent should receive live authority before its controls are demonstrated.",
  "evidence": "External critical review, 6 October 2026, finding F07. Review finding F07 and its acceptance check.",
  "verdict": "accepted",
  "change": "Baseline labelled \"an illustrative fragmented workflow\"; frequency words replaced by possibilities; mature teams noted as possibly holding the controls; the stop, refused-request, retry and exposure-cap tests moved to week 4 before any live spend; week 6 kept as an in-flight rehearsal plus the export test.",
  "reason": "External review finding F07 applied by the critical editor on 6 October 2026.",
  "affected": "s20 deck, tldr, P2-0047, P2-0049, P2-0051; s28 tldr, P2-0220, P2-0221",
  "src": [],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F07"
 },
 {
  "id": "ER-F08",
  "kind": "review",
  "severity": "High",
  "original": "Rankings and absolutes: \"scale best\", \"least client-side evidence\", \"usually the costliest\", client benefit allowed only when the client pays less, ownership of source records as necessary, an adverse result required to exist.",
  "challenge": "No comparative scalability or cost evidence supports the rankings; the rules were too absolute.",
  "evidence": "External critical review, 6 October 2026, finding F08. Review finding F08 and its acceptance check.",
  "verdict": "accepted",
  "change": "Rankings replaced by bounded statements in summary point 5, s14/P1-0133 and s24/P2-0173; proposition (c) names lower cost, better quality, higher incremental profit and lower risk as distinct benefits; ownership replaced by the access, licence and transfer rights the task needs (s15 rows (j), P2-0006); neutrality and the adverse-result test ask whether safeguards permit one (s15 rows (f), (h); s25/P2-0189); a sweep of only/always/must/best/least/never/usually fixed the ranking cases and s02/P1-0017 labels the remaining design-rule wording as the paper’s choice.",
  "reason": "External review finding F08 applied by the critical editor on 6 October 2026.",
  "affected": "summary_points[4]; abstract; s01/P1-0006; s02/P1-0017; s04/P1-0023; s14/P1-0133, P1-0134; s15 deck, P2-0001, P2-0002, P2-0006; s16 tldr, P2-0011; s18/P2-0026; s22/P2-0094, P2-0134; s23/P2-0153, P2-0158; s24 tldr, P2-0166, P2-0167, P2-0168, P2-0173; s25/P2-0189",
  "src": [],
  "implementation": "Applied; the remaining must/should/never instances sit in blocks labelled analysis, scenario or illustrative and are declared design choices in s02.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F08"
 },
 {
  "id": "ER-F09",
  "kind": "review",
  "severity": "Medium",
  "original": "The paper weighted contracts, audit and exit far above the everyday conditions under which judgment and creativity improve; its own WFA source ranks briefing, trust and feedback above incentives.",
  "challenge": "A credible rival explanation inside the selected evidence was underused.",
  "evidence": "External critical review, 6 October 2026, finding F09. Review finding F09 and source check R11.",
  "verdict": "accepted, attributed",
  "change": "A compact value-production loop (brief, shared customer understanding, creative choices, timely decisions, useful feedback, learning) added to section 19 with the WFA ranking printed as reported by the external review of 6 October 2026, respondent rankings not causal effects; approval delay, brief quality and rework added to the section 28 measures and baselines; cross-references in s14 and s24.",
  "reason": "External review finding F09 applied by the critical editor on 6 October 2026.",
  "affected": "s19 tldr, new blocks P4-0004, P4-0005, P4-0006, P4-0007; s28/P2-0220, P2-0222; s14/P1-0134; s24/P2-0172; claim V3-118 (new)",
  "src": [
   "ECO-S006"
  ],
  "implementation": "Applied; the ranking is an attributed external check of ECO-S006, not re-opened here.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F09"
 },
 {
  "id": "ER-F10",
  "kind": "review",
  "severity": "Medium",
  "original": "The six-level authority ladder mixed task type, integration breadth, discretion and financial materiality, implying that more coordination means more autonomy.",
  "challenge": "A human-approved cross-system workflow is low autonomy with broad integration.",
  "evidence": "External critical review, 6 October 2026, finding F10. Review finding F10 and its acceptance check.",
  "verdict": "accepted",
  "change": "Ladder kept as a teaching aid and said so; a six-dimension task profile added (recommendation vs execution; rule-based vs adaptive; single vs multiple systems; spend and time limits; approval frequency; reversibility) with two worked profiles; noted that cancellation does not undo booked commitments and that a no-spend content tool still needs cancellation and data-use controls.",
  "reason": "External review finding F10 applied by the critical editor on 6 October 2026.",
  "affected": "s16 tldr, P2-0008; new blocks P4-0001, P4-0002, P4-0003",
  "src": [],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F10"
 },
 {
  "id": "ER-F11",
  "kind": "review",
  "severity": "Medium",
  "original": "Binary harvest-or-build; \"it will harvest by default\"; a three-person minimum and fixed review cycles presented as rules; \"the surveys support this split\".",
  "challenge": "Design suggestions presented as established rules.",
  "evidence": "External critical review, 6 October 2026, finding F11. Review finding F11 and its acceptance check.",
  "verdict": "accepted",
  "change": "Harvest and build as a portfolio with brand building part of ongoing allocation; \"may favour immediately measurable demand\"; three roles as one possible arrangement with shared and fractional execution allowed; escalation windows set by exposure, reversibility and measurement lag with the fixed times labelled illustrative; \"the surveys support coexistence; this allocation of rights is the paper’s recommendation\".",
  "reason": "External review finding F11 applied by the critical editor on 6 October 2026.",
  "affected": "s19 tldr, P2-0038, P2-0039; s24 tldr, P2-0168; s27 tldr, P2-0214; s28/P2-0220",
  "src": [
   "ECO-S003",
   "ECO-S004"
  ],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F11"
 },
 {
  "id": "ER-F12",
  "kind": "review",
  "severity": "High",
  "original": "A072 displayed the rejected 3.0% assertion beside a 3.3% wording; A002 attached \"withdrawn\" to a record holding a new qualified proposition; \"104 recomputations\" overstated; active and retired claims were not separable.",
  "challenge": "A reader could not tell which wording a verdict graded.",
  "evidence": "External critical review, 6 October 2026, finding F12. Review finding F12 and its acceptance check; data/calculations-v3.json recount.",
  "verdict": "accepted (ledger part)",
  "change": "Every row whose printed wording changed now keeps exact_wording = current printed wording with the earlier wording in original_wording (109 rows carry an earlier wording); A072 displays 3.3% as current (verdict re-attached: supported; original 3.0% assertion and verdict kept); six further rows (A021, A045, A049, A051, A057, A058) had their displayed assertion restated to the current wording; A002, A003, A046 and H007 hold only their withdrawn wording, and the qualified proposition has its own row V3-116; a status field (active | withdrawn | editorial) added to all 210 rows: 160 active, 10 withdrawn, 40 editorial; \"recomputations\" renamed \"numerical and comparability checks\" in s02 and s31 with the no-formula count (35) recounted.",
  "reason": "External review finding F12 applied by the critical editor on 6 October 2026.",
  "affected": "data/atomic-claim-ledger-v3; s02/P1-0011; s31/P2-0233; s05/P1-0041 claim_ids; s12/P1-0113 and s16/P2-0011 claim_ids",
  "src": [],
  "implementation": "Ledger part applied; the build labels and stats fields (sources inspected vs reopened vs repository vs search-only) are handled by the build engineer.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F12"
 },
 {
  "id": "ER-F13",
  "kind": "review",
  "severity": "Medium",
  "original": "Section 6 called Digitas a closed record while describing an agreement; the partnership definition said it transfers no ownership while the paper later names an equity partnership; the top evidence gate claimed \"nothing further\".",
  "challenge": "Small consistency errors.",
  "evidence": "External critical review, 6 October 2026, finding F13. Review finding F13 and its acceptance check.",
  "verdict": "accepted",
  "change": "Section 6 summary distinguishes the Digitas agreement from the completion records; section 3 defines non-equity commercial partnership, equity partnership and joint venture separately; the top gate reads \"Supports value within the tested setting; durability, transferability and performance at larger scale still need evidence\".",
  "reason": "External review finding F13 applied by the critical editor on 6 October 2026.",
  "affected": "s06 tldr; s03 deck, P1-0018, P1-0019; s02/P1-0016",
  "src": [
   "PUB-S001",
   "DH-S038",
   "HOR-S001"
  ],
  "implementation": "Applied in full.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F13"
 },
 {
  "id": "ER-F14",
  "kind": "review",
  "severity": "Medium",
  "original": "The task calculator’s reset button does not restore the inputs in the live edition.",
  "challenge": "Live defect.",
  "evidence": "External critical review, 6 October 2026, finding F14. Review finding F14.",
  "verdict": "applied",
  "change": "Not a manuscript change: assigned to the build owner (reset both controls and calculation state to the immutable defaults 100 / 60 / 20 / 25 / 5 and recompute chart, table and narrative together). Verdict set to applied in the editorial repair of 6 October 2026 (FG-35); the implementation and verification columns already held the applied record.",
  "reason": "External review finding F14 applied by the critical editor on 6 October 2026.",
  "affected": "build/page.js (task-economics instrument)",
  "src": [],
  "implementation": "Applied at build level on 6 October 2026, after the manuscript edit (build/render.mjs: native type=\"reset\" button; build/page.js then build/figures/economics.js: frozen defaults, reset restores the five inputs and recomputes chart, table and sentence together); shipped in PR #84 (merged 2026-10-06, Deploy run 1595) and carried into the figure pass of the same day (one calculation shared by the figure and the calculator, four presets). See FG-13, FG-16.",
  "verification": "scripts/browser-check.mjs: reset by pointer click, by form.reset() and after changing every field restores 100 / 60 / 20 / 25 / 5 and cost 70, margin 30, repeatably; the five reference cases by input events, keyboard typing and preset clicks (editorial record (not published); editorial record (not published)).",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F14"
 },
 {
  "id": "ER-F15",
  "kind": "review",
  "severity": "Medium",
  "original": "Horizon SVG status text overflows its badge; print labels about 7.66pt; long text equivalents and duplicated scenario material in the PDF.",
  "challenge": "Typography and reader burden.",
  "evidence": "External critical review, 6 October 2026, finding F15. Review finding F15.",
  "verdict": "applied",
  "change": "Not a manuscript change: assigned to the figure designers and the publisher (wrap or resize the badge; set a documented print-label minimum; place lengthy print text equivalents in an appendix; print the scenario comparison once). New figures are being produced by the designers; no figure block was added by the editor. Verdict set to applied in the editorial repair of 6 October 2026 (FG-35); the implementation and verification columns already held the applied record.",
  "reason": "External review finding F15 applied by the critical editor on 6 October 2026.",
  "affected": "figures/*.svg; build/render.mjs; build/pdf.mjs",
  "src": [],
  "implementation": "Applied in two steps on 6 October 2026: (1) print appendix of the figure text equivalents and each scenario printed once (build/render.mjs, build/pdf.mjs; PR #84, Deploy run 1595); (2) the figure pass of the same day rebuilt every figure from data files with a shared shell: essential labels 20 units (about 10.2 pt on the 180 mm print block), supporting notes 16 units (about 8.2 pt, the printed ledgers’ floor), the Horizon \"Interpretive design\" pill measured around its text. See FG-13, FG-14, FG-16.",
  "verification": "python3 scripts/pdf-type.py (body 10.5 pt; no text page under 7 pt); PDF figure pages inspected by eye on the final build; the smallest figure type measured on the PDF pages (editorial record (not published)).",
  "review_pass": "external review 2026-10-06",
  "review_finding": "F15"
 },
 {
  "id": "ER-T01",
  "kind": "review",
  "severity": "High",
  "original": "Thesis: \"The groups have bought the parts of the loop; the record proves the bid, not the client’s gain; what a brand keeps is decided by the rights it can test, stop and take away.\"",
  "challenge": "The review proposes a stronger thesis that lets an agency earn a premium, a closed platform create value and a brand delegate operation without surrendering accountability, treating decision rights as part of value capture, not the sole explanation of value creation.",
  "evidence": "External critical review, 6 October 2026, finding T01. Review section \"A stronger central thesis\".",
  "verdict": "accepted, folded in without dropping ours",
  "change": "Abstract, summary point 5, s01 tldr, P1-0004 and P1-0006 now say the layers can improve outcomes, reinforce principal economics or raise switching costs; value depends on the task after full cost; brands keep accountability for goals and evidence while choosing the control and portability they can justify; the bid-not-gain and rights-to-test-stop-take-away lines are kept.",
  "reason": "External review finding T01 applied by the critical editor on 6 October 2026.",
  "affected": "abstract; summary_points[4]; s01 tldr, P1-0004, P1-0006",
  "src": [],
  "implementation": "Applied.",
  "verification": "Checked against editorial record (not published) after the edit on 2026-10-06 by the critical editor: each named block re-read; npm run data and the narrative readability script re-run; no source re-opened.",
  "review_pass": "external review 2026-10-06",
  "review_finding": "T01"
 },
 {
  "id": "FG-01",
  "kind": "figure",
  "severity": "Medium",
  "original": "fig-control-questions: caption \"Control has five parts, five gates on one loop\"; the drawing joined the five rights with solid arrows, the grammar the paper reserves for execution.",
  "challenge": "The five rights are a set the paper lists in one sentence; a loop implies order and cause.",
  "evidence": "editorial record (not published) FD-01; editorial record (not published) FR-01",
  "verdict": "applied",
  "change": "Five cards in one row with no edges; caption and text equivalent say \"a set of rights, not a cycle\"; the accountable roles are marked as the section 27 proposal. No factual change.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-control-questions; build/figures/control-questions.*; figures/data/control-questions.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 1, section 1).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-01; FR-01"
 },
 {
  "id": "FG-02",
  "kind": "figure",
  "severity": "Low",
  "original": "fig-openness-control text equivalent: rows \"many vendors (open) or few vendors (restricted)\".",
  "challenge": "Section 24 (P2-0172) defines openness as the ability to connect and replace providers, not a vendor count.",
  "evidence": "editorial record (not published) FR-02",
  "verdict": "applied",
  "change": "Rows now read \"open (providers can be connected and replaced)\" and \"restricted (providers are hard to connect or replace)\"; the drawing and caption say openness is not a vendor count and that a file export alone is not a strong exit. The section 24 table itself is unchanged (see FG-22).",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-openness-control; build/figures/openness-control.*",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 17, section 24).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FR-02"
 },
 {
  "id": "FG-03",
  "kind": "figure",
  "severity": "Low",
  "original": "fig-ninety-days caption and text equivalent: \"four phases, with a review between each\"; units \"phase band; widths not to scale\".",
  "challenge": "The plan has one hard gate (week 4), two reads (weeks 8 and 12) and a decision (week 13); the week 6 live stop rehearsal is separate from the week 4 tests.",
  "evidence": "editorial record (not published) FR-04",
  "verdict": "applied",
  "change": "Four phase cards joined by labelled gates, about 13 weeks; the week 4 gate names the signed page and the four pre-live tests; the optional checklist is described as the reader’s own notes that verify nothing; units \"card widths are not durations\". Phase 4 prints \"Week 13\" (singular).",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-ninety-days; build/figures/ninety-days.*",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 20, section 28).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FR-04"
 },
 {
  "id": "FG-04",
  "kind": "figure",
  "severity": "Low",
  "original": "No figure drew the five evidence gates of section 2 or the protocol stages of section 17.",
  "challenge": "The evidence rule is used throughout the paper and was text only.",
  "evidence": "editorial record (not published) FR-05",
  "verdict": "applied",
  "change": "New figure fig-evidence-explorer (observed) in section 2: five gate cards with what each shows and does not show, the paper’s examples with claim ids and sources, and a protocol view of the six section 17 items on the paper’s six stages, each row linked only to the record and version verified; section 17 carries a reference block that opens the protocol view. The Horizon Blu deployment cell keeps its stated scope (\"named use: audience collab.\").",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-evidence-explorer, s02, s17; build/figures/evidence-explorer.*; figures/data/evidence-explorer.json; build/render.mjs (figure reference block)",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 2, sections 2 and 17).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FR-05"
 },
 {
  "id": "FG-05",
  "kind": "build",
  "severity": "Low",
  "original": "Timeline lens view (built earlier on 6 October 2026) never displayed: the script set a `hidden` property that SVG elements do not have.",
  "challenge": "A build defect found in the browser.",
  "evidence": "editorial record (not published) FR-06",
  "verdict": "applied",
  "change": "The attribute is toggled instead; the browser check judges the lens by computed display.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/figures/timeline.js; scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (build level).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FR-06"
 },
 {
  "id": "FG-06",
  "kind": "figure",
  "severity": "Low",
  "original": "fig-acquisition-chain caption and text equivalent: \"six links joined by solid arrows … a dashed information arrow … thin lines tie three value pools\".",
  "challenge": "Arrows in the execution style read as a flow; the six links are a reading order.",
  "evidence": "editorial record (not published) FG-D1",
  "verdict": "applied",
  "change": "A numbered checklist with no arrows (reading order by number and a hairline), a separate \"then check\" panel (countercase, rival reading), a distinct value-pools panel and a twelve-case selector that fills each link from dated records or leaves it blank with a status word; the record’s claim_ids and sources now list the worked cases’ claims and sources (39, 27) instead of V3-110 and A050 only. No factual change. LiveRamp is marked pending and never owned.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-acquisition-chain; build/figures/acquisition-chain.*; figures/data/acquisition-chain.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 5, section 5).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FG-D1"
 },
 {
  "id": "FG-07",
  "kind": "figure",
  "severity": "Low",
  "original": "No figure showed who owns what by group, with ownership, stakes, joint ventures, programmes and proposed deals kept apart.",
  "challenge": "Sections 3 to 12 carry the record as text and one timeline.",
  "evidence": "editorial record (not published) FG-D2; editorial record (not published) FD-08",
  "verdict": "applied",
  "change": "New figure fig-entity-capability (observed) at the opening of section 3: one view per group plus the independent Horizon Media case, the relation word on every row, dated events with announcement and closing kept apart, and six capability columns labelled as the paper’s mapping, not a score; compact chapter views at the top of sections 6 to 11 (new block type figure_view). The Dentsu FY2025 impairment prints \"FY2025\", not a day; the Horizon Global row on the Horizon tab points to its dated event on the Havas tab.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-entity-capability, s03, s06 to s11; build/figures/entity-capability.*; figures/data/entity-capability.json; build/render.mjs; build/build-data.mjs; build/render-md.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 3, sections 3 and 6 to 11).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FG-D2; FD-08"
 },
 {
  "id": "FG-08",
  "kind": "figure",
  "severity": "Low",
  "original": "fig-value-capture (section 14) was a nine-row mark table and fig-fee-routes (section 18) a strip with B / A / P letter badges; the two drew the same commercial model twice.",
  "challenge": "One commercial model, two entry points; the letter badges were an unexplained key.",
  "evidence": "editorial record (not published) FD-12; editorial record (not published) FD-09",
  "verdict": "applied",
  "change": "One commercial-model explorer from one data set with two entry views: the nine mechanisms under the party that gains as volume rises (section 14) and agency buying beside principal resale with money, advice and evidence as three relationships and the spread inside the bundled price, never a second line (section 18); selecting a route or mechanism shows payer, earner, cost bearer, benefit condition, conflict and evidence; roles spelled out (Brand, Agency or group, Provider or platform, Publisher). Both figure ids and download names kept; the route tables stack one card per row in the list panel.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-value-capture, fig-fee-routes; build/figures/commercial-model.*, value-capture.mjs, fee-routes.mjs; figures/data/commercial-model.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figures 6 and 8).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-12; FD-09"
 },
 {
  "id": "FG-09",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 18 (P2-0028) states the $10,000-a-day, seven-day, $70,000 illustration in prose and names booked commitments, reporting delay and stop failure as added exposure.",
  "challenge": "A chart needs a rule for what sits on which line so no dollar is counted twice.",
  "evidence": "editorial record (not published) FD-11",
  "verdict": "applied",
  "change": "New figure fig-spending-to-proof (illustrative) in section 18: spent awaiting evidence, outstanding commitments and remaining authority on separate lines, counted once; the pause point; a read marked as a read, not causal proof; media only, agency fees on a separate line; \"not a loss; a cap is not a liability ceiling; cash exposure is not a financing expense\". The three-line split and the overlap rule are recorded as the figure’s arrangement of the paper’s rules, not a new rule in the text; no wording change to section 18.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-spending-to-proof, s18; build/figures/spending-to-proof.*; figures/data/spending-to-proof.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 9, section 18). The cap default is open (FG-19).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-11"
 },
 {
  "id": "FG-10",
  "kind": "figure",
  "severity": "Low",
  "original": "The section 26 mandate and worked clash (P2-0198 to P2-0210, P4-0012) existed as text and tables only.",
  "challenge": "The brief asked for a deterministic walkthrough of the policy gate and the tranches.",
  "evidence": "editorial record (not published) (retailer-agents); editorial record (not published) §4",
  "verdict": "applied",
  "change": "New figure fig-retailer-agents (illustrative) in section 26: three proposals (and a reader-chosen discount) enter one policy gate and come out permitted, rejected or escalated with the rule and the decision owner; the tranches $90,000, up to $150,000 and up to $160,000 as conditional, opened only by a signed week 4 or week 8 read; the printed unit-economics formula recomputed live; both branches of the shift rule; reactivations reported separately from new customers; invented numbers stated as such.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-retailer-agents, s26; build/figures/retailer-agents.*; figures/data/retailer-agents.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figure 19, section 26). The returns wording and the weekly-budget dollar example are open (FG-20, FG-21).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "N3"
 },
 {
  "id": "FG-11",
  "kind": "figure",
  "severity": "Low",
  "original": "fig-baseline described one present-day figure; the three scenario figures each repeated a full loop in the section 20 selector and in their chapters (six loop drawings on the page).",
  "challenge": "Repetition on screen; unlike stages could be read as equivalent when switching.",
  "evidence": "editorial record (not published) FS-01, FS-04",
  "verdict": "applied",
  "change": "One comparison component in section 20 (baseline by default; A, B and C in the same layout with execution, authority and evidence layers, a step-through and a six-question table); sections 21 to 23 and the selector panes show compact chapter views with a deep link; the full loops remain the downloads; a selected stage is kept only where the paper maps a like stage, otherwise the change is explained. The selector note now says the comparison prints once and each path once. Captions and text equivalents revised; no factual change. The chapter strips grow with their footer so nothing is clipped; stage owners never run into the \"Brand decides\" line.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-baseline, fig-scenario-a, fig-scenario-b, fig-scenario-c; build/figures/scenario-comparison.*, baseline.mjs, scenario-a/b/c.mjs; figures/data/scenario-comparison.json; build/render.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figures 12, 13, 14, 16). Open, minor: path B stage 3 (grant authority) has no mapping sentence to a baseline stage and is left unselected on switch.",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FS-01; FS-04"
 },
 {
  "id": "FG-12",
  "kind": "figure",
  "severity": "Low",
  "original": "No figure for the four kinds of learning and the exit terms (section 25) or for the value-production loop (section 19).",
  "challenge": "Both carry concepts a reader grasps faster by seeing them.",
  "evidence": "editorial record (not published) FS-02",
  "verdict": "applied",
  "change": "Two new figures: fig-learning-exit (section 25; four asset classes against six exit conditions, with a successor-operator view; every right a contract condition; a file export is not an exit; owning records does not grant models) and fig-value-judgment (section 19; six interactions in reading order with one measure or question each, two labelled as proposals; near-term delivery beside long-term brand value; a proposed logic, not a measured loop).",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-learning-exit, fig-value-judgment, s19, s25; build/figures/learning-exit.*, value-judgment.*; figures/data/learning-exit.json, value-judgment.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figures 11 and 18). The two proposed measures are open (FG-23).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FS-02"
 },
 {
  "id": "FG-13",
  "kind": "figure",
  "severity": "Low",
  "original": "Four figures (timeline, task profile, Horizon loops, task economics) were hand-written SVGs with a split-scale timeline, connected qualitative points, \"Adapts freely\" and a separate small-type calculator chart.",
  "challenge": "The brief’s sections 6B, 6E, 6F and 6H.",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "Timeline on one linear axis with a separate lens view, filters, a dated event list and a detail panel that keeps announcement and closing apart; task profile as six independent stated conditions for two tasks at a time (\"adapts within a stated scope\"; cancellation does not reverse a booking; no score); Horizon loops in one orientation with views, a step-through and the missing evidence stated, \"Interpretive design\" kept; the task-saving figure and the calculator share one calculation and assumption set with four presets (the equal split at a fee of 95 is new and illustrative), negative profit drawn as a shortfall. Captions and text equivalents rewritten; the task-profile units now read \"six stated conditions per task, not scores, ranks or timing\".",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures.fig-timeline, fig-task-profile, fig-horizon, fig-economics; build/figures/timeline.*, task-profile.*, horizon.*, economics.*; figures/data/*.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figures 4, 7, 10, 15).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "foundation"
 },
 {
  "id": "FG-14",
  "kind": "build",
  "severity": "Low",
  "original": "Every figure was a fixed 1000-unit canvas with no on-page viewer; phones got a 720 px drawing in a sideways-scrolling frame; the calculator chart printed 11-unit labels.",
  "challenge": "Brief sections 4, 5 and 9.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "One shared shell (number, status, takeaway, controls, Enlarge, caption, text equivalent, sources and assumptions, downloads, embedded data), one accessible viewer dialog (fit width, fit all, 100%, zoom, pan, Escape, focus return), compact phone layouts for every module figure, downloads with resolved colours and fonts, print renditions with labelled assumptions; label targets 20 units essential and 16 units supporting (about 10.2 pt and 8.2 pt in print).",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/render.mjs; build/figures/_lib.mjs, _shell.*, _viewer.*; build/styles.css; build/DESIGN.md; scripts/check.mjs; scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (build level).",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "foundation"
 },
 {
  "id": "FG-15",
  "kind": "figure",
  "severity": "Low",
  "original": "The figure inventory held 14 figure ids; the hero, the downloads list, the appendix and the site listing said 14 figures.",
  "challenge": "Six figures were added and two pairs consolidated onto shared data sets.",
  "evidence": "editorial record (not published) FD-09; editorial record (not published) FG-D2; editorial record (not published) FR-05; editorial record (not published) FS-02",
  "verdict": "applied",
  "change": "The manuscript holds 20 figure records (14 existing ids kept, 6 added on 6 October 2026); the hero stat, the downloads list (20 editable SVGs), the print appendix and the site listing (src/data/research-papers.ts scope line) print 20; figure numbers follow placement order.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) figures; data/stats.json; src/data/research-papers.ts; build/site.config.json",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-09; FG-D2; FR-05; FS-02"
 },
 {
  "id": "FG-16",
  "kind": "figure",
  "severity": "Medium",
  "original": "The update note of 6 October 2026 ended: \"The calculator reset and the figure typography repairs (review findings F14 and F15) are assigned to the build and figure owners and are not part of this update.\" ER-F14 and ER-F15 said \"Assigned; not applied in this update.\"",
  "challenge": "editorial record (not published) records the F14 repair (native reset, frozen defaults, chart, table and sentence recomputed) and the print part of F15 (appendix of text equivalents; each scenario printed once) as shipped at build level on 6 October 2026 in PR #84 (merged 12:47 UTC; Deploy run 1595); the figure pass then rebuilt every figure.",
  "evidence": "editorial record (not published) FD-10 and §7; editorial record (not published); editorial record (not published) (PR #84, deploy 1595 verified by gh api)",
  "verdict": "applied",
  "change": "The last sentence of the update note now states the verified record; a second dated note describes the figure system; ER-F14 and ER-F15 carry the applied state and the verification.",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "editorial record (not published) update_notes; data/corrections-ledger-v3.json ER-F14, ER-F15",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-10"
 },
 {
  "id": "FG-17",
  "kind": "build",
  "severity": "Low",
  "original": "Defects found by the release pass on the merged build: the chapter strips (sections 21 to 23) clipped their last footer line; the baseline stage 3 owner ran into the \"Brand decides\" line; the task-profile three-line cell left its box; the ninety-days \"Selected\" word covered the \"Phase\" label; the deal figure’s case line ran past the canvas for LiveRamp; the Horizon \"evidence\" cross-link label sat on the legend and its line crossed the loop headings; the route tables in the commercial explorer’s list panel scrolled sideways at desktop widths. The site’s accessibility check reported a heading jump on the page: the figure shell printed its title as a paragraph and the compact cards and some panels opened with h5 labels, so h2 → h4 and h2 → h5 jumps appeared (21 on the page).",
  "challenge": "Pass 3 (visual) at 1366 px, confirmed by an automated text-collision scan in every figure and state.",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "Chapter strips and the comparison take their height from the footer; owner lines sit tighter above the \"Brand decides\" line and the renderer refuses an owner needing more than three lines; task-profile rows grow with their longest cell; \"Selected\" sits in a band at the foot of the phase card; the case line wraps onto two lines; the evidence link runs above the headings and enters the capability loop clear of its heading, its label between the headings; the explorer tables stack one card per row at every width. The browser check now asserts zero text-on-text collisions and no label outside its canvas in every figure and in the exercised states. The figure title is now an h3 and the chapter-view title an h3; the eyebrow labels in the compact cards and the static panels are label paragraphs, not headings; zero heading jumps remain (node scripts/check-a11y.mjs reports none for the page).",
  "reason": "Figure-system pass of 6 October 2026 (brief: editorial record (not published)). A rendering and interaction change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/figures/scenario-comparison.shared.js, scenario-comparison.js, task-profile.mjs, ninety-days.mjs, acquisition-chain.js, horizon.mjs, commercial-model.css; scripts/browser-check.mjs; build/render.mjs; build/figures/entity-capability.mjs, control-questions.mjs, openness-control.mjs, ninety-days.mjs, evidence-explorer.mjs, spending-to-proof.mjs, _shell.css, control-questions.css",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the merged build of 6 October 2026 by one assistant in three passes (semantic fidelity, browser interaction, visual): node scripts/check.mjs --final, node scripts/browser-check.mjs, python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 320, 375, 390, 768, 1024, 1366 and 1920 CSS px in light and dark (editorial record (not published)).",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "release pass"
 },
 {
  "id": "FG-18",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure data wording \"Not in the record\" stands for two data statuses in the deal figure: `unknown` (left blank on purpose) and `not_shown` (the paper says not shown).",
  "challenge": "The author may prefer two words.",
  "evidence": "editorial record (not published) FG-D3",
  "verdict": "applied",
  "change": "Two display labels, each defined once per surface: “Not assessed in this review” (the data status unknown, and ‘not established’ cells) and “Not shown in the reviewed record” (the status not_shown). The definition printed with them: “Not assessed in this review” means no record was opened or held for the link; “Not shown in the reviewed record” means the paper looked and found none. Neither means the capability does not exist. Applied in the deal checklist (chips, detail panel, compact list, table) and in the ownership explorer (drawing footer, legend, list note, detail panel, tables); the old single wording “Not in the record” no longer appears in either figure.",
  "reason": "Live validation of 6 October 2026 (V09 and the FG-18 recommendation): one word stood for two different data statuses.",
  "affected": "build/figures/acquisition-chain.*; figures/data/README.md item statuses",
  "src": [],
  "implementation": "Applied: build/figures/acquisition-chain.{mjs,js}, build/figures/entity-capability.{mjs,js}, figures/data/acquisition-chain.json and entity-capability.json notes, editorial record (not published) text equivalents of fig-acquisition-chain and fig-entity-capability.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "figure pass 2026-10-06; repair pass 2026-10-06",
  "review_finding": "FG-D3"
 },
 {
  "id": "FG-19",
  "kind": "figure",
  "severity": "Low",
  "original": "The spending-to-proof figure needs an authorised cap; section 18 states none. Commitments need a starting value; the paper gives none.",
  "challenge": "Any cap is an assumption the paper did not make.",
  "evidence": "editorial record (not published) FD-04 and §5.1; editorial record (not published) FD-04",
  "verdict": "applied",
  "change": "Applied 6 October 2026: the $90,000 cap stays as an explicitly borrowed illustration from the section 26 mandate, labelled in the inputs, the drawing, the caption and the text equivalent as not a recommended brand limit; commitments 0 stays as an editable assumption. Enforcement corrected first (FG-47): a hard pre-spend cap on divisible daily spend.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "figures/data/spending-to-proof.json; editorial record (not published) figures.fig-spending-to-proof",
  "src": [],
  "implementation": "Applied on 6 October 2026: figures/data/spending-to-proof.json (inputs cap and commitments notes, gaps, notes), build/figures/spending-to-proof.*, editorial record (not published) figures.fig-spending-to-proof.",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "FD-04; live validation FG-19"
 },
 {
  "id": "FG-20",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 26 worked clash: the printed formula’s treatment of returned orders is implicit (revenue, cost of goods and fulfilment drop out on a returned order; only the $6 handling cost remains).",
  "challenge": "The printed values depend on that reading and the text does not say it.",
  "evidence": "editorial record (not published) FD-02 and §4.1; editorial record (not published) FD-02",
  "verdict": "applied",
  "change": "Applied 6 October 2026: the existing assumption (goods and fulfilment recovered on a returned order; only the $6 handling cost remains) is stated in prose after the formula in P2-0201, in the P4-0012 table caption, in the figure drawing, the export and the text equivalent. The arithmetic is unchanged. The calculator offers the validation’s alternative, fulfilment incurred on all orders, contribution = (1 − r) × (P × (1 − d) − C) − F − r × H ($27.70, $16.30, $3.95; 29.2%, 19.5%, 5.5%; pass/fail at the 8% floor unchanged), as a labelled figure assumption, not a claim about the retailer; the default stays the paper’s.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "s26/P2-0201, P4-0012 if adopted; figures/data/retailer-agents.json",
  "src": [],
  "implementation": "Applied on 6 October 2026: editorial record (not published) s26/P2-0201 (one sentence after the formula) and P4-0012 (caption); figures/data/retailer-agents.json unit_economics.assumptions and unit_economics.alternatives; build/figures/retailer-agents.* (returns-assumption option).",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "FD-02; live validation FG-20 and the returns illustration"
 },
 {
  "id": "FG-21",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 26 mandate: \"10% of the weekly budget\" with no weekly budget stated.",
  "challenge": "A dollar example needs a weekly budget the paper never gives.",
  "evidence": "editorial record (not published) FD-03 and §4.2; editorial record (not published) FD-03",
  "verdict": "applied",
  "change": "Applied 6 October 2026: the percentage denominator is defined as the weekly budget, frozen for the week (the figure’s stated reading; the mandate states the share, the window and the aggregation); all agents and pending moves are aggregated in a rolling seven-day window; the even split of tranche 1 ($90,000 / 4 = $22,500 a week; 15% = $3,375; 10% = $2,250; 5% = $1,125) is shown as an illustration only, in the figure’s rule panel, the detail panel, the text equivalent and the data file. P2-0198 is unchanged.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "s26/P2-0198 if changed; figures/data/retailer-agents.json",
  "src": [],
  "implementation": "Applied on 6 October 2026: figures/data/retailer-agents.json shift_rule and weekly_budget_illustrative; build/figures/retailer-agents.shared.js (rule panel); editorial record (not published) figures.fig-retailer-agents text equivalent.",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "FD-03; live validation FG-21"
 },
 {
  "id": "FG-22",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 24 table P2-0173 row labels \"Many vendors (open)\" and \"Few vendors (restricted)\" read as a vendor count; P2-0172 defines openness as the ability to connect and replace providers.",
  "challenge": "The figure and the table would word the same axis differently.",
  "evidence": "editorial record (not published) FD-05 and §4.10; editorial record (not published) FR-03",
  "verdict": "applied",
  "change": "The figure uses the P2-0172 definition; the table is unchanged. Proposed row labels: \"Open (providers can be connected and replaced)\" and \"Restricted (providers are hard to connect or replace)\". Decide whether to apply them to P2-0173. Applied in the editorial repair of 6 October 2026: the row labels now carry the definition (FG-29).",
  "reason": "Author decision; not decided by the figure pass.",
  "affected": "s24/P2-0173",
  "src": [],
  "implementation": "Applied on 6 October 2026 (FG-29).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-05; FR-03"
 },
 {
  "id": "FG-23",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 19 names no measure for two of the six value-production stages (shared customer understanding; learning kept).",
  "challenge": "The figure shows one measure or question per stage.",
  "evidence": "editorial record (not published) FD-06 and §5.4; editorial record (not published) FS-03",
  "verdict": "applied",
  "change": "Two questions are proposed by the figure data and labelled as proposals (\"Can both sides state the same customer picture, and challenge it?\"; \"Does the next brief cite what the last round tried, what worked and why?\"). Accept, replace or drop them; if accepted, P4-0006 would carry them. Resolved in the editorial repair of 6 October 2026: both kept as proposed diagnostic questions, not measures, reworded to permit disagreement and to include null or failed tests; the dense list moved out of the drawing (FG-31). P4-0006 is unchanged.",
  "reason": "Author decision; not decided by the figure pass.",
  "affected": "figures/data/value-judgment.json; s19/P4-0006 if adopted",
  "src": [],
  "implementation": "Applied on 6 October 2026 (FG-31).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-06; FS-03"
 },
 {
  "id": "FG-24",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 17 table prints AdCP 3.2.1 (30 September 2026); the source register’s ROOT-S302 event date also records a 3.2.2 patch dated 4 October 2026 at the pinned commit.",
  "challenge": "Both dates are before the cutoff; the paper prints one.",
  "evidence": "editorial record (not published) FD-07 and §5.5; editorial record (not published) (open items)",
  "verdict": "applied",
  "change": "The figure prints 3.2.1 at the pinned commit, as the paper does. Decide whether to print the patch date in P2-0015. No post-cutoff fact. Applied in the editorial repair of 6 October 2026: one version record distinguishes the version analysed (3.2.1 at the pinned commit, GA 30 September 2026), the tag dates and the later v3.2.2 patch tag of 4 October 2026 with what it changes; nothing is substituted (FG-30).",
  "reason": "Author decision; not decided by the figure pass.",
  "affected": "s17/P2-0015; figures/data/evidence-explorer.json",
  "src": [],
  "implementation": "Applied on 6 October 2026 (FG-30).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "FD-07"
 },
 {
  "id": "FG-25",
  "kind": "figure",
  "severity": "Low",
  "original": "The paper has no capability columns; the ownership figure adds six, mapped from the paper’s words for each asset, and draws S4 Capital on the Stagwell tab as a counterweight.",
  "challenge": "A mapping is an inference; a count of marks could be read as a score.",
  "evidence": "editorial record (not published) FD-08 and §5.6; editorial record (not published) (open items)",
  "verdict": "applied",
  "change": "Capability columns kept as explicitly sourced analytical mappings after a row-by-row validation of every entity against its basis passage (editorial record (not published), validation table): the column block is headed “Capability columns: analysis, not a score” on every view, the legend reads “empty: not assessed in this review (no record mapped); not zero”, the footer, the tables, the compact cards and the detail panel label the marks as analysis, and the mapping rule stays printed with each deal card. S4 Capital stays on the Stagwell tab under its explicit “Not part of the group: the smaller-group counterweight” divider, after the Stagwell rows; it is not drawn as a Stagwell entity.",
  "reason": "Live validation of 6 October 2026 (FG-25 recommendation): keep the columns as sourced analysis after validation; keep S4 under its divider.",
  "affected": "figures/data/entity-capability.json; build/figures/entity-capability.*",
  "src": [],
  "implementation": "Applied: build/figures/entity-capability.mjs (headings, legend, footer, tables); figures/data/entity-capability.json inferences[0] and notes.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "figure pass 2026-10-06; repair pass 2026-10-06",
  "review_finding": "FD-08"
 },
 {
  "id": "FG-26",
  "kind": "figure",
  "severity": "Low",
  "original": "The five control questions figure prints an accountable role per right, drawn from the section 27 proposal (CMO with the CFO; budget owner; CMO or budget owner; proof lead or an outside reviewer; product lead and procurement with the data steward).",
  "challenge": "The roles are a proposal, not an observation.",
  "evidence": "editorial record (not published) §5.7",
  "verdict": "applied",
  "change": "Roles drawn and labelled \"a proposed role, section 27\". Confirm the roles or change them. Applied in the editorial repair of 6 October 2026: the roles stay a proposal; the drawing says a title grants no legal authority and no role is a separate hire; the stop-right detail names the technical revocation authority and the contractual cancellation limits (FG-32).",
  "reason": "Author decision; not decided by the figure pass.",
  "affected": "figures/data/control-questions.json; build/figures/control-questions.*",
  "src": [],
  "implementation": "Applied on 6 October 2026 (FG-32).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "control-questions roles"
 },
 {
  "id": "FG-27",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 17 carries a reference block that opens the evidence figure’s protocol view, not a second compact protocol table.",
  "challenge": "The brief allowed \"a compact deep-linked view or reference\".",
  "evidence": "editorial record (not published) (open items)",
  "verdict": "applied",
  "change": "A reference was built. Decide whether section 17 should also show a compact protocol table beside the reference. Applied in the editorial repair of 6 October 2026: section 17 carries a compact semantic protocol summary from the same data file, linked to the explorer; no second SVG (FG-33).",
  "reason": "Author decision; not decided by the figure pass.",
  "affected": "editorial record (not published) s17 figure reference block; build/render.mjs figureRef",
  "src": [],
  "implementation": "Applied on 6 October 2026 (FG-33).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "figure pass 2026-10-06",
  "review_finding": "rights: open item"
 },
 {
  "id": "FG-28",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figures 12, 13, 14 and 16 printed a Boolean “Brand decides: yes/no” on every stage, beside owner cells such as “Agency planner with brand approval” (baseline 2) and “Agency lead; brand approves strategy” (B 2), both marked “no”.",
  "challenge": "Live validation V06: the Boolean contradicted the adjacent approval language and the detail list never defined which decision it named.",
  "evidence": "Live validation of 6 October 2026, V06 and the dispositions of Figures 12, 13, 14 and 16 (editorial record).",
  "verdict": "applied",
  "change": "The Boolean is removed from the data file, the drawing, the chapter strips’ stage lists, the detail panel, the “what changes” panel, the compact phone lists, the alternative tables and the four SVG exports. Three fields replace it on every stage of every path (28 stages): execution owner (who runs the stage), approval owner (whose sign-off the stage’s output needs before the next stage, or none inside limits already granted) and delegated scope (what the executor may do without a further sign-off); a one-line approval field is drawn on each stage box as “Approval: …”, defined on the drawing (“within the grant” or “within the approved plan” = no new sign-off inside limits already granted). All three are the figure data’s reading of the manuscript’s one “Owner of decisions” cell and the approval arrows of that scenario (marked as an inference); the manuscript cell is quoted unchanged beside the split in the panel and the tables. The manuscript tables of sections 20 to 23 needed no split: each ambiguous cell already states the approval in words, so no manuscript table changed; the four figure text equivalents were reworded. The stage boxes grew from 170 to 180 units and the drawing from 800 to 880 units to hold the definition and the approval line.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "figures/data/scenario-comparison.json, baseline.json, scenario-a.json, scenario-b.json, scenario-c.json; build/figures/scenario-comparison.shared.js, scenario-comparison.mjs, scenario-comparison.js, scenario-comparison.css; figures/baseline.svg, scenario-a.svg, scenario-b.svg, scenario-c.svg; editorial record (not published) figures.fig-baseline, fig-scenario-a, fig-scenario-b, fig-scenario-c (text equivalents); scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (figures 12, 13, 14, 16).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "V06"
 },
 {
  "id": "FG-29",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 24 table P2-0173 row labels “Many vendors (open)” and “Few vendors (restricted)”; the figure asks whether providers can be connected and replaced (FG-22, open).",
  "challenge": "Live validation V08 and the recommended resolution of FG-22: apply the figure’s connect-and-replace definition to the table as a consistency repair.",
  "evidence": "Live validation of 6 October 2026, V08 and FG-22 (editorial record); P2-0172.",
  "verdict": "applied",
  "change": "Row labels now read “Open: providers can be connected and replaced” and “Restricted: providers are hard to connect or replace”, the definition of P2-0172 that the figure already used. The cell texts are unchanged. FG-22 is closed by this row.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "s24/P2-0173",
  "src": [],
  "implementation": "Applied on 6 October 2026 (section 24; Figure 17 unchanged).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "V08; FG-22"
 },
 {
  "id": "FG-30",
  "kind": "figure",
  "severity": "Low",
  "original": "The AdCP row printed 3.2.1 at commit 6adfebe2 in the section 17 table, the evidence figure and its panel; the source register’s ROOT-S302 also recorded a v3.2.2 tag dated 4 October 2026, and the paper did not say which version it analysed or what the patch changed (FG-24, open).",
  "challenge": "Live validation V08: inspect the pinned repository, tag and release notes; distinguish the version analysed, its release date, the tag dates and any later patch inside the cutoff; never substitute the latest version silently; one record should feed the figure, the panel, section 17 and the ledger.",
  "evidence": "Live validation of 6 October 2026, V08 and FG-24 (editorial record); the local pinned clone of adcontextprotocol/adcp at 6adfebe2 (read only).",
  "verdict": "applied",
  "change": "One version record now sits on the AdCP item of figures/data/evidence-explorer.json and feeds the protocol grid’s detail panel, the section 17 view and this row: version analysed 3.2.1 at commit 6adfebe2 (2026-10-05 09:11:57 -0400), generally available from 30 September 2026 per docs/reference/release-notes.mdx and versions.mdx at that commit (3.2.0 was never released; package.json reads 3.2.1); tags v3.2.1 (c32bd78c, 2026-10-01) and v3.2.2 (e3b3aaa9, 2026-10-04) as the register recorded them on 5 October 2026; the 3.2.2 patch tag is inside the cutoff and its CHANGELOG.md entry at the pinned commit lists two documentation changes (account references before provisioning; trust and verification docs made consistent with the spec), no schema or wire change, and the release notes at that commit carry no 3.2.2 entry. Rule: 3.2.1 stays the version analysed; 3.2.2 is reported beside it, never substituted. What was inspected: the local depth-1 clone only (HEAD, package.json, CHANGELOG.md, .changeset/, release-notes.mdx, versions.mdx, whats-new-in-3-2.mdx); it holds no tag objects, so the tag commits and dates could not be re-verified from the tags themselves and are the register’s record. The section 17 table’s AdCP cell states the same; the former figure-data gap on this point is closed. FG-24 is closed by this row.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "figures/data/evidence-explorer.json (protocol_view.items[adcp].version_record, version_verified, protocol_table); build/figures/evidence-explorer.mjs, evidence-explorer.js; s17/P2-0015; editorial record (not published) figures.fig-evidence-explorer (text equivalent)",
  "src": [],
  "implementation": "Applied on 6 October 2026 (Figure 2, section 17).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "V08; FG-24"
 },
 {
  "id": "FG-31",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 11 printed its two proposals (“shared customer understanding”, “learning kept”) as measures (“measure: proposed”) and listed all six measures in the drawing’s measure slot (ten lines), so the drawing was dense (FG-23, open).",
  "challenge": "Live validation, Figure 11 and FG-23: keep both as proposed diagnostic questions, not measures, until operationalised; a shared understanding must permit disagreement; learning should include null and failed tests and why; move the dense list into the detail or table view and keep the drawing lighter; present neither as demonstrated causal value.",
  "evidence": "Live validation of 6 October 2026, Figure 11 disposition and FG-23 (editorial record).",
  "verdict": "applied",
  "change": "Both proposals are kept as proposed diagnostic questions, labelled “question: proposed” on the node and “proposed diagnostic question, not a measure” everywhere else, reworded to the validation’s constraints: “Can both sides state the same customer picture, and can either side disagree with it on the record?” and “Does the next brief cite what the last round tried, what worked, what failed or showed nothing, and why?”. The drawing’s slot now carries a short prompt that names which stages have a measure from the paper and which a proposed question; the full list of six moved to the detail panel (shown by default), the phone cards and the table. Caption, text equivalent and scope reworded. P4-0006 is unchanged; the questions remain the figure data’s proposal. FG-23 is closed by this row.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "figures/data/value-judgment.json; build/figures/value-judgment.mjs, value-judgment.js, value-judgment.css; figures/value-judgment.svg; editorial record (not published) figures.fig-value-judgment",
  "src": [],
  "implementation": "Applied on 6 October 2026 (Figure 11, section 19).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "FG-23"
 },
 {
  "id": "FG-32",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 1 drew five cards in one row with 13-character wrapping, printed proposed accountable roles without saying what a role is not, and its stop-right detail did not name who can technically revoke a grant or what a contractual cancellation cannot undo (FG-26, open).",
  "challenge": "Live validation, Figure 1 and FG-26: keep the proposed roles; state that legal authority does not follow from a title and that each role is not a separate hire; make technical revocation authority and contractual cancellation limits explicit in the stop-right detail; consider three plus two cards or a selected-card focus to reduce narrow wrapping.",
  "evidence": "Live validation of 6 October 2026, Figure 1 disposition and FG-26 (editorial record); s27/P2-0211, P2-0216; s21/P2-0065; s25/P2-0183, P2-0189; s17/P2-0021; s16/P4-0003.",
  "verdict": "applied",
  "change": "The cards now sit three and two (314 units wide, wrapping at 23 and 32 characters instead of 13 and 17), with a roles note in the sixth place: “Roles are the section 27 proposal. A title grants no legal authority: the contract and the grant do. One person may hold several roles; no role is a separate hire.” (basis: the proof function is defined by decision rights, not by job title, P2-0216; staff can be shared or bought but one person must own each join, P2-0065). The stop-right card’s detail and phone card carry two new labelled paragraphs from the data file: technical revocation authority (security and legal can revoke any grant; the brand can revoke authority and every active agent stops or falls back safely; the stop must reach every connected tool, queue and booked commitment) and contractual cancellation limits (a cap is not a liability ceiling; spend stops within the agreed window and partial actions are listed for repair; a cancellation does not reverse a booking already made). The alternative table gains an “Authority and limits” column; the caption and text equivalent say so. Before and after PNGs are in the editorial record. FG-26 is closed by this row: the roles stay a proposal.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "figures/data/control-questions.json; build/figures/control-questions.mjs, control-questions.js; figures/control-questions.svg; editorial record (not published) figures.fig-control-questions",
  "src": [],
  "implementation": "Applied on 6 October 2026 (Figure 1, section 1).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "FG-26"
 },
 {
  "id": "FG-33",
  "kind": "figure",
  "severity": "Low",
  "original": "Section 17 carried only a reference block that opened the evidence figure’s protocol view (FG-27, open).",
  "challenge": "Live validation, Figure 2 and FG-27: add a compact semantic HTML protocol summary at section 17, linked to the explorer, reusing the same data; no second independently maintained SVG.",
  "evidence": "Live validation of 6 October 2026, Figure 2 disposition and FG-27 (editorial record).",
  "verdict": "applied",
  "change": "The section 17 block is now a figure_view of fig-evidence-explorer (view “protocol”), rendered by a view export of the evidence module from figures/data/evidence-explorer.json, as the entity chapter views are: the manuscript’s sentence, the link that opens the protocol view, a semantic table of the six items on the six stages with the record and version verified, the AdCP version record (FG-30) and the stage and transport notes. No SVG is added; the Markdown edition prints the sentence as a quoted line. FG-27 is closed by this row.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "editorial record (not published) s17 (block type figure_view); build/figures/evidence-explorer.mjs (view export), evidence-explorer.css; build/render.mjs (the block reaches the view), build/render-md.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026 (section 17).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "FG-27"
 },
 {
  "id": "FG-34",
  "kind": "build",
  "severity": "Low",
  "original": "Figure 20 drew 138-unit phase cards with 9-character headings and five secondary lines; the task-and-owner count line touched the card edge.",
  "challenge": "Live validation, Figure 20: widen the phase cards or reduce secondary text; the short headings should carry the overview.",
  "evidence": "Live validation of 6 October 2026, Figure 20 disposition (editorial record).",
  "verdict": "applied",
  "change": "Phase cards widened from 138 to 152 units (gate zones 108 to 94; diamonds 22 to 20 units); the “Days …” line left the card face for the detail panel and the phone cards; headings wrap at 11 characters and the key line at 15; the task-and-owner count wraps inside the card. Nothing else in the figure changed.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "build/figures/ninety-days.mjs; figures/ninety-days.svg",
  "src": [],
  "implementation": "Applied on 6 October 2026 (Figure 20, section 28).",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "Figure 20"
 },
 {
  "id": "FG-35",
  "kind": "review",
  "severity": "Medium",
  "original": "ER-F14 and ER-F15 still carried the verdict “assigned” in the public corrections ledger (and the status “Assigned; not applied in this update.” in the findings file) while their implementation text said applied; the public QA record claimed zero text collisions and no labels outside the canvas in exercised states, with no readable test record linked for public readers.",
  "challenge": "Live validation V10: mark the old assignments consistently; add the live findings and the actual test coverage; keep untested surfaces open; link a readable test record; publish a bounded verification statement; three passes by one assistant remain three passes, not three independent reviews.",
  "evidence": "Live validation of 6 October 2026, V10 (editorial record).",
  "verdict": "applied",
  "change": "ER-F14 and ER-F15 now carry the verdict “applied” (their implementation and verification texts were already the applied record) and the findings file says the same. The release note and the test matrix carry a bounded verification statement for the repaired build (the build, the transitions exercised, the sample exports, the remaining limits) and record the live validation’s findings with what this repair applied and what stays open; they no longer claim zero collisions or zero labels outside the canvas beyond what the repaired build’s layout scan reports for the states it exercises. The test matrix is published as a download, data/figure-test-record.md, and the paper’s update note links it.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "data/corrections-ledger-v3.json (+ CSV) ER-F14, ER-F15; data/findings-v3.json (+ CSV); editorial record: release note and test matrix; editorial record (not published) update_notes; build/render.mjs (download)",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the repaired build of 6 October 2026 by one assistant (three passes by one assistant, not three independent reviews): node scripts/check.mjs --final, node scripts/browser-check.mjs (207 assertions, 0 failed, including the new owner-field, section 17, version-record, roles and judgment assertions), python3 scripts/pdf-type.py (156 pages; OK: body 10.5 pt, no text page under 7 pt, no near-empty page), node scripts/check-figure-data.mjs; element screenshots at 1366 and 375 CSS px, light and dark, of every figure touched, looked at by the reviewer. Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "V10"
 },
 {
  "id": "FG-36",
  "kind": "review",
  "severity": "Low",
  "original": "The author’s live figure validation of 6 October 2026 (a live browser and representation review of the published figure upgrade, by one assistant) was received after the figure release note of the same day; its findings were not yet in the ledger.",
  "challenge": "The record must show what the validation covered, what it found and which findings this repair applied.",
  "evidence": "Live validation of 6 October 2026 (editorial record): live Chromium inspection at 1363 × 936; all 20 figure records; focused interaction tests; DOM checks for canvas containment and selected state; the four calculator presets and a five-input reset; standalone ownership and learning-exit SVGs; the 153-page PDF with spot checks on pages 12, 111 and 116. Not performed by it: screen readers, physical phones, real browser zoom, other browsers, a complete dark-theme pass, all SVG downloads, all PDF pages, repository or code inspection, GitHub or deployment-log verification, fresh verification of the paper’s sources or the AdCP repository.",
  "verdict": "applied",
  "change": "Verdict of the validation: materially improved, not ready for an unqualified sign-off. Findings V01 to V10, dispositions for all 20 figures and recommended resolutions for FG-18 to FG-27. All ten findings are applied on the merged repair build: V01 and V02 (viewer lifecycle and geometry: the whole figure moves into the dialog; the readout is measured from the drawing after every change), V03 (FG-47, hard pre-spend cap, Figure 9), V04 (FG-48, retailer approval and authority states, Figure 19), V05 (FG-43, FG-44, FG-49: per-group ownership exports and a labelled reading sheet, exports wrapped for the fallback font, retailer labels contained, inline height restored after the viewer closes), V06 (FG-28), V07 (FG-37 to FG-42, ownership taxonomy, every row validated against its basis), V08 (FG-29, FG-30), V09 (FG-45), V10 (FG-35, this row, the update note and the public test record). FG-18 to FG-27 are all applied. Still open after the repair: the Fit all floor on the two tallest views (Horizon group map and timeline overview render 20-unit labels at 14.0 to 14.4 px; Fit width keeps them at 18.5 px or more); the Horizon single-loop views are scaled copies of the overview; the ownership print takes five half-empty sheets; the reading sheet is for zoom and print, the per-group files are the reading copies; and one author decision: whether execution pauses when the week 4 read fails while tranche 1 still has money.",
  "reason": "Editorial repair of 6 October 2026, after the author’s live figure validation of the same day (editorial record). A rendering, data and wording change; no source re-opened, no fact after the 5 October 2026 cutoff; the local pinned AdCP clone was inspected, nothing fetched.",
  "affected": "the corrections ledger; editorial record: release note and test matrix",
  "src": [],
  "implementation": "Recorded on 6 October 2026; updated after the four repair passes were merged the same day.",
  "verification": "Verified on the merged repair build of 6 October 2026 by one assistant (four repair passes and one merge, not independent reviews): node scripts/check.mjs --final; node scripts/browser-check.mjs, including a matrix that runs every control of every interactive figure in the page and in the enlarged view (272 transitions, 544 rows, all pass) and checks the readout against the drawing’s rendered scale; python3 scripts/pdf-type.py; node scripts/check-figure-data.mjs; the author’s headline cases reproduced in Chromium (Stagwell to Horizon in the viewer, timeline lens and learning-exit successor in the viewer, $100,000 a day against the $90,000 cap, the 12% code before and after sign-off and with tranche 1 spent), screenshots under editorial record (not published) Public test record: data/figure-test-record.md. Not run: a screen reader, a physical phone, real browser zoom, other browsers.",
  "review_pass": "editorial repair 2026-10-06",
  "review_finding": "live validation 2026-10-06"
 },
 {
  "id": "FG-37",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 row Digitas: relation word “Owned · agency brand” beside “Agreement announced 20 Dec 2006; closing not checked”.",
  "challenge": "A provenance mismatch, not a finding about ownership: the audited record holds the agreement (s06/P1-0043: “The date is an announcement, not a closing”; s04/P1-0025), the closing is carried forward unread (s31/P4-0015), and the paper’s deal order treats Digitas as bought (s06/P1-0042).",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "Separate fields on the row: type Business; relation Owned; transaction status “Purchase announced 20 Dec 2006”; effective date none in the record held (the January 2007 closing carried forward unread); evidence date 20 Dec 2006; verification “Owned on the record; not verified by this review: closing not checked”. The same split applies to Acxiom (owned on the record in the IPG lineage, OMC-S033; IPG’s 2018 purchase record unread) and to Omni (named as the group platform in OMC-S020; launch record unread).",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json entities digitas, acxiom, omni; build/figures/entity-capability.*; editorial record (not published) fig-entity-capability",
  "src": [],
  "implementation": "Applied; browser-check asserts the Digitas row words.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 Digitas"
 },
 {
  "id": "FG-38",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 typed Lotame and LiveRamp as products (and Sapient, Epsilon, Flywheel, Interpublic, Aegis, Merkle as agency brands or parents; Kantar as an operating group; InfoSum as a product).",
  "challenge": "The paper treats them as acquired or proposed businesses: s04/P1-0025 entity types “Data business”, “Proposed purchase”, “Consulting and engineering firm”, “Data and CRM business”, “Commerce business”, “Parent-level deal”, “Research unit”, “Data-collaboration technology”; s03/P1-0018 (“A parent owns businesses”).",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "New entity type “business” (a business or subsidiary the parent bought, agreed to buy or holds a stake in) applied to Digitas, Sapient, Epsilon, Lotame, LiveRamp, Kantar, InfoSum, Interpublic, Flywheel, Acxiom, Aegis, Merkle and Horizon Media; Xaxis typed “trading desk” (s03/P1-0019); “product” kept for Omni, HorizonOS, Blu and the Publicis retail media products. Lotame: Owned, completed April 2025 on the company’s own note, to be re-read (s06/P1-0043). LiveRamp: Proposed purchase, agreed 17 May 2026, pending at the 16 September 2026 status, never shown as owned (s06/P1-0051; s03/P1-0022).",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json entity_levels and entities; build/figures/entity-capability.*",
  "src": [],
  "implementation": "Applied; the row words are asserted for Lotame and LiveRamp.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 Lotame and LiveRamp"
 },
 {
  "id": "FG-39",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 drew “Enterprise software ($16 million committed, H1 2026)” as an owned product of Stagwell.",
  "challenge": "s11/P1-0097 holds a revenue-category label in the Q2 2026 earnings presentation (filed 30 July 2026): “a commercial signal”, not recognition and not a product entity; the three 2026 product releases are carried forward unread (s11/P1-0096; s31/P4-0015). Current ownership must not be inferred from a revenue-category label.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "Row retyped: type “reported figure” (a labelled figure in a filing, not an entity), relation “reported figure”, status “Reported in a filing of 30 Jul 2026”, verification “Not an entity: no product entity in the record held”; a dated record event (e-stagwell-software, 30 July 2026, claim A037, ALT-S018) added so the row rests on its filing; no capability mark.",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json entity stagwell-software, events, alt_table; build/figures/entity-capability.*",
  "src": [],
  "implementation": "Applied; the row words are asserted.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 enterprise software"
 },
 {
  "id": "FG-40",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 labelled Horizon “Independent: not a holding group” while drawing Horizon Media Holdings as the parent; the group label, group note, print heading and text equivalent repeated “not a holding group”.",
  "challenge": "s12/P1-0112 and s22/P2-0121: Horizon Media Holdings is a private parent; Horizon is the independent agency the paper follows. Independence does not mean the absence of a holding structure.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "Horizon is described as the independent agency-group case: group label “Horizon Media (the independent agency-group case)”, pill “Independent agency group”, drawing note and group note “a private parent and its agency, so independence means outside the six groups, not the absence of a holding structure”; Horizon Media typed as a business, part of the group on the issuer’s description; the phrase “not a holding group” removed from the figure, its print sheets, the caption and the text equivalent.",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json groups[horizon], notes; build/figures/entity-capability.*; editorial record (not published) fig-entity-capability",
  "src": [],
  "implementation": "Applied; browser-check asserts the pill and the absence of the old phrase.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 Horizon"
 },
 {
  "id": "FG-41",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 placed SharkNinja at the partnership level with the relation “Named use”.",
  "challenge": "s12/P1-0112 and s22/P2-0122: SharkNinja is the one named client, a deployed integration (audience collaboration, not autonomous buying), one of four links that must stay distinct from an equity partnership, a commercial partnership and a selected vendor.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "New entity type “named client” (a named client of the entity, in a use the issuer reported; not a holding and not a partnership level); SharkNinja: type Named client, relation Named client use, status “Use reported 18 Jun 2026”, verification “Issuer’s own description; no deal record”. HorizonOS Labs typed “programme” (access, not ownership) instead of partnership.",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json entity_levels, entities sharkninja and horizonos-labs; build/figures/entity-capability.*",
  "src": [],
  "implementation": "Applied; the row words are asserted.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 SharkNinja"
 },
 {
  "id": "FG-42",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 rows carried one relation word (Owned, Stake kept, …) with the level and a dated line; brands, operating groups, group platforms and built products read “Owned” with no deal record behind the word.",
  "challenge": "Live validation V07: separate entity type, relationship, transaction status, effective date and evidence date; separate “owned on the record” from “ownership verified by this review”; keep unsupported marks blank.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "Every entity in figures/data/entity-capability.json now carries entity_level, relation, transaction_status, effective_date (with a note where it differs from the record), evidence_date (or a label) and verification, each value defined in the file with its basis (s03/P1-0018 to P1-0022, s04/P1-0024 to P1-0025, s31/P4-0015). New relations: “part of the group” (an operating group, a client brand or a group platform on the issuer’s own description; no deal record is needed or held: WPP Media, Mindshare, Wavemaker, EssenceMediacom, Omnicom Media, Hearts United, OMD/PHD/UM/Initiative, Omni, Havas Media Network, Horizon Media), “built or launched” (Xaxis, the Publicis retail media products, HorizonOS) and “reported figure”. “Owned” is kept only where the paper records a purchase; its verification line says “Ownership verified by this review: completion record held” (Sapient, Epsilon, Interpublic, Flywheel, Aegis, Merkle), “Owned on the company’s own note; to be re-read” (Lotame) or “Owned on the record; not verified by this review” (Digitas, Acxiom, Omni). Kantar: “The stake at that date; not checked since” (s07/P1-0060). InfoSum: “Not drawn as owned: completion not in the record held”. The drawing prints the three lines on every row; the tables carry the fields as columns; the detail panel lists them under “Entity, kept in separate fields”. Every row was validated against its basis passage (notes, validation table); no fact was added.",
  "reason": "Live validation V07.",
  "affected": "figures/data/entity-capability.json; build/figures/entity-capability.{mjs,js,css}; editorial record (not published) fig-entity-capability caption and text equivalent; figures/entity-capability.svg",
  "src": [],
  "implementation": "Applied; browser-check asserts the words of all 40 rows against the embedded data.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V07 taxonomy fields"
 },
 {
  "id": "FG-43",
  "kind": "figure",
  "severity": "Medium",
  "original": "The ownership download was one 1000 × 6256 SVG stacking all seven groups; Chrome opened it as a tiny vertical strip, and the tools note called it “the default view with its assumptions”.",
  "challenge": "Live validation V05: offer “Download this group/view” plus an explicitly labelled all-groups export at an intentional reading size; fix the note.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "The figure now writes one file per group (figures/entity-capability-<group>.svg, 1000 units wide, the view shown) with a “Download this group: <group>” link that follows the selected tab, and figures/entity-capability.svg is a reading sheet of all seven views in four columns and two rows (4 120 units wide, wider than tall), linked as “Download all groups (one reading sheet, 4 × 2)” and titled “all seven views on one reading sheet”; the tools note describes both. build/render.mjs lets a module hand over extra files (`files`), extra links (`downloadLinks`), its download label and its note.",
  "reason": "Live validation V05.",
  "affected": "build/figures/entity-capability.mjs; build/render.mjs (download files, links and note); figures/entity-capability.svg",
  "src": [],
  "implementation": "Applied; browser-check asserts the seven per-group links and the reading sheet.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V05 ownership export"
 },
 {
  "id": "FG-44",
  "kind": "figure",
  "severity": "Medium",
  "original": "Standalone exports were wrapped by character counts for Inter; without the site’s fonts the learning-exit headers and cells ran together, the evidence explorer’s protocol footer ran beyond its canvas, and the deal checklist’s long chips would not fit a box.",
  "challenge": "Live validation V05: measure text with the actual export fallback, add column padding and wrap before boundaries; open the exports with no site CSS and the font absent.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "New build/figures/_textwidth.mjs holds glyph advances measured in Chromium for DejaVu Sans (regular and bold), the widest common fallback; the learning-exit grid, the evidence explorer’s header and footer lines and protocol cells, the deal checklist’s boxes, chips and badge, and every ownership row, legend and footer are wrapped by measured width inside their own cell with padding, and each canvas height follows its footer. Figure 2: the long footer and the header lines wrap; nothing else changed. browser-check opens every changed export in a wrapper page with no site CSS and “DejaVu Sans” forced and asserts: every text inside the canvas and its own box, no collision, nothing under 16 units.",
  "reason": "Live validation V05.",
  "affected": "build/figures/_textwidth.mjs (new); build/figures/learning-exit.mjs; build/figures/evidence-explorer.mjs; build/figures/acquisition-chain.mjs; build/figures/entity-capability.mjs; scripts/browser-check.mjs; figures/{learning-exit,evidence-explorer,acquisition-chain}.svg",
  "src": [],
  "implementation": "Applied; the export pass is a gate.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V05 export text containment"
 },
 {
  "id": "FG-45",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 5 kept the “Template: no company data” badge with a case selected, and the case narrative sat below the twelve-case list.",
  "challenge": "Live validation V09.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "The badge reads “Worked case: <name> · <status>” on selection (status words from the case’s asset cell: completed, agreement announced, pending at the cutoff, a disposal) and returns to “Template: no company data” only after Clear case; a one-line case summary (the asset link’s own words, observed) sits above the checklist in the controls, with the pending, announcement and disposal status conspicuous; the drawing’s case line carries the same status. Nodes are resolved once from the figure root, so select, switch and clear work inline and in the enlarged viewer (asserted).",
  "reason": "Live validation V09.",
  "affected": "figures/data/acquisition-chain.json cases[].status, status_kind, status_basis; build/figures/acquisition-chain.{mjs,js,css}; editorial record (not published) fig-acquisition-chain text equivalent",
  "src": [],
  "implementation": "Applied; browser-check asserts the badge and summary per state, inline and enlarged.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "V09 badge"
 },
 {
  "id": "FG-46",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 18 on phones printed the four asset classes with all six conditions open, a tall stacked table.",
  "challenge": "Live validation, Figure 18 disposition: prefer a selected-asset detail view on narrow screens.",
  "evidence": "editorial record (not published); editorial record (not published)",
  "verdict": "applied",
  "change": "The compact layout is four asset cards (native <details>, keyboard-operable, no JavaScript needed), each summary naming the owner and the exit outcome, each opening to its six conditions and the successor action; the grid stays one Enlarge away.",
  "reason": "Live validation, Figure 18 disposition.",
  "affected": "build/figures/learning-exit.{mjs,css}; editorial record (not published) fig-learning-exit text equivalent",
  "src": [],
  "implementation": "Applied; asserted at 375 px.",
  "verification": "Checked on 2026-10-06 in the repair pass (worktree nfa-wt-3): node scripts/check-figure-data.mjs (22 of 22 files), node scripts/browser-check.mjs (the assertions named in the change column, by pointer and keyboard, inline and in the enlarged viewer), standalone exports opened in headless Chromium with no site CSS and the DejaVu Sans fallback forced (every text inside the canvas and its own box, no collision), PNG inspection at 1366 and 375 px in light and dark; recorded in editorial record (not published) No source re-opened; no fact after the cutoff.",
  "review_pass": "repair pass 2026-10-06",
  "review_finding": "Figure 18 compact"
 },
 {
  "id": "FG-47",
  "kind": "figure",
  "severity": "High",
  "original": "Figure 9 (spending to proof): at daily spend $100,000, lag 7, cap $90,000, commitments 0 the model spent $100,000 on day 1 against a $90,000 cap, paused, and clipped remaining authority to 0, hiding a $10,000 overshoot while the illustration described a stop at the cap.",
  "challenge": "Live validation V03 (High): a valid input introduced an overshoot without an overrun assumption; the read schedule was not stated.",
  "evidence": "editorial record (not published) V03; editorial record (not published)",
  "verdict": "applied",
  "change": "Spend is defined as divisible daily spend under a hard pre-spend cap: allowed spend each day = max(0, min(proposed daily spend, cap − spent − outstanding commitments)). A delayed stop is its own labelled assumption (days the stop takes to bite, default none); the spend past the stop and the exposure beyond the cap are their own lines and columns, never hidden by clipping remaining authority to zero. The read schedule (first read on day 7, then each day’s spend read 7 days later: a rolling lag, not one assessment of all earlier spend) is stated in the drawing, the sentence, the text equivalent and the assumption line. Acceptance cases asserted: cap below one day’s spend; a cap not divisible by the daily spend; commitments equal to and above the cap; a delayed read; zero available authority; the default; every representation agrees.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/figures/spending-to-proof.shared.js, .mjs, .js, .css; figures/data/spending-to-proof.json; figures/spending-to-proof.svg; editorial record (not published) figures.fig-spending-to-proof; scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "V03"
 },
 {
  "id": "FG-48",
  "kind": "figure",
  "severity": "High",
  "original": "Figure 19 (retailer policy gate): the 12% code showed “creative lead first: needs sign-off” while the outcome said permitted and the sentence said it executes within the released tranche; with tranche 1 spent before the read, the tranche check still passed and the outcome stayed permitted.",
  "challenge": "Live validation V04 (High): financial eligibility, required approval and execution were conflated.",
  "evidence": "editorial record (not published) V04; editorial record (not published)",
  "verdict": "applied",
  "change": "The states are separated: financially eligible → awaiting creative approval → executable within the available tranche → executed and logged. Nothing executes until every required approval and authority check passes; a tranche spent before its read holds the authority gate and blocks the executed path; a passed, signed read releases the next tranche and execution resumes within it. A control “creative lead sign-off: not yet signed off / signed off (assumed for this walkthrough)” shows both states, and the completed path labels the sign-off as assumed. The outcome pill, the path, the gate marks, the stage list, the sentence and the available-authority line are produced by one rule and asserted to agree for the 12% code before and after sign-off, tranche 1 exhausted before its read, week 4 failed and delayed, week 4 then week 8 passed in sequence, and the 25% code rejected.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/figures/retailer-agents.shared.js, .mjs, .js, .css; figures/data/retailer-agents.json; figures/retailer-agents.svg; editorial record (not published) figures.fig-retailer-agents; scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026. The enlarged (viewer) transitions are not asserted here; the viewer lifecycle (V01) is another agent’s repair.",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "V04"
 },
 {
  "id": "FG-49",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 19: the Tranche 3 amount (“up to $160,000”) extended beyond its box in the browser and on PDF page 116; the rejected-state subtitle exceeded its narrow box.",
  "challenge": "Live validation V05 (Medium, retailer parts): text containment was not fully repaired.",
  "evidence": "editorial record (not published) V05; editorial record (not published)",
  "verdict": "applied",
  "change": "The tranche cards stack their labels (tranche, amount, weeks, cumulative maximum, status) and the state boxes are taller with subtitles wrapped to the box width from a per-glyph measure; every card and state group is marked and the browser check asserts that each text’s rendered box lies inside its card and the canvas in every exercised state; the PDF page was re-rendered and inspected.",
  "reason": "Figure repair of 6 October 2026 after the author’s live validation (editorial record (not published)). A model, wording and rendering change; no source re-opened, no fact after the 5 October 2026 cutoff.",
  "affected": "build/figures/retailer-agents.shared.js; scripts/browser-check.mjs",
  "src": [],
  "implementation": "Applied on 6 October 2026.",
  "verification": "Verified on the rebuilt figure of 6 October 2026 by one assistant: node scripts/check.mjs --final, node scripts/browser-check.mjs (the acceptance cases named in the change column asserted inline, by pointer and keyboard), python3 scripts/pdf-type.py, node scripts/check-figure-data.mjs, plus screenshots at 1366 and 375 CSS px in light and dark and the two PDF pages inspected (editorial record (not published)).",
  "review_pass": "figure repair 2026-10-06",
  "review_finding": "V05 (retailer parts)"
 },
 {
  "id": "FG-50",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 9 (spending to proof), found while reproducing the validation’s cases on the merged repair build: with a slow stop (for example $100,000 a day, stop 2 days late) the “authorised cap” label sat on the overshoot bars and under the stop marker and could not be read; the slow-stop input’s help text read “Assumption: assumption; default none”.",
  "challenge": "Reproduction of V03 on the merged build, 6 October 2026.",
  "evidence": "editorial record (not published); scripts/browser-check.mjs (cap-label assertion).",
  "verdict": "applied",
  "change": "The cap label takes the first span of columns that stays at or under the cap and clear of the stop marker; where no span is free it carries a paper-coloured halo and is drawn after both markers. The help text reads “Assumption; default none”.",
  "reason": "A label the reader cannot read hides the cap the figure is about.",
  "affected": "fig-spending-to-proof (page, enlarged view, download, print)",
  "src": "",
  "implementation": "build/figures/spending-to-proof.shared.js, spending-to-proof.mjs; 6 October 2026.",
  "verification": "browser-check asserts the label clears every bar where a clear span exists and is haloed and drawn last where none does, for $100,000 a day with a 2-day slow stop, commitments of $120,000 and the default.",
  "review_pass": "repair merge, 6 October 2026",
  "review_finding": "V03"
 },
 {
  "id": "FG-51",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 (ownership): every row carried the entity name plus three sub-lines (type and relation, dated record, verification), so the large groups ran 1,588 to 1,712 units tall and Horizon 1,590; at 1366 × 900 with the panel shown, Fit all rendered 20-unit labels at 9.2 to 10.2 px (Horizon 9.9 px; the author measured 52% and 10.4 px).",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)), item 2.",
  "evidence": "editorial record (not published) (measured table, 113 rows); dist/qa/ownership-readability.txt.",
  "verdict": "applied",
  "change": "The ownership drawing shows the entity name and one line of type · relation · status. Dates, verification qualifications, evidence dates and basis passages moved to the selected-row panel (new “Basis passages” section), the compact cards, the group tables and the text equivalent; nothing was removed from the figure’s record. Every row is selectable by pointer and keyboard. All 14 drawings are at most 890 units tall at 1,000 wide; at 1366 × 900 with the panel shown, Fit width renders essential labels at 18.7 px in every view and Fit all at 17.7 px or more (Horizon ownership 18.7 px, was 9.9).",
  "reason": "A drawing that has to be shrunk to half size to be seen whole cannot be read whole.",
  "affected": "fig-entity-capability (module, caption, text equivalent, exports, static SVGs)",
  "src": "",
  "implementation": "build/figures/entity-capability.{mjs,js,css}; 7 October 2026.",
  "verification": "browser-check: every ownership and capability view ≤ 1.1 × its width, Fit width ≥ 18 px and Fit all ≥ 14 px at 1366 × 900, moved facts shown in the panel for selected rows, no dates or verification wording in row lines, all 80 rows clickable.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 2"
 },
 {
  "id": "FG-52",
  "kind": "figure",
  "severity": "Medium",
  "original": "Figure 3 drew the six capability columns inside the ownership structure, so ownership and the paper’s capability mapping (analysis) read as one claim and lengthened every row.",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)), item 2 (“separate the capability mapping from the ownership structure”).",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "A view toggle in the same figure: “Ownership” and “Capability mapping (analysis)”, each its own short drawing from the same data, selection kept across views. The capability view keeps the legend, the empty-is-not-zero rule, the FG-18 definition and the S4 Capital divider. Each group has a second download, entity-capability-<group>-capabilities.svg; entity-capability-<group>.svg keeps its URL as that group’s ownership drawing; the reading sheet entity-capability.svg holds the seven ownership drawings at 4,120 × 1,654 (was 4,120 × 3,462); the Horizon ownership file is 1,000 × 734 (was 1,000 × 1,590).",
  "reason": "Ownership is a dated fact; the capability columns are the paper’s analysis. They should not share a row.",
  "affected": "fig-entity-capability; downloads",
  "src": "",
  "implementation": "build/figures/entity-capability.*; render.mjs download links; 7 October 2026.",
  "verification": "browser-check: the two views by pointer and keyboard with the selection kept; 18 exports scanned standalone with the fallback font; 14 per-group exports checked for size and no dates in row lines.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 2"
 },
 {
  "id": "FG-53",
  "kind": "figure",
  "severity": "Low",
  "original": "The enlarged viewer labelled its fit buttons “Fit width” and “Fit all” with no sign that Fit all is an overview; and it captured the pointer on every press, so a click inside the enlarged canvas never reached the drawing (every figure).",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)), item 2 (“label Fit all as an overview, with Fit width as the reading mode”); the click defect found by the ownership pass.",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "Buttons read “Fit width (reading)” and “Fit all (overview)” with explanatory titles. A note appears under the toolbar when a fit mode renders 20-unit labels below 16 px (“Overview: labels below reading size; use Fit width to read.”). Pointer capture starts only after a 4 px drag, so clicks reach the drawing and drag-to-pan still works.",
  "reason": "The reader should know which mode is for reading; a click that does nothing reads as a broken figure.",
  "affected": "shared viewer (all 20 figures)",
  "src": "",
  "implementation": "build/figures/_viewer.{js,css}, build/render.mjs; 7 October 2026.",
  "verification": "browser-check: button labels and titles, the note on the timeline overview at Fit all and hidden at Fit width, a real pointer click on a row inside the viewer, drag-to-pan.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 2"
 },
 {
  "id": "FG-54",
  "kind": "figure",
  "severity": "Low",
  "original": "Figure 3’s text equivalent read “The Stagwell 6 million row”.",
  "challenge": "Found by the ownership pass, 7 October 2026.",
  "evidence": "s11/P1-0097 and the figure data label the row $16 million.",
  "verdict": "applied",
  "change": "Corrected to “The Stagwell $16 million row”; the caption and text equivalent now also describe the two views and the per-group capability files.",
  "reason": "A dropped character changed a number.",
  "affected": "figures.fig-entity-capability",
  "src": "",
  "implementation": "editorial record (not published); 7 October 2026.",
  "verification": "Read against the data file and the source passage.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 2"
 },
 {
  "id": "FG-55",
  "kind": "figure",
  "severity": "High",
  "original": "Section 26 mandate (P2-0198) said only “A failed read holds it and returns the plan to the CMO.” (P2-0207 the same). With the week 4 read failed, creative sign-off given and tranche 1 unspent, the retailer figure said “permitted” and “Executes within tranche 1 ($90,000), then is logged.” Whether execution pauses was an open author decision.",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)), item 1: the author decided to pause new execution after a failed gate even if money remains, and supplied the wording.",
  "evidence": "The author’s reproduction, repeated on the merged build (editorial record (not published)).",
  "verdict": "applied",
  "change": "The author’s wording in the P2-0198 “Interim evidence gates” row: “At a failed interim gate, pause new commitments and queued actions that can still be stopped. Hold the next tranche and return the plan to the CMO and budget owner. Unspent budget does not carry execution authority forward automatically. Resume only under a logged human decision consistent with the mandate. Keep existing non-cancellable commitments visible.” P2-0207 says the same in the worked clash. The figure pauses after a failed week 4 or week 8 read: authority none for new commitments and queued actions, no executed path, the failed gate drawn, plan to the CMO and budget owner, “Resume: only under a logged human decision”, non-cancellable commitments “none in this walkthrough”, actions taken before the read kept as executed.",
  "reason": "Unspent budget should not keep execution authority alive after the evidence condition it depended on has failed (the author’s reasoning).",
  "affected": "s26/P2-0198, s26/P2-0207, fig-retailer-agents (module, data, caption, text equivalent, static SVG)",
  "src": "",
  "implementation": "build/figures/retailer-agents.*; figures/data/retailer-agents.json; editorial record (not published); 7 October 2026.",
  "verification": "browser-check: the author’s reproduction by pointer and keyboard, inline and enlarged; week 4 passed then week 8 failed; existing V04 cases unchanged except the failed-read-with-tranche-spent case, now “paused” per the decision.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 1"
 },
 {
  "id": "FG-56",
  "kind": "figure",
  "severity": "Medium",
  "original": "The figure treated a delayed read like a failed one, and with tranche 1 unspent a delayed read let execution continue without limit; the mandate named no continuation.",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)), item 1 (“Treat delayed or inconclusive evidence separately from failure. Specify any permitted continuation in advance, with a time limit and exposure cap. Historical actions should remain logged as executed.”).",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "A new P2-0198 row, “Delayed or inconclusive reads”: not failure; any continuation set in advance with a time limit and an exposure cap; actions taken stay logged as executed. Illustrative week 4 continuation: up to 7 days after the read was due, from what is left of tranche 1, capped at $22,500 (one week’s even share, the FG-21 illustration); the next tranche stays held. Week 8: no continuation, so a delayed week 8 read pauses new execution until it lands. The figure adds the continuation, a control for continuation open or used up, and a pause outside it.",
  "reason": "The author asked for the continuation to be specified in advance; the 7 days and $22,500 are this illustration’s settings, not a recommendation.",
  "affected": "s26/P2-0198 (new row), s26/P2-0207, fig-retailer-agents",
  "src": "",
  "implementation": "as FG-55; 7 October 2026.",
  "verification": "browser-check: delayed inside the window continues within the cap; continuation used up pauses; delayed with tranche 1 spent holds; week 8 delayed pauses.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 1"
 },
 {
  "id": "FG-57",
  "kind": "figure",
  "severity": "Low",
  "original": "The retailer caption had no failed-gate statement; the text equivalent and the reads table merged “fail or delay”.",
  "challenge": "Follows FG-55 and FG-56.",
  "evidence": "editorial record (not published)",
  "verdict": "applied",
  "change": "Caption (60 words) and text equivalent revised; the reads table splits failed from delayed or inconclusive; a rule table and a rule-computed table of all nine read states for the signed 12% code join the text alternative.",
  "reason": "The alternative text must carry the same rule as the drawing.",
  "affected": "figures.fig-retailer-agents; figures/data/retailer-agents.json",
  "src": "",
  "implementation": "editorial record (not published); 7 October 2026.",
  "verification": "browser-check: alt tables and the section 26 wording.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 1"
 },
 {
  "id": "FG-58",
  "kind": "figure",
  "severity": "Low",
  "original": "In a medium window (for example 1024 px) the enlarged viewer’s fixed side panel left a 592 px canvas, so Fit width rendered 20-unit labels at 11.8 px on the ownership views.",
  "challenge": "Measured by the ownership pass, 7 October 2026.",
  "evidence": "dist/qa/ownership-readability.txt (1024 × 768 rows).",
  "verdict": "applied",
  "change": "Until the reader uses Hide or Show panel, a window 900 to 1,199 px wide opens the viewer with the side panel hidden (Horizon ownership at Fit width: 19.5 px); the reader’s choice then holds for the page view. Phones and wide windows are unchanged.",
  "reason": "Fit width should reach reading size on a common laptop width without the reader having to find the panel button.",
  "affected": "shared viewer",
  "src": "",
  "implementation": "build/figures/_viewer.js; 7 October 2026.",
  "verification": "browser-check: at 1024 × 768 the viewer opens with the panel hidden, essential labels ≥ 16 px, and Show panel brings it back.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Item 2"
 },
 {
  "id": "FG-59",
  "kind": "figure",
  "severity": "Low",
  "original": "The record of the 6 October repair (FG-36, the update note and the published test record) said Fit all on the two tallest views renders labels at about 14 px. That measure came from the timeline and an earlier, shorter ownership layout; it did not describe the 1,590-unit Horizon ownership view, which measured 9.9 px (the author: 52%, 10.4 px).",
  "challenge": "The author’s live regression review of 7 October 2026 (editorial record (not published)).",
  "evidence": "The author’s measurement; dist/qa/ownership-readability.txt.",
  "verdict": "applied",
  "change": "The update note of 7 October 2026 and the published test record correct the claim and give the measured sizes per view and viewport after FG-51 to FG-53 and FG-58. The review itself is recorded: functional fixes confirmed live; two items applied (FG-51 to FG-58); not a rerun of all rows, a source audit, or mobile and accessibility certification.",
  "reason": "A published measurement must describe the case it names.",
  "affected": "FG-36; update notes; data/figure-test-record.md",
  "src": "",
  "implementation": "7 October 2026.",
  "verification": "Measured on the build of 7 October 2026 at 1366 × 900, 1920 × 1080, 1024 × 768 and 375 × 812.",
  "review_pass": "author review fix, 7 October 2026",
  "review_finding": "Review record"
 },
 {
  "id": "FG-60",
  "kind": "figure",
  "severity": "Low",
  "original": "Every figure drawing grew with the window (the figure block spanned the full 74rem shell), so on a 1,440 to 1,920 px screen a 20-unit label rendered at about 25 px and drawing titles near 38 px beside 17 px body text; the Horizon single-loop view, enlarged 1.8x, reached about 35 px.",
  "challenge": "The author’s note of 7 October 2026 with three screenshots: the scale of all SVGs relative to the surrounding text looks too large.",
  "evidence": "Measured on the build of 7 October 2026 at 1366, 1440 and 1920 px (every figure: drawing width, essential and supporting label px).",
  "verdict": "applied",
  "change": "On screen the figure block stops at a reading width: the drawing renders at most 880 CSS px wide (0.88 of its 1,000-unit viewBox) on every desktop, so essential 20-unit labels are 17.6 px, 16-unit notes 14.1 px and drawing titles 21 to 23 px beside 17 px body text. The Horizon single-loop view is enlarged 1.2x instead of 1.8x (stage names about 21 px). The enlarged viewer, the phone layout and print are unchanged. The browser check’s label floors now follow the brief’s reading-size targets (essential 16 px, notes 14 px) and a new check holds every drawing at 880 px or less with essential labels 16 to 22 px at 1440 and 1920 px.",
  "reason": "Labels should read at about body size; a drawing that grows with the window outweighs the text it illustrates.",
  "affected": "all 20 figures (screen layout), fig-horizon (single-loop scale), scripts/browser-check.mjs",
  "src": "",
  "implementation": "build/figures/_shell.css, build/figures/horizon.mjs; 7 October 2026.",
  "verification": "browser-check (305 assertions, 0 failed), including the transition matrix and the new reading-width check; measured table above.",
  "review_pass": "author note, 7 October 2026",
  "review_finding": "Figure scale"
 },
 {
  "id": "FG-61",
  "kind": "editorial",
  "severity": "Low",
  "original": "The page opened with an update-notes block of about 1,845 words between the hero and the abstract, and the hero edition label read “6 October 2026 update” after the 7 October changes.",
  "challenge": "The author’s final review of 7 October 2026: shorten the entrance, keep one short current-status note near the top, move the detailed history to a collapsed archive or after the methodology, and align the edition label with the latest edition date.",
  "evidence": "Word count of the rendered update-notes block on the build of 6 October 2026; the hero edition label.",
  "verdict": "applied",
  "change": "A dated current-status note of about 70 words now sits between the hero and the abstract and links to the full history. The dated update notes are unchanged in content and now sit after the method section in a collapsed “Update history” block that keeps the #update-notes anchor and opens when that anchor is followed; print shows it open. The plain and Markdown editions follow the same order. The edition label reads “Research edition, 7 October 2026 update”. The page check now requires the status note between the hero and the abstract and the collapsed history after the method section.",
  "reason": "The entrance should state where the paper stands in a few lines; the change history is a record for readers who want it, not a gate before the abstract.",
  "affected": "editorial record (not published) (edition, current_status), build/render.mjs, build/render-plain.mjs, build/render-md.mjs, build/styles.css, build/page.js, scripts/check.mjs, editorial record (not published)",
  "src": "",
  "implementation": "Build of 7 October 2026.",
  "verification": "check --final; browser-check; the readability rerun of 7 October 2026 (narrative 69.4, plain 87.3).",
  "review_pass": "author final review, 7 October 2026",
  "review_finding": "Entrance length and edition label"
 },
 {
  "id": "FG-62",
  "kind": "method",
  "severity": "Medium",
  "original": "Claim V3-029 and section 31 still described the browser, PDF and printed-type checks of the final build as pending, in the future tense, and the claim’s confidence and limitations fields repeated that wording.",
  "challenge": "The author’s final review of 7 October 2026: replace the future-tense wording with the dated results, link the release record and keep what was genuinely not tested.",
  "evidence": "dist/qa/browser-check.txt (305 assertions, 0 failed), dist/qa/viewer-matrix.txt, the pdf-type report (169 pages), dist/qa/readability-narrative.json and the published test record data/figure-test-record.md, all on the build of 7 October 2026.",
  "verdict": "applied",
  "change": "Section 31 (P2-0236 and its summary) and the method note now state the checks that ran on the final build of 7 October 2026 and their results, and point to the published test record. Claim V3-029 is restated to match and is now supported; its limitations list what was not tested: a screen reader, a physical phone, real browser zoom, Safari, Firefox and Edge, and an eye review of PDF pages other than the figure pages. Readability is reported as measured on 7 October 2026: narrative 69.4 against a target of 85 (not met), plain edition 87.3.",
  "reason": "A release record should report what ran and what it found, dated, and keep the untested items visible.",
  "affected": "editorial record (not published) (s31, P2-0236, method_note), data/atomic-claim-ledger-v3 (V3-029)",
  "src": "",
  "implementation": "7 October 2026.",
  "verification": "check --final (claim wording matches the text); browser-check; pdf-type.",
  "review_pass": "author final review, 7 October 2026",
  "review_finding": "V3-029 pending wording"
 },
 {
  "id": "FG-63",
  "kind": "editorial",
  "severity": "Low",
  "original": "Section 26 said a delayed or inconclusive read is not a failure and that the week 8 read has no continuation, but did not say what governs new execution while the week 8 read is late.",
  "challenge": "The author’s release decision of 7 October 2026: no automatic week 8 continuation; keep new execution paused until the read arrives or the CMO and budget owner approve a logged exception with its own spending cap, expiry and rationale; tranche 3 stays held; the $37,500 even share of tranche 2 is a budget allocation calculation, not evidence that more exposure is justified. Proposed sentence: “A delayed read is not a failed result, but it does not extend spending authority.”",
  "evidence": "Section 26 mandate table (delayed or inconclusive reads row) and P2-0207; the retailer figure’s reads table.",
  "verdict": "applied",
  "change": "The mandate row and P2-0207 now carry the author’s sentence and the week 8 rule; the retailer figure’s reads table and its resolved-ambiguity note say the same. The spending-to-proof figure is unchanged and stays consistent with the default pause; any later model of an approved exception must show its added exposure separately from the original authority.",
  "reason": "A late read should not quietly become spending authority; an exception is a human decision with its own limits.",
  "affected": "editorial record (not published) (s26 P2-0198, P2-0207; retailer figure text equivalent; update note), figures/data/retailer-agents.json",
  "src": "",
  "implementation": "7 October 2026.",
  "verification": "check --final; check-figure-data; browser-check.",
  "review_pass": "author release decision, 7 October 2026",
  "review_finding": "Delayed week 8 read"
 }
]
