# 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-<N>/` + `/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 -- <marker-file>` — 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-<i>.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
