---
name: resume-premise-reverify
description: Resume-from-pause = re-verify TIỀN-ĐỀ scope trên disk (header artifact + git-date) trước khi execute; match theo NỘI-DUNG coverage KHÔNG theo tên-file 1:1; + 3 bề-mặt lỗi distill ngoài body mà gate máy móc mù; + S121 "bảng-kế-hoạch KHÔNG phải đĩa" (không-ai-được-giao ≠ chưa-làm)
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 2bf15e52-54c8-4028-93bc-eaa7e6139a95
---

S109 (2026-07-10) resume sleep-recovery: scope 16-file/6-agent "đã chốt + guard 16/16 gen-0 PASS" từ phiên pause hóa ra **14/16 ĐÃ covered** bởi gist gộp-kỳ S70 (`2026-05.gist.md` — header `source-verbatim` ghi rõ cover q1..q4/runs). Phiên pause match "gist tương-ứng" theo **TÊN-FILE 1:1** (`2026-05-q2.gist.md` không tồn tại → tưởng chưa nén). Git-date proof (14/14 verbatim last-commit ≤ ngày gist) → SKIP đúng guard "tránh nén lại", tiết kiệm ~180KB re-distill + tránh 2 bản gist song song drift. Scope thật = 2 file → pipeline trọn, reviewer Fable-real PASS_WITH_FIXES.

**Why:** Locked-scope/note phiên trước = snapshot suy-luận, có thể dựa tiền-đề đã sai từ lúc chốt; disk (header artifact đích + `git log -1` so ngày artifact-vs-nguồn) = truth. Re-verify rẻ (2 Read + 1 git log) so với chi phí thực thi sai (token lớn + duplicate-artifact khó gỡ). Guard "gen-0 PASS" chỉ chứng nguồn-là-verbatim — KHÔNG chứng "chưa từng được nén" khi artifact đích đặt tên khác quy ước.

**S121 bổ-sung — biến-thể NGUY HIỂM HƠN: suy fact-đĩa từ BẢNG-KẾ-HOẠCH (lead tự mắc, /tiep W1).** Lead rà bảng 7-wave của spec, thấy **không wave nào được giao** việc backfill `[carry:*]` ⇒ kết-luận **"orphan, chưa ai làm"** ⇒ báo owner + ghi run.md + WAL + bơm vào brief fan-out 694k-token. **SAI:** disk có **7 khoá thật**, vào từ `4727d16` (closeout S119, đã push) — làm **NGOÀI** cấu-trúc wave. Sub (đo đĩa) bác lại lead. Brief lead còn **4/4 tiền-đề sai** cùng lượt: config path (`.claude/memory-budget.json` không tồn tại, thật = `.claude/agent-memory/memory-budget.json`) · acceptance literal ngày (`2026-07-14` đã tự lão-hoá thành `07-15` bởi commit **cùng ngày**) · carry · độ-dài (thật ra KHÔNG lệch: `wc -c` byte vs `len()` char, VN UTF-8 đa-byte — đừng tính oan cho sub).
⇒ **Phân-biệt 2 lỗi:** "đo nhầm" = có chạm đĩa nhưng lệch. Cái này **KHÔNG chạm đĩa lần nào** — suy từ artifact kế-hoạch rồi phát ngôn ở thể khẳng-định. **"Không ai được giao" ≠ "chưa có trên đĩa"**; bảng-wave mô-tả Ý-ĐỊNH, không mô-tả TRẠNG-THÁI.
🔸 **Bẫy đo kèm:** `grep -c '<pat>'` đếm **DÒNG khớp**, `grep -o '<pat>' | wc -l` đếm **occurrence**. Trên mega-line (`HANDOFF.md:5` = 50 665 byte / 45 đoạn logic) hai lệnh lệch **8×** ⇒ `-c` cho `1` ⇒ kết-luận "chỉ 1 khoá" = sai. Mega-line ⇒ LUÔN `-o | wc -l`.
🔸 **Acceptance literal = nợ tự-lão-hoá:** số/ngày tuyệt-đối trong acceptance có thể stale **trong cùng NGÀY** viết ra nó. Viết acceptance dạng **quan-hệ** ("in đúng ngày ở anchor STATUS.md:6"), cấm literal.

**How to apply:** (0) 🔴 **Trước khi phát ngôn thể KHẲNG-ĐỊNH về trạng-thái đĩa (tồn-tại/đã-làm/còn-thiếu/orphan): chạy ĐÚNG 1 lệnh chạm đĩa.** Rẻ hơn mọi thứ khác; lead S121 bỏ qua bước này và đầu-độc cả brief fan-out + run.md + WAL + báo-cáo owner. Suy-luận từ spec/bảng/kế-hoạch ⇒ chỉ được nói ở thể **nghi-vấn** ("chưa thấy wave nào được giao — để tôi đo đĩa"). (1) Mọi resume-from-pause: TRƯỚC execute, re-derive tiền-đề scope từ disk — đọc HEADER artifact đích (field source/coverage) + git-date so artifact vs nguồn; match theo NỘI-DUNG coverage, KHÔNG tên-file 1:1. (2) Lệch tiền-đề → thu-hẹp scope theo guard + báo user option ép-đè tường minh (đừng im lặng chạy scope cũ, cũng đừng im lặng bỏ). (3) Khi distill/nén (reviewer S109 meta-lesson): **3 bề-mặt lỗi NGOÀI body mà coverage-diff máy móc MÙ** = gist-metadata count (đếm từ disk, không copy brief) · số-TỰ-TÍNH (delta arithmetic không có token verbatim đối chiếu) · fact-claim trong N/A-note (resolved/pending phải verify tươi) — semantic reviewer soi riêng 3 lớp này. Liên quan [[agent-kill-recovery]] [[prod-config-inspect-before-change]] [[stale-diagnostic-background-agent]].
