10 KiB
10 KiB
implementer-backend/2026-05-q4 — gist
distill-gen: 1 source-verbatim: .claude/agent-memory/implementer-backend/archive/2026-05-q4.md (5 khối → 4 cụm) pointer-style: substring
TỔNG-HỢP (3-5 ý)
- Scaffold ULTRA-MINIMAL S33 Task 5 (14 file, 3 file mới SHA256 IDENTICAL ×2 app, test 120/120, "Ambiguities encountered: 0"): phạm-vi hẹp phải kèm danh-sách "cố-ý không làm" khai minh-bạch — không thì người đọc sau tưởng là thiếu sót. Entry này bị CHẺ ĐÔI trong verbatim (2 digest S65 FIFO trim chèn giữa) — gist đã NỐI lại.
- Số đếm không khớp danh-sách: cả 2 pattern ghi "4th time" nhưng chỉ liệt-kê 3 ca (×2 chỗ), cùng lớp lệch với "5 patterns/6 mục" ở q3 ⇒ khi nén giữ danh-sách, bỏ số thứ-tự.
- LOC thô không đo công sức: +4265 LOC nhưng Designer autogen 95%, tay chỉ ~232; HRM không có
HasQueryFilter⇒ phải.Where(!IsDeleted)tay; MaxLength lấy EF làm nguồn chân-lý (Code=50not spec 20). - Phát-hiện ⟂ xử-lý: tự đo MEMORY 36.2KB vượt ngưỡng 25KB ~45% → gắn cờ cho em-main nhưng cố-ý KHÔNG tự dọn (giữ-hay-cắt = phán-đoán §6.5 của em-main); và REFUSE forward trước cả khi được giao (nhận scaffold theo spec, KHÔNG nhận schema design Mig 34).
Entries
[cao] I1 — S33 Task 5: scaffold HRM cho 2 app, phạm-vi cực hẹp (nối từ 2 mảnh verbatim — đuôi "Verify all clean / Files touched / Out-of-scope respected" nằm sau 2 digest S65 FIFO trim chèn giữa; đối-chiếu verbatim xác nhận đuôi thuộc Task 5: toàn file HRM + tag [mirror-page, phase-10.1, frontend], KHÔNG thuộc S29 Chunk C)
- VIỆC: dựng 3 trang/type HRM (Phase 1 chỉ-đọc) mirror sang cả 2 app — tổng 14 file (3 file MỚI ×2 app + 4 file sửa ×2).
- KẾT-LUẬN: ACCEPT vì spec xác-định 100%, kiểu ULTRA-MINIMAL (không tách component DetailTabs, 6 mục dùng
<details>nội-tuyến, không CRUD vệ-tinh). 3 file mới giống hệt tới SHA256:CCFC70666568·DC859C897C5C·C796F25D01AC. Kiểm sạch toàn bộ: fe-admin 21.4s / fe-user 9.2s /dotnet build1.59s 0 warn 0 err /dotnet test120/120 (58 Domain + 62 Infra) — và "Ambiguities encountered: 0". Pattern 16-bis + 12-bis đều được ghi là lần thứ 4. - BÀI-HỌC: phạm-vi hẹp phải ghi kèm danh-sách "cố-ý không làm" (không form vệ-tinh · không sửa nội-tuyến Header · không wire
PermissionGuardvì em-main giữ Task 6 · không thêmBg_*/Catalog*) — nếu không, người đọc sau sẽ tưởng là thiếu sót. - BẤT-NGỜ: cả hai "lần thứ 4" đều chỉ liệt-kê 3 lần trước (16-bis: CA HF1 + Chunk D + Task 5; 12-bis: Chunk C + Task 4 + Task 5) ⇒ số đếm không khớp danh-sách; cùng loại lệch với "5 patterns/6 mục" ở q3 ⇒ khi nén nên giữ danh-sách, bỏ số thứ-tự. → substring:"CCFC70666568"
[cao] I4 — S32 startup: tự đo kho rồi TỪ CHỐI tự dọn
- VIỆC: lượt spawn chỉ để kiểm bối-cảnh phiên 32.
- KẾT-LUẬN: đo
Get-Item Length= 36.207 byte (36.2KB) ⇒ vượt ngưỡng 25KB ~45% → gắn cờ cho em-main, và cố-ý KHÔNG tự dọn vì việc giữ-hay-cắt là phán-đoán §6.5 thuộc em-main (viện dẫn chính bài học C1-C4 của S27). Xác-nhận còn đủ 17 pattern đánh số (1-12 + 12-bis + 13-15 + 16-bis + 17-19). RAG sống: 2 tool MCP hiện diện, truy-vấn thử trả 3 kết-quả rerank 0.824 / 0.801 / 0.793 — đều > ngưỡng 0.7. - BÀI-HỌC: đo bằng byte thật của hệ-điều-hành rồi mới phán "quá ngưỡng"; và phát-hiện ⟂ xử-lý — vai được quyền gắn cờ nhưng không được quyền cắt, đúng ranh-giới đã chốt từ ca trước.
- BẤT-NGỜ: tự-kiềm-chế được ghi kèm lý-do có dẫn nguồn (bài học S27), không phải "ngại làm" — và chính cái cờ này về sau thành đợt curate S32 (36.2 → 27.5KB). → substring:"Length=36207"
[vừa] I2 — Hai digest "archived S65 FIFO trim"
- VIỆC: 2 việc BE cũ được nén còn vài dòng ở đợt dồn kho S65.
- KẾT-LUẬN: S35 G-H2: CRUD 4 danh-mục HRM (
HrmConfigFeatures.cs372 LOC + Controller 134 LOC, 16 endpoint = 4 tài-nguyên × 4 động-từ), giữ mốc 130 test, spec rõ 95%. S29 Chunk C: mirror Contract V2 (Mig 33), 8 file +4265 LOC nhưng Designer tự sinh 95%, tay chỉ ~232 LOC. - BÀI-HỌC: 2 điểm kỹ-thuật đắt nhất nằm ở S35: HRM không có
HasQueryFilter⇒ phải tự viết.Where(!IsDeleted); và độ dài MaxLength lấy EF làm chuẩn, không lấy spec (Code=50, spec ghi 20). (Đây là lớp chưng-cất sẵn — giữ gần nguyên, nén tiếp sẽ mất mã-số kỹ-thuật.) - BẤT-NGỜ: "+4265 LOC" nghe khổng-lồ nhưng 95% là mã tự sinh — con-số LOC thô không đo được công sức, phải tách phần tay viết (~232) mới so được. → substring:"HrmConfigFeatures.cs 372 LOC"
[vừa] I3 — S32 wrap: dựng hàng chờ cho phiên sau
- VIỆC: đóng phiên 32, lập backlog.
- KẾT-LUẬN: ghi 11 module Plan G thành 10 sprint nguyên-tử trong
migration-todos; nêu 4 việc chờ phiên 33 kèm phân loại sẵn (a) G-H1 scaffold hồ-sơ NS · (b) bộ test BW1-BW7 mirror khuôn test PE · (c) BookingCalendar (FullCalendar = thư-viện mới) · (d) G-O3..G-O6 mirror 4 module Workflow Apps. Kèm REFUSE trước: sẽ nhận scaffold theo spec xác-định, không nhận thiết-kế schema (Mig 34 để em-main). - BÀI-HỌC: backlog nên kèm sẵn nhãn nhận/từ-chối cho từng mục — quyết định phân-công xong từ lúc lập kế-hoạch, không phải lúc bị gọi.
- BẤT-NGỜ: vai từ-chối trước cả khi được giao ("REFUSE forward") — ranh-giới được tuyên trước, giúp em-main khỏi phí một lượt spawn để nhận về lời từ-chối. → substring:"FullCalendar lib new dep"
Phụ-lục token (coverage)
- Pattern#:
16-bis4-place mirror ("4th time", liệt-kê 3 ca: S29 Plan CA HF1 + S29 Plan B Chunk D + S33 Task 5) ·12-biscross-module ("4th time", liệt-kê 3 ca: Chunk C Mig 33 + G-H1 Task 4 BE + Task 5 FE; riêng S35 ghi "3rd application catalog-mega") · "17 numbered patterns" (1-12 + 12-bis + 13-15 + 16-bis + 17-19) · ghi chúPattern 16 baseline **implied** ... **chưa numbered explicit** - surprise: "Ambiguities encountered: 0 — spec deterministic 100%" · "HRM no
HasQueryFilter→.Where(!IsDeleted)manual" · "Validator MaxLength = EF source-of-truth (Code=50not spec 20)" · "8 file +4265 LOC (Designer autogen 95%, handcraft ~232 LOC)" · "MEMORY size 36.2KB ... OVER 25KB threshold ~45% bigger" · "KHÔNG self-curate vì ... reserve cho em main solo judgment call §6.5" · "KHÔNG commit (em main commits)" · "REFUSE forward: ... KHÔNG schema design" · "FullCalendar lib new dep" · "3 NEW file SHA256 verified IDENTICAL" · số "4th time" nhưng chỉ liệt-kê 3 ca (×2 chỗ) - guard: SHA256 xác-nhận sau khi ghi (3 file) ·
.Where(!IsDeleted)thủ-công (không có query filter toàn-cục) · MaxLength lấy EF làm nguồn chân-lý · ngưỡng MEMORY 25KB + đo bằngGet-Item Length· ngưỡng rerank > 0.7 · ranh-giới phát-hiện ⟂ tự-dọn (§6.5 KEEP vs CUT thuộc em-main) · danh-sách out-of-scope khai minh-bạch - root-cause: đợt dồn kho S65 FIFO trim chèn 2 digest vào giữa entry S33 Task 5 ⇒ thân và đuôi bị tách rời (gist này đã NỐI lại — xem ghi chú I1) · HRM thiếu
HasQueryFilter⇒ mọi truy-vấn phải tự lọc soft-delete · spec ghi MaxLength lệch EF ⇒ validator sai nếu tin spec - file:line / định-danh:
types/employee.ts(NEW ~283 LOC, SHA256CCFC70666568) ·pages/hrm/EmployeesListPage.tsx(~417 LOC,DC859C897C5C) ·pages/hrm/EmployeeCreatePage.tsx(~178 LOC,C796F25D01AC) ·menuKeys.ts(+3 LOCHrm+HrmHoSo) ·Layout.tsx(+4 LOC staticMapHrm_HoSo) ·App.tsx(+5 LOC) · 6 file fe-user mirror ·HrmConfigFeatures.cs372 LOC + Controller 134 LOC (16 endpoint) · Mig 33ContractLevelOpinions· Mig 34 (em-main giữ) ·migration-todos(11 module / 10 sprint) ·PurchaseEvaluationWorkflowServiceReturnModeTests.cs→ContractWorkflowServiceApproveV2Tests.cs(7 kịch-bản, spec D-Bis) ·mcp__rag-unified__search_memory+mcp__rag-unified__cross_project_search· "Pattern curate trigger rule line 364" · agent idab23cc322b5d495c0 - số-đo: 14 file (S33 Task 5) · build fe-admin 21.4s / 1429KB · fe-user 9.2s / 1345KB ·
dotnet build1.59s 0 warn 0 err ·dotnet test120/120 (58 + 62) · test mốc S35 130 · MEMORY 36.2KB (Length=36207) → curate 27.5KB · rerank 0.824 / 0.801 / 0.793 (ngưỡng 0.7) · token ~25k (Task 5) / ~5K (wrap) / ~5k (startup) · tag[mirror-page, phase-10.1, frontend]·[s35, be-crud, hrm, 12-bis-3x]·[s29, plan-b, 12-bis]·[wrap, phase-9-to-phase-10, frontend+backend]·[verify, phase-9, infra]
Bổ-sung coverage @P3-gate S170 — ⚠️ LƯỚI GREP THUẦN, KHÔNG PHẢI DỮ KIỆN (đoạn trích sau mỗi token là phần ĐẦU DÒNG verbatim chứa token — dòng archive là mega-line nên đoạn trích thường KHÔNG liên-quan token; CHỈ dùng để coverage-diff grep trúng, đọc nội-dung thì tra verbatim theo token — reviewer P3 @S170)
Mig 22— (d) Plan G-O3..G-O6 Workflow Apps — cookie-cutter mirror PE Mig 22-26 Plan B pattern 12-bis cross-module entity scaffold cho 4 module (Proposal/…