Files
solution-erp/docs/HANDOFF.md
pqhuy1987 88bd8e666d [CLAUDE] Docs: S115 presence-not-age adopt closeout (STATUS/HANDOFF/session-log/synthesis/WAL)
Session-end closeout for S115 (AI_INFRA presence-not-age selector guardrail +
rec-3 hmw.js STOP-HARD, shipped 81b59f0, CI #385 PASS). STATUS + HANDOFF
mega-line blurb, session-log, ensemble-synthesis (closes H10/HCV gate), WAL
reset to clean template. No canonical-count change (Mig 65 / 89 tables / 486
tests / gotcha 81). Owner backfill target 210K + reviewer/cicd harvest already
in 81b59f0. §5.0 squashed the trailing wal: flush.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 13:01:14 +07:00

13 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-13 (S115 — **Adopt AI_INFRA presence-not-age guardrail (`ab6c387e`) + rec-3 hmw.js STOP-HARD — governance/tooling-only 0 prod-code, em-main-led + 7 spawn, 1 commit `81b59f0` pushed CI #385 PASS 5m23s bundle FROZEN, HMW-ON.** Pipeline: `/check-email` 2-new → `/fable-clone reviewer` 5-lane (`wf_b621aac4-f0b`) → spec → `/fable-real reviewer` **PASS-WITH-FIXES** (bắt **M2 = D3 contiguity-inversion bug mà 5-lane ensemble bỏ sót**; M1 grep hẹp) → owner **ALL-3** → HMW em-main-solo. **D2** hmw.js unknown-role STOP-HARD up-front (giữ null role-less; node-check + stub 7/7) + 5-doc sync. **D3** archive-gate value_protect advisory→pre-selection hard-skip (non-contiguous byte accum; fault-inject ALL PASS + A7 242/242 DRY-RUN). **D1** reinject-ledger stamp + 3 honest-notes. Verdict: reinject(i)+MFE-age-band(iii) đã COMPLIANT, chỉ archive-gate hardened; D3 = defense-in-depth KHÔNG leak-closure. Owner: backfill 0→**210K**. #53-garble ×2 recover 0-loss. AS-10 reviewer self-write KEPT. **🔴 NEXT anh (carry S114 UAT — incognito, cache≠deploy #77):** (1) giaTri single-winner đổi budget→bid; (2) UX chọn winner per-ô grid Detail×NCC; (3) nit chọn-NCC-chưa-nhập-giá = no-op+toast-sai; (4) PE "lỗi phân quyền" — **số-phiếu + user**; (5) BVAAU (`AUTH_ENFORCE_CRM_GATE` + User_ID). **🔴 NEXT em:** watch AI_INFRA phản-hồi email `8b9dc5165d5a` (presence-not-age report) · **inv-cb L1 25237/25600 (98.6%) curate NEXT** (near auto-inject cap) · cicd/harvest/tooling L1 self-compact nếu vượt · monthly re-tier 2026-08-01. → log `2026-07-13-S115-presence-not-age-adopt.md`) · **Prev S114** (S114 — **PE multi-NCC per hạng mục SHIP PROD (`d436af2`) — anh Kiệt: ≥2 NCC-TP trúng thầu/1 hạng mục, mỗi nhà 1 giá riêng — em-main-led 6-bước fable-clone→hmw→verify, 4 workflow + 3 spawn, HMW-ON, 1 commit.** invest 4-lane (**3 trục winner**, feature = `Quote.IsSelected` Mig12-DORMANT, KHÁC Mig58 liên-danh) → anh Kiệt **4-decision** (D1 SUM · D2 thay-thế IsWinner-derived · D3 giá-gốc · D4 1HĐ/NCC → **0 bảng/cột mới**) → review 3-lane (6 adjustment A1-A6) → hmw implement staged → **verify 2-lane BẮT 1 MUST bug** (DeleteQuote/DeleteDetail sót re-derive IsWinner → HĐ giaTri=0 phantom, **gotcha #81**) → em-main fix test-before. **Mig 65** backfill 2-chiều. BE command per-detail `{detailId, supplierIds}` + re-key 5 financial-SUM→IsSelected + giaTri bỏ detailsSum. FE per-cell grid Detail×NCC 2-app SHA `ae3788e9`. **486 test.** ⚠️ **#53-garble ×5** all recover-from-disk (`parallel()`+disk-verify; WRITE-lane garble≠mất-code). cicd garble→em-solo verify: bundle `D51OYyGV`/`BVdssm5S` rotate ×2 + byte-verify PRESENT + smoke 3/3 200. **🔴 NEXT anh Kiệt (UAT prod INCOGNITO — cache≠deploy #77):** (1) **giaTri phiếu single-winner đổi budget→bid** (theo D4, đúng hơn: giá HĐ=giá thầu thực) — verify số HĐ nếu từng UAT số cũ; (2) **UX chọn winner nay PER-Ô** (grid Detail×NCC, click ô để chọn NCC thắng hạng mục ĐÓ) thay picker phiếu-wide cũ; (3) **nit non-blocking:** chọn NCC winner CHƯA nhập giá = no-op + toast-success-sai (BE chỉ flip quote CÓ SẴN) — **nhập giá trước rồi chọn**; (4) carry PE "lỗi phân quyền vào phiếu" — số-phiếu+user; (5) BVAAU carry (incognito + `AUTH_ENFORCE_CRM_GATE` + User_ID). **🔴 NEXT em:** harvest S114 done (4 run-trace + 2 reviewer diary) · follow-up nit FE winner-toggle-gate-quote (non-blocking) · watch AI_INFRA 2 email (`01d9096e` S110 + `9cdcda2f3c83` S111) · monthly re-tier 2026-08-01 · inv-cb L1 25237/25600 (98.6% WATCH — near cap, curate phiên tới). → log `2026-07-12-S114-multi-ncc-per-hangmuc.md`) · **Prev S113** (S113 — **Supplier import v2 SHIP PROD (Run #497 PASS 5m14s) — anh Kiệt owner, em-main-led + fable-clone-invest-ensemble + HMW-Opus implement + 6 spawn, 1 commit `5fa11b5` pushed.** Flow: `/fable-clone investigator-codebase` invest 5-lane (4-structured + 1-garble#53-visibility→em-solo-grep-recover) → spec-3-mục → anh 3-decision (**D1=A** Mã-NCC=Code · **D2** Code-cổng-public/MST-cảnh-báo-mềm/existing-public-giữ · **D3** nới-quyền Suppliers.Update) → BE⟂FE disjoint parallel → test-specialist 477 → reviewer GO-WITH-ADJ → deploy. **Mig 64 `AddSupplierPublishState`:** +IsPublic + backfill 37/37 prod→public + filtered-unique `[Code]<>''` + PublishSupplierCommand + `GET /import/template` (ClosedXML) + authz Suppliers.Update. **FE 2-app:** badge · Công-bố · filter · Tải-file-mẫu · Mã-editable · MST-cảnh-báo · picker-PE+HĐ-lọc-published. **4 BUG caught+fixed PRE-PROD (giá trị multi-agent):** #53-visibility-recover · **null-Code NRE `NewSupplier` #80** (test-specialist bắt, path R4 lõi 500-cả-batch, `!`-che build-0/0) · authz-403 Import-nút [em verify-chéo] · draft-leak-picker + CreateSupplier-quên-IsPublic [reviewer 2 must-fix]. ⚠️ **#53-garble ×2** (invest-lane + impl-be-first-return → SendMessage-resume 1/3 finish sạch). cicd **#497 PASS**: bundle admin `Cixlt_MA``acprMqfB` / user `BhBOG1dn``Ck3BTDdA` · byte-verify `Tải file mẫu`/`Đã công bố`/`Nháp` PRESENT · Mig 64 prod 37/37 · smoke 200 + endpoint-401-live. **🔴 NEXT anh Kiệt (UAT):** (1) test luồng: import → lưới cột **Mã editable** → NCC **để trống Mã = nháp/ẩn**, có Mã = công bố → Confirm → danh sách thấy **badge** → bấm **"Công bố"** gán Mã cho nháp → thử **tạo HĐ** xác nhận dropdown **chỉ NCC đã công bố**; (2) upload file **"Database NCC" ĐẦY ĐỦ** (file test chỉ 4 dòng — em đã bake đúng 30 cột header nên không lo "Sai layout") xác nhận LayoutValid=true; (3) carry PE "lỗi phân quyền vào phiếu" — **số-phiếu + user**; (4) BVAAU carry (incognito + `AUTH_ENFORCE_CRM_GATE` + User_ID). **🔴 NEXT em:** harvest run-trace 3-ensemble + 6-spawn @session-end (agents self-updated, stamp `[engine: fable-clone-ensemble/HMW-Opus · S113]`) · watch AI_INFRA 2 email (`01d9096e` S110 + `9cdcda2f3c83` S111) · monthly re-tier 2026-08-01 · **OQ4 open** (dedup MST-A-Code-B = silent MST-precedence, FillNulls-safe — anh refine nếu muốn conflict-error) · nice-to-have reviewer (stale-comment service:31-34 + Mig64-Down-rollback-edge + template-roundtrip-test). → log `2026-07-12-S113-supplier-import-v2.md`) · **Prev S112** (S112 — **2 FEATURE SHIP PROD (Run #496 PASS) — Supplier Excel-import Phase B + PE sign-off A1/EDGE-5/opinion-history — em-main-led, 3 fable-clone ensemble Opus MAX + 8 spawn, HMW-ON, lead=Opus owner-choice, 4 commit pushed.** Owner-directed: `harness_floor` 30K→100K + measured→55K (21K cũ under-count, sister-parity ~60-71K). **Supplier (`e100ef0`, Mig 63):** invest `wf_e2f23a84`→5-decision→BE(OrdinalIgnoreCase dedup+all-or-nothing+parser-header-fingerprint+fill-nulls-safe)+FE 2-app→close-review `wf_75d6149b` GO→adjust bake-30-token+`.Normalize(FormC)`. **PE (`a829d0d` code-only):** invest `wf_fd8f2bfe` (root=S60-bypass-auto-ký-hộ)→anh Kiệt 6-decision→close-review `wf_7df56b89` GO-WITH-ADJ (L2 EDGE-5-guard-đỉnh-method + A1-mở-CEO-skip)→reconcile(finalize-theo-quyền + `!isAdmin&&!isSystem` admin-exempt)→BE(A1 minOwn+EDGE-5+history→Changelog)+test 4-update/8-new→reviewer GO. **Deploy #496:** bundle `Cixlt_MA`/`BhBOG1dn` · Mig 63 2/2-col · smoke all-200 + import-route live · 458 test. #53-garble ×3 recover (SendMessage-resume + em-main byte-verify). **🔴 NEXT anh Kiệt (UAT):** (1) **A1 bỏ auto-duyệt-khi-gửi** — phiếu 1-bước creator-là-cấp-cuối nay bấm Duyệt thêm 1 lần (đúng ý bám-quy-trình, KHÔNG lỗi); (2) **upload file Excel "Database NCC" THẬT** trên DEV/prod xác nhận LayoutValid=true trước dùng chính-thức (structure scout khớp + NFC handled, nhưng file-thật end-to-end CHƯA test — nếu báo "Sai layout" thì hộp đỏ FE có "Header nhận được" để copy sửa 1 vòng); (3) carry PE "lỗi phân quyền vào phiếu" — số-phiếu + user; (4) BVAAU carry (incognito + `AUTH_ENFORCE_CRM_GATE` + User_ID). **🔴 NEXT em:** follow-up nhỏ non-blocking (FE-Import-guard role-gate 2-app + 2 stale-comment + test-NormalizeJoin-FormC) · harvest run-trace 3 ensemble @full session-end (agents self-updated diary; em-main stamp `[engine: fable-clone-ensemble · Opus-S112]`) · watch AI_INFRA email · monthly re-tier 2026-08-01. → log `2026-07-12-S112-supplier-import-pe-signoff.md`) · **Prev S111** (S111 — **Adopt H22 WAL session-continuity — governance/tooling-only 0 prod-code src, 3 commit pushed (`318a271` bootstrap + `8aa3869` adopt 30-file + closeout), HMW-ON.** Pipeline H21-chuẩn: 1-new broadcast hash 4/4 → invest-**Fable** 14N 0-garble → spec lead-3-chỉnh (⭐ **hook PS1** — PATH 3-context ngược nhau, bash rơi WSL-hỏng = chết-mọi-lượt fail-open-che) → WF `wf_5ba3daf6-fe0` 3-worker-**Opus** RUN-TRACE → reviewer-**Fable PASS_WITH_FIXES** 0C·1M·7m 0-garble → 8/8 fix (+detector C5). ⚡ **Stop-hook HOT-RELOAD FIRE ×2 CÙNG PHIÊN** (`12071c5` 7s-sau-ps1 + `67be443` reviewer chứng-kiến-SỐNG; fault-inject 2-ca; N.3 VERIFIED-RUNTIME; ENV-DEP data-point #2/#3) + **squash §5.0 dogfood-THẬT K=2** + `/pause`·`/tiep` live. Mark **AH thứ 6** `RC-…12-07-2026-11-43-45` + **D10 → AS-6 taxonomy ĐỔI từ #495** (agent-memory/runs hết trigger CI). Email `9cdcda2f3c83` + adap-report + STAGE-2 ×2. 🟩 cicd **Run #495 PASS 5m11s** (FROZEN ×6 · deploy.yml self-change hợp-lệ). **🔴 NEXT anh (H22 pilot — mỗi cái 1 lần là đủ):** (1) phiên MỚI mở lên xem BƯỚC 0.7 báo "WAL sạch" + sau 1-2 turn `git log --grep="^wal:"` xem hook còn fire; (2) thử **kill giữa mạch** (đóng CLI khi em đang làm dở) → phiên sau gõ `/tiep` xem nối đúng; (3) đổi-tài-khoản rồi `/tiep`; (4) pause-roundtrip: `/pause` giữa 1 workflow thật → `/tiep` relaunch-cắt-gọt; (5) carry PE "lỗi phân quyền" — **số-phiếu + user**; (6) BVAAU carry: incognito + `AUTH_ENFORCE_CRM_GATE` + hình User_ID; (7) Supplier Phase B 🅿️ PARKED. **🔴 NEXT em:** watch AI_INFRA phản hồi 2 email (`01d9096e` S110 + `9cdcda2f3c83` S111) + adap-request hot-reload (giờ có data-point #2/#3 bổ sung) · L1 compact còn 3: fe-designer 21.5K · inv-cb 20.97K · impl-be 23.9K WATCH (cicd/harvest/tooling ĐÃ tự-compact S111) · monthly re-tier 2026-08-01. → log `2026-07-12-S111-h22-wal-adopt.md`) · **Prev S110** (S110 — **Adopt H21 per-invocation + spec-file + MTv3 owner-choice — governance/docs-only 0 prod-code, 6 commit pushed (`162f0b9`→closeout), HMW-ON.** 4 msg AI_INFRA hash 4/4 → adopt đúng lệnh anh: invest-**Fable** (7 nuance + SPEC) → lead ghi **spec-file dogfood run-1** → WF `wf_0c3b307f-a64` 3-worker-**Opus** (2 command per-invocation + engine §K.E + runbook) → reviewer-**Fable PASS_WITH_FIXES** 5M-fixed (M2 boundary-gap → **VALID_ROLES 10→12 anh-directed**). Mark MỚI `RC-…11-07-2026-20-42-01` stamped (row H19 → 📦). Marker fable-real XÓA. #53-garble ×2 Fable-lane → SendMessage-resume 3/3. Email `01d9096e` + 2 adap-report. cicd #493 PASS + #494 (spot-check bắt) verify. **🔴 NEXT anh:** (1) ⚠️ **RESTART CLI** — 4 command đổi semantics (`fable-real` · `fable-clone` · `session-start` 0.5b/0.6 · `ultra-on`) + 2 persona monitor vá pointer (EDIT-agent-tồn-tại no-hot-reload); engine-đắt từ nay = **`/fable-real|/fable-clone <vai> <đề-bài>`** (per-invocation, 0 marker); (2) carry PE "lỗi phân quyền" — **số-phiếu + user**; (3) BVAAU carry: incognito + `AUTH_ENFORCE_CRM_GATE` + hình User_ID; (4) Supplier Phase B 🅿️ PARKED. **🔴 NEXT em:** watch AI_INFRA phản hồi email `01d9096e` + adap-request hot-reload (`/check-email` phiên tới) · 4 L1 vượt self-target 17.1K slot-compact (fe-designer 21.5K · cicd · harvest · inv-cb) + impl-be 23.9K WATCH · monthly re-tier 2026-08-01. → log `2026-07-11-S110-h21-mtv3-adopt.md`) · **Prev S109** (S109 — **Sleep-recovery P1 RESUME→DONE (scope-truth 16→2) + bootstrap all-green — memory/docs-only 0 prod-code, em-main-led + 5 spawn (2 monitor + H2-propose + reviewer-Fidelity + cicd-AS6), HMW-ON + fable-real-ON, commit `f5a5c3e` + closeout.** Phase-0 re-verify bắt **14/16 file scope-pause ĐÃ covered** bởi `2026-05.gist.md` gộp-kỳ S70 `f36aab8` (header source-verbatim + git-date proof unchanged-since-gist; phiên-pause match gist theo TÊN-file 1:1 → tưởng chưa-nén) → SKIP đúng guard "tránh nén lại"; scope thật = 2 file (tooling+harvest 2026-06) → pipeline Cách-B trọn: H2 propose sạch → lead distill 2 gist `distill-gen:1` (6,141/6,544B) → coverage-diff PASS + pointer 10/10 + G-009 clean → reviewer **Fable-real deep-pass PASS_WITH_FIXES 3-fix applied** (14-entry-từ-disk · +8.9KB arithmetic · ERD-§16+-còn-pending; **meta-lesson 3-bề-mặt-lỗi NGOÀI body coverage-diff MÙ: metadata-count / số-tự-tính / N-A-fact-claim**) → **`last_sleep_at = 2026-07-10`**. Verbatim FROZEN pure-append. Archive-gate **12/12 under-cap 0-strike** + A7 233/233 + spot-check 4/4 + 0-garble 5/5. ⚠️ **AS-6 hit (duy nhất):** `f5a5c3e` chứa `memory-budget.json` (`.json` ngoài paths-ignore) → CI **Run #492 trigger** dù 0-code — path-filter INTACT; 🟩 cicd **PASS 5m21s**, bundle **FROZEN-streak ×3** `BVyH-FY7`/`EDsZebvn` (khỏi hoist), Mig 62/89 frozen, smoke 3/3, AS-6-reasoning CONFIRMED (pattern lặp #490 cùng budget.json). user-memory +`feedback_resume_premise_reverify` (32). **🔴 NEXT anh:** (1) 🧊 ~~fable-real VẪN ON — `/fable-clone` về ảo~~**H21 S110 ADOPTED: marker RETIRED — engine-đắt = per-invocation `/fable-real|/fable-clone <vai> <đề-bài>` (anh gõ kèm vai; ⚠️ restart CLI để 2 command mới ăn runtime)**; (2) carry PE "lỗi phân quyền" — **số-phiếu + user**; (3) BVAAU carry: incognito test Home→Google + quyết `AUTH_ENFORCE_CRM_GATE=true` + hình User_ID anh Mỹ; (4) 🔸 muốn per-quý re-distill 14 file 2026-05 (ép-đè-guard `distill-gen:2`) → gõ đích-danh, mặc-định KHÔNG; (5) Supplier Phase B vẫn 🅿️ PARKED. **🔴 NEXT em:** `/check-email AI_INFRA` (watch phản-hồi adap-request `registry-hot-reload` S108) · watch cicd L1 (+#492 record) sát self-target 17.1K + impl-be L1 23.9K (93.6% autoinject-cap, idle từ 06-25) · monthly re-tier mega-line 2026-08-01. → log `2026-07-10-S109-sleep-recovery-p1-resume.md`) · **Prev S108** (S108 — **Fable-real FIRST-REAL-RUN (H19 dogfood) + runbook 60KB + email-chain AI_INFRA — governance/docs-only 0 prod-code, 4 commit pushed (`69957fd`/`f1af05c`/`5d13b48`+closeout), HMW-ON + fable-real-ON.** Email-chain: 0-new · **adap-request MỚI hot-reload** (S27-lesson thu hẹp, chờ AI_INFRA verify n=2) · send-email `8d14405f` selftest-MATCH. **Runbook `docs/governance/fable-real-runbook.md` 60KB** (hàm/biến/checklist 2-lane × 2-mode, AC 8-tiêu-chí, dogfood-form, 8 anti-pattern — draft 4-worker-Opus tier-2 `wf_2f85b3f6-3dc` + em-main assemble; 2 bẫy Workflow-tool tự-fix: args-STRING parse-guard + `tier:`-hmw-only→`model:'opus'`). **First-real-run:** 2 judge SINGLE-FABLE 2-trục theo chính runbook → invest PARTIAL 103/111 (bắt bẫy-honesty hmw.js:31 + meta-drift 2-tầng) · reviewer FAIL Smart-Friend (1C+4M, core SOUND) → **37/37 fix + AC 8/8** + engine §K/K.D note-supersede + harvest 2-entry `[engine: fable-real-single · Fable-S108]`. cicd **Run #491 PASS** (bundle FROZEN `BVyH-FY7`/`EDsZebvn`#69 frozen-streak ×2; path-filter 2-chiều ✓). 0-garble 7/7. **🔴 NEXT anh:** (1) 🔴 **marker fable-real VẪN ON** *(🧊 H21 S110: retired — per-invocation)*; (2) carry PE "lỗi phân quyền" — **số-phiếu + user**; (3) BVAAU: incognito test + `AUTH_ENFORCE_CRM_GATE` + hình User_ID; (4) 🌙 sleep-recovery consent (8d, INFORM ×3); (5) Supplier Phase B PARKED. **🔴 NEXT em:** ⏸️ **sleep-recovery TẠM DỪNG giữa Phase-1 (anh stop 07-10 post-S108):** scope ĐÃ CHỐT qua AskUser = "Kỳ-đóng đầy đủ" 16-file/6-agent (cicd 2026-05-q2/q3/q4/runs · impl-be 2026-05-q1..q4 · inv-cb 2026-05-q1..q4 · reviewer 2026-05-q1/q2 · tooling 2026-06 · harvest 2026-06 — SKIP mọi 2026-07 kỳ-sống + baseline-history distilled-form) + guard 0.3 PASS 16/16 gen-0 + lượt-A cicd propose đã giao harvest-curator (proposal trong transcript nó) → **resume `/sleep-recovery-memory-l2` phiên sau từ Phase-1 lượt-A** (0 gist đã ghi · verbatim nguyên · `last_sleep_at` CHƯA đổi = vẫn 2026-07-02) · watch AI_INFRA phản hồi adap-request hot-reload (`/check-email` phiên tới) · harvest-curator L1 19.4KB + cicd 20.9KB self-compact @closeout kế · dùng runbook cho mọi lượt phán-quyết tới (real khi marker ON *(🧊 H21 S110: nay = khi anh gõ lệnh kèm vai)*). → log `2026-07-10-S108-fable-real-first-run-runbook.md`) · **Prev S107** (S107 — **+office-document 12th sub (anh giao "Sub chính" Office) VERIFIED-RUNTIME cùng-phiên + reconcile S106-leftover — governance/docs-only 0 prod-code, em-main-led + 4 spawn, 4 commit pushed.** Bootstrap all-green (440 ✓ · detector 36-benign · 2 monitor ALL-PASS/CLEAN · Fable VỀ lần 4 flip-8 ×5-self-report) → **reconcile `1eea51b`** (S106 leftover 7-file gộp flip-chain 1-owner + ERD →62 ×2) → **+office-document `21387cd`** (OD1OD10 · skill docx·xlsx·pptx·pdf+form-engine · wire 14-file roster 11→**12**, VALID_ROLES 9→**10** · cicd **Run #489 PASS** bundle admin `BVyH-FY7`/user `EDsZebvn` Mig 62/89 frozen) → **spawn-test `86a34d5` VERIFIED-RUNTIME cùng-phiên** (registry HOT-RELOAD agent MỚI — S27 lesson thu hẹp còn EDIT-agent/command; PASS OD1/OD4/OD5 template thật; **finding: template `wwwroot/templates` 0-placeholder `{{field}}` mẫu-blank — mapping ở render-engine hoặc chưa làm, câu hỏi mở khi đụng form-engine**). Closeout: §L.a 0-AS-hit · **#53 guard HELD 5/5 return-sạch 0-garble (phiên sạch đầu sau ×11)** · spot-check 3/3 PASS · budget.json re-measure S107 (harvest 18.1K + cicd 20.2K = compact-candidates). **🔴 NEXT anh:** (1) carry PE "lỗi phân quyền vào phiếu" — vẫn chờ **số-phiếu + user**; (2) BVAAU carry: test incognito Home→Google + quyết `AUTH_ENFORCE_CRM_GATE=true` + hình User_ID anh Mỹ; (3) 🌙 consent `/sleep-recovery-memory-l2 all` (8d quá hạn, em không tự chạy); (4) Supplier **Phase B vẫn 🅿️ PARKED** — khi anh nhắc, office-document sẵn extract Excel→spec. **🔴 NEXT em:** task Office (docx/xlsx/pptx/pdf input/output) → delegate 📄 office-document theo decision-tree · harvest-curator + cicd L1 compact @closeout kế · form-engine template-0-placeholder = câu-hỏi-mở (investigator grep render-path khi cần). → log `2026-07-10-S107-office-document-12th-sub.md`) · **Prev S105** (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-yQ`→**`Cf0o8dx8`**/user `0MU-kb4N`→**`x8rppRAK`** · 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/.