Files
solution-erp/.claude/agent-memory/front-end-reviewer-style/MEMORY.md
pqhuy1987 24566a500c
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 10m12s
[CLAUDE] Docs: S195 closeout L16 — 14 vai bookend, vá 3 ô canonical + cứu clobber-rot + trả nợ harvest S188
Phiên governance thuần, 0 code product. Bookend @close chạy trọn 1 lượt (YC-018/YC-027).

14 vai: H1 8 FLAG · H2 GATE-FAIL 6 · cặp H24 deep (10+7 FLAG) · trio 3/3
(MIXED 38 trục → 4 action/18 BÁC → 50Đ/5T/15KC trên 70 claim) · ring1 41Đ/5T/19KC
· ring2 15Đ/0T/2KC · ring5 1Đ/2 xoá-án/1KC · ctx-audit TRUOT 6 FLAG · tầng-2/3 chấm.

Vá đã land:
- 3 ô SỐ canonical STATUS: Mig 73→74 · test 697→699 (45+654) · gotcha 92→93;
  bổ 3 ô vào ledger WAL TRƯỚC khi vá; lan Mig 74 sang CLAUDE.md + docs/CLAUDE.md.
- CG-1 attempt #1: cứu front-end-reviewer-style 1.192→5.913 B (clobber-rot, 4 chứng;
  harness-audit xác nhận md5 nối thuần, 0 mất).
- Trả nợ harvest S188 4 vai/42.975 B; đóng orphan S194 bằng synthesis hồi-tố.
- Vá gốc dòng rách so-yeu-cau:58-59 => máy đổi muc 28→29, hội tụ đếm tay.
- Đính chính tiền-đề SAI reinject-ledger:70 cho CẢ HAI vai (matcher DÍNH-vs-TÁCH).
- MIND-4 => mind-check --closed từ exit 1 sang exit 0.

3 RCA lỗi của lead: FAKE-VERDICT-S195 (verdict bịa cho vai chưa chạy) ·
RITUAL-ECHO-S195 (tái phạm lần 3) · SCORE-T1-S195 (đọc hụt số máy).

#53 nổ 10 lần, cứu 10/10 bằng resume-in-session.
4 vai tự phát hiện thước hỏng của chính mình — không có bước tự-falsify thì
lượt này có >=7 cáo buộc oan.

completeness-gate S195: vong 4/5 chuc-nang (khong-nhip: V4) | phep DAT 3 / TRUOT 1

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 11:51:33 +07:00

27 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# front-end-reviewer-style Agent — Persistent Memory
- **S179 (2026-08-07) SINH SỔ — dir này ra đời do SỬA-5a, KHÔNG phải do mày chạy `[LEAD SEED ON-BEHALF; mày CHƯA chạy lần nào — nguồn = đĩa + spec SỬA-6]`:** mày sinh @**S176** (anh chốt đội STYLE 3 vai, lý do đo được: *"mày cứ làm đi làm lại hoài"*), nhưng **3/3 vai style thiếu dir `agent-memory/<vai>/`** suốt từ đó ⇒ **vô hình với mọi máy đo** (`measure-agent-memory.ps1` enumerate DIRECTORY rồi mới đọc `MEMORY.md` — không dir thì không có dòng nào, và **thiếu-vắng trông y hệt sạch**). Vá @S179 = SỬA-5a.
🔴 **Nấc THẬT: `file-land`, spawn-probe CHƯA CÓ** — registry no-hot-reload, cần **restart CLI** (anh OK @S179 item-6). Đừng đọc dir này thành "đã chạy rồi".
- **S179 — SỬA-1 vá thước dispatch, đây là chuyện SỐNG-CHẾT của chính mày:** trước S179, luật gọi mày neo vào `git diff --name-only origin/main...HEAD`. Mày là gate **PRE-commit**, mà `git diff` **mọi dạng** đều mù file **chưa commit + untracked** ⇒ đúng lúc cần gọi thì thước rỗng ⇒ **0 spawn, 0 dòng `SKIP-CO-KHAI`, chết CÂM**. Đo thật: cửa-sổ S178 có **12 file** đúng địa-phận cả 3 vai mà **0 con được gọi**.
Thước mới (4/4 site): `{ git diff --name-only origin/main..HEAD; git status --porcelain | cut -c4-; } | sort -u`
🔴 **Bài học NGƯỢC ĐƠN THUỐC — nhớ kỹ, đây là loại bẫy dễ tái phát:** đơn cũ ghi *"đổi ba-chấm → hai-chấm porcelain"*. Đo @S179: **hai-chấm và ba-chấm cho md5 Y HỆT** (vì `origin/main` là ancestor của HEAD ⇒ merge-base = origin/main). ⇒ vế đổi dấu chấm **KHÔNG sửa được gì**; răng nằm **TRỌN** ở vế ` porcelain`. Nếu chỉ swap dấu chấm thì thước nghiệm-thu (`grep 'main...HEAD' → 0`) **vẫn xanh** mà đội **vẫn mù nguyên** = Goodhart cổ điển: *pass cái test trông y hệt fix cái bug*.
🔴 **Citation-trap kèm theo:** 3 dòng `CẤM origin/main...HEAD` trong persona **chứa chính mẫu bị cấm** ⇒ thước cũ đọc thành **3 dương-giả**. Thước đúng phải phân biệt **use ⟂ mention**: `grep -rn 'git diff [^|]*origin/main\.\.\.HEAD'` (dạng LỆNH THẬT) → 0.
- **Địa-phận + ranh (từ persona, ghi lại để khỏi drift):** ĐÓNG = `fe-admin/src/**` + `fe-user/src/**`. Soi **ĐỒNG-NHẤT STYLE**, KHÔNG soi logic (đó là `reviewer`) · KHÔNG soi schema (`database-agent`). Gộp luôn trục clean-code TRONG địa phận (đặt tên · trùng lặp · mật-độ comment · pattern drift) — anh chốt **3** vai, bỏ con clean-code thứ 4 vì phủ chồng cả 3.
🔸 **Máy trước, vai sau:** FE **CÓ** ESLint (`npm run lint`) chạy trước ⇒ mày lo phần máy MÙ. Đây là điểm mày **nhẹ gánh hơn** con BE (BE 0 máy style nào gác).
🔴 **LUẬT LÕI anh giao:** *"các tính năng đã deploy thành production rồi thì sẽ là chuẩn, trừ khi tao có điều chỉnh lại lần nữa"*. Ca thật S176 vòng-4b: thùng rác KHKK thiếu banner đỏ + dấu `🗑 xóa ≈` mà màn Duyệt NCC **đã chạy prod** có đủ ⇒ anh phải chụp màn gửi làm mẫu. Một lượt làm lại **đáng lẽ không cần**.
Tag `[s179, sinh-so-do-SUA-5a, chua-spawn-probe, nguoc-don-thuoc-2cham-vo-dung, citation-trap-use-mention, may-truoc-vai-sau-eslint]`
- **S182 (lead-seed, C2 /pause):** registry-probe BƯỚC 0.6b — spawn THẬT lần đầu sau restart, trả `ALIVE|front-end-reviewer-style` 0-tool đúng lệnh (tool_uses=0 khác #53 vì không bịa việc). Slot (73) đóng 5/5. → `runs/2026-08-07-S182-bookend-open/spawn-probe-registry.md`
- **S190 (lead-seed, C2 /pause):** B4 style-review 2-lane opus soi spec-list style FE trước khi thành STYLE-GATE — bắt 2 MAJOR (khuôn `ContractsListPage.tsx:141,265` GĐ3-prod bị BỎ SÓT ⇒ mất luật `bodyMaxHClass` · SF-21 chép THIẾU vế gate `typeInt===3`) + 4 false-green fault-inject cây tạm (C-1 eslint baseline ĐỎ 47/42 ⇒ ô "PASS" bất-khả-thi → đổi ô-delta · C-3 SHA im khi mất-2-bên · C-7 reformat-xuống-dòng · C-13 ngoài-khối). Bài: **spec-list style sai KHÔNG ở luật SAI mà ở luật THIẾU MỆNH-ĐỀ** (chép 1 vế guard 2 vế) + chọn khuôn ĐỜI-SAU bỏ ĐỜI-TRƯỚC; ô-đo phải fault-inject-proof (grep có `-F`, đo baseline TRƯỚC sửa). Bẫy tự-trích-dẫn S188 tái hiện: comment nêu token bị grep. Tag `[s190, luat-thieu-menh-de, o-do-fault-inject-proof]`
## S194 — YC-032 G5 style FE: KHÔNG hoàn thành [LEAD SEED ON-BEHALF]
- Spawn @G5 để chấm style phần FE mới (`ContractBodyView.tsx` 42 KB · `lib/contractBody/` · `contractDraftData.ts`), đối chiếu 2 tiền lệ đang chạy prod (`PeDetailTabs.tsx` 3.613 dòng · `KhkkDetailContent.tsx` 1.140 dòng).
- 🔴 **CHẾT sớm — artifact chỉ 565 B khung rỗng, mục `## VERDICT` TRỐNG.** 0 finding. Vai anh em `back-end-reviewer-style` còn không tạo được file nào.
- 🔴 **KHAI THẬT — trục style FE/BE của đợt này CHƯA CÓ AI SOI**; lead đã báo owner nguyên văn như vậy, KHÔNG tính là đã phủ. Câu bỏ ngỏ: `ContractBodyView.tsx` **42 KB trong 1 file** là đúng khuôn (`PeDetailTabs` cũng 1 file lớn) hay đã quá tay · mật-độ comment · trùng lặp với 2 tiền lệ.
- 🔸 Bẫy vận-hành ghi lại: lane đặt tên file theo **TÊN VAI** (`sub-front-end-reviewer-style-1.md`) thay vì tên lead giao trong prompt (`sub-fe-style-1.md`) ⇒ phép tìm của lead **trượt**, suýt kết luận "không tạo file" trong khi file CÓ. Bài: dò artifact phải glob theo **cả hai** quy ước tên.