# adap-report — 2026-07-11-Governance-harness-22-wal-session-continuity (SE)

> **Broadcast:** `2026-07-11-Governance-harness-22-wal-session-continuity.md` (outbox/all AI_INFRA) + notify `2026-07-11-ai_infra-to-se-notify-harness-22-wal`. **Adopt S111 (2026-07-12), anh-directed** (lệnh anh nguyên văn: `"/check-email AI_INFRA và /adap-apply … /fable-real invest và review - đề tài là harness mà AI_INFRA apply xuống. Sau đó hwm cho Opus 4.8 MAX xử lý. Xong thì session-end"` — đúng khung H21 per-invocation: owner gõ + vai đích-danh + worker hạng-hai).
> **Integrity gate:** whole-file `Get-FileHash` copy==nguồn ✓ ×2 + body `content_sha256` re-compute notify `c64a7ac2a1bb` + broadcast `3de0758a6377` **MATCH ✓** (canonical split-frontmatter + strip-1-leading-newline + SHA256-UTF8). `reviewer_gate: PASS-W-FIXES` (gate-outward AI_INFRA tại nguồn).
> **Harness-9 mandate 2-workflow + engine-đắt:** invest = **investigator-codebase Fable-real single-deep-pass** (READY_WITH_NUANCES 14N, **0-garble** — VERDICT-header mitigation ăn) → lead verify + **CHỈNH 3 điểm** (nặng nhất: hook bash→**PS1** vì PATH 2-context ngược nhau) + ghi **spec-file 3-mục** `runs/2026-07-12-h22-wal-adopt/spec-h22-wal-adopt-12-07-2026.md` (K.E run-2 sau dogfood run-1 S110) → WF implement **`wf_5ba3daf6-fe0`** (3 worker **Opus 4.8 MAX** `tier:'opus'`, RUN-TRACE mode — **dogfood NGAY sàn mới "≥3 task = bắt buộc run-trace"**, 3/3 DONE 0-error ~322K tok) → review = **reviewer Fable-real single-deep-pass** (0-garble) → **PASS_WITH_FIXES** (0 Critical · 1 Major · 7 minor) → em-main fix trọn 8/8 cùng phiên.

## Nấc per-khoản sàn H22 (G-011: agreed / executed / verified)

| Khoản (sàn 🔴 broadcast §9) | Nấc | Evidence |
|---|---|---|
| **① Sổ WAL ≤40 dòng ghi-đè-không-append** (chain-bằng-chứng + next + verify-trước-next, ground-truth thắng, cấm secret) | **executed + dogfood CÙNG PHIÊN** | `.claude/WAL.md` sống suốt phiên adopt (17 dòng; lead ghi-đè sau MỖI subtask — 6 lần); reviewer chạy THẬT lệnh `verify:` PASS; +detector **C5 WAL-guardrail** (`governance-detectors.ps1` — flag >40 dòng, chạy [OK] 17/40; reviewer-m1 nâng convention→răng-thật); template rỗng + schema codify engine **PHẦN N.1** |
| **② Hai tầng ghi** (lead nội-dung ⟂ hook persist-only 0-content fail-open per-path) | **executed + ✅ hook-FIRE VERIFIED-RUNTIME CÙNG PHIÊN** | `.claude/hooks/wal-flush.ps1` (PS1-port giữ nguyên semantics: per-path add + CAND + exit-0 + 0 push/content/block) + `.claude/settings.json` hooks-entry (CREATE mới — file chưa từng tồn tại) + `.gitattributes` `*.sh eol=lf` append; **hook fire THẬT ×2**: `12071c5` (11:05:39) + `67be443` (11:17:00 — reviewer CHỨNG KIẾN SỐNG giữa review), CAND chuẩn (settings/broadcasts/docs đứng ngoài), 0 push; reviewer **fault-inject cây tạm 2-ca PASS** (thiếu-1-path vẫn commit path-còn + exit-0 · 0-delta im lặng · outside.txt không bị nuốt) |
| **③ Cặp /pause + /tiep — MỘT đường recovery** | **executed + sweep-verified** | `.claude/commands/pause.md` (5-bước, commit-TRƯỚC-tuyên-bố, KHÔNG add -A, KHÔNG push) + `tiep.md` (4-bước, ground-truth-thắng-sửa-WAL-trước, nhánh `wf:` relaunch-cắt-gọt, CẤM transcript, memory-pack re-derive, same-session-only); reviewer grep toàn-repo: **mọi con-trỏ recovery = MỘT đường `/tiep`**, 0 đường thứ hai; ⚡ skill-registry đăng-ký `/pause`+`/tiep` NGAY giữa phiên (hiệu-lực đầy-đủ verify phiên mới) |
| **④ Delta mở/đóng phiên** (WAL-check · squash trailing chưa-push · reset cuối) | **executed** (squash-THẬT = commit-chốt phiên này, xem honest) | `session-start.md` **BƯỚC 0.7** (sau 0.6, ngoại-lệ CHỜ duy-nhất, chỉ con-trỏ B1) + `session-end.md` **§5.0** squash (`origin/main..HEAD` — không bao giờ rewrite đã-push; +review-diff wal-paths = AS-10 backstop dời không mất) + **§6.4** reset-WAL bước cuối; reviewer dry-simulate với trạng-thái thật: K=2 → về đúng `318a271`==origin/main, 0 rewrite |
| **⑤ WAL-cho-workflow** (snapshot args · `wf:` 5-trường · harvest-liền · relaunch-cắt-gọt · mandate per-agent-file ≥3-task/>5' · trung-thực mất-mát) | **executed + dogfood CÙNG PHIÊN** | `workflows/README.md` FLIP-policy + bảng (mode-A nhỏ vẫn hợp lệ) + `runs/README.md` template `## taskList snapshot` + `hmw.js:9/:19` mandate-comment (node --check PASS; 0 code-change) + engine **N.5** honest per-TURN≠per-TASK; dogfood: chính WF `wf_5ba3daf6-fe0` chạy RUN-TRACE + run.md có taskList-snapshot (hồi-tố — bootstrap-paradox tự khai) + dòng `wf:` 5-trường sống trong WAL + harvest-liền synthesis per-turn; **minh chứng sống N9**: return W3 bị notification-truncate nhưng `sub-task-2.md` trên đĩa còn nguyên → lead disk-verify |
| **Honest (a)-(e) đủ + codify** | **executed** | Engine **PHẦN N.7** đủ 5 (reviewer verify từng cái — (b) đọc ACTIVE-MARKS thật 5 mark: 0 mark cấm-hook; (e) Dropbox 2-chiều: risk index.lock + bonus .git-sync durability) + CAVEAT No-OS-hook honest-update ngoại-lệ đích-danh + `rules.md §5.2` exception `wal:` + `CLAUDE.md` con-trỏ 2-dòng |

## Tailored / phát-hiện-riêng / honest-caveat

- **Tailored form:** hook = **PowerShell `.ps1`** thay bash nguồn (sàn semantics GIỮ NGUYÊN: per-path + CAND + exit-0 + 4 CẤM) — evidence 3-context PATH conflict (lead PS-context → `system32\bash.exe` WSL-HỎNG execvpe-fail · invest cmd-context → Git-Bash trước · reviewer PS-from-GitBash → `usr\bin\bash`); exec-env hook không xác định trước → `powershell.exe` (system32) resolve MỌI context. Nếu dùng `bash` như nguồn và exec-env rơi vào WSL-hỏng → hook chết MỌI lượt mà fail-open che mất (persist=0 âm thầm — đúng lớp ghost-wire). Giữ tên lệnh nguồn `/pause`·`/tiep` (0 trùng 16 command hiện có, đồng bộ fleet).
- **Phát-hiện-riêng #1 — Stop-hook HOT-RELOAD trên harness SE:** settings.json tạo 11:00:52 GIỮA phiên → hook fire 11:05:39 KHÔNG restart (giả-định honest-(c) nguồn "chỉ nạp lúc khởi-động" đảo trên env này). Reviewer refute 3-hướng đều GÃY (forensics NTFS×git: commit rơi 7s sau khi ps1 sinh, GIỮA cửa sổ worker; restart-giả-thuyết mâu thuẫn WF 7.8' liên tục 3/3-DONE; fire lần 2 chứng kiến sống). ⚠️ **ENV-DEPENDENT — KHÔNG fleet-generalize** (data-point #2 sau skill-registry hot-reload; hub từng NGƯỢC kết quả registry): phiên MỚI vẫn re-check 1 lần. → N.3 nâng STAGED→**VERIFIED-RUNTIME S111** (nguyên tắc STAGED-until-verified GIỮ cho hook tương-lai).
- **Phát-hiện-riêng #2 — reviewer bịt lỗ bằng-chứng 0-delta:** lead định "quan sát tự nhiên" ca-2 (absence-of-commit KHÔNG phân biệt được "0-delta im lặng" vs "không fire") → reviewer fault-inject ca-2 chứng tường minh. Lesson: nhánh-im-lặng của cơ-chế fail-open PHẢI chứng bằng inject, không bằng quan-sát-vắng-mặt.
- **Phát-hiện-riêng #3 — per-agent-file cứu return thật (N9 minh chứng sống):** W3 return bị notification-truncate NGAY TRONG run adopt → `sub-task-2.md` trên đĩa nguyên vẹn, lead disk-verify đủ. Sàn "≥3 task = per-agent-file" tự chứng minh giá trị trong chính lượt adopt nó.
- **Honest-caveat:** (i) **pilot CHƯA chạy đủ tại SE** — đã có: hook-FIRE ×2 + fault-inject 2-ca + squash-THẬT tại commit-chốt phiên này (dogfood K≥2) + dogfood ghi-chain trọn phiên; CHƯA có: kill-giữa-chain → `/tiep` thật · đổi-tài-khoản · hook-fire re-check phiên mới · pause-roundtrip 1 workflow THẬT (→ HANDOFF pilot-checklist NEXT-anh); (ii) enforcement "lead ghi WAL sau mỗi subtask" = **convention kỷ-luật** (không công-cụ-ép; C5 detector chỉ bắt >40 dòng); (iii) hooks hot-reload = **env-dependent**, không claim phổ-quát; (iv) commit `wal:` chứa `memory-budget.json` khả-năng → CI trigger AS-6 pattern known-benign (squash gộp về commit-chốt nên push-set ≡ hôm nay — profile KHÔNG tăng, invest N3 verified); **D10 option chờ anh:** deploy.yml paths-ignore +`.claude/agent-memory/**` +`.claude/workflows/runs/**` triệt noise (KHÔNG làm trong đợt này); (v) mark H22 = quyền anh — đề xuất trình, **CHƯA stamp** (P8).
- **0-garble 2/2 lane Fable** (invest + reviewer — VERDICT-header + narrow-return mitigation; đối chiếu S110 ×2-garble: streak cải thiện, correlation reasoning-lane vẫn theo dõi).
