wal: flush 20260726T1801

This commit is contained in:
pqhuy1987
2026-07-26 18:01:00 +07:00
parent 871ac0a619
commit 48f3fef502
6 changed files with 196 additions and 0 deletions

View File

@ -0,0 +1,57 @@
# _context-s-7 — SESSION-MODEL narrative durable
<!-- SCAFFOLD-META: sID=7 | ts-moc=2026-07-26T16:16:45+07:00 | nguon-ts=git log -1 --format=%cI @ HEAD 871ac0a | generator=scripts/session-scaffold.ps1 -->
> **sID (LOGIC-session) = 7.** 1 phiên-logic (bootstrap → work → sweep) trải nhiều window vật-lý nối bằng `/pause`+`/tiep`. Window = 0-ID governance; **sID = đơn-vị LOGIC**. Folder pin: `.claude/sessions/session-7/`.
> ts-mốc khởi-tạo = **2026-07-26T16:16:45+07:00** (nguồn: `git log -1 --format=%cI @ HEAD 871ac0a`) — mốc git-committer, KHÔNG phải wall-clock tuỳ-tiện.
>
> 🔴 **CẤM rewrite / tự-tóm block FLOW** (chống self-summary lossy). FLOW = append-only @`/pause`-only; vượt cap `session_ctx_kb` → distill SECTION CŨ thành pointer/gist, TUYỆT ĐỐI KHÔNG sửa entry verbatim đã ghi.
---
## (a) STOCK-map — reference-not-copy
> Bảng pointer tới nguồn durable. **KHÔNG copy nội-dung** (chống drift). Điền @bootstrap; row session-specific append dưới các row stable.
| Tên | Path | 1-dòng |
|---|---|---|
| WAL | `.claude/WAL.md` | mạch-việc-dở máy-state (H-22) — nối bằng `/tiep` |
| AI-context | `CLAUDE.md` | AI agent context SOLUTION_ERP (scope + quick-rules) |
| Trạng-thái | `docs/STATUS.md` | canonical mọi con-số (mig · bảng · test · roster) |
| Bàn-giao | `docs/HANDOFF.md` | brief 5 phút + bảng số chờ-anh + carry |
| Sổ đếm H24 | `.claude/governance/.session-counter.json` | counter + nhịp lead-self-audit |
| Thư cross-project | `broadcasts/_index.md` | INBOUND directed (`outbox/se`) — fan-out `outbox/all` KHÔNG vào đây |
| _(session-specific)_ | _(path)_ | _(1-dòng — append @bootstrap phiên này)_ |
---
## (b) FLOW — append-only @pause-only
> 🔴 **CẤM rewrite FLOW.** Mỗi `/pause` APPEND đúng 1 entry theo SCHEMA dưới (đặt DƯỚI dòng `FLOW-START`). Entry cũ = immutable. FLOW = SOURCE durable của "đang-đến-đâu"; bảng-đầu-việc = VIEW derive từ đây (single-source).
<!-- ENTRY-SCHEMA (guidance, KHONG phai entry that — /pause command dien; parser real-entry match `^### PAUSE-\d+`, placeholder `<k>` khong false-match):
### PAUSE-<k> <ts ISO-8601>
> anh: <tin-nhan anh VERBATIM — copy nguyen-van, KHONG paraphrase>
**(1) quyet-dinh da CHOT** / **(2) delta con SONG** / **(3) con-tro**
```json
{ "machine_block": "python scripts/session_ctx.py machine-block --session <N> --json" }
```
-->
<!-- FLOW-START — entries append bên dưới dòng này, mới nhất ở CUỐI -->
_(chưa có PAUSE — entry đầu append @`/pause` đầu tiên của phiên)_
---
## (c) STOCK-touched — máy-derive
> Bảng file-đã-đụng trong phiên, **máy-derive** từ `git diff --name-only <anchor>..HEAD` @pause/snapshot. KHÔNG điền tay.
| File | Δ | Ghi-chú |
|---|---|---|
| _(máy-derive @pause/snapshot)_ | | |

View File

@ -0,0 +1,31 @@
# run: 2026-07-26-S154-bookend-open
- **session:** S154 (nhãn cửa-sổ vật-lý) · **phiên-LOGIC:** L7 (`.claude/sessions/session-7/`)
- **kind:** bookend @open — hình B (AUTO vô-điều-kiện, 0 cổng consent per owner @S152 "vòng 1→5 auto")
- **lead:** em-main (Opus 5 MAX default) · **HMW-mode:** ON
- **HEAD @open:** 871ac0a · **counter:** 27 → 28 (tick S154, classify `squash-benign`)
## Máy chạy TRƯỚC vai (rẻ trước, đắt sau)
| script | kết quả |
|---|---|
| `session-scaffold.ps1 -New` | `session-7` created (max was 6), exit 0 |
| `session-counter-tick.ps1 -Session S154` | squash-benign, counter 27→28, exit 0 |
| `nhip-no-probe.ps1` | `kiem light 1/6 deep 3/15 ok \| tran-bo-nho 0 over-cap l2idx 0 over \| run-chua-gom 0 \| pull-cach 4 ngay` |
| `distill-shard-probe.ps1` | `pending=15 \| nguong=15 => IM` (V4 sleep KHÔNG fire) |
| `governance-detectors.ps1` | TOTAL 43 · INFORM-only 4 (C11 FLAG-khuôn ×4) · 0 self-match |
| `crystallized-backfill.ps1` | cap 380000 tok · hotload 609.913B · tok-range [152478..203304] · headroom 176.696 · target 210K ⇒ headroom binds |
| `memory-selfimprove-audit.ps1` | CRITERIA A1 A2 A3 B1 B2 HCV · **GAPS: none** |
## Vòng chạy (5 vòng AUTO)
- [x] **V5 floor/detector** — 3 script trên, xong TRƯỚC vai
- [ ] **V1 tooling/harvest**`tooling-auditor` + `harvest-curator``ring1-audit`
- [ ] **V2 soi-lead H24**`lead-stale-auditor` + `lead-gap-auditor``ring2-audit`
- [ ] **V3 trio-memory**`harness-eval``harness-refine``harness-audit` (TUẦN TỰ, giữa 2 bookend)
- [x] **V4 nén-ngủ** — probe IM ⇒ NO-OP có khai (không fire, không cần `ring4-audit`)
- [ ] **Phase 3.5 Ctx**`_mind-s-7.md` block-0 → `mind-check``ctx-audit` @open
## Sub-file
(ghi khi từng vai trả — lead scribe NGAY, không đợi đủ)

View File

@ -0,0 +1,35 @@
# sub-harvest-curator-open-S154 — H2 harvest-integrity 5-trục @OPEN phiên S154 (phiên-LOGIC L7)
> Kỷ luật anti-#53: **ghi TRONG LÚC LÀM**. Mỗi finding land ngay khi đo xong; file luôn hợp-lệ giữa chừng.
> Propose-only. Lead = single-writer. KHÔNG sửa file nào khác ngoài file này.
> PIN so-sánh: `.claude/workflows/runs/2026-07-26-S153-bookend-close/sub-harvest-curator-close-S153.md` (GATE-PASS-WITH-FLAGS, 8 finding).
---
## A. Universe run-folder — đo tươi, KHAI TIÊU-CHÍ LỌC (m#19)
**Lệnh:** `find .claude/workflows/runs -mindepth 1 -maxdepth 1 -type d | wc -l`**60 dir** (S153 chốt 59 ⇒ +1 = `2026-07-26-S154-bookend-open` của chính phiên này).
### A.1 Phân-loại 3 dir KHÔNG có `run.md` (root hoặc `sub-md/run.md`) — KHÔNG orphan
Lệnh: vòng `for d in $(find … -type d); do [ ! -f "$d/run.md" ] && [ ! -f "$d/sub-md/run.md" ] && echo …`
| Dir | Ruột | Verdict |
|---|---|---|
| `2026-07-14-S117-pe-approve-minmax-range` | chỉ `spec-*.md` | spec-only by-design (dual-accept từ S117) |
| `2026-07-14-S117-pe-luyke-finalize` | chỉ `spec-*.md` | spec-only by-design |
| `2026-07-22-S144-bootstrap` | có `bootstrap-synthesis.md` + 2 sub-file | **đã harvest**, chỉ thiếu `run.md` (ca tao TRƯỢT @S151) |
### A.2 Orphan-scan TRỌN 60 dir (authority = folder-scan; 🧊 `_ledger.md` retired H18-B S100)
Lệnh: với mọi dir có `run.md`, đếm `find "$d" -maxdepth 2 -name "*synthesis*.md" -size +0c`.
- **1 candidate duy nhất:** `2026-07-26-S154-bookend-open``run.md` 1.882B, **0 synthesis****ĐANG MỞ = by-design, KHÔNG flag** (brief §3).
- **59 dir còn lại: 0 orphan.**
-`2026-07-26-S153-bookend-close` — S153 để lại candidate "đang mở"; nay **đã có synthesis >0B****nợ S153 ĐÓNG**.
**0 orphan thật / 60.**
---
*(đang đo tiếp — các mục dưới land dần)*

View File

@ -0,0 +1,27 @@
# sub-lead-gap-open-S154 — H24 §2(1) vai-GAP · bookend @OPEN phiên S154 (phiên-LOGIC L7)
> Ghi-đĩa-TRONG-lúc-làm (chống #53). Mỗi FLAG 1 dòng tag `## FLAG-<n> — \`<class>\` — <SEV>`.
> Enum ĐÓNG đọc từ `.claude/agent-memory/memory-budget.json` → `lead_self_audit.flag_classes` (11 class; 6 gap-*).
> Propose-only. KHÔNG Write/Edit ngoài file này. KHÔNG RAG-write.
## 0. Tập KỲ-VỌNG dựng TRƯỚC (method H24 — không đọc-xuôi đợi thiếu-sót nhảy ra)
Nguồn cam-kết đã đọc: `docs/HANDOFF.md` (mega-line, 379 dòng vật-lý / 133.759B) · `docs/STATUS.md` (195.194B) · `.claude/WAL.md` (182B — vừa reset §6.4) · `.claude/agent-memory/memory-budget.json` · `runs/2026-07-26-S153-*/` · `docs/changelog/sessions/`.
### 0.1 Disk-touch nền (chống lỗi lead S121 "bảng-kế-hoạch ≠ đĩa")
```
grep -o '\[carry:[a-z0-9-]*\]' docs/HANDOFF.md | wc -l => 219 occurrence
grep -o '\[carry:[a-z0-9-]*\]' docs/HANDOFF.md | sort -u => 43 slug DISTINCT
```
🔴 Bẫy mega-line đã né: `grep -c` ra 1 dòng; phải `grep -o | wc -l`.
### 0.2 Đếm slug theo TỪNG khối carry (dòng vật-lý = 1 khối logic)
| khối | dòng | slug dạng `[carry:x]` |
|---|---|---|
| Carry @S153 | :6 | **5** |
| Carry @S152 | :13 | **6** |
| Carry MỞ re-stamp @S151 | :18 | **26** |
| Carry MỞ re-stamp @S150 | :23 | **24** |

View File

@ -0,0 +1,16 @@
# sub-lead-stale — BOOKEND @OPEN S154 (phiên-logic L7) · 2026-07-26
**Vai:** H24 §2(1) vai-STALE (view LỆCH source). **Nhịp:** hình-B vô-điều-kiện @open (KHÔNG theo counter).
**Nền máy (KHÔNG chạy lại):** `governance-detectors.ps1` phiên này TOTAL **43** + INFORM-only **4** (C11 FLAG-khuôn ×4 tại runs S151/S152). Lane của tao = NGỮ-NGHĨA máy mù.
**Phủ máy (đọc `scripts/governance-detectors.ps1:204-282`):** canonical-resolve CHỈ gồm `{mig, table, gotcha, test, menu, policy}` ⇒ các row `User memory` · `Sub-agents` · `RAG chunks` · `API endpoints` · `FE pages` · `Master data` **NGOÀI tập-đo máy** — tin máy tới đâu thì tới đó, "0 flag" ở các row này KHÔNG đọc thành sạch.
**Kỷ luật:** ghi TỪNG finding ngay khi thấy (anti-#53 + anti-pin-bản-cắt 4-A@S152). File này LUÔN hợp-lệ giữa chừng; chỉ dòng `END+TOTAL` cuối mới là bản chốt.
---
## FLAG-1 — `view-stale-count` — HIGH
- **view:** `docs/STATUS.md:454` — row canonical `| User memory | **31** |`, note gần nhất neo ở `+S84` (`feedback_derived_flush_execution`), re-ground gần nhất khai `S71 (H1 disk-count: 25 feedback_* + 3 project_*)`.
- **source (đĩa, 2026-07-26):** `.claude/auto-memory/` = **53** file `.md` trừ `MEMORY.md` (**47** `feedback_*` + **6** `project_*`); `.claude/auto-memory/MEMORY.md` cũng có **53** dòng index `^- \[`.
- **Lệch:** view nói **31**, source nói **53** — thiếu **22**, tức ~41% corpus không có trong con số canonical. Đơn-vị KHỚP (cùng phép đếm mà chính note dùng ở lần re-ground S71: file `feedback_*` + `project_*` trên đĩa), nên đây KHÔNG phải lệch-định-nghĩa mà là stale thật.
- **Vì sao máy mù:** `Get-StatusValue` (detectors:204-208) chỉ map `{mig,table,gotcha,test,menu,policy}` → row `User memory` không có token, `[OK] canonical matches disk` không hề cross-check nó. Đây đúng lớp **canonical-poison** đã cắn ở S148 (row `Tests` 528 sai suốt 2 phiên) — nhưng lần này row NGOÀI tập cross-check nên không có ai bắt hộ.
- **resolve:** row `:454` = 53 (hoặc chốt lại định-nghĩa đếm), + note ghi rõ lần re-ground S154; hết flag khi `Value` khớp `ls .claude/auto-memory/*.md | grep -v MEMORY.md | wc -l`.

View File

@ -0,0 +1,30 @@
# sub-tooling-auditor — BOOKEND @OPEN S154 (phiên-logic L7)
> H1 tooling-freshness 4-mặt + DIFF vs S153-close. Read-only + propose-only. Ghi-trong-lúc-làm (chống #53).
> Bắt đầu 2026-07-26. Repo `D:\Dropbox\CONG_VIEC\SOLUTION\SOLUTION_ERP`. PIN đối-chiếu: `runs/2026-07-26-S153-bookend-close/sub-tooling-auditor-close-S153.md` (6 finding).
## Ground state (đo trước tiên — mọi số có lệnh kèm)
| mục | giá-trị | lệnh |
|---|---|---|
| HEAD | `871ac0a` 2026-07-26 16:16:45 +0700 "S153 closeout-bis — _end session-6 + _mind block-0 … + reset WAL" | `git log -1 --format='%h %ad %s' --date=iso` |
| working tree | **3 mục, SẠCH-về-governance**: 1 M `.claude/governance/.session-counter.json` (tick S154) + 2 untracked `.claude/sessions/session-7/` · `runs/2026-07-26-S154-bookend-open/` — cả 3 = artifact của chính bookend này | `git status --porcelain \| wc -l` = 3 |
| Δ vs S153-close | S153 lúc đó DIRTY 13 M + 3 untracked; nay **đã commit trọn** qua `11db5ef` + `871ac0a` | so PIN §Ground |
(findings ghi dần bên dưới — file LUÔN hợp-lệ giữa chừng)
---
## ② VAI-TRÒ SUB-AGENT — **PASS** (4 bề mặt khớp **23**, tên trùng 1:1)
| bề mặt | số | bằng-chứng (lệnh) |
|---|---|---|
| đĩa `.claude/agents/*.md` trừ README | **23** | `ls .claude/agents/*.md \| grep -v README \| wc -l` = 23 |
| `hmw.js` VALID_ROLES (đếm PHẦN-TỬ) | **23** | `awk '/^const VALID_ROLES = \[/{f=1} f{print} /^\]/{if(f)exit}' .claude/workflows/hmw.js \| sed 's#//.*##' \| grep -o "'[a-z0-9-]*'" \| wc -l` = 23 |
| `docs/STATUS.md:456` §Sub-agents (canonical) | **23** | `grep -n "Sub-agents" docs/STATUS.md``:456 \| Sub-agents \| **23** \| +S153 bộ-ba vòng Ctx …` |
| `.claude/agent-memory/*/` (nhà diary) | **23** | `ls -d .claude/agent-memory/*/ \| wc -l` = 23 |
| `.claude/agents/README.md` | **B1-pointer, 0 số** (ĐÚNG luật) | `:3` "Số vai canonical → docs/STATUS.md §Sub-agents. KHÔNG chép số vào file này" |
- **Tên trùng khít 1:1 (không chỉ trùng SỐ):** `diff <(VALID_ROLES sorted) <(disk sorted)` = **rỗng**; `diff <(agent-memory dirs) <(disk)` = **rỗng**. ⇒ 0 vai mồ-côi nhà, 0 nhà mồ-côi vai.
- **Header `STATUS:6` cũng khai `Sub-agents 23`** (`grep -o "Sub-agents [^|]\{0,20\}"` → hit-1 = `Sub-agents 23** · counter **27`) ⇒ 2 tầng STATUS nhất-quán. 15 hit `Sub-agents 12` còn lại đều nằm khối **Prev/frozen** (`:198 :222 :249 :282 :315 …`) = record lịch-sử, **KHÔNG sửa** (luật S143 prescriptive⟂frozen).
- 🔴 **Bẫy `]` (bài S153) TÁI-KIỂM và né được:** range naive `awk '/VALID_ROLES/,/^\]/'` cho **33** — sai vì range **MỞ LẠI**`!VALID_ROLES.includes(...)` phía validator rồi nuốt thêm chuỗi nháy-đơn trong header-comment. Neo đúng = `^const VALID_ROLES = \[` + `exit``^]` đầu tiên ⇒ 23. *(Khác biến-thể S153: lần đó lỗi do `]` trong comment; lần này do range tái-mở. Cùng một class "range không neo".)*