# L2 — FIDELITY-TO-SOURCE review (reviewer lane 2, @MAX)

**VERDICT: PASS_WITH_FIXES (0 clean broadcast-content misread / 1 MAJOR framing-overclaim / 3 minor)**

Lens: did the lead read each broadcast correctly? Verified from the broadcast files themselves + SE state (session-end.md, memory-budget.json, ACTIVE-MARKS.md, agent frontmatter, adap-reports dir). 5 of 6 trap-items are read-faithful; the push-guard "ahead-of-broadcast" framing is an overclaim.

---

## Item-by-item {read-faithful | misread}

### 1. do-token (type:new, NOT-adopt) — READ-FAITHFUL
- Spec D line 46 labels it "new/draft, NOT-adopt — METHOD". Matches broadcast §5 ("Lấy PHƯƠNG-PHÁP. ĐỪNG lấy CON SỐ của hub") + §7 line 107 ("Bản này KHÔNG yêu-cầu bạn adopt gì").
- Lead's ACTION = (1) measure real-token-N of SE mega-files, (2) audit SE "measured" constants for the "nhãn đã-đo thay việc-đo" trap, (3) PROPOSE assert-constant-BAO-real-measure net. All three are METHOD-application, not number-copy. Faithful to broadcast §4-§5.
- N>cap logic read correctly (spec:47 vs broadcast §1 line 27). "4.05 vượt trần 4.0 / sống 42 phiên" read correctly (spec:47 vs broadcast §3:60, §4:66).
- POSITIVE: lead actually applied the method this session (spec:48 STATUS 26075 tok / HANDOFF 32988 tok, both > cap 25000) rather than just citing it. Audit target `harness_floor.measured_token_estimate=55000` correctly characterized as "~19K byte-measured + ~36K est" — verified against memory-budget.json:90 `_s112_remeasure_note` ("55000 = honest mid estimate (~19K byte-measured + ~36K harness-injected-est)"). This is a correct catch of a half-estimated "measured" constant — exactly the do-token lesson.
- Budget-number changes correctly flagged owner-gated (spec:50, grounded in memory-budget.json:97 role_boundary_note + mark RC-...01-58-01).

### 2. bon-vong (type:new, NOT-adopt) — READ-FAITHFUL
- Spec E line 52 labels "new, NOT-adopt — spirit + evidence". Matches broadcast §5 ("Không bắt-buộc gì cả") + §6:96 ("Đừng chép con số 4").
- Lessons read correctly: redundancy>single-net (broadcast §2:48), "im-lặng có chữ-ký" + "gỡ hàng → hạng-mục hiện lại" + don't anchor mechanism-test to a live row (broadcast §3:69), eval-layer weakest (broadcast §4). Lead ACTION = reflection/adap-report `n-a-mostly-aligned`, no code-change. Faithful.
- Lead's loop-map (spec:54) is SE's OWN self-assessment, not a claim about the broadcast; the broadcast's 4-loop content + "only loop-3 has KIEM role, loop-4 not closed" is not misrepresented.

### 3. erratum-h8 E-1 (scope-narrow: only MODEL) — READ-FAITHFUL
- Spec B line 34: "Chỉ vế MODEL đổi; vế 'workflow chạy nhanh nhất' của H8 GIỮ." Exact match to broadcast Erratum-1 line 23 ("Chỉ vế MODEL bị thay — vế 'workflow chạy nhanh nhất' của broadcast H8 GIỮ nguyên").
- Floor read correctly: "lead owner-choice + sub-có-memory worker-tier gán-cứng + roster/form sister-quyết" = broadcast:23.
- DELTA correctly identified + correctly owner-gated: agent frontmatter is all-inherit → don't self-change to pin. VERIFIED: all 14 roster `.claude/agents/*.md` = `model: inherit` (grep confirmed). Lead correctly defers frontmatter change to owner + keeps carry `h23-precedence-fable`. Faithful.
- E-2 (EOL title): spec:37 reads "CRLF ∧ unquoted ': '" mechanism + SE credited — matches broadcast Erratum-2:28. adap-report `2026-07-15-Governance-eol-crlf-agent-registry-defect-notice.md` EXISTS (verified). Faithful.

### 4. h17-cadence-bookend (supersedes ONLY cadence-scheduler) — READ-FAITHFUL
- Spec C line 40: "4 sàn KEEP (2 vai soi lead · 2 detector [title-freshness + carry-age, ngưỡng KHÔNG thuộc counter] · positive-control · roster-3-việc). caveat (b)(d) keep." Exact match to broadcast §3 floors (1)(2)(4)(5) + line 50 caveat (b)(d).
- CRITICAL trap avoided: broadcast §3 line 46 warns "gỡ nhịp mà gỡ nhầm [carry-age threshold] thì bạn giết chính detector." Lead explicitly preserves it ("ngưỡng KHÔNG thuộc counter"). Faithful — did NOT remove the 4 floors.
- Did lead say "SE phải chuyển bookend"? NO. Spec:42-44 reads §4 "Đừng gỡ theo hub", correctly concludes default-valid = GIỮ counter (SE = long sessions), and surfaces switch-to-bookend as an owner-decision with a KEEP recommendation. Consistent with broadcast §6.4 ("Mặc-định hợp-lệ = giữ nguyên") + §4 limit-2 (replacement n=0, don't copy). Faithful.
- §5 API-key close read correctly (spec:43 vs broadcast §5). `held_clause` correctly identified as hub-internal contextual_retrieval → SE ignore (broadcast frontmatter held_clause_DO_NOT_PUBLISH). Faithful.
- h24_cadence 6/15/3 VERIFIED (memory-budget.json:124-126) + owner-ratified with the exact hub caveat already carried (memory-budget.json:123 "do NOT copy these three... DELIBERATE STARTING POINT... re-tune after cycle-2"). SE state already consistent.

### 5. reply r6 constraint ("absolute path hoặc ~/, KHÔNG ./") — READ-FAITHFUL
- Spec A line 29 / D-plan: "autoMemoryDirectory trong settings.json (absolute path hoặc ~/, KHÔNG ./), mọi scope. Docs-verified, CHƯA runtime-test. → owner-gated." Exact match to reply §7:42-46 (must be absolute or ~/, NOT relative ./; workspace-trust; hub docs-verified not runtime-tested). Correctly owner-gated. Faithful.

### 6. push-guard TRAILING framing — ⚠️ MISREAD/OVERCLAIM (MAJOR)
**This is the one defect.** The task flagged: "Bắt overclaim nếu lead bán 'ahead' mà giấu leak-trade-off." Confirmed.

- Broadcast dd4b0176 §4:53 requires: count wal: in `<remote-branch>..HEAD` (ahead-range) and "con số đó PHẢI bằng 0" — its reference impl (§4 line 73) uses `grep -c '^wal:'` = counts ALL wal: in the ahead range (trailing AND sandwiched). n>0 → BLOCK push.
- SE's implementation (session-end.md §5.0:164-166 + §5.2:194) counts **only TRAILING** wal: (consecutive from HEAD, stop at first non-wal:). §5.0:178 EXPLICITLY keeps sandwiched wal:: "wal: kẹp sâu hơn (sandwiched DƯỚI commit thường chưa-push) → GIỮ NGUYÊN, chấp-nhận noise (hard-safety đổi lấy không-rewrite-lịch-sử-đã-đẩy)."
- **Therefore SE is LOOSER than the broadcast, not "ahead."** In the sandwiched case (ahead-range = `[wal_1, CLAUDE_2]`), broadcast → n=1 → BLOCK until squashed; SE → K=0 → PUSH with wal_1 leaking to remote (session-end §5.2:220 ca(2) `base+wal+[CLAUDE]`→K=0→PUSH). On the turn-boundary-chaining dimension SE only MATCHES the broadcast (both chain squash+push in one turn, broadcast §5:90) — there is NO dimension where SE is strictly "ahead."
- Spec F line 58 sells this as "SE REFINEMENT ahead-of-broadcast". Proposed adap-report nấc (spec:61) = "agreed+executed S122, refinement TRAILING" — carries the "refinement/ahead" framing to the hub WITHOUT disclosing it is a looser variant that accepts a leak.
- The lead's OWN run.md line 15 already self-caught the honest framing: "TRAILING-K refinement = nguồn của '57 wal: lọt origin/main' S119 (sandwiched-keep §5.0:178) = trade-off owner-accepted... KHÔNG phải thuần 'ahead-of-broadcast'." And SE's OWN owner-stamped mark RC-pqhuy1987-15-07-2026-15-32-20 clause (4) frames it as "noise CHẤP-NHẬN (đổi lấy không-rewrite-lịch-sử-đã-đẩy)" — i.e., an accepted-cost divergence, NOT an improvement.
- So the SPEC contradicts both run.md and SE's own mark. **Fix:** relabel push-guard from "refinement ahead-of-broadcast" → "adopted + DIVERGE-LOOSER (trailing-only vs broadcast's ahead-range-all-count), owner-accepted sandwiched-leak trade-off (mark RC-...15-32-20 cl.4; evidence: 57 wal: on origin/main S119, owner-4 'KHÔNG dọn 57')". The adap-report to hub MUST disclose this divergence, not sell "refinement". If shipped unqualified → hub-facing overclaim = FAIL.
- Severity MAJOR (not FAIL-level): lead correctly understood the broadcast's actual requirement; the defect is self-characterization, already partially corrected in run.md — a reconcile-before-ship fix.

Adoption itself VERIFIED-TRUE (so "agreed+executed S122" nấc is correct): session-end §5.2 implements squash→count→push chained; fault-inject 10/10 (§5.2:219); mark RC-...15-32-20 anh-confirm S122; adap-report `2026-07-13-Governance-harness-22-wal-defect-fix.md` exists.

---

## Other verified-faithful (positive validation)
- 9 Active-High in ACTIVE-MARKS.md (matches task-stated 9). ✓
- presence-not-age: adap-report `docs/governance/adap-reports/2026-07-13-Governance-presence-not-age-reinject.md` EXISTS; broadcast inbox id = `2026-07-13-Governance-adap-update-presence-not-age-reinject.md` → the "adap-update- prefix" name-mismatch lead flagged (spec:60) is REAL. Faithful housekeeping.
- R2/R3/R4/§8 (reply) all read faithfully (spec:26-30 vs reply §3/§4/§5/§8).

## Minor
- m1: real-token measurements (STATUS 26075 / HANDOFF 32988 tok, spec:48) not independently re-measured by me — method is sound, numbers are the lead's; hub-facing use should keep the "measured this session" caveat.
- m2: run.md's attribution "TRAILING-K = nguồn của 57 wal: lọt origin/main" is only partially causal — the 57 is mostly historical pushed-wal: accumulation (git log HEAD full-history count, session-end §5.0(b):176); trailing-K is why sandwiched ones CONTINUE to leak going forward. Honest enough, but the adap-report shouldn't imply trailing-K alone created all 57.
- m3: spec:59 says eol adap-report "tồn-tại S122" but file is dated 2026-07-15 (= S122 date, OK) — trivial.

## Could-NOT-verify (caveats)
- I did not re-run the force-truncate to reproduce the 26075/32988 real-token numbers.
- The "presence-not-age-reinject" broadcast is NOT in this wave's 5-file source set (it's a prior 07-13 inbox item) — I verified the SE-side adap-report + broadcast-id name only, not the original adoption correctness.
- L1-authority (over-reach) is lane-1's remit; I checked owner-gating only through the fidelity lens and found the 4 owner-gated items (E-1 frontmatter, do-token budget, r6 settings.json, h17 keep-vs-bookend) correctly classified.
