--- name: feedback_stale_diagnostic_background_agent description: "IDE diagnostics during a background agent/workflow are stale mid-edit snapshots — trust only the final clean build, not mid-flight × errors" metadata: node_type: memory type: feedback originSessionId: d75d1122-8e32-4ab7-9eb6-bb47192e0e51 --- Khi một agent/workflow chạy NỀN (background) ghi file, harness bắn `` từ IDE TypeScript language-server theo TỪNG lần save dở-dang của agent — KHÔNG phản ánh trạng-thái-cuối nhất-quán nào. Với nhiều agent ghi SONG SONG (workflow fan-out), các snapshot này càng nhiễu (vd "X declared but never read" vì agent vừa thêm import TRƯỚC khi render JSX dùng nó; "Element not assignable" vì sửa giữa chừng). **Why:** S69 bị 2× — re-skin 7-designer workflow + PE-FE agent đều bắn loạt `× unused/Element`, em suýt sửa theo (suýt cp đè file vốn đã hoàn chỉnh). Build `npm run build`/`tsc` chạy SAU khi agent xong → exit 0 cả 2 app, mọi × đều false-alarm. Cùng họ gotcha #53 (agent return truncated): disk + build = source-of-truth, KHÔNG tin return/diagnostic suông. Project gotcha #68. **How to apply:** (1) Agent/workflow NỀN → **bỏ qua diagnostic giữa-chừng**, tín hiệu thật = 1 lần build SẠCH chạy SAU agent hoàn-tất (lý do em main build-tập-trung sau fan-out). (2) Phân biệt ai-edit: em main edit real-time ở turn mình → diagnostic TIN được; agent nền edit → verify build TRƯỚC khi sửa/cp-đè. (3) Đừng phản xạ "thấy × thì fix" — verify build trước, tránh redundant fix + suýt clobber file đúng. Link [[feedback_workflow_fanout_reliability]] [[feedback_agent_kill_recovery]]. 🔴 **S162 — luật (2) của chính file này BỊ BÁC MỘT NỬA: diagnostic nay cắn CHÍNH LEAD, ×3 trong 1 đợt.** Bản cũ dạy *"em main edit real-time ở turn mình → diagnostic TIN được"*. Sai khi lead **Edit-batch nhiều file trong 1 lượt** (đợt cây 4-folder: 12 file 2 app): harness bắn snapshot GIỮA chuỗi Edit ⇒ lead đọc *"JSX không đóng :114/:138"*, *"toggleExpand không tồn tại"* rồi **2 lần ra lệnh cho sub "sửa dứt điểm"** thứ **không hỏng** — `npx tsc -b --force` chạy sau đó = **EXIT 0**, `grep` cho thấy `toggleExpand` định-nghĩa ngay `:161`. Sub phải tốn 1 lượt để bác lại lead. ⇒ **Sửa luật: người-edit KHÔNG phải tiêu-chí; tiêu-chí là ĐÃ-DỪNG-TAY hay CHƯA.** Chỉ tin diagnostic khi không còn Edit nào đang bay (của mình hay của sub); còn nghi ⇒ chạy `tsc`/`build` 1 lần, rẻ hơn một vòng lệnh-sai. Datum kèm: 3 lần trong đợt đều false-alarm, 0 lần đúng.