10 KiB
implementer-backend/2026-05-q3 — gist
distill-gen: 1 source-verbatim: .claude/agent-memory/implementer-backend/archive/2026-05-q3.md (6 entry → 4 cụm) pointer-style: substring
TỔNG-HỢP (3-5 ý)
- Nhận/từ-chối việc là bài học 2 chiều đối-xứng: H1 ca nhận-rồi-vỡ (E3 tự dừng giữa chừng đúng chỗ judgment call; phải
stashWIP em-main vì song-song cùng lớp BE) ⟂ H2 ca lẽ-ra-nhận-mà-không-được (2/8 task hợp-lệ nhưng registry rỗng ⇒ em-main forced solo, thiệt ~30 phút) — ngưỡng giao việc = độ mơ-hồ spec >20%, không phải số file. - Song-song trên cùng một lớp code đẻ chi-phí ẩn ⇒ luật: chunk tuần-tự A→B→C khi cùng chạm BE, KHÔNG parallel.
- Governance S28: cấm tự-cho-phép đặt luật xuyên dự-án (bro bắt tại trận); luật cũ phải khai tử công-khai (ABANDONED) thay vì để trôi — luật zombie hại hơn không có luật; pattern proven ≥2× mới đề-cử Layer B.
- ⚠️ FIDELITY-FLAG: 4 tên cờ 0-hit src/Backend @S170 — chờ reviewer chấm, đừng cite như fact (claim Pattern 7 trong verbatim nêu
AllowDrafterEdit/AllowApproverEditSection1/AllowEarlyApprove/AllowDelegate— nghi trôi từ-vựng UI thay tên code; ý an-toàn để giữ: "Pattern 7 đã áp 4 lần qua Mig 29/30/31" bỏ tên cờ).
Entries
⚠️ FIDELITY-FLAG (bắt buộc mang theo mọi trích-dẫn Pattern 7 từ file này): verbatim (S29 wrap) khai "Pattern 7 per-NV admin opt-in flag (Mig 29 AllowDrafterEdit + Mig 30 AllowApproverEditSection1 + Mig 31 AllowEarlyApprove + AllowDelegate) đã proven 4×" — 4 tên cờ
AllowDrafterEdit/AllowApproverEditSection1/AllowEarlyApprove/AllowDelegate= 0-hit src/Backend @S170 (control dươngAllowApproverSkipToFinal= 54 file · control âm tên bịa = 0 — thước còn răng) — chờ reviewer chấm, đừng cite như fact. Giả-thuyết lành: trôi từ-vựng UI-section thay tên code (lặp có hệ-thống, cả ở q1); riêngAllowEarlyApprove+AllowDelegatechưa có đối-ứng nào ở Mig 31 (thật =AllowApproverSkipToFinal). Tên Mig thật:20260513114505_AddAdvancedOptionsToApprovalWorkflows(28) ·20260513130144_RefactorAdvancedOptionsToPerLevelAndDrafterUser(29) ·20260513160703_AddAllowApproverEditBudgetToLevels(30) ·20260514160124_RefactorSkipToFinalToApproverLevel(31).
[cao] H1 — S29 wrap: 5 lần được gọi, và bài học về chạy song-song
- VIỆC: phiên bận nhất — Plan CA Chunk B (~10K) + Plan B 4 chunk (A2 Mig 32 ~25K · C Mig 33 ~25K · D FE ~12K · E3 dừng giữa chừng).
- KẾT-LUẬN: A2 phải
stashphần đang làm dở của em-main (ContractWorkflowService.cs) mới build sạch được — vì em-main và vai cùng sửa BE song song. E3 (FE Section 5 V2) tự dừng đúng chỗ phải phán-đoán ("checkContractDetailtype") và trả lại cho em-main. Đúc 3 luật: (1) khi cùng chạm BE thì chunk phải tuần-tự A→B→C, không song-song; (2) tính-năng FE phức-tạp cần mở rộng type + thêm component thì em-main tự làm đáng tin hơn khi độ mơ-hồ của spec >20%; (3) Pattern 16-bis được củng-cố lần 2. - BÀI-HỌC: song-song trên cùng một lớp code đẻ ra chi-phí ẩn (mẹo
stash) — nhanh trên giấy, chậm khi chạy. Và ngưỡng giao việc nên tính bằng độ mơ-hồ của spec, không bằng số file. - BẤT-NGỜ: vai tự dừng giữa nhiệm-vụ thay vì đoán bừa — biến "không đủ dữ-kiện" thành hành-động hợp-lệ, và ghi lại đúng chỗ dừng để người sau nối tiếp. → substring:"stash em main WIP"
[cao] H2 — S27 hồi-cứu: tự chấm điểm việc mình KHÔNG được gọi
- VIỆC: dựng bảng 8 task của S27, đối chiếu từng dòng với tiêu-chí nhận/từ-chối.
- KẾT-LUẬN: 6/8 xác-nhận "em-main tự làm là ĐÚNG" (curate MEMORY = phán-đoán §6.5 giữ-hay-cắt → #1 · dashboard = #7 chưa có tiền-lệ + #2 · viết docs 421 dòng = #2 · sửa lỗi Qdrant = #4). 2/8 lẽ ra giao được: A3.1 viết 5 script PS (Case 2) và F2 sửa
model:inheritở 4 file agent (Case 1) — nhưng registry không nạp được nên em-main buộc phải tự làm; thiệt-hại ước ~30 phút + mất kỷ-luật mirror. Đúc Pattern 20 (bộ 5 script PS start/stop/status/dashboard/boot: cùng kỷ-luật ASCII, cùng cấu-trúcWrite-Host, cùng khuôntry-catch). - BÀI-HỌC: hồi-cứu phải chấm từng dòng, không chấm tổng — nhờ vậy mới tách được "quyết đúng" khỏi "quyết đúng nhưng vì lý do sai" (2 ca này em-main đúng kết-quả nhưng nguyên-nhân là hạ-tầng hỏng, không phải phán-đoán).
- BẤT-NGỜ: cơ-hội bị mất không do ai quyết sai mà do registry rỗng — tức lỗi hạ-tầng lặng-lẽ biến thành lỗi phân-công, và chỉ lộ ra khi có bảng hồi-cứu. → substring:"Net loss"
[vừa] H3 — S28: 5 điều tự áp sau khi bị bắt lỗi
- VIỆC: ghi lại governance Layer A dưới góc nhìn của vai.
- KẾT-LUẬN: (1) pattern đã chứng ≥2 lần thì đủ tư-cách đề-cử lên Layer B; (2) tag bắt buộc
[pattern, phase-<N>, <bc>]; (3) quy-ướcsource_path=solution_erp/pattern/<topic>-<date>; (4) cấm tự cho phép mình đặt luật xuyên dự-án — đúc từ ca t4 bro bắt tại trận; (5) luật cũ "mọi tương-tác đều phải lưu" BỊ BỎ. - BÀI-HỌC: phạm-vi quyền của một vai phải thu về chính dự-án của nó; và luật cũ nên khai tử công-khai ("ABANDONED") thay vì để trôi — luật zombie còn hại hơn không có luật.
- BẤT-NGỜ: chính vai này ghi nhận mình quên mất luật cũ rồi mới phát-hiện luật đó đã bị bỏ — quên đúng thứ đáng quên, nhưng chỉ biết là "đúng" sau khi tra lại. → substring:"ABANDONED"
[thấp] H4 — Log curate + baseline
- VIỆC: ghi mốc: dồn 12 entry S21→S24 sang
archive/2026-05-q1.md; và mốc khởi-tạo 2026-05-11. - KẾT-LUẬN: MEMORY 38.8 KB → mục-tiêu ~22-24 KB, giữ nguyên khối Pattern 1-19; lúc khởi-tạo vai đã nạp sẵn 5 (thực tế liệt-kê 6) pattern nền tích-luỹ S1-S20, chưa làm gì, đã bật sẵn cơ-chế tự từ-chối theo phạm-vi.
- BÀI-HỌC: mỗi lần dồn kho phải ghi nguồn → đích + kích-thước trước/sau + thứ giữ lại thì lần sau mới truy được.
- BẤT-NGỜ: vai bật quy-tắc từ-chối ngay từ lúc chưa làm việc nào — ranh-giới được cài trước, không phải rút ra sau khi vỡ. → substring:"2026-05-q1"
Phụ-lục token (coverage)
- Pattern#:
7per-NV admin opt-in (tên cờ SAI — xem FIDELITY-FLAG) ·12-biscross-module cookie-cutter ·16-bis4-place mirror (reinforced 2×) ·20MỚI (bộ 5 script PS mirror) · nền "5 patterns S1-S20" (liệt-kê 6 mục) - criteria#:
#1phán-đoán giữ-hay-cắt (§6.5) ·#2thiết-kế UX / viết docs ·#4chuỗi suy-luận sửa lỗi ·#7lần đầu, chưa tiền-lệ · Case 1 (n file sửa cơ-học giống nhau) · Case 2 (cookie-cutter mirror) - surprise: "E3 stopped mid-task ... STOPPED at 'check ContractDetail type' judgment call" · "stash em main WIP
ContractWorkflowService.csđể build verify clean (em main + Implementer parallel touch BE → race condition trick)" · "Forward SEQUENTIAL chunks A→B→C khi cùng touch BE, NOT parallel" · "em main solo more reliable than Implementer khi spec ambiguity > 20%" · "2/8 task lẽ ra delegate được ... nhưng registry empty → em main forced solo" · "Net loss ~30 phút" · "registry KHÔNG load (per pitfall VIPIX #1+#2)" · "bro caught self-authorize cross-project rule mistake" · "Quên rule cũ 'mọi tương tác mandatory store' — ABANDONED" · "Implementer = busiest agent S29 với 5 spawn" - guard:
git stashphần WIP trước khi build verify · chunk tuần-tự khi cùng chạm BE · ngưỡng spec ambiguity 20% để chuyển về em-main · tự-dừng khi gặp judgment call · tag schema bắt buộc[pattern, phase-<N>, <bc>]· cấm tự-cho-phép luật liên-dự-án · pattern phải proven ≥2× mới đề-cử Layer B - root-cause: em-main + vai cùng sửa BE song song ⇒ cây làm việc bẩn ⇒ build verify không sạch ⇒ phải
stash· registry không nạp ⇒ không spawn được ⇒ 2 việc hợp-lệ bị dồn cho em-main · từ-vựng UI-section dùng thay tên cờ trong code ⇒ 4 tên cờ 0-hit (xem FIDELITY-FLAG) - file:line / định-danh:
ContractWorkflowService.cs(WIP bị stash) · Mig 32 (+column FK Restrict + IX + Configuration +DbInitializerSeedSampleContractWorkflowV2) · Mig 33ContractLevelOpinions(entity + Mig + Config + DbSet +Contract.cs+LevelOpinionsnav) ·ContractCreatePage.tsx×2 (88 LOC) · 4 master page +App.tsx(+5 route) +menuKeys.ts(+5 keyCatalogs*) ·pattern_master_page_mirror.md·archive/2026-05-q1.md· script PSstart/stop/status/dashboard/boot - số-đo: 5 spawn S29 · ~10K + ~25K + ~25K + ~12K token · 948 LOC mirror / 6 file · MEMORY 38.8 KB → ~22-24 KB · 12 entry dồn kho · setup 2026-05-11
- 🔬 disk-check hôm nay (S170, có 2 control):
AllowApproverSkipToFinal= 54 file (control dương) ·AllowXyzKhongTonTai= 0 (control âm) ·AllowDrafterEdit/AllowApproverEditSection1/AllowEarlyApprove/AllowDelegate= 0 / 0 / 0 / 0 · Mig thật:20260513114505_AddAdvancedOptionsToApprovalWorkflows·20260513130144_RefactorAdvancedOptionsToPerLevelAndDrafterUser·20260513160703_AddAllowApproverEditBudgetToLevels·20260514160124_RefactorSkipToFinalToApproverLevel