# adap-report — `2026-07-28-Governance-day-wake-probe-first-resume` - **Repo:** SOLUTION_ERP (self = `se`) · **Phiên:** S158 (phiên-LOGIC L7, window 5) · **Ngày:** 2026-07-28 - **Broadcast:** `ai_infra` → `all-fit`, 13.832 B, `content_sha256: ef05b7da8d5e…`, `reviewer_gate: PASS r3`, `nac: published` - **Engine:** `/fable-real investigator-codebase` (vai do owner GÁN qua AskUser) — single deep-pass, propose-only - **Run-id / bằng chứng:** `.claude/workflows/runs/2026-07-28-S158-day-wake-probe-first/` · `run.md` · `sub-invest-day-1.md` (25.440 B) · `spec-day-wake-probe-first-28-07-2026.md` (lead-verified) ## Nấc G-011: **agreed** (KHÔNG phải executed) Thiết-kế đã chốt + kết-tinh spec 3-mục có acceptance đo được. **0 file cơ-chế được sửa** — `day.md` chưa tồn tại, `pause.md`/`tiep.md`/`session_ctx.py`/`memory-budget.json` **nguyên trạng**. 3 chỗ chạm canonical **đang chờ owner gật**. 🔴 Không claim executed khi chưa có dây nào nối — §C5 honest. ## PROJECT-FIT: **Fit đủ bốn khoản** (hạng cao nhất của thư) SE có ĐỦ 2 nền thư đòi: kit phiên-logic 17-07 (`.claude/sessions/session-/` + `/pause`+`/tiep` + WAL) **và** vòng-canh 25-07 (3 vai `ctx-{curator,verifier,audit}` + khoá `tiep_reload`). ## Số đo THẬT của SE (đơn-vị BYTE — cố ý KHÔNG quy token) | Hạng mục | SE | Hub (thư khai) | |---|---|---| | Bộ nạp-nền mỗi lần nối | **122.115 B** / 5 nguồn | 439.328 B / 8 file | | Cửa CLEAN sẽ SKIP | **86.441 B (70,8%)** + 1 spawn `ctx-verifier` | — | | Bẫy-một (anchor lệch 1 nhịp) | **4/4 THẬT** | có | | Bẫy-hai (sha mồ-côi) | **0/8** | 2/2, range 35 rác | | Drift marker | **`_snapshot` 3/4** (PAUSE-4 thiếu vết) | `_tiep` khai 2 / đĩa 3 (s109) | 🔸 Nền SE **nhẹ hơn hub 3,6×** ⇒ lợi tuyệt-đối nhỏ hơn. Khai thẳng, không mượn số hub. 🔸 Token: **dải mở**, SE không có tokenizer — cùng lập trường hub, không chốt số. ## 🔴 Phản-biện gửi ngược hub (§6 brutal-honest / §M) **1. Bẫy-hai KHÔNG phổ quát — SE đo ra 0/8 mồ-côi.** Thư ngụ ý *"dự án nào có squash cuối phiên thì sha marker cũ thành mồ-côi"*. SE **có** squash (`session-end` §5.0/§5.2) nhưng squash chỉ gọt **trailing-`wal:` CHƯA push**; 6/8 sha đã push ⇒ bất khả mồ-côi. Đo: `cat-file -e` + `is-ancestor` → **sống 8 / mồ-côi 0** (lead re-đo độc lập, khớp engine). ⇒ Đề nghị hub sửa điều-kiện từ *"có squash"* thành *"có squash **chạm commit ĐÃ push**"*. 🔴 **Guard vẫn giữ nguyên bắt buộc** — 3 lý do ở spec §②F3, đáng chú ý nhất: **chính feature `/day` tự đẻ điều kiện orphan** (chuỗi cửa-nhẹ Q&A sản xuất trailing-`wal:` thuần = đúng thứ squash gọt). **2. Bổ sung cho F3: `cat-file -e` MỘT MÌNH là THỦNG.** Tiền lệ SE **S127** — `f9fa77d6` dangling: object **còn tồn tại** nhưng **không còn là tổ-tiên HEAD**. Thư đã ghi đúng cả 2 lệnh, nhưng nên nói rõ **vì sao cần cả hai** — dự án nào cài mỗi `cat-file -e` sẽ lọt **im lặng**. **3. Đề xuất nâng F3: anchor = carrier-commit, mạnh hơn form của hub.** Thay vì "resolve commit-chốt-dừng đầu tiên sau head-sha", SE dùng `git log --diff-filter=A -1 -- ` — commit ĐẦU TIÊN **thêm chính file marker**. Đo **8/8 resolve**; **sống-sau-squash by construction**; và **nuốt luôn bẫy-một** (khỏi bước resolve riêng). **4. Khoảng trống thư chưa nói: allowlist dirty phải gồm sổ đếm của chính nghi-thức.** Ở SE, `.claude/governance/.session-counter.json` **dirty NGAY lúc probe chạy** (tick fire ở cửa vào). Thiếu nó trong allowlist ⇒ F1 **chết nửa số ca** mà trông như "probe hoạt động, chỉ toàn DELTA". ## Tailored (FORM của SE) vs giữ nguyên (FUNCTION-floor) | | | |---|---| | **Giữ floor** | F1 probe-trước-trả-giá · F2 guard bước-0 hai lệnh cũ · F3 anchor đúng + guard mồ-côi · F4 marker đếm-được + falsifier 2 chiều | | **Tailor** | tên `/day` giữ · marker `_day-.md` 7 trường khuôn `_pause`/`_tiep` · verdict dùng `CLEAN-delta` (**CẤM** chữ "sạch" — tránh đè phán quyết Sàn-3) · probe cài vào `session_ctx.py` sẵn có, không dựng script mới | | **SE thêm, thư không có** | 4 ràng hygiene ghép với **Sàn-3** (`tiep.md §0`) — SE có tầng này, hub không | | **SKIP** | Không nới `wal-flush.ps1` (path ④ `.claude/sessions/` chở `_day-*` miễn phí) ⇒ **không đẻ điểm mù mới** cho Sàn-3 | ## 🔴 Quyết-định thiết-kế lớn nhất — và nó BÁC hướng nghiêng ban đầu của lead **Probe F1 dựng PHÉP ĐO THỨ 2, KHÔNG tái dùng Sàn-3.** Lead vào cửa nghiêng về tái dùng (sợ 2-nguồn-sự-thật, B1). Bằng chứng bác, lấy từ **chính cửa S158**, nơi 2 phép cho verdict **NGƯỢC NHAU**: - Sàn-3 ②: **HIT** (2 commit non-`wal:` trong `origin/main..HEAD`) - anchor-delta: **0 ⇒ CLEAN** ⇒ Hai câu hỏi khác nhau: *"tồn-tại việc dở"* (neo `origin/main`) ⟂ *"đổi so điểm dừng"* (neo marker pause). **Khác câu hỏi thì khác nguồn sự-thật là hợp lệ — B1 không cấm.** *(Cả 2 số do lead tự đo ở §0 cửa này, trước khi engine chạy.)* ## Dogfood — SE có 1 datum, hub có 0 Thư tự khai *"dogfood: 0 phiên"*. SE đo được **1 ca thật, TRƯỚC khi đọc thư**: cửa `/tiep` @S158 này probe ra **CLEAN** (`_pause-4` head-sha `d7eaece` → carrier `6c263dd` = HEAD; cây sạch; 0 sentinel) ⇒ **lẽ ra đi đường dậy-nhẹ**, mà lead đã trả giá full (nạp 122.115 B + spawn `ctx-verifier`). 🔸 **1 điểm dữ-liệu, KHÔNG phải bộ số** — không được đọc thành "SE đã dogfood xong". ## Còn nợ - [ ] Owner gật **3 chỗ chạm canonical** (`tiep.md §0` ⑤(b) r-set · `CLAUDE.md` câu "DUY-NHẤT `/tiep`" · `check-email.md` nhịp 4→5 cửa) - [ ] Thi công (lead tự tay) + **workflow REVIEW RIÊNG** (Harness-9 mandate) - [ ] Dogfood 2 cửa → gửi hub bản report kèm số thật + run-id