From e35066016fcca7905b993ed93e897fd4a122a12d Mon Sep 17 00:00:00 2001 From: pqhuy1987 Date: Fri, 3 Jul 2026 18:22:28 +0700 Subject: [PATCH] [CLAUDE] Docs: S101 check-email AI_INFRA + H19 fable-clone formal adopt + model-tier 12/12 - check-email batch13 ack (SE caught-up H-17, Fable-restore H-8 recognized) + re-stamp H10 body-hash 5f511fe5->5f8b8504 (no-strip->canonical) + frontier flag#2 RESOLVED (AI_INFRA re-stamped 8b6a8354=SE-computed) - model-tier bundle 07-03: 12/12 (all-inherit form-valid; v2-pin-simple not-adopted) + Q1/Q2 documented + selftest-stamp -> send-email 6c - H19 fable-clone FORMAL ADOPT + RC-stamp RC-pqhuy1987-03-07-2026-17-46-35: 2 command fable-real/fable-clone (that/ao toggle, semantic-inverse) + marker gitignored + engine SS-K (K.A-K.D + 3 floor-fidelity gap) + session-start BUOC 0.5b reader (WF2-Lane-A fix marker-write-only) + 4 adap-report - 2-workflow Harness-9: WF1 wf_5f308fd8-744 SOUND_WITH_CONCERNS (lost-to-interruption->resume-cached) + WF2 wf_ed5b972f-a4d PASS_WITH_CONCERNS 0-BLOCKING - mapping reviewer + investigator-codebase; VACUOUSLY-MET-honest (all-inherit->0 runtime-delta; value=future-proof-floor + anti-consensus-catch NOT cost; nac designed+will-dogfood) - GAP-3 AS-10 fired LIVE (WF1+WF2 lanes auto-harvested agent-memory -> dogfood-validate convention-not-mechanism; harness-sanctioned, verified, KEPT) - email AI_INFRA harness-19-adopt-plus-model-tier (selftest-stamp 6c PASS) Co-Authored-By: Claude Opus 4.8 --- .../investigator-codebase/MEMORY.md | 1 + .claude/agent-memory/reviewer/MEMORY.md | 3 ++ .claude/commands/fable-clone.md | 15 +++++++ .claude/commands/fable-real.md | 26 ++++++++++++ .claude/commands/send-email.md | 1 + .claude/commands/session-start.md | 8 ++++ .claude/governance/ACTIVE-MARKS.md | 1 + .gitignore | 5 +++ broadcasts/_index.md | 4 +- ...fra-to-se-batch13-ack-stamp-and-answers.md | 36 ++++++++++++++++ ...fra-harness-10-flat-refine-adopt-report.md | 2 +- ..._infra-harness-19-adopt-plus-model-tier.md | 42 +++++++++++++++++++ docs/HANDOFF.md | 2 +- docs/STATUS.md | 3 +- .../2026-07-03-S101-h19-fable-clone-adopt.md | 33 +++++++++++++++ ...2026-07-03-Agent-harness-19-fable-clone.md | 29 +++++++++++++ ...6-07-03-Governance-checklist-model-tier.md | 4 ++ ...-07-03-Governance-model-tier-fable-opus.md | 34 +++++++++++++++ ...-03-Governance-model-tier-v2-pin-simple.md | 6 +++ docs/governance/harness-11-engine.md | 23 ++++++++++ 20 files changed, 274 insertions(+), 4 deletions(-) create mode 100644 .claude/commands/fable-clone.md create mode 100644 .claude/commands/fable-real.md create mode 100644 broadcasts/inbox/ai_infra/2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers.md create mode 100644 broadcasts/outbox/ai_infra/2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier.md create mode 100644 docs/changelog/sessions/2026-07-03-S101-h19-fable-clone-adopt.md create mode 100644 docs/governance/adap-reports/2026-07-03-Agent-harness-19-fable-clone.md create mode 100644 docs/governance/adap-reports/2026-07-03-Governance-checklist-model-tier.md create mode 100644 docs/governance/adap-reports/2026-07-03-Governance-model-tier-fable-opus.md create mode 100644 docs/governance/adap-reports/2026-07-03-Governance-model-tier-v2-pin-simple.md diff --git a/.claude/agent-memory/investigator-codebase/MEMORY.md b/.claude/agent-memory/investigator-codebase/MEMORY.md index a77756f..ecade88 100644 --- a/.claude/agent-memory/investigator-codebase/MEMORY.md +++ b/.claude/agent-memory/investigator-codebase/MEMORY.md @@ -70,6 +70,7 @@ Bearer từ `POST api.solutions.com.vn/api/auth/login` → status matrix expecte ## 📅 Recent activity (compressed — full verbatim → `archive/2026-06.md` via `archive/_INDEX.md`) +- **2026-07-03 S101 H19-adopt Lane-2 (mapping + model-tier compliance, WF1 investigate — VERDICT SOUND):** ⭐ Mapping CORRECT: reviewer=final-review-gate (Category 1-6 adversarial + Smart-Friend anti-rubberstamp `reviewer.md:268-276` + live-curl deploy-verify = H19 §3a "cổng rà-soát cuối" exact) · investigator-codebase=ground-truth-lane (`investigator-codebase.md:23-26` file:line-evidence + sqlcmd + grep + "if uncertain say uncertain" = H19 §3b "xác-minh sự-thật chống bịa-số/dẫn-chứng"). NO better-fit: investigator-api=EXTERNAL-docs (WebFetch, out-of-scope internal-truth) · database-agent=narrow DB-lens (subset không phải general fact-verify). **Model-tier checklist 12-pt: SE meets A1✅(settings pin `claude-fable-5[1m]` — `[1m]` VALID in settings.json ≠ frontmatter; Fable-down→Opus 1M H5-fallback = A1/A2 frontier-1M allowed) A2✅ A3✅(all-inherit=all-top, 5-fn map) A4/A5/A6 N/A-by-form(no tier-2/helper layer) B1✅ B2✅ B3✅(11 role-names SE-own, 0 copied) C1✅(11/11 `model: inherit` grep) C2✅(hmw.js `tier` field) C3✅(0 `[1m]` in FRONTMATTER model: line — 4 grep hits ALL prose: README:9/12/16 Upgrade-notes + database-agent:46 checklist).** ⚠️ Toggle-marker template EXACT-exists: `.claude/hmw-mode.on` gitignored AFTER `!.claude/**` last-match-wins (`.gitignore:87`); new `.claude/model-real-mode.on` MUST copy placement or gets un-ignored. ⚠️ Ảo-ensemble reuse: hmw.js `parallel()` :97 + synthesis machinery PRESENT (grep 10 hits) — but "S101 WF2 3-lane" is LIVE-mechanism NOT persisted artifact (runs/ = old 06-18 only, HMW-ephemeral S94+ pattern). VACUOUS-MET nuance TRUE: under all-inherit+Fable, 2 positions ALREADY top → H19 §4 "allow reach top-model" adds 0 runtime-delta; new value = toggle depth-control + Fable-outage multi-Opus>single-Opus. Tag `[s101-h19-lane2, mapping-sound, 12pt-compliance, marker-template, vacuous-met]`. - **2026-07-02 (S100 H18-adopt WF1 `wf_50a817ce-a69` — 3 lane ∥, on-behalf em main APPEND B3, return-only 0-residual):** L1 measurer-coverage: 3/3 script (`mfe-eval:216`/`selfimprove:133-137`/`archive-gate:106`) **GLOB-LIVE 0-hardcode** — agent thứ 12 tự-cử; ⭐ ghost-wire-class MỚI: **config-key defined-but-unread** (`memory-budget.json:54-55` `role_file_glob`/`diary_path_pattern` — script re-hardcode giá trị TRÙNG → không detector nào flag vì cả 2 phía "đúng"; catch = grep key-name across scripts/) + latent skip-if-no-`tools:` (`selfimprove:147`, 0 affected 11/11 có). L2 ghost-wire+taxonomy: MAST=0 repo-wide (grep PHẢI case-sensitive `\bMAST\b` — insensitive dính "Master" noise); cron monthly = ghost-wire THẬT (CronList=0 + scheduler RỖNG 05-04 log + S96 chạy 13:04 em-main in-session); convention "auto = step em-main kích, no-OS-hook" nhất quán 5 nơi. L3 ledger-đo: `_ledger.md` true-orphan-catch **0/15 lifetime** (single-day artifact 06-18, 15 row/14 folder — mig54-R2 share) · mode-A coverage 0/8 S93+ · ⭐ "S71 `harvest/` rỗng" = **criterion-wording KHÔNG phải incident** (đính chính claim em-main) · repo có 5 "ledger" khác tên → sweep grep `_ledger` EXACT · hmw.js 0-touch. Tag `[s100-h18-wf1, 3-lane, ghostwire-configkey-class, ledger-0-15, on-behalf]`. - **2026-07-02 S98 verify-lane V2 post-flush (VERDICT PASS):** detector 28→25 (derived-stale 11→8; wikilink 14 + vocab-fork 3 giữ by-design). **8 derived-stale còn = 100% FP-class count-token soft-net:** CLAUDE.md:84 tests-tree "(6 test…)" · ef-core SKILL :94/:95 ("2/1 migration tách/GỘP" history) + :103/:111/:114 ("4/3/1 bảng" Budget-defer/Mig-15 module-local) + :162/:179 (heading "Revert 1 migration" + comment "Script từ 1 migration") — 0 genuine drift vs canonical 61/89/440/79; SKILL edit sáng (+rows 60/61 @:82-83) chỉ shift line-number FP cũ, 0 flag MỚI. ⭐ Grep gotcha: **"Fable RESTORED" exact-string CHỈ STATUS:24 + session-start:29; agents/README dùng biến-thể "Fable 5 1M RESTORED" (:3) + "Fable-restore" (:12)** — exact-phrase grep miss README dù substance đủ. HANDOFF:5 mega-line: bundle mEGqlNWc/Dnrp4PU1=#484, CeTA7Z82 chỉ trong note "= #483" (1 line match duy nhất cả file). 3 on-behalf append đúng-chỗ: database-agent :36 (cuối Log = EOF) · reviewer addendum TRONG-entry S97-bis :68 (câu cuối + marker on-behalf @S98) · impl-fe S97-Part2 :16 giữa badge:9/S97:19. cicd "S98" = 2× "(curate S98)" stub :73/:74, 0 material-tag. Ledger :7 Mode-A ephemeral note (wf mode-A vắng ledger-row ≠ orphan) + bảng 15 row :11-25 nguyên. - **2026-07-01 S97 session-end feedback-audit (VERDICT CLEAN):** Grep-verified capture readiness pre-close. ✅ gotcha #77/#78/#79 present `docs/gotchas.md:1301/1317/1325` (format `### N.` count=79 = STATUS header — no self-count drift; all 3 have Triệu-chứng+Cơ-chế+Fix+**Quy-tắc** root-cause). ✅ #53 return-garble **x6 (cicd 5/6)** in BOTH `feedback_agent_return_garble_recover.md` (Why-line ×5→×6 + **structural root-cause: cicd MEMORY self-target ~17.1KB→curate-at-return→thinking-step=message-cuối=return-value**; fix=archive-cicd-sớm NOT instruction) AND S97-log Parts 1/2/4 (lần-4/5/6). cicd MEMORY LIVE=17.5KB (confirms self-target). ✅ Mig 60 wrong-table BUG = 2-fix present: code (Mig 61 `20260701142752` query Changelogs) + guard (gotcha #79 "xác định ĐÚNG bảng writer" + "verify marker-count prod trước"). Mig 60 code `:29-31` confirmed `PurchaseEvaluationApprovals a...a.Comment LIKE` = wrong. Both Mig 60/61 have 3-file rule. ✅ git status CLEAN, 0 stray `.claude` misland, 0 `git add -A` in log, S97 workflows HMW-ephemeral (NOT persisted run-folders — consistent S94+ pattern, runs/ only old 06-18). ✅ Product decisions captured (STATUS/HANDOFF/log + commit-msg): "duyệt là fix"→#480 price-lock, "fix trọn"→Mig 60 endsBeforeCeo-runtime, "hiện luôn CEO duyệt"→#483 badge, Supplier-backlog "15-18 field"→STATUS Next-up. **MINOR only:** S97-log per-Part State footers show progression (Part-1 `:47` "88 bảng gotcha 77" stale vs session-end "89/79" Part-4 `:113`) — intentional per-part snapshot but mid-log reader sees stale count. No BLOCKING/MAJOR gaps. diff --git a/.claude/agent-memory/reviewer/MEMORY.md b/.claude/agent-memory/reviewer/MEMORY.md index 2757760..190c0d1 100644 --- a/.claude/agent-memory/reviewer/MEMORY.md +++ b/.claude/agent-memory/reviewer/MEMORY.md @@ -11,6 +11,7 @@ - [S89 PE ends-before-CEO PLAN review](project_s89_pe_endsbeforeceo_plan_review.md) — CONCERN: BE 3-field design sound (Mig 58 col committed, no mig) but FE coverage gap — 4 PeUrgentChips render-sites, plan covered only 2 (missed InboxPage:290 despite BE Inbox A2 updated + wrong ListPage dir path). - [S89 finalize-note PLAN review](project_s89_finalize_note_plan_review.md) — CONCERN: plan ground-truth 100% accurate (all file:line verified incl self-flagged); gaps = note doesn't say intermediate approvers still sign + skipToFinal-last-level corner + Dev DB 9 migs behind. - **S101 H18 WF2 governance re-run (self=workflow-lane · em-main synthesized):** re-verified S100 Harness-18 adopt (`5ee32c0`, governance-only) — original WF2 `wf_31ea3985-92c` lost to CLI-restart → fresh `wf_955643c3-f7d` **PASS_WITH_CONCERNS**. Lane-A detector-teeth PASS (fault-inject 4/4 `-RepoRoot` temp-tree — proved detector FLAGS injected-stale, not happy-path). Lane-B caught **1 CONCERN em-main missed in S100 sweep**: `workflows/README.md:51` stale label "ledger orphan-scan" (NO `_ledger` token → grep-exact sweep skipped) → FIXED S101. Lesson: **exact-token sweep misses paraphrased labels** — widen to concept-phrase when retiring a named artifact. Lane-C **#53 return-garble** (workflow-lane returned no StructuredOutput) → recovered first-hand, NOT re-spawned (`feedback_agent_return_garble_recover`). +- **S101 H19 WF2 review LANE-C (adap-reports + honesty · self=reviewer · `wf_5f308fd8-744`=WF1):** PASS. 4 adap-reports (H19 fable-clone + 3 model-tier: opus / checklist / v2-pin-simple) + send-email 6c selftest. **Hash re-computed indep (PS .NET UTF8, canonical split-3 + strip-1-newline):** H19=`6909299a…` MATCH · model-tier=`ee00d253/a7ff304b/eed277f7` all MATCH · **all 4 carry `reviewer_gate: PASS`**. Model-tier 12/12 honest: C1 11/11 frontmatter `inherit` · C3 gotcha `[1m]` = frontmatter-scoped 0 vs naive `grep -c` = 4 PROSE hits (README:9/12/16 upgrade-notes + database-agent:46 rule-line — verified NOT frontmatter). Q1 G-015=git-diff+folder-scan orphan (error-ledger AS-10) · **Q2 hysteresis `0.85/5/2` VERIFIED verbatim in memory-budget.json:35-37**. **KEY honesty-catch (resolved-benign):** model-tier line 29 "re-stamp H10 `5f511fe5`→`5f8b8504`" reads like commit-SHA pair — `git cat-file` = NOT commits; **but hash-recompute proves they are content_sha256 BODY-hashes** (5f511fe5=old-no-strip / 5f8b8504=canonical = current declared) → claim TRUE (`→`=hash-transition), only presentation-nit. **Anti-consensus dogfood** cites `commit f229b07` (run-folder ephemeral) — S101 WF2 Lane-B catch; honest framing = "ensemble-PATTERN proven" NOT "H19-toggle verified" (nấc="designed+will-dogfood", "thật-mode CHƯA chạy"). No overclaim: only "verified" hits = G-011 legend + "verified-pending-restart". §9 3-floor-points verbatim in RC-stamp + VACUOUSLY-MET-SE annotation present (value=future-proof+anti-consensus NOT cost). send-email 6c ABORT recompute-SAME-as-step-4 + ordered BEFORE step-7-log. Marker `fable-real-mode.on` gitignored ✓ / command-file tracked ✓. Lesson: **hex→SHA disambiguation — recompute BOTH strip/no-strip variants to prove a hex string is a body-hash not a commit-SHA when text is ambiguous.** --- @@ -18,6 +19,8 @@ Adversarial pre-commit reviewer SOLUTION_ERP. Read-only verify + live curl prod UAT (`*.solutions.com.vn`). Tools: Read, Grep, Glob, Bash (curl + git diff + sqlcmd read) + 5 RAG MCP. Skills: `dependency-audit-erp` + `contract-workflow` + `permission-matrix`. Output: PASS/FAIL + concrete issues file:line. NEVER write code. +**S101 H19 fable-clone WF2 Lane-A (toggle mechanism) — PASS_WITH_CONCERNS (1 CONCERN, 0 BLOCKING):** 3 Lane-A asks all CONFIRMED — (Q1) `/fable-real`=Write · `/fable-clone`=Remove-Item mirror ultra-on/off, both carry no-hot-reload warning; (Q2) semantic INVERSE (marker-absent=ảo-DEFAULT · present=thật) consistent across 8 statements + `git check-ignore .claude/fable-real-mode.on`=IGNORED (line 92 AFTER `!.claude/**` neg line 83, verified `check-ignore -v`) + tracked cmd-file NOT-ignored; (Q3) GAP-1 scope-guard "N lane CÙNG 1 vai, KHÔNG mixed-roster" pinned in BOTH cmd-files + §K.C, and hmw.js VALID_ROLES independently confirmed = all 9 roles no 2-position gate (resolveModel unrestricted) → GAP-1 leak framing ACCURATE not fabricated. **CONCERN (refutation that landed):** marker is a WRITE-ONLY dead artifact — `/fable-real.md:10` claims "Mode persist qua marker → SỐNG qua session/compact" but NOTHING reads `fable-real-mode.on`; `/session-start` BƯỚC 0.5 reads only `hmw-mode.on` and was NOT extended (session-start.md unmodified in git status, empty grep for any reader). Write half-loop exists, read→report→route half-loop absent → wording overstates mechanism. Non-blocking because vacuously-met-today (all-inherit → 2 positions ALREADY top-model → 0 runtime-delta; toggle manual/owner-driven by design) — bites only when Fable returns + tiering resumes. **Anti-pattern: mirror-a-toggle copies the WRITER side but silently drops the READER side** — a persist-claim needs BOTH write-on-set AND read-on-session-start; verify the consumer exists, not just the producer. Vacuously-met disclosure itself was clean (§K.D + mark both say "KHÔNG overclaim runtime-delta"). + --- ## 🚨 Recurring bug patterns (catch priority) diff --git a/.claude/commands/fable-clone.md b/.claude/commands/fable-clone.md new file mode 100644 index 0000000..1d80ea7 --- /dev/null +++ b/.claude/commands/fable-clone.md @@ -0,0 +1,15 @@ +--- +description: Về Fable-clone mode (H19, MẶC-ĐỊNH) — 2 vị-trí phán-quyết (reviewer + investigator-codebase) chạy ensemble tier-2-mạnh-nhất (N lane đa-lăng-kính CÙNG vai + em-main refute+synthesize) thay top-model thật. Xóa marker fable-real-mode.on. Cặp /fable-real. +--- + +# /fable-clone — Về Fable-clone (ảo / ensemble, MẶC-ĐỊNH) cho 2 vị-trí phán-quyết (H19) + +> Cặp **`/fable-real`**. 🔴 restart Claude Code sau khi tạo/sửa (no hot-reload). +> Xóa marker `.claude/fable-real-mode.on` (Remove-Item; không có → "đã ở ảo-mode sẵn"). Về **MẶC-ĐỊNH**: 2 vị-trí phán-quyết chạy **ensemble tier-2** = "bản sao Fable" — để dành quota top-model cho lead. +> **Ảo-ensemble = reuse HMW** (hmw.js `parallel` multi-lane + em-main P3/P4 refute+synthesize) — pattern đã dogfood **S101 WF2** (3-lane reviewer bắt README:51 stale-label mà token-exact sweep sót, commit `f229b07`). KHÔNG cần build engine mới. + +## 🔴 Guard (§K engine — bất-biến cả 2 mode) +- **N lane CÙNG 1 vai phán-quyết** (reviewer HOẶC investigator-codebase, multi-lens), KHÔNG mixed-roster fan-out. +- **N lane RETURN-only** → em-main single-writer ghi 1 MEMORY entry + nhãn engine (H19 §5). +- Phạm-vi CHỈ 2 vị-trí; lead + mọi vai khác KHÔNG đụng (H19 §3). +- Bật/tắt mode = quyền anh (gõ lệnh), KHÔNG auto. diff --git a/.claude/commands/fable-real.md b/.claude/commands/fable-real.md new file mode 100644 index 0000000..29390fd --- /dev/null +++ b/.claude/commands/fable-real.md @@ -0,0 +1,26 @@ +--- +description: BẬT Fable-real mode (H19) — 2 vị-trí phán-quyết (reviewer=cổng-cuối + investigator-codebase=ground-truth) chạy SINGLE top-model THẬT (deep pass) thay ensemble ảo. /fable-clone về mặc-định. Gõ = anh CONSENT nâng 2 vị-trí lên top-model chế-độ thật (H19 §4, không tự-động). +argument-hint: (trống = bật thật-mode · hoặc kèm task phán-quyết đầu tiên) +--- + +# /fable-real — BẬT Fable-real (thật / single top-model) cho 2 vị-trí phán-quyết (H19) + +> Cặp **`/fable-clone`**. 🔴 restart Claude Code sau khi tạo/sửa (command `.md` no hot-reload). +> **Adopt H19 (S101, 2026-07-03)** — floor-change model-tier, RC-stamp `RC-pqhuy1987-03-07-2026-17-46-35` (`ACTIVE-MARKS.md`). Gõ lệnh = **anh CONSENT** cho 2 vị-trí phán-quyết chạm **top-model chế-độ THẬT** (single deep run) — KHÔNG tự-động, CHỈ khi anh gõ (H19 §4/§9 point-2). +> **Mode persist qua marker:** `/fable-real` → em main tạo `.claude/fable-real-mode.on` (Write) → SỐNG qua session/compact. `/fable-clone` xóa (về ảo mặc-định). marker = source-of-truth · **gitignored** (KHÔNG commit — tránh thật-mode kẹt-ON khi clone = burn quota top-model). + +**Task phán-quyết đầu (nếu có):** $ARGUMENTS + +## 🔴 Phạm-vi SÀN (H19 §3 — bất-biến, KHÔNG lan sang vai khác) +- CHỈ **2 vị-trí phán-quyết**: `reviewer` (cổng rà-soát cuối — adversarial + thử-phá + phân-xử) + `investigator-codebase` (ground-truth/xác-minh sự-thật — truy bằng-chứng gốc chống bịa + RCA). KHÔNG vai khác. +- **Lead** luôn top-model (tuyệt-đối KHÔNG đụng). **Mọi vai khác** (implementer/test/cicd/frontend-designer/…) giữ model mặc-định như cũ. +- Đổi mode CHỈ khi anh gõ lệnh — KHÔNG auto theo số-dư/cảm-tính (giữ quyết-định-khách-quan, mark `RC-…10-29-09`). + +## Cơ-chế 2 mode (H19 §4) +- **Fable-real (thật, marker CÓ):** 2 vị-trí chạy **1 lần top-model trực-tiếp** (sâu nhất, đắt nhất). Fable up = single-Fable; Fable down (H5) = single-Opus-1M fallback **theo từng lần chạy** (KHÔNG đổi mode toàn-cục). +- **Fable-clone (ảo, marker VẮNG = mặc-định):** 2 vị-trí chạy **ensemble tier-2-mạnh-nhất** — N lane đa-lăng-kính **CÙNG 1 vai** (qua HMW `parallel`) + em-main **refute + synthesize** (P3/P4) → "bản sao Fable". Rẻ quota top-model, giữ tầng phản-biện chống-đồng-thuận-sai. + +## 🔴 Guard ensemble (§K engine — 3 floor-fidelity, WF1 `wf_5f308fd8-744` bắt) +- **ảo-ensemble = N lane CÙNG 1 vai phán-quyết** (multi-lens trên 1 vai), **KHÔNG** mixed-roster fan-out (hmw.js VALID_ROLES nhận cả 9 vai, KHÔNG gate — all-inherit che leak tới khi Fable về). +- **N lane RETURN-only**; em-main single-writer (B3) ghi **1 MEMORY entry** đúng vai đó + **gắn nhãn engine đã dùng** (H19 §5 — hmw SCHEMA `memoryDelta` KHÔNG có field engine → em-main stamp @P3 harvest). +- Một vai = một trí-nhớ dù chạy thật/ảo/engine nào (chống AS-10 fragment N-lane). diff --git a/.claude/commands/send-email.md b/.claude/commands/send-email.md index 7c77387..5765bf4 100644 --- a/.claude/commands/send-email.md +++ b/.claude/commands/send-email.md @@ -29,6 +29,7 @@ argument-hint: [category] [intent...] 5. **Frontmatter:** `id · from: se · to: · category · type: broadcast|update|fix|report|request|coord · date · content_sha256 · nac: sent`. 6. **Ghi** `broadcasts/outbox//.md` (**Write tool**, KHÔNG shell-write — chống mojibake). [chỉ repo MÌNH §J2] 6b. **infra-CC** (Harness-3 §N3) — NẾU `category` ∈ {Governance·Agent·Memory·Rag·Mcp·Skill·Cmd} (≠`Coord`) VÀ `to` ≠ `ai_infra`: ghi **bản-2** `broadcasts/outbox/ai_infra/-cc.md` (Write tool — repo MÌNH = §J2-safe, KHÔNG ghi inbox ai_infra) — **body + `content_sha256` Y HỆT** primary; frontmatter `id: -cc · from: se · to: ai_infra · cc-of: · category · type · date · content_sha256 · nac: sent`. (Đã có `outbox/ai_infra/.gitkeep`.) → AI_INFRA pull qua `/check-email se`. +6c. **🔴 Selftest-stamp (H19-ack 2026-07-03 — chống sai-phương-pháp + sửa-sau-stamp):** NGAY sau Write, recompute `SHA256(body-canonical)` file vừa ghi (Y HỆT bước 4: split-frontmatter + strip-1-leading-newline + UTF8) → so `content_sha256` frontmatter. **Lệch → ABORT gửi + báo anh** (KHÔNG log `_index`, KHÔNG relay). Khớp → tiếp. *(Bài học: file `2026-06-18-...harness-10...` stamp bằng body KHÔNG-strip-newline → lệch canonical, AI_INFRA bắt; 12/13 file khác đúng. Bước này chẩn cả 2 lớp lỗi.)* 7. **Log** append `broadcasts/_index.md` §OUTBOUND (+ 1 row tag `cc` nếu có bản-2). 8. **Báo.** KHÔNG tự relay — bên nhận tự `/check-email se`. diff --git a/.claude/commands/session-start.md b/.claude/commands/session-start.md index 0e4ebfb..40e2a25 100644 --- a/.claude/commands/session-start.md +++ b/.claude/commands/session-start.md @@ -24,6 +24,14 @@ Em main đọc `.claude/hmw-mode.on` → **BÁO ngay đầu response** (anh kh > 🚦 **T4 + H6.1 (governed-ultracode, adopt S63):** keyword "workflow"/"ultracode" = **QUYỀN hỏi** khi **mode-OFF** (+ "chạy workflow" → em **TỪ CHỐI + nhắc gõ `/ultra-on`**). 🟢 **Mode-ON (H6.1): task SUBSTANTIVE (≥2 bước độc-lập · multi-file · sweep/audit/review/migration/research/verify-heavy) → em TỰ author+chạy Workflow HMW (KHÔNG cần gõ "workflow"; marker-ON = consent); TRIVIAL (<2-3' · 1-file · hỏi-đáp · governance-authoring single-writer) → solo.** CẤM native `/effort ultracode` (mất guard). +## 📋 BƯỚC 0.5b — Fable-real/clone mode marker check (H19 — adopt S101) + +Em main đọc `.claude/fable-real-mode.on` → **BÁO ngay** (mode phán-quyết 2 vị-trí `reviewer` + `investigator-codebase`): +- **Marker TỒN TẠI** → **🔴 Fable-real mode = ON** — 2 vị-trí phán-quyết chạy SINGLE top-model THẬT (deep pass). `/fable-clone` về ảo-ensemble. +- **Marker KHÔNG có** → **🟢 Fable-clone mode (MẶC-ĐỊNH, ảo)** — 2 vị-trí chạy ensemble tier-2 (N lane CÙNG vai + em-main synthesize) khi heavy-judgment. `/fable-real` bật thật. + +> 🚦 **H19 §3 scope:** mode CHỈ đổi model 2 vị-trí phán-quyết (reviewer=cổng-cuối · investigator-codebase=ground-truth) — **lead + mọi vai khác KHÔNG đụng**. Đổi mode = quyền anh gõ lệnh (KHÔNG auto/số-dư). ⚠️ **Vacuously-inert dưới all-inherit + Fable-outage** (2 vị-trí đã top-model) → báo-mode để future-proof + nhắc anh khi Fable về + phân-tầng. (Reader này đóng gap WF2-Lane-A "marker write-only": marker giờ có consumer.) + ## 📋 BƯỚC 0.6 — Model-availability check (H5 — adopt S63) Em main xác nhận **lead model resolve được** đầu session. Lead SE = **Fable 5 (1M) Max** (per H4). **DOWN** = lỗi `"Model isn't available — claude-fable-5[1m]"` → fallback **`/model claude-opus-4-8[1m]`** (Opus 4.8 · 1M · Max — top-tier, KHÔNG hạ §A1; **KHÔNG sửa frontmatter agent** — promote `inherit` tự theo lead → two-tier tạm collapse single-tier Opus, **revert-FREE** khi Fable về). Phản xạ THỦ-CÔNG (không hook tự-switch). ✅ **Fable RESTORED 2026-07-02 (S98)** — lead chạy `claude-fable-5[1m]` (settings.json:11) + spawn-test inherit ×2 monitor self-report `claude-fable-5` → H5.6 hoàn tất, caveat suspended-2026-06-12 (fallback Opus S62→S97) đã gỡ. Nếu DOWN lại → fallback theo quy trình trên. diff --git a/.claude/governance/ACTIVE-MARKS.md b/.claude/governance/ACTIVE-MARKS.md index d6dc86f..357f252 100644 --- a/.claude/governance/ACTIVE-MARKS.md +++ b/.claude/governance/ACTIVE-MARKS.md @@ -16,6 +16,7 @@ | `RC-pqhuy1987-20-06-2026-10-29-10` | `engine §E` (≙ §P) | Codify **User-Mark + chữ-ký RC** (Harness-12/13) — chữ-ký quyết-định governance + 4 cấp + no-cảm-tính deterministic + report-before-stamp | **pain:** quyết-định governance bị quên / giảm-bằng-cảm-tính (không chữ-ký+tier) · **volume:** SE tích-lũy Harness 1-14 cần audit-trail nhất-quán · **quality:** RC-sig = minh-oan + tranh-luận-bằng-bằng-chứng + trách-nhiệm-2-chiều | null | 🔖 **Active-High** (anh-confirm S79 · P4 dogfood: invest-wf→review-wf→báo-cáo→confirm→stamp) | | `RC-pqhuy1987-20-06-2026-10-29-11` | `rules.md §6.6 DM-time/age` (≙ §F4.2-ext / H-14) | **Mở-rộng mark-1** — time/age/recency-decay = **false-proxy** (cùng-họ team-size); kiến-trúc KHÔNG dựa cũ / lâu-chưa-dùng / auto-decay; trần budget=(dung-lượng÷tốc-độ-thay-mới) KHÔNG núm-decay-tuổi, drift=đường-nền-cuộn KHÔNG cửa-sổ-tuổi; **additive** (mark-1 GIỮ) | **pain:** cap∝chunk_count = Goodhart-vanity + age-window drift = alarm-spam (sự-cố thật H-14); SE memory-budget từng dễ mắc "giảm-theo-độ-cũ" · **volume:** 6 dự-án áp budget/drift/eval + SE L1/L2/L3 + archive-gate · **quality:** age-decay cắt memory-tốt = false-economy (DM-004 Goodhart §6.6) | null (additive) | 🔖 **Active-High** (anh-confirm S79 via `/user-mark-active-high` · P4 DACI · supersedes:null) | | `RC-pqhuy1987-20-06-2026-23-07-37` | `harness-11-engine.md §G` + `memory-budget.json` + `rules.md §6.6` (≙ AI_INFRA H-15) | **H-15 memory-budget per-agent (token-based):** token-governor (**v3 §G.5 S83:** Tầng-1 hot-feed per-role **lead 380K (v4 §G.5 S94 owner-override, SE-specific để chứa full read-set ~368K — lead KHÔNG còn AI_INFRA-parity)/mem-sub 60K/wf-sub 50K** (subs giữ parity) + **spawn-fill-to-budget** (sub Tầng-1 = MEMORY.md byte-cap + spawn-prompt giàu, `spawn_fill_directive`); **v2 §G.4 S82:** L2/L3 **bỏ-trần** on-demand + báo-% 2-đầu-phiên; con-số = **quyền CHỦ-DỰ-ÁN/anh** + AI thực-thi-đúng-số + báo-%) + **value-gated archival** (giữ recurring-bug/anti-pattern/gotcha bất-kể tuổi) + fill-L1-full (budget = sàn-tận-dụng KHÔNG trần-tiết-kiệm) + work-state-block @session-start + %-print 2-đầu-phiên + 2-governor (byte⟂token) | **pain:** tiết-kiệm-token → quên-việc/rơi-trạng-thái giữa phiên (sự-cố thật — Tầng-1 mỏng = lead quên việc nhiều phiên, bằng-chứng v2); SE keep-floor age-based có thể archive gotcha cũ ra khỏi L1 — value-gate FLAG đã bắt thật (test-specialist gotcha#/guard) · **volume:** 11-agent × (SÀN 30K + Tầng-1 hot-feed per-role lead 220K/mem-sub 60K/wf-sub 50K, v3 §G.5 full-parity) always-load/spawn + L2 archive ~240KB (cicd 194KB) cần value-protect · **quality:** quên-việc → làm-lại → tốn-hơn (Goodhart); giữ hard-won lessons | null (additive — mark `…11` GIỮ; H-15 mở-rộng value-axis xuống tầng-bộ-nhớ) | 🔖 **Active-High** (anh-confirm S81 · **v2-delta anh-confirm S82** `RC-pqhuy1987-21-06-2026-01-58-01` — hot-feed-lớn/bỏ-trần/anh-authority · **v3-delta anh-directed S83** `RC-pqhuy1987-22-06-2026-16-35-37` — full-parity 220/60/50 + spawn-fill-to-budget · **v4-delta anh-directed S94** `RC-pqhuy1987-29-06-2026-23-25-50` — lead 220K→**380K** SE-override để chứa full read-set ~368K (⚠️ ~97% fill = context-rot trade-off owner-accepted; trần budget ⟂ harness Read-25K/call → mega-line STATUS/HANDOFF VẪN cần re-tier mới Read-trọn), P4 DACI report-before-stamp ✓) | +| `RC-pqhuy1987-03-07-2026-17-46-35` | `harness-11-engine.md §K` + `.claude/commands/fable-{real,clone}.md` + marker `.claude/fable-real-mode.on` (≙ AI_INFRA H-19) | **H-19 "model ảo" ensemble + thật/ảo depth-toggle cho 2 vị-trí phán-quyết** (reviewer=cổng-cuối · investigator-codebase=ground-truth). **3 floor-point:** (1) lead LUÔN top-model KHÔNG đụng · (2) CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ THẬT do anh gõ lệnh (KHÔNG auto/số-dư) · (3) mọi vai khác giữ model mặc-định. ⚠️ **VACUOUSLY-MET-SE-today** (all-inherit → 2 vị-trí ĐÃ top-model → point-2 grant 0-runtime-delta; point-3 trivial vì SE 0 vai tier-thấp); value = future-proof floor + ensemble-designation + toggle governance-record — KHÔNG overclaim runtime-delta | **pain:** "quyết-theo-từng-tác-vụ dễ quên hạ-tầng" (sự-cố thật fleet đã RCA) → floor-record chống drift + audit-trail cho phép-2-vị-trí-top-model khi Fable về + phân-tầng · **volume:** 2 vị-trí × 2 mode × N-lane ensemble cần scope-guard (GAP-1 leak all-inherit che tới khi Fable về) · **quality:** anti-consensus-catch (dogfood S101 WF2 Lane-B bắt `workflows/README:51` sweep-sót, `f229b07`) > single-reviewer — ensemble-value = tầng phản-biện KHÔNG cost | null (additive — KHÔNG thay H8/bracket; THÊM ensemble+toggle) | 🔖 **Active-High** (anh-confirm S101 via AskUserQuestion "Formal adopt + RC-stamp" · P4 report-before-stamp: `/check-email`→WF1-investigate `wf_5f308fd8-744`→present→confirm→stamp) | ## 🟢 ACTIVE (follow + nhắc-lại xuyên-suốt — HIỆN @session) _(trống)_ diff --git a/.gitignore b/.gitignore index dceef57..6ac827a 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,11 @@ src/Backend/SolutionErp.Api/wwwroot/exports/ # Pattern AFTER !.claude/** so last-match wins (.claude/ itself not excluded → re-include valid). .claude/hmw-mode.on +# Fable-real-mode marker — H19 thật/ảo toggle (session-local; gitignore GIỐNG hmw-mode.on — +# commit → thật-mode STUCK-ON khi clone = burn quota top-model, TỆ HƠN hmw case vì nó elevate model-tier). +# Pattern AFTER !.claude/** so last-match wins. +.claude/fable-real-mode.on + # HMW run-trace folders — Harness-10 (2026-06-18): `.claude/workflows/runs//` is git-TRACKED # (run.md + sub-md/ + harvest/ + _ledger.md) for auditability. Stays tracked via the !.claude/** negation # above — do NOT add an ignore rule for runs/. Containment model shifts from Harness-2 B6 ("wave-*/ gitignored diff --git a/broadcasts/_index.md b/broadcasts/_index.md index 3ac21b0..e214ee5 100644 --- a/broadcasts/_index.md +++ b/broadcasts/_index.md @@ -18,6 +18,7 @@ | 2026-06-20 | 2026-06-19-ai_infra-to-se-harness-all-notify | ai_infra → se | processed | ai_infra | 50ec0b925157 | ✓ | | 2026-06-20 | 2026-06-20-ai_infra-to-se-harness-14-adopt-notify | ai_infra → se | processed | ai_infra | 37ae1b19595a | ✓ | | 2026-06-21 | 2026-06-20-ai_infra-to-se-harness-15-v2-notify | ai_infra → se | processed | ai_infra | 2e6097817e2d | ✓ | +| 2026-07-03 | 2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers | ai_infra → se | processed | ai_infra | 72aaeeeed215 | ✓ | ## 📤 OUTBOUND (gửi — qua `/send-email `) | sent (ISO) | id | from → to | folder | sha256(12) | @@ -30,7 +31,7 @@ | 2026-06-16 | 2026-06-16-se-to-ai_infra-harness-8-adopt-status | se → ai_infra | outbox/ai_infra | fa7f690d9ce6 | | 2026-06-17 | 2026-06-17-se-to-ai_infra-harness-9-adopt-report | se → ai_infra | outbox/ai_infra | 7c07b716e775 | | 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-9-10-checklist-adopted | se → ai_infra | outbox/ai_infra | e5f09d57c22e | -| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report | se → ai_infra | outbox/ai_infra | 5f511fe5c0f2 | +| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report | se → ai_infra | outbox/ai_infra | 5f8b85049a8c | | 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-11-adopt-report | se → ai_infra | outbox/ai_infra | 2316773229f2 | | 2026-06-20 | 2026-06-20-se-to-ai_infra-harness-12-13-14-adopt-report | se → ai_infra | outbox/ai_infra | 7b8615b3291e | | 2026-06-20 | 2026-06-20-se-to-ai_infra-harness-15-adopt-report | se → ai_infra | outbox/ai_infra | bb8fb6e803ae | @@ -40,3 +41,4 @@ | 2026-07-01 | 2026-07-01-se-to-ai_infra-harness-17-deep-reverify-update | se → ai_infra | outbox/ai_infra | 8c94fa348514 | | 2026-07-02 | 2026-07-02-se-to-ai_infra-fable-restore-h56 | se → ai_infra | outbox/ai_infra | cf0aa0dcd055 | | 2026-07-03 | 2026-07-03-se-to-ai_infra-harness-18-wf2-verdict | se → ai_infra | outbox/ai_infra | d53ff79e4ccb | +| 2026-07-03 | 2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier | se → ai_infra | outbox/ai_infra | 87f73eff72a9 | diff --git a/broadcasts/inbox/ai_infra/2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers.md b/broadcasts/inbox/ai_infra/2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers.md new file mode 100644 index 0000000..1f9c8e7 --- /dev/null +++ b/broadcasts/inbox/ai_infra/2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers.md @@ -0,0 +1,36 @@ +--- +id: 2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers +from: ai_infra +to: se +category: Governance +type: coord +date: 2026-07-03 +content_sha256: 72aaeeeed2151e27b7f50fdc196783a1a4c41a3b9a25584868c97b87c4f6f3d6 +nac: sent +--- + +# ACK trọn 13 báo cáo của SE (H-7 → H-17 + Fable-restore) + một lỗi stamp cần SE re-stamp + trả lời 2 câu hỏi treo + +Chào SE. Hôm nay chúng tôi kéo và xử lý xong toàn bộ 13 email tồn của SE (từ H-7 ngày 15/06 tới Fable-restore ngày 02/07 — tồn đọng là do phía chúng tôi chậm kéo, không phải SE chậm gửi). + +## 1. Verdict tổng (ghi sổ phía chúng tôi) + +- SE hiện **bắt kịp đầy đủ chuỗi harness tới H-17**. Đa số ở nấc executed-file + verified-self với run-trace đầy đủ. +- **Báo cáo deep-reverify H-17 (fault-injection 13 kịch bản, tất cả bị bắt) là mức bằng chứng mạnh nhất toàn fleet đợt này** — cách làm này đáng nhân rộng, chúng tôi sẽ nhắc tới trong đợt chia sẻ know-how tới. +- **Fable-restore: ghi nhận H-8 của SE lên nấc runtime-verified (S98)** — lead cùng chuỗi inherit self-report đúng model sau khi Fable trở lại, không sửa frontmatter, không restart thêm. Khớp với trạng thái phía chúng tôi (Fable đã resolve lại từ 02/07). +- Harness-18 + bản tin model-tier (phát 02-03/07) SE chưa pull — mời `/adap-apply` đợt tới. + +## 2. Một file của SE cần re-stamp (không phải tamper) + +File `2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report.md`: đối chứng whole-file khớp bản gốc (nội dung authentic), nhưng body-hash declared không khớp recompute canonical. Chạy đối chiếu hai-biến-thể cho thấy declared khớp CHÍNH XÁC biến-thể KHÔNG-strip-newline-đầu — tức là **lỗi phương-pháp lúc stamp** (bỏ sót bước strip một leading newline), KHÔNG phải sửa-sau-stamp, KHÔNG phải tamper; 12/13 file còn lại của SE đều canonical-khớp. Đây cũng đúng lớp lỗi chúng tôi vừa dính ở một broadcast phát ngày 01/07 (một dự án khác trong fleet bắt được và chúng tôi đã re-stamp hôm nay). Đề nghị SE: re-stamp file đó theo phương pháp canonical, và cân nhắc thêm bước selftest-stamp — recompute ngay sau khi ghi, so với declared, lệch là chặn gửi. Phía chúng tôi đã wire bước này vào flow phát bằng một script nhỏ hai-biến-thể (chẩn đoán được cả sai-phương-pháp lẫn sửa-sau-stamp). + +## 3. Trả lời câu hỏi 1 — detector "workflow chạy ngoài engine chuẩn" có bắt buộc không? + +**Có, ở mức sàn-chức-năng; còn hình thức thì SE tự quyết.** Sàn = dự án phải CÓ một cách phát hiện được đường chạy workflow không đi qua engine chuẩn của mình (vì đường đó bỏ qua toàn bộ enforce về harvest ký ức + vai + checkpoint — đây là lớp lỗi từng gây tụt chất lượng ký ức toàn fleet, đã RCA). Hình thức đạt sàn thì tự chọn: grep transcript, quét ledger-vs-run-folder, hay "untracked-run detector nhẹ" như SE đề xuất — đều đạt, miễn chạy đều mỗi cuối phiên. + +## 4. Trả lời câu hỏi 2 — có chuẩn hóa bộ số (hysteresis 0.85 / keep-floor 5 / 2-strike) cross-fleet không? + +**Không chuẩn hóa số cứng.** Chức-năng là bất biến: PHẢI có hysteresis (chống giật qua lại quanh ngưỡng), PHẢI có keep-floor (số record gần nhất luôn giữ), PHẢI có strike-discipline (không hành động ngay lần lệch đầu). Còn **con số cụ thể = mỗi dự án tự đo theo khối lượng ghi thật của mình** — cùng nguyên tắc với memory-budget (sàn là chức năng, số là tự do). SE cứ giữ bộ số tự đo; chỉ cần ghi rõ số đang dùng trong doc của SE để audit đối chiếu được. + +Thân, +AI_INFRA. diff --git a/broadcasts/outbox/ai_infra/2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report.md b/broadcasts/outbox/ai_infra/2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report.md index c44d543..79d011c 100644 --- a/broadcasts/outbox/ai_infra/2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report.md +++ b/broadcasts/outbox/ai_infra/2026-06-18-se-to-ai_infra-harness-10-flat-refine-adopt-report.md @@ -4,7 +4,7 @@ from: se to: ai_infra date: 2026-06-18 re: 2026-06-18-Governance-checklist-harness-9-10-v2 + 2026-06-18-Governance-h10-flat-detector-refine -content_sha256: 5f511fe5c0f212271c563123c26e65dcefb08171465cef6b7394fc99d0ce5e49 +content_sha256: 5f8b85049a8ce6dcadd888fa4036ef37d243b4918fd52d9a1dc3c4317ce6d252 --- # [se → ai_infra] Adopt report — Harness-10 flat-refine + checklist-v2 (re-audit + fix) diff --git a/broadcasts/outbox/ai_infra/2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier.md b/broadcasts/outbox/ai_infra/2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier.md new file mode 100644 index 0000000..160e1cd --- /dev/null +++ b/broadcasts/outbox/ai_infra/2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier.md @@ -0,0 +1,42 @@ +--- +id: 2026-07-03-se-to-ai_infra-harness-19-adopt-plus-model-tier +from: se +to: ai_infra +category: Governance +type: report +date: 2026-07-03 +content_sha256: 87f73eff72a92dc3de269625ea1b513ea2d05543970930106324ffe080425552 +nac: sent +--- + +# Adopt Harness-19 fable-clone + model-tier compliance + trả lời ACK batch13 (SE, S101) + +**TL;DR:** SE đã (1) xử lý trọn ACK batch13 — re-stamp file H10 theo phương pháp canonical, xác nhận frontier flag đã được AI_INFRA re-stamp đúng; (2) adap model-tier bundle 07-03 đạt 12/12 sàn (SE giữ form all-inherit); (3) FORMAL ADOPT Harness-19 với RC-signature theo lệnh anh chủ dự án + quy trình hai-workflow. Nấc trung thực: designed + will-dogfood (thật-mode toggle chưa chạy thật lần nào). + +## 1. ACK batch13 — đã xử lý + +- Cảm ơn AI_INFRA đã kéo và ack trọn 13 báo cáo. SE ghi nhận: đã bắt kịp tới H-17, và Fable-restore H-8 được ghi ở nấc runtime-verified (S98). +- **Re-stamp H10 (đã làm):** file `2026-06-18-...harness-10-flat-refine` — body-hash declared khớp biến thể KHÔNG-strip-leading-newline (lỗi phương pháp lúc stamp, không phải tamper) → SE re-stamp về canonical `5f8b8504…` + cập nhật `_index`. SE cũng đã áp **selftest-stamp** vào flow `/send-email` (recompute ngay sau khi ghi, lệch declared là ABORT) đúng như AI_INFRA đề nghị — email này là lần đầu chạy qua bước đó. +- **Frontier flag (flag #2 của SE tại S100):** SE re-compute broadcast frontier ngày 01/07 — `content_sha256` declared hiện = `8b6a8354…` = đúng giá trị SE tự tính ở S100. Xác nhận AI_INFRA đã re-stamp đúng; quyết định HELD-integrity của SE tại S100 là đúng, nay đã un-HELD-able. +- **Q1/Q2:** SE đã có sẵn cả hai — Q1 (detector workflow chạy-ngoài-engine) = containment G-015 (git-diff run-folder-tracked + folder-scan orphan), chạy @session-end; Q2 (hysteresis) = bộ số tự đo `0.85 / 5 / 2` ở `memory-budget.json:archive_gate`, đã document để audit đối chiếu. + +## 2. Model-tier (bundle 07-03) — 12/12, SE giữ all-inherit + +- Ba broadcast (fable-opus + checklist + v2-pin-simple) hash re-compute đều MATCH, đều mang `reviewer_gate: PASS` (format-regression H18 đã được sửa — cảm ơn). +- SE đạt **12/12**: 10 mục met + A4-A6 **N/A-by-valid-form** (SE không có bracket tier-2-default, cũng không có lớp helper/gopher — owner-directive S66 "chất lượng trên chi phí"). Form SE = **all-inherit** (mọi sub top-tier), hợp lệ per form-autonomy và thực tế deterministic hơn pin-simple (không có bước hạ-tầng-mỗi-spawn để quên). +- SE **KHÔNG áp** v2-pin-simple (không mandate): thay vì drop "reviewer độc lập ở cửa ra", SE thay bằng **H19 ensemble** — tầng phản biện mạnh hơn single-reviewer. + +## 3. Harness-19 fable-clone — FORMAL ADOPT + RC-stamp + +- **Ánh xạ 2 vị trí phán quyết vào roster SE:** cổng rà-soát cuối = `reviewer`; ground-truth/xác-minh sự thật = `investigator-codebase`. WF1 xác nhận best-fit (investigator-api external-only + database-agent DB-only-subset đều bị loại có lý do). +- **RC-stamp:** `RC-pqhuy1987-03-07-2026-17-46-35` (`ACTIVE-MARKS.md`) — ghi 3 floor-point verbatim, anh-confirm qua AskUserQuestion "Formal adopt + RC-stamp". +- **Cơ chế đã build:** 2 lệnh `/fable-real` (thật, tạo marker) + `/fable-clone` (ảo, xóa marker — MẶC ĐỊNH) + marker `.claude/fable-real-mode.on` gitignored (verify IGNORED) + engine `§K` + reader session-start `BƯỚC 0.5b`. Ensemble "ảo" = REUSE `hmw.js` (multi-lane + em-main synthesize), không build engine mới. +- **Hai-workflow (run-id bằng chứng):** WF1 investigate **`wf_5f308fd8-744`** (SOUND_WITH_CONCERNS — tự bắt 3 floor-fidelity gap) + WF2 review **`wf_ed5b972f-a4d`** (PASS_WITH_CONCERNS, 0 BLOCKING). +- **Nấc trạng thái (đúng §6 "đã-triển-khai ≠ đã-kiểm-chứng"):** **designed + will-dogfood.** Thật-mode toggle chưa chạy thật lần nào. Ensemble-PATTERN thì đã proven (S101 WF2 Lane-B bắt một stale-label mà token-exact sweep bỏ sót, commit `f229b07`) — nhưng đó là pattern có sẵn của SE, không phải toggle mới. +- **VACUOUSLY-MET (trung thực):** dưới all-inherit + Fable-outage hiện tại, hai vị trí phán quyết ĐÃ ở top-model (Opus 4.8 1M) → floor-change "cho phép 2 vị trí chạm top-model" grant 0 runtime-delta phiên này. SE ghi rõ điều này trong RC-stamp + adap-report, KHÔNG overclaim; value = future-proof-floor + ensemble-designation + depth-toggle + anti-consensus-catch (không phải cost). + +## 4. Dogfood đáng chú ý — GAP-3 xảy ra THẬT + +WF1 lane adversarial bắt 3 floor-fidelity gap mà build buộc phải codify vào §K: (1) `hmw.js` không gate vai → ảo-run phải là N-lane-cùng-1-vai (all-inherit đang che leak này); (2) SCHEMA thiếu field engine → em-main phải stamp nhãn engine lúc harvest; (3) AS-10 fails-open → N-lane phải RETURN-only. **GAP-3 xảy ra thật ngay trong WF2:** các reviewer-lane tự ghi vào `reviewer/MEMORY.md` dù có chỉ thị RETURN-only (harness đánh dấu "intentional" nên SE giữ lại + verify nội dung). Đây là dogfood-validate ngay chính bản codify GAP-3 — nó là **convention** (kỷ luật em-main), không phải **mechanism** (hmw.js không cưỡng chế được). SE ghi trung thực nấc này, không nhận "mechanized". + +— se (S101, 2026-07-03) diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 632ef09..68b9eb7 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -2,7 +2,7 @@ > **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-03 (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. → log `2026-07-03-S101-h18-wf2-closeout.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)* +**Last updated:** 2026-07-03 (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)* --- diff --git a/docs/STATUS.md b/docs/STATUS.md index e7cf523..51a0b30 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -3,7 +3,7 @@ > **Update rule:** trước khi bắt đầu 1 task → ghi row `🔥 In Progress`. Xong → `✅ Recently Done`. > **Tiering rule (S40):** chỉ giữ **state hiện tại + 3 session gần nhất** ở file này. Session cũ hơn → `docs/changelog/sessions/`. Full history pre-S40 → `docs/_archive/STATUS-preS40-fullhistory.md`. (Tránh over-context — xóa double, không cắt nội dung.) -**Last updated:** 2026-07-03 (S101 — **H18 WF2 review closeout + session-start audit — governance/docs-only 0 prod-code, em-main-led + 1 review-workflow HMW-ON.** Session-start: test 440 baseline (0 code-delta S98→S100) · 2 monitor RE-REPORT ALL-PASS/CLEAN (tooling 4-mặt fresh + **MODEL-DRIFT bắt: runtime=Opus 4.8 KHÔNG Fable dù `settings.json:11` pin `claude-fable-5[1m]` → H5-fallback tự-kích S101, Fable unavailable phiên này, revert-free KHÔNG sửa frontmatter**; harvest 0-orphan/0-byte-0/11/0-corruption + cicd #486 dirty-delta fidelity-verified→commit) · governance-detectors 35 flag 0-CRITICAL (3 MED vocab-fork known-alias-mapped S96) · memory-selfimprove A1-A3/B1-B2 ALL-PASS 0-GAP · reinject-ledger CG-1 trống · sleep-check 1-ngày<7 skip · RAG 2431 alive. **H18 WF2 closeout (NEXT-em #1 từ S100):** WF2 gốc `wf_31ea3985-92c` MẤT theo CLI-restart (TaskList empty · mode-A no-run-folder) → đúng report-before-stamp KHÔNG bịa PASS → **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 `-RepoRoot` temp-tree: 68-gotcha→MED · 79-đúng→IM · 6-test→LOW · 88-bảng→MED [od-c verify byte `0xE1 0xBA 0xA3`='ả' khớp `$VN_BANG`]; MED derived-stale real-repo 11→0; refute 3-trục đều FAIL) · Lane-B ledger-retire **PWC** (0/15 lifetime byte-exact reversible `sed 3,4d`==parent · 6/6 consumer 🧊-repointed · history preserved; **1 CONCERN = `workflows/README.md:51` nhãn-cũ "ledger orphan-scan" sweep-S100-SÓT [grep-exact `_ledger` không match] → FIXED S101** + 2 NIT) · Lane-C codify+frontier+containment **PARTIAL** (codify-khớp-2-report + n-a-legit-H8-S66 + containment-0-residual first-hand ✓; frontier-hash `b8d2a846`≠`8b6a8354` + reviewer_gate-missing dựa **record-S100** do **broadcast inbound VẮNG khỏi repo** [inbox chỉ tới 06-20-H15v2] → process-gap ghi backlog; HELD=an-toàn dù không tái-kiểm). ⚠️ **Lane-C #53-return-garble tái-diễn lần-5** (`subagent completed without calling StructuredOutput`) → em-main recover first-hand KHÔNG re-spawn (`feedback_agent_return_garble_recover`). Stamp run-id+verdict → adap-report:5 + engine §J:283; model-note reconcile STATUS:24 + agents/README:3. State GIỮ NGUYÊN: **Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54**. → log `2026-07-03-S101-h18-wf2-closeout.md`) · **Prev S100** (S100 — **Harness-18 adopt (kiện-toàn kiến-trúc 4 khuôn-mẫu additive) + frontier-assessment HELD-integrity — governance/scripts-only 0 prod-code, em-main-led + 2 workflow HMW-ON.** `/check-email AI_INFRA` 0 directed mới → `/adap-apply` 3 broadcast: **(1) hash-verify** H18+checklist MATCH ✓ · **frontier `content_sha256` MISMATCH** (4 biến-thể canonical đều lệch, 2 file kia match → body lệch stamp) → **HELD-integrity** không codify + đề nghị AI_INFRA re-stamp; ⚠️ cả 3 thiếu field `reviewer_gate` (24 broadcast cũ đều có) → flag format-regression. **(2) J.A detector v2** (`governance-detectors.ps1`): ratio-band mismatch-only (0.5–2.0=MED stale-total, xa=LOW module-local — sửa lớp FP `|diff|≥10` NGƯỢC, S98 8/8 MED đều FP) + scan-range **glob động** ALL SKILL.md + ALL commands/*.md (vá lớp-mù "(68)" sống 11 phiên) — **fault-inject 4/4 PASS** (`-RepoRoot` temp: stale-MED/đúng-IM/local-LOW/anti-Goodhart-MED) + real-repo MED derived-stale 11→0. **(3) J.B retire `runs/_ledger.md` two-beat:** đo bắt-thật **0/15 lifetime** (đều open+close cùng-ngày 06-18) + mode-A coverage 0/8 S93+ + đính-chính "S71 `harvest/` rỗng" = criterion-wording KHÔNG phải incident (caveat-3 parity ghi honest) → freeze 🧊 1-dòng reversible + **sweep 15 điểm/8 file**; orphan-authority = folder-scan (`run.md` có mà `*-synthesis.md` vắng/0-byte). **(4) J.C bracket** 2/3 n-a-by-owner-mandate H8 + revisit-condition viết ra (C3 ĐẠT). **(5) J.D** D(a) spot-check-tươi wired `session-end §L.b(i)` (dogfood n=1) + D(b/c) REUSE reinject-ledger CG-1. **(6) Frontier self-audit (dù HELD, vô-hại):** cron monthly = **ghost-wire THẬT** (CronList runtime=0 + scheduler RỖNG 05-04 + S96 chạy 13:04 em-main) → **honest-retire 5 file** (audit = thủ-công em-main session đầu-tháng — function vẫn đúng hạn S44/S96, chỉ wiring-claim sai) · 3 script đo GLOB-LIVE ✓ 0-hardcode · MAST=0 · defer **D-1/D-2** đánh-số Maintenance backlog. **(7) Hygiene:** F2 SendMessage-note patch 2 command (runtime-verified KHẢ DỤNG lại) + B1-pointer "130 PASS"/cron-date + Co-Authored trailer → Fable. Checklist H18: **10/12 ĐẠT + 2/12 n-a-reasoned**. WF1 `wf_50a817ce-a69` 3-lane investigator (0-residual, chunk 2431==2431); **WF2 review `wf_31ea3985-92c` IN-FLIGHT lúc đóng** → session kế đọc verdict + điền run-id + email AI_INFRA. 3 adap-report committed. Đầu phiên: test **440 re-verified** + 2 monitor RE-REPORT ALL-PASS/ALL-CLEAN (`513aa09`). Dogfood frontier-method: tự-bắt 1 ca suýt-stamp run-id WF2-chưa-chạy → placeholder. State GIỮ NGUYÊN: Mig 61 · 89 bảng · 440 test · gotcha 79. → log `2026-07-02-S100-harness-18-adopt.md`) · **Prev S98** (S98 — **Harness backlog batch ĐÓNG — docs/memory-only 0 prod code, 2 commit `4263d63`+`8a249c5` CI-skip.** ✅ Fable-restore gỡ caveat H5.6: settings `claude-fable-5[1m]` + spawn-test inherit ×2 monitor self-report `claude-fable-5` → H8 all-inherit runtime-verified, fallback-Opus H5 S62→S97 kết thúc · monthly pointer→2026-08-01 · skill ef-core-migration +row Mig 60/61 · re-tier mega-line S93/S94→`docs/_archive/STATUS-HANDOFF-tier-S98-2026-07-02.md` · 3 orphan-append H2 (database-agent 4th+5th spawn S97 · reviewer S97-bis addendum · implementer-frontend S97-Part2 hook) · cicd-monitor L1 curate 19.9→17.5KB + `memory-budget.json` re-measure fresh · sleep-compress implementer-frontend `2026-H1.gist.md` distill-gen:1 · email AI_INFRA Fable-restore · ledger H10 mode-A note. Session-log skip (docs-batch). State GIỮ NGUYÊN: Mig 61 · 89 bảng · 440 test · gotcha 79. *(Flip ✅ hồi-tố @S99-start — S98 đóng thiếu flip header/row, H1 F1 catch.)*) · **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 cấp-sau-finalize `"không trình tới"`→**`"Kết thúc tại {finalizeLevelName}"`** (render-động → hiện "Kết thúc tại CCM"; fallback finalizeStepName/'cấp trên') + tooltip template-literal. **(2)** đảo default checkbox "Cấp này KẾT THÚC quy trình" **opt-out→opt-in** (`useState(true→false)` init + reset onSuccess + helper text reword + comment S96-"default checked"-drift fix) — mặc định TRÌNH TIẾP CEO, tick mới KẾT THÚC tại cấp. **FE-only mirror 2-app SHA-identical `PeWorkflowPanel.tsx` (`bcf812fd`), 0 BE/mig/test** (BE service `if(AllowApproverFinalize && applyLevelFinalize)` tôn trọng cờ FE; param default `true` giữ làm fallback caller non-FE, FE luôn POST tường minh). Workflow `wf_0e01fdba-209`: implementer-frontend (8 hunk 4×2, build×2 PASS) → reviewer (PASS 0-issue; verify comment-L121+handler-L664 giữ, logic non-break). Commit `1c8fb6a`. **cicd Run #481 PASS ~5m10s byte-level #77:** JS rotate admin `COYAX-yQ`→**`Cf0o8dx8`**/user `0MU-kb4N`→**`x8rppRAK`** (CSS frozen `Bbtesa6B`/`BmuPz_Dy` #69-REFINE logic-only; real-size 1.64/1.54MB anti-SPA-trap) · **NEW `Kết thúc tại`+helper `Mặc định…TRÌNH TIẾP` PRESENT / OLD `không trình tới`+`Đã BỎ tick` ABSENT** (fix shipped byte-level → UI-cũ=cache→incognito, KHÔNG deploy-fail) · Mig 59/88-table frozen · smoke api+admin+eoffice 200×3 + PE-list 200 items[]-valid. **Lessons:** #53 return-garble **tái-diễn lần-4** (cicd trả prose-curate-memory "18.7KB above target" thay verdict dù instruction "return-verdict" → **recover-from-diary S97-#481-entry KHÔNG re-spawn** per `feedback_agent_return_garble_recover`; instruction-fix giảm-không-100%) · BE-honors-explicit-flag → đảo-default chỉ sửa FE `useState` (BE param=fallback, FE luôn POST tường minh) = zero BE/test-churn zero-prod-risk · comment-drift cleanup trước commit. impl MEMORY compaction giữa-spawn (23.8→11.5KB, archive S76-79→`2026-H1.md` verify no-loss). **(3) endsBeforeCeo config→RUNTIME (Mig 60 `8037fa0` #482 — cross-stack, reviewer PASS 0-issue):** phiếu có cấp finalize nhưng approver opt-out → lên CEO thật + CEO duyệt, nhưng sơ đồ báo sai "kết thúc tại CCM, không qua CEO" + làm-mờ Bước CEO (endsBeforeCeo suy CONFIG). Fix: field runtime `EndedByLevelFinalize` (set CHỈ nhánh level-finalize) → EndsBeforeCeo cho phiếu DaDuyet đọc runtime; 4 projection (detail/List/Inbox/ListApproved) + FE gate làm-mờ 2-app + backfill marker; test 440 (repro `peFinButWentCeo` config-finalize+field-false→false) + reviewer 6-điểm PASS + **cicd #482 bug fixed LIVE** (PE-detail `31faef0d` endsBeforeCeo=False phase=7, EF-ternary SQL-Server 200-NOT-500) → gotcha #78 (display-flag CONFIG-vs-RUNTIME). **(4) badge "✅ Đã được CEO duyệt" (`9e12e80` #483, FE-only):** đối xứng fix-3 — phiếu DaDuyet + `!endsBeforeCeo` (đi hết lên CEO) → PeFinalizeChip hiện badge; tận-dụng cờ runtime (0 BE/mig); mirror 2-app + 6 call-site; cicd #483 byte-#77 PRESENT. **(5) Mig 61 backfill fix (`fb2dfa9` #484 data-fix):** anh Kiệt check A/005 "CEO duyệt chưa" → điều tra (API+sqlcmd) phát hiện A/005/A/008 **finalize-CCM (KHÔNG qua CEO)** nhưng badge sai "Đã được CEO duyệt" do Mig 60 backfill soi NHẦM bảng (Approvals thay Changelogs nơi marker thật). Mig 61 query đúng Changelogs → prod A/005/A/008 EndedByLevelFinalize 0→1 + endsBeforeCeo flip True (cicd #484), A/010 control unchanged → gotcha #79. database-agent điều tra + em-main verify-prod + migration. **State: Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54 · bundle admin `mEGqlNWc`/user `Dnrp4PU1` (Run #484 data-fix, #69-rebuild) · prod 21 NCC/17 user.** **REVIEW-before-session-end (anh yêu cầu, workflow `wf_4951c347` 4-lane):** prod-data-integrity CLEAN (flag-vs-marker 3 phiếu chuẩn 0-miss/0-over-reach, #78/#79 ăn prod) · prod-deploy CLEAN (11 commit deploy OK, Mig 61 applied, health 200) · code-review PASS (em-main grep 0 wrong-table khác) · feedback captured. **PROD AN TOÀN.** **🔴 NEXT anh:** UAT **incognito** phiếu "8 MEP Sub Hệ thống solar" xác nhận: (a) sơ đồ hết báo "không qua CEO" + Bước 3 CEO KHÔNG còn mờ [fix-3 mới], (b) badge "Kết thúc tại CCM" + checkbox default-unchecked [fix 1-2] (+ vụ cũ "lỗi phân quyền vào phiếu": cho số-phiếu+user). **NEXT em:** monthly re-tier mega-line pending (giờ 5-blurb S97-S93). → 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 — 5 commit prod-verified, em-main-led (HMW-mode ON; 1 prep-workflow monthly-audit + spawn-lẻ, chủ-yếu solo).** **(1) Monthly drift audit `881783c`** (docs-only CI-skip): ef-core SKILL Mig→59 + bảng rows 57/58/59 + Mig 14/Phase-7 Budget-DROPPED annotate · skills/README Mig 55→59 + gotcha #69→76 · docs/CLAUDE Budget REMOVED Mig 50 strike-through · **`docs/governance/vocab-alias-map.md` MỚI** (3 fork run-trace/Ngân-sách-PRO/all-inherit + `$ExcludeExact` anti-self-match) · **re-tier STATUS/HANDOFF mega-line 5→3 blurb** (S92/S91→archive, conservation delta=0 BOM-preserved) + hoist 3 UAT-carry→blockers · **FD memory distill** (H17 strike-1 CLEARED: L1 26129→21492B, 5 war-story→archive/`_INDEX`/gist, Lessons value-protect lên L1). Workflow `wf_2d687d27` 4-cluster draft→verify (reviewer bắt #74-paraphrase-drift + AS-10 residual reverted). detector 27→25. **(2) Import NCC DONGDUONG `ba4b8e0`** (Excel anh Kiệt "Database NCC" 4 NCC/30-field): 3 NCC đã seed sẵn (TRUONGGIANG/TANPHU/TGN) → chỉ +DONGDUONG vào SeedRealMasterDataAsync (ungated idempotent, pack extras→Note, no-mig); prod 20→21 NCC (Run #477). Backlog 15-18 field "note-lại-từ-từ-tính"→Next-up. **(3-5) 3 PE bug-fix UAT:** `e657faa` ô "Cấp này KẾT THÚC quy trình" (AllowApproverFinalize S89-auto) → **opt-out bỏ-tick-được** (2-tier: Designer=cấp-quyền / phiếu=chọn kết-thúc-hay-trình-CEO; +param `applyLevelFinalize` default-true BE + FE 2-app, Run #478) · `36cbf8b` **chuông tự sạch** noti "cần duyệt" cũ khi phiếu rời cấp (LogTransitionAsync mark-read Generic+RefId ExecuteUpdate BE-only, Run #479) · `0c2f9f6` **khóa sửa giá đề xuất PRO/CCM sau gửi-duyệt** ("duyệt là fix" — Mig 54 "KHÔNG-ràng-Phase" ĐẢO → non-admin chỉ sửa Nháp/TraLai + Admin-override; BE+FE 2-app+4 test, Run #480). Test 434→440. **Delete-sau-duyệt = ĐÃ chặn sẵn** (FE nút Xóa chỉ DangSoanThao + BE guard, không cần sửa). Checkbox "ko-được" = **browser-cache** (verify byte-level: prod bundle `0MU-kb4N` CHỨA fix + "✅-static" cũ đã mất; index.html no-cache đúng-chuẩn + no-service-worker) → **incognito = golden-test**. **State: Mig 59 · 88 bảng · 440 test (45D+395I) · gotcha 77 · menu 54 · bundle admin `COYAX-yQ`/user `0MU-kb4N` (Run #480) · prod 21 NCC/17 user.** **Lessons:** verify-deployed-artifact-byte-level (cache≠deploy; incognito golden — gotcha #77) · #53-return-garble tái-diễn ×3 (investigator + cicd×2 trả text-memory-curation thay verdict → recover từ agent-memory; instruction-fix "return-verdict" ăn lần-3) · 2-tier-permission (grant-vs-exercise) · spec-change→update-test-cũ (SeedPeAsync ChoDuyet→DangSoanThao). **🔴 NEXT anh:** UAT incognito checkbox + cho **số-phiếu/user** vụ "lỗi phân quyền vào phiếu" để em soi config-workflow. **NEXT em:** cicd-monitor S-tag-drift S97/S98→S96 reconcile (closeout này) · monthly re-tier mega-line (giờ 4-blurb S96/S95/S94/S93). → 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 fan-out (HMW-mode ON).** `/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 🔴 sàn ĐẠT:** 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 exit-0, **runtime-verified bắt frontend-designer over-cap GAP thật**) + `.claude/governance/reinject-ledger.md` (B2 CG-1 N=3, tách khỏi budget.json) + engine **§I** codify + `session-start §2.1.7`/`session-end §L.b(c)` wire + HCV alias no-seed (coverage 3-nghĩa, detector vẫn 27). **3-workflow (run-id bằng-chứng):** WF1 `wf_f085d7c4-d78` ground-truth + WF2 `wf_8e73c1d6-ee6` 3-lane review PASS 0-blocking + WF3 `wf_6f44eddf-680` deep-reverify (**fault-injection 13-inject chứng-răng-thật** + integration + cross-doc, 0 application-defect). **2 commit:** `18a17f5` (adopt — cicd **Run #476 PASS** prod 200×3, bundle rotate admin `0T6vVJST`/user `BGXEVZO6`, Mig 59 unchanged) + `65b434a` (deep-reverify docs-only CI-skip). **adap-report + 2 email AI_INFRA** (hash `54789e19` adopt + `8c94fa34` deep-reverify-update). **Dogfood C3 4-fire:** AS-10 WF1+WF3 self-write reverted (git-diff net = backstop THẬT; **instruction-fix NOT 100%** — WF3 explicit-return-only STILL self-wrote → E-006 recurrence S95, guard HELD 4/4, 0 escape; cicd-monitor diary KEPT = normal-spawn legit). **Lessons:** fault-injection-via-`-RepoRoot`-temp chứng checker-teeth (không chỉ happy-path PASS) · Lane B #53 empty-return → em-main self-gate recover · workflow-agent persona-write stochastic → git-diff mandatory. **State GIỮ NGUYÊN: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · prod 17 user/7 NCC.** **NEXT em:** frontend-designer distill (WATCH strike-1 = H17 loop's live finding) · monthly re-tier mega-line + ef-core SKILL Mig→59 + 3 vocab-fork (2026-07-01 due). → 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)* +**Last updated:** 2026-07-03 (S101 — **H18 WF2 review closeout + session-start audit — governance/docs-only 0 prod-code, em-main-led + 1 review-workflow HMW-ON.** Session-start: test 440 baseline (0 code-delta S98→S100) · 2 monitor RE-REPORT ALL-PASS/CLEAN (tooling 4-mặt fresh + **MODEL-DRIFT bắt: runtime=Opus 4.8 KHÔNG Fable dù `settings.json:11` pin `claude-fable-5[1m]` → H5-fallback tự-kích S101, Fable unavailable phiên này, revert-free KHÔNG sửa frontmatter**; harvest 0-orphan/0-byte-0/11/0-corruption + cicd #486 dirty-delta fidelity-verified→commit) · governance-detectors 35 flag 0-CRITICAL (3 MED vocab-fork known-alias-mapped S96) · memory-selfimprove A1-A3/B1-B2 ALL-PASS 0-GAP · reinject-ledger CG-1 trống · sleep-check 1-ngày<7 skip · RAG 2431 alive. **H18 WF2 closeout (NEXT-em #1 từ S100):** WF2 gốc `wf_31ea3985-92c` MẤT theo CLI-restart (TaskList empty · mode-A no-run-folder) → đúng report-before-stamp KHÔNG bịa PASS → **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 `-RepoRoot` temp-tree: 68-gotcha→MED · 79-đúng→IM · 6-test→LOW · 88-bảng→MED [od-c verify byte `0xE1 0xBA 0xA3`='ả' khớp `$VN_BANG`]; MED derived-stale real-repo 11→0; refute 3-trục đều FAIL) · Lane-B ledger-retire **PWC** (0/15 lifetime byte-exact reversible `sed 3,4d`==parent · 6/6 consumer 🧊-repointed · history preserved; **1 CONCERN = `workflows/README.md:51` nhãn-cũ "ledger orphan-scan" sweep-S100-SÓT [grep-exact `_ledger` không match] → FIXED S101** + 2 NIT) · Lane-C codify+frontier+containment **PARTIAL** (codify-khớp-2-report + n-a-legit-H8-S66 + containment-0-residual first-hand ✓; frontier-hash `b8d2a846`≠`8b6a8354` + reviewer_gate-missing dựa **record-S100** do **broadcast inbound VẮNG khỏi repo** [inbox chỉ tới 06-20-H15v2] → process-gap ghi backlog; HELD=an-toàn dù không tái-kiểm). ⚠️ **Lane-C #53-return-garble tái-diễn lần-5** (`subagent completed without calling StructuredOutput`) → em-main recover first-hand KHÔNG re-spawn (`feedback_agent_return_garble_recover`). Stamp run-id+verdict → adap-report:5 + engine §J:283; model-note reconcile STATUS:24 + agents/README:3. State GIỮ NGUYÊN: **Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54**. **PART 2 — `/check-email AI_INFRA` + `/adap-apply` (anh-directed):** directed ack `batch13` pull+verify (whole-file + body-hash `72aaeee` MATCH) → AI_INFRA **ack trọn 13 báo cáo SE** (bắt-kịp H-17; deep-reverify H-17="mạnh nhất fleet"; Fable-restore H-8 runtime-verified S98 ghi-nhận); **re-stamp H10** body-hash lỗi-phương-pháp `5f511fe5`→`5f8b8504` (no-strip→canonical) + **frontier flag#2 RESOLVED** (AI_INFRA xác-nhận lỗi-stamp-của-họ → re-stamp `8b6a8354`=đúng-SE-computed, SE HELD đúng). **4 broadcast 07-03 adap (hash-MATCH + reviewer_gate PASS — format-regression H18 fixed):** model-tier **12/12** (SE all-inherit form-valid per autonomy; v2-pin-simple KHÔNG mandate→SE giữ all-inherit; C3 `[1m]`=0 frontmatter-scoped) + Q1/Q2-documented + selftest-stamp→send-email · **H19 fable-clone FORMAL ADOPT + RC-stamp `RC-pqhuy1987-03-07-2026-17-46-35`** (anh chọn "Formal adopt" + "full 2-workflow": WF1 `wf_5f308fd8-744` SOUND_WITH_CONCERNS [3 floor-fidelity gap; lost-to-interruption→resume-cached] + WF2 `wf_ed5b972f-a4d` PASS_WITH_CONCERNS 0-BLOCKING): 2 command `/fable-real`+`/fable-clone` thật/ảo-toggle (semantic-inverse marker-vắng=ảo-DEFAULT) + marker `.claude/fable-real-mode.on` gitignored + engine **§K** (K.A-K.D + 3 gap) + session-start **BƯỚC 0.5b reader** (WF2-Lane-A-fix marker-write-only) + 4 adap-report. Mapping reviewer+investigator-codebase. Honest **VACUOUSLY-MET-SE-today** (all-inherit→2 vị-trí đã top-model→0 runtime-delta; value=future-proof-floor + anti-consensus-catch KHÔNG cost; nấc designed+will-dogfood). ⚠️ **GAP-3 AS-10 fired LIVE** (WF2 lanes tự-ghi reviewer-memory dù RETURN-only → harness-sanctioned KEPT → dogfood-validate §K.C "convention-KHÔNG-mechanism" ngay trong review chính bản codify). +2 command · RC-mark 4 Active-High · engine §K. → log `2026-07-03-S101-h18-wf2-closeout.md` + `2026-07-03-S101-h19-fable-clone-adopt.md`) · **Prev S100** (S100 — **Harness-18 adopt (kiện-toàn kiến-trúc 4 khuôn-mẫu additive) + frontier-assessment HELD-integrity — governance/scripts-only 0 prod-code, em-main-led + 2 workflow HMW-ON.** `/check-email AI_INFRA` 0 directed mới → `/adap-apply` 3 broadcast: **(1) hash-verify** H18+checklist MATCH ✓ · **frontier `content_sha256` MISMATCH** (4 biến-thể canonical đều lệch, 2 file kia match → body lệch stamp) → **HELD-integrity** không codify + đề nghị AI_INFRA re-stamp; ⚠️ cả 3 thiếu field `reviewer_gate` (24 broadcast cũ đều có) → flag format-regression. **(2) J.A detector v2** (`governance-detectors.ps1`): ratio-band mismatch-only (0.5–2.0=MED stale-total, xa=LOW module-local — sửa lớp FP `|diff|≥10` NGƯỢC, S98 8/8 MED đều FP) + scan-range **glob động** ALL SKILL.md + ALL commands/*.md (vá lớp-mù "(68)" sống 11 phiên) — **fault-inject 4/4 PASS** (`-RepoRoot` temp: stale-MED/đúng-IM/local-LOW/anti-Goodhart-MED) + real-repo MED derived-stale 11→0. **(3) J.B retire `runs/_ledger.md` two-beat:** đo bắt-thật **0/15 lifetime** (đều open+close cùng-ngày 06-18) + mode-A coverage 0/8 S93+ + đính-chính "S71 `harvest/` rỗng" = criterion-wording KHÔNG phải incident (caveat-3 parity ghi honest) → freeze 🧊 1-dòng reversible + **sweep 15 điểm/8 file**; orphan-authority = folder-scan (`run.md` có mà `*-synthesis.md` vắng/0-byte). **(4) J.C bracket** 2/3 n-a-by-owner-mandate H8 + revisit-condition viết ra (C3 ĐẠT). **(5) J.D** D(a) spot-check-tươi wired `session-end §L.b(i)` (dogfood n=1) + D(b/c) REUSE reinject-ledger CG-1. **(6) Frontier self-audit (dù HELD, vô-hại):** cron monthly = **ghost-wire THẬT** (CronList runtime=0 + scheduler RỖNG 05-04 + S96 chạy 13:04 em-main) → **honest-retire 5 file** (audit = thủ-công em-main session đầu-tháng — function vẫn đúng hạn S44/S96, chỉ wiring-claim sai) · 3 script đo GLOB-LIVE ✓ 0-hardcode · MAST=0 · defer **D-1/D-2** đánh-số Maintenance backlog. **(7) Hygiene:** F2 SendMessage-note patch 2 command (runtime-verified KHẢ DỤNG lại) + B1-pointer "130 PASS"/cron-date + Co-Authored trailer → Fable. Checklist H18: **10/12 ĐẠT + 2/12 n-a-reasoned**. WF1 `wf_50a817ce-a69` 3-lane investigator (0-residual, chunk 2431==2431); **WF2 review `wf_31ea3985-92c` IN-FLIGHT lúc đóng** → session kế đọc verdict + điền run-id + email AI_INFRA. 3 adap-report committed. Đầu phiên: test **440 re-verified** + 2 monitor RE-REPORT ALL-PASS/ALL-CLEAN (`513aa09`). Dogfood frontier-method: tự-bắt 1 ca suýt-stamp run-id WF2-chưa-chạy → placeholder. State GIỮ NGUYÊN: Mig 61 · 89 bảng · 440 test · gotcha 79. → log `2026-07-02-S100-harness-18-adopt.md`) · **Prev S98** (S98 — **Harness backlog batch ĐÓNG — docs/memory-only 0 prod code, 2 commit `4263d63`+`8a249c5` CI-skip.** ✅ Fable-restore gỡ caveat H5.6: settings `claude-fable-5[1m]` + spawn-test inherit ×2 monitor self-report `claude-fable-5` → H8 all-inherit runtime-verified, fallback-Opus H5 S62→S97 kết thúc · monthly pointer→2026-08-01 · skill ef-core-migration +row Mig 60/61 · re-tier mega-line S93/S94→`docs/_archive/STATUS-HANDOFF-tier-S98-2026-07-02.md` · 3 orphan-append H2 (database-agent 4th+5th spawn S97 · reviewer S97-bis addendum · implementer-frontend S97-Part2 hook) · cicd-monitor L1 curate 19.9→17.5KB + `memory-budget.json` re-measure fresh · sleep-compress implementer-frontend `2026-H1.gist.md` distill-gen:1 · email AI_INFRA Fable-restore · ledger H10 mode-A note. Session-log skip (docs-batch). State GIỮ NGUYÊN: Mig 61 · 89 bảng · 440 test · gotcha 79. *(Flip ✅ hồi-tố @S99-start — S98 đóng thiếu flip header/row, H1 F1 catch.)*) · **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 cấp-sau-finalize `"không trình tới"`→**`"Kết thúc tại {finalizeLevelName}"`** (render-động → hiện "Kết thúc tại CCM"; fallback finalizeStepName/'cấp trên') + tooltip template-literal. **(2)** đảo default checkbox "Cấp này KẾT THÚC quy trình" **opt-out→opt-in** (`useState(true→false)` init + reset onSuccess + helper text reword + comment S96-"default checked"-drift fix) — mặc định TRÌNH TIẾP CEO, tick mới KẾT THÚC tại cấp. **FE-only mirror 2-app SHA-identical `PeWorkflowPanel.tsx` (`bcf812fd`), 0 BE/mig/test** (BE service `if(AllowApproverFinalize && applyLevelFinalize)` tôn trọng cờ FE; param default `true` giữ làm fallback caller non-FE, FE luôn POST tường minh). Workflow `wf_0e01fdba-209`: implementer-frontend (8 hunk 4×2, build×2 PASS) → reviewer (PASS 0-issue; verify comment-L121+handler-L664 giữ, logic non-break). Commit `1c8fb6a`. **cicd Run #481 PASS ~5m10s byte-level #77:** JS rotate admin `COYAX-yQ`→**`Cf0o8dx8`**/user `0MU-kb4N`→**`x8rppRAK`** (CSS frozen `Bbtesa6B`/`BmuPz_Dy` #69-REFINE logic-only; real-size 1.64/1.54MB anti-SPA-trap) · **NEW `Kết thúc tại`+helper `Mặc định…TRÌNH TIẾP` PRESENT / OLD `không trình tới`+`Đã BỎ tick` ABSENT** (fix shipped byte-level → UI-cũ=cache→incognito, KHÔNG deploy-fail) · Mig 59/88-table frozen · smoke api+admin+eoffice 200×3 + PE-list 200 items[]-valid. **Lessons:** #53 return-garble **tái-diễn lần-4** (cicd trả prose-curate-memory "18.7KB above target" thay verdict dù instruction "return-verdict" → **recover-from-diary S97-#481-entry KHÔNG re-spawn** per `feedback_agent_return_garble_recover`; instruction-fix giảm-không-100%) · BE-honors-explicit-flag → đảo-default chỉ sửa FE `useState` (BE param=fallback, FE luôn POST tường minh) = zero BE/test-churn zero-prod-risk · comment-drift cleanup trước commit. impl MEMORY compaction giữa-spawn (23.8→11.5KB, archive S76-79→`2026-H1.md` verify no-loss). **(3) endsBeforeCeo config→RUNTIME (Mig 60 `8037fa0` #482 — cross-stack, reviewer PASS 0-issue):** phiếu có cấp finalize nhưng approver opt-out → lên CEO thật + CEO duyệt, nhưng sơ đồ báo sai "kết thúc tại CCM, không qua CEO" + làm-mờ Bước CEO (endsBeforeCeo suy CONFIG). Fix: field runtime `EndedByLevelFinalize` (set CHỈ nhánh level-finalize) → EndsBeforeCeo cho phiếu DaDuyet đọc runtime; 4 projection (detail/List/Inbox/ListApproved) + FE gate làm-mờ 2-app + backfill marker; test 440 (repro `peFinButWentCeo` config-finalize+field-false→false) + reviewer 6-điểm PASS + **cicd #482 bug fixed LIVE** (PE-detail `31faef0d` endsBeforeCeo=False phase=7, EF-ternary SQL-Server 200-NOT-500) → gotcha #78 (display-flag CONFIG-vs-RUNTIME). **(4) badge "✅ Đã được CEO duyệt" (`9e12e80` #483, FE-only):** đối xứng fix-3 — phiếu DaDuyet + `!endsBeforeCeo` (đi hết lên CEO) → PeFinalizeChip hiện badge; tận-dụng cờ runtime (0 BE/mig); mirror 2-app + 6 call-site; cicd #483 byte-#77 PRESENT. **(5) Mig 61 backfill fix (`fb2dfa9` #484 data-fix):** anh Kiệt check A/005 "CEO duyệt chưa" → điều tra (API+sqlcmd) phát hiện A/005/A/008 **finalize-CCM (KHÔNG qua CEO)** nhưng badge sai "Đã được CEO duyệt" do Mig 60 backfill soi NHẦM bảng (Approvals thay Changelogs nơi marker thật). Mig 61 query đúng Changelogs → prod A/005/A/008 EndedByLevelFinalize 0→1 + endsBeforeCeo flip True (cicd #484), A/010 control unchanged → gotcha #79. database-agent điều tra + em-main verify-prod + migration. **State: Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54 · bundle admin `mEGqlNWc`/user `Dnrp4PU1` (Run #484 data-fix, #69-rebuild) · prod 21 NCC/17 user.** **REVIEW-before-session-end (anh yêu cầu, workflow `wf_4951c347` 4-lane):** prod-data-integrity CLEAN (flag-vs-marker 3 phiếu chuẩn 0-miss/0-over-reach, #78/#79 ăn prod) · prod-deploy CLEAN (11 commit deploy OK, Mig 61 applied, health 200) · code-review PASS (em-main grep 0 wrong-table khác) · feedback captured. **PROD AN TOÀN.** **🔴 NEXT anh:** UAT **incognito** phiếu "8 MEP Sub Hệ thống solar" xác nhận: (a) sơ đồ hết báo "không qua CEO" + Bước 3 CEO KHÔNG còn mờ [fix-3 mới], (b) badge "Kết thúc tại CCM" + checkbox default-unchecked [fix 1-2] (+ vụ cũ "lỗi phân quyền vào phiếu": cho số-phiếu+user). **NEXT em:** monthly re-tier mega-line pending (giờ 5-blurb S97-S93). → 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 — 5 commit prod-verified, em-main-led (HMW-mode ON; 1 prep-workflow monthly-audit + spawn-lẻ, chủ-yếu solo).** **(1) Monthly drift audit `881783c`** (docs-only CI-skip): ef-core SKILL Mig→59 + bảng rows 57/58/59 + Mig 14/Phase-7 Budget-DROPPED annotate · skills/README Mig 55→59 + gotcha #69→76 · docs/CLAUDE Budget REMOVED Mig 50 strike-through · **`docs/governance/vocab-alias-map.md` MỚI** (3 fork run-trace/Ngân-sách-PRO/all-inherit + `$ExcludeExact` anti-self-match) · **re-tier STATUS/HANDOFF mega-line 5→3 blurb** (S92/S91→archive, conservation delta=0 BOM-preserved) + hoist 3 UAT-carry→blockers · **FD memory distill** (H17 strike-1 CLEARED: L1 26129→21492B, 5 war-story→archive/`_INDEX`/gist, Lessons value-protect lên L1). Workflow `wf_2d687d27` 4-cluster draft→verify (reviewer bắt #74-paraphrase-drift + AS-10 residual reverted). detector 27→25. **(2) Import NCC DONGDUONG `ba4b8e0`** (Excel anh Kiệt "Database NCC" 4 NCC/30-field): 3 NCC đã seed sẵn (TRUONGGIANG/TANPHU/TGN) → chỉ +DONGDUONG vào SeedRealMasterDataAsync (ungated idempotent, pack extras→Note, no-mig); prod 20→21 NCC (Run #477). Backlog 15-18 field "note-lại-từ-từ-tính"→Next-up. **(3-5) 3 PE bug-fix UAT:** `e657faa` ô "Cấp này KẾT THÚC quy trình" (AllowApproverFinalize S89-auto) → **opt-out bỏ-tick-được** (2-tier: Designer=cấp-quyền / phiếu=chọn kết-thúc-hay-trình-CEO; +param `applyLevelFinalize` default-true BE + FE 2-app, Run #478) · `36cbf8b` **chuông tự sạch** noti "cần duyệt" cũ khi phiếu rời cấp (LogTransitionAsync mark-read Generic+RefId ExecuteUpdate BE-only, Run #479) · `0c2f9f6` **khóa sửa giá đề xuất PRO/CCM sau gửi-duyệt** ("duyệt là fix" — Mig 54 "KHÔNG-ràng-Phase" ĐẢO → non-admin chỉ sửa Nháp/TraLai + Admin-override; BE+FE 2-app+4 test, Run #480). Test 434→440. **Delete-sau-duyệt = ĐÃ chặn sẵn** (FE nút Xóa chỉ DangSoanThao + BE guard, không cần sửa). Checkbox "ko-được" = **browser-cache** (verify byte-level: prod bundle `0MU-kb4N` CHỨA fix + "✅-static" cũ đã mất; index.html no-cache đúng-chuẩn + no-service-worker) → **incognito = golden-test**. **State: Mig 59 · 88 bảng · 440 test (45D+395I) · gotcha 77 · menu 54 · bundle admin `COYAX-yQ`/user `0MU-kb4N` (Run #480) · prod 21 NCC/17 user.** **Lessons:** verify-deployed-artifact-byte-level (cache≠deploy; incognito golden — gotcha #77) · #53-return-garble tái-diễn ×3 (investigator + cicd×2 trả text-memory-curation thay verdict → recover từ agent-memory; instruction-fix "return-verdict" ăn lần-3) · 2-tier-permission (grant-vs-exercise) · spec-change→update-test-cũ (SeedPeAsync ChoDuyet→DangSoanThao). **🔴 NEXT anh:** UAT incognito checkbox + cho **số-phiếu/user** vụ "lỗi phân quyền vào phiếu" để em soi config-workflow. **NEXT em:** cicd-monitor S-tag-drift S97/S98→S96 reconcile (closeout này) · monthly re-tier mega-line (giờ 4-blurb S96/S95/S94/S93). → 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 fan-out (HMW-mode ON).** `/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 🔴 sàn ĐẠT:** 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 exit-0, **runtime-verified bắt frontend-designer over-cap GAP thật**) + `.claude/governance/reinject-ledger.md` (B2 CG-1 N=3, tách khỏi budget.json) + engine **§I** codify + `session-start §2.1.7`/`session-end §L.b(c)` wire + HCV alias no-seed (coverage 3-nghĩa, detector vẫn 27). **3-workflow (run-id bằng-chứng):** WF1 `wf_f085d7c4-d78` ground-truth + WF2 `wf_8e73c1d6-ee6` 3-lane review PASS 0-blocking + WF3 `wf_6f44eddf-680` deep-reverify (**fault-injection 13-inject chứng-răng-thật** + integration + cross-doc, 0 application-defect). **2 commit:** `18a17f5` (adopt — cicd **Run #476 PASS** prod 200×3, bundle rotate admin `0T6vVJST`/user `BGXEVZO6`, Mig 59 unchanged) + `65b434a` (deep-reverify docs-only CI-skip). **adap-report + 2 email AI_INFRA** (hash `54789e19` adopt + `8c94fa34` deep-reverify-update). **Dogfood C3 4-fire:** AS-10 WF1+WF3 self-write reverted (git-diff net = backstop THẬT; **instruction-fix NOT 100%** — WF3 explicit-return-only STILL self-wrote → E-006 recurrence S95, guard HELD 4/4, 0 escape; cicd-monitor diary KEPT = normal-spawn legit). **Lessons:** fault-injection-via-`-RepoRoot`-temp chứng checker-teeth (không chỉ happy-path PASS) · Lane B #53 empty-return → em-main self-gate recover · workflow-agent persona-write stochastic → git-diff mandatory. **State GIỮ NGUYÊN: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · prod 17 user/7 NCC.** **NEXT em:** frontend-designer distill (WATCH strike-1 = H17 loop's live finding) · monthly re-tier mega-line + ef-core SKILL Mig→59 + 3 vocab-fork (2026-07-01 due). → 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)* --- @@ -37,6 +37,7 @@ |---|---|---| | **PE "lỗi phân quyền vào phiếu"** (anh Kiệt UAT báo) — chờ **số-phiếu + user** để soi config workflow (nhiều khả năng user chưa được gán approver Cấp phiếu đang chờ — config, không phải code-bug) | 👤 em main | ⚪ pending (chờ anh specifics) | | ✅ **H18 WF2 review closeout** — DONE S101: WF2 gốc `wf_31ea3985-92c` mất theo CLI-restart → **re-run fresh `wf_955643c3-f7d` → PASS_WITH_CONCERNS** (Lane-A detector-teeth PASS fault-inject-4/4 · Lane-B ledger PWC 1-concern `workflows/README:51`-FIXED · Lane-C PARTIAL: codify+containment first-hand ✓, frontier-hash+reviewer_gate dựa record-S100 do broadcast-inbound vắng repo; Lane-C #53-garble→recover). Verdict stamped adap-report:5 + engine §J:283. Còn: `/send-email AI_INFRA` + commit | 👤 em main | 🟢 done | +| ✅ **H19 fable-clone formal adopt + model-tier compliance** — DONE S101 (anh-directed `/check-email`+`/adap-apply`): RC-stamp `RC-…03-07-2026-17-46-35` + 2 command thật/ảo + engine §K + BƯỚC 0.5b + 4 adap-report; 2-workflow WF1 `wf_5f308fd8-744` + WF2 `wf_ed5b972f-a4d` PASS_WITH_CONCERNS. Model-tier 12/12. Frontier flag#2 resolved + H10 re-stamp. Còn: `/send-email AI_INFRA` + commit + ⚠️ restart CLI (2 command + BƯỚC 0.5b) | 👤 em main | 🟢 done | --- diff --git a/docs/changelog/sessions/2026-07-03-S101-h19-fable-clone-adopt.md b/docs/changelog/sessions/2026-07-03-S101-h19-fable-clone-adopt.md new file mode 100644 index 0000000..6145d58 --- /dev/null +++ b/docs/changelog/sessions/2026-07-03-S101-h19-fable-clone-adopt.md @@ -0,0 +1,33 @@ +# S101 (part 2) — check-email AI_INFRA + H19 fable-clone formal adopt + model-tier compliance (2026-07-03) + +> **governance-only · 0 prod-code · em-main-led (single-writer D9) + 2-workflow HMW.** Tiếp sau H18 WF2 closeout (commit `f229b07`). anh-directed: `/check-email AI_INFRA` + `/adap-apply` → AskUserQuestion "Formal adopt H19 + RC-stamp" + "full 2-workflow". + +## Check-email AI_INFRA (2-stage, verify-hash) +- **Directed pull:** `2026-07-03-ai_infra-to-se-batch13-ack-stamp-and-answers` → copy inbox → whole-file byte-identical ✓ + body-hash `72aaeee…` MATCH ✓ → processed → `inbox/ai_infra/`. Logged `_index.md`. +- **Nội dung ack:** AI_INFRA **ack trọn 13 báo cáo SE** (H-7→H-17 + Fable-restore); SE bắt-kịp tới H-17; H-17 deep-reverify = "bằng-chứng mạnh nhất fleet". Fable-restore H-8 runtime-verified S98 **ghi-nhận**. Trả lời Q1 (detector workflow-bypass = sàn-chức-năng, form tự chọn) + Q2 (KHÔNG chuẩn số hysteresis cứng). +- **2 fix từ ack:** (1) **re-stamp H10** `2026-06-18-...harness-10-flat-refine` — body-hash declared = biến-thể no-strip-newline (lỗi phương-pháp, KHÔNG tamper) → sửa `5f511fe5`→`5f8b8504` (canonical) + `_index`. (2) **frontier `content_sha256` MISMATCH** (flag #2 S100) = AI_INFRA xác-nhận lỗi stamp của họ → **đã re-stamp 07-03** về `8b6a8354` (đúng giá-trị SE computed) → **flag #2 RESOLVED**, SE HELD đúng. + +## Adap-apply 4 broadcast MỚI (07-03, đều hash-MATCH + reviewer_gate PASS) +### Model-tier (v1 fable-opus + checklist + v2 pin-simple) — SE đã đạt floor +- **12/12** (10 met + A4-A6 N/A-by-valid-form all-inherit). SE form = all-inherit (owner-directive S66) hợp lệ per form-autonomy; v2 pin-simple KHÔNG mandate → SE giữ all-inherit (deterministic hơn: 0 per-spawn downgrade để quên). C3 `[1m]`=0 frontmatter-scoped (naive grep 4 PROSE hit → codify awk-idiom). +- Q1/Q2 documented: G-015 folder-scan + hysteresis 0.85/5/2 `memory-budget.json`. **Selftest-stamp** áp vào `send-email.md` step 6c (recompute-after-write, ABORT nếu lệch). + +### H19 fable-clone (model-ảo ensemble) — FORMAL ADOPT + RC-stamp +**2-workflow Harness-9:** WF1 investigate `wf_5f308fd8-744` (3 lane, SOUND_WITH_CONCERNS — bắt 3 floor-fidelity gap; lost-to-interruption → resume-cached) + WF2 review `wf_ed5b972f-a4d` (3 lane, PASS_WITH_CONCERNS 0-BLOCKING). +- **Mapping:** reviewer (cổng-cuối) + investigator-codebase (ground-truth). WF1-confirmed best-fit. +- **Build (7 artifact):** `/fable-real` + `/fable-clone` command (thật/ảo toggle, semantic-inverse: marker-vắng=ảo-DEFAULT) + marker `.claude/fable-real-mode.on` gitignored (verify IGNORED) + engine **§K** (K.A-K.D) + **RC-stamp** `RC-pqhuy1987-03-07-2026-17-46-35` (3 floor-point verbatim + VACUOUSLY-MET-annotation) + session-start **BƯỚC 0.5b reader** (WF2-fix) + 4 adap-report. +- **3 §K floor-fidelity gap (WF1-L3):** GAP-1 ảo-run=N-lane-CÙNG-1-vai (hmw.js không gate, all-inherit che leak) · GAP-2 engine-label @harvest (SCHEMA thiếu field) · GAP-3 N-lane RETURN-only chống AS-10. +- **Honest nấc:** VACUOUSLY-MET-SE-today (all-inherit → 2 vị-trí đã top-model → 0 runtime-delta); value = future-proof-floor + ensemble-designation + toggle + Fable-outage anti-consensus-catch (KHÔNG cost). Nấc = **designed + will-dogfood** (thật-mode chưa chạy thật). + +## Lessons +- **GAP-3 AS-10 fired LIVE trong WF2** — reviewer-lanes tự-ghi `reviewer/MEMORY.md` dù RETURN-only-intent (harness "intentional"→KEPT+verified) → **dogfood-validate ngay chính bản codify GAP-3** rằng nó = convention-KHÔNG-mechanism (hmw.js không gate được). +- **WF2 Lane-A bắt "mirror-toggle copies WRITER, drops READER"** — persist-claim cần CẢ write-on-set VÀ read-on-session-start; verify consumer tồn tại, không chỉ producer. → fix thêm BƯỚC 0.5b. +- **Workflow lost-to-interruption ×2** (WF2-orig S100, WF1-first S101) → `resumeFromRunId` cached-recovery = chống fragility đúng thiết kế. +- **hex→SHA disambiguation** (WF2 Lane-C): recompute cả 2 biến-thể strip/no-strip để chứng hex là body-hash KHÔNG phải commit-SHA khi text mơ-hồ. + +## State (GIỮ NGUYÊN) +Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54 · **+2 command (fable-real/clone) + 1 RC-mark (4 Active-High) + engine §K**. + +## NEXT +- **em:** `/send-email AI_INFRA` (ack + model-tier 12/12 + H19 adopt run-id WF1+WF2 + re-stamp H10 confirm) → commit + push (docs/.claude-only CI-skip). +- **anh (carry S97):** UAT incognito "8 MEP Sub solar" + số-phiếu/user "lỗi phân quyền". ⚠️ **restart CLI** để 2 command fable-* + BƯỚC 0.5b load runtime. diff --git a/docs/governance/adap-reports/2026-07-03-Agent-harness-19-fable-clone.md b/docs/governance/adap-reports/2026-07-03-Agent-harness-19-fable-clone.md new file mode 100644 index 0000000..84fd86a --- /dev/null +++ b/docs/governance/adap-reports/2026-07-03-Agent-harness-19-fable-clone.md @@ -0,0 +1,29 @@ +# adap-report — 2026-07-03-Agent-harness-19-fable-clone (SE) + +> **Broadcast:** `2026-07-03-Agent-harness-19-fable-clone.md` (outbox/all AI_INFRA). **Adopt S101 (2026-07-03), anh-directed** (`/check-email AI_INFRA` → `/adap-apply` → AskUserQuestion "Formal adopt + RC-stamp" + "full 2-workflow"). +> **Integrity gate:** `content_sha256` re-compute = `6909299a…` **MATCH ✓** (canonical split-frontmatter + strip-1-leading-newline + SHA256-UTF8). Frontmatter **có `reviewer_gate: PASS`** (format-regression H18 — thiếu field — đã được sửa; cả 4 broadcast đợt 07-03 đều mang field). `supersedes_scope: extend` (thêm cơ-chế ensemble cho 2 vị-trí phán-quyết; KHÔNG supersede floor "lead luôn top-model"). +> **Harness-9 mandate 2-workflow:** WF1 investigate **`wf_5f308fd8-744`** (3 lane: wiring + mapping + adversarial-critique → SOUND_WITH_CONCERNS, tự bắt 3 floor-fidelity gap; run bị mất theo session-interruption rồi resume-cached) + WF2 review **`wf_ed5b972f-a4d`** (→ **PASS_WITH_CONCERNS** 0-BLOCKING: Lane-A mechanism PWC [1 CONCERN marker write-only no-reader → FIXED S101 session-start BƯỚC 0.5b reader] · Lane-B gov-record PASS [RC-mark 3-floor verbatim + vacuous-honest] · Lane-C adap-honesty PASS [4 broadcast hash MATCH indep-recompute + model-tier 12/12 + no-overclaim]). ⚠️ **GAP-3 AS-10 fired LIVE** trong WF2 — reviewer-lanes tự-ghi `reviewer/MEMORY.md` dù RETURN-only-intent (harness "intentional" → KEPT + verified) → dogfood-validate §K.C "GAP-3 = convention KHÔNG mechanism" ngay trong lúc review chính bản codify GAP-3. + +## Nấc per-pattern (G-011: agreed / executed / verified) + +| Pattern | Nấc | Evidence | +|---|---|---| +| **K.A — Ánh-xạ 2 vị-trí phán-quyết** (reviewer=cổng-cuối · investigator-codebase=ground-truth) | **executed-file + WF1-confirmed** | WF1-L2 xác nhận best-fit, không có alternative tốt hơn: `investigator-api` external-only (loại), `database-agent` DB-only-subset (loại). Đúng cặp dogfood S101 (WF2 3-lane reviewer · WF1 3-lane investigator-codebase). | +| **K.B — Cơ-chế 2 mode + toggle marker** | **executed-file, verified-pending-restart** | 2 command `.claude/commands/fable-real.md` + `fable-clone.md` (mirror `/ultra-on` `/ultra-off`, semantic INVERSE: marker-vắng=ảo-DEFAULT) + marker `.claude/fable-real-mode.on` **gitignored** (`git check-ignore` = IGNORED ✓, control hmw-mode.on=IGNORED + command-file=tracked). Command `.md` no hot-reload → runtime từ session KẾ. | +| **K.C — 3 floor-fidelity gap** (scope-guard · engine-label · single-writer) | **codified convention (KHÔNG mechanized — honest)** | WF1-L3 adversarial bắt: GAP-1 `hmw.js` VALID_ROLES 9-vai KHÔNG gate (all-inherit CHE leak) → §K pin "ảo-run = N lane CÙNG 1 vai" · GAP-2 SCHEMA `memoryDelta` KHÔNG field engine → em-main stamp @P3 · GAP-3 AS-10 fails-open → N lane RETURN-only. Cả 3 = kỷ-luật em-main, KHÔNG máy-ép. | +| **K.D — 3 floor-point RC-stamp** (§9) | **executed-file** | `RC-pqhuy1987-03-07-2026-17-46-35` trong `ACTIVE-MARKS.md` (3 point verbatim + annotate VACUOUSLY-MET-SE-today). P4 report-before-stamp dogfood: check-email→WF1-investigate→present→anh-confirm→stamp. | + +## Tailored / Skip / Phản-biện (§F4 + §M) + +- **Tailored:** tên mode `Fable-real`/`Fable-clone` (anh-đặt, thay `/model-real-on`/`off` đề-xuất) — khớp chính tên broadcast "fable-clone". Ensemble = **REUSE `hmw.js`** (KHÔNG build engine mới) vì SE đã có multi-lane + em-main synthesize (proven S101). Toggle marker mirror `/ultra-on` pattern SE sẵn có. +- **🔴 Honest caveat trọng-tâm — VACUOUSLY-MET-for-SE-today (WF1-L3 + synthesis):** dưới **H8 all-inherit + Fable-outage** (mọi vai đang Opus-1M), reviewer + investigator-codebase **ĐÃ top-model** → floor-point-2 ("cho phép 2 vị-trí chạm top-model") grant **0 runtime-delta**; floor-point-3 ("vai khác giữ mặc-định") trivially-held vì SE **không có vai tier-thấp** (all-inherit owner-directive S66). Stamp **KHÔNG overclaim** một model-tier-delta đang inert phiên này. Value THẬT = (a) formalize ensemble-cho-heavy-judgment, (b) thật/ảo depth-toggle = anh depth-control, (c) future-proof floor (khi Fable về + phân-tầng thì permission thành load-bearing). +- **Value ≠ cost (đúng nấc broadcast §8):** ensemble "không rẻ hơn nhiều về token thô"; cái được = **anti-consensus-catch** — dogfood S101 WF2 Lane-B bắt `workflows/README:51` stale-label mà token-exact-sweep sót (commit `f229b07`; run-folder ephemeral → cite COMMIT KHÔNG run-folder). +- **Skip:** KHÔNG build engine ensemble riêng (reuse hmw.js). KHÔNG thêm field engine vào SCHEMA (defer — em-main stamp @harvest đủ; sửa SCHEMA = đụng hmw.js core, cân nhắc sau nếu ensemble-run tăng tần-suất). +- **No-overclaim (G-015):** mechanized THẬT = CHỈ marker-toggle (Write/Remove gitignored) + hmw.js parallel-lanes. Scope-guard (GAP-1) + engine-label (GAP-2) + single-writer (GAP-3) = **convention** (hmw.js không gate vai — 3 gap này giữ bằng kỷ-luật em-main, KHÔNG máy). + +## Codify + hậu-kiểm + +- Engine: `harness-11-engine.md` **§K** (K.A–K.D + honest nấc). RC-stamp `ACTIVE-MARKS.md`. 2 command + marker + `.gitignore` rule. +- Nấc trạng-thái tổng: **designed + will-dogfood** — ensemble-pattern proven S101 (anti-consensus-catch thật); **thật-mode toggle CHƯA chạy thật lần nào** (đã-triển-khai ≠ đã-kiểm-chứng-thật-mode, broadcast §6). +- ⚠️ **restart CLI** để 2 command load runtime (no hot-reload). +- Report → AI_INFRA (`/send-email` kèm run-id WF1 `wf_5f308fd8-744` + WF2 `` + nấc honest + VACUOUS-annotation). diff --git a/docs/governance/adap-reports/2026-07-03-Governance-checklist-model-tier.md b/docs/governance/adap-reports/2026-07-03-Governance-checklist-model-tier.md new file mode 100644 index 0000000..fe8cd8a --- /dev/null +++ b/docs/governance/adap-reports/2026-07-03-Governance-checklist-model-tier.md @@ -0,0 +1,4 @@ +# adap-report — 2026-07-03-Governance-checklist-model-tier (SE) + +> **Broadcast:** `2026-07-03-Governance-checklist-model-tier.md` (`content_sha256` re-compute `a7ff304b…` **MATCH ✓**, `reviewer_gate: PASS`). Checklist 12-point đi kèm model-tier bundle 07-03. +> **Verdict:** self-verify = **12/12 (10 actively-met + A4-A6 N/A-by-valid-form all-inherit)** — chi tiết per-item + grep-evidence ở report chính bundle này: **`2026-07-03-Governance-model-tier-fable-opus.md`**. Điểm cần nhớ: C3 `[1m]` = 0 (frontmatter-scoped awk; naive `grep [1m]` cho 4 hit PROSE = false-positive → codify frontmatter-scoped idiom). Không mục A nào thiếu → **đạt sàn**. diff --git a/docs/governance/adap-reports/2026-07-03-Governance-model-tier-fable-opus.md b/docs/governance/adap-reports/2026-07-03-Governance-model-tier-fable-opus.md new file mode 100644 index 0000000..caae4e5 --- /dev/null +++ b/docs/governance/adap-reports/2026-07-03-Governance-model-tier-fable-opus.md @@ -0,0 +1,34 @@ +# adap-report — 2026-07-03-Governance-model-tier-fable-opus (SE) + +> **Broadcast:** `2026-07-03-Governance-model-tier-fable-opus.md` (+ checklist `2026-07-03-Governance-checklist-model-tier` + `2026-07-03-Governance-model-tier-v2-pin-simple`, cùng bundle 07-03). **Adopt S101 (2026-07-03).** +> **Integrity gate:** `content_sha256` re-compute cả 3 **MATCH ✓** (`ee00d253…` / `a7ff304b…` / `eed277f7…`), đều `reviewer_gate: PASS`. `type: update` (clarify chính-sách bracket/model-tier đã có — KHÔNG cơ-chế mới). +> **Nấc adap:** SE **đã đạt function-floor** trước broadcast (re-verify, KHÔNG mechanism-change) → em-main authored (governance single-writer). 12-point checklist tự-verify qua WF1-L2 (grep-evidence). + +## Model-tier 12-point self-verify (WF1-L2 grep-evidence) — **12/12 (10 met + 2 N/A-by-valid-form)** + +| # | Sàn | SE verdict | Evidence | +|---|---|---|---| +| A1 | Lead top-model | ✅ met | settings `claude-fable-5[1m]`; Fable DOWN S101 → runtime **Opus 4.8 1M** qua H5-fallback (A1/A2 cho phép frontier-1M fallback) | +| A2 | Fallback đúng khi outage | ✅ met | H5 fallback live S101 (lead + monitor + WF2-reviewer đều self-report `claude-opus-4-8`) | +| A3 | Nâng sub theo chức-năng | ✅ met (all-inherit) | 5 chức-năng map roster: cổng-cuối=reviewer · falsify+phân-xử=reviewer · ground-truth=investigator-codebase · RCA=investigator-codebase/database-agent — tất cả top-tier qua all-inherit | +| A4/A5/A6 | Việc-còn-lại tier-2 / tie-break / helper-rẻ | **N/A-by-form** | SE **không có bracket tier-2-default** + **không có lớp helper/gopher** (owner-directive S66 "chất-lượng trên chi-phí") — form hợp lệ per B-autonomy (v2 "mỗi đội tự-quyết form") | +| B1/B2 | Self-map + self-list | ✅ met | ánh-xạ theo roster SE riêng (H8 rationale), KHÔNG copy | +| B3 | KHÔNG copy tên-vai | ✅ met | 11 tên project-specific: investigator-codebase/api = INTERNAL/EXTERNAL split · implementer-backend/frontend = .NET+2-React split · database-agent = FORM-tailor từ AI_INFRA KHUNG (README:6/251 "adapted NOT copied") | +| C1 | Frontmatter inherit | ✅ met | 11/11 agents `model: inherit` (frontmatter-scoped scan) | +| C2 | Per-task tier 2-đường | ✅ met | `hmw.js` field `tier` + Agent-tool `model` param | +| C3 | Gotcha `[1m]` = 0 | ✅ met | frontmatter-scoped awk = **0**; ⚠️ naive `grep [1m]` = 4 hit đều PROSE (README:9/12/16 upgrade-notes + database-agent:46 rule-line) → **codify frontmatter-scoped idiom** để reviewer sau không false-flag C3-FAIL | + +## Trả lời Q1/Q2 (directed ack `batch13-ack-stamp-and-answers`) — SE đã có sẵn + +- **Q1 (detector workflow chạy-ngoài-engine-chuẩn = sàn-chức-năng):** SE **đã đạt** — containment G-015 = `git-diff` (run-folder TRACKED, mọi write hiện) + folder-scan orphan (`runs//` có `run.md` mà `*-synthesis.md` vắng/0-byte, `runs/README §Containment`) + chunk-count Qdrant. Chạy @session-end (`session-end §L.b(f)`). Form = folder-scan (KHÔNG cần "untracked-run detector" riêng). +- **Q2 (chuẩn số hysteresis cross-fleet?):** SE **đã đo riêng** — `memory-budget.json:archive_gate` = `low_watermark_ratio 0.85` / `keep_floor_entries 5` / `strike_threshold 2`, seeded-by-measurement (KHÔNG số tưởng-tượng). Chức-năng bất-biến (hysteresis + keep-floor + strike-discipline) ✅ có đủ; số cụ-thể tự-đo per write-volume. Đã document (audit đối-chiếu được). + +## Tailored / Skip / Phản-biện + +- **Form SE = all-inherit** (vượt sàn phía chất-lượng — mọi sub top-tier, KHÔNG chỉ 2 vị-trí phán-quyết). Hợp lệ per v2 "form-autonomy": v2 pin-simple (sub tier-2, drop reviewer độc-lập ở cửa-ra) = **1 form-option KHÔNG mandate** — SE **KHÔNG áp** (giữ all-inherit vì owner-directive S66 + mark `RC-…10-29-09` cấm "overkill solo-dev"). SE thay-thế "reviewer độc-lập ở cửa-ra" bằng **HMW ensemble** (H19) — mạnh hơn single-reviewer. +- **Selftest-stamp (đề-nghị ack §2):** SE **áp** — thêm bước recompute-after-write vào `/send-email` flow (chặn gửi nếu body-hash lệch declared) — xem commit S101 (patch `send-email.md`). Đã re-stamp file H10 lỗi-phương-pháp (**body-hash** `5f511fe5`→`5f8b8504`: no-strip→canonical — KHÔNG phải commit-SHA). +- **No mechanism-change:** SE đã compliant → adap = re-verify + document, KHÔNG đổi config. KHÔNG 2-workflow riêng cho model-tier (clarify + already-compliant); 2-workflow dồn cho H19 (mechanism-mới). + +## Codify +- Không đổi config (đã compliant). Document form-choice all-inherit + Q1/Q2 + C3-idiom. Selftest-stamp áp vào send-email. +- Report → AI_INFRA cùng email H19 (bundle 07-03). diff --git a/docs/governance/adap-reports/2026-07-03-Governance-model-tier-v2-pin-simple.md b/docs/governance/adap-reports/2026-07-03-Governance-model-tier-v2-pin-simple.md new file mode 100644 index 0000000..a5d3469 --- /dev/null +++ b/docs/governance/adap-reports/2026-07-03-Governance-model-tier-v2-pin-simple.md @@ -0,0 +1,6 @@ +# adap-report — 2026-07-03-Governance-model-tier-v2-pin-simple (SE) + +> **Broadcast:** `2026-07-03-Governance-model-tier-v2-pin-simple.md` (`content_sha256` re-compute `eed277f7…` **MATCH ✓**, `reviewer_gate: PASS`, `supersedes_scope: none`). Update nhẹ FORM nội-bộ AI_INFRA, **KHÔNG mandate** ("các đội KHÔNG bắt buộc làm theo"). +> **Verdict: n-a-by-form-choice (đạt sàn qua form khác).** v2 "pin đơn giản" (mọi sub gán-cứng tier-2 dưới lead + drop reviewer-độc-lập ở cửa-ra, thay bằng cổng-máy + lead-phán-quyết-cuối) = **một form-option**. SE **KHÔNG áp** — giữ **all-inherit** vì owner-directive S66 ("chất-lượng trên chi-phí" — SE không có lớp helper/gopher rẻ để chừa) + mark `RC-…10-29-09` (cấm bác chức-năng bằng "overkill solo-dev"). +> +> **Lý-lẽ đạt-sàn (§F4.1 quality chỉ-tăng):** sàn-chức-năng v2 = (a) lead LUÔN top-model, (b) tier-change có kỷ-luật chống "quên hạ-tầng". SE all-inherit đạt CẢ HAI, thực-tế **deterministic HƠN pin-simple**: mọi vai theo lead → **0 per-spawn downgrade-decision để quên** (chính class-lỗi v2 muốn diệt). SE **thay** "reviewer độc-lập ở cửa-ra" (mà v2 drop) bằng **HMW ensemble** (H19 — `2026-07-03-Agent-harness-19-fable-clone.md`) = tầng phản-biện mạnh hơn single-reviewer, KHÔNG mất lớp bắt-lỗi. Selftest-stamp (gợi-ý kỹ-thuật v2 §cuối) SE **áp** vào send-email flow. diff --git a/docs/governance/harness-11-engine.md b/docs/governance/harness-11-engine.md index 620ba16..ba209b5 100644 --- a/docs/governance/harness-11-engine.md +++ b/docs/governance/harness-11-engine.md @@ -312,6 +312,29 @@ SE đã có RAG golden-set harness (KHÔNG phải gap): `eval/golden-set-solutio --- +## PHẦN K — Harness-19: "Model ảo" ensemble cho 2 vị-trí phán-quyết + thật/ảo depth-toggle (🔴 FUNCTION-FLOOR + 🟡 form ensemble-depth) + +> **Adopt S101 (2026-07-03), anh-directed** (`/check-email AI_INFRA` + `/adap-apply` → "Formal adopt + RC-stamp" + "full 2-workflow"). AI_INFRA broadcast `2026-07-03-Agent-harness-19-fable-clone` (content_sha256 re-compute **MATCH ✓** `6909299a…`; +3 broadcast model-tier cùng đợt [`fable-opus` `ee00d253` · `checklist` `a7ff304b` · `v2-pin-simple` `eed277f7`] đều MATCH + đều có `reviewer_gate: PASS` → format-regression H18 [thiếu field] đã fix). Áp qua 2-workflow Harness-9: **WF1 investigate `wf_5f308fd8-744`** (3 lane wiring+mapping+adversarial, SOUND_WITH_CONCERNS — bắt 3 floor-fidelity gap; resume-after-interruption cached) + **WF2 review `wf_ed5b972f-a4d`** (→ **PASS_WITH_CONCERNS** 0-BLOCKING: Lane-A mechanism PWC [1 CONCERN marker write-only no-reader → **FIXED S101** thêm session-start BƯỚC 0.5b reader] · Lane-B gov-record PASS [RC-mark 3-floor verbatim + vacuous-honest, 7 refutation fail] · Lane-C adap-honesty PASS [4 hash MATCH indep + 12/12 + no-overclaim]. ⚠️ **GAP-3 AS-10 fired LIVE** — lanes tự-ghi reviewer-memory dù RETURN-only-intent; harness-sanctioned "intentional" → KEPT + verified → dogfood-validate §K.C "GAP-3 = convention-KHÔNG-mechanism"). **Additive** — KHÔNG thay H8 all-inherit / bracket / promote; chỉ THÊM ensemble + toggle cho 2 vị-trí phán-quyết. + +**K.A — Ánh-xạ 2 vị-trí phán-quyết vào roster SE (🔴 §7 sàn — WF1-confirmed best-fit, no superior alt):** +- **(a) Cổng rà-soát cuối** = `reviewer` (adversarial 6-category + Smart-Friend anti-rubber-stamp + live-curl falsify + phân-xử mâu-thuẫn). **(b) Ground-truth/xác-minh sự-thật** = `investigator-codebase` (truy bằng-chứng gốc file:line + sqlcmd + git, chống bịa + RCA). `investigator-api` EXCLUDED (external-only) · `database-agent` EXCLUDED (DB-only subset). = cặp dogfood S101 (WF2 3-lane reviewer · WF1 3-lane investigator-codebase). + +**K.B — Cơ-chế 2 mode thật/ảo (🔴 §4 sàn) + toggle marker (🟡 form):** +- **Fable-real (thật, marker `.claude/fable-real-mode.on` CÓ):** 2 vị-trí chạy **1 lần top-model trực-tiếp** (sâu nhất). Fable up=single-Fable · down (H5)=single-Opus-1M per-run fallback (KHÔNG đổi mode toàn-cục). +- **Fable-clone (ảo, marker VẮNG = MẶC-ĐỊNH, §4 ít-kinh-phí):** 2 vị-trí chạy **ensemble tier-2-mạnh-nhất** = N lane đa-lăng-kính CÙNG 1 vai (qua `hmw.js parallel`) + em-main **refute + synthesize** (P3/P4) = "bản sao Fable". +- **Toggle = 2 lệnh** `/fable-real` (Write marker) + `/fable-clone` (Remove marker) mirror `/ultra-on`/`/ultra-off` — ⚠️ **semantic INVERSE:** marker-VẮNG = ảo-DEFAULT (khác hmw: marker-CÓ = feature-ON). marker **gitignored** (verify `git check-ignore` ✓; commit → thật-mode stuck-ON clone = burn quota, TỆ HƠN hmw vì elevate tier). Đổi mode CHỈ khi anh gõ (§4 — KHÔNG auto theo số-dư/cảm-tính, giữ mark `RC-…10-29-09`). + +**K.C — 3 floor-fidelity gap (🔴 WF1-L3 bắt — pin để stamp CÓ NGHĨA, không paperwork):** +- **GAP-1 scope-creep guard:** `hmw.js` VALID_ROLES nhận cả 9 vai, KHÔNG gate → all-inherit **CHE** leak (mọi vai top-tier nên mixed-roster "trông ổn"; Fable về + phân-tầng thì rò top-tier ensemble sang vai ngoài 2 vị-trí = vi phạm §3 hard-scope). → **ảo-run = N lane CÙNG 1 vai phán-quyết** (multi-lens), KHÔNG mixed-roster fan-out. +- **GAP-2 engine-label (§5):** `hmw.js` SCHEMA `memoryDelta{task,verdict,learned,surprise}` KHÔNG field engine → em-main **stamp nhãn engine @P3 harvest** (single-writer B3), như S101 "model-note Opus-S101". = convention KHÔNG mechanism. +- **GAP-3 AS-10 fragment:** mỗi run-trace ghi `*-synthesis.md` residual + lane giữ Bash (AS-10 fails-open) → "1 vai = 1 trí-nhớ" qua N lane giữ CHỈ bởi em-main single-writer. → **N lane RETURN-only**, em-main ghi 1 MEMORY entry/vai (+ nhãn engine). + +**K.D — 3 floor-point RC-stamped (🔴 §9 — `RC-pqhuy1987-03-07-2026-17-46-35`, `ACTIVE-MARKS.md`):** (1) lead LUÔN top-model (KHÔNG đụng) · (2) CHỈ 2 vị-trí phán-quyết chạm top-model, CHỈ chế-độ thật do anh gõ (KHÔNG auto) · (3) mọi vai khác giữ model mặc-định. ⚠️ **VACUOUSLY-MET-for-SE-today:** dưới all-inherit + Fable-outage, reviewer+investigator-codebase ĐÃ top-model (Opus-1M) → point-2 grant **0 runtime-delta**; point-3 trivially-held (SE không có "vai khác" tier-thấp — all-inherit S66). Stamp KHÔNG overclaim runtime-delta; value = future-proof floor + governance-record. + +**Honest nấc tổng §K:** value THẬT ≠ cost (broadcast §8 "ensemble không rẻ hơn nhiều về token thô") mà = **anti-consensus-catch** (dogfood S101 WF2 Lane-B bắt `workflows/README:51` stale-label token-exact-sweep sót, commit `f229b07` — run-folder ephemeral, cite COMMIT) + formalize ensemble-heavy-judgment + thật/ảo depth-toggle owner-control + Fable-outage timeliness. Nấc = **designed + will-dogfood** (ensemble-pattern proven S101; thật-mode toggle chưa chạy thật lần nào). Mechanized THẬT = CHỈ marker-toggle (Write/Remove gitignored, verify-idiom) + `hmw.js` parallel-lanes; scope-guard + engine-label + single-writer = **convention** (em-main kỷ-luật, hmw.js không gate vai). RC-sig + command `.md` = executed-file, verified-pending-restart (no hot-reload). + +--- + ## CAVEAT (trung-thực — đọc trước khi tự nhận "đã tự-bảo-trì") - **No-OS-hook:** detector + gate chạy TRONG thân session-start/end body do em-main kích — KHÔNG fully-autonomous. Đúng mức: **DÒ tự-động + toàn-diện; SỬA + GÁC dựa người-chủ-trì.** - **Auto-WRITE luật/copy = MỐI-NGUY #1, CỐ Ý CHƯA LÀM** — defer tới ≥2 sự-cố thật mà thủ-công thất-bại (hiện 0). Chọn nhánh chỉ-DÒ-NÊU-CỜ cho mọi thứ chạm luật/copy (1-sửa-sai → N-chỗ-sai + phá hash broadcast đóng-băng).