Files
solution-erp/.claude/commands/pause.md
pqhuy1987 8b6df0a396
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m25s
[CLAUDE] Docs: S146 closeout — session-model 3 owner-decision + hook 4-path + H24 auto
Ap spec-apply-hub-s145-v2 (5 axis, governance-only: 0 prod-code, 0 migration).
Workflow S145 chet giua chung -> /tiep §4 relaunch-cat-gon wf_3d803740-41d 3/3 DONE.

Owner-decision @S146:
- session_ctx_kb = 64 TUONG-MINH (giu nguyen caveat ghost-wire: 0 reader)
- session-model: scaffold IDEMPOTENT (tach cap-SO vs tao-THU-MUC) · closed.md WIRE
  (session-end §6.3-bis) · V2 AUTO (go cong NGUOI, GIU cong NHIP 6/15/3)

Landed: C7 §N.8 predicate 4-ve · hook wal-flush.ps1 4 path (+.claude/sessions/)
· San-3 tin-hieu ⑤ + ORPHAN-L · D2 KIEM end-only · §L.c completeness-gate co RANG.
LIVE-VERIFY hook 4-path PASS repo THAT (da7ee8a). Session-model chay TRON VONG dau
tien: pause-S146 -> resume-S146 -> ORPHAN-L can so.

H24 force-fire (P=8 pause >= 1, luat auto moi): 2 vai + h24-audit -> 7 FLAG, va het:
- sweep-consent sot 6 site (h24-audit.md:4 = frontmatter description)
- closed.md wired-but-declared-unwired (ghost-wire CHIEU NGUOC)
- owner-decision [7] BI GHI DE do tai-dung slot-index -> mat uy-quyen push
3/3 vai lane-H24 garble #53: ghi-dia-SOM cuu tron, ghi-MUON mat trang.

So: orphan run-folder 3->0 · carry 14->20 (co tag [carry:*]) · +E-013 +E-014
error-ledger · +memory feedback_absence_looks_like_clean · .gitignore +lock file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 00:16:37 +07:00

7.5 KiB

description: /pause — chốt điểm dừng chủ-động (Harness-22 WAL session-continuity). Ghi mạch việc dở vào .claude/WAL.md ≤40 dòng + commit wal: pause ĐÍCH-DANH rồi DỪNG HẲN — an-toàn để thoát / đổi acc / tắt máy. Nối lại DUY-NHẤT bằng /tiep. argument-hint: (không tham số)

/pause — chốt điểm dừng chủ-động (Harness-22 WAL session-continuity)

Mục-đích: chốt trạng-thái làm-việc hiện-tại xuống đĩa một cách an-toàn, để có thể thoát / đổi tài-khoản / tắt máy mà KHÔNG mất trí-nhớ đã có và KHÔNG phải đốt lại token cho phần đã xong. Cặp với /tiep (đường recovery duy-nhất). 🔴 restart Claude Code sau khi tạo/sửa command .md (no hot-reload).

Thực-hiện tuần-tự 5 bước sau; trong lúc chạy KHÔNG nhận việc mới:

1. NGỪNG spawn mới — xử-lý task đang chạy

  • KHÔNG spawn / phóng thêm bất-kỳ task hay workflow nào nữa.
  • Với task đang chạy (background hoặc workflow):
    • Sắp-xong (ước < ~2 phút) → CHỜ nhận kết-quả rồi harvest-liền (append phần trí-nhớ đã verify) trước khi chốt.
    • Còn lâuKHÔNG chờ. Ghi vào WAL một mục [!] đủ trường. Nếu là workflow → ghi một dòng wf: năm-trường: wf:<mục-đích> run=<run-folder> runId=<id|pending> args=<snapshot> done=<k>/<N> harvested=no (nhánh khôi-phục xem /tiep).

2. Flush trí-nhớ dirty xuống đĩa

  • Đẩy mọi trí-nhớ đang dirty (chưa ghi) xuống đĩa (agent-memory / run-folder).
  • Ghi-chú-dở DÀI (context, phân-tích giữa chừng) để ở run-folder / work-state, KHÔNG nhét chi-tiết dài vào WAL — WAL phải giữ tính "liếc một cái là biết".

2.6 Ghi context-block vào thư-mục phiên-LOGIC (S146 — lane CỘNG-DỒN, cặp với /tiep §2.6)

  • Append MỘT khối mới vào .claude/sessions/session-<N>/pause-S<nn>-<yyyyMMddTHHmm>.md (<N> = phiên-LOGIC đang mở — xem session-start.md BƯỚC 0.8).
    • 🔴 Scaffold idempotent (owner chốt @S146 "giống hub"): thư-mục chưa có ⇒ TẠO; đã có ⇒ DÙNG LẠI, CẤM đè. Chạy lại nhiều lần vô hại.
    • 🔴 NHƯNG /pause KHÔNG BAO GIỜ tự tăng <N> — cấp-số là độc-quyền /session-start (BƯỚC 0.8, canonical; B1 — mục này chỉ TRỎ). /pause chỉ tạo thư-mục cho số đang mở. Không có số nào đang mở (vào thẳng bằng /tiep rồi /pause, chưa từng /session-start) ⇒ dùng max+1 và ghi 1 dòng khai trong khối: N-cap-ngoai-session-start: <N> (ly-do: <...>) — để <N> không bao giờ xuất-hiện mà không ai biết nó ở đâu ra.
  • 🔴 ACCUMULATE — CẤM ghi đè, CẤM sửa khối cũ. Mỗi /pause = một file mới. (Ghi đè = mất chính thứ mà lane này sinh ra để giữ.)
  • 3 trường (đúng khuôn VC-3 draft): (1) quyết-định đã CHỐT trong cửa này · (2) delta còn SỐNG (việc/nghi-vấn mang sang cửa sau) · (3) con-trỏ run-folder / commit / file.
  • 🔴 Ranh với WAL — KHÔNG nhập một: WAL = mạch-sống, ghi-đè, cứng ≤40 dòng (liếc-một-cái-là-biết, bước 3 dưới). Context-map = bối-cảnh tích-luỹ, không cap 40 dòng. Ghi-chú-dở DÀI thuộc về đây, KHÔNG nhồi vào WAL.
  • CẤM secret (thư-mục này sẽ được commit — cùng kỷ-luật WAL bước 3).
  • 🔸 Hook wal-flush.ps1 đã phủ .claude/sessions/ (path thứ-4, S146) ⇒ khối này tự vào wal: commit ở turn-boundary. Vẫn PHẢI add đích-danh ở bước 4 (đừng dựa vào hook để chốt điểm dừng — hook là lưới, không phải nghi-thức).

3. Cập-nhật .claude/WAL.md đúng schema

  • chain: — đầy-đủ mọi mục trạng-thái ([x] đã-xong · [!] đang-dở · [ ] chưa-làm), KÈM BẰNG-CHỨNG là một lệnh / đường-dẫn / hash chứng-minh trạng-thái đó (KHÔNG mô-tả suông).
  • next: — đúng một mệnh-lệnh cụ-thể: làm gì tiếp theo.
  • verify:ít nhất một lệnh CHẠY ĐƯỢC cho từng mục [!], để /tiep chạy được và đối-chứng.
  • 🔴 WAL ghi-đè toàn-file (KHÔNG append), cứng ≤ 40 dòng. CẤM secret (WAL sẽ được commit): không key, không token, không credential.

3.5 TICK counter (H24 — TRƯỚC commit bước 4; Item 1(c) S135)

  • Tick .claude/governance/.session-counter.json theo contract (idempotent — NO-OP nếu cùng nhãn-phiên/cùng HEAD) — 🔴 CON-TRỎ session-start.md §2.1.8, CẤM chép logic tick (B1 canonical).
  • 🔴 TRƯỚC commit bước 4 ⇒ delta counter được gộp vào commit wal: pause (file NGOÀI hook-4-path nên PHẢI add đích-danh ở bước 4).

4. Commit ĐÍCH-DANH — message wal: pause

  • git add đích-danh đúng các path: WAL + path persist (agent-memory / run-folder / .claude/sessions/session-<N>/ — context-block bước 2.6, S146) + .claude/governance/.session-counter.json (🔴 M-7: tick bước 3.5 nằm TRONG commit wal: pause — file ngoài hook-4-path nên PHẢI add đích-danh; thiếu dòng này thì claim "tick nằm trong wal: pause" SAI) + file dở, rồi git commit -m "wal: pause".
  • 🔴 TUYỆT ĐỐI KHÔNG git add -A — chỉ add đúng path cần chốt, tránh nuốt file rác / secret ngoài ý-muốn.
  • KHÔNG push. (Repo trong Dropbox → thư-mục .git được cloud-sync, nên commit local vẫn durable qua tắt-máy / đổi-acc.)

5. Báo-cáo ngắn rồi DỪNG HẲN

Báo đúng sáu ý:

  1. goal — mạch việc đang dở là gì.
  2. mục [!] đầu-tiên — bước dở gần nhất.
  3. workflow bỏ lại (nếu có) — dòng wf: đã ghi.
  4. "an-toàn để thoát, đổi acc, hoặc tắt máy".
  5. dòng-nợ (Item 2 S135): gọi powershell.exe -ExecutionPolicy Bypass -File scripts/nhip-no-probe.ps1 in dòng-nợ 4-vế (nhịp-kiểm đọc post-tick bước 3.5). 🔴 probe KHÔNG chặn điểm dừng: lỗi → in probe-loi (khong chan) → đi tiếp, VẪN tuyên-bố "an-toàn để thoát".

    🔗 Predicate C7 đầy-đủ (probe nào được phép chạy ở điểm dừng) = canonical harness-11-engine.md §N.8. 🔴 B1 — dòng này CHỈ TRỎ, CẤM chép predicate sang đây.

  6. 🧾 MASTER-CHECKLIST rút-gọn (S138): derive từ WAL vừa ghi (bước 3) + HANDOFF — in Tầng-1 mỗi arc 1 dòng {đóng · đang · chưa} + đếm 4-nhóm (xong / đang-dở / chờ-anh / chưa-làm) + liệt nhóm chờ-anh — 🔢 BẮT BUỘC ĐÁNH SỐ (anh trả lời bằng số). 🔴 Checklist = VIEW derive tươi — CẤM tạo file checklist nguồn-đôi (sàn-3).

Rồi DỪNG HẲN, KHÔNG nhận việc mới.


🔒 Bất-biến: commit ở bước 4 xảy ra TRƯỚC tuyên-bố ở bước 5 — chết ngay sau khi tuyên-bố "an-toàn để thoát" cũng KHÔNG mất gì (điểm dừng đã nằm trên đĩa).

👉 Nối lại = /tiep (MỘT đường recovery duy-nhất — kể cả khi user gõ "làm tiếp" bằng text thường, KHÔNG tự recovery cách khác).