wal: pause

This commit is contained in:
pqhuy1987
2026-07-17 17:03:54 +07:00
parent a4ac81a771
commit 03634954e2
7 changed files with 70 additions and 30 deletions

View File

@ -128,7 +128,7 @@ Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40
> Read-side "vật-chất-tối": archive `agent-memory/<sub>/archive/*.md` KHÔNG vào RAG. Inject **mục-lục** (`archive/_INDEX.md`), nội dung verbatim + `.gist.md` đọc-theo-nhu-cầu. "Inject tấm bản-đồ, KHÔNG inject lãnh-thổ."
- **🌙 Sleep-check (Harness-10b, S72):** trong lúc đọc `memory-budget.json` (cùng file budget-audit), lấy `last_sleep_at` → nếu `null` HOẶC `today last_sleep_at ≥ 7 ngày`**INFORM gợi-ý** chạy `/sleep-recovery-memory-l2 <agent|all>` (nén L2 verbatim→gist additive). 🔴 **KHÔNG auto-run** — anh consent mới chạy.
- **🌙 Sleep-check (Harness-10b, S72):** trong lúc đọc `memory-budget.json` (cùng file budget-audit), lấy `last_sleep_at` → nếu `null` HOẶC `today last_sleep_at ≥ 7 ngày`**INFORM gợi-ý** chạy `/sleep-recovery-memory-l2 <agent|all>` (nén L2 verbatim→gist additive). 🔴 **KHÔNG auto-run** — anh consent mới chạy. **+ Byte-display (Item 8/M-10 S135):** khi INFORM fire → in kèm **tổng byte `agent-memory/*/archive/<period>.md` CHƯA có `.gist.md`** (match PREFIX kỳ; đo TƯƠI `(Get-Item).Length` — 🔴 CẤM `Get-Content`-đếm, bẫy encoding E-010; baseline 17-07 kỳ `2026-07` ≈183KB/5 file) → anh nhìn số rồi **tự ĐẶT ngưỡng byte** nếu muốn chuyển hẳn sang trigger-theo-byte; 🔴 **KHÔNG bịa số** (giữ INFORM 7-ngày — DP-5 quyền owner cục-bộ B1 §3.4).
- Đọc `.claude/agent-memory/memory-budget.json` → so kích-thước THẬT `_INDEX.md` mỗi sub vs cap. Nếu cắt-cho-vừa-ngân-sách đang rớt dấu-mốc quan trọng → **bump budget** (chốt-chặn chống "quên chỉnh ngân sách"). Đo lại bằng `scripts/measure-agent-memory.ps1` (seed-by-measure — KHÔNG đặt cap bằng số tưởng tượng).
- L1 over-cap → curate L1→L2 (byte-exact additive) + build/refresh `_INDEX.md` (con-trỏ **substring** sha-keyed, fallback Ctrl-F) + `<period>.gist.md` (nén 4-field, `distill-gen` counter, verbatim FROZEN). Rollout đầu: 4 over-cap sub (S70).
@ -185,11 +185,12 @@ Em main đọc `.claude/WAL.md` (sổ mạch-việc-dở H22 — ghi-đè ≤40
**(a) TICK content-addressed, KHÔNG blind-increment:**
```
head = git rev-parse HEAD
nếu head == last_ticked_head → NO-OP (idempotent)
nếu head == last_ticked_head HOẶC session == last_ticked_session → NO-OP (idempotent per HEAD + per nhãn-phiên)
ngược lại → counter += 1 ; last_ticked_session = S<nn> ; last_ticked_head = head ; last_ticked_at = <date>
```
🔴 **Vì sao content-addressed:** Stop-hook `wal-flush.ps1` auto-commit **MỌI turn-boundary** `counter++` sẽ tick **nhiều lần trong một phiên thật** nhịp thành vô-nghĩa. Neo vào HEAD làm 2 lần `/session-start` **cùng HEAD** = **+1, KHÔNG +2**.
> 🔸 **Khai thật giới-hạn:** counter đếm **"phiên có làm HEAD đổi"**, không phải "phiên". Hai phiên liên-tiếp mà **không commit gì** (Q&A thuần, không chạm WAL) ⇒ cùng HEAD ⇒ **chỉ 1 tick**. Thực-tế hook chạm WAL gần như mọi phiên nên hiếm; nhưng **đừng đọc counter thành "số phiên tuyệt-đối"**.
🔴 **Vì sao OR-guard (content-addressed + session-label):** Stop-hook `wal-flush.ps1` auto-commit **MỌI turn-boundary** HEAD dời **giữa phiên thật** head-guard ĐƠN sẽ để tick fire **nhiều lần trong một phiên** (mỗi điểm tick sau khi HEAD dời lại +1) nhịp vô-nghĩa. **Session-clause** (`session == last_ticked_session`) giữ **mỗi nhãn-phiên = đúng +1**: 2 lần `/session-start` cùng HEAD, HOẶC session-start rồi `/pause` (HEAD đã dời do hook) đều NO-OP sau lần đầu. Đây bẫy **+2/cycle** OR-guard (`/pause` commit dời HEAD; thiếu session-guard thì pause+tiep = +2).
🔴 **Label-convention (PIN THÀNH LUẬT — S135):** mỗi conversation MỚI = một **nhãn-phiên `S<nn>` MỚI**, **kể cả khi vào bằng `/tiep`** (nối qua phiên/đổi acc `tiep.md:130` "session: khác phiên hiện-tại BÌNH-THƯỜNG" = use-case chuẩn; thực-hành S134/S135). 🔴 **CẤM reuse nhãn cũ khi nối** thiếu luật này thì session-clause khớp nhãn OR-guard NO-OP nhầm ngay cửa `/tiep` tiep KHÔNG tick **phép-7 `+0`**.
> 🔸 **Đơn-vị đếm + khai thật giới-hạn (reconcile gốc "đếm phiên-có-làm-HEAD-đổi"):** counter đếm **nhãn-phiên `S<nn>`** — phiên thường (SE chưa adopt session-logic `9234a7aa`; khi adopt thì đọc lại = **phiên-LOGIC**, caveat B1 §7). OR-guard cho **mỗi nhãn-phiên +1** ở điểm tick ĐẦU. 🔸 **Ca hiếm giữ khai:** một nhãn-phiên MỚI mà **không commit gì** (Q&A thuần, không chạm WAL) ⇒ HEAD trùng `last_ticked_head` ⇒ head-clause NO-OP ⇒ **+0** (đúng gốc "phiên-có-làm-HEAD-đổi", giữ khai). Thực-tế hook chạm WAL gần như mọi phiên nên hiếm; **đừng đọc counter thành "số phiên tuyệt-đối"**.
**(b) FAIL-LOUD, CẤM tự chữa:** counter đến **THẤP HƠN** giá-trị đã lưu, HOẶC `last_ticked_head` trỏ commit **không reachable từ HEAD** 🔴 **BÁO ANH**, **KHÔNG silent-reset**. Counter lùi = file bị rollback/sửa tay; reset lặng sẽ **giấu mất khoảng nhịp đã trôi**.
@ -200,10 +201,10 @@ ngược lại → counter += 1 ; last_ticked_session = S<nn> ; last_ticked_head
**(d) JUMP:** một class trong `lead_self_audit.flag_classes` lặp ** `jump_on_class_repeat`** lần **kéo audit tới sớm**, bất-kể counter.
**(e) BÁO:** in **1 dòng** `counter=<n> · light <a>/<light_every> · deep <b>/<deep_every> · OVERDUE: <none|light|deep>`. OVERDUE **INFORM anh** + đề-xuất spawn vai H24 tương-ứng. 🔴 **KHÔNG auto-run** anh consent mới chạy (giống sleep-check §2.1.2).
**(e) BÁO dòng-nợ 3-vế (nâng dòng H24 Item 2 S135):** gọi `powershell.exe -ExecutionPolicy Bypass -File scripts/nhip-no-probe.ps1` in **1 dòng** `NHIP-NO: kiem light a/e deep b/f <ok|OVERDUE:…> | tran-bo-nho x over-cap | run-chua-gom y` (vế-1 nhịp-kiểm = `counter/light/deep/OVERDUE` thay dòng H24 ). 🔴 **probe KHÔNG chặn**: lỗi in `probe-loi (khong chan)` đi tiếp. OVERDUE(light|deep) **INFORM anh** + đề-xuất spawn vai H24 tương-ứng. 🔴 **KHÔNG auto-run** anh consent mới chạy (giống sleep-check §2.1.2).
🔴 **Số nhịp = quyền anh.** Bước này **ĐỌC** `h24_cadence`, **KHÔNG** ghi. **CẤM hardcode nhịp ở đây** copy số vào doc dẫn-xuất chính drift single-source sinh ra để chặn (detector `governance-detectors.ps1` H24-2 **fail-loud** nếu key thiếu, **không** giả-định default).
> 🟡 **Honest-caveat mang theo khi báo hub:** hub nói rõ *"số của các em = config của các em; ĐỪNG chép 3 số này"*. SE chọn **cùng 6/15/3** là **điểm khởi-đầu anh CỐ Ý chọn**, KHÔNG phải chép vô-thức. **Chỉnh lại sau chu-kỳ-2 CỦA SE** (deep-audit lần 2, xem .session-counter.json last_audit). Hub đã GỠ counter (bookend 07-15, sha 85bf89ca) → ví-dụ 6/15/3 "ở nguồn" = lịch-sử, KHÔNG còn mốc hub để so; delta hub hứa từ run-2 KHÔNG BAO GIỜ có (hub gỡ trước run-2) — **chưa ai được bán câu "đã chứng minh hiệu-quả"**.
> 🟡 **Honest-caveat mang theo khi báo hub:** hub nói rõ *"số của các em = config của các em; ĐỪNG chép 3 số này"*. SE chọn **cùng 6/15/3** là **điểm khởi-đầu anh CỐ Ý chọn**, KHÔNG phải chép vô-thức. **Chỉnh lại sau chu-kỳ-2 CỦA SE** (deep-audit lần 2, xem .session-counter.json last_audit). Hub đã GỠ counter (bookend 07-15, sha 85bf89ca) → ví-dụ 6/15/3 "ở nguồn" = lịch-sử, KHÔNG còn mốc hub để so; delta hub hứa từ run-2 KHÔNG BAO GIỜ có (hub gỡ trước run-2) — **chưa ai được bán câu "đã chứng minh hiệu-quả"**. ✅ **Ratified 2026-07-17:** anh mark cổng reply `e50a4bd0` (2026-07-16-ai_infra-to-se-reply-adap); canonical = `memory-budget.json → h24_cadence._owner_ratified` (B1 — wording sống ở đó, đừng chép lại đây).
### 2.2 Skill registry (6 skill)
- Liệt kê: `contract-workflow` · `form-engine` · `permission-matrix` · `dependency-audit-erp` · `ef-core-migration` · `iis-deploy-runbook`