[CLAUDE] Docs: S103 AI_INFRA 6-broadcast adap — crystallized-backfill (measure-then-fill) + Harness-20 fix-all-structure + memory-hygiene mapping
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m26s

Adap 6 broadcast (hash MATCH cả 6 indep-recompute) qua 2-workflow Harness-9:
- Harness-20 fix-all-structure -> engine §L + dogfood model-note 4-tầng-sweep (incl PERSONA) + 220K→380K neo-supersede + 2-đầu-catch (review bắt 2 DẪN-XUẤT stale-trailer sweep-sót → fixed)
- F4 crystallized-backfill = NEW scripts/crystallized-backfill.ps1 (measure-then-fill DRY NO-API; default target=0=OFF owner-authority; calibrated-range; precondition; file-floor=UPPER-BOUND honest) + budget.json config + budget-table wire
- F1/F3 already-met (0 hardcoded-violation persona-clean; BƯỚC 0.6 bắt S103=Opus real-metadata)
- session-cmd budget-table (Up1) + run-loop 2-tầng (Up2 largely-already-met §L.b(c))
- H16 no-key Applied% = NEW scripts/applied-eval-nokey.ps1 (adversarial-gate fail-closed 3-ca + fault-inject FLIP; mechanism-built numbers-DEFERRED)
- memory-hygiene A/B already-met (archive-gate DRY-RUN + governance-detectors 4-layer 1:1); C n/a JS-sandbox no-CLI-launcher
- consolidation reference-ack (crystallization≠backfill)

engine §L+§M · 6 adap-report + 1 adap-request (#53-garble reasoning-lane mitigation) · send-email fc1e22ac selftest-MATCH · check-email 3 pulled+verified+STAGE-2.

2-workflow: WF1 implement wf_55ef6778-a0d (3 lane schema-CLEAN, selftest exit-0 ×2 + fault-inject teeth) + WF2 review wf_3c5c37cb-aa2 fable-clone (Lane-C PASS returned + Lane-B recover-from-memory PASS; 0-BLOCKING 2-CONCERN-addressed). #53 garble ×3 → em-main recover; investigator AS-10 garble-curation REVERTED (git-backstop).

Runtime S103 = Opus (Fable outage lại, per-session flip; H5-fallback revert-free). State GIỮ NGUYÊN: Mig 61 · 89 bảng · 440 test · gotcha 79 · menu 54. 0 prod-code.

Co-Authored-By: Claude Opus 4.8 (1M) <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-06 13:54:13 +07:00
parent 62cff3854b
commit f0874dd2c9
27 changed files with 1057 additions and 11 deletions

View File

@ -68,6 +68,22 @@
"read_only_scope": "MFE WRITES exactly one file: .claude/agent-memory/.mfe-state.json (its own strikes-state for cross-run Goodhart compare). 'READ-ONLY' is scoped to token_governor / the budget caps (owner-authority) which it NEVER writes -- it is NOT the claim 'writes nothing'."
}
},
"crystallized_backfill": {
"_note": "Harness-20-era (S103, 2026-07-06) crystallized-backfill = 'measure-then-fill'. Read by scripts/crystallized-backfill.ps1 (deterministic NO-API DRY planner). Adapts AI_INFRA broadcast 2026-07-04 F4 + session-cmd-budget-display Upgrade-1. DISTINCT from CRYSTALLIZATION (engine §I distill = compress-TOWARD-source, keep time-invariant): backfill goes the OPPOSITE direction = FILL the empty hot-feed budget with already-crystallized cold-tier data so the cap is not wasted. PRECONDITION: expected_backfill opens ONLY when target>0 AND measured_headroom>0. Default target=0=OFF. NOT-for-sub (sub packs are lead-curated per-task; blind-pour dilutes relevance).",
"target": 0,
"_target_note": "OWNER-AUTHORITY static number (mirror token_governor.role_boundary_note + mark RC-...21-06...01-58-01). 0 = OFF/disabled = default. Owner raises >0 ONLY after judging a POSITIVE real-token headroom exists on the stable hot-load floor. The AI (em-main) NEVER sets/auto-tunes this; the script is READ-ONLY on it.",
"hotload_sources": [
"docs/STATUS.md",
"docs/HANDOFF.md",
".claude/governance/ACTIVE-MARKS.md",
"docs/changelog/migration-todos.md",
"docs/gotchas.md",
".claude/agents/README.md"
],
"_hotload_note": "STABLE always-on FILE-FLOOR only (reproducible session-to-session). measured_headroom over this list = an UPPER BOUND on real headroom: the PEAK hot-feed ALSO loads session-VARIABLE lead-pasted task-context (task-relevant docs / code / gotcha-slices / engine-slices) that is NOT a fixed file-list, so the real peak approaches the ~368K lead read-set (token_governor.lead_note) and real headroom is SMALLER than this floor-measure shows. This is exactly broadcast F4's warning: byte/4 undercount + partial-source-list = 'illusion of room'. Hence target stays 0 until the owner judges stable room exists.",
"source_order": ["gist", "value-marked-archive", "curated-RAG"],
"_source_order_note": "value-gated, dedup vs hot-load, only TIME-INVARIANT crystallized content (NOT raw-episodic / volatile): (1) archive/<period>.gist.md 4-field distill; (2) archive lines carrying value_protect markers (gotcha# / anti-pattern / root-cause / lesson); (3) curated RAG search_memory. The PLANNER prints this order; it performs NO pull (DRY, like memory-archive-gate.ps1) - zero context change."
},
"harness_floor": {
"_note": "Harness-15 A1/A3 (S81, 2026-06-20): SAN-harness = fixed per-spawn cost (NOT tunable) = tool-schema + framing + own persona/role file + lead-pasted base-doc slice + task prompt. SEPARATE HOUSE (A3 anti-double-count): persona + lead-pasted-docs belong HERE (floor), NOT counted in token_governor.l1_always (which = own agent-memory + archive index + work-state block only). MEASURED-ESTIMATE not exact (H15 honest-note b): persona = directly measured bytes (.claude/agents/<name>.md 4.3KB-13.3KB => ~1.3K-4.0K tok via /3.3); tool-schema + framing = harness-injected (cannot byte-count locally), estimated comparable to AI_INFRA same-toolset-family (Read/Write/Edit/Bash/Grep/Glob/Skill/RAG).",
"measured_token_estimate": 21000,

View File

@ -11,7 +11,8 @@
- [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.**
- [S103 H20+crystallized-backfill review](project_s103_h20_crystallized_backfill_review.md) — WF2 PASS (Lane-B gov-fidelity + Lane-C already-met/no-overclaim, fable-clone ensemble). 6/6 hashes recompute MATCH; 4 already-met VERIFIED file:line (detectors 4-layer C2 `if n≠canon`:247 · archive-gate value_protect ADVISORY:55-56 · C launcher n/a hmw.js:4-5 · F3 BƯỚC0.6 reads env-runtime:37); all no-overclaim danger-phrases NEGATED-context; applied-eval 4-caveat + selftest exit-0 fault-inject teeth; crystallized-backfill DRY target=0=OFF. 2 NIT: script echoes bare headroom w/o partial-floor-axis caveat (doc-layer+wire DO carry UPPER-BOUND) · guide-doc Opus-4.7 examples out of §L.D n=1 scope. **Lesson: multi-axis warning (F4=token-undercount + partial-source-list) must appear in the SCRIPT's own output, not only the doc — reader runs script inline.**
- **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) + send-email 6c. Hashes recompute indep MATCH (H19 `6909299a` + model-tier `ee00d253/a7ff304b/eed277f7`), all carry `reviewer_gate: PASS`. 12/12 honest; Q2 hysteresis `0.85/5/2` verbatim budget.json:35-37. Danger-phrase "verified" only in G-011 legend + "verified-pending-restart"; nấc="designed+will-dogfood, thật-mode CHƯA chạy". **Lesson: hex→SHA disambiguation — recompute BOTH strip/no-strip variants to prove a hex string is a content_sha256 BODY-hash not a commit-SHA (line-29 `5f511fe5→5f8b8504` = hash-transition, `git cat-file`=not-commits, claim TRUE presentation-nit only).**
---

View File

@ -0,0 +1,30 @@
---
name: s103-h20-crystallized-backfill-review
description: S103 WF2 Lane-B review (fable-clone ensemble) of H20 fix-all-structure + crystallized-backfill adap — PASS, 2 non-blocking CONCERN. Read when reviewing governance-doc fidelity or fix-all-structure dogfood.
metadata:
type: project
---
**S103 (2026-07-06) H20+crystallized-backfill WF2 Lane-B — governance-doc fidelity + fix-all-structure dogfood · self=reviewer · fable-clone ensemble H19. Verdict: PASS (0 BLOCKING, 2 CONCERN).**
Scope: 6 broadcast adap (H20 fix-all `bd714a33` + full-recheck-F1-F4 `94c78d1d` + session-cmd-budget-runloop `d47333e0` + H16-nokey `a1dc3a20` + hygiene-A/B/C `43c9e56f` + consolidation `5bba339b`). Deliverables: engine §L+§M, 2 scripts (crystallized-backfill.ps1 + applied-eval-nokey.ps1), memory-budget.json block, session-start §2.1.6 + session-end §L.b(c) wiring, model-note sweep 4 spots.
**Hash re-computed indep** (PS .NET UTF8, split-on-`^---$` regex take-3rd + strip-1-leading-newline): all 6 MATCH (full-64 on the 4 declaring full). Q4 PASS.
**Q1 §L fidelity:** 4-layer NHÌN/NGUỒN/DẤU/DẪN-XUẤT + PERSONA (5th, = broadcast F2 toxic-layer emphasis) present · anti-asymmetric ordering "đủ-tầng>không-sửa>sửa-lệch-tầng" verbatim broadcast §2 · 4-step (L.B) + 2-head cross-axis (L.B) present · 0 floor dropped vs bd714a33.
**Q2 §M fidelity:** F4 5-floors all present (default-0=OFF / NOT-sub / calibrated-range [bytes/4..bytes/3.0] / precondition target>0 AND headroom>0 / value-gated source-order) · crystallization≠backfill DISTINCT (OPPOSITE direction: engine §I distill=compress-toward-source vs §M=fill-empty-budget) · budget-table (M.B) · run-loop 2-tier (M.C, honestly "largely already-met §L.b") · no-key mechanism (M.D, honestly "MECHANISM built, numbers DEFERRED") · hygiene A/B/C mapped (M.F: C=n/a-by-JS-sandbox-architecture, not CLI-launcher) · 0 floor dropped.
**Scripts REAL teeth (5 fault-inject `-RepoRoot` temp-tree):** (1) target=0→backfill=0 OFF · (2) target=5000+pos-headroom→backfill=5000 opens · (3) target>headroom→headroom-binds(67) · (4) NEG-headroom(tiny cap)→backfill=0 = broadcast borderline near-cap case · (5) -Tier sub→NOT-FOR-SUB warn fires. applied-eval selftest EXIT-0 3/3 (control-HIGH→BLOCK · control-LOW→PASS+Applied%=70 · control-null→BLOCK; `$script:`-scope flip survives nested Assert-Case = fault-inject-caught real bug per header).
**Q3 fix-all-structure dogfood VERIFIED:** 4 spots correct — README:3 + session-start:37 (BƯỚC 0.6) + session-end:113 (release-line) → S103-Opus; engine §G.5 → 220K neo-superseded (present 7×, NOT deleted; 380K override present 5×). History-saga NOT rewritten: README:12 H8-caveat UNCHANGED (README diff = 1-line-only = line-3), adap-reports 2026-06-10/06-13 dated-snapshots preserved (LỊCH-SỬ/SNAPSHOT, correctly kept). Persona-layer (the F2 toxic layer, `.claude/agents/*.md`) clean of stale steady-Fable current-claim.
**2 CONCERN (non-blocking):**
1. STATUS:24 Sub-agents row + STATUS:6/HANDOFF:5 last-updated still read S102-Fable / S101 as latest current-state (not yet S103-Opus). Engine §L.D EXPLICITLY defers STATUS/HANDOFF mega-line current-claim to session-end blurb (natural update-point). NOT persona (not reloaded per spawn) → tailoring defensible + honestly disclosed. But at review-time (mid-session, pre-session-end) the Sub-agents current-state row IS technically ĐANG-SAI under strict fix-all-structure.
2. tooling-auditor/MEMORY:17 roster-header "Fable 5 RESTORED S98" while line-46 records S103-Opus divergence (data-point #7 DIVERGENT) = header/body tier-lag. Internal diary (not persona, not outward, not in the 4-spot dogfood scope) → NIT-tier.
**KEY honesty-check (resolved-HONEST):** §M.A + budget.json `_hotload_note` claim "real peak ~368K near-cap → real headroom SMALLER" while LIVE crystallized-backfill shows headroom=282384 POSITIVE (~74% free over the 6-file floor: STATUS/HANDOFF/ACTIVE-MARKS/migration-todos/gotchas/agents-README = 292848 bytes → 97616 tok worst-case). Reconciliation SOUND: `_hotload_note` explicitly labels measured_headroom an UPPER-BOUND — the PEAK hot-feed also loads session-variable lead-pasted task-context (docs/code/gotcha-slices) NOT in the fixed file-list, so real peak → ~368K and real headroom SMALLER; matches broadcast F4 "byte/4 undercount + partial-source-list = illusion of room"; target stays 0 BECAUSE of this uncertainty = honest disclosure, NOT overclaim.
**Lesson:** when a planner measures only a FILE-FLOOR subset, verify the doc labels the headroom as UPPER-BOUND — a positive floor-headroom that superficially contradicts a "near-cap" narrative is HONEST iff the partial-source-list caveat is explicit (else it would be an illusion-of-room overclaim). Also: hash-recompute all 6 broadcasts independently (never trust declared frontmatter) — canonical = split-on-`^---$` take-3rd, strip exactly 1 leading newline, SHA256 UTF-8.
Cross-ref: [[wire-claim-verification-anchors]] (sha256 twin-file discipline) · broadcast F2/F3 persona-layer sweep · engine §L/§M (`docs/governance/harness-11-engine.md`).

View File

@ -43,3 +43,4 @@ H1 tooling-freshness auditor **SOLUTION_ERP-self**. Read-only + **propose-only**
- **2026-07-03 (S101 @start RE-REPORT — ALL-4 PASS + MODEL-DRIFT, on-behalf em-main APPEND B3):** HEAD `5ee32c0`, tree 1-dirty (cicd MEMORY M #486 pre-existing). ①SKILL PASS 6+23+14 (2 detector-flag ef-core/contract-workflow = FP module-local, numbers MATCH canonical). ②ROSTER PASS 11=11=11, 11/11 inherit, ASCII-diagram cosmetic-drift known-debt. ③PLUGIN PASS 18/15/3 + marketplace 35 + xhigh + `claude-fable-5[1m]`:11 identical, 0 new-alloc. ④DOCS PASS (S100 closeout clean; F2 SendMessage + F3 count both fixed-verified). 🔴 **MODEL-DRIFT (inherit-chain data-point #4 = DIVERGENT):** this spawn + lead + WF2-reviewer all self-report **`claude-opus-4-8`** (NOT `claude-fable-5` S98/S99) while `settings.json:11` still pins `claude-fable-5[1m]`**Fable unavailable S101 → H5-fallback tự-kích** (revert-free, no frontmatter change). "Fable RESTORED S98" = point-in-time NOT steady-state → em-main reconciled STATUS:24 + agents/README:3 with S101-runtime caveat. Lesson: **inherit-chain self-report = runtime availability probe — verify each session, don't trust last-session model claim.** Tag `[s101-start, 4-mat, all-pass, model-drift-opus, h5-fallback-reactivated]`.
- **2026-07-03 (S101 @closeout CHỐT — on-behalf em-main APPEND B3):** HEAD `e350660`, tree CLEAN, 2 commit S101 pushed (`f229b07` H18-closeout + `e350660` H19-adopt). ①SKILL/COMMAND **DELTA: command 14→16** (+`fable-real.md`+`fable-clone.md` H19 thật/ảo-toggle — verified `ls|wc`=16; 🔴 **là COMMAND KHÔNG phải skill** — SlashCommand-tier ≠ `skills/<n>/SKILL.md` Skill-tier, đừng conflate "auto-registered skill"; skill vẫn **6+23**) + session-start BƯỚC 0.5b + send-email 6c present. **KHÔNG command-catalog canonical** trong docs → 2 fable-* KHÔNG tạo catalog-drift, KHÔNG cần doc-register. ②ROSTER 11=11=11 (H19 0 agent mới, dùng reviewer+investigator-cb sẵn), 11/11 inherit. ③PLUGIN 18/15/3 identical + xhigh + pin-fable giữ (revert-free dù runtime-Opus), 0 new-alloc. ④DOCS PASS: H19 đầy-đủ path:line-verified (engine §K:315-334 + ACTIVE-MARKS:19 RC-verbatim + STATUS:6/:24/:40 + HANDOFF + session-log + 4 adap-report). 🔴 **model self-report `claude-opus-4-8` = inherit-chain data-point #5 DIVERGENT-confirmed** (Fable vẫn unavailable). **new-alloc: NOTHING-TO-ALLOCATE.** **Flags:** F-H19a LOW (agents/README+reviewer+investigator-cb 0 H19-note → **DEFER** vacuously-inert + no-catalog + single-sourced §K; note khi Fable-về + toggle-first-run có runtime-delta) · F-H19b VERY-LOW (session-start BƯỚC-0.6 Fable-steady → em-main FIXED S101 +Opus-caveat). Baseline command-count 14→**16** (self-fix note). Tag `[s101-closeout, 4-mat-chot, command-14-16, model-drift-5, f-h19a-defer, on-behalf]`.
- **2026-07-06 (S102 @start RE-REPORT — ALL-4 PASS + FABLE VỀ LẠI, inherit-chain data-point #6):** HEAD `3e2c18b` (=S101 closeout), tree CLEAN, 0 commit sau S101 → disk S102-pre == S101-end. **Model: spawn này self-report `claude-fable-5`** = Fable RESTORE lần 2 (chuỗi S98 Fable → S101 Opus → S102 Fable — availability per-session, đúng lesson S101). ①SKILL PASS 6+23; ef-core `:3`/`:19` B1-pointer + Mig 61 khớp disk-61 (`ls` Migrations = 61). ②ROSTER PASS 11 file = 11 kỳ-vọng, 11/11 `model: inherit` line-5; S101-window: harvest-curator.md + agents/README.md M-only, 0 agent THÊM/XÓA. ③PLUGIN PASS 18/15/3 (settings:17-35) + marketplace 35 + xhigh:37 + `claude-fable-5[1m]`:11 identical, 0 new-alloc. ④DOCS PASS: (a) BƯỚC 0.5b hiện diện session-start:27-33; (b) fable-real/clone semantics inverse ĐÚNG (real=tạo marker :10 / clone=xóa :8), registry loaded = restart đã xảy ra; (c) **model-note S101-Opus cần S102-reconcile 3 vị-trí: STATUS:24 · agents/README:3 · session-start:37 (BƯỚC 0.6)** — đề xuất APPEND data-point giữ S101 làm history; (d) marker KHÔNG tồn tại + gitignore:92 + not-tracked. **Trigger-met: BƯỚC 0.5b:33 "nhắc anh khi Fable về + phân-tầng"** → em-main nhắc anh H19 tiering. Command 16 (brief "~20" = overestimate; 16 = đúng đủ, hmw ≠ command-file). Counts khớp: Mig 61 · gotcha 79 (grep) · test 440 · 89 bảng. F-H19a defer-condition "khi Fable-về" cũng MET → em-main cân nhắc note. Tag `[s102-start, 4-mat, all-pass, fable-restore-2nd, model-note-reconcile-3]`.
- **2026-07-06 (S103 @start RE-REPORT — ①②③ PASS, ④ 1-FLAG model-note per-session flip, inherit-chain data-point #7 DIVERGENT):** HEAD `62cff38` (=S102 closeout), tree CLEAN, 0 commit sau S102 → disk S103-pre == S102-end. Project `.claude/settings.json` KHÔNG tồn tại → model resolve user-global. **Model: spawn này self-report `claude-opus-4-8`** (env-confirmed) = Fable UNAVAILABLE lại (chuỗi **S98 Fable → S101 Opus → S102 Fable → S103 Opus**, flip lần 4 — availability per-session KHẲNG-ĐỊNH lại). ①SKILL PASS 6+23+16 (last-touch skills/ = `4263d63` S98, 0 đổi); ef-core `:3`/`:19`/`:83` Mig 61 + `:85` 89-bảng khớp disk (`ls` Migrations = 61, last=`...142752_BackfillEndedByLevelFinalizeFromChangelog.cs`) + khớp STATUS:14/:15; skills/README:20 "Updated S98"/:90 #79 fresh. ②ROSTER PASS 11=11=11, 11/11 `model: inherit`; ASCII-diagram cosmetic-drift known-debt (KHÔNG mới); last-touch agents/ = `62cff38` S102 M-only 0 agent THÊM/XÓA; VALID_ROLES 9 product-by-design. ③PLUGIN PASS 18/15/3 (3 disabled: pr-review-toolkit/code-modernization/hookify) + marketplace 35 + xhigh + `claude-fable-5[1m]`:11 identical, 0 new-alloc. ④DOCS canonical 7-count khớp disk (Mig61/89/440/gotcha79/menu54/11sub/6skill). 🔴 **FLAG-M (LOW, on-behalf APPEND đề xuất):** 3 model-note (STATUS:24 · agents/README:3 · session-start:37 BƯỚC 0.6) carry **S102-Fable "VỀ LẠI"** — KHÔNG drift-sai (đúng-tại-S102 + đã ghi "per-session, không tin note phiên trước") chỉ thiếu **data-point S103-Opus**. Đề xuất em-main APPEND caveat S103-Opus vào 3 vị-trí (giữ history, KHÔNG frontmatter/con-số), **SAU khi em-main tự-xác-nhận lead-runtime S103** (report này = 1-spawn probe, G-015 honesty — chưa xác nhận lead + sub khác). Marker fable-real KHÔNG tồn tại → Fable-clone default (đúng). Carry-debt: schema-diagram §16+ ERD · monthly count-grep +commands/*.md. Method-shortcut tái-dùng: `git log -- .claude/skills/` last-touch confirm no-change nhanh hơn re-read. Tag `[s103-start, 4-mat, model-note-flip-opus, data-point-7-divergent, flag-m-low, on-behalf]`.

View File

@ -1,6 +1,6 @@
# Multi-agent SOLUTION_ERP — Master Coordination Guide (11-agent)
> **Architecture:** 11 sub-agents **all-inherit top-tier (Harness-8 2026-06-16 — thay thế two-tier Harness-4)** + em main **Fable 5 (1M) Max** coordinator — **9 product/quality** (7 core + frontend-designer pink S47 + database-agent read-advisory S52) + **2 monitor INFORM-only** (`tooling-auditor` H1 + `harvest-curator` H2, 2026-06-07 Harness 1). Tier: **toàn bộ 11 sub `model: inherit`** (ăn top-tier model của lead — ✅ **Fable 5 1M RESTORED, runtime-verified S98 2026-07-02**: 2 monitor spawn-test self-report `claude-fable-5`; giai đoạn fallback Opus H5 S62→S97 kết thúc; ⚠️ **S101 2026-07-03 runtime = Opus lại** — lead + 2 monitor + WF2-reviewer inherit self-report `claude-opus-4-8`, settings pin fable → Fable unavailable phiên này, H5-fallback revert-free [chi-tiết STATUS §Sub-agents]; ✅ **S102 2026-07-06 runtime = Fable trở lại** — self-report `claude-fable-5` ×3 [lead + 2 monitor], per-session availability) · effort **Max** (env machine-wide). SE KHÔNG có lớp helper/gopher rẻ (cả 11 đều substantive memory-bearing → cả 11 lên inherit). *(Trước H8: 4 promote inherit + 7 demote pin `claude-opus-4-8` — lịch sử ở Upgrade 2026-06-10 + S66 dưới.)*
> **Architecture:** 11 sub-agents **all-inherit top-tier (Harness-8 2026-06-16 — thay thế two-tier Harness-4)** + em main **Fable 5 (1M) Max** coordinator — **9 product/quality** (7 core + frontend-designer pink S47 + database-agent read-advisory S52) + **2 monitor INFORM-only** (`tooling-auditor` H1 + `harvest-curator` H2, 2026-06-07 Harness 1). Tier: **toàn bộ 11 sub `model: inherit`** (ăn top-tier model của lead — ✅ **Fable 5 1M RESTORED, runtime-verified S98 2026-07-02**: 2 monitor spawn-test self-report `claude-fable-5`; giai đoạn fallback Opus H5 S62→S97 kết thúc; ⚠️ **S101 2026-07-03 runtime = Opus lại** — lead + 2 monitor + WF2-reviewer inherit self-report `claude-opus-4-8`, settings pin fable → Fable unavailable phiên này, H5-fallback revert-free [chi-tiết STATUS §Sub-agents]; ✅ **S102 2026-07-06 runtime = Fable trở lại** — self-report `claude-fable-5` ×3 [lead + 2 monitor], per-session availability · ⚠️ **S103 2026-07-06: runtime = Opus LẠI** (Fable outage lần nữa — lead + spawn-inherit self-report `claude-opus-4-8`, H5-fallback revert-free) → per-session flip S98→S101-Opus→S102-Fable→**S103-Opus**, BƯỚC 0.6 probe mỗi phiên) · effort **Max** (env machine-wide). SE KHÔNG có lớp helper/gopher rẻ (cả 11 đều substantive memory-bearing → cả 11 lên inherit). *(Trước H8: 4 promote inherit + 7 demote pin `claude-opus-4-8` — lịch sử ở Upgrade 2026-06-10 + S66 dưới.)*
> **Upgrade S52 (2026-06-08 — AI_INFRA broadcast `2026-06-08-Agent-database-codebase-agents`):** **+database-agent (read-advisory DB specialist, floor DB1DB11)** — schema/query/migration-design-review/perf/concurrency (DB11 RowVersion vá lost-update S43). Tailor READ-tier (implementer-backend vẫn author) · color OMIT (8 standard hết) · `store_memory` strip. `codebase-agent` = **SKIP n-a** (investigator-codebase đã cover grep/audit + `csharp-lsp` Windows no-op). ✅ **verified-runtime** — spawned OK S53 (first real spawn, caught Mig 46 committed-but-unapplied-local drift) + S56 2× (pre-golive-verify schema-stream + golive-harden design+review). DB11 lost-update fix landed S56 (atomic ExecuteUpdate + Serializable tx, gotcha #58).
> Pattern: Anthropic Building Effective Agents orchestrator-workers + Cognition "writes single-threaded" hybrid + post-deploy automated watchdog.
> **Upgrade S39 (2026-05-29):** 4→7 agent (split investigator + implementer, +test-specialist) + budget +50% + 5 RAG MCP per agent. Reference BVAAU 7-agent config (adapted, NOT copied — SOLUTION_ERP 2-FE-app fit + 6 skill proven battle-test 38 session). Prior: S20t12 initial 3 + S21t1 +cicd-monitor.

View File

@ -45,7 +45,7 @@ Em main PHẢI echo **TOÀN BỘ nội dung command body này** (đầy đủ Ph
**§L.b — 8-step auto-maintain (đủ 8, KHÔNG skip — thiếu = ledger thối). (d)(f) = H2 harvest-curator · (g) = H1 tooling-auditor (2026-06-07 Harness 1) · (h) = User-Mark H-12/13 (S79):**
- **(a) summary-index** += 1 dòng/session vào `STATUS.md` Recently Done (pointer, KHÔNG full-log).
- **(b) Active-Guards** (error-ledger): promote guard **2-strike** (episodic→procedural) · mark `verified` nếu held qua session · retire theo **net-effect** (hại>lợi → gỡ).
- **(c) chore-flag:** agent L1 >~30KB → archive L2 · error-ledger open-entry quá ngưỡng · **0-byte memory check (AS-8)** · **🌙 sleep-check (Harness-10b, S72):** `last_sleep_at` null hoặc ≥7d (`memory-budget.json`) → INFORM gợi-ý `/sleep-recovery-memory-l2` (KHÔNG auto-run) · **🗜️ Harness-11 A/D2 (S75):** chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/memory-archive-gate.ps1` (DRY-RUN) → đề-xuất dồn-archive sub over-cap (A4 hysteresis 0.85 + A5 keep-floor 5 + A6 2-strike) + A7 NO-API L1-eval (pointer-resolve + byte-0-loss). Engine → [`docs/governance/harness-11-engine.md`](../../docs/governance/harness-11-engine.md). DRY-RUN báo kế-hoạch; MOVE thật do em-main (D5 AUTO semantic-null sau khi xem). · **📊 Hot-feed %-print CUỐI phiên (Harness-15-v2 §G.4, S82):** in composition Tầng-1 theo **%/4-bucket** SAU khi đã nạp/tăng trong phiên + **Headroom còn-trống** so cap role (`token_governor.tier1_hotfeed_tokens`). Đối-xứng `session-start §2.1.6` (đầu phiên). Mục-đích: anh thấy Tầng-1 phình/teo ra sao + còn trống bao nhiêu → quyết chỉnh cap. 🔴 con-số = quyền anh (chủ-dự-án); em-main chỉ báo-%, KHÔNG tự-chỉnh. · **🧪 MFE retention opt-in (Harness-16 §H):** lệnh kèm `eval` → chạy `scripts/mfe-eval.ps1` cuối-phiên (retention; chênh vs baseline §2.1.6 = rot trong-phiên) → quyết-định 2-ca: **thiếu-chỗ→TĂNG budget** (anh quyết) / **rot→SẮP-XẾP-LẠI** (ưu-tiên-giá-trị). READS budget, KHÔNG ghi/auto-tune. · **🔁 H17 loop-REFINE (§I, S95 — [`harness-11-engine.md §I`](../../docs/governance/harness-11-engine.md)):** lệnh kèm `eval` → chạy thêm `scripts/memory-selfimprove-audit.ps1` (spec-audit CRITERIA+GAP) → áp bảng B1 **tín-hiệu→hành-động**: floor-rot→**reinject-verbatim** (ghi [`reinject-ledger.md`](../governance/reinject-ledger.md) CG-1 ≤1/N=3; đo-lại vẫn thiếu→**escalate anh** KHÔNG tự-reinject-lần-2) · repeat≥2→promote · old+valueless→archive-gate · raw→distill (`/sleep-recovery-memory-l2`). Phân-loại B3 (build-gap vs floor-rot) TRƯỚC reinject. em-main single-writer D9; loop CHỈ đề-xuất (D6). Light→skip.
- **(c) chore-flag:** agent L1 >~30KB → archive L2 · error-ledger open-entry quá ngưỡng · **0-byte memory check (AS-8)** · **🌙 sleep-check (Harness-10b, S72):** `last_sleep_at` null hoặc ≥7d (`memory-budget.json`) → INFORM gợi-ý `/sleep-recovery-memory-l2` (KHÔNG auto-run) · **🗜️ Harness-11 A/D2 (S75):** chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/memory-archive-gate.ps1` (DRY-RUN) → đề-xuất dồn-archive sub over-cap (A4 hysteresis 0.85 + A5 keep-floor 5 + A6 2-strike) + A7 NO-API L1-eval (pointer-resolve + byte-0-loss). Engine → [`docs/governance/harness-11-engine.md`](../../docs/governance/harness-11-engine.md). DRY-RUN báo kế-hoạch; MOVE thật do em-main (D5 AUTO semantic-null sau khi xem). · **📊 Hot-feed %-print CUỐI phiên (Harness-15-v2 §G.4, S82):** in composition Tầng-1 theo **%/4-bucket** SAU khi đã nạp/tăng trong phiên + **Headroom còn-trống** so cap role (`token_governor.tier1_hotfeed_tokens`). Đối-xứng `session-start §2.1.6` (đầu phiên). Mục-đích: anh thấy Tầng-1 phình/teo ra sao + còn trống bao nhiêu → quyết chỉnh cap. 🔴 con-số = quyền anh (chủ-dự-án); em-main chỉ báo-%, KHÔNG tự-chỉnh. · **📊 Bảng-số ngân-sách + run-loop 2-tầng (M.B/M.C — Harness-20 adap S103, [`engine §M`](../../docs/governance/harness-11-engine.md)):** chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/crystallized-backfill.ps1` → in BẢNG số THẬT (cap/hotload-bytes/tok-RANGE/headroom/target/backfill, live 0-hardcode) cạnh %-print. **Tầng-1 ĐO** (deterministic scripts) mỗi end = khối-số tươi (chống "khai-chạy-mà-không-chạy"); **Tầng-2 TINH-CHỈNH on-signal** (gap-mới/drift-vs-last/orphan-TĂNG/coverage-tụt → **cảnh-báo ĐỎ** + refine-in-session HOẶC carry-hi-prio nếu đứt-phiên) — KHÔNG nuốt tín-hiệu; weekly full-refine backstop. backfill default 0=OFF (owner). 🟡 M.C largely-already-met (H17-loop + %-print đã có ở dưới), khối-số = formalize. · **🧪 MFE retention opt-in (Harness-16 §H):** lệnh kèm `eval` → chạy `scripts/mfe-eval.ps1` cuối-phiên (retention; chênh vs baseline §2.1.6 = rot trong-phiên) → quyết-định 2-ca: **thiếu-chỗ→TĂNG budget** (anh quyết) / **rot→SẮP-XẾP-LẠI** (ưu-tiên-giá-trị). READS budget, KHÔNG ghi/auto-tune. · **🔁 H17 loop-REFINE (§I, S95 — [`harness-11-engine.md §I`](../../docs/governance/harness-11-engine.md)):** lệnh kèm `eval` → chạy thêm `scripts/memory-selfimprove-audit.ps1` (spec-audit CRITERIA+GAP) → áp bảng B1 **tín-hiệu→hành-động**: floor-rot→**reinject-verbatim** (ghi [`reinject-ledger.md`](../governance/reinject-ledger.md) CG-1 ≤1/N=3; đo-lại vẫn thiếu→**escalate anh** KHÔNG tự-reinject-lần-2) · repeat≥2→promote · old+valueless→archive-gate · raw→distill (`/sleep-recovery-memory-l2`). Phân-loại B3 (build-gap vs floor-rot) TRƯỚC reinject. em-main single-writer D9; loop CHỈ đề-xuất (D6). Light→skip.
- **(d) flush agent-memory** mỗi sub đã spawn session này — **spawn-record 4-field** `{agent · task · nấc(agreed/executed/verified) · evidence}`. (0 sub spawn → "n-a".) → **⬜ harvest-curator (H2) HỖ TRỢ:** spawn → propose spawn-record cho mọi sub đã chạy → em main single-writer VERIFY → APPEND (B3 no-overwrite-unverified).
- **(e) pending-request audit:** request anh CHƯA-thực-thi đã log SPECIFICS chưa (KHÔNG placeholder).
- **(f) 🌾 harvest-integrity GATE (⬜ harvest-curator H2 — 5-trục, Harness 1+2):** verify spawn-record (d) đủ+đúng mọi sub TRƯỚC khi đóng — **Coverage** (0 silent-miss) · **Completeness** (đủ 4-field) · **Placement** (delta đúng `agent-memory/X`) · **Corruption** (moved-not-cut, no-mojibake/shell-baked) · **Fidelity-FLAG** (nghi bịa/on-behalf → escalate 🟥 reviewer, KHÔNG tự phán). + **🌊 close-gate C5 Layer3 (Harness-10, thay B5 wave-gom):** với MỌI `runs/<run-id>/` của session → **VERIFY per-turn harvest đã xong** (em-main đã viết `runs/<run-id>/<stage>-synthesis.md` phẳng h10-refine — run cũ S71: `harvest/*.md` — NGAY sau mỗi fan-out turn = C4 Layer1) + mọi `runs/<run-id>/` của session có `*-synthesis.md` present (folder-scan — 🧊 tiêu-chí ledger CLOSE-beat retired H18-B S100). 🔴 **IDEMPOTENT — close-gate chỉ VERIFY, KHÔNG re-APPEND** (per-turn đã APPEND rồi → re-APPEND = DUPLICATE-HARVEST). 5-trục GATE giữ làm **backstop**. GATE = run còn `*-synthesis.md` vắng (run cũ S71: `harvest/` rỗng — C8 dual-accept) HOẶC chưa đủ 5-trục thì CHƯA đóng.
@ -110,7 +110,7 @@ Plan cha: [tên]
### 5.1 Release + commit
- Kiểm tra release, commit task vừa hoàn thành. ⚠️ Update `SolutionErp.slnx` nếu có `.cs/.csproj` mới.
- Format: `[CLAUDE] <scope>: <imperative message>` + `Co-Authored-By: <lead model hiện tại> <noreply@anthropic.com>` (hiện = Claude Fable 5; đổi theo BƯỚC 0.6 session-start)
- Format: `[CLAUDE] <scope>: <imperative message>` + `Co-Authored-By: <lead model hiện tại> <noreply@anthropic.com>` (hiện = **Claude Opus 4.8** — S103 Fable-outage, H5-fallback; đổi theo BƯỚC 0.6 session-start — availability per-session)
- Scope: `Contract · PurchaseEvaluation · Budget · Form · Workflow · Supplier · Auth · Admin · Api · App · Domain · Infra · FE-Admin · FE-User · Tests · Docs · CICD · Scripts · Skill`
### 5.2 Push remote

View File

@ -34,7 +34,7 @@ Em main đọc `.claude/fable-real-mode.on` → **BÁO ngay** (mode phán-quyế
## 📋 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. ⚠️ **S101 (2026-07-03): runtime = Opus LẠI** (Fable unavailable — lead + 3 spawn inherit-chain self-report `claude-opus-4-8`) → H5-fallback tự-kích, revert-free; "RESTORED S98" = point-in-time KHÔNG steady-state (chi-tiết STATUS §Sub-agents). ✅ **S102 (2026-07-06): Fable resolve lại bình thường** (lead + 2 monitor self-report `claude-fable-5`) → fallback-S101 đóng; giữ phản xạ probe mỗi phiên (availability = per-session, không tin note phiên trước).
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. ⚠️ **S101 (2026-07-03): runtime = Opus LẠI** (Fable unavailable — lead + 3 spawn inherit-chain self-report `claude-opus-4-8`) → H5-fallback tự-kích, revert-free; "RESTORED S98" = point-in-time KHÔNG steady-state (chi-tiết STATUS §Sub-agents). ✅ **S102 (2026-07-06): Fable resolve lại bình thường** (lead + 2 monitor self-report `claude-fable-5`) → fallback-S101 đóng; giữ phản xạ probe mỗi phiên (availability = per-session, không tin note phiên trước). ⚠️ **S103 (2026-07-06): runtime = Opus LẠI** (Fable outage lần nữa — lead + spawn-inherit self-report `claude-opus-4-8`) → H5-fallback tự-kích lại, revert-free. Per-session flip xác-nhận: S98-Fable→S101-Opus→S102-Fable→**S103-Opus** (chính xác lý-do BƯỚC 0.6 probe MỖI phiên, KHÔNG steady-state).
## Phase 1 — READ (load context)
@ -120,6 +120,7 @@ Em main xác nhận **lead model resolve được** đầu session. Lead SE = **
> Floor H15-v2 (🔴 [`harness-11-engine.md §G.4`](../../docs/governance/harness-11-engine.md)): Tầng-1 = HOT-FEED LỚN → cần "kính soi" để anh thấy phần luôn-nạp đang chứa gì, bucket nào mỏng, còn trống bao nhiêu → anh quyết điều-chỉnh. 🔴 **Ranh-giới vai-trò:** con-số = **quyền anh (chủ-dự-án)**; em-main chỉ THỰC-THI-đúng-số + BÁO-% (KHÔNG tự-tinh-chỉnh con-số).
- **In Phase 3 REPORT (đầu phiên):** ước-lượng composition Tầng-1 theo **% / 4 bucket** (tỉ-lệ đủ, KHÔNG cần đo chính-xác): (1) WIP work-state · (2) lỗi-lặp/anti-pattern/gotcha · (3) tồn-đọng · (4) quyết-định-chờ. + **Headroom** = phần còn-trống so cap role (`memory-budget.json:token_governor.tier1_hotfeed_tokens` lead **380K** (v4 S94 owner-override, SE-specific fit full read-set ~368K; subs giữ parity) · mem-sub (agent-ký-ức) 60K · wf-sub (agent-workflow) 50K; canonical = budget.json đọc số sống đó, đừng tin echo này khi anh đổi cap).
- **📊 Bảng-số ngân-sách THẬT (M.B Harness-20 adap S103, [`engine §M`](../../docs/governance/harness-11-engine.md)):** chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/crystallized-backfill.ps1` in BẢNG số live (cap / hotload-đo-bytes / tok-RANGE / measured_headroom / target / expected_backfill) BÊN CẠNH %-ước-lượng. Số đọc-sống `budget.json` 0-hardcode; backfill default **0=OFF** (owner-authority, script READ-ONLY). 🟡 measured_headroom = **UPPER-BOUND** (file-floor 6-file; peak thêm task-context biến-thiên real NHỎ HƠN). Lightskip.
- 🔴 **Headroom > 0 mà CÒN nội-dung giá-trị-cao chưa nạp = under-fill (SAI)** nạp tiếp tới khi đầy hoặc cạn nội-dung giá-trị-cao. Headroom = cờ-báo, KHÔNG phải đích-tiết-kiệm; **nạp-đầy ≠ nhồi-rác** (giá-trị-thấp KHÔNG vào Tầng-1).
- **Light/hỏi-đáp gọn 1 dòng; feature/bug/governance in đủ 4-bucket %.** Đối-xứng `session-end §L.b(c)` (% cuối phiên + Headroom).
- **🧪 MFE opt-in (Harness-16 §H memory-fidelity-EVAL, KHÁC H6.7 memoryDelta-routing):** lệnh kèm tham-số `eval` chạy thêm baseline `powershell.exe -ExecutionPolicy Bypass -File scripts/mfe-eval.ps1` = LEAD coverage-FIT (must-remember vs cap, token-RANGE) + age-band (flag-not-cut) + Goodhart-anchor (strikes/RCA) + SUB per-role coverage (đo-thật, prose-onlyN/A). KHÔNG `eval` = bỏ qua (tương-thích-ngược). MFE **READS** budget single-source, KHÔNG ghi. Light skip; governance/audit nên chạy.