Files
solution-erp/docs/HANDOFF.md

19 KiB
Raw Blame History

HANDOFF — Brief 5 phút cho session tiếp theo

Tiering rule (S40): giữ 2-3 session gần nhất. Cũ hơn → docs/changelog/sessions/. Full brief history pre-S40 → docs/_archive/HANDOFF-preS40-fullhistory.md.

Last updated: 2026-07-07 (S105 — Bootstrap all-green + BVAAU cross-repo assist (favicon + auth-RCA) + closeout eval-all — docs/memory-only 0 prod-code SE, em-main-led + 3 spawn. Bootstrap: 440 ✓ · detector 36-benign 0-HIGH · 2 monitor RE-REPORT (H2 tự-bắt mồ-côi record CHÍNH NÓ S104 → retro-append ×2 [self-record blind-spot gate-agent] · H1 #53-garble lần-6 → recover-diary, 2 flag → em-main vá 4 derived-flush: skills/README:20 Mig62 + agents/README:3 + session-start:37 flip-chain + session-end:113 trailer→Fable) · Fable VỀ lần 3 (flip-6, ×3 self-report runtime-verified). BVAAU cross-repo (repo BENHVIEN_A_AU, anh gửi — chỉ đụng 1 file disjoint, session BVAAU kia live song song): favicon Home teal-cross → brand thật (trắng+navy #00249b+pip nhà vàng, hệ S81) commit 0cc815b (prod-verify pending CI — curl lúc đóng còn teal cũ) · investigator RCA 3-Q (⚠️ #53 lần-7 → recover-path MỚI: SendMessage-resume khi diary trống): Q1 Home Google "đá-ra" = FE mù session (bundle cũ relative /api trên site tĩnh → 404 → anonymous; hub-side 7-nghi-vấn đều KHÔNG, cookie set đúng) — fix 51c69fb CHÍNH session-BVAAU cùng-lúc, em byte-verify LIVE (Home CtTKjYz2 + CRM1 Cr8wJMpn marker PRESENT) · Q2 CRM1 hở 2 tầng → FE-redirect-home live; API-gate AUTH_ENFORCE_CRM_GATE=true chờ anh (đề nghị bật SAU UAT login ổn) · Q3 User_ID Zalo KHÔNG có trong UI (ProviderUserId backend GIỮ — identity-map). /fable-real nhầm → hủy 0-marker. eval-all: MFE FIT (30-item 1.1% cap) + SUB 85-100% + A7 226/226 + 0-GAP + 0-AS-hit + guard #53-recover HELD 2/2. State GIỮ: Mig 62 · 89 bảng · 440 test · gotcha 79 · menu 54. 🔴 NEXT anh: (1) BVAAU test incognito Home→Google→kỳ vọng vào Dashboard (vẫn đá-ra → soi LoginAudits/Serilog server-side); (2) quyết AUTH_ENFORCE_CRM_GATE=true; (3) carry S97: UAT incognito "8 MEP Sub Hệ thống solar" + số-phiếu/user vụ PE "lỗi phân quyền"; (4) trường User_ID anh Mỹ = ngoài repo, có hình gửi em truy tiếp. 🔴 NEXT em: favicon BVAAU prod VERIFIED @refine-all cùng phiên (curl 00249b=3/teal=0, CI 0cc815b deployed) · Supplier Phase B 🅿️ PARKED giữ. → log 2026-07-07-S105-bootstrap-bvaau-auth-favicon.md) · Prev S104 (S104 — Session-start audit bắt Mig 62 Supplier docs-lag → reconcile (docs/memory-only 0 prod-code, em-main-led + 2 monitor). Cùng-ngày commit 778fc98 [CLAUDE] Supplier: Mig 62 expand 30-field (16:06, Opus) ship BE+FE 2-app + Mig 62 + deploy Run #488 NHƯNG bỏ closeout docs (STATUS/HANDOFF kẹt "Mig 61/S103"). Session-start /session-start bắt qua governance-detectors 1 HIGH (STATUS Mig=61 disk=62) + 2 monitor (H1 4-mặt PASS + patch-list D1-D4 · H2 5-trục CLEAN: investigator-harvest-in-HEAD verified moved-not-cut + 3 cicd file uncommitted commit-worthy Run #488 bundle admin ChSNAJBK/user Bn2w1znH) + dotnet test 440 PASS re-verified (#65 no-bite). Reconcile: STATUS Mig 61→62 + mega-line + In-Progress S104 + Sub-agents S104-Opus + Supplier-backlog Phase-A + HANDOFF + ef-core SKILL row Mig 62 + commit 3 cicd memory. Mig 62 = Supplier 9→27 field (18 AddColumn) + SupplierType +CaHai=6 + enum SupplierStatus + seed 4 NCC 30-field + FE 2-app SHA-mirror (form 4-section + PathLink NAS-link) — no new table (89), Phase B Excel-auto-map defer. ⚠️ runtime S104=Opus (Fable outage flip-5). State: Mig 62 · 89 bảng · 440 test · gotcha 79 · menu 54. 🔴 NEXT em: commit S104 (2 commit docs/memory CI-skip) + ⚠️ restart CLI nếu S103 đổi command/agent (session-start/end + agents/README) chưa ăn. 🔴 NEXT anh (carry): UAT incognito phiếu "8 MEP Sub Hệ thống solar" [fix 1-3 S97] + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu" Supplier Phase B (Excel upload auto-map) = 🅿️ PARKED theo anh S104 — chờ anh nhắc, KHÔNG tự khởi động. → log 2026-07-06-S104-mig62-supplier-reconcile.md) · Prev S103 (S103 — AI_INFRA 6-broadcast adap (crystallized-backfill + Harness-20 + memory-hygiene) — governance/scripts-only, em-main-led + 2 workflow HMW-ON. /check-email 3 new pulled+verified → /adap-apply hash-MATCH cả 6: Harness-20 §L (dogfood model-note 4-tầng-sweep incl PERSONA + 220K→380K neo-supersede + 2-đầu-catch review bắt 2 DẪN-XUẤT stale-trailer sweep-sót→fixed) · F4 crystallized-backfill NEW scripts/crystallized-backfill.ps1 (measure-then-fill DRY, default target=0=OFF owner-authority, file-floor=UPPER-BOUND honest peak~368K) + budget.json config + budget-table wire · F1/F3 already-met · budget-runloop 2-tầng (Up2 largely-already-met §L.b(c)) · H16 no-key scripts/applied-eval-nokey.ps1 (adversarial-gate fail-closed 3-ca + fault-inject FLIP; mechanism-built numbers-DEFERRED) · memory-hygiene A/B already-met C n/a JS-sandbox. engine §L+§M. 2-workflow: WF1 implement wf_55ef6778-a0d (schema-clean, selftest exit-0 ×2 + teeth) + WF2 review wf_3c5c37cb-aa2 fable-clone (Lane-C PASS returned + Lane-B recover-from-memory PASS, 0-BLOCKING; ⚠️ #53 garble ×3 [investigator + 2 review-lane]→em-main recover, investigator AS-10 garble-curation REVERTED git-backstop). 6 adap-report + 1 adap-request (…53-garble-reasoning-lanes-mitigation — evidenced build-3/3-clean vs review-1/3 → N-lane-redundancy+narrow-schema+em-main-recover) + send-email fc1e22ac selftest-MATCH + STAGE-2 move. ⚠️ runtime S103=Opus (Fable outage lại, per-session flip S98→S101-Opus→S102-Fable→S103-Opus, H5-fallback revert-free). State GIỮ: Mig 61·89 bảng·440 test·gotcha 79·menu 54. 🔴 NEXT em: ⚠️ restart CLI (2 script no-hot-reload-issue-free nhưng session-start/end + agents/README đổi) · mark-decision = codify-only KHÔNG mark (anh chọn S103, như H16/H17/H18; ACTIVE-MARKS giữ 5) · cicd verify Run mới (push có scripts/*.ps1 → CI CHẠY không skip). 🔴 NEXT anh (carry S97): UAT incognito phiếu "8 MEP Sub Hệ thống solar" [fix 1-3 S97] + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu". → log 2026-07-06-S103-crystallized-backfill-harness-20-adopt.md) · Prev S101 (S101 — H18 WF2 closeout + session-start audit — governance/docs-only, em-main-led + 1 review-workflow HMW-ON. WF2 gốc wf_31ea3985-92c MẤT theo CLI-restart (TaskList empty) → đúng report-before-stamp KHÔNG bịa → re-run fresh 3-lane wf_955643c3-f7d → PASS_WITH_CONCERNS 0-BLOCKING: Lane-A detector-teeth PASS (fault-inject 4/4 tái-dựng độc-lập) · Lane-B ledger PWC (1 CONCERN workflows/README:51 nhãn-cũ "ledger orphan-scan" sweep-S100-sót → FIXED S101 + 2 NIT) · Lane-C PARTIAL (codify+n-a-H8+containment first-hand ✓; frontier-hash+reviewer_gate dựa record-S100 do broadcast-inbound VẮNG repo → process-gap). ⚠️ Lane-C #53-garble tái-diễn → em-main recover first-hand KHÔNG re-spawn. Stamp adap-report:5 + engine §J:283; model-note reconcile: runtime=Opus S101 (Fable unavailable, settings pin fable → H5-fallback revert-free, tooling-auditor bắt). 2 monitor RE-REPORT clean (513aa09 baseline). 🔴 NEXT em (CHƯA xong S101): (1) /send-email AI_INFRA run-id wf_955643c3-f7d + 3 flag (reviewer_gate-field-missing · frontier-hash-mismatch · process-gap broadcast-inbound-not-committed) → (2) commit docs-only CI-skip (KHÔNG scripts/src → path-filter #41) + cicd #486 dirty-delta gộp. 🔴 NEXT anh (carry S97): UAT incognito phiếu "8 MEP Sub Hệ thống solar" [fix 1-3 S97] + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu". ⚠️ restart CLI nếu đổi command/agent. PART 2 (/check-email AI_INFRA + /adap-apply, anh-directed): ack batch13 (AI_INFRA ack trọn 13 báo-cáo, SE bắt-kịp H-17, Fable-restore H-8 ghi-nhận) + re-stamp H10 body-hash + frontier flag#2 RESOLVED (AI_INFRA re-stamp 8b6a8354=SE-computed). H19 fable-clone FORMAL ADOPT + RC-stamp RC-…03-07-2026-17-46-35 (2-workflow WF1 wf_5f308fd8-744 + WF2 wf_ed5b972f-a4d PASS_WITH_CONCERNS): 2 command /fable-real+/fable-clone thật/ảo-toggle + marker gitignored + engine §K + session-start BƯỚC 0.5b reader + 4 adap-report; model-tier 12/12 (all-inherit form-valid). Mapping reviewer+investigator-codebase; VACUOUSLY-MET-honest. GAP-3 AS-10 fired-LIVE (WF2 lanes tự-ghi reviewer-memory → dogfood-validate convention). 🔴 NEXT em PART-2 (CHƯA xong): /send-email AI_INFRA (ack-reply + model-tier 12/12 + H19 run-id WF1+WF2 + re-stamp-H10-confirm) + commit docs/.claude-only (CI-skip). ⚠️ restart CLI (2 command fable-* + BƯỚC 0.5b + send-email 6c = no-hot-reload). → log 2026-07-03-S101-h18-wf2-closeout.md + 2026-07-03-S101-h19-fable-clone-adopt.md) · Prev S100 (S100 — Harness-18 adopt + frontier HELD-integrity — governance/scripts-only, em-main-led + WF1 wf_50a817ce-a69 / WF2 wf_31ea3985-92c (IN-FLIGHT lúc đóng). Hash: H18+checklist MATCH ✓ / frontier MISMATCH → HELD (không codify, đề nghị re-stamp) + cả 3 thiếu reviewer_gate field → flag AI_INFRA. Adopt: J.A detector v2 (ratio-band mismatch-only + glob commands/skills, fault-inject 4/4, MED 11→0) · J.B retire _ledger.md (0/15 lifetime + mode-A 0/8, freeze 🧊 reversible, sweep 15 điểm/8 file, orphan = folder-scan) · J.C 2/3 n-a-by-H8 + revisit viết ra · J.D spot-check wired §L.b(i) + REUSE CG-1. Frontier self-audit: cron monthly = ghost-wire THẬT (CronList=0) → honest-retire 5 file (audit thủ-công em-main, vẫn đúng hạn) · 3 script đo GLOB-LIVE · defer D-1/D-2 backlog. Hygiene: F2 SendMessage patch (KHẢ DỤNG lại, runtime-verified) + B1-pointer 130/cron-date + trailer Fable. Checklist 10/12 ĐẠT + 2 n-a-reasoned. 3 adap-report committed. Test 440 ✓ đầu phiên + 2 monitor ALL-PASS/CLEAN (513aa09). 🔴 NEXT em (#1 việc đầu session kế): đọc WF2 (w4xb4vlm2) → fix theo verdict → điền run-id §J + report H18 → harvest reviewer → /send-email AI_INFRA (2 flag trên) → cicd-verify Run mới (push S100 có scripts/*.ps1 → CI CHẠY, không skip). 🔴 NEXT anh (carry S97): UAT incognito phiếu "8 MEP Sub Hệ thống solar" [fix 1-3 S97] + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu". ⚠️ restart CLI (session-start/end + agents .md đổi — no hot-reload). → log 2026-07-02-S100-harness-18-adopt.md) · Prev S98 (S98 — Harness backlog batch ĐÓNG — docs/memory-only, 2 commit 4263d63+8a249c5 CI-skip: Fable-restore gỡ caveat H5.6 (spawn-test ×2 self-report claude-fable-5, H8 runtime-verified) · monthly→2026-08-01 · skill ef-core +Mig 60/61 · re-tier S93/S94→archive-S98 · 3 orphan-append H2 + cicd L1 curate + sleep-compress implementer-frontend · email AI_INFRA. State: Mig 61·89 bảng·440 test·gotcha 79. 🔴 NEXT anh (carry S97): UAT incognito phiếu "8 MEP Sub Hệ thống solar" [fix 1-3 S97] + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu". NEXT em: patch session-start.md F2 SendMessage-note @session-end + monthly count-grep mở rộng commands/*.md (H1 P3/P4). (Flip hồi-tố @S99-start — H1 F1.)) · Prev S97 (S97 — PE finalize 4-fix UAT anh Kiệt FDC buổi live — em-main-led, prod-verified Run #481+#482. (1) badge "không trình tới""Kết thúc tại {finalizeLevelName}" (hiện "Kết thúc tại CCM")+tooltip. (2) đảo default checkbox "Cấp KẾT THÚC" opt-out→opt-in (useState true→false+reset+helper reword+comment-drift fix). Mirror 2-app SHA bcf812fd, 0 BE/mig/test (BE tôn trọng cờ FE; param default=fallback). Workflow wf_0e01fdba-209 (reviewer PASS 0-issue). Commit 1c8fb6a. cicd #481 PASS byte-level #77: JS admin COYAX-yQCf0o8dx8/user 0MU-kb4Nx8rppRAK · NEW Kết thúc tại+helper PRESENT / OLD không trình tới+Đã BỎ tick ABSENT · Mig 59/88 frozen · smoke 200×3. Lesson: #53 return-garble lần-4 (cicd trả memory-curation thay verdict → recover-from-diary NO re-spawn) · BE-honors-explicit-flag → đảo-default chỉ-FE zero-BE-churn. (3) endsBeforeCeo config→RUNTIME (Mig 60 EndedByLevelFinalize 8037fa0 #482 cross-stack): phiếu opt-out finalize→lên CEO nhưng sơ đồ báo sai "không qua CEO" (endsBeforeCeo suy config). Fix field runtime set-nhánh-finalize → DaDuyet đọc runtime; 4 projection + FE gate + backfill; test 440 (repro peFinButWentCeo) + reviewer PASS 0-issue + cicd #482 bug fixed LIVE (PE-detail endsBeforeCeo=False). gotcha #78. (4) badge " Đã được CEO duyệt" (9e12e80 #483 FE-only): phiếu DaDuyet+!endsBeforeCeo→PeFinalizeChip badge (đối xứng fix-3, tận-dụng cờ runtime, 0 BE/mig, mirror 2-app+6 site, byte-#77 PRESENT). (5) Mig 61 backfill fix (fb2dfa9 #484 data-fix): check A/005 "CEO duyệt chưa" → A/005/A/008 finalize-CCM KHÔNG qua CEO nhưng badge sai (Mig 60 backfill nhầm bảng Approvals→Changelogs). Mig 61 đúng bảng → prod A/005/A/008 flag 0→1 endsBeforeCeo-True (cicd #484), A/010 control. gotcha #79. State: Mig 61·89 bảng·440 test·gotcha 79·menu 54·bundle admin mEGqlNWc/user Dnrp4PU1 (Run #484 data-fix, #69-rebuild rotate — CeTA7Z82/CGaAyXen = #483)·prod 21 NCC/17 user. 🔴 NEXT anh: UAT incognito phiếu "8 MEP Sub Hệ thống solar": (a) sơ đồ hết "không qua CEO" + Bước 3 CEO KHÔNG mờ [fix-3], (b) badge+checkbox [fix 1-2] (+ vụ cũ "lỗi phân quyền": số-phiếu+user). 🔴 NEXT em: monthly re-tier mega-line (giờ 5-blurb). → log 2026-07-01-S97-pe-finalize-wording-default-flip.md) · Prev S96 (S96 — buổi UAT LỚN anh Kiệt/chị Trà/anh Chương live + monthly-audit, em-main-led, 5 commit prod-verified. (1) Monthly drift audit 881783c (docs-only CI-skip): ef-core SKILL Mig→59 + rows 57/58/59 · skills/README + docs/CLAUDE Budget-removed · vocab-alias-map.md MỚI (3 fork + $ExcludeExact) · re-tier mega-line 5→3 (S92/S91→archive, conservation delta=0 BOM) + hoist UAT-carry→blockers · FD distill (H17 strike-1 CLEARED L1 26129→21492B + archive/_INDEX/gist + Lessons L1). Workflow wf_2d687d27 4-cluster (reviewer bắt #74-drift + AS-10 residual reverted). detector 27→25. (2) Import NCC DONGDUONG ba4b8e0 (Excel anh Kiệt; 3 NCC đã sẵn → +1 no-mig prod 21 NCC Run #477); backlog 15-18 field→Next-up. (3-5) 3 PE bug-fix UAT: e657faa ô "KẾT THÚC quy trình" (S89-auto)→opt-out bỏ-tick-được (2-tier grant/exercise +applyLevelFinalize, #478) · 36cbf8b chuông tự-sạch noti "cần duyệt" (mark-read ExecuteUpdate BE-only, #479) · 0c2f9f6 khóa sửa giá PRO/CCM sau gửi-duyệt ("duyệt là fix" non-admin Nháp/TraLai+Admin-override, +4 test, #480). Test 434→440. Delete-sau-duyệt = ĐÃ chặn sẵn. Checkbox "ko-được" = browser-cache (verify byte-level prod 0MU-kb4N chứa fix; incognito golden). State: Mig 59 · 88 bảng · 440 test (45D+395I) · gotcha 77 · menu 54 · bundle admin COYAX-yQ/user 0MU-kb4N · prod 21 NCC/17 user. 🔴 NEXT anh: ⚠️ restart CLI · UAT incognito checkbox + cho số-phiếu/user vụ "lỗi phân quyền vào phiếu". 🔴 NEXT em: cicd S-tag-drift S97/S98→S96 reconcile (closeout) · monthly re-tier mega-line (giờ 4-blurb). Lessons: verify-deployed-artifact-byte-level (cache≠deploy; incognito golden — gotcha #77) · #53-return-garble ×3 recover-from-agent-memory (instruction-fix "return-verdict" ăn) · 2-tier-permission · spec-change→update-test. → log 2026-07-01-S96-uat-pe-fixes-monthly-audit.md) · Prev S95 (S95 — Harness-17 adopt (Vòng tự-cải-thiện bộ-nhớ Đo→Tinh-chỉnh→Kiểm) — governance-only 0 prod code, em-main-led 3-workflow. /check-email AI_INFRA (0 directed mới; H16 áp trọn S93) → /adap-apply H17 (2 broadcast hash-MATCH reviewer_gate:PASS). 10/10 mục 🔴: REUSE-cite A2=§H MFE/C3=D9/CG-2=value_protect/archive=§A + build mới scripts/memory-selfimprove-audit.ps1 (C1 spec-audit NO-API, runtime-verified bắt frontend-designer over-cap thật) + .claude/governance/reinject-ledger.md (B2 CG-1 N=3) + engine §I + session-start §2.1.7/session-end §L.b(c) wire + HCV alias no-seed. 3-workflow: WF1 wf_f085d7c4-d78 ground-truth + WF2 wf_8e73c1d6-ee6 3-lane PASS + WF3 wf_6f44eddf-680 fault-injection 13-inject teeth-proof + integration + cross-doc (0 application-defect). 2 commit: 18a17f5 (cicd Run #476 PASS prod 200×3 bundle 0T6vVJST/BGXEVZO6 Mig 59) + 65b434a (docs-only CI-skip). adap-report + 2 email AI_INFRA (54789e19+8c94fa34). Dogfood AS-10 4-fire reverted (git-diff = net thật; WF3 explicit-return-only STILL self-wrote → instruction-fix NOT 100%, E-006 recurrence, guard HELD 4/4; cicd-monitor diary KEPT = legit normal-spawn). Lessons: fault-injection--RepoRoot-temp chứng checker-teeth · Lane B #53 empty→em-main self-gate. State: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · prod 17 user/7 NCC. 🔴 NEXT anh: ⚠️ restart CLI (§2.1.7 + §L.b(c) H17-loop wire runtime — command .md no hot-reload). 🔴 NEXT em: frontend-designer distill (WATCH strike-1 = H17 loop's live finding, chờ strike-2/anh) · monthly 2026-07-01 (hôm nay) re-tier STATUS/HANDOFF mega-line + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map. Pending product (carry): Section B cột Dự-án · Ngưỡng CEO Mig 54 · "C" chuyển phiếu→dự án. → log 2026-07-01-S95-harness17-adopt.md) · (S93-S94 blurb đã tách → docs/_archive/STATUS-HANDOFF-tier-S98-2026-07-02.md, re-tier S98; session ≤S90 → docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md + docs/changelog/sessions/, re-tier S94)


📚 Session detail cũ (S84 → trở về trước)

Brief 4 session gần nhất (S98/S97/S96/S95) = mega-line trên (re-tier S95 defer monthly 2026-08-01). Blurb S93-S94 → docs/_archive/STATUS-HANDOFF-tier-S98-2026-07-02.md (re-tier S98). Chi-tiết per-session S84↓ đã tách (re-tier S94) → docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md + bản đầy-đủ ở docs/changelog/sessions/.