# _lienfile-notes-batchB — quan-hệ GIỮA file (FLAG-only, lead chốt sau)

> Nguồn: section "Ghi-chú liên-file" của `sub-harvest-curator-sleep-batchB-S170.md` (7 quan-hệ) + 3 quan-sát bổ-sung của gist-drafter B @S170.
> KHÔNG phải bản nén — KHÔNG trộn vào gist per-file (nguyên tắc đóng-kín từng file). Mọi mục dưới đây chờ lead quyết khi hợp nhất.

## 7 quan-hệ từ curator

1. **Bản sao nguyên-văn cùng vai:** `investigator-codebase/2026-05-q1` (mục "2026-05-11 (setup)") ≡ `…/2026-05-q3` (mục "2026-05-11 — Setup baseline") — trùng nội-dung ("44 gotchas + 14 memory entries + 6 skills + 27 mig + 81 test pass cumulative … Awaiting first SendMessage"). Đề-xuất: giữ 1 bản, bản kia thành con-trỏ. *(Draft B đã ghi chú chéo ở B1-G và B3-C+D, chưa xoá bên nào.)*
2. **Cùng sự-kiện, 2 độ dài:** audit 2 bug changelog S25 — bản DÀI (q2 B2-A, 5Q đầy đủ) vs bản NGẮN (q3 B3-B, wrap + kết-cục CI `#215` FAIL → `#216-#221` PASS). Nén mất bản dài = mất file:line; nén mất bản ngắn = mất kết-cục CI. Draft B giữ CẢ HAI.
3. **Cùng sự-kiện, 2 VAI (rủi-ro đếm đôi khi hợp nhất):** ① bug lookup per-NV — `investigator-q1` B1-A (chẩn-đoán `:765`) ↔ `reviewer-q1` B5-B (Plan N vá 1/5 site → Plan O cascade 4 site). ② Plan P — B1-B (phát-hiện body 3 field) ↔ B5-B ("root cause 2 ngày prod bug F1+F2"). ③ Plan AA — B1-E ↔ B5-D. Đề-xuất: giữ cả hai NHƯNG ghi rõ vai (chẩn-đoán ⟂ nghiệm-thu) — Draft B đã giữ cả hai phía.
4. **Một tên, hai nghĩa:** trong `investigator-q2`, "Mig 32" xuất-hiện 2 nghĩa (Plan AG đề-xuất `AddProjectPackageTable` ⟂ Plan B thực-dụng cho Contract `AddApprovalWorkflowToContract`). Nén ẩu sẽ tạo mâu-thuẫn giả — Draft B giữ token đối-chiếu ở phụ-lục q2.
5. **Một gotcha, hai cách chú-giải:** `#48` — batch B chú "SQLite frozen clock tie-break" (`reviewer-q2` + `investigator-q3` + `test-specialist`), batch A (`sub-harvest-curator-sleep-batchA-S170.md:43`) chú "refactor >100 LOC Service chạm changelog/audit". Đề-nghị lead chốt 1 chú-giải canonical khi hợp nhất (quan-sát, KHÔNG phán bên nào sai).
6. **3 mục sức-khoẻ HARVEST (H2 lưu ý riêng):** ① `investigator-q4` header — MEMORY từng trỏ file VẮNG đĩa, nội-dung git-only `d2f52ba`; lô S29-S37 tới nay vẫn khai chỉ nằm trong git (đầu mối kéo về đĩa; curator CHƯA kiểm trạng-thái hiện tại). ② `test-specialist` S133 — 2 lần gọi cùng vai trong 1 run-folder ghi đè sub-file của nhau (INV-C đè `sub-test-specialist-0.md` của INV-A), nội-dung sống nhờ journal + diary. ③ `investigator-q3` S27 — vai tự nghi-ngờ lịch-sử spawn của chính mình ("agent type NOT FOUND", "trust prior memory entries but FLAG uncertainty") — token loại Fidelity, giữ nguyên, không tự phán.
7. **Ràng buộc nén đã tuân (curator tự khai, drafter B xác nhận đã giữ):** `test-specialist` giữ đủ 16 mốc chuỗi gốc + 12 mốc hậu-chuỗi + 4 lỗ + 2 mâu-thuẫn nội-tại (nhãn `⚠️ mâu-thuẫn nội-tại văn-bản — KHÔNG tự sửa số @S170` đã gắn trong draft); `implementer-frontend` giữ 14/14 mục moved-not-cut khối riêng + nguyên chuỗi tag Ctrl-F, mục auto-refuse tag {cao}.

## 3 quan-sát bổ-sung của gist-drafter B (đo đĩa @S170, ngoài proposal)

A. **Chênh số entry test-specialist:** curator khai "25 entry"; đo đĩa = 30 heading `##` = 1 dòng "Count progression" + **29 entry-heading** (S155 → S54). Entry **S60** ("UAT anh Kiệt 2 feature PE submit branch, +14") KHÔNG thuộc cụm narrative nào của curator — nó chỉ sống ở mốc mở chuỗi "254 (S60)" (TS-A) + token "GUARD-FIRST"/"⚠️GUARD-FIRST: bypass-test PHẢI dựng PE đủ 4 ĐK" ở phụ-lục. Lead cân nhắc: chấp nhận coverage-qua-token, hay bổ 1 dòng narrative cho S60 khi chốt gist.
B. **Chênh số entry investigator-q1 (hoà-giải được):** curator khai "10 entry verbose FIFO S21→S24"; đĩa = 11 heading `###` = 10 FIFO S21→S24 **+ 1 setup 2026-05-11**. Draft B ghi header "(11 entry [10 FIFO S21→S24 + 1 setup] → 7 cụm)" — không mâu-thuẫn, chỉ khác phạm-vi đếm.
C. **"Run #231" trong B2-B là chú-thích curator, KHÔNG thuộc verbatim q2:** grep `231` trên `investigator-codebase/archive/2026-05-q2.md` = **0 hit**. Draft B đã đánh dấu "(chú-thích curator S170, không thuộc verbatim)" ngay trong entry — khi chốt gist chính-thức, lead quyết giữ (giá-trị nối tiền-sử sự-cố) hay bỏ (thuần-verbatim).
