# _snapshot-1 — SESSION-MODEL checkpoint (sID 2)

ts: 2026-07-24T17:32:19+07:00
head-sha: 3a1bb2505631eefe062303775c35ef2f17440a82
head-subject: wal: flush 20260724T1732
head-ts: 2026-07-24T17:32:19+07:00
label: session-model port trọn form hub + /snapshot + 2 script (anh chốt "1,2 làm đi ko cần hỏi hub")
snapshot-ordinal: 1

## essence (≤3 dòng — chốt cái CHƯA nằm file)
- Port XONG form hub: `_context-s-2.md` (STOCK+FLOW+STOCK-touched) · `_pause-1`/`_tiep-1` marker 5-trường · `_end` thay `closed.md`; 4 lệnh đồng-bộ; Sàn-3 ⑤ DUAL-ACCEPT hub+legacy, fault-inject 10/10 hai chiều + bắt được bug `c=1` có sẵn từ S146 (chốt-kết nay ĐÓNG TRỌN thư-mục).
- Port XONG 2 script hub: `session_scaffold.py` (near-verbatim, idempotent) + `session_ctx.py` **TRIMMED CÓ KHAI** (chỉ `machine-block` + `secrets-sweep`; KHÔNG port jsonl/overhead/cap-getter vì SE chưa có caller — port không caller = ghost-wire). secrets-sweep fault-inject 2 chiều CÓ RĂNG (chặn đúng mẫu-1 trong 4 Category-5, 0 dương-giả với chuỗi chứa cùng 2 ký-tự nhưng khác token). 🔴 Gate NỔ THẬT ngay lượt dùng đầu: bản nháp dòng này viết literal mẫu đó ⇒ bị CHẶN — **citation-trap**, xử bằng cách đổi CHỮ, tuyệt đối không nới detector.
- Đây là `_snapshot` ĐẦU TIÊN của SE — viết bằng chính `/snapshot` vừa port, để lệnh không thành ghost-wire. Auto-snap tại `/pause` wire kèm, chi-phí ròng đo được **~64ms** (machine-block ~140ms vốn đã phải chạy cho §(c)).

## machine-block
```json
{
  "session": 2,
  "anchor": {
    "subject": "[CLAUDE] Docs: S147 closeout — PE attach-fix (Trả lại) + project-dedup ship-prod",
    "ts": "2026-07-23T17:37:59+07:00"
  },
  "anchor_from_fallback_since": false,
  "changed_files": [
    ".claude/WAL.md",
    ".claude/governance/.session-counter.json",
    ".claude/sessions/session-2/_context-s-2.md",
    ".claude/sessions/session-2/_pause-1.md",
    ".claude/sessions/session-2/_tiep-1.md"
  ],
  "changed_count": 5,
  "run_id": null
}
```
