# _context-s-13 — SESSION-MODEL narrative durable

<!-- SCAFFOLD-META: sID=13 | ts-moc=2026-08-07T23:37:36+07:00 | nguon-ts=git log -1 --format=%cI @ HEAD 936d1aed | generator=scripts/session-scaffold.ps1 -->

> **sID (LOGIC-session) = 13.** 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-13/`.
> ts-mốc khởi-tạo = **2026-08-07T23:37:36+07:00** (nguồn: `git log -1 --format=%cI @ HEAD 936d1aed`) — 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 -->

### PAUSE-1 2026-08-08T12:21:11+07:00

> anh: xong thì /pause nhé

**(1) quyết-định đã CHỐT trong cửa này:**
- `YC-013` pipeline anh chỉ định chạy TRỌN: 3 fable-invest → spec → 2 fable-review → fan-out Opus MAX → **SHIP commit `706134da` push `936d1aed..706134da`** (13 file, +1604/−89, 0-mig).
- `YC-014` = **D3=C** (anh chốt AskUser): mờ ô chưa nghe, 6 ô disabled-giữ-state-thật + #4 state-thật-tooltip-riêng + chữ-nhìn-thấy; ERRATA "forced-true" ratified = rút gọn hao nghĩa.
- **D5** (rào xoá-version-cuối nhóm) + **D6** (pin-check IsActive∧IsUserSelectable) = lead chọn CÓ theo bậc-2, anh veto 1 câu là gỡ.
- Anh đổi model 2 lần trong phiên: Fable-5 (lúc giao YC-013) → **Opus-5** (hiện hành).
- Suite **645 → 660** (14 spec + T15 MAJOR-3); reviewer pre-commit `PASS_WITH_FIXES 0C/3M+6m` — 3 MAJOR + MINOR-1/-3 vá TRƯỚC commit, MINOR-2 BOM gỡ, MINOR-4/5 khai trong commit-body.

**(2) delta còn SỐNG (mang sang cửa sau):**
- 🔴 **cicd 4-chân CHƯA verify** — push kích CI (~5-6′): (i) Run success + test-gate 660 · (ii) bundle admin rotate + marker `KhkkN1` + **eoffice CŨNG rotate** (W2e/W2g chạm fe-user) · (iii) DLL grep `EnsureWorkflowGroupMatch` 2-encoding · (iv) query-1 lại 8 row IsActive=1.
- Acceptance prod đọc-only (≥3/8 panel + dialog + 3 query + audit pin-lệch) — **KHÔNG bấm "Tạo phiên bản mới" trên prod**.
- A2-có-răng + T8 = cần seed local (6 ô 0/88 trên prod; 0 phiếu ChoDuyet).
- Bookend @close S182 CHƯA chạy (trio + cặp H24 @close + deep-sweep OVERDUE 16/15) — treo-chờ-anh 5 câu ở WAL.
- Lỗi lớp tự-quy-chiếu 3 site đã phát hiện nhưng CHƯA vá (`session-start.md:161/:162` ghost-enum · `HANDOFF:58` nguồn lây · vùng-câm detector `:892`).

**(3) con-trỏ:**
- run-YC-013: `.claude/workflows/runs/2026-08-08-S182-khkk-awf-mirror-ncc/` (spec FINAL + 3 invest + 2 review + 4 lane + precheck + reviewer-precommit)
- run-bookend: `.claude/workflows/runs/2026-08-07-S182-bookend-open/` (9 artifact + synthesis)
- commit ship: `706134da` · sổ: `YC-013`(mở, chờ cicd)/`YC-014`(đóng) `so-yeu-cau-chu-du-an.md:46-47`
- `ctx-curator` @pause-1: **`SUA — 9 điểm`** (nặng nhất: #1/#2 lead tự lật nhãn ngược phán-quyết đã đóng · #3 V-5 rơi lần 2 · #4 chép lệch đơn-vị "Phase=3") — cả 9 đã SỬA vào nháp trước khi chèn MIND-1; máy re-check PASS

```json
{ "machine_block": { "session": 13, "anchor": { "subject": "[CLAUDE] Workflow: KHKK 8 panel nhóm mirror DuyetNcc + BE guards (0-mig)", "ts": "2026-08-08T12:14:37+07:00" }, "anchor_from_fallback_since": false, "changed_files": [], "changed_count": 0, "run_id": "wf_a07b53c8-47e" } }
```
*(máy-derive: `changed_count=0` vì anchor = chính commit ship `706134da` — mọi code ĐÃ COMMIT trước pause; giới-hạn khai: việc dirty còn lại là governance/sessions sẽ vào commit `wal: pause`)*

### PAUSE-2 2026-08-08T13:18:00+07:00

> anh: xong thì /pause nhé

**(1) quyết-định đã CHỐT trong cửa này (window-2, /tiep @S183):**
- Verify deploy `706134da` **4/4 chân PASS** (lead-solo thay spawn cicd-monitor — khai lệch-có-lý-do): admin `Ajv-MaCz→ChepzuO4` marker `KhkkN1`=1 control-âm-0 · eoffice `YsXRkBSR→BQ_dvyu6` · DLL `EnsureWorkflowGroupMatch` 3-hit · 8-row IsActive=1 + pin-lệch-0 + control-menu-200. ⇒ **giao diện 8 panel SỐNG prod**. `YC-015` (nhắc-lại YC-013) đóng.
- Anh giải-thích-kỹ 3 câu treo → **chốt slot (67) = "(c) THEO TAY CẦM PHIẾU"** (`YC-016`, sổ `:49`): guard `EnsureApprovalAttachmentUploaderAsync` (Nháp/TraLai=người-soạn · ChoDuyet=membership-quy-trình · terminal=chặn-cả-hai; CHỈ rẽ `Purpose=ApprovalAttachment`, đường dossier giữ nguyên + control-test) + 8 test → suite **668/0** → SHIP `72568f05` → **verify DLL prod `new-guard: 3`, mtime lật 13:11:21** (lần đo 1 ra 0 + control 3 = chưa-deploy thật, đợi 1 nhịp đo lại — nhị-phân-control đứng vững).
- VK-5 + (72) + ring5(41) đã giải-thích-kỹ cho anh — **chưa phán**, còn treo.

**(2) delta còn SỐNG:**
- acceptance MẮT-ANH 8 panel (đọc-only, KHÔNG bấm "Tạo phiên bản mới") + acceptance ĐỘNG local (seed cờ=true + phiếu ChoDuyet).
- bookend @close (trio vòng-auto + H24 @close + ring2 + **deep-sweep 17/15** + ctx-audit @close mồi ring1-persona).
- vá 3 site tự-quy-chiếu (= VIỆC ở WAL) + gom nợ harvest 576.255 B (uỷ-quyền slot 71) + đóng sổ YC-013 sau mắt-anh.
- Nhánh upload căn-cứ dossier (purpose khác) hiện 0-guard-phase — HIỆN TRẠNG ngoài scope YC-016, khai để cửa sau cân nhắc hỏi anh.

**(3) con-trỏ:**
- ship window-2: `72568f05` (4 file: Guards + Features + ApprovalTests + sổ) · sổ: `YC-015`(đóng)/`YC-016`(đóng-đã-verify) `so-yeu-cau-chu-du-an.md:48-49`
- guard: `src/Backend/SolutionErp.Application/ContractSigningPlans/ContractSigningPlanWorkflowGuards.cs` · test: `tests/SolutionErp.Infrastructure.Tests/Application/ContractSigningPlanApprovalTests.cs` (8 ca `UploadDuyet_*`/`UploadCanCu_*`)
- `ctx-curator` @pause-2: **`SUA — 6 điểm`** (nặng nhất #1 thứ-tự land-PAUSE-trước-chèn-MIND · #3 header HEAD thật · #4/#5 nhãn D + mẩu chống-tái-lật) — cả 6 đã SỬA trước khi chèn MIND-2

```json
{ "machine_block": { "session": 13, "anchor": { "subject": "[CLAUDE] App: YC-016 guard file-khi-duyệt KHKK theo TAY CẦM PHIẾU (slot 67 đóng)", "ts": "2026-08-08T13:10:31+07:00" }, "anchor_from_fallback_since": false, "changed_files": [".claude/WAL.md"], "changed_count": 1, "run_id": null } }
```
*(máy-derive @pause-2: anchor = ship `72568f05`; `changed_count=1` (WAL) — governance/sessions dirty còn lại vào commit `wal: pause` này)*

---

## (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)_ | | |
