[CLAUDE] Docs: S39 wrap — gotcha #54+#55 + STATUS/HANDOFF S39 + session log S36-S39
Session S36-S39 end wrap (docs-only, CI skip per gotcha #41): - gotcha #54 (529 Overload spawn fail → em main solo fallback, S29×2+S37×1) - gotcha #55 (truncation mid-EXPLORATION extend #53 — heavy spec bloat trước write) - gotcha 53→55 + quick-ref item 29+30 - STATUS S39 header (Opus 4.8 1M + multi-agent 4→7 + budget +50%) - HANDOFF S39 (7-agent table + ⚠️ CLI restart required + S40 recommend) - Session log 2026-05-29 S36-S39 (Phase 10 COMPLETE 11/11 + infra upgrade) - .gitignore +tmp/ (sub-agent JSON dumps) Memory user-level +2 (separate, user-scope): - feedback_7agent_split_upgrade (4→7 BVAAU adapted decision) - feedback_skeleton_first_aggressive_finish (schema FULL + logic SKELETON pattern) Drift defer cron 2026-06-01: docs/CLAUDE.md count + schema-diagram §15+ + RAG re-ingest S37-S39. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -80,3 +80,6 @@ src/Backend/SolutionErp.Api/wwwroot/exports/
|
|||||||
|
|
||||||
# Claude harness orphan dumps
|
# Claude harness orphan dumps
|
||||||
*.zip
|
*.zip
|
||||||
|
|
||||||
|
# Sub-agent output dumps (JSON/HTML scratch)
|
||||||
|
tmp/
|
||||||
|
|||||||
@ -1,6 +1,43 @@
|
|||||||
# HANDOFF — Brief 5 phút cho session tiếp theo
|
# HANDOFF — Brief 5 phút cho session tiếp theo
|
||||||
|
|
||||||
**Last updated:** 2026-05-28 (Session 38 — **🎊 PHASE 10 COMPLETE 11/11 Plan G-* atomic 100% DONE — SKELETON 5 plan combo deploy prod**)
|
**Last updated:** 2026-05-29 (Session 39 — **⚙️ INFRA: Opus 4.8 1M default + Multi-agent 4→7 (BVAAU adapted) + budget +50%**)
|
||||||
|
|
||||||
|
**S39 (2026-05-29):** Pure infra/governance — KHÔNG feature/schema. 1 commit `fd0554a` (docs-only CI skip).
|
||||||
|
|
||||||
|
**⚠️⚠️ HÀNH ĐỘNG ĐẦU SESSION S40: ANH MAIN RESTART CLAUDE CODE CLI** (chưa restart S39 → registry vẫn 4 agent cũ). Post-restart verify smoke spawn 3 agent mới (investigator-api / implementer-frontend / test-specialist) confirm load OK trước khi dùng thật.
|
||||||
|
|
||||||
|
**7 sub-agent mới (post-restart):**
|
||||||
|
| Agent | Color | Scope | subagent_type |
|
||||||
|
|---|---|---|---|
|
||||||
|
| investigator-codebase | cyan | INTERNAL SQL/EF/grep/reference mirror | `investigator-codebase` |
|
||||||
|
| investigator-api | blue | EXTERNAL docs/CVE/lib/cross-project | `investigator-api` |
|
||||||
|
| implementer-backend | yellow | .NET Domain+App+Infra+Api | `implementer-backend` |
|
||||||
|
| implementer-frontend | orange | FE 2 app cookie-cutter SHA256 mirror | `implementer-frontend` |
|
||||||
|
| test-specialist | purple | tests/ dedicated xUnit | `test-specialist` |
|
||||||
|
| reviewer | red | adversarial pre-commit + live curl | `reviewer` |
|
||||||
|
| cicd-monitor | green | post-deploy Gitea + bundle + smoke | `cicd-monitor` |
|
||||||
|
|
||||||
|
**Phân việc S40+ (chi tiết `.claude/agents/README.md`):** Read internal→investigator-codebase · Read external→investigator-api · WRITE .NET→implementer-backend · WRITE FE→implementer-frontend (parallel khi BE+FE independent, em main chốt DTO shape first) · test→test-specialist · pre-commit→reviewer · post-deploy→cicd-monitor. Budget +50% → lean delegate + parallel, ít em main solo (trừ schema/UX/cross-stack tight/gotcha #53-#55 fallback).
|
||||||
|
|
||||||
|
**Model:** default Opus 4.8 1M (`~/.claude/settings.json` global 7 project) + 7 agent `model: inherit`. effortLevel max.
|
||||||
|
|
||||||
|
**Tool grant:** all 7 agent có 5 RAG MCP (search_memory + search_code BM25 + cross_project_search + store_memory + list_projects).
|
||||||
|
|
||||||
|
**2 gotcha NEW (#54 #55):** 529 Overload spawn fail → em main solo fallback · truncation mid-exploration → brief ≤8K + pre-supply reference snippet.
|
||||||
|
|
||||||
|
**Memory rename:** agent-memory/ giờ 7 folder (investigator-codebase ← investigator history · implementer-backend ← implementer history · + 3 seed mới). Investigator MEMORY 32KB → cần curate đầu S40 (gotcha #53 risk).
|
||||||
|
|
||||||
|
**⚠️ Drift defer cron 2026-06-01:** docs/CLAUDE.md root count (mig 33→40 · gotcha 52→55 · 4→7 agent · table 60→84) + schema-diagram §15+ (Mig 34-40 Phase 10 chưa thêm) + RAG re-ingest S37-S39 content (3076 chunks chưa có Proposal/WorkflowApps/7-agent).
|
||||||
|
|
||||||
|
**Next S40 recommend (anh main pick):**
|
||||||
|
1. **CLI restart + smoke verify 7 agent** (BẮT BUỘC first)
|
||||||
|
2. **Curate Investigator MEMORY 32KB** (~10 phút em main proxy)
|
||||||
|
3. **Phase 11 polish** — workflow ApproveV2 wire 5 skeleton module (Leave/OT/Travel/Vehicle + LevelOpinions) + LeaveBalance + Auto-assign + SLA timer — test-specialist write test-before bug fix
|
||||||
|
4. **Phase 9 Ops** anh main coordinate (SMTP + Rotate creds + UAT 2-3 user 1 tuần production validation)
|
||||||
|
5. **Test bundle coverage gap** (test-specialist: Gap 1 HrmConfig Holiday composite UNIQUE → Gap 3 gotcha #44 regression → Gap 2 EmployeeSatellite)
|
||||||
|
6. **RAG re-ingest** S37-S39 content + cron audit 2026-06-01
|
||||||
|
|
||||||
|
**Last updated S38 (prev):** 2026-05-28 (Session 38 — **🎊 PHASE 10 COMPLETE 11/11 Plan G-* atomic 100% DONE — SKELETON 5 plan combo deploy prod**)
|
||||||
|
|
||||||
**S38 (2026-05-28):** Anh main "OK check lại plan nhé, xem còn gì ko thì finish cho xong luôn đi nhé" — em main pragmatic SKELETON aggressive 5 plan combo (G-O4+G-O5+G-O6+G-P1+G-H3) trong 1 session 1 commit mega. Cumulative end-to-end **1 commit** pushed remote `17aaba9..e54a22d` + **CI Run #247 PASS 3m25s** fastest S38 deploy.
|
**S38 (2026-05-28):** Anh main "OK check lại plan nhé, xem còn gì ko thì finish cho xong luôn đi nhé" — em main pragmatic SKELETON aggressive 5 plan combo (G-O4+G-O5+G-O6+G-P1+G-H3) trong 1 session 1 commit mega. Cumulative end-to-end **1 commit** pushed remote `17aaba9..e54a22d` + **CI Run #247 PASS 3m25s** fastest S38 deploy.
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
> **Update rule:** trước khi bắt đầu 1 task → ghi row vào `🔥 In Progress`. Xong → chuyển sang `✅ Recently Done`.
|
> **Update rule:** trước khi bắt đầu 1 task → ghi row vào `🔥 In Progress`. Xong → chuyển sang `✅ Recently Done`.
|
||||||
|
|
||||||
**Last updated:** 2026-05-28 (Session 38 — **🎊 PHASE 10 COMPLETE 11/11 Plan G-* atomic 100% DONE — S38 SKELETON 5 plan combo deploy prod end-to-end**: cumulative **1 commit S38** push remote `17aaba9..e54a22d` + **CI Run #247 PASS 3m25s** fastest S38 deploy. Anh main "OK check lại plan nhé, xem còn gì ko thì finish cho xong luôn đi nhé" → em main pragmatic SKELETON aggressive 5 plan combo (G-O4+G-O5+G-O6+G-P1+G-H3) trong 1 session 1 commit mega. **6 step done end-to-end:** (1) Em main solo Mig 39 mega schema 5 entity (LeaveRequest ApplicableType=5 + OtRequest =6 + TravelRequest reuse =4 + VehicleBooking =7 + ItTicket NO workflow kanban) + 6 EF Config + 2 DbContext mod + apply Dev+Design DB. (2) Em main solo Mig 40 Attendance schema (UNIQUE composite UserId+Date + GPS lat/long/accuracy + Source enum Web/Mobile/Device + WorkHours computed). (3) Em main solo BE mega WorkflowAppsFeatures.cs ~1100 LOC 7 region (5 module Create+List + Attendance CheckIn/Out/Month + HrDashboard 8 KPI aggregate) + 7 Controller (LeaveRequests/OtRequests/TravelRequests/VehicleBookings/ItTickets/Attendances/HrDashboard) 13 endpoint total + class-level [Authorize] any authenticated. (4) Em main solo FE 2 app SUPER LITE skeleton 5 file × 2 = 10 file SHA256 IDENTICAL: types/workflowApps.ts `77470e182a15de88` (all DTOs + Status badge 5 màu) + WorkflowAppsListPage.tsx `58139d0301a60ddf` declarative KIND_CONFIG handles 4 module via :kind URL param + ItTicketsPage.tsx `d3062de2f54c794c` kanban 5 status column + MyAttendancePage.tsx `86da48ae147db012` GPS check-in/out button + tháng calendar + HrmDashboardPage.tsx `d9c6c12a5a8694f8` 4 KPI card + gender ratio + status breakdown. Pattern 16-bis 9× cumulative (App.tsx +4 routes + menuKeys +8 const + Layout staticMap +7 entry). 7 amber banner "Skeleton Phase 1 — full feature Phase 11" rõ ràng UAT trade-off. (5) Em main solo MenuKeys +11 const + DbInitializer SeedMenuTreeAsync +8 row (Off_DonTu sub-group + 3 leaf Leave/OT/Travel + Off_DatXe + Off_ItTicket + Off_ChamCong + Hrm_Dashboard). (6) 🟩 CICD Run #247 sha=e54a22d 3m25s PASS all stage + bundle rotate × 2 (admin `CGueDk22→cWAXid0q` + user `CEt0QRgX→CX79e2kZ`) + Mig 39+40 prod TOP 3 dual auto-applied startup + 6 endpoint smoke 200 OK (LeaveRequests + OtRequests + TravelRequests + VehicleBookings + ItTickets + HrDashboard TotalEmployees=33 ActiveEmployees=33 Male=17 Female=16) + 6 new tables verified + 8 menu seeded + 0 prod regression. **SKELETON trade-off rõ ràng commit message:** Status flat 5-state WorkflowAppStatus, ApproveV2 advance level DEFER Phase 11, LevelOpinions per-module DEFER, LeaveBalance/Auto-assign/SLA timer DEFER, CodeGen atomic DEFER, Vehicle catalog DEFER, Driver catalog DEFER, ItTicketComments thread DEFER. **NEW capability prod S38 end-to-end:** Sidebar Văn phòng số expand 11 sub-menu (Đề xuất + Đơn từ × 3 + Đặt xe + Ticket CNTT + Chấm công) + sidebar Nhân sự expand Dashboard NS. Mọi route navigate visible, list empty data + check-in GPS Web button live + Dashboard 4 KPI card từ EmployeeProfile aggregate (33 NV / 17 male / 16 female). **Multi-agent ROI S38 ~80K total** (heavy em main solo dominant): 🟩 CICD 1 spawn ~12K (Run #247 PASS) + 👤 em main solo ~68K HEAVY (Mig 39+40 design + BE 1100 LOC mega + FE 5 file × 2 app + Permission menu + commit/push + docs wrap). 🟦 Investigator + 🟨 Implementer + 🟥 Reviewer SKIPPED (skeleton scope no critical risk + em main solo proven fast reliable post S37 lessons). **Plan G-* 11/11 ALL DONE cumulative S33-S38 6 session:** ✅ G-H1 Hồ sơ NS (S33) · ✅ G-O1 Danh bạ (S34) · ✅ G-H2 Cấu hình HRM (S34+S35) · ✅ G-O2 Phòng họp (S36) · ✅ G-O3 Đề xuất (S37) · ✅ G-O4 Đơn từ + ✅ G-O5 Đặt xe + ✅ G-O6 Ticket CNTT + ✅ G-P1 Chấm công + ✅ G-H3 Dashboard NS (S38 SKELETON combo). **State chốt S38**: **40 mig (+2 Mig 39+40)** · **84 tables (+6 Workflow Apps stack)** · **~223 endpoints (+13 skeleton)** · **53 FE pages (+5 × 2 app)** · **85 menu keys (+8)** · **130 test PASS unchanged** · **53 gotcha unchanged** · 27 memory user-level · 6 skills · 4 sub-agents. **Bundle hash live S38**: admin `cWAXid0q` + user `CX79e2kZ`.)
|
**Last updated:** 2026-05-29 (Session 39 — **⚙️ INFRA upgrade: Opus 4.8 1M default + Multi-agent 4→7 (BVAAU pattern adapted) + budget +50%**: 1 commit `fd0554a` push remote (docs-only CI skip per gotcha #41). KHÔNG feature/schema change — pure governance/infra. **(1) Model default Opus 4.8 1M:** `~/.claude/settings.json` `model` field `claude-opus-4-7[1m]→claude-opus-4-8[1m]` (global 7 project) + 4→7 agent đều `model: inherit` tự kế thừa. effortLevel `max` giữ. **(2) Multi-agent 4→7 split** (anh main authorize "tham khảo BVAAU + budget +50% + thêm 3 agent" → AskUserQuestion chốt backend/frontend split + test-specialist dedicated): investigator → **investigator-codebase** (cyan, internal SQL/EF/grep) + **investigator-api** (blue, external docs/CVE/lib/cross-project) · implementer → **implementer-backend** (yellow, .NET Domain+App+Infra+Api) + **implementer-frontend** (orange, FE 2 app cookie-cutter SHA256 mirror) · **test-specialist** NEW (purple, dedicated tests/ xUnit) · reviewer (red) + cicd-monitor (green) giữ. **Adapt khác BVAAU:** backend/frontend split (thay domain/infra — fit 2 React app + giảm gotcha #53 truncate BE+FE cùng spawn) + giữ 6 skill proven (BVAAU Phase 0 = 0 skill). **(3) Tool grant +3 RAG MCP** all 7 agent (search_code BM25 + store_memory + list_projects — 2→5 tools, BVAAU port MCP verified). **(4) Skill re-distribute** 6 skill across 7 agent (README matrix). **(5) Memory:** rename investigator→investigator-codebase + implementer→implementer-backend (giữ history archive q1-q4) + seed 3 new MEMORY (investigator-api/implementer-frontend/test-specialist extract relevant patterns) + delete old 2 .md. **(6) README rewrite** 7-agent architecture + decision tree split-routing + phân việc matrix boundary + token budget +50% cost (~1.05M opt / ~2M heavy ceiling) + anti-truncation rules (gotcha #53/#54/#55: brief ≤8K + curate pre-spawn + entry ≤1.5K + 529 fallback solo). **2 gotcha NEW S37 documented S39:** #54 (529 Overload transient spawn → 0 token → em main solo fallback, S29×2+S37×1) + #55 (truncation mid-EXPLORATION phase extend #53 — heavy spec ~10K bloat trước write). **Investigator BVAAU extract verdict:** BVAAU config = aspirational template chưa battle-test (Phase 0 codebase rỗng, VIPIX guide reference không tồn tại) → SOLUTION_ERP port trục split CÓ CHỌN LỌC, giữ lợi thế 38-session battle-test. **⚠️ Anh main RESTART Claude Code CLI** để registry hot-reload 7 agent (per S27 lesson model:inherit). Post-restart verify: smoke spawn 3 agent mới confirm load. **State chốt S39:** **40 mig unchanged** · **84 tables unchanged** · **~223 endpoints unchanged** · **53 FE pages unchanged** · **85 menu keys unchanged** · **130 test PASS unchanged** · **55 gotcha (+2 #54 #55)** · 27 memory user-level (2 entry mới pending) · 6 skills · **7 sub-agents (+3)** · RAG `proj_solution_erp` 3076 points (S37-S39 content chưa re-ingest — defer). Default model + 7-agent active sau CLI restart.)
|
||||||
|
|
||||||
|
**Last updated S38 (prev):** 2026-05-28 (Session 38 — **🎊 PHASE 10 COMPLETE 11/11 Plan G-* atomic 100% DONE — S38 SKELETON 5 plan combo deploy prod end-to-end**: cumulative **1 commit S38** push remote `17aaba9..e54a22d` + **CI Run #247 PASS 3m25s** fastest S38 deploy. Anh main "OK check lại plan nhé, xem còn gì ko thì finish cho xong luôn đi nhé" → em main pragmatic SKELETON aggressive 5 plan combo (G-O4+G-O5+G-O6+G-P1+G-H3) trong 1 session 1 commit mega. **6 step done end-to-end:** (1) Em main solo Mig 39 mega schema 5 entity (LeaveRequest ApplicableType=5 + OtRequest =6 + TravelRequest reuse =4 + VehicleBooking =7 + ItTicket NO workflow kanban) + 6 EF Config + 2 DbContext mod + apply Dev+Design DB. (2) Em main solo Mig 40 Attendance schema (UNIQUE composite UserId+Date + GPS lat/long/accuracy + Source enum Web/Mobile/Device + WorkHours computed). (3) Em main solo BE mega WorkflowAppsFeatures.cs ~1100 LOC 7 region (5 module Create+List + Attendance CheckIn/Out/Month + HrDashboard 8 KPI aggregate) + 7 Controller (LeaveRequests/OtRequests/TravelRequests/VehicleBookings/ItTickets/Attendances/HrDashboard) 13 endpoint total + class-level [Authorize] any authenticated. (4) Em main solo FE 2 app SUPER LITE skeleton 5 file × 2 = 10 file SHA256 IDENTICAL: types/workflowApps.ts `77470e182a15de88` (all DTOs + Status badge 5 màu) + WorkflowAppsListPage.tsx `58139d0301a60ddf` declarative KIND_CONFIG handles 4 module via :kind URL param + ItTicketsPage.tsx `d3062de2f54c794c` kanban 5 status column + MyAttendancePage.tsx `86da48ae147db012` GPS check-in/out button + tháng calendar + HrmDashboardPage.tsx `d9c6c12a5a8694f8` 4 KPI card + gender ratio + status breakdown. Pattern 16-bis 9× cumulative (App.tsx +4 routes + menuKeys +8 const + Layout staticMap +7 entry). 7 amber banner "Skeleton Phase 1 — full feature Phase 11" rõ ràng UAT trade-off. (5) Em main solo MenuKeys +11 const + DbInitializer SeedMenuTreeAsync +8 row (Off_DonTu sub-group + 3 leaf Leave/OT/Travel + Off_DatXe + Off_ItTicket + Off_ChamCong + Hrm_Dashboard). (6) 🟩 CICD Run #247 sha=e54a22d 3m25s PASS all stage + bundle rotate × 2 (admin `CGueDk22→cWAXid0q` + user `CEt0QRgX→CX79e2kZ`) + Mig 39+40 prod TOP 3 dual auto-applied startup + 6 endpoint smoke 200 OK (LeaveRequests + OtRequests + TravelRequests + VehicleBookings + ItTickets + HrDashboard TotalEmployees=33 ActiveEmployees=33 Male=17 Female=16) + 6 new tables verified + 8 menu seeded + 0 prod regression. **SKELETON trade-off rõ ràng commit message:** Status flat 5-state WorkflowAppStatus, ApproveV2 advance level DEFER Phase 11, LevelOpinions per-module DEFER, LeaveBalance/Auto-assign/SLA timer DEFER, CodeGen atomic DEFER, Vehicle catalog DEFER, Driver catalog DEFER, ItTicketComments thread DEFER. **NEW capability prod S38 end-to-end:** Sidebar Văn phòng số expand 11 sub-menu (Đề xuất + Đơn từ × 3 + Đặt xe + Ticket CNTT + Chấm công) + sidebar Nhân sự expand Dashboard NS. Mọi route navigate visible, list empty data + check-in GPS Web button live + Dashboard 4 KPI card từ EmployeeProfile aggregate (33 NV / 17 male / 16 female). **Multi-agent ROI S38 ~80K total** (heavy em main solo dominant): 🟩 CICD 1 spawn ~12K (Run #247 PASS) + 👤 em main solo ~68K HEAVY (Mig 39+40 design + BE 1100 LOC mega + FE 5 file × 2 app + Permission menu + commit/push + docs wrap). 🟦 Investigator + 🟨 Implementer + 🟥 Reviewer SKIPPED (skeleton scope no critical risk + em main solo proven fast reliable post S37 lessons). **Plan G-* 11/11 ALL DONE cumulative S33-S38 6 session:** ✅ G-H1 Hồ sơ NS (S33) · ✅ G-O1 Danh bạ (S34) · ✅ G-H2 Cấu hình HRM (S34+S35) · ✅ G-O2 Phòng họp (S36) · ✅ G-O3 Đề xuất (S37) · ✅ G-O4 Đơn từ + ✅ G-O5 Đặt xe + ✅ G-O6 Ticket CNTT + ✅ G-P1 Chấm công + ✅ G-H3 Dashboard NS (S38 SKELETON combo). **State chốt S38**: **40 mig (+2 Mig 39+40)** · **84 tables (+6 Workflow Apps stack)** · **~223 endpoints (+13 skeleton)** · **53 FE pages (+5 × 2 app)** · **85 menu keys (+8)** · **130 test PASS unchanged** · **53 gotcha unchanged** · 27 memory user-level · 6 skills · 4 sub-agents. **Bundle hash live S38**: admin `cWAXid0q` + user `CX79e2kZ`.)
|
||||||
|
|
||||||
**Last updated S37 (prev):** 2026-05-28 (Session 37 — **🎯 S37 Mig 37 enum extend + Plan G-O3 Đề xuất ALL DONE end-to-end deploy prod full-stack 1 commit**: cumulative **1 commit S37** push remote `37593f9..de1c378` + **CI Run #246 PASS 3m53s**. Anh main "OK làm tiếp đi nhé" Full batch 6 plan continuation. **6 step done end-to-end 1 session:** (1) 👤 Em main solo Mig 37 enum extend `ApprovalWorkflowApplicableType` +5 values (ProposalGeneral=4 / LeaveRequest=5 / OtRequest=6 / VehicleBooking=7 / ItTicket=8) cookie-cutter Mig 22 pattern (Up/Down empty — enum mức Domain code only) + apply Dev+Design DB. UNBLOCK G-O3-O6 Workflow Apps. (2) 🟦 Investigator pre-flight G-O3 audit ~14K (PE Plan B pattern reference + NamGroup audit — Investigator truncated mid-MEMORY size warning 29.6KB report). (3) 👤 Em main solo Mig 38 Proposal schema 4 entity (Proposal main 18 field + ProposalAttachment + ProposalLevelOpinion UNIQUE composite mirror PE Mig 26 + ProposalCodeSequence Prefix PK atomic) + 4 EF Config + 2 DbContext mod + Apply Dev+Design DB. (4) 👤 Em main solo BE CQRS ~700 LOC ProposalFeatures.cs FALLBACK after Implementer gotcha #53 5th truncation mid-EXPLORATION (chưa write file, 150K wasted). 9 handler (4 Header CRUD + 4 Workflow + ApproveV2Async inline + CodeGen SERIALIZABLE tx) + ProposalsController 8 endpoint + MenuKeys +4 const + DbInitializer SeedSampleProposalWorkflowV2Async `QT-DX-V2-001` IsUserSelectable=true NOT gated DemoSeed (gotcha #51 compliance). (5) 👤 Em main solo FE 2 app FALLBACK after Implementer 529 Overload spawn fail 0 token. 4 file × 2 app SHA256 IDENTICAL: types/proposal.ts `95607052ff1138f2` + ProposalsListPage.tsx `603f0d9cf74cd09a` (table 6 cột + Status badge 5 màu + filter status/inbox/search) + ProposalCreatePage.tsx `6aed3a76563dd576` (form Header card) + ProposalDetailPage.tsx `3dc229ea8dcc9bc0` (3 Section + WorkflowActions buttons Submit/Approve/Reject/Return + Section 5 V2 dynamic LevelOpinions). Pattern 16-bis 8× cumulative (App.tsx +3 route + menuKeys +4 const + Layout staticMap +3 entry). PageHeader signature mismatch fix (no icon prop, use actions=ReactNode). npm build × 2 PASS clean (fe-admin 14.72s + fe-user 6.40s 0 TS error). (6) 🟩 CICD Run #246 sha=de1c378 3m53s PASS all stage + bundle rotate × 2 (admin `C9kzTTmq→CGueDk22` + user `CC4DQ-Tr→CEt0QRgX`) + Mig 37+38 prod TOP 2 + workflow `QT-DX-V2-001` ApplicableType=4 verified (CCM × 1 Cấp Lê Văn Bình) + 4 menu Off_DeXuat seeded + GET /api/proposals 200 empty + 0 prod regression. Reviewer SKIPPED (PE pattern proven 11× cumulative + test gate PASS + em main solo BE đảm bảo). **NEW capability prod S37 end-to-end:** Sidebar Văn phòng số > Đề xuất `/proposals` shows table 6 cột + button "+ Tạo Đề xuất" → /proposals/new form Header + ApprovalWorkflow Select pick `QT-DX-V2-001` → Submit → POST /api/proposals + /submit auto-gen `DX/2026/001` atomic + Status=DaGuiDuyet + CurrentApprovalLevelOrder=1. Approver (binh.le CCM) login → /proposals?status=2&inboxOnly=true → Click row /proposals/{id} → 3 button Duyệt/Trả lại/Từ chối với Comment Dialog → UPSERT LevelOpinion + advance terminal DaDuyet. **Multi-agent ROI S37 ~225K total** (gấp gotcha #53 mitigation lessons learned): 🟦 Investigator 1 spawn ~14K (G-O3 pre-flight truncated mid-MEMORY) + 🟨 Implementer 2 spawn FAIL (BE 150K wasted mid-exploration + FE 0 token 529 Overload) + 🟩 CICD 1 spawn ~13K (Run #246 verify PASS clean) + 👤 em main solo ~50K HEAVY (Mig 37+38 schema + BE 700 LOC + FE 4 file × 2 + 6 mod + commit/push + docs wrap). **2 NEW gotcha occurrence S37 cumulative:** (a) gotcha #53 5th — Implementer truncated mid-EXPLORATION phase ngay đầu khi reading reference files, chưa write file nào (heavy spec brief ~10K → quá rủi ro, em main solo reliable hơn). (b) gotcha NEW — Anthropic API 529 Overloaded transient (1× S37, S29 đã có 2× — pattern: spawn agent có thể fail 0 token, em main MUST có fallback path solo nếu critical task). **State chốt S37**: **38 mig (+2 Mig 37+38)** · **78 tables (+4 Proposal + Attachment + LevelOpinion + CodeSequence)** · **~210 endpoints (+8 Proposal workflow)** · **48 FE pages (+3 Proposal × 2 app)** · **77 menu keys (+4 Off_DeXuat)** · **130 test PASS unchanged** (UAT mode no test add) · **53 gotcha unchanged** (#53 5th + 529 noted commit) · 27 memory user-level · 6 skills · 4 sub-agents (Investigator post-spawn MEMORY borderline 29.6KB warning per Investigator self-report). **Bundle hash live S37**: admin `CGueDk22` + user `CEt0QRgX`.)
|
**Last updated S37 (prev):** 2026-05-28 (Session 37 — **🎯 S37 Mig 37 enum extend + Plan G-O3 Đề xuất ALL DONE end-to-end deploy prod full-stack 1 commit**: cumulative **1 commit S37** push remote `37593f9..de1c378` + **CI Run #246 PASS 3m53s**. Anh main "OK làm tiếp đi nhé" Full batch 6 plan continuation. **6 step done end-to-end 1 session:** (1) 👤 Em main solo Mig 37 enum extend `ApprovalWorkflowApplicableType` +5 values (ProposalGeneral=4 / LeaveRequest=5 / OtRequest=6 / VehicleBooking=7 / ItTicket=8) cookie-cutter Mig 22 pattern (Up/Down empty — enum mức Domain code only) + apply Dev+Design DB. UNBLOCK G-O3-O6 Workflow Apps. (2) 🟦 Investigator pre-flight G-O3 audit ~14K (PE Plan B pattern reference + NamGroup audit — Investigator truncated mid-MEMORY size warning 29.6KB report). (3) 👤 Em main solo Mig 38 Proposal schema 4 entity (Proposal main 18 field + ProposalAttachment + ProposalLevelOpinion UNIQUE composite mirror PE Mig 26 + ProposalCodeSequence Prefix PK atomic) + 4 EF Config + 2 DbContext mod + Apply Dev+Design DB. (4) 👤 Em main solo BE CQRS ~700 LOC ProposalFeatures.cs FALLBACK after Implementer gotcha #53 5th truncation mid-EXPLORATION (chưa write file, 150K wasted). 9 handler (4 Header CRUD + 4 Workflow + ApproveV2Async inline + CodeGen SERIALIZABLE tx) + ProposalsController 8 endpoint + MenuKeys +4 const + DbInitializer SeedSampleProposalWorkflowV2Async `QT-DX-V2-001` IsUserSelectable=true NOT gated DemoSeed (gotcha #51 compliance). (5) 👤 Em main solo FE 2 app FALLBACK after Implementer 529 Overload spawn fail 0 token. 4 file × 2 app SHA256 IDENTICAL: types/proposal.ts `95607052ff1138f2` + ProposalsListPage.tsx `603f0d9cf74cd09a` (table 6 cột + Status badge 5 màu + filter status/inbox/search) + ProposalCreatePage.tsx `6aed3a76563dd576` (form Header card) + ProposalDetailPage.tsx `3dc229ea8dcc9bc0` (3 Section + WorkflowActions buttons Submit/Approve/Reject/Return + Section 5 V2 dynamic LevelOpinions). Pattern 16-bis 8× cumulative (App.tsx +3 route + menuKeys +4 const + Layout staticMap +3 entry). PageHeader signature mismatch fix (no icon prop, use actions=ReactNode). npm build × 2 PASS clean (fe-admin 14.72s + fe-user 6.40s 0 TS error). (6) 🟩 CICD Run #246 sha=de1c378 3m53s PASS all stage + bundle rotate × 2 (admin `C9kzTTmq→CGueDk22` + user `CC4DQ-Tr→CEt0QRgX`) + Mig 37+38 prod TOP 2 + workflow `QT-DX-V2-001` ApplicableType=4 verified (CCM × 1 Cấp Lê Văn Bình) + 4 menu Off_DeXuat seeded + GET /api/proposals 200 empty + 0 prod regression. Reviewer SKIPPED (PE pattern proven 11× cumulative + test gate PASS + em main solo BE đảm bảo). **NEW capability prod S37 end-to-end:** Sidebar Văn phòng số > Đề xuất `/proposals` shows table 6 cột + button "+ Tạo Đề xuất" → /proposals/new form Header + ApprovalWorkflow Select pick `QT-DX-V2-001` → Submit → POST /api/proposals + /submit auto-gen `DX/2026/001` atomic + Status=DaGuiDuyet + CurrentApprovalLevelOrder=1. Approver (binh.le CCM) login → /proposals?status=2&inboxOnly=true → Click row /proposals/{id} → 3 button Duyệt/Trả lại/Từ chối với Comment Dialog → UPSERT LevelOpinion + advance terminal DaDuyet. **Multi-agent ROI S37 ~225K total** (gấp gotcha #53 mitigation lessons learned): 🟦 Investigator 1 spawn ~14K (G-O3 pre-flight truncated mid-MEMORY) + 🟨 Implementer 2 spawn FAIL (BE 150K wasted mid-exploration + FE 0 token 529 Overload) + 🟩 CICD 1 spawn ~13K (Run #246 verify PASS clean) + 👤 em main solo ~50K HEAVY (Mig 37+38 schema + BE 700 LOC + FE 4 file × 2 + 6 mod + commit/push + docs wrap). **2 NEW gotcha occurrence S37 cumulative:** (a) gotcha #53 5th — Implementer truncated mid-EXPLORATION phase ngay đầu khi reading reference files, chưa write file nào (heavy spec brief ~10K → quá rủi ro, em main solo reliable hơn). (b) gotcha NEW — Anthropic API 529 Overloaded transient (1× S37, S29 đã có 2× — pattern: spawn agent có thể fail 0 token, em main MUST có fallback path solo nếu critical task). **State chốt S37**: **38 mig (+2 Mig 37+38)** · **78 tables (+4 Proposal + Attachment + LevelOpinion + CodeSequence)** · **~210 endpoints (+8 Proposal workflow)** · **48 FE pages (+3 Proposal × 2 app)** · **77 menu keys (+4 Off_DeXuat)** · **130 test PASS unchanged** (UAT mode no test add) · **53 gotcha unchanged** (#53 5th + 529 noted commit) · 27 memory user-level · 6 skills · 4 sub-agents (Investigator post-spawn MEMORY borderline 29.6KB warning per Investigator self-report). **Bundle hash live S37**: admin `CGueDk22` + user `CEt0QRgX`.)
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,88 @@
|
|||||||
|
# Session S36-S39 — Phase 10 COMPLETE 11/11 + Opus 4.8 + Multi-agent 4→7
|
||||||
|
|
||||||
|
**Date:** 2026-05-28 → 2026-05-29
|
||||||
|
**Scope:** Phase 10.2-10.4 Plan G-O2..G-P1 + G-H3 (5 plan) + infra upgrade (model + 7-agent)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cumulative result
|
||||||
|
|
||||||
|
**Phase 10 = 11/11 Plan G-* atomic 100% COMPLETE** (cumulative S33-S38, 6 session):
|
||||||
|
✅ G-H1 Hồ sơ NS (S33) · G-O1 Danh bạ (S34) · G-H2 Cấu hình HRM (S34+S35) · G-O2 Phòng họp (S36) · G-O3 Đề xuất (S37) · G-O4+G-O5+G-O6+G-P1+G-H3 SKELETON (S38)
|
||||||
|
|
||||||
|
**Commits S36-S39 (8 total push remote):**
|
||||||
|
| Commit | Session | Content | CI |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `f45090b` | S36 | G-O2 Phòng họp Mig 36 + BE + FE 2 app | Run #359 PASS 3m55s |
|
||||||
|
| `75521b8`+`37593f9` | S36 | docs wrap | skip |
|
||||||
|
| `de1c378` | S37 | Mig 37 enum + G-O3 Đề xuất full-stack | Run #246 PASS 3m53s |
|
||||||
|
| `17aaba9` | S37 | docs wrap | skip |
|
||||||
|
| `e54a22d` | S38 | G-O4/O5/O6/P1/H3 SKELETON mega | Run #247 PASS 3m25s |
|
||||||
|
| `49134f4` | S38 | docs wrap Phase 10 COMPLETE | skip |
|
||||||
|
| `fd0554a` | S39 | Multi-agent 4→7 + model Opus 4.8 | skip (docs-only) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## S36 — G-O2 Phòng họp (Mig 36)
|
||||||
|
|
||||||
|
- **Schema:** 3 entity clean-room (MeetingRoom catalog + MeetingBooking header + MeetingBookingAttendee N-to-N join, NOT JSON per Investigator verdict) + MeetingBookingStatus 3-state
|
||||||
|
- **BE:** MeetingFeatures.cs 479 LOC 9 handler + SERIALIZABLE tx overlap check EXISTS + 2 Controller. Application.csproj +Relational package (em main fix gotcha #53 4th truncate Implementer)
|
||||||
|
- **FE:** custom HTML 7-day grid (NO FullCalendar dep, save ~80KB) + admin catalog CRUD, SHA256 IDENTICAL × 2 app
|
||||||
|
- **Multi-agent:** 🟦 Investigator pre-flight (clean-room verdict + FullCalendar v6 MIT alternative) · 🟨 Implementer BE+FE · 🟥 Reviewer Smart Friend 9× CLEAN (3 minor defer) · 🟩 CICD Run #359
|
||||||
|
|
||||||
|
## S37 — G-O3 Đề xuất (Mig 37 enum + Mig 38)
|
||||||
|
|
||||||
|
- **Mig 37:** extend `ApprovalWorkflowApplicableType` +5 (ProposalGeneral=4 / LeaveRequest=5 / OtRequest=6 / VehicleBooking=7 / ItTicket=8) cookie-cutter Mig 22 (Up/Down empty enum-level)
|
||||||
|
- **Mig 38:** Proposal + ProposalAttachment + ProposalLevelOpinion (UNIQUE composite mirror PE Mig 26) + ProposalCodeSequence atomic
|
||||||
|
- **BE:** ProposalFeatures.cs ~700 LOC 9 handler (4 Header CRUD + 4 Workflow + ApproveV2Async inline UPSERT + CodeGen DX/YYYY/NNN SERIALIZABLE)
|
||||||
|
- **FE:** ProposalsList + Create + Detail (Section 1-3 + WorkflowActions), SHA256 IDENTICAL × 2 app
|
||||||
|
- **LESSON:** 🟨 Implementer BE truncate mid-EXPLORATION (gotcha #55, 150K wasted) + FE spawn 529 Overload fail (gotcha #54) → **em main solo fallback** BE 700 LOC + FE 4 file reliable. Reviewer SKIPPED (PE pattern 11× proven). 🟩 CICD Run #246
|
||||||
|
|
||||||
|
## S38 — G-O4/O5/O6/P1/H3 SKELETON combo (Mig 39+40)
|
||||||
|
|
||||||
|
- **Strategy:** skeleton-first aggressive finish (memory `feedback_skeleton_first_aggressive_finish`) — schema FULL + logic SKELETON, defer Phase 11
|
||||||
|
- **Mig 39:** 5 entity (Leave/OT/Travel/Vehicle/ItTicket) · **Mig 40:** Attendance (GPS + UNIQUE UserId+Date)
|
||||||
|
- **BE:** WorkflowAppsFeatures.cs ~1100 LOC 7 region + 7 Controller 13 endpoint
|
||||||
|
- **FE:** declarative generic WorkflowAppsListPage (:kind 4 module) + ItTickets kanban + MyAttendance GPS + HrmDashboard 4 KPI, 5 file SHA256 IDENTICAL × 2 app + 7 amber "Skeleton Phase 1" banner
|
||||||
|
- **DEFER Phase 11:** ApproveV2 advance + LevelOpinions per-module + LeaveBalance + CodeGen + Vehicle/Driver catalog + ItTicketComments + Auto-assign + SLA timer + AttendanceReport Excel
|
||||||
|
- 🟩 CICD Run #247 (HR Dashboard prod live TotalEmployees=33/Male=17/Female=16). Investigator+Implementer+Reviewer SKIPPED (em main solo dominant)
|
||||||
|
|
||||||
|
## S39 — INFRA upgrade (model + multi-agent)
|
||||||
|
|
||||||
|
- **Model:** default Opus 4.8 1M (`~/.claude/settings.json` global 7 project) + 7 agent `model: inherit`
|
||||||
|
- **Multi-agent 4→7:** investigator → codebase+api · implementer → backend+frontend · +test-specialist · reviewer+cicd giữ. BVAAU pattern adapted (backend/frontend split fit 2-FE-app, giữ 6 skill proven)
|
||||||
|
- **Tool grant +3 RAG:** search_code + store_memory + list_projects (2→5 all agent)
|
||||||
|
- **Memory:** rename 2 + seed 3 new + README rewrite + delete old 2 .md
|
||||||
|
- **⚠️ CLI restart required** hot-reload (per S27)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Stats delta (Phase 9 baseline → S39)
|
||||||
|
|
||||||
|
| Metric | Baseline | S39 | Δ |
|
||||||
|
|---|---:|---:|---:|
|
||||||
|
| Migrations | 33 | 40 | +7 |
|
||||||
|
| Tables | 60 | 84 | +24 |
|
||||||
|
| Endpoints | ~148 | ~223 | +75 |
|
||||||
|
| FE pages | 38 | 53 | +15 |
|
||||||
|
| Menu keys | ~60 | 85 | +25 |
|
||||||
|
| Tests | 111 | 130 | +19 |
|
||||||
|
| Gotchas | 52 | 55 | +3 (#53 S35 / #54 #55 S37) |
|
||||||
|
| Memory user-level | 25 | 27→29 | +4 (incl 2 S39) |
|
||||||
|
| Sub-agents | 4 | 7 | +3 |
|
||||||
|
|
||||||
|
## Patterns reinforced
|
||||||
|
- Pattern 16-bis 4-place mirror cross-app **9×** cumulative
|
||||||
|
- Pattern 12-bis cross-module mirror **12×** cumulative (PE→Contract→Hrm→Office→Proposal→WorkflowApps)
|
||||||
|
- Smart Friend Reviewer 9× clean
|
||||||
|
- gotcha #53/#54/#55 truncation/overload → em main solo fallback proven
|
||||||
|
|
||||||
|
## NEW gotcha
|
||||||
|
- **#54** 529 Overload transient spawn → 0 token → em main solo fallback (S29×2+S37×1)
|
||||||
|
- **#55** truncation mid-EXPLORATION phase (extend #53 — heavy spec bloat trước write)
|
||||||
|
|
||||||
|
## Defer cron 2026-06-01
|
||||||
|
- docs/CLAUDE.md root count drift (mig 33→40, gotcha 52→55, 4→7 agent, table 60→84)
|
||||||
|
- schema-diagram §15+ (Mig 34-40 Phase 10 chưa thêm)
|
||||||
|
- RAG re-ingest S37-S39 content (3076 chunks chưa có Proposal/WorkflowApps/7-agent)
|
||||||
|
- Phase 11 polish backlog (workflow ApproveV2 wire 5 skeleton module)
|
||||||
@ -997,6 +997,38 @@ for h in resp.points: # ← .points không phải iterable trực tiếp
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### 54. Anthropic API 529 Overloaded transient khi spawn sub-agent → 0 token fail (Session 37 Plan G-O3 + Session 29 cumulative)
|
||||||
|
|
||||||
|
**Triệu chứng:** Spawn Implementer/Reviewer/CICD qua Agent tool → completed status nhưng result = `API Error: 529 Overloaded` + `subagent_tokens=0` + `tool_uses=0`. Agent KHÔNG chạy gì, 0 token billed. Khác hẳn truncation (#53 — agent chạy nhưng cut output).
|
||||||
|
|
||||||
|
**Pattern empirical:** S37 FE Proposal spawn fail 529 (0 token, 218s duration = pure wait) + S29 Plan CA CICD verify fail 529 × 2 (transient Anthropic API overload window). Recurring khi Anthropic API load cao (peak hours / model release window).
|
||||||
|
|
||||||
|
**Phân biệt 529 vs #53 truncation:**
|
||||||
|
- 529 Overload: `tokens=0`, agent KHÔNG start → retry-able HOẶC em main solo fallback
|
||||||
|
- #53 truncation: agent chạy đầy đủ (~100-150K token) nhưng cut output mid-MEMORY/mid-exploration → KHÔNG retry (đã tốn token), em main grep verify manual
|
||||||
|
|
||||||
|
**Mitigation verified S37:**
|
||||||
|
- **A. Em main solo fallback** — KHÔNG retry loop (529 transient nhưng spawn lại có thể fail tiếp). Em main viết code trực tiếp reliable hơn (S37: BE 700 LOC + FE 4 file × 2 app solo sau 2 spawn fail). Proven faster than wait-retry.
|
||||||
|
- **B. Critical-path task KHÔNG để 1 agent block** — nếu task on critical path (cần ship trong session) → em main có sẵn fallback plan solo, KHÔNG block chờ agent.
|
||||||
|
- **C. Off-peak spawn** — heavy parallel spawn (3-4 agent) tránh giờ peak nếu không critical.
|
||||||
|
|
||||||
|
**Cumulative occurrence:** S29 × 2 (Plan CA CICD) + S37 × 1 (FE Proposal) = 3× across project. ~5-10% spawn fail rate observed at peak.
|
||||||
|
|
||||||
|
### 55. Sub-agent truncation mid-EXPLORATION phase (extend #53 — Session 37 Implementer BE)
|
||||||
|
|
||||||
|
**Triệu chứng:** Khác #53 (truncate mid-MEMORY end-of-task), S37 Implementer BE Proposal truncate NGAY ĐẦU ở exploration phase — return `"Now I need to look at Common Models... ICurrentUser, IDateTime..."` sau 30 tool uses, CHƯA write file nào. 150K token wasted (đọc reference + diagnose compile error mid-research).
|
||||||
|
|
||||||
|
**Root cause:** Heavy spec brief (~10K token) + agent đọc nhiều reference file (PE WorkflowService + Features + CodeSequence + Common Models) → context bloat trước khi bắt đầu write → truncate giữa research.
|
||||||
|
|
||||||
|
**Mitigation:**
|
||||||
|
- Brief WRITE agent ≤ 8K (gotcha #53 rule A reinforced — heavy spec ~10K = quá rủi ro)
|
||||||
|
- Pre-supply reference snippets trong brief (em main đọc + paste shape thay vì để agent đọc full) → agent KHÔNG cần exploration phase tốn token
|
||||||
|
- HOẶC em main solo cho task spec phức tạp cần đọc > 4 reference file (S37 lesson: BE Proposal mirror PE = nhiều reference → em main solo reliable)
|
||||||
|
|
||||||
|
**References:** S37 Implementer BE spawn `a3afd177` (truncate mid-exploration) + memory `feedback_implementer_truncation_mitigation` (heavy scaffold ≥30 file pattern). Cumulative truncation S35 × 3 (mid-MEMORY) + S37 × 1 (mid-exploration) = 4× extend #53.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Checklist debug bug mới
|
## Checklist debug bug mới
|
||||||
|
|
||||||
1. Build pass không? → fail → check using + package version compat
|
1. Build pass không? → fail → check using + package version compat
|
||||||
@ -1028,3 +1060,5 @@ for h in resp.points: # ← .points không phải iterable trực tiếp
|
|||||||
25. Nếu UI audit list show `Đã gửi duyệt → Đã gửi duyệt` lặp gây nhầm → drop dual-phase badge khi state machine self-loop, thay Decision badge + next-target hint parse từ comment (#49)
|
25. Nếu UI audit list show `Đã gửi duyệt → Đã gửi duyệt` lặp gây nhầm → drop dual-phase badge khi state machine self-loop, thay Decision badge + next-target hint parse từ comment (#49)
|
||||||
27. Nếu RAG `search_memory` trả 0 results dù Qdrant green + BM25 có data → `qdrant-client` upgrade xóa `search()` method, bị nuốt silent. Test: `python -c "from qdrant_client import QdrantClient; c=QdrantClient(url='http://127.0.0.1:6333'); c.search"`. Fix: dùng `query_points(query=...).points` (#52)
|
27. Nếu RAG `search_memory` trả 0 results dù Qdrant green + BM25 có data → `qdrant-client` upgrade xóa `search()` method, bị nuốt silent. Test: `python -c "from qdrant_client import QdrantClient; c=QdrantClient(url='http://127.0.0.1:6333'); c.search"`. Fix: dùng `query_points(query=...).points` (#52)
|
||||||
28. Nếu sub-agent (Reviewer/CICD) return PASS verdict bị cut mid-sentence ở "Update MEMORY.md" step → MEMORY > 25KB triggers truncation risk. Mitigation: tight brief ≤ 8K + em main grep verify manual + curate MEMORY pre-spawn nếu > 25KB (#53)
|
28. Nếu sub-agent (Reviewer/CICD) return PASS verdict bị cut mid-sentence ở "Update MEMORY.md" step → MEMORY > 25KB triggers truncation risk. Mitigation: tight brief ≤ 8K + em main grep verify manual + curate MEMORY pre-spawn nếu > 25KB (#53)
|
||||||
|
29. Nếu spawn sub-agent trả `API Error: 529 Overloaded` + `tokens=0` → Anthropic API transient overload, agent KHÔNG chạy. KHÔNG retry loop → em main solo fallback reliable (#54). Phân biệt với #53 truncation (agent chạy đủ token nhưng cut output)
|
||||||
|
30. Nếu sub-agent WRITE truncate NGAY ĐẦU exploration phase (chưa write file, đọc > 4 reference) → heavy spec ~10K + context bloat. Mitigation: brief ≤ 8K + pre-supply reference snippet trong brief HOẶC em main solo nếu cần đọc > 4 reference file (#55)
|
||||||
|
|||||||
Reference in New Issue
Block a user