# sub-lead-omission-auditor — S124 (FIRST real run / dogfood, propose-only)

- **role:** lead-omission-auditor (H24 §2(1) vai-GAP — soi CÁI BỊ THIẾU)
- **cadence key:** `h24_cadence` (light_every read by detector = 6). Counter=3, last_ticked=S124. last_audit.light_at_counter=0 (first audit ever).
- **method:** built EXPECTATION set from commitment sources (HANDOFF carries via grep -o mega-line, WAL, ACTIVE-MARKS, owner-decisions S119, spec/run.md S124) BEFORE comparing. Ran ≥1 disk-touch before every gap-* (S121 lesson). READ detector H24-2 output, did NOT recompute streak (trap #2).
- **enum used (CLOSED):** gap-carry-dropped · gap-carry-aged · gap-owner-specifics · gap-decision-sunk · gap-underfill. No invented class.

## VERDICT
**TOTAL: 4 gap-flags** + 1 gap-carry-aged mechanism-INFORM.
- gap-carry-dropped: **2** (usermem-outside-repo, h24-2vai-chua-chay)
- gap-decision-sunk: **2** (fable-escalation-NO-OP, model-tier-supersession-unrecorded)
- gap-carry-aged: **0 fired** (all streak=1<M=6) + 1 INFORM (mechanism still vacuous post-W3)
- gap-owner-specifics: **0** (specifics preserved in artifacts — honest zero, avoided task-hypothesized FP)
- gap-underfill: **0** (N/A)

## CONTEXT (root enabler of the gaps)
S124 reviewer wave (`/fable-clone reviewer` @MAX, 3 lane) produced spec+run.md recommending **"SURFACE 4 owner-decisions, KHÔNG apply"** and explicitly **"🔴 KHÔNG tự đổi frontmatter"** + r6-relocate="owner-gated". Owner then OVERRODE → lead APPLIED (all uncommitted):
- 14 agents `model: inherit` → `model: opus` + `effort: max` (worker-tier-pin; in SE, opus=WORKER tier, Fable=frontier/lead).
- settings.json +`autoMemoryDirectory` absolute path; `.claude/auto-memory/` created (memory relocate).
- counter kept (h17), do-token measured.
**But run.md still says "Owner-decision sẽ surface (KHÔNG apply)" (STALE); NO owner-decisions-S124.md; NO S124 session-log.** The RE-STAMP ritual (§L.b(j)(iv)) at closeout will re-stamp carries — a BLIND re-stamp propagates the stale state below. That is the omission surface I catch.

---

## FLAGS

### [LEAD-GAP] HIGH | gap-decision-sunk | fable-escalation possibly NO-OP (untested regression from worker-tier-pin)
- **trigger (applied, verified):** frontmatter inherit→opus+effort:max on all 14 agents (git diff reviewer.md/lead-omission-auditor.md) + hmw.js:55-61 rationale.
- **hứa/where the risk is documented:** `hmw.js:47-51` — comment states (a) :47-48 H23-precedence now **distinguishable EVEN at lead=Opus** (frontmatter opus ≠ fable) ⇒ obsoletes `[carry:h23-precedence-fable]` "CHỜ phiên lead=Fable"; (b) :49-51 **"Nếu frontmatter THẮNG ⇒ tier:'fable' của /fable-real = NO-OP ⇒ KHÔNG escalate Fable được"** … **"CHƯA test lượt này (frontmatter mới cần restart)"**.
- **hiện:** VẮNG from any tracked pending-surface. NOT in run.md's 4 owner-decisions, NOT a carry, NOT surfaced to owner. Lives ONLY in a code comment. `/fable-real`+`/fable-clone` = mark `RC-...11-07-2026-20-42-01` (H21 **Active-High**, owner's frontier-escalation tool) — could be silently dead.
- **im:** born this session (S124), unsurfaced since applied.
- **resolve:** surface as explicit owner-decision + create carry e.g. `[carry:fable-escalation-verify]` "post-restart, spawn tier:'fable' → read resolved model via scripts/spawn-model-audit.ps1; if frontmatter wins ⇒ /fable-real broken ⇒ owner re-pin". Do NOT let it stay a code-comment-only.

### [LEAD-GAP] MED-HIGH | gap-carry-dropped | usermem-outside-repo (R6) — relocated on disk, carry still "chờ hub", follow-through not in work-state
- **hứa:** `HANDOFF.md:5` "🔴 R6 chờ hub `[carry:usermem-outside-repo]`" + "settings.json 0 key ⇒ harness ép, SE **cố ý KHÔNG tự dời**"; spec §A:31 planned only "đóng carry ... → 'hub đã trả: relocate-able, self-verify' → surface owner-decision".
- **hiện (DONE on disk, BEYOND spec plan):** hub replied (reply-wave-s122 r6 ruling). settings.json +`"autoMemoryDirectory": ".../.claude/auto-memory"` (uncommitted). `.claude/auto-memory/` exists (untracked; MEMORY.md 13179B + feedback files). NOT gitignored (`git check-ignore` exit=1 = trackable) **but UNTRACKED** ⇒ R6's actual goal "0 git/0 backup/0 history" **NOT yet met** (needs git add+commit). Relocation "CHƯA runtime-test" (needs restart).
- **im:** state changed THIS session; carry + no WAL/owner-record reflects it.
- **resolve:** closeout must (a) git-add+commit `.claude/auto-memory` (actually solve 0-git), (b) runtime-verify harness writes to new dir post-restart, (c) UPDATE/close carry — NOT re-stamp "chờ hub / cố ý không tự dời" (that is now false ×2: hub replied AND SE relocated).

### [LEAD-GAP] MED | gap-decision-sunk | 4 owner-decisions have no durable record + H8 all-inherit supersession unstamped
- **hứa:** 4 owner-decisions applied S124 (frontmatter→opus+effort:max · memory-relocate · keep-counter · do-token-measured). Precedent: S119 got a dedicated `owner-decisions-15-07-2026.md`; ACTIVE-MARKS convention = B3 single-writer VERIFY→APPEND for governance decisions.
- **hiện:** VẮNG. Only durable session-record = `run.md` which STILL says "Owner-decision sẽ surface (KHÔNG apply)" (contradicts applied reality). No `owner-decisions-S124.md`. No S124 session-log (latest = S123). H8 all-inherit (mark `RC-...11-07...` §K.D / erratum-h8 "all-inherit SUPERSEDED") **not annotated** as superseded by worker-tier-pin ⇒ ACTIVE-MARKS (shown every session as luật hiện-hành) still reads all-inherit while disk = opus-pin. Model-tier architecture change = owner-authority §A1 magnitude.
- **im:** born S124, unrecorded.
- **resolve:** closeout writes consolidated owner-decision record (like S119) + annotates/stamps H8→worker-tier-pin supersession (B3). NOTE: partly adjacent to lead-view-auditor (stale mark = "cái CÓ nhưng LỆCH"); MY flag = the MISSING record/annotation.

### [LEAD-GAP] MED | gap-carry-dropped | h24-2vai-chua-chay — falsified this session, will mis-stamp
- **hứa:** `HANDOFF.md:5` "2 vai **vẫn chưa chạy lần nào** `[carry:h24-2vai-chua-chay]`" (text also "counter=2"); mark `RC-...15-32-23` BINDING CAVEAT "2 vai **CHƯA CHẠY lần nào** (spawn-probe chứng spawn được, KHÔNG chứng soi được)"; spec §C:44 uses "2 vai chưa chạy ⇒ chưa có dữ-liệu" as the keep-counter rationale.
- **hiện:** FALSIFIED — lead-omission-auditor (this role) running S124 = **first real run (dogfood)**. Carry "counter=2" also stale (live counter=3, verified).
- **im:** falsified in real-time this session; no record yet.
- **resolve:** closeout records "2 vai first-run S124"; update carry; note mark `...15-32-23` caveat is now partially resolvable (pending em-main VERIFY of run quality — spawn-probe→first-real-run evidence-tier raise); refresh counter number. Do NOT re-stamp "chưa chạy lần nào".

---

## gap-carry-aged — 0 fired, but MECHANISM-INFORM (report per trap #2)
READ from `scripts/governance-detectors.ps1` H24-2 (NOT recomputed): M=6, HANDOFF logic-segments=49, carry-lines=5, all 8 carries (usermem-outside-repo, hook-vs-budget-cap, uat-s117, pe-phanquyen, bvaau, binh-le-decision, tra-bui-relogin, account-trung) **streak=1 < M=6, all [ok]**. → 0 carry is aged.
- **BUT report-condition met (trap #2 "CÓ báo nếu W3 đã land mà streak vẫn ≡ 1"):** the RE-STAMP ritual (W3) LANDED — S122 commit `16c91a8` "…+ RE-STAMP carry" and S123 HANDOFF "🔴 RE-STAMP @S123" — YET streak ≡ 1 for EVERY carry.
- **root:** HANDOFF Tiering rule (`HANDOFF.md:3` "giữ 2-3 session gần nhất") caps retained carry-lines **below** M=6 ⇒ `gap-carry-aged` is **structurally unable to fire** no matter how faithfully carries are re-stamped. This is the S121-known vacuousness (mark `...15-32-23` pain ③ "carry-age vacuous CẤU-TRÚC") **persisting past the W3 fix**.
- **escalate to owner:** tiering(2-3) vs M=6 are incompatible. Either lower M for carry-age, OR exempt carry-history from tiering, OR count carry-age from a persistent ledger not the tiered HANDOFF. NOT inventing a class — this is a gap-carry-aged mechanism note.

## INFORM-only (NOT gaps — owner actively holds / correctly handled)
- **6 product carries owner-held, MUST survive closeout re-stamp:** uat-s117 · pe-phanquyen · bvaau · binh-le-decision · tra-bui-relogin · account-trung. All present (detector streak=1), untouched by governance-only S124 = owner actively holds (anti-pattern #3: vắng-vì-giữ ≠ bỏ rơi). NOT gaps. Closeout MUST re-stamp all 8 anh-carries; dropping any at closeout = gap-carry-dropped (verify POST-closeout).
- **retier-megaline: NOT dropped** (avoided task-hypothesized FP). do-token adap-report records STATUS=70,892 tok / HANDOFF=32,254 / total 103,146 = 27.1% lead budget + explicitly "`[carry:retier-megaline]` materially urgent" + surfaces owner-decision (re-tier/đổi-budget-số = owner-authority, chờ anh). Properly surfaced. (Minor: HANDOFF carry-text not yet updated with the number — closeout task.)
- **hook-vs-budget-cap:** owner-actively-parked (🟡, "DO NOT auto-reduce", 22.8KB under both caps, em KHÔNG tự nén, chờ anh) = correctly surfaced INFORM-only, NOT a gap.
- **s119-wave:** correctly CLOSED (tag intentionally dropped in current segment per convention; lingering tag in older retained segment = known cosmetic tiering-lag).
- **gap-owner-specifics = 0:** owner's "Opus 4.8 MAX" fully captured = `model: opus` + `effort: max` (both in every frontmatter diff + hmw.js:55-61); autoMemoryDirectory absolute-path in settings.json; measured tokens in do-token adap-report. No lost-specifics case found. Honest zero.
- **gap-underfill = 0:** N/A (relocation doesn't change budget fill; auto-memory MEMORY.md 13179B < 25600 autoinject cap).

## Propose-only. em-main = single-writer (VERIFY→APPEND B3). 0 Write/Edit outside this disk file.
