Files
solution-erp/.claude/workflows/runs/2026-07-12-h22-wal-adopt/sub-task-0.md

5.6 KiB
Raw Blame History

sub-task-0 — D3: tạo 2 command file /pause + /tiep (Harness-22 WAL session-continuity)

Role: implementer (Write tool) · Scope: CHỈ 2 file MỚI + file này. Không đè gì. Nguồn FROZEN đã đọc: broadcasts/inbox/2026-07-11-Governance-harness-22-wal-session-continuity.md (§4 dòng 101-120 + §6 dòng 130-140). KHÔNG tự đọc spec-file (nhận phần liên-quan qua prompt). Format mẫu: .claude/commands/send-email.md dòng 1-4 (frontmatter description: + argument-hint:).

Deliverables (2 file MỚI — đều ?? untracked, xác-nhận không đè)

File Dòng Nội-dung
.claude/commands/pause.md 47 /pause — chốt điểm dừng chủ-động, 5 bước tuần-tự + bất-biến + con-trỏ /tiep
.claude/commands/tiep.md 42 /tiep — recovery MỘT đường, 4 bước + nhánh wf: + khối CẤM

Cả 2 file tự-động đăng-ký thành slash-command (hệ báo skill pause/tiep xuất-hiện sau Write) → frontmatter hợp-lệ, well-formed.

Port-fidelity map → broadcast (trung-thực, không bịa)

pause.md ← §4 phần /pause (broadcast dòng 103-111)

  • Bước 1 (dòng 15-17) ← BC 105: NGỪNG spawn; sắp-xong <~2' → chờ+harvest-liền; còn lâu → KHÔNG chờ, WAL [!] đủ trường, workflow = dòng wf: 5-trường (port nguyên wf:<mục-đích> run= runId= args= done=k/N harvested=no).
  • Bước 2 (dòng 19-21) ← BC 106: flush dirty; ghi-chú-dở dài để run-folder/work-state, KHÔNG nhét vào WAL.
  • Bước 3 (dòng 23-27) ← BC 107 + §2 (BC 34-37): chain kèm BẰNG-CHỨNG · next: 1 mệnh-lệnh · verify: lệnh chạy-được cho từng [!] · ghi-đè toàn-file ≤40 dòng · CẤM secret.
  • Bước 4 (dòng 29-32) ← BC 108: commit ĐÍCH-DANH (WAL + path persist + file dở) msg wal: pause · TUYỆT ĐỐI KHÔNG git add -A · KHÔNG push [Dropbox .git cloud-sync = local durable].
  • Bước 5 (dòng 34-42) ← BC 109: báo goal / mục [!] đầu / workflow bỏ lại / "an-toàn để thoát, đổi acc, tắt máy" → DỪNG HẲN.
  • Bất-biến (dòng 45) ← BC 111: commit bước-4 TRƯỚC tuyên-bố bước-5.
  • Con-trỏ (dòng 47) ← §7 mục 5 (BC 154): "Nối lại = /tiep (MỘT đường recovery duy-nhất)".

tiep.md ← §4 phần /tiep (BC 113-120) + nhánh wf: §6 (BC 130-140)

  • Bước 1 (dòng 14-15) ← BC 115: đọc WAL; không tồn-tại / chain toàn [x] → "không có mạch dở" DỪNG SẠCH.
  • Bước 2 (dòng 17-20) ← BC 116 + SE-tailor N9: chạy TOÀN BỘ verify: đọc git status + disk run-folder (per-turn≠per-task: returns mất được nhưng per-agent-file trên đĩa còn) — đây là delta SE thêm theo prompt, so chain.
  • Bước 3 (dòng 22-24) ← BC 117: LỆCH → TIN GROUND-TRUTH (sửa WAL, báo lệch, rồi mới chạy) · KHỚP → thực-thi từ next:, nối chain thứ-tự.
  • Bước 4 (dòng 26-32) ← BC 118 + §6 (BC 137-138): mục wf: → recovery-workflow: đọc run-folder + ## taskList snapshot trong run.md; grep run-id trong log-phiên (glob — grep ĐÍCH-DANH, KHÔNG nạp toàn transcript); harvest-hồi-tố partial-honest; RELAUNCH đã-cắt-gọt chỉ task CÒN LẠI + memory-pack DẪN-XUẤT-LẠI TƯƠI (CẤM snapshot pack cũ); resume-by-run-id = bonus SAME-SESSION-ONLY, CẤM claim cross-session.
  • Khối CẤM (dòng 38-40) ← BC 120: CẤM giả-định bước xong nếu verify: không chứng-minh · CẤM nạp lại transcript cũ (WAL+ground-truth đủ; thiếu → HỎI anh).
  • Field session: (dòng 42) ← BC 120: khác phiên = BÌNH-THƯỜNG (use-case); chỉ cảnh-báo nếu updated: mới hơn lúc phiên hiện-tại bắt đầu (dấu phiên song-song).

Dead-ends né được (checklist X)

  • X4 (rewrite commit đã-push): pause.md chỉ "KHÔNG push" + rationale Dropbox-durable. KHÔNG hề nhắc squash/reset/rewrite (đó là §5 delta = task khác).
  • X8 (WAL append / >40 / secret): pause.md bước-3 ghi rõ "ghi-đè toàn-file (KHÔNG append), cứng ≤40 dòng, CẤM secret".
  • X5 (claim hook 'đang chạy'): 2 file KHÔNG nhắc Stop-hook. Commit bước-4 là commit THỦ-CÔNG của lệnh /pause, độc-lập hook.
  • X1/X7/X10: không đụng hmw-mode/BƯỚC-0.5/ultra-*/hmw.js; file MỚI nên không renumber gì.
  • Isolation: git-status → chỉ .claude/commands/pause.md + .claude/commands/tiep.md?? do tôi tạo; các M/?? khác (session-*.md, .gitattributes, hooks/, settings.json, CLAUDE.md, rules.md…) = sibling D-task, KHÔNG do tôi.

Acceptance (row #3) — grep-count evidence

Check Kết-quả Line
pause.md frontmatter description: PASS L2
pause.md wal: pause ≥1 PASS (3×) L2, L29, L30
pause.md git add -A ≥1 (câu CẤM) PASS (1×) L31 "TUYỆT ĐỐI KHÔNG git add -A"
pause.md trỏ /tiep PASS (5×) L47 con-trỏ cuối "Nối lại = /tiep"
tiep.md frontmatter description: PASS L2
tiep.md transcript ≥1 (câu CẤM) PASS (2×) L40 "CẤM nạp lại transcript cũ" + L29
tiep.md ground-truth ≥1 PASS (3×) L17, L40 (lowercase), L2
tiep.md wf: ≥1 PASS (3×) L2, L26, L27
tiep.md nhánh WAL-rỗng-dừng-sạch PASS L15 "chain toàn [x] → 'không có mạch dở' → DỪNG SẠCH"
tiep.md git status ≥1 PASS (4×) L19, L23, L40, L2

Verdict: 10/10 acceptance PASS. 2 file well-formed (auto-đăng-ký slash-command), port trung-thực, isolation sạch.