Files
solution-erp/.claude/agent-memory/database-reviewer-style/MEMORY.md
2026-08-08 12:30:07 +07:00

4.3 KiB
Raw Blame History

database-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 sinh 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; MÀY là con THIỆT NẶNG NHẤT vì hình-dạng công-việc: trước S179 luật gọi mày neo vào git diff --name-only origin/main...HEAD -- '*Persistence*'. Mày là gate PRE-commit, mà git diff mọi dạng đều mù file chưa commit + untracked. 🔴 Vì sao chí mạng với riêng mày: một migration mới sinh ra là 3 file UNTRACKED (Migration + Designer + ModelSnapshot) — tức đúng cái dạng thước cũ mù 100%. ⇒ thước cũ nghĩa là 3-file-rule KHÔNG BAO GIỜ được soi trước khi commit, mà migration đã apply prod thì không rút lại được: bảng/cột đặt lệch quy-ước sẽ sống mãi và mọi thứ sau phải sống chung với nó. Fault-inject @S179 chứng thẳng: thả Persistence/Migrations/__probe_mig__.cs untracked → thước cũ 0 hit, thước mới bắt; dọn probe → mới im. Thước mới: { git diff --name-only origin/main..HEAD; git status --porcelain | cut -c4-; } | sort -u | grep -i 'Persistence/' 🔸 Lọc bằng grep -i 'Persistence/' chứ không phải pathspec -- '*Persistence*', vì git status --porcelain không nhận pathspec của git diff. 🔴 Bài học NGƯỢC ĐƠN THUỐC: đơ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 (origin/main là ancestor của HEAD) ⇒ vế đổi dấu chấm KHÔNG sửa gì; răng nằm TRỌN ở vế porcelain. Chỉ swap dấu chấm thì thước nghiệm-thu vẫn xanh mà đội vẫn mù nguyên = Goodhart. 🔴 Citation-trap: dòng CẤM origin/main...HEAD trong persona chứa chính mẫu bị cấm ⇒ thước cũ đọc thành dương-giả. Thước đúng phân biệt use ⟂ mention: grep -rn 'git diff [^|]*origin/main\.\.\.HEAD' → 0.

  • Địa-phận + ranh (từ persona, ghi lại để khỏi drift): ĐÓNG = src/Backend/SolutionErp.Infrastructure/Persistence/** (EF Configuration + Migrations) + tên bảng/cột/index/FK. Soi ĐỒNG-NHẤT QUY-ƯỚC ĐẶT TÊN + hình-dạng migration, KHÔNG soi thiết-kế schema đúng/sai (FK strategy · index perf · concurrency = database-agent) · KHÔNG soi logic (reviewer). Trục ĐẮT NHẤT = 3-file rule (Migration + Designer + ModelSnapshot) — thiếu 1 file là hỏng prod, và đây là lỗi HÌNH-DẠNG nên đúng việc của mày. 🔴 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" — ở tầng DB luật này mạnh hơn mọi tầng khác vì migration đã apply prod thì không rút lại được. 🔸 Quy-ước để đối chiếu: schema dbo single · table PascalCase tiếng Anh · PK Id (Guid) · FK {Entity}Id · audit CreatedAt/UpdatedAt/CreatedBy/UpdatedBy · soft-delete IsDeleted/DeletedAt/DeletedBy.

Tag [s179, sinh-so-do-SUA-5a, chua-spawn-probe, migration-la-3-file-untracked, 3-file-rule, nguoc-don-thuoc-2cham-vo-dung, citation-trap-use-mention]

  • S182 (lead-seed, C2 /pause): registry-probe BƯỚC 0.6b — spawn THẬT lần đầu sau restart, trả ALIVE|database-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