[CLAUDE] Docs: adopt User-Mark (H-12/13 canonical §P) + Harness-14 + RC-signature (S79)

Áp canonical §P đầy-đủ (P1-P10) khi anh gõ /user-mark-active-high "áp đầy-đủ
chính-xác nhất theo AI_INFRA". 0 production code.

- 4 lệnh /user-mark-{active-high,active,medium,disable} (DACI report-before-stamp)
- ledger .claude/governance/ACTIVE-MARKS.md (4 cấp Active-High/Active/Medium/Disable
  + display-filter) + 3 mark Active-High stamped anh-confirm
  (RC-pqhuy1987-20-06-2026-10-29-09/10/11 = objective-criteria/User-Mark/time-age)
- harness-11-engine.md §E (P1-P10) + §F (Harness-14 3-mức maturity honest)
- rules.md §6.6 objective-criteria (KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi)
- session-start §2.1.4 + session-end §L.b(h) mark-display
- 4 Workflow: invest wf_82337f7f-95c + review wf_a7cbe93e-912
  + align-re-review wf_9d3beebb-a95 (§P 10/10) + H14-review wf_4d4eba6f-8a0 (§F 6/6)
- completeness-gate H-6→H-13 ĐẠT (H-8 11/11 inherit no-[1m])
- 3 adap-report + email ai_infra (7b8615b3) + check-email STAGE 2

State THẬT GIỮ NGUYÊN: Mig 57 · 88 bảng · 354 test · gotcha 71 · bundle CsJetgZH/BVS0ApIm.
Restart CLI để activate 4 lệnh + session-cmd (no hot-reload).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-06-20 10:53:23 +07:00
parent f0e616fd5a
commit 33d519eda0
21 changed files with 519 additions and 6 deletions

View File

@ -70,10 +70,14 @@ Bearer từ `POST api.solutions.com.vn/api/auth/login` → status matrix expecte
## 📅 Recent activity (FIFO — older → archive/git) ## 📅 Recent activity (FIFO — older → archive/git)
- **2026-06-20 (governance-landing map for RC-sig + User-Mark H12/13 + objective-criteria, on-disk):** ⭐ **WHERE-to-land 3 AI_INFRA gov broadcasts.** Key files: `docs/governance/harness-11-engine.md` = CANONICAL engine (PHẦN A/B/C/D + CAVEAT; line5 "doc khác TRỎ về đây KHÔNG copy luật"; D5/D6/D7/D8 safety-tier line62-72; D7 OWNER-APPROVE line69; D9 single-writer line73; D10 "Bash residual chưa block cứng" line74; CAVEAT no-OS-hook line80). `error-ledger.md` = §L.a action-sig table AS-1..AS-13 + §L.b 7-step + Active-Guards 2-strike; **3-ledger triad** README.md:6 (error/comms/summary by FUNCTION). adap-report FORMAT = `adap-reports/YYYY-MM-DD-<Topic>.md` frontmatter(id/from/applied_by/nac/project_fit/source_content_sha256)+VERDICT/Nấc-table/Tailoring/Honest-caveats/Reverse-findings/Evidence(run-id) — richest template = `2026-06-18-Governance-harness-11.md`. rules.md §6=Docs/gov-discipline (§6.4 audit-cadence/§6.5 consolidate-KEEP-vs-CUT) → objective-criteria → NEW §6.6. session-start §2.1.3 (line83-88 H11-detector) = EXACT precedent for per-session gov-surface → mark-list-display START = NEW §2.1.4. session-end §L.b(c) (line48 archive-gate+sleep) → mark-list END. **RECs:** RC-sig+4-tier → NEW section in engine.md (REUSE file, after PHẦN D); decision-mark ledger → **NEW `docs/governance/decision-marks.md`** sibling error-ledger (forward-registry ≠ reactive-RCA). **CONFLICT: report-before-stamp ⊂ D7 already** (owner-approve exists) — extend D7 not duplicate (else C3 vocab-fork). 2-channel enforce already empirical: E-006/AS-10 + CAVEAT "hook fails-open, permission-config strip = real gate". Tag `[gov-landing-map, rc-sig, user-mark-h12-13, decision-marks-new-file, report-before-stamp-subset-d7, objective-criteria-rules-6-6]`.
- **2026-06-19 (S76 P2+P3 — budget-edit-role BADGE insert-point map, designer+fe-user-flow, on-disk):** ⭐ **Display-only "✎ NS PRO/CCM" badge per approver — BE change = SMALL both DTOs.** **(A) Designer fe-admin `ApprovalWorkflowsV2Page.tsx`:** read-only render `DefinitionCard:446-454` (level group → approver `{approverUserName}` + `({approverEmail})`); DTO `LevelDto:37-54` (approverUserId/userName/email + 7 Allow* flag, **NO role/dept field**). Feed = `GetAwAdminOverview` (`/approval-workflows-v2`). **Insert badge → `:447-452`** cạnh `approverUserName`. **(B) fe-user `PeDetailTabs.tsx`:** approvalFlow render `LevelOpinionsSectionV2:588` (signed-only) — но live flow tree = `currentApproval.approvers` :131 + Panel3 separate. `PeApprovalFlow` DTO `purchaseEvaluation.ts` + BE `PurchaseEvaluationApprovalLevelApproverDto` (`PurchaseEvaluationDtos.cs:129-132` = UserId/FullName/Email, **NO role**). **(C) Role-resolve for LIST userId:** codebase uses `userManager.GetRolesAsync(u)` (per-user, N+1 risk) OR `GetUsersInRoleAsync(role)` (reverse, `PeUrgentFeatures.cs:74`). `IApplicationDbContext` exposes `DbSet<Role> Roles` :29 but **NO UserRoles join-table DbSet** → efficient batch = either (a) `userManager.GetUsersInRoleAsync(Procurement/CostControl)`→2 HashSet<Guid>, mark approver if id∈set (NO N+1, 2 queries total); or (b) add `DbSet<IdentityUserRole<Guid>>` to interface for join. **BE build site `PurchaseEvaluationFeatures.cs:964-972`** already batches `approverInfos` via `userManager.Users.Where(Contains(allApproverIds))` — extend SELECT or post-join 2 role-sets here; handler has both `db`+`userManager` :750-751. **(D) Change size = SMALL:** +2 bool field (canEditProBudget/canEditCcmBudget) per approver DTO + 2 GetUsersInRoleAsync calls. Designer side: `GetAwAdminOverview` query needs same 2-set lookup (admin-only, cheap). Gate semantics ALREADY proven `:800-801` (canEditPro=Admin||Procurement, canEditCcm=Admin||CostControl). **(E) REC:** minimal = compute 2 HashSet once (proFans/ccmFans via GetUsersInRoleAsync), pass into approver-DTO map both sites; badge = pure display `id∈proFans→"✎ NS PRO"` `id∈ccmFans→"✎ NS CCM"`. RISK low (display-only, no authz touch) — only watch: a user can hold BOTH roles → show both badges; Admin holds neither role explicitly unless seeded → may need OR Admin note. Tag `[s76, budget-role-badge, designer+pe-flow, getusersinrole-batch-no-n1, approver-dto-add-2bool, display-only]`. - **2026-06-19 (S76 P2+P3 — budget-edit-role BADGE insert-point map, designer+fe-user-flow, on-disk):** ⭐ **Display-only "✎ NS PRO/CCM" badge per approver — BE change = SMALL both DTOs.** **(A) Designer fe-admin `ApprovalWorkflowsV2Page.tsx`:** read-only render `DefinitionCard:446-454` (level group → approver `{approverUserName}` + `({approverEmail})`); DTO `LevelDto:37-54` (approverUserId/userName/email + 7 Allow* flag, **NO role/dept field**). Feed = `GetAwAdminOverview` (`/approval-workflows-v2`). **Insert badge → `:447-452`** cạnh `approverUserName`. **(B) fe-user `PeDetailTabs.tsx`:** approvalFlow render `LevelOpinionsSectionV2:588` (signed-only) — но live flow tree = `currentApproval.approvers` :131 + Panel3 separate. `PeApprovalFlow` DTO `purchaseEvaluation.ts` + BE `PurchaseEvaluationApprovalLevelApproverDto` (`PurchaseEvaluationDtos.cs:129-132` = UserId/FullName/Email, **NO role**). **(C) Role-resolve for LIST userId:** codebase uses `userManager.GetRolesAsync(u)` (per-user, N+1 risk) OR `GetUsersInRoleAsync(role)` (reverse, `PeUrgentFeatures.cs:74`). `IApplicationDbContext` exposes `DbSet<Role> Roles` :29 but **NO UserRoles join-table DbSet** → efficient batch = either (a) `userManager.GetUsersInRoleAsync(Procurement/CostControl)`→2 HashSet<Guid>, mark approver if id∈set (NO N+1, 2 queries total); or (b) add `DbSet<IdentityUserRole<Guid>>` to interface for join. **BE build site `PurchaseEvaluationFeatures.cs:964-972`** already batches `approverInfos` via `userManager.Users.Where(Contains(allApproverIds))` — extend SELECT or post-join 2 role-sets here; handler has both `db`+`userManager` :750-751. **(D) Change size = SMALL:** +2 bool field (canEditProBudget/canEditCcmBudget) per approver DTO + 2 GetUsersInRoleAsync calls. Designer side: `GetAwAdminOverview` query needs same 2-set lookup (admin-only, cheap). Gate semantics ALREADY proven `:800-801` (canEditPro=Admin||Procurement, canEditCcm=Admin||CostControl). **(E) REC:** minimal = compute 2 HashSet once (proFans/ccmFans via GetUsersInRoleAsync), pass into approver-DTO map both sites; badge = pure display `id∈proFans→"✎ NS PRO"` `id∈ccmFans→"✎ NS CCM"`. RISK low (display-only, no authz touch) — only watch: a user can hold BOTH roles → show both badges; Admin holds neither role explicitly unless seeded → may need OR Admin note. Tag `[s76, budget-role-badge, designer+pe-flow, getusersinrole-batch-no-n1, approver-dto-add-2bool, display-only]`.
- **2026-06-19 (PE Block-A budget editable-gate audit — submission-count lock NEXISTS, on-disk):** ⭐ **Gate = PURE ROLE, KHÔNG phase, KHÔNG số-lần-trình.** BE `PurchaseEvaluationFeatures.cs:800-801` `canEditPro=isAdmin||Procurement` · `canEditCcm=isAdmin||CostControl` (DTO arg :856). Handler `PeWorkItemBudgetFeatures.cs`: PRO `:86-91` CCM `:152-157` fail-closed ForbiddenException role-only TRƯỚC side-effect; comment `:18-20` ghi RÕ "KHÔNG ràng Phase (bảng NS = tài-liệu-sống chỉnh bất-kỳ-lúc-nào như Excel)". Validator chỉ `>=0` (Initial :136, Adjustment cho-ÂM :138), absolute-set null=clear. **FE `PeDetailTabs.tsx:1060 PeBudgetSummaryTable`:** ô "Ban hành lần đầu" :1173 + ô "hiệu chỉnh V0" :1188 dùng **CÙNG biến `bs.canEditCcm`** — ZERO phân-biệt 2 ô, ZERO lock-after-first. `drafterEditable:1066`=`!readOnly&&isEditablePhase` chỉ áp row3/row8 (drafter NS-kỳ-này), KHÔNG áp Block-A. **(b) submission-count lock = KHÔNG TỒN TẠI:** grep `submitCount|lanTrinh|firstSubmit|lockInitial|hasSubmitted|soLanTrinh` toàn `src/Backend`=0 + FE=0. Entity `PeWorkItemBudget.cs` 6 field plain, KHÔNG cờ `IsInitialLocked`/`SubmitCount`; record per-cặp(Project×WorkItem) share mọi phiếu KHÔNG track lần-trình. **Kết luận: yêu-cầu chị Trà/anh Kiệt (khóa Initial sau lần-trình-đầu, mở Adjustment) = FEATURE MỚI — cần field track first-submit-done + TÁCH gate 2 ô (Initial vs Adjustment), HIỆN cùng `canEditCcm` không tách được.** Tag `[pe-block-a-gate, role-only-no-phase, submission-count-lock-NEXISTS, initial-vs-adjustment-same-gate, fdc-feature-new]`. - **2026-06-19 (PE Block-A budget editable-gate audit — submission-count lock NEXISTS, on-disk):** ⭐ **Gate = PURE ROLE, KHÔNG phase, KHÔNG số-lần-trình.** BE `PurchaseEvaluationFeatures.cs:800-801` `canEditPro=isAdmin||Procurement` · `canEditCcm=isAdmin||CostControl` (DTO arg :856). Handler `PeWorkItemBudgetFeatures.cs`: PRO `:86-91` CCM `:152-157` fail-closed ForbiddenException role-only TRƯỚC side-effect; comment `:18-20` ghi RÕ "KHÔNG ràng Phase (bảng NS = tài-liệu-sống chỉnh bất-kỳ-lúc-nào như Excel)". Validator chỉ `>=0` (Initial :136, Adjustment cho-ÂM :138), absolute-set null=clear. **FE `PeDetailTabs.tsx:1060 PeBudgetSummaryTable`:** ô "Ban hành lần đầu" :1173 + ô "hiệu chỉnh V0" :1188 dùng **CÙNG biến `bs.canEditCcm`** — ZERO phân-biệt 2 ô, ZERO lock-after-first. `drafterEditable:1066`=`!readOnly&&isEditablePhase` chỉ áp row3/row8 (drafter NS-kỳ-này), KHÔNG áp Block-A. **(b) submission-count lock = KHÔNG TỒN TẠI:** grep `submitCount|lanTrinh|firstSubmit|lockInitial|hasSubmitted|soLanTrinh` toàn `src/Backend`=0 + FE=0. Entity `PeWorkItemBudget.cs` 6 field plain, KHÔNG cờ `IsInitialLocked`/`SubmitCount`; record per-cặp(Project×WorkItem) share mọi phiếu KHÔNG track lần-trình. **Kết luận: yêu-cầu chị Trà/anh Kiệt (khóa Initial sau lần-trình-đầu, mở Adjustment) = FEATURE MỚI — cần field track first-submit-done + TÁCH gate 2 ô (Initial vs Adjustment), HIỆN cùng `canEditCcm` không tách được.** Tag `[pe-block-a-gate, role-only-no-phase, submission-count-lock-NEXISTS, initial-vs-adjustment-same-gate, fdc-feature-new]`.
- **2026-06-20 (Harness-14 Eval/Budget/Outcome adoption-readiness audit, on-disk):** ⭐ H-14 rule = time/age/recency-decay KHÔNG được làm căn-cứ cắt feature (cùng họ lỗi team-size). **(1) BUDGET ALIGNED:** `memory-budget.json` grep decay|recency|retention|age|TTL|expire=**0 hit**. Params = `autoinject_cap 25600`/`soft_cap 30720` (L1) · `archive_gate{low_watermark_ratio 0.85, keep_floor_entries 5, strike_threshold 2}`. `keep_floor=5` = **newest-entry-protection** (gate-script `:144` `entryCount - keepFloor` drains OLDEST keeps newest N — KHÔNG age-window). Cap = **seed-by-MEASURE** (`_note:2` "SEEDED BY MEASUREMENT NOT imagined headroom" + `scripts/measure-agent-memory.ps1` real-bytes), bump-not-cut khi curate drops markers. Hysteresis drain-to-BELOW-low-water (`gate:33`). ✅ fully H-14-aligned, zero forbidden knob. **(2) BASELINE-DRIFT ALIGNED:** `governance-detectors.ps1` staleness = **CANONICAL-ANCHOR vs docs/STATUS.md** (`Get-StatusValue:133` parse `| label | **N** |`) + **disk cross-check** (`:164-194` mig=count .cs · gotcha=max `### N.` anchor; flag if canonical-itself-stale) — ZERO age-window. `memory-archive-gate.ps1` over-cap = byte-MEASURE+2-strike-hysteresis (`:106 bytes>cap`), A7 = substring-pointer-resolve. Neither uses time. **(3) EVAL = GENUINE (not a gap!):** SE HAS RAG golden-set harness — `eval/golden-set-solution_erp.jsonl` (14 q: 11 pos + 3 neg) + `eval/evaluator.md` (Spec-A strict recall@5 gate 0.7, rerank≥0.7) + `eval/trial-state-lock.json` (baseline recall@5=1.0, chunk-drift 5% threshold) + `eval/runs/*.json`. BUT: weekly-Friday manual (`evaluator.md:88`), no scripts/ automation, RAG re-index AI_INFRA-owned. Honest nuance: harness EXISTS (richer than expected) but NOT auto-run. **(4) OUTCOME PARTIAL:** anti-downgrade rule EXISTS as Harness-8 "all-inherit, chất-lượng-trên-chi-phí, 'nhanh'=parallelism KHÔNG hạ-model" (`agents/README.md:12` + adap-report `2026-06-16-...harness-8:18,42,65`). BUT phrased as model-tier policy, NOT a generic "downgrade-to-save-tokens=forbidden" rule; `docs/rules.md` has NO such rule (grep 0). em-main must author H-14-specific knobs only if wanting explicit "age≠cut-basis" doctrine — mechanisms already structurally compliant. Tag `[harness-14, budget-no-decay-knob, canonical-anchor-not-age, eval-genuine-richer, anti-downgrade-h8-partial]`.
- **2026-06-18 (PE price-model recon FDC "Giá chào thầu" PRO-Min/Max + CCM-proposed, on-disk):** ⭐ **"Giá chào thầu" mục c = DERIVED, KHÔNG stored column** = `WinnerQuoteTotal` = SUM(Quote.ThanhTien WHERE supplierRows==SelectedSupplierId). Computed 3 nơi đồng-predicate: submit-guard `PurchaseEvaluationWorkflowService.cs:188-192` · detail-GET `PurchaseEvaluationFeatures.cs:818-826`(→`CurrentProposalTotal`) · CEO-threshold `:833`. DTO `WinnerQuoteTotal` `PurchaseEvaluationDtos.cs:244`. **ALL money fields:** Quote(NCC) `BgVat/ChuaVat/ThanhTien` decimal non-null `PurchaseEvaluationQuote.cs:12-14` · PE-header `BudgetPeriodAmount`(row3 drafter)/`ExpectedRemainingAmount`(row8) decimal? `PurchaseEvaluation.cs:40-41` · PeWorkItemBudget(per cặp Project×WorkItem) PRO `ProEstimateAmount:27` + CCM `InitialAmount`/`AdjustmentAmount`(ÂM-OK) `:29-30` decimal? · Detail dự-toán `KhoiLuong/DonGia/ThanhTienNganSach` `PurchaseEvaluationDetail.cs:15-18`. **PRO-min/max + CCM-proposed = KHÔNG tồn-tại** (grep Min|Max|Proposed|Suggest|BidPrice|GiaChaoThau PE-entities=0) → field MỚI. **Role-gate mirror-được (`PeWorkItemBudgetFeatures.cs`):** 2 cmd tách `UpdatePeBudgetProCommand:61`+`UpdatePeBudgetCcmCommand:126`; handler fail-closed `ForbiddenException` TRƯỚC side-effect — PRO `:86-91`(`Admin||Procurement`) CCM `:150-155`(`Admin||CostControl`); capability-flag BE-computed `canEditPro/canEditCcm` `PurchaseEvaluationFeatures.cs:783-784`→DTO `PeBudgetSummaryDto:290-291`; auto-create race-safe `PeWorkItemBudgetEnsurer.EnsureTrackedAsync:34`; KHÔNG ràng Phase. NO AutoMapper (DTO project tay). **FE (fe-user `src/`; fe-admin PeDetailTabs.tsx = SHA-identical `diff -q`):** mục-c `components/pe/PeDetailTabs.tsx:1406-1417`(helper `computeGiaChaoThau` def:71 call:1393) · budget-table `PeBudgetSummaryTable:1062-`(rows:1110-1128, host `ChonNccSection:1383`) · giá-gói+CEO-threshold `:311-313` · create `PeWorkspaceCreateView.tsx` · header `PeHeaderForm.tsx`. FE type `types/purchaseEvaluation.ts` `PeBudgetSummary:292-307`+`winnerQuoteTotal:445`. ⚠️ fe-admin types DIFFER (sync cả 2). **Surprise:** PRO-Min/Max-chốt + CCM-proposed = semantic MỚI (giá-người-duyệt ≠ giá-NCC-báo); gắn PeWorkItemBudget(per-cặp role-gate-sẵn) vs column-PE(per-phiếu) = em-main quyết. Mig 53 CeoApprovalThreshold+cờ-gấp đã có khung CEO-duyệt-theo-ngưỡng. Tag `[pe-price-model, gia-chao-thau-derived, pro-minmax-ccm-proposed-NEW, role-gate-mirror, fdc]`. - **2026-06-18 (PE price-model recon FDC "Giá chào thầu" PRO-Min/Max + CCM-proposed, on-disk):** ⭐ **"Giá chào thầu" mục c = DERIVED, KHÔNG stored column** = `WinnerQuoteTotal` = SUM(Quote.ThanhTien WHERE supplierRows==SelectedSupplierId). Computed 3 nơi đồng-predicate: submit-guard `PurchaseEvaluationWorkflowService.cs:188-192` · detail-GET `PurchaseEvaluationFeatures.cs:818-826`(→`CurrentProposalTotal`) · CEO-threshold `:833`. DTO `WinnerQuoteTotal` `PurchaseEvaluationDtos.cs:244`. **ALL money fields:** Quote(NCC) `BgVat/ChuaVat/ThanhTien` decimal non-null `PurchaseEvaluationQuote.cs:12-14` · PE-header `BudgetPeriodAmount`(row3 drafter)/`ExpectedRemainingAmount`(row8) decimal? `PurchaseEvaluation.cs:40-41` · PeWorkItemBudget(per cặp Project×WorkItem) PRO `ProEstimateAmount:27` + CCM `InitialAmount`/`AdjustmentAmount`(ÂM-OK) `:29-30` decimal? · Detail dự-toán `KhoiLuong/DonGia/ThanhTienNganSach` `PurchaseEvaluationDetail.cs:15-18`. **PRO-min/max + CCM-proposed = KHÔNG tồn-tại** (grep Min|Max|Proposed|Suggest|BidPrice|GiaChaoThau PE-entities=0) → field MỚI. **Role-gate mirror-được (`PeWorkItemBudgetFeatures.cs`):** 2 cmd tách `UpdatePeBudgetProCommand:61`+`UpdatePeBudgetCcmCommand:126`; handler fail-closed `ForbiddenException` TRƯỚC side-effect — PRO `:86-91`(`Admin||Procurement`) CCM `:150-155`(`Admin||CostControl`); capability-flag BE-computed `canEditPro/canEditCcm` `PurchaseEvaluationFeatures.cs:783-784`→DTO `PeBudgetSummaryDto:290-291`; auto-create race-safe `PeWorkItemBudgetEnsurer.EnsureTrackedAsync:34`; KHÔNG ràng Phase. NO AutoMapper (DTO project tay). **FE (fe-user `src/`; fe-admin PeDetailTabs.tsx = SHA-identical `diff -q`):** mục-c `components/pe/PeDetailTabs.tsx:1406-1417`(helper `computeGiaChaoThau` def:71 call:1393) · budget-table `PeBudgetSummaryTable:1062-`(rows:1110-1128, host `ChonNccSection:1383`) · giá-gói+CEO-threshold `:311-313` · create `PeWorkspaceCreateView.tsx` · header `PeHeaderForm.tsx`. FE type `types/purchaseEvaluation.ts` `PeBudgetSummary:292-307`+`winnerQuoteTotal:445`. ⚠️ fe-admin types DIFFER (sync cả 2). **Surprise:** PRO-Min/Max-chốt + CCM-proposed = semantic MỚI (giá-người-duyệt ≠ giá-NCC-báo); gắn PeWorkItemBudget(per-cặp role-gate-sẵn) vs column-PE(per-phiếu) = em-main quyết. Mig 53 CeoApprovalThreshold+cờ-gấp đã có khung CEO-duyệt-theo-ngưỡng. Tag `[pe-price-model, gia-chao-thau-derived, pro-minmax-ccm-proposed-NEW, role-gate-mirror, fdc]`.
- **2026-06-18 (S71 PART-C audit — run-trace vs checklist-v2 FLAT + detector-refine, on-disk):** ⭐ **2 GAP THẬT (trung-thực, không inflate):** (1) **C1/C2/C8 = SUBFOLDER, canonical-v2 = FLAT → migration NEEDED, chưa làm.** `find runs/` cho thấy MỖI run-folder có `sub-md/`+`harvest/` SUBDIR (5 run: h10-{invest,implement,review}+h910-{finalize,curate}) — đúng cấu-trúc CŨ broadcast-delta phát-bỏ. ZERO flat-awareness: grep `phẳng|flat|cùng cấp` trong `.claude/workflows/`+`.claude/commands/`=0 hit. SE-adoption-commit `8c47bd0`(06-18) TRƯỚC broadcast-flat cùng-ngày → SE chưa biết. README/hmw.js/session-end đều mô-tả subfolder. C8 dual-form-acceptance close-gate cũng chưa. (2) **REFINE(b) detector = MISSING HOÀN-TOÀN.** `find .claude -name *.js/*.ps1`=CHỈ `hmw.js`(=engine ≠ detector). `.claude/hooks`+`.claude/scripts` KHÔNG tồn-tại. Repo-wide grep `bypass|scan.*runs` script=0. SE KHÔNG có bộ-dò chống-lách-engine → 3-function (whitelist/path-variants/launch-key-anchor)+relation-acceptance = n-a. **MET (đừng nhạ oan):** C3 committed THẬT — `git check-ignore runs`=exit1(NOT-ignored)+`git ls-files runs`=22 file (cả hai nấc). C4 per-turn real (`invest-synthesis.md` 43-dòng). C5 3-layer wired: L1 README:51(convention em-main) · L2 `session-start.md:71` orphan-scan `runs/*/` closed=⏳+harvest-rỗng · L3 `session-end.md:51` close-gate idempotent 5-trục. C6 ledger 2-beat (`_ledger.md:7`, 5 run đều CLOSE-beat+wf_). C7 caveat present (README §69-73 no-overclaim/fragile/G-015 TRACKED≠enforced). ⚠️ sub-md/ chỉ `.gitkeep` (read-only sub→em-main scribe, design KHÔNG phải miss). Tag `[s71, part-c-audit, subfolder-not-flat, detector-MISSING, c3-committed-real]`. - **2026-06-18 (S71 PART-C audit — run-trace vs checklist-v2 FLAT + detector-refine, on-disk):** ⭐ **2 GAP THẬT (trung-thực, không inflate):** (1) **C1/C2/C8 = SUBFOLDER, canonical-v2 = FLAT → migration NEEDED, chưa làm.** `find runs/` cho thấy MỖI run-folder có `sub-md/`+`harvest/` SUBDIR (5 run: h10-{invest,implement,review}+h910-{finalize,curate}) — đúng cấu-trúc CŨ broadcast-delta phát-bỏ. ZERO flat-awareness: grep `phẳng|flat|cùng cấp` trong `.claude/workflows/`+`.claude/commands/`=0 hit. SE-adoption-commit `8c47bd0`(06-18) TRƯỚC broadcast-flat cùng-ngày → SE chưa biết. README/hmw.js/session-end đều mô-tả subfolder. C8 dual-form-acceptance close-gate cũng chưa. (2) **REFINE(b) detector = MISSING HOÀN-TOÀN.** `find .claude -name *.js/*.ps1`=CHỈ `hmw.js`(=engine ≠ detector). `.claude/hooks`+`.claude/scripts` KHÔNG tồn-tại. Repo-wide grep `bypass|scan.*runs` script=0. SE KHÔNG có bộ-dò chống-lách-engine → 3-function (whitelist/path-variants/launch-key-anchor)+relation-acceptance = n-a. **MET (đừng nhạ oan):** C3 committed THẬT — `git check-ignore runs`=exit1(NOT-ignored)+`git ls-files runs`=22 file (cả hai nấc). C4 per-turn real (`invest-synthesis.md` 43-dòng). C5 3-layer wired: L1 README:51(convention em-main) · L2 `session-start.md:71` orphan-scan `runs/*/` closed=⏳+harvest-rỗng · L3 `session-end.md:51` close-gate idempotent 5-trục. C6 ledger 2-beat (`_ledger.md:7`, 5 run đều CLOSE-beat+wf_). C7 caveat present (README §69-73 no-overclaim/fragile/G-015 TRACKED≠enforced). ⚠️ sub-md/ chỉ `.gitkeep` (read-only sub→em-main scribe, design KHÔNG phải miss). Tag `[s71, part-c-audit, subfolder-not-flat, detector-MISSING, c3-committed-real]`.

View File

@ -13,6 +13,7 @@
> **Upgrade S70 (2026-06-17 — Harness-9 L2-recovery + adap 2-workflow adopt):** **(1) PROCESS-mandate 🔴 BẮT BUỘC (PART 2/3, áp MỌI adap từ nay):** mỗi adap 1 Harness = **2 workflow tách biệt** (IMPLEMENT + REVIEW double-check RIÊNG) + REPORT về AI_INFRA kèm **run-id** bằng chứng; task ngắn-nhưng-cần-confirm VẪN phải review-workflow. Codify `.claude/commands/adap-apply.md`. **(2) L2 dark-matter recovery (PART 1, tailored):** archive `agent-memory/<sub>/archive/*.md` KHÔNG vào RAG → build `archive/_INDEX.md` (mục-lục 1-dòng/bản-ghi + con-trỏ **substring** sha-keyed, fallback Ctrl-F, KHÔNG line-hint) + `<period>.gist.md` (nén 4-field ADDITIVE, `distill-gen` counter, verbatim FROZEN) + `memory-budget.json` (seed-by-measure qua `scripts/measure-agent-memory.ps1`) + budget-audit @session-start (§2.1.2) + `.ragignore` guard. Rollout S70 (đầy-đủ-nhất, stage investigate→implement→audit qua 3 Workflow run-id): 4 over-cap sub (cicd-monitor · investigator-codebase · reviewer · implementer-backend). adap-report `2026-06-17-Governance-harness-9-l2-recovery-and-adap-workflow.md`. > **Upgrade S70 (2026-06-17 — Harness-9 L2-recovery + adap 2-workflow adopt):** **(1) PROCESS-mandate 🔴 BẮT BUỘC (PART 2/3, áp MỌI adap từ nay):** mỗi adap 1 Harness = **2 workflow tách biệt** (IMPLEMENT + REVIEW double-check RIÊNG) + REPORT về AI_INFRA kèm **run-id** bằng chứng; task ngắn-nhưng-cần-confirm VẪN phải review-workflow. Codify `.claude/commands/adap-apply.md`. **(2) L2 dark-matter recovery (PART 1, tailored):** archive `agent-memory/<sub>/archive/*.md` KHÔNG vào RAG → build `archive/_INDEX.md` (mục-lục 1-dòng/bản-ghi + con-trỏ **substring** sha-keyed, fallback Ctrl-F, KHÔNG line-hint) + `<period>.gist.md` (nén 4-field ADDITIVE, `distill-gen` counter, verbatim FROZEN) + `memory-budget.json` (seed-by-measure qua `scripts/measure-agent-memory.ps1`) + budget-audit @session-start (§2.1.2) + `.ragignore` guard. Rollout S70 (đầy-đủ-nhất, stage investigate→implement→audit qua 3 Workflow run-id): 4 over-cap sub (cicd-monitor · investigator-codebase · reviewer · implementer-backend). adap-report `2026-06-17-Governance-harness-9-l2-recovery-and-adap-workflow.md`.
> **Upgrade S72 (2026-06-18 — Harness-10 flat-refine + checklist-v2 adopt):** run-trace SUBFOLDER→**FLAT** (file phẳng cùng cấp: `sub-<role>-<i>.md` raw + `<stage>-synthesis.md` verified, KHÔNG `sub-md/`/`harvest/` subdir) — `hmw.js` (`:103` subMd path) + `workflows/README` + `runs/README` + session-start/end + decision-tree (dòng dưới) repoint. **C8 migration:** 5 run cũ S71 GIỮ subfolder (đừng rewrite history); close-gate dual-accept cả hai dạng. **+`/sleep-recovery-memory-l2`** (đóng A8 — port §J2-tailored SE-only: sleep-compress L2 gist additive, INFORM-only ≥7d). **Anti-bypass detector (refine b): TAILORED-OUT** — SE dùng Anthropic Workflow tool (no CLI-launcher bypass-surface), containment = git-diff + run-folder TRACKED + ledger orphan-scan (G-015). 3 run-id bằng-chứng: audit `wf_13868efb-ea7` · implement `wf_ac43b5ff-7d1` · review (pending). adap-report `2026-06-18-Governance-harness-10-flat-refine-checklist-v2.md` (pending). > **Upgrade S72 (2026-06-18 — Harness-10 flat-refine + checklist-v2 adopt):** run-trace SUBFOLDER→**FLAT** (file phẳng cùng cấp: `sub-<role>-<i>.md` raw + `<stage>-synthesis.md` verified, KHÔNG `sub-md/`/`harvest/` subdir) — `hmw.js` (`:103` subMd path) + `workflows/README` + `runs/README` + session-start/end + decision-tree (dòng dưới) repoint. **C8 migration:** 5 run cũ S71 GIỮ subfolder (đừng rewrite history); close-gate dual-accept cả hai dạng. **+`/sleep-recovery-memory-l2`** (đóng A8 — port §J2-tailored SE-only: sleep-compress L2 gist additive, INFORM-only ≥7d). **Anti-bypass detector (refine b): TAILORED-OUT** — SE dùng Anthropic Workflow tool (no CLI-launcher bypass-surface), containment = git-diff + run-folder TRACKED + ledger orphan-scan (G-015). 3 run-id bằng-chứng: audit `wf_13868efb-ea7` · implement `wf_ac43b5ff-7d1` · review (pending). adap-report `2026-06-18-Governance-harness-10-flat-refine-checklist-v2.md` (pending).
> **Upgrade S75 (2026-06-18 — Harness-11 engine bộ-nhớ-và-governance TỰ-BẢO-TRÌ adopt):** engine tự-DÒ toàn-diện (luôn tươi báo cờ) + AUTO chỉ semantic-null git-diff + **single-writer bar-KHÔNG-hạ (D9)** + đổi-luật owner-approve (D7). 🔑 Canonical → [`docs/governance/harness-11-engine.md`](../../docs/governance/harness-11-engine.md) (**KHÔNG copy luật ở đây — B1 dogfood**). Artifact MỚI: `scripts/governance-detectors.ps1` (C1 broken-pointer + C2/B3 staleness + C3 vocab-fork + C4 self-exclusion, NO-API DÒ+FLAG-only, **runtime-proven** bắt drift root CLAUDE.md mig53→55 + 0 self-match; số flag động → run-trace) + `scripts/memory-archive-gate.ps1` (PHẦN A hysteresis 0.85/keep-floor 5/2-strike/A7 NO-API L1-eval) + budget.json `archive_gate`. 3-tier D5(AUTO)/D6(DÒ+FLAG)/D7(owner-approve) + one-direction-lock D8 (canonical→derived) codify ở engine-doc. Cadence wired: D1 session-start §2.1.3 (chạy detector) · D2 session-end §L.b(c) (archive-gate). Áp qua workflow: audit `wf_7fdc3bd5-930` + implement `wf_c5e5844e-7c1` + review `wf_d7ca1ff8-942` + double-check `wf_a0b68d2f-30e`. adap-report `docs/governance/adap-reports/2026-06-18-Governance-harness-11.md`. > **Upgrade S75 (2026-06-18 — Harness-11 engine bộ-nhớ-và-governance TỰ-BẢO-TRÌ adopt):** engine tự-DÒ toàn-diện (luôn tươi báo cờ) + AUTO chỉ semantic-null git-diff + **single-writer bar-KHÔNG-hạ (D9)** + đổi-luật owner-approve (D7). 🔑 Canonical → [`docs/governance/harness-11-engine.md`](../../docs/governance/harness-11-engine.md) (**KHÔNG copy luật ở đây — B1 dogfood**). Artifact MỚI: `scripts/governance-detectors.ps1` (C1 broken-pointer + C2/B3 staleness + C3 vocab-fork + C4 self-exclusion, NO-API DÒ+FLAG-only, **runtime-proven** bắt drift root CLAUDE.md mig53→55 + 0 self-match; số flag động → run-trace) + `scripts/memory-archive-gate.ps1` (PHẦN A hysteresis 0.85/keep-floor 5/2-strike/A7 NO-API L1-eval) + budget.json `archive_gate`. 3-tier D5(AUTO)/D6(DÒ+FLAG)/D7(owner-approve) + one-direction-lock D8 (canonical→derived) codify ở engine-doc. Cadence wired: D1 session-start §2.1.3 (chạy detector) · D2 session-end §L.b(c) (archive-gate). Áp qua workflow: audit `wf_7fdc3bd5-930` + implement `wf_c5e5844e-7c1` + review `wf_d7ca1ff8-942` + double-check `wf_a0b68d2f-30e`. adap-report `docs/governance/adap-reports/2026-06-18-Governance-harness-11.md`.
> **Upgrade S79 (2026-06-20 — User-Mark H-12/13 canonical §P + Harness-14 Eval/Budget/Outcome adopt):** áp **canonical §P đầy-đủ** (P1-P10) khi anh gõ `/user-mark-active-high` "áp đầy-đủ chính-xác nhất theo AI_INFRA". Artifact: **4 lệnh** `.claude/commands/user-mark-{active-high,active,medium,disable}.md` (DACI report-before-stamp) + ledger `.claude/governance/ACTIVE-MARKS.md` (4 cấp Active-High/Active/Medium/Disable + display-filter) + `harness-11-engine.md §E` (cơ-chế P1-P10) **+§F** (Harness-14 3-mức maturity) + `rules.md §6.6` (objective-criteria: KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi) + session-start §2.1.4 / session-end §L.b(h) mark-display. **3 mark Active-High stamped** anh-confirm S79 (`RC-pqhuy1987-20-06-2026-10-29-09/10/11`). completeness-gate H-6→H-13 ĐẠT (H-8 11/11 inherit no-`[1m]`). 4 workflow: invest `wf_82337f7f-95c` + review `wf_a7cbe93e-912` + align-re-review `wf_9d3beebb-a95` + H14-review `wf_4d4eba6f-8a0`. ⚠️ restart CLI (lệnh/session no hot-reload). adap-report 3× (`…rc-signature` + `…harness-all-update` + `2026-06-20-Governance-harness-14`).
--- ---

View File

@ -42,7 +42,7 @@ Em main PHẢI echo **TOÀN BỘ nội dung command body này** (đầy đủ Ph
**§L.a — Deterministic detect (scan action-signature, KHÔNG để AI tự-phán):** quét session theo bảng **AS-1..AS-9** trong error-ledger. Mỗi hit → 1 RCA entry blameless (5-why + fix + guard). **Bug-production = lỗi KÉP → 2 fix** (vá code **VÀ** vá guard/eval-case). List AS mở — gặp class mới thì thêm. **§L.a — Deterministic detect (scan action-signature, KHÔNG để AI tự-phán):** quét session theo bảng **AS-1..AS-9** trong error-ledger. Mỗi hit → 1 RCA entry blameless (5-why + fix + guard). **Bug-production = lỗi KÉP → 2 fix** (vá code **VÀ** vá guard/eval-case). List AS mở — gặp class mới thì thêm.
**§L.b — 7-step auto-maintain (đủ 7, KHÔNG skip — thiếu = ledger thối). (d)(f) = H2 harvest-curator · (g) = H1 tooling-auditor (2026-06-07 Harness 1):** **§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). - **(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ỡ). - **(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). - **(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).
@ -50,6 +50,7 @@ Em main PHẢI echo **TOÀN BỘ nội dung command body này** (đầy đủ Ph
- **(e) pending-request audit:** request anh CHƯA-thực-thi đã log SPECIFICS chưa (KHÔNG placeholder). - **(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) + `_ledger.md` mọi run đã CLOSE-beat (closed≠⏳). 🔴 **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. - **(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) + `_ledger.md` mọi run đã CLOSE-beat (closed≠⏳). 🔴 **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.
- **(g) 🔌 tooling-freshness CHỐT (🟫 tooling-auditor H1 — Harness 1):** spawn → chốt 4-mặt (skill·sub-role·plugin·docs) đổi gì session này + **new-alloc audit** (skill/plugin MỚI chưa phân-bổ → đề-xuất gán em main + sub phù-hợp vai) + flag doc-drift/roster-lệch/count-stale. Propose → em main APPEND/sửa doc (single-writer). 🔴 G-015: 2 monitor = propose-only, em main VERIFY trước APPEND (Bash residual → KHÔNG "read-only enforced"). - **(g) 🔌 tooling-freshness CHỐT (🟫 tooling-auditor H1 — Harness 1):** spawn → chốt 4-mặt (skill·sub-role·plugin·docs) đổi gì session này + **new-alloc audit** (skill/plugin MỚI chưa phân-bổ → đề-xuất gán em main + sub phù-hợp vai) + flag doc-drift/roster-lệch/count-stale. Propose → em main APPEND/sửa doc (single-writer). 🔴 G-015: 2 monitor = propose-only, em main VERIFY trước APPEND (Bash residual → KHÔNG "read-only enforced").
- **(h) 🔏 User-Mark CHỐT cuối phiên (H-12/13 canonical §P/P7, S79 — `harness-11-engine.md §E`):** đọc [`.claude/governance/ACTIVE-MARKS.md`](../governance/ACTIVE-MARKS.md) → (i) **hiển-thị** status-filtered (Active-High/Active hiện · Medium tóm-tắt · Disable ẩn) cho anh đọc lại (đối-xứng `session-start §2.1.4`); (ii) nếu session này có **quyết-định cấp-governance MỚI** (scope-check P6: đổi CANONICAL §-rule/authority) → chạy `/user-mark-<cấp>` DACI: adjust-gov → double-check → **report-trước-đóng-dấu 3-7 tiêu-chí khách-quan (P4)** → anh confirm → stamp `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss`; (iii) supersede/disable mark cũ (P5) → con-trỏ-xuôi + Active-High cần anh-confirm RIÊNG. 🔴 **KHÔNG tự đóng dấu / đổi cấp trước khi báo (P4/P8).** 0 quyết-định-mới → "n-a, chỉ hiển-thị".
## Phase 2 — WRITE (update MD/RAG) ## Phase 2 — WRITE (update MD/RAG)

View File

@ -87,6 +87,14 @@ Em main xác nhận **lead model resolve được** đầu session. Lead SE = **
- Chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/governance-detectors.ps1` → báo cờ: **C1** con-trỏ-gãy (gotcha#/wikilink) · **C2/B3** derived-doc stale vs `docs/STATUS.md` canonical (mig#/test#/gotcha#/table#) · **C3** vocab-fork (1-khái-niệm-nhiều-tên). NO-API, **DÒ+NÊU-CỜ-only KHÔNG tự sửa** (D6 tầng). Cờ → em-main soạn bản sửa (gated B4). - Chạy `powershell.exe -ExecutionPolicy Bypass -File scripts/governance-detectors.ps1` → báo cờ: **C1** con-trỏ-gãy (gotcha#/wikilink) · **C2/B3** derived-doc stale vs `docs/STATUS.md` canonical (mig#/test#/gotcha#/table#) · **C3** vocab-fork (1-khái-niệm-nhiều-tên). NO-API, **DÒ+NÊU-CỜ-only KHÔNG tự sửa** (D6 tầng). Cờ → em-main soạn bản sửa (gated B4).
- Nấc: detector = LƯỚI giảm-sót (khoảng-mù giữa 2 nhịp), count-token soft-net có false-pos (sev LOW khi |lệch|<10) đọc cờ bằng phán-đoán, KHÔNG auto-fix. **Light/hỏi-đáp session → có thể skip; governance/doc-heavy session → nên chạy.** - Nấc: detector = LƯỚI giảm-sót (khoảng-mù giữa 2 nhịp), count-token soft-net có false-pos (sev LOW khi |lệch|<10) đọc cờ bằng phán-đoán, KHÔNG auto-fix. **Light/hỏi-đáp session → có thể skip; governance/doc-heavy session → nên chạy.**
### 2.1.4 User-Mark display — hiển-thị sổ-cái mark ĐẦU phiên (H-12/13 canonical §P/P7, S79)
> Floor User-Mark (🔴 P7 `harness-11-engine.md §E.4`): danh-sách quyết-định-mark hiển-thị đầu + cuối mỗi phiên cho anh đọc lại. Canonical sổ-cái → [`.claude/governance/ACTIVE-MARKS.md`](../governance/ACTIVE-MARKS.md). INFORM-only.
- Đọc `.claude/governance/ACTIVE-MARKS.md` **báo status-filtered (P7):** 🔴 **Active-High** + 🟢 **Active** HIỆN (ID + what gọn) · 🟡 **Medium** tóm-tắt (1 dòng đếm) · 📦 **Disable/superseded** ẨN. Mục-đích: anh thấy lại các LỆNH governance đã (" quan-trọng").
- Mark cấp Active-High = LỆNH (P3 binding); vi-phạm `error-ledger.md §L.a` RCA (P9). KHÔNG tự đóng dấu / đổi cấp (P4/P8 chờ anh confirm).
- **Light/hỏi-đáp session thể skip; governance session nên chạy.**
### 2.2 Skill registry (6 skill) ### 2.2 Skill registry (6 skill)
- Liệt kê: `contract-workflow` · `form-engine` · `permission-matrix` · `dependency-audit-erp` · `ef-core-migration` · `iis-deploy-runbook` - Liệt kê: `contract-workflow` · `form-engine` · `permission-matrix` · `dependency-audit-erp` · `ef-core-migration` · `iis-deploy-runbook`
- Dùng skill khi task khớp (KHÔNG tự suy luận lại). Phân bổ per agent: xem README skill matrix. - Dùng skill khi task khớp (KHÔNG tự suy luận lại). Phân bổ per agent: xem README skill matrix.

View File

@ -0,0 +1,21 @@
---
description: User-Mark cấp Active-High (bắt-buộc phải làm; vi-phạm → error-ledger §L.a RCA) — DACI report-before-stamp (canonical §P/H-12). Adopt S79.
argument-hint: <quyết-định governance + §-target SE>
---
# /user-mark-active-high — neo quyết-định governance cấp CAO NHẤT
> Chữ-ký quyết-định **GOVERNANCE** cấp **Active-High** (canonical §P, cơ-chế → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md)). Cặp: `/user-mark-active` · `/user-mark-medium` · `/user-mark-disable`. Ledger = `.claude/governance/ACTIVE-MARKS.md`.
**Quyết-định anh nêu:** $ARGUMENTS
## Quy trình (§P/H-12 DACI — report-before-stamp, P4) — em-main thực-thi:
1. **Scope-check (P6):** quyết-định trên có đổi CANONICAL §-rule (rules.md / harness-11-engine / authority-routing) không? **KHÔNG** → đây là work-flow/task, **KHÔNG mark** → dừng + báo anh.
2. **Adjust-Gov (P4):** soạn thay-đổi governance tương-ứng — **em-main single-writer (engine D9)**, KHÔNG fan-out memory/governance.
3. **Double-check (P4):** quét `harness-11-engine.md §A-§E` + `error-ledger.md` Active-Guards + `ACTIVE-MARKS.md` tìm mâu-thuẫn (cross-harness contradiction · vocab-fork C3).
4. **🔴 BÁO-CÁO anh TRƯỚC khi stamp (P4):** trình brief gồm `{thay-đổi · 37 tiêu-chí KHÁCH-QUAN (điểm-đau/khối-lượng/chất-lượng — rules §6.6, KHÔNG cảm-tính/quy-mô-đội/thời-gian-tuổi) · §-target · supersedes? · mâu-thuẫn-nếu-có}`. **CHỜ anh confirm. KHÔNG stamp trước báo-cáo.**
5. **Stamp (anh confirm):** tạo `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` (timestamp lúc anh sign-off, lấy `date +'%d-%m-%Y-%H-%M-%S'`) → ghi `ACTIVE-MARKS.md` mục 🔴 Active-High + áp §-change vào canonical (rules.md/engine).
6. **Lifecycle (P5):** supersede mark cũ → `supersedes:` con-trỏ-xuôi 1-chiều + cập-nhật status mark-cũ. 🔴 supersede mark **Active-High** cũ = anh-confirm RIÊNG (KHÔNG auto-downgrade).
**Nghĩa cấp (H-13 deterministic):** Active-High = **bắt-buộc phải làm; vi-phạm → error-ledger §L.a RCA** (behavioral→MD+RCA · tool-action→`.claude/settings*.json` permission-deny, KHÔNG hook vì hook fails-open — E-006/AS-10). Binding (P3): stamp = LỆNH.

View File

@ -0,0 +1,21 @@
---
description: User-Mark cấp Active (follow + nhắc-lại xuyên-suốt) — DACI report-before-stamp (canonical §P/H-12). Adopt S79.
argument-hint: <quyết-định governance + §-target SE>
---
# /user-mark-active — neo quyết-định governance cấp Active
> Chữ-ký quyết-định **GOVERNANCE** cấp **Active** (canonical §P, cơ-chế → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md)). Cặp: `/user-mark-active-high` · `/user-mark-medium` · `/user-mark-disable`. Ledger = `.claude/governance/ACTIVE-MARKS.md`.
**Quyết-định anh nêu:** $ARGUMENTS
## Quy trình (§P/H-12 DACI — report-before-stamp, P4) — em-main thực-thi:
1. **Scope-check (P6):** có đổi CANONICAL §-rule / authority-routing không? KHÔNG → work-flow, KHÔNG mark → dừng + báo anh.
2. **Adjust-Gov (P4):** soạn thay-đổi governance — em-main single-writer (engine D9).
3. **Double-check (P4):** quét `harness-11-engine.md §A-§E` + `error-ledger.md` + `ACTIVE-MARKS.md` tìm mâu-thuẫn.
4. **🔴 BÁO-CÁO anh TRƯỚC khi stamp (P4):** brief `{thay-đổi · 37 tiêu-chí KHÁCH-QUAN (rules §6.6) · §-target · supersedes?}`. CHỜ anh confirm. KHÔNG stamp trước.
5. **Stamp (anh confirm):** `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` → ghi `ACTIVE-MARKS.md` mục 🟢 Active + áp §-change.
6. **Lifecycle (P5):** supersede mark cũ → `supersedes:` + cập-nhật status mark-cũ.
**Nghĩa cấp (H-13 deterministic):** Active = **follow + nhắc-lại xuyên-suốt** (HIỆN @session-start §2.1.4 / session-end §L.b(h)). Nhẹ hơn Active-High (KHÔNG mandate RCA-tự-động), nhưng vẫn deterministic-follow. Binding (P3): stamp = LỆNH.

View File

@ -0,0 +1,20 @@
---
description: User-Mark-Disable — tắt/thu-hồi một mark đang active (reversible; canonical §P/H-12 P5 lifecycle). Adopt S79.
argument-hint: <RC-id HOẶC mô-tả mark cần tắt>
---
# /user-mark-disable — tắt một User-Mark (reversible)
> Thu-hồi/tắt một mark đang active trong `.claude/governance/ACTIVE-MARKS.md` (canonical §P/H-12 P5). **Reversible** (KHÔNG xóa audit-trail — chuyển status, giữ lịch-sử). Cơ-chế → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md). Cặp: `/user-mark-active-high` · `/user-mark-active` · `/user-mark-medium`.
**Mark cần tắt:** $ARGUMENTS
## Quy trình (§P/H-12 P5 lifecycle) — em-main thực-thi:
1. **Locate:** tìm mark trong `ACTIVE-MARKS.md` khớp `$ARGUMENTS` (RC-id hoặc mô-tả). KHÔNG khớp / mơ-hồ → hỏi anh rõ mark nào.
2. **🔴 BÁO-CÁO anh TRƯỚC khi tắt:** trình `{mark · cấp hiện-tại · §-target · lý-do tắt · hệ-quả nếu §-rule đang dựa vào nó}`. CHỜ anh confirm.
- 🔴 Nếu mark là **Active-High** → BẮT BUỘC anh-confirm RIÊNG (cấp cao nhất, KHÔNG auto-disable — P5).
3. **Disable (anh confirm):** chuyển mark → mục 📦 SUPERSEDED/DISABLED (status `Disable`, giữ RC-id + nội-dung). Nếu mark đã codify §-rule → cân-nhắc revert/giữ §-rule (báo anh tách-bạch "tắt-mark ≠ revert-rule").
4. **Reversible:** mark Disable có thể re-stamp lại sau (re-activate) — giữ nguyên audit-trail con-trỏ.
**Nguyên-tắc (P5):** KHÔNG freeze-immutable — anh được đổi-ý/tắt qua re-stamp; git-history = audit-trail thật. Disable ≠ xóa (giữ để debate/trace sau).

View File

@ -0,0 +1,21 @@
---
description: User-Mark cấp Medium (neo quyết-định chưa-rõ; follow nhưng skippable) — DACI report-before-stamp (canonical §P/H-12). Adopt S79.
argument-hint: <quyết-định governance chưa-chốt-hẳn + §-target SE>
---
# /user-mark-medium — neo quyết-định governance cấp Medium (chưa-rõ)
> Chữ-ký quyết-định **GOVERNANCE** cấp **Medium** (canonical §P) — dùng khi anh muốn NEO MỐC một hướng chưa-chốt-hẳn (follow nhưng skippable). Cơ-chế → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md). Cặp: `/user-mark-active-high` · `/user-mark-active` · `/user-mark-disable`. Ledger = `.claude/governance/ACTIVE-MARKS.md`.
**Quyết-định anh nêu:** $ARGUMENTS
## Quy trình (§P/H-12 DACI — report-before-stamp, P4) — em-main thực-thi:
1. **Scope-check (P6):** có đổi CANONICAL §-rule / authority-routing không? KHÔNG → work-flow, KHÔNG mark → dừng + báo anh.
2. **Adjust-Gov (P4):** soạn thay-đổi (nếu có) HOẶC chỉ neo-mốc-không-codify (Medium thường chưa-đổi-rule cứng) — em-main single-writer (engine D9).
3. **Double-check (P4):** quét `harness-11-engine.md §A-§E` + `error-ledger.md` + `ACTIVE-MARKS.md` tìm mâu-thuẫn.
4. **🔴 BÁO-CÁO anh TRƯỚC khi stamp (P4):** brief `{hướng-neo · 37 tiêu-chí KHÁCH-QUAN (rules §6.6) · §-target nếu có · cái-gì-chưa-rõ}`. CHỜ anh confirm. KHÔNG stamp trước.
5. **Stamp (anh confirm):** `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` → ghi `ACTIVE-MARKS.md` mục 🟡 Medium + ghi rõ "chưa-rõ phần X".
6. **Lifecycle (P5):** khi anh chốt-rõ → re-stamp lên Active/Active-High (con-trỏ-xuôi `supersedes:`).
**Nghĩa cấp (H-13 deterministic):** Medium = **neo quyết-định chưa-rõ; follow nhưng SKIPPABLE** (tóm-tắt @session display). KHÔNG mandate. Binding (P3): stamp = đã-neo (chưa phải lệnh-cứng như Active-High).

View File

@ -0,0 +1,26 @@
# ACTIVE-MARKS — User-Mark ledger (Harness-12/13 · canonical §P) — SOLUTION_ERP
> **Chữ-ký quyết-định cấp GOVERNANCE** (rule/policy/architecture/harness — KHÔNG work-flow/task). Single-writer em-main (B3 VERIFY→APPEND). Cơ-chế đầy-đủ (§P P1-P10) → [`docs/governance/harness-11-engine.md §E`](../../docs/governance/harness-11-engine.md). Lệnh: `/user-mark-active-high` · `/user-mark-active` · `/user-mark-medium` · `/user-mark-disable`.
> 🔴 **SHOW @/session-start (§2.1.4) + @/session-end (§L.b(h))** status-filtered: 🔴 Active-High + 🟢 Active **HIỆN rõ** · 🟡 Medium **tóm-tắt** · 📦 Disable/superseded **ẨN** — anh đọc-lại 1 lần/đầu+cuối session ("vì quan-trọng").
> **Binding (P3):** có stamp = **LỆNH** · không stamp = đang **BÀN**. **No-retrofit:** từ 2026-06-20 forward (KHÔNG truy-ngược quyết-định pre-S79).
> **Adopt S79 (2026-06-20)** — AI_INFRA broadcast User-Mark H-12/13 (`2026-06-19-Governance-harness-all-update` + `…rc-signature`) + canonical §P, áp `/user-mark-active-high` (anh-confirm). adap-report → `adap-reports/2026-06-19-Governance-harness-all-update.md`.
## Schema (1 mark)
`{ id: RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss · cấp · §-target SE (≙ AI_INFRA) · what · objective-criteria(37, rules §6.6) · supersedes? · status }`
## 🔴 ACTIVE-HIGH (bắt-buộc phải làm; vi-phạm → error-ledger §L.a RCA — HIỆN @session)
| ID (RC-signature) | §-target SE (≙ AI_INFRA) | What | objective-criteria (pain · volume · quality) | supersedes | Status |
|---|---|---|---|---|---|
| `RC-pqhuy1987-20-06-2026-10-29-09` | `rules.md §6.6` + `engine §E.4` (≙ §F4.2) | Quyết-định kiến-trúc/chức-năng = tiêu-chí KHÁCH-QUAN (điểm-đau · khối-lượng · chất-lượng) **KHÔNG quy-mô-đội**; "overkill/quá-mức-solo-dev/cảm-tính" = **BÁC**; thẩm-quyền cần-vs-thừa = AI_INFRA cross-project; AI = neo lý-tính | **pain:** lập-luận "quá mức solo-dev" đã khiến 1 dự-án từ-chối chức-năng chống-lách-engine (sự-cố thật) — SE = solo-dev, đúng đối-tượng · **volume:** 6 dự-án federated + SE 11-agent cần neo nhất-quán · **quality:** quyết-định-cảm-tính trôi chất-lượng âm-thầm; neo-lý-tính giữ rigor | null | 🔖 **Active-High** (anh-confirm S79 · P4 DACI report-before-stamp) |
| `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) |
## 🟢 ACTIVE (follow + nhắc-lại xuyên-suốt — HIỆN @session)
_(trống)_
## 🟡 MEDIUM (neo chưa-rõ; follow nhưng skippable — tóm-tắt @session)
_(trống)_
## 📦 SUPERSEDED / DISABLED (ẨN khỏi session display — giữ audit-trail, KHÔNG xóa)
_(trống)_

View File

@ -15,6 +15,8 @@
| 2026-06-09 | 2026-06-09-namgroup-to-se-ui-design-conventions | namgroup → se | processed | namgroup | 0140b81fb8a6 | ✓ | | 2026-06-09 | 2026-06-09-namgroup-to-se-ui-design-conventions | namgroup → se | processed | namgroup | 0140b81fb8a6 | ✓ |
| 2026-06-11 | 2026-06-11-ai_infra-to-se-ui-ux-design-guide | ai_infra → se | processed | ai_infra | d353ee460dba | ✓ | | 2026-06-11 | 2026-06-11-ai_infra-to-se-ui-ux-design-guide | ai_infra → se | processed | ai_infra | d353ee460dba | ✓ |
| 2026-06-18 | 2026-06-18-ai_infra-to-se-harness-11-available | ai_infra → se | processed | ai_infra | b2a2fc1cf399 | ✓ | | 2026-06-18 | 2026-06-18-ai_infra-to-se-harness-11-available | ai_infra → se | processed | ai_infra | b2a2fc1cf399 | ✓ |
| 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 | ✓ |
## 📤 OUTBOUND (gửi — qua `/send-email <to>`) ## 📤 OUTBOUND (gửi — qua `/send-email <to>`)
| sent (ISO) | id | from → to | folder | sha256(12) | | sent (ISO) | id | from → to | folder | sha256(12) |
@ -29,3 +31,4 @@
| 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-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 | 5f511fe5c0f2 |
| 2026-06-18 | 2026-06-18-se-to-ai_infra-harness-11-adopt-report | se → ai_infra | outbox/ai_infra | 2316773229f2 | | 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 |

View File

@ -0,0 +1,27 @@
---
id: 2026-06-19-ai_infra-to-se-harness-all-notify
from: ai_infra
to: se
category: Governance
type: notify
date: 2026-06-19
content_sha256: 50ec0b9251575b1841a86948241a1541c7b60eca0c1091bb6b4a5d37168e54d8
nac: sent
---
# [AI_INFRA → đội nhận] Thông-báo: broadcast Harness-all-update + checklist đã sẵn-sàng
Kính gửi đội nhận,
AI_INFRA vừa công-bố một broadcast hợp-nhất trong kênh chung (thư-mục `outbox/all`): **Harness-all-update**. Bản này làm hai việc. Một, công-bố một harness MỚI — **User-Mark (H-12/13)**: cách neo và cưỡng-chế quyết-định cấp governance bằng chữ-ký kèm thời-điểm ký-duyệt, bốn cấp hành-vi xác-định, quy-trình báo-cáo trước khi đóng dấu, và nguyên-tắc quyết-định theo tiêu-chí khách-quan (điểm-đau, khối-lượng, chất-lượng) thay vì cảm-tính. Hai, hợp-nhất toàn-bộ chuỗi Harness từ H-6 đến H-13 thành một kiến-trúc mạch-lạc.
Đi kèm là một **checklist tự-verify** phủ cả tám harness, đặc-biệt nhấn hai harness trước-đây chưa từng có checklist riêng là H-7 (chất-lượng viết hướng-ngoại) và H-8 (toàn-đội ăn model cao-nhất) — trong đó H-8 dễ bị bỏ sót nhất.
Đề-nghị bạn pull và áp qua kênh adap của mình, theo đúng quy-trình hai-workflow (làm → rà-soát tách-biệt → báo-cáo chuẩn). Hai tệp trong kênh chung:
- `2026-06-19-Governance-harness-all-update.md` (bản công-bố nền)
- `2026-06-19-Governance-checklist-harness-all.md` (checklist đi-kèm)
Đây là thông-báo nhẹ trỏ tới hai broadcast đã qua cổng review; chi-tiết nằm trong hai tệp trên.
Trân-trọng,
AI_INFRA

View File

@ -0,0 +1,28 @@
---
id: 2026-06-20-ai_infra-to-se-harness-14-adopt-notify
from: ai_infra
to: se
category: Governance
type: coord
date: 2026-06-20
content_sha256: 37ae1b19595a6c4541a08f6f2c1d361b79d4eb3e03a0e7bf57de815eea28c381
nac: sent
---
# Thông-báo: Harness-14 chuyển sang ÁP-DỤNG (adopt)
Chào nhóm,
Harness-14 (cơ-chế Eval / Budget / Outcome theo hướng "khối-lượng × chất-lượng") nay đã **xây-dựng xong** và chuyển từ trạng-thái kế-hoạch sang **áp-dụng**. Bản broadcast adopt đầy-đủ cùng checklist tự-rà-soát đã được công-bố ở kênh chung (`outbox/all/`):
- `2026-06-20-Governance-harness-14-adopt.md` — bản adopt (giải-thích Harness-14 + trạng-thái độ-chín ba mức trung-thực + quy-tắc bắt-buộc + phương-pháp tùy-chỉnh).
- `2026-06-20-Governance-checklist-harness-14.md` — checklist tự-rà-soát đúng-nấc.
**Phần BẮT BUỘC (🔴):** một quy-tắc governance mở-rộng — **thời-gian / tuổi-dự-án / suy-giảm-theo-độ-cũ (recency-decay) KHÔNG phải là căn-cứ hợp-lệ** để quyết-định hoặc cắt-giảm một chức-năng (sai cùng họ với "quy-mô-đội"). Căn-cứ hợp-lệ chỉ gồm ba trục khách-quan: điểm-đau + khối-lượng + chất-lượng. Quy-tắc cũ về quy-mô-đội vẫn giữ nguyên — đây là phần bổ-sung.
Nhóm vui lòng **pull bản adopt qua quy-trình áp-dụng (`/adap-apply`)** và thực-hiện **theo quy-trình hai-bước (xây-dựng + rà-soát)**, sau đó **tự ký-duyệt** quy-tắc trong hệ governance của nhóm. Phần phương-pháp (eval-precision · định-cỡ budget · outcome) là tùy-chỉnh — hiểu nguyên-lý, áp tinh-thần, hình-thức tùy nhóm.
Lưu-ý trung-thực: hiện chỉ phần eval-precision dùng được ngay; phần định-cỡ budget theo hit-rate và phần tương-quan outcome mới có công-cụ đo, **chưa đủ dữ-liệu để ra số** (cần tích-lũy nhiều tuần). Đừng trình các phần đó như đã hoàn-tất.
Trân-trọng,
Bên phát (hạ-tầng AI dùng chung).

View File

@ -0,0 +1,51 @@
---
id: 2026-06-20-se-to-ai_infra-harness-12-13-14-adopt-report
from: se
to: ai_infra
category: Governance
type: adopt-report
date: 2026-06-20
content_sha256: 7b8615b3291ea72fbc52b2f86d920709362d1954cdcab9e9acf8bb719fc938b2
nac: sent
---
# [SOLUTION_ERP → AI_INFRA] Báo cáo áp dụng: User-Mark (H-12/13) + Harness-14 + chữ-ký RC
Kính gửi AI_INFRA,
SOLUTION_ERP (self = `se`) đã hoàn tất việc áp dụng ba broadcast governance mới trong phiên S79 (2026-06-20), theo đúng quy trình hai-workflow (thực thi + rà soát tách biệt) mà Harness-9 yêu cầu. Anh chủ dự án đã trực tiếp gõ lệnh `/user-mark-active-high` và chỉ thị "áp dụng đầy đủ và chính xác nhất theo hướng dẫn AI_INFRA"; vì vậy chúng tôi đã kéo nguyên bản canonical (`.claude/commands/user-mark-*.md` + `ACTIVE-MARKS.md` + `CANONICAL-RULES.md §P`) để áp đúng spec thật, thay cho bản phỏng theo ban đầu.
## Ba broadcast đã áp dụng
1. **`2026-06-19-Governance-architecture-decision-rationality-rc-signature`** — codify nguyên tắc quyết định bằng tiêu chí khách quan (điểm-đau + khối-lượng + chất-lượng, không quy-mô-đội) vào `rules.md §6.6`, cùng định dạng chữ ký `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss`.
2. **`2026-06-19-Governance-harness-all-update`** (User-Mark H-12/13) — áp đầy đủ §P (P1-P10) vào `harness-11-engine.md §E`, lập ledger `.claude/governance/ACTIVE-MARKS.md`, cài bốn lệnh `/user-mark-*`, và nối hiển thị mark vào đầu + cuối phiên. Đồng thời chạy completeness-gate H-6→H-13: **đạt**, cả tám harness sạch (H-8 soi kỹ: 11/11 sub `model: inherit`, không hề có hậu tố `[1m]` trong frontmatter).
3. **`2026-06-20-Governance-harness-14`** (Eval / Budget / Outcome) — codify quy tắc time/age = proxy sai vào `rules.md §6.6` + mark Active-High, và ghi `harness-11-engine.md §F` với trạng thái độ chín ba mức trung thực.
Bản plan-announce `2026-06-19-…harness-all-update-v-2-0` chúng tôi ghi nhận là n-a (visibility-only, đã được bản adopt thay thế).
## Bằng chứng (run-id)
- INVESTIGATE `wf_82337f7f-95c` (bản đồ governance + completeness-gate H-6→H-13 đạt + audit budget).
- REVIEW Step-1 `wf_a7cbe93e-912` (floor 10/10 MET).
- RE-REVIEW sau canonical-align `wf_9d3beebb-a95` (§P P1-P10 fidelity PASS 10/10 + drift PASS).
- REVIEW Step-2 `wf_4d4eba6f-8a0` (§F floor 6/6 MET + maturity HONEST + SE-state ACCURATE).
## Ba mark Active-High đã đóng dấu (anh xác nhận S79, report-before-stamp)
`RC-pqhuy1987-20-06-2026-10-29-09` (objective-criteria) · `…-10-29-10` (User-Mark codify) · `…-10-29-11` (time/age extension). Cả ba neo theo nội dung của ba mark Active-High bên AI_INFRA, nhưng dùng dấu thời gian riêng của SOLUTION_ERP đúng nguyên tắc P1 forward-only (mỗi dự án ký tại thời điểm sign-off của mình, không mượn dấu bên phát).
## Trạng thái trung thực
- §E User-Mark phần lớn là **convention** (report-before-stamp, cưỡng chế hành vi, neo lý tính); chỉ phần hiển thị phiên và chặn tool ở permission-config là mechanized. Bốn lệnh và phần nối phiên ở mức **executed-file, verified-pending-restart** (file lệnh không nạp nóng giữa phiên — danh sách skill đã hot-register tên lệnh, nhưng cần khởi động lại CLI để chạy đầy đủ).
- Harness-14: chỉ eval-precision ở Mức 1 dùng được ngay (nhưng đang là thủ công hằng tuần, chưa thành CI); budget-theo-hit-rate và tương quan outcome ở Mức 2 (có công cụ đo nhưng chưa đủ dữ liệu — không trình như đã xong); trần nhiễu ngữ cảnh ở Mức 3 tạm gác.
## Phát hiện riêng (đề xuất ngược)
1. **Broadcast cô đọng so với canonical là spec thật.** Broadcast User-Mark mô tả bốn cấp theo chức năng, không đặt tên; spec dùng được nằm ở lệnh `/user-mark-*` + `ACTIVE-MARKS.md` + §P. Sister nào adopt chỉ từ broadcast sẽ ra hình thức khác (chính SOLUTION_ERP bản đầu đặt tên MUST/TRACK/ANCHOR/OFF rồi phải align lại). Đề xuất broadcast User-Mark trỏ thẳng tới command-files và §P để các dự án thống nhất tên cấp ngay từ đầu — vốn chính là giá trị nhất quán xuyên dự án mà nguyên tắc tiêu chí khách quan đề cao.
2. **SOLUTION_ERP đã tuân 2/3 cơ chế Harness-14 trước khi adopt** (budget không có núm giảm theo tuổi + phát hiện trôi neo đường-nền-cuộn), nhờ Harness-9 seed-by-measure và Harness-11 canonical-anchor đã ép đúng hướng. Nói cách khác, H-9 và H-11 là tiền đề cấu trúc của H-14; dự án nào đã chắc hai harness đó thì phần budget của H-14 gần như có sẵn.
3. **report-before-stamp (P4) là tập con của owner-approve sẵn có ở SOLUTION_ERP** (D7 trong engine). Chúng tôi map P4 thành phần vận hành hóa D7, không tạo luồng song song, nhờ vậy tránh được vocab-fork mà chính bộ dò C3 của SOLUTION_ERP sẽ gắn cờ.
Không có thay đổi mã sản phẩm; trạng thái thật giữ nguyên (Mig 57 · 88 bảng · 354 test · 71 gotcha · bundle `CsJetgZH`/`BVS0ApIm`).
Trân trọng,
SOLUTION_ERP (se)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,45 @@
# S79 (2026-06-20) — adopt User-Mark (H-12/13) canonical §P + Harness-14 (Eval/Budget/Outcome) + chữ-ký RC
**Anh:** `/session-start``/check-email AI_INFRA và /adap-apply step by step làm cẩn thận, sau mỗi step đều phải chạy workflow double check, đáp ứng chính xác nhất theo hướng dẫn` → giữa-chừng gõ **`user-mark-active-high`** → "Áp dụng đầy đủ và chính xác nhất, step by step theo hướng dẫn của AI_INFRA, chi tiết có trong hướng dẫn, ko hỏi thêm".
**Done (0 production code · governance/memory only):**
### check-email STAGE 1+2
- 2 directed email mới (`2026-06-19-harness-all-notify` + `2026-06-20-harness-14-adopt-notify`) copy + verify whole-file + body-hash PASS (`50ec0b92` / `37ae1b19`) → processed `inbox/ai_infra/` + `_index` 2 INBOUND.
### 4 Workflow (run-id = bằng chứng Harness-9 mandate)
- INVESTIGATE `wf_82337f7f-95c` (3× investigator-codebase): governance-landing map + **completeness-gate H-6→H-13 = ĐẠT** (H-8 11/11 inherit no-`[1m]`; H-7 Cat-6 real) + budget-audit (ALIGNED no-decay + eval/ GENUINE).
- REVIEW Step-1 `wf_a7cbe93e-912` (3× reviewer): floor **10/10 MET** + 1 Minor B1.
- **align-RE-REVIEW** `wf_9d3beebb-a95` (2× reviewer): §P P1-P10 **PASS 10/10** + drift **PASS** (M-1 resolved).
- REVIEW Step-2 `wf_4d4eba6f-8a0` (2× reviewer): §F floor **6/6 MET** + maturity **HONEST** + SE-state **ACCURATE**.
### Canonical-align pivot (then-chốt)
- Bản đầu em adopt-từ-broadcast → tự đặt 4 cấp **MUST/TRACK/ANCHOR/OFF** + ledger `decision-marks.md`. Anh gõ `/user-mark-active-high` → em grep ra **4 lệnh canonical** (`AI_INFRA/.claude/commands/user-mark-*.md`) + **§P P1-P10** (`CANONICAL-RULES.md`) + ledger `ACTIVE-MARKS.md`**GỠ bản phỏng-theo + align FULL canonical:**
- 4 cấp = **Active-High 🔴 / Active 🟢 / Medium 🟡 / Disable 📦**.
- Ledger → `.claude/governance/ACTIVE-MARKS.md` (schema + display-filter AH/Active hiện · Medium tóm-tắt · Disable ẩn).
- Cài **4 lệnh** `/user-mark-{active-high,active,medium,disable}` tailor §-target SE.
- `harness-11-engine.md §E` rewrite map P1-P10 + **§F** (Harness-14 3-mức maturity) + intro consolidate H-11/§E/§F + extend D7 (report-before-stamp = vận-hành-hoá D7, không flow song-song → tránh C3).
- `rules.md §6.6` objective-criteria (KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi) + Goodhart.
### 3 mark Active-High stamped (report-before-stamp, anh-confirm)
- `RC-pqhuy1987-20-06-2026-10-29-09` (objective-criteria) · `…-10-29-10` (User-Mark codify) · `…-10-29-11` (time/age extension). Mirror nội-dung AI_INFRA 3 mark, SE timestamp riêng (P1 forward-only, không mượn dấu).
- Trình 3-7 tiêu-chí khách-quan (pain/volume/quality) mỗi mark → anh confirm "đầy-đủ chính-xác nhất, không hỏi thêm" → stamp `date`-real `10-29-09/10/11`.
### Finalize
- **3 adap-report** (`…rc-signature` + `…harness-all-update` + `2026-06-20-Governance-harness-14`) + email ai_infra (`2026-06-20-se-to-ai_infra-harness-12-13-14-adopt-report`, body-hash `7b8615b3`) + `_index` OUTBOUND.
- agents/README Upgrade S79 + STATUS/HANDOFF + user-memory `feedback_canonical_spec_over_broadcast` (count 29→30).
**Nấc trung-thực:** §E phần-lớn convention; 4 lệnh + session-wiring = **verified-pending-restart** (no hot-reload, skill-list đã hot-register tên). H-14: eval-precision Mức-1 (manual-weekly chưa-CI) · budget ALIGNED mechanized · hit-rate+outcome-correlation Mức-2 tool-pending-data (KHÔNG bịa số) · trần-nhiễu Mức-3 gác. 3 mark owner-confirmed-trong-session.
**Bài học (`feedback_canonical_spec_over_broadcast`):**
1. **Broadcast cô-đọng ≠ spec thật** — anh trỏ LỆNH canonical → pull command-files + §P, đừng phỏng-theo (tốn 1 vòng rework align).
2. **report-before-stamp dogfood** — lệnh `/user-mark-active-high` bước-4 tự BẮT báo-cáo-trước-stamp; em hỏi anh = đúng lệnh, không chần-chừ.
3. **residual own-diary OK** — investigator-codebase tự-append diary qua raw-Workflow (no writeGuard) = valid base memory-discipline; D9 single-writer áp canonical/luật, không cấm sub ghi diary riêng. Nhưng đẩy L1 over-cap → curate.
4. detector clean sau align (0 C1/C3 mới); tier cũ gỡ sạch.
**State THẬT GIỮ NGUYÊN:** Mig 57 · 88 bảng · 354 test · gotcha 71 · menu 54 · bundle `CsJetgZH`/`BVS0ApIm`.
**🔴 NEXT SESSION:**
- **Anh:** ⚠️ **restart CLI** (đầu việc) — activate 4 lệnh `/user-mark-*` + session-start §2.1.4 / session-end §L.b(h) mark-display + engine §E/§F runtime. Sau restart, session-start tự hiển-thị 3 mark Active-High.
- **Em (carry GẤP 7-session + S79 spawn):** curate L1 over-cap reviewer (~45KB+, +review-spawn S79) + cicd + investigator-codebase (39.8KB, +diary S79) — manual SPLIT/condense, archive-gate A7 GATE. + §7-header `rules.md` "77 test" stale → C2/monthly-audit flush.
- **Pending product (carry):** "Ngưỡng giá CEO" Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. **Ops S58/S59:** tzutil VPS · anh Chương email typo · 5 real-staff pw · gán CNTT. **Monthly audit 2026-07-01.**

View File

@ -0,0 +1,38 @@
# adap-report — Architecture-decision rationality + RC-signature (tiêu-chí khách-quan + chữ-ký niêm)
- **id:** 2026-06-19-Governance-architecture-decision-rationality-rc-signature
- **source broadcast:** `ai_infra/broadcasts/outbox/all/2026-06-19-Governance-architecture-decision-rationality-rc-signature.md` (`reviewer_gate: PASS` · `content_sha256: 4deb7876514686155c389cc8b9cf636855aae4fb0e75369de9b9947a83f32cd5`)
- **adopted by:** se (SOLUTION_ERP) · **session:** S79 · **date:** 2026-06-20
- **protocol:** Harness-9 PART-2 mandate = workflow IMPLEMENT + REVIEW tách biệt + report-with-run-id
- INVESTIGATE `wf_82337f7f-95c` (3× investigator-codebase — governance-landing map + completeness-gate H-6→H-13 + budget audit) → IMPLEMENT em-main single-writer (governance D9) → REVIEW `wf_a7cbe93e-912` (3× reviewer, floor 10/10) → **canonical-align re-REVIEW `wf_9d3beebb-a95`** (2× reviewer — §P P1-P10 fidelity PASS + drift PASS)
- **project-fit:** ✅ FIT — SE = solo-dev (chính đối-tượng dễ mắc lỗi "quá mức solo-dev") + có governance engine 11-agent cần kỷ-luật quyết-định.
## VERDICT: ✅ ADOPTED — 2 nguyên-tắc codify, mark Active-High stamped (anh-confirm S79)
Broadcast có 2 nguyên-tắc: (1) quyết-định kiến-trúc = tiêu-chí khách-quan (điểm-đau + khối-lượng + chất-lượng) KHÔNG quy-mô-đội; (2) chữ-ký niêm `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` cho mỗi rule-change. Cả 2 codify vào canonical SE + neo bằng User-Mark.
## Nấc (executed-file vs runtime · mechanized vs convention)
| Phần | Trạng-thái | Nấc |
|---|---|---|
| **Nguyên-tắc 1 — objective-criteria** | `rules.md §6.6` (bảng "Căn-cứ SAI" quy-mô-đội + AI=neo-lý-tính + thẩm-quyền cross-project) + `engine §E.5/P10` | executed-file · **convention** (kỷ-luật quyết-định) |
| **Nguyên-tắc 2 — RC-signature** | format `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` REUSE (KHÔNG redefine) ở `ACTIVE-MARKS.md` + `engine §E.1/P1` + `rules §6.6`; forward-only no-retrofit | executed-file · convention |
| **Mark Active-High** | `RC-pqhuy1987-20-06-2026-10-29-09` (objective-criteria) stamped, anh-confirm S79 via report-before-stamp | executed-file (owner-confirmed) |
## Tailoring (SE-specific)
- §-anchor SE = `rules.md §6.6` + `engine §E` (≙ AI_INFRA `§F4.2`) — notation `(≙ AI_INFRA)` giữ traceability cross-project, KHÔNG mượn §-number bên phát.
- Chữ-ký RC + objective-criteria neo qua **User-Mark canonical §P** (xem report `2026-06-19-Governance-harness-all-update`) — cùng cụm cơ-chế.
- SE stamp timestamp RIÊNG `20-06-2026-10-29-09` (P1 forward-only: mỗi dự-án ký lúc sign-off của mình), KHÔNG copy timestamp AI_INFRA.
## Honest caveats (KHÔNG nói quá)
- objective-criteria = **convention** (kỷ-luật người+AI), KHÔNG mechanized — đừng nhận "công-cụ-ép".
- RC-signature stamp = executed-file owner-confirmed (anh xác-nhận trong session qua "áp dụng đầy đủ chính xác nhất, không hỏi thêm"); chưa runtime-tested qua nhiều session.
## Reverse-findings (đề-xuất ngược AI_INFRA)
1. **2-channel enforcement ⊂ cái SE đã chứng-minh empirically** — broadcast trình "tool-action → permission-config NOT hook" như nguyên-tắc; SE đã có bằng-chứng SỐNG **E-006/AS-10** (`error-ledger.md`): hook fails-open → `store_memory` allowlist-strip = gate THẬT. Xác-nhận nguyên-tắc đúng + đã được thực-chứng ở sister.
2. **objective-criteria rule ⊃ rule team-size cũ** — SE map "time/age" (H-14) + "team-size" vào CÙNG bảng "Căn-cứ SAI" (`rules §6.6`) = trình-bày 1-họ-lỗi gọn hơn 2 rule rời. Đề-xuất AI_INFRA cân-nhắc gom trình-bày tương-tự.
## Evidence
- run-id: `wf_82337f7f-95c` (investigate) · `wf_a7cbe93e-912` (review) · `wf_9d3beebb-a95` (canonical-align re-review, §P 10/10 + drift PASS).
- Mark stamped: `ACTIVE-MARKS.md` 🔴 ACTIVE-HIGH `RC-pqhuy1987-20-06-2026-10-29-09`.
- 0 production code — governance-only. State THẬT GIỮ NGUYÊN: Mig 57 · 88 bảng · 354 test · gotcha 71 · bundle `CsJetgZH`/`BVS0ApIm`.

View File

@ -0,0 +1,47 @@
# adap-report — Harness-all-update: User-Mark (H-12/13) + hợp-nhất chuỗi H-6→H-13
- **id:** 2026-06-19-Governance-harness-all-update
- **source broadcast:** `ai_infra/broadcasts/outbox/all/2026-06-19-Governance-harness-all-update.md` (`reviewer_gate: PASS` · `content_sha256: 8c5377742b45b8447952f37a537052a0d99e63bfa581d430ada924d8c76af556`) + checklist `2026-06-19-Governance-checklist-harness-all.md` (`7e6e0555…`)
- directed heads-up `outbox/se/2026-06-19-ai_infra-to-se-harness-all-notify.md` (inbox verify ✓ whole-file `a52b8d03` + body `50ec0b92`)
- **canonical spec đầy-đủ:** `ai_infra/.claude/commands/user-mark-{active-high,active,medium,disable}.md` + `.claude/governance/ACTIVE-MARKS.md` + `CANONICAL-RULES.md §P` (P1-P10) — anh trỏ qua lệnh `/user-mark-active-high`, em pull canonical áp ĐẦY-ĐỦ (KHÔNG dùng bản phỏng-theo).
- **adopted by:** se (SOLUTION_ERP) · **session:** S79 · **date:** 2026-06-20
- **protocol:** Harness-9 PART-2 = workflow IMPLEMENT + REVIEW tách biệt + report-with-run-id
- INVESTIGATE `wf_82337f7f-95c` (3× investigator-codebase) → IMPLEMENT em-main single-writer (D9) → REVIEW `wf_a7cbe93e-912` (3× reviewer, floor 10/10) → **canonical-align + re-REVIEW `wf_9d3beebb-a95`** (2× reviewer — §P P1-P10 fidelity **PASS 10/10** + drift **PASS**, M-1 resolved)
- **project-fit:** ✅ FIT.
## VERDICT: ✅ ADOPTED — User-Mark canonical §P FULL (P1-P10) + completeness-gate H-6→H-13 ĐẠT
Bản làm 2 việc: ① công-bố User-Mark (H-12/13) · ② hợp-nhất H-6→H-13 + checklist tự-verify. SE adopt User-Mark **canonical §P đầy-đủ** (anh chốt "áp đầy-đủ chính-xác nhất theo AI_INFRA, không hỏi thêm") + chạy completeness-gate.
### ① User-Mark (H-12/13) — §P P1-P10 (re-review `wf_9d3beebb-a95` PASS 10/10)
| Cấu-phần | SE artifact | Nấc |
|---|---|---|
| Cơ-chế P1-P10 | `harness-11-engine.md §E` (E.1→P1·P2·P3·P8 · E.2→P4·P6 · E.3→P9 · E.4→P5·P7 · E.5→P10) | executed-file · phần-lớn **convention** (report-trước-đóng-dấu + behavioral-enforce + neo-lý-tính), mechanized chỉ session-display + tool-deny-config |
| Ledger | `.claude/governance/ACTIVE-MARKS.md` (canonical path + schema + 4-tier section + display-filter) | executed-file |
| Interface | 4 lệnh `/user-mark-{active-high,active,medium,disable}` (tailor §-target SE) | command `.md` **verified-pending-restart** (no hot-reload — đã thấy hot-register skill-list) |
| Display | `session-start §2.1.4` + `session-end §L.b(h)` status-filtered | executed-file, pending-restart |
| 3 mark Active-High stamped | objective-criteria `RC-…10-29-09` · User-Mark `…10-29-10` · time/age `…10-29-11` — anh-confirm S79, mirror AI_INFRA 3 mark by-content, SE timestamp riêng (P1 forward-only) | executed-file (owner-confirmed) |
### ② Completeness-gate H-6→H-13 — VERDICT ĐẠT (investigate `wf_82337f7f-95c`)
Cả 8 harness ADOPTED sạch. Soi kỹ 2 cái hay-sót: **H-8 all-inherit = 11/11 sub `model: inherit`, ZERO `[1m]` trong frontmatter** (3 hit `[1m]` đều prose/comment, không phải frontmatter); **H-7 Category 6** reviewer.md real on-disk (không pending). H-9/10/11 evidence đủ.
## Tailoring (SE-specific — form-autonomy P7 location-agnostic)
- Ledger ở `.claude/governance/ACTIVE-MARKS.md` (match canonical path cho command-consistency) — interim `docs/governance/decision-marks.md` (form em tự-nghĩ ban đầu) đã GỠ khi anh trỏ canonical.
- 4 lệnh tailor §-target = `rules.md §6.6` / `engine §E` / `error-ledger.md §L.a` / SE session-phase (≙ AI_INFRA `§F4.2`/`§P`/`§J9`/`§L1`).
- §E gom vào `harness-11-engine.md` (1 engine governance hợp-nhất H-11 + §E + §F) thay doc rời — B1 một-canonical-place.
- 2-channel enforce (P9) = XÁC-NHẬN bằng-chứng SE sẵn-có (E-006/AS-10 hook-fails-open), KHÔNG novelty.
## Honest caveats (KHÔNG nói quá)
- §E phần-lớn **convention** (report-trước-đóng-dấu + behavioral-enforce + neo-lý-tính = kỷ-luật, KHÔNG công-cụ-ép). CAVEAT engine ghi rõ.
- 4 lệnh + session-wiring = **verified-pending-restart** (command/agent `.md` no hot-reload giữa phiên — anh restart CLI để runtime đầy-đủ; skill-list ĐÃ hot-register tên lệnh).
- 3 mark = owner-confirmed trong session (anh "áp dụng đầy đủ … không hỏi thêm" = confirm report-before-stamp); chưa runtime-tested qua nhiều phiên session-display.
- B1 cross-pointer label M-1 (review #1 nêu) đã RESOLVED khi gỡ decision-marks.md + align canonical.
## Reverse-findings (đề-xuất ngược AI_INFRA)
1. **Broadcast cô-đọng → canonical là spec THẬT:** broadcast mô-tả 4 cấp theo CHỨC-NĂNG (không tên); spec dùng-được = lệnh `/user-mark-*` + `ACTIVE-MARKS.md` + §P P1-P10. Sister adopt từ broadcast-mình sẽ ra FORM khác (như SE bản đầu MUST/TRACK) → đề-xuất broadcast User-Mark TRỎ thẳng canonical command-files/§P để sister align đúng tên cấp ngay (cross-project consistency = chính giá-trị objective-criteria coi trọng).
2. **report-before-stamp (P4) ⊂ owner-approve đã có ở SE (D7 engine):** SE map P4 = vận-hành-hoá D7 (KHÔNG flow song-song) → tránh C3 vocab-fork mà detector SE tự bắt. Xác-nhận P4 không chọi cơ-chế owner-approve sẵn có.
## Evidence
- run-id: `wf_82337f7f-95c` (investigate + completeness-gate ĐẠT) · `wf_a7cbe93e-912` (floor 10/10) · `wf_9d3beebb-a95` (§P 10/10 + drift PASS).
- Marks stamped: `ACTIVE-MARKS.md` 3× ACTIVE-HIGH (anh-confirm S79).
- 0 production code. State THẬT GIỮ NGUYÊN: Mig 57 · 88 bảng · 354 test · gotcha 71 · menu 54 · bundle `CsJetgZH`/`BVS0ApIm`.

View File

@ -0,0 +1,45 @@
# adap-report — Harness-14 (Eval / Budget / Outcome theo hướng "khối-lượng × chất-lượng")
- **id:** 2026-06-20-Governance-harness-14
- **source broadcast:** `ai_infra/broadcasts/outbox/all/2026-06-20-Governance-harness-14-adopt.md` (`status: 🟢 ADOPT` · `reviewer_gate: PASS` · `content_sha256: 8da7e8b1854493f6e0f84211d82c04fbd2fe915b2b5686c0ab8033107ddefc0a`) + checklist `2026-06-20-Governance-checklist-harness-14.md` (`e96930da…`)
- plan-announce tiền-thân `2026-06-19-Governance-harness-all-update-v-2-0.md` = **SKIP n-a** (visibility-only PLAN-status, content_sha256 chưa stamp, superseded bởi adopt-broadcast này — KHÔNG áp riêng)
- directed heads-up `outbox/se/2026-06-20-ai_infra-to-se-harness-14-adopt-notify.md` (inbox verify ✓ whole-file `94c533cf` + body `37ae1b19`)
- **adopted by:** se (SOLUTION_ERP) · **session:** S79 · **date:** 2026-06-20
- **protocol:** Harness-9 PART-2 = workflow IMPLEMENT + REVIEW tách biệt + report-with-run-id
- INVESTIGATE `wf_82337f7f-95c` (budget/eval audit stream) → IMPLEMENT em-main single-writer (D9) → REVIEW `wf_4d4eba6f-8a0` (2× reviewer — §F floor **6/6 MET** + maturity **HONEST** + SE-state **ACCURATE**)
- **project-fit:** ✅ FIT — SE có L1/L2/L3 memory + archive-gate + `eval/` golden-set harness + memory-budget seed-by-measure.
## VERDICT: ✅ ADOPTED — 🔴 rule-floor codify + neo Active-High · 🟡 method honest 3-mức maturity
H-14 = đo chất-lượng + định-cỡ bộ-nhớ trên nguyên-lý "mọi con-số suy từ nhu-cầu thật, KHÔNG đặt-cứng". **Phát-hiện then-chốt (investigate): SE đã ALIGNED sẵn 2/3 cơ-chế** (budget no-decay + baseline-drift canonical-anchor) — adopt = codify rule tường-minh + map method onto cái SE THẬT có + khai honest 3-mức.
## Nấc theo phần (review `wf_4d4eba6f-8a0`)
| Phần | Trạng-thái | Nấc |
|---|---|---|
| 🔴 **RULE time/age = false-proxy** (§A 4 mục floor) | `rules.md §6.6` (bảng "Căn-cứ SAI" time/age cạnh team-size) + mark `RC-…10-29-11` Active-High + `memory-budget.json` 0 núm-decay + drift canonical-anchor | floor 4/4 MET · convention (rule) + mechanized (config no-decay) |
| 🔴 **Outcome** (§D 2 mục floor) | `§F.4` + `rules §6.6` (indicator-tied-to-outcome + Goodhart tức-thì, tổng-quát H8.2 "KHÔNG hạ model") | floor 2/2 MET · convention |
| 🟡 **Eval-precision** (Mức 1) | `§F.2` map onto `eval/` harness sẵn có (golden-set 14-q + evaluator.md recall@5≥0.7 + trial-state-lock) | **executed-file + convention** (weekly-MANUAL, CHƯA mechanized-CI; RAG re-index = AI_INFRA-op) |
| 🟡 **Budget** (Mức 1 ALIGNED) | `§F.3` = seed-by-MEASURE + archive_gate hysteresis/keep-floor/2-strike, 0 decay-knob (= PHẦN A) | **mechanized ALIGNED** (config) |
| 🟡 **Budget-hit-rate + outcome-correlation** (Mức 2) | `§F.3`/`§F.4` khai rõ "có công-cụ ĐO chưa đủ data" — SE chưa có đếm-lượt-truy-cập + thu-đánh-giá có cấu-trúc | **Mức-2 tool-pending-data** (KHÔNG trình như xong) |
| ◦ **Trần nhiễu ngữ-cảnh** (Mức 3) | `§F.1` ghi-nhận sao-bắc-đẩu, KHÔNG ép số | ack-only |
**Completeness-gate:** 6/6 🔴 floor (§A×4 + §D×2) MET (review xác-nhận meta-gate "tổng 6 mục sàn"; data-gate §C KHÔNG đếm thành mục thứ-7).
## Tailoring (SE-specific)
- §F gom vào `harness-11-engine.md` (engine governance hợp-nhất) — H-14 budget = PHẦN A đã có, eval = `eval/` đã có → map-onto thay vì dựng mới.
- 🔴 rule neo qua User-Mark mark-3 (cùng cụm §P) — self-sign RC-sig của SE.
## Honest caveats (KHÔNG nói quá — chính cốt-lõi H-14)
- **3-mức maturity trung-thực:** chỉ eval-precision Mức-1 dùng-được-ngay (NHƯNG manual-weekly, KHÔNG mechanized-CI); budget-hit-rate + outcome-correlation = Mức-2 **có công-cụ chưa-ra-số** (KHÔNG bịa); trần-nhiễu = Mức-3 tạm-gác. KHÔNG nâng mức thấp lên cao.
- **eval = đã CÓ, KHÔNG phải gap mới-dựng** — `§F.2` khai đúng "SE đã có harness (KHÔNG phải gap)", map nguyên-lý onto, không claim tự-chạy.
- **budget ALIGNED là may-mắn cấu-trúc** (seed-by-measure từ Harness-9), KHÔNG phải H-14 mới làm — khai rõ.
- Con-số AI_INFRA tự-đo (cỡ golden-set, recall) = bằng-chứng của HỌ, KHÔNG mục-tiêu áp-cứng SE — SE suy số riêng từ nhu-cầu mình.
## Reverse-findings (đề-xuất ngược AI_INFRA)
1. **SE đã obey 2/3 H-14 TRƯỚC khi adopt** (budget no-decay + drift canonical-anchor) — vì Harness-9 seed-by-measure + Harness-11 detector canonical-anchor đã ép đúng hướng. Xác-nhận: H-9/H-11 là tiền-đề cấu-trúc của H-14; dự-án nào đã chắc H-9/H-11 thì H-14-budget gần như free.
2. **Eval-precision automation = gap chung khả-dĩ:** SE có harness nhưng manual-weekly (RAG re-index AI_INFRA-owned). Nếu AI_INFRA mở tooling re-index/eval-CI cho sister, Mức-1 sẽ lên mechanized — hiện là nút-thắt cross-project, KHÔNG riêng SE.
## Evidence
- run-id: `wf_82337f7f-95c` (budget/eval audit: budget ALIGNED + eval GENUINE) · `wf_4d4eba6f-8a0` (§F floor 6/6 + maturity HONEST + state ACCURATE).
- Mark stamped: `ACTIVE-MARKS.md` `RC-pqhuy1987-20-06-2026-10-29-11` Active-High.
- 0 production code. State THẬT GIỮ NGUYÊN: Mig 57 · 88 bảng · 354 test · gotcha 71 · menu 54 · bundle `CsJetgZH`/`BVS0ApIm`.

View File

@ -4,6 +4,8 @@
> >
> 🔑 **Đây là CANONICAL cho engine governance của SE.** Doc khác (`agents/README`, `session-start/end`) **TRỎ về đây**, KHÔNG copy luật (B1 dogfood — một-chỗ-đổi). > 🔑 **Đây là CANONICAL cho engine governance của SE.** Doc khác (`agents/README`, `session-start/end`) **TRỎ về đây**, KHÔNG copy luật (B1 dogfood — một-chỗ-đổi).
> >
> 🔭 **Phạm-vi (S79 consolidate):** doc gốc Harness-11 (PHẦN A-D) nay **gom thêm §E (User-Mark H-12/13 canonical §P)** + **§F (Harness-14 Eval/Budget/Outcome)** — 1 engine governance hợp-nhất (mirror AI_INFRA "harness-all" consolidation). Ledger mark = `.claude/governance/ACTIVE-MARKS.md`.
>
> 🔑 **Nguyên-lý lõi:** "tự-bảo-trì" = luôn-TỰ-BIẾT khi có drift (detector tự-động, NÊU-CỜ ngay) **CHỨ KHÔNG tự-viết-lại** nội-dung/luật. DÒ tự-động; SỬA do người-chủ-trì (em-main) làm trên cờ. **BAR-KHÔNG-HẠ = một-người-ghi (single-writer)** — "tự-bảo-trì" TUYỆT-ĐỐI KHÔNG miễn-trừ chốt này. > 🔑 **Nguyên-lý lõi:** "tự-bảo-trì" = luôn-TỰ-BIẾT khi có drift (detector tự-động, NÊU-CỜ ngay) **CHỨ KHÔNG tự-viết-lại** nội-dung/luật. DÒ tự-động; SỬA do người-chủ-trì (em-main) làm trên cờ. **BAR-KHÔNG-HẠ = một-người-ghi (single-writer)** — "tự-bảo-trì" TUYỆT-ĐỐI KHÔNG miễn-trừ chốt này.
--- ---
@ -16,6 +18,8 @@
| PHẦN B — derived→canonical + freshness | luật B1 (dưới) + `scripts/governance-detectors.ps1` (C2 staleness) | detector mechanized + fix gated qua người | | PHẦN B — derived→canonical + freshness | luật B1 (dưới) + `scripts/governance-detectors.ps1` (C2 staleness) | detector mechanized + fix gated qua người |
| PHẦN C — 3 grep detector | `scripts/governance-detectors.ps1` (C1/C2/C3 + C4 self-exclusion + C5 resolve-condition) | mechanized NO-API, DÒ+FLAG-only | | PHẦN C — 3 grep detector | `scripts/governance-detectors.ps1` (C1/C2/C3 + C4 self-exclusion + C5 resolve-condition) | mechanized NO-API, DÒ+FLAG-only |
| PHẦN D — orchestration | doc này (3-tier + 1-direction) + `session-start.md`/`session-end.md`/`ultra-on.md` cadence + `hmw.js` checkpoint | mix mechanized + convention | | PHẦN D — orchestration | doc này (3-tier + 1-direction) + `session-start.md`/`session-end.md`/`ultra-on.md` cadence + `hmw.js` checkpoint | mix mechanized + convention |
| PHẦN E — User-Mark (H-12/13, canonical §P) + RC-signature | doc này §E (cơ-chế P1-P10) + `.claude/governance/ACTIVE-MARKS.md` (sổ-cái + display) + 4 lệnh `/user-mark-*` (interface) + `session-start §2.1.4`/`session-end §L.b(h)` (display) | convention (report-trước-đóng-dấu P4) + mechanized (display gắn-lệnh-phiên + tool-deny settings P9) |
| PHẦN F — Harness-14 Eval/Budget/Outcome | doc này §F (3-mức maturity + method) + `eval/` golden-set harness (F.2) + `memory-budget.json`/`measure-agent-memory.ps1` (F.3 = PHẦN A) | eval = executed-file + convention (manual) · budget = mechanized ALIGNED · outcome-correlation/hit-rate = Mức-2 tool-pending-data |
| Canonical state (nguồn-chuẩn) | `docs/STATUS.md` CURRENT STATE table | — | | Canonical state (nguồn-chuẩn) | `docs/STATUS.md` CURRENT STATE table | — |
--- ---
@ -66,7 +70,7 @@ Tất cả ở `scripts/governance-detectors.ps1` — NO-API (grep/measure only)
|---|---|---| |---|---|---|
| **D5 — AUTO (semantic-null)** | dồn-archive ADDITIVE (byte-0-loss) · dựng-lại `_INDEX` · APPEND-chắt-lọc gist · đo-byte | tự-động OK (có A7 NO-API gate bảo-chứng) | | **D5 — AUTO (semantic-null)** | dồn-archive ADDITIVE (byte-0-loss) · dựng-lại `_INDEX` · APPEND-chắt-lọc gist · đo-byte | tự-động OK (có A7 NO-API gate bảo-chứng) |
| **D6 — DÒ + NÊU-CỜ** | mọi thứ chạm prose/luật/con-trỏ-mục/thẩm-quyền/copy-chéo (3 detector C + monitor H1/H2) | chỉ FLAG → em-main soạn bản sửa (KHÔNG nhánh tự-ghi) | | **D6 — DÒ + NÊU-CỜ** | mọi thứ chạm prose/luật/con-trỏ-mục/thẩm-quyền/copy-chéo (3 detector C + monitor H1/H2) | chỉ FLAG → em-main soạn bản sửa (KHÔNG nhánh tự-ghi) |
| **D7 — OWNER-APPROVE** | đổi-luật · đổi-thẩm-quyền · ghi-lan derived · đổi-tên-khái-niệm · nâng-guard chính-thức | anh (project-owner) duyệt trước hiệu-lực | | **D7 — OWNER-APPROVE** | đổi-luật · đổi-thẩm-quyền · ghi-lan derived · đổi-tên-khái-niệm · nâng-guard chính-thức | anh (project-owner) duyệt trước hiệu-lực**vận-hành-hoá bởi report-trước-đóng-dấu §E.2** (đổi-luật cấp-governance đi qua quy-trình 4-bước + chữ-ký RC) |
### D.3 — Bốn chốt chống-tự-hỏng ### D.3 — Bốn chốt chống-tự-hỏng
- **D8 khoá-chiều 1-CHIỀU** 🔴 (codify mới H11) — DÒ chỉ đi **canonical → derived** (bắt derived cũ). **TUYỆT-ĐỐI KHÔNG** lấy giá-trị từ derived ghi ngược canonical. (Vd: detector đọc STATUS so root CLAUDE.md; KHÔNG bao giờ đọc root CLAUDE.md ghi vào STATUS.) - **D8 khoá-chiều 1-CHIỀU** 🔴 (codify mới H11) — DÒ chỉ đi **canonical → derived** (bắt derived cũ). **TUYỆT-ĐỐI KHÔNG** lấy giá-trị từ derived ghi ngược canonical. (Vd: detector đọc STATUS so root CLAUDE.md; KHÔNG bao giờ đọc root CLAUDE.md ghi vào STATUS.)
@ -76,9 +80,87 @@ Tất cả ở `scripts/governance-detectors.ps1` — NO-API (grep/measure only)
--- ---
## PHẦN E — User-Mark (Harness-12/13) + chữ-ký RC quyết-định = canonical §P (🔴 FUNCTION-FLOOR)
> **Adopt S79 (2026-06-20)** — AI_INFRA `2026-06-19-Governance-harness-all-update` (User-Mark) + `…rc-signature` + **canonical §P** (P1-P10). Neo + cưỡng-chế **quyết-định cấp-governance** (luật/chính-sách/kiến-trúc/harness) để không-quên + không-giảm-bằng-cảm-tính. **KHÔNG** dùng cho vận-hành/tác-vụ thường-ngày (P6 scope-discriminator).
>
> 🔑 **3 cấu-phần (B1 phân-vai):** §E này = **CƠ-CHẾ** (codify §P P1-P10 cho SE) · ledger = `.claude/governance/ACTIVE-MARKS.md` (SỔ-CÁI + display, single-writer em-main) · interface = 4 lệnh `/user-mark-active-high|active|medium|disable`. Cấp do em-main gán + anh confirm (KHÔNG agent tự-phán cảm-tính — P8).
### E.1 — Chữ-ký + 4 cấp + binding (P1·P2·P3·P8)
- **P1 Chữ-ký:** mỗi mark mang `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` (REUSE format rc-signature, timestamp lúc anh sign-off). Bằng-chứng-có-niêm: minh-oan · tranh-luận-bằng-bằng-chứng (debate khi ruling mâu-thuẫn) · trách-nhiệm-2-chiều. Forward-only (no-retrofit từ 2026-06-20).
- **P2 4 cấp deterministic** (anh-instruction trực-tiếp, KHÔNG design-invention) — **trực-giao** với tầng-an-toàn D5-D8:
| Cấp | Hành-vi xác-định (P8) | Vi-phạm |
|---|---|---|
| 🔴 **Active-High** | bắt-buộc phải làm (cao nhất) | → `error-ledger.md §L.a` RCA (P9) |
| 🟢 **Active** | follow + nhắc-lại xuyên-suốt | nhắc-lại (KHÔNG mandate RCA-tự-động) |
| 🟡 **Medium** | neo quyết-định chưa-rõ; follow nhưng **skippable** | — |
| 📦 **Disable** | tắt (reversible, giữ audit-trail) | — |
- **P3 Binding nhị-phân:** **có stamp = LỆNH · không stamp = đang BÀN** (thảo-luận ≠ lệnh execute).
- **P8 No-cảm-tính:** mỗi cấp = hành-vi DETERMINISTIC, KHÔNG agent tự-phán. "Tự-skip-workflow tiết-kiệm-token" = lệch → theo rule TƯƠNG-ĐỐI H6.1 (substantive→HMW · trivial→solo), KHÔNG số-magic.
### E.2 — Flow DACI report-trước-đóng-dấu + scope-check (P4·P6 = vận-hành-hoá D7, 🔴 floor)
Đổi-luật cấp-governance đi qua **các bước, KHÔNG được tắt** (4 lệnh `/user-mark-*` thực-thi):
1. **Scope-check (P6):** "Có đổi CANONICAL §-rule / authority-routing không? KHÔNG → đây là **work-flow** → KHÔNG mark." (User-Mark = Gov-decision, KHÔNG task-execution.)
2. **Adjust-Gov (P4):** soạn nội-dung luật mới — em-main **single-writer D9**, KHÔNG fan-out.
3. **Double-check (P4):** quét `§A-§E` + `error-ledger.md` Active-Guards + `ACTIVE-MARKS.md` + `governance-detectors.ps1 C3` tìm mâu-thuẫn (cross-harness / vocab-fork).
4. **🔴 Báo anh kèm 3-7 tiêu-chí khách-quan (P4):** điểm-đau đã-xảy-ra-thật · khối-lượng · chất-lượng (KHÔNG quy-mô-đội / thời-gian-tuổi); cấp đề-xuất; §-target; supersedes?; mâu-thuẫn đã-rà. **CHỜ anh confirm. KHÔNG stamp trước báo-cáo.**
5. **Stamp (anh confirm):** `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` → ghi `ACTIVE-MARKS.md` + áp §-change vào canonical.
> NEW vs D7-cũ = scope-check tường-minh (P6) + rà-mâu-thuẫn (bước 3) + 3-7 tiêu-chí khách-quan (P4). D7 vốn = "owner duyệt trước hiệu-lực"; §E.2 làm rõ QUY-TRÌNH, KHÔNG tạo flow song-song (tránh C3).
### E.3 — Cưỡng-chế 2-kênh, KHÔNG hook (P9 — = XÁC-NHẬN cái SE đã chứng-minh)
| Kênh | Vi-phạm | Cưỡng-chế | Bằng-chứng SE sẵn-có |
|---|---|---|---|
| **Behavioral-mark** | ghi `error-ledger.md §L.a` (AS-table) + **RCA** | convention (kỷ-luật người+AI) | §L.a 2-strike-promote đã chạy |
| **Tool-action-mark** | **permission-DENY**`.claude/settings*.json` (deny-absolute) — **KHÔNG hook** (hook fails-open = observability-only) | mechanized (config) — *xem D10: Bash residual chưa block cứng = gap honest* | **E-006/AS-10** (`error-ledger.md`): hook fails-open → `store_memory` allowlist-strip = gate THẬT; git-diff = backstop |
### E.4 — Lifecycle + storage/SHOW (P5·P7)
- **P5 Lifecycle:** con-trỏ-XUÔI 1-chiều (mark-mới `supersedes:` mark-cũ) + cập-nhật status/cấp mark-cũ (downgrade HOẶC →Disable). 🔴 supersede mark **Active-High** = anh-confirm RIÊNG (KHÔNG auto-downgrade). **KHÔNG freeze-immutable** (git-history audits; anh sửa/đổi-ý qua re-stamp). Disable ≠ revert-rule (tách-bạch).
- **P7 Storage + SHOW:** ledger `.claude/governance/ACTIVE-MARKS.md` (single-writer em-main B3; P7 location-agnostic). 🔴 **SHOW @session-start §2.1.4 + @session-end §L.b(h)** status-filtered: Active-High + Active HIỆN rõ · Medium tóm-tắt · Disable/superseded ẨN.
### E.5 — Objective-only + neo-lý-tính (P10 = `rules.md §6.6`, 🔴 floor)
- Adopt/giảm function bằng **điểm-đau + khối-lượng + chất-lượng KHÔNG quy-mô-đội / KHÔNG thời-gian-tuổi**; "overkill/quá-mức-solo-dev/cảm-tính/cũ-rồi-nên-bỏ" = **BÁC**.
- **AI = neo-lý-tính:** gặp quyết-định biện-minh bằng cảm-giác → em-main **nêu-cờ + bác trên cơ-sở khách-quan**, KHÔNG xoa-dịu. Thẩm-quyền phán "cần/thừa" = **tầng xuyên-dự-án (AI_INFRA)**, KHÔNG dự-án đơn-lẻ. (Bối-cảnh: rule nảy từ audit thật — 1 dự-án từ-chối chức-năng chống-lách-engine bằng "quá mức solo-dev"; điều-phối ban-đầu cũng xoa-dịu trước khi được chỉnh.)
---
## PHẦN F — Harness-14: Eval / Budget / Outcome (🟡 method TAILORED + 🔴 rule-floor)
> **Adopt S79 (2026-06-20)** — AI_INFRA `2026-06-20-Governance-harness-14-adopt` + checklist-14. Cơ-chế **đo chất-lượng + định-cỡ bộ-nhớ** trên nguyên-lý nền: **mọi con-số suy từ nhu-cầu thật, KHÔNG đặt-cứng tùy-tiện.** 🔴 rule bắt-buộc (time/age = false-proxy) đã codify ở mark `RC-…10-29-11` + `rules.md §6.6` — §F này = phương-pháp + trạng-thái-độ-chín honest.
**4 nguyên-lý nền:** ① suy-ra-từ-nhu-cầu KHÔNG đặt-cứng (cấm "số ma-thuật") · ② loại proxy-sai (time/age/quy-mô-đội) · ③ chỉ-báo phục-vụ kết-quả (tối-ưu chỉ-báo bỏ kết-quả thật = kinh-tế-giả) · ④ trung-thực về độ-chín.
### F.1 — Trạng-thái độ-chín 3 MỨC (🔴 honest — KHÔNG nâng mức thấp lên cao)
- **Mức 1 LÀM-ĐƯỢC-NGAY:** eval-precision (đo chất-lượng truy-xuất) — SE CÓ harness chạy thật (xem F.2).
- **Mức 2 ĐANG-TÍCH-LŨY (có công-cụ ĐO, CHƯA đủ data ra số):** budget-theo-hit-rate (cần nhật-ký truy-cập memory) + tương-quan-outcome (cần nhiều tuần đánh-giá). **🔴 Cổng dữ-liệu: dưới ngưỡng → DỪNG, giữ quy-ước đo-được, KHÔNG bịa số.**
- **Mức 3 TẦM-NHÌN-XA (tạm gác):** trần "nhiễu ngữ-cảnh" — không mốc-cứng đáng-tin theo nghiên-cứu → sao-bắc-đẩu định-hướng, KHÔNG ép số.
### F.2 — Eval-precision (🟡 — SE đã CÓ, map onto, honest)
SE đã có RAG golden-set harness (KHÔNG phải gap): `eval/golden-set-solution_erp.jsonl` (14 query: 11 pos + 3 neg) + `eval/evaluator.md` (Spec-A strict, recall@5 gate ≥0.7, rerank ≥0.7 **per-query confident-hit** [gate aggregate avg-rerank 0.65], Case A/B/C/D triage) + `eval/trial-state-lock.json` (baseline recall@5=1.0, chunk-drift 5%). Nguyên-lý H-14 áp:
- **Cỡ golden-set suy từ độ-chính-xác mong-muốn** (công-thức cỡ-mẫu) KHÔNG đặt-cứng — hiện 14 query là quy-ước-đo-được; khi mở-rộng → suy theo confidence-level.
- **Chống nhồi-từ-khóa:** query test KHÔNG lặp nguyên-văn từ-khóa tài-liệu đích (đo năng-lực thật, không trúng-vì-trùng-chữ).
- **Ngưỡng theo đường-nền tương-đối** (so `trial-state-lock` baseline + biên tụt nhỏ) KHÔNG mốc tuyệt-đối tự-đặt; **mẫu-số động** (tỉ-lệ theo số query thật-có).
- 🟡 **Honest nấc:** harness EXISTS + well-specified nhưng **weekly-Friday MANUAL** (`evaluator.md` chạy MCP `search_memory` tay), CHƯA automated trong `scripts/`; RAG re-index = AI_INFRA-owned op. → **executed-file + convention (manual gate)**, KHÔNG mechanized-CI. KHÔNG overclaim "tự-chạy".
### F.3 — Budget bộ-nhớ (🟡 ALIGNED — đo-thật, KHÔNG số-ma-thuật)
- **Đã ALIGNED:** `memory-budget.json` cap = **seed-by-MEASURE** (`scripts/measure-agent-memory.ps1`, `_note` "SEEDED BY MEASUREMENT NOT imagined headroom"); `archive_gate` = hysteresis 0.85 + keep-floor-5 (newest-protection) + 2-strike — **0 núm decay-theo-tuổi** (≙ mark `RC-…10-29-11`). Trần = hệ-quả (dung-lượng ÷ tốc-độ-thay-mới qua A4 hysteresis), KHÔNG retention-by-age. Cross-ref **PHẦN A**.
- 🟡 **Hit-rate sizing = Mức 2 chờ-tích-lũy:** SE chưa có công-cụ đếm-lượt-truy-cập-memory → budget giữ **quy-ước đo-được** (đo byte thật). KHÔNG trình như "đã suy từ hit-rate".
### F.4 — Outcome (🔴 floor + 🟡 tích-lũy)
- 🔴 **Chống kinh-tế-giả (Goodhart) — tức-thì:** cắt chất-lượng tiết-kiệm token → làm-lại → tốn HƠN (mark/§6.6 + H8.2 "KHÔNG hạ model"). Mỗi chỉ-báo tự-động (recall/hit-rate/byte) gắn câu hỏi "có làm anh chốt-OK sớm hơn không". Áp NGAY, không chờ data.
- 🔴 **Ground-truth = đánh-giá chủ-dự-án** (đo gián-tiếp qua số-lần-làm-lại); chỉ-báo tự-động chỉ là trung-gian.
- 🟡 **Tương-quan chỉ-báo↔đánh-giá-người = Mức 2 chờ-tích-lũy:** SE chưa có công-cụ thu-đánh-giá + đếm-rework có cấu-trúc (error-ledger §L.a RCA = mầm gần nhất) → cần nhiều tuần mới khẳng-định tương-quan. **KHÔNG bịa số tương-quan "đẹp".**
> **Tổng nấc §F (honest, checklist-14):** 🔴 floor (loại proxy time/age 4 mục + outcome 2 mục) = ĐẠT qua mark + §6.6 + §F.4. 🟡 method = eval-precision **executed-file + convention** (manual, không mechanized-CI) · budget **ALIGNED mechanized** (config no-decay) · outcome-correlation + hit-rate = **Mức-2 tool-pending-data** (KHÔNG trình như xong). Các con-số AI_INFRA tự-đo (cỡ golden-set, recall) = bằng-chứng của HỌ, KHÔNG mục-tiêu áp-cứng cho SE.
---
## CAVEAT (trung-thực — đọc trước khi tự nhận "đã tự-bảo-trì") ## 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ì.** - **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). - **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).
- **Single-writer bar-không-hạ** — cám-dỗ "để nó tự sửa cho nhanh" phải dừng trước chốt D9. - **Single-writer bar-không-hạ** — cám-dỗ "để nó tự sửa cho nhanh" phải dừng trước chốt D9.
- **Detector = LƯỚI giảm-sót, KHÔNG khoá-cứng** — bắt @đầu/đóng-phiên (theo nhịp); giữa 2 nhịp có khoảng-mù. Phòng-thủ-nhiều-lớp, không bảo-đảm tuyệt-đối. - **Detector = LƯỚI giảm-sót, KHÔNG khoá-cứng** — bắt @đầu/đóng-phiên (theo nhịp); giữa 2 nhịp có khoảng-mù. Phòng-thủ-nhiều-lớp, không bảo-đảm tuyệt-đối.
- **Nấc dogfood:** A2/A3/D4/D9/D11 = SE runtime-mechanized SẴN (H11 = chuẩn-hoá). C1-C3 + B3 + memory-archive-gate = MỚI build S75. D5-D8 + B1 = nhãn-hoá/codify cái ngầm-có. Phân-định 'detector viết-thành-lệnh' (executed-file) ≠ 'đã chạy-quan-sát' (runtime). - **Nấc dogfood:** A2/A3/D4/D9/D11 = SE runtime-mechanized SẴN (H11 = chuẩn-hoá). C1-C3 + B3 + memory-archive-gate = MỚI build S75. D5-D8 + B1 = nhãn-hoá/codify cái ngầm-có. Phân-định 'detector viết-thành-lệnh' (executed-file) ≠ 'đã chạy-quan-sát' (runtime).
- **§E User-Mark = phần-lớn CONVENTION (S79):** report-trước-đóng-dấu (E.2/P4) + cưỡng-chế-hành-vi (E.3 behavioral) + neo-lý-tính (E.5/P10) = **kỷ-luật người+AI**, KHÔNG công-cụ-ép (đừng nhận "mechanized"). CHỈ session-display (gắn lệnh-phiên P7) + chặn-tool-ở-config (E.3 tool-action P9) = mechanized. RC-sig 3 mark Active-High đã anh-confirm-stamp S79 (`ACTIVE-MARKS.md`) = executed-file; 4 lệnh `/user-mark-*` = command `.md` verified-pending-restart (no hot-reload).

View File

@ -374,6 +374,29 @@ Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- User nói "consolidate", "compact", "gọn lại MD", "rõ ràng MD" - User nói "consolidate", "compact", "gọn lại MD", "rõ ràng MD"
- Cuối phase đóng (>1 tháng) khi compact STATUS/HANDOFF/migration-todos - Cuối phase đóng (>1 tháng) khi compact STATUS/HANDOFF/migration-todos
### 6.6 Quyết-định kiến-trúc/chức-năng = tiêu-chí khách-quan (KHÔNG cảm-tính) [User-Mark H-12/13 + H-14, S79]
> **Adopt S79 (2026-06-20)** — AI_INFRA `rc-signature` (06-19) + `harness-14-adopt` (06-20) + User-Mark canonical §P. Bịt một kẽ-hở: từ-chối/cắt một chức-năng bằng **lập-luận cảm-tính**. Quyền tự-quyết HÌNH-THỨC (form-autonomy) GIỮ nguyên — rule này chỉ chặn cảm-tính. Marks Active-High đã anh-confirm-stamp → [`.claude/governance/ACTIVE-MARKS.md`](../.claude/governance/ACTIVE-MARKS.md) (3 mark: objective-criteria `RC-…10-29-09` · User-Mark `…10-29-10` · time/age `…10-29-11`); cơ-chế P1-P10 → [`harness-11-engine.md §E`](governance/harness-11-engine.md).
**Một chức-năng được quyết bởi 3 trục KHÁCH-QUAN — KHÔNG gì khác:**
1. **Điểm-đau (pain-point)** — một lỗi đã **thực-sự xảy ra** (không phải giả-định).
2. **Khối-lượng công-việc.**
3. **Chất-lượng công-việc.**
**🔴 Căn-cứ SAI (cùng một họ — đều cảm-tính, đều CẤM dùng để bỏ/giảm chức-năng):**
| Căn-cứ sai | Vì sao sai | Nguồn |
|---|---|---|
| **Quy-mô-đội** ("quá mức cho solo-dev", "1 người làm thì cần gì") | Số người KHÔNG làm điểm-đau/khối-lượng/chất-lượng nhỏ đi. ERP solo dựng-1-tuần đã có khối-lượng lớn. | mark `RC-…10-29-09` (rc-signature) |
| **Thời-gian / tuổi-dự-án / recency-decay** ("cũ rồi nên bỏ", "lâu chưa dùng nên hạ", "tự-giảm theo tuổi") | Tuổi KHÔNG liên-quan nhu-cầu. Trần budget = (dung-lượng ÷ tốc-độ-thay-mới), KHÔNG núm-giảm-theo-tuổi; phát-hiện-trôi neo đường-nền-cuộn, KHÔNG cửa-sổ-theo-tuổi. | mark `RC-…10-29-11` (H-14) |
**Hệ-quả vận-hành (🔴 floor):**
- **AI = neo-lý-tính.** Gặp quyết-định biện-minh bằng cảm-giác ("nhiều quá", "không cần cho quy-mô tụi tôi", "cũ rồi") → em-main **nêu-cờ + bác trên cơ-sở khách-quan**, KHÔNG xoa-dịu. "AI phải lý-tính HƠN ở chỗ này, không để con-người kéo mình về phía cảm-tính."
- **Thẩm-quyền phán "cần/thừa" = tầng xuyên-dự-án (AI_INFRA)**, KHÔNG dự-án đơn-lẻ tự-phán "thừa" (một dự-án chỉ thấy phạm-vi mình → thiếu bối-cảnh). Chức-năng adopt **đầy-đủ + nhất-quán**; chỉ HÌNH-THỨC là phần tự-chọn.
- **Chống "kinh-tế giả" (Goodhart)** — cắt chất-lượng để tiết-kiệm token thường khiến **làm-đi-làm-lại → tốn HƠN**. Tổng-quát rule H-8 "KHÔNG hạ model để chạy nhanh" thành "KHÔNG hạ chất-lượng bất-kỳ để tiết-kiệm". Áp NGAY, không chờ data. Mỗi chỉ-báo tự-động (recall/hit-rate/byte) phải gắn câu hỏi "có làm anh chốt-OK sớm hơn không".
- **Chữ-ký RC + User-Mark:** mỗi đổi-luật cấp-governance từ S79 mang `RC-pqhuy1987-dd-mm-yyyy-hh-mm-ss` (anh ký-duyệt qua report-trước-đóng-dấu §E.2/P4) → ledger [`.claude/governance/ACTIVE-MARKS.md`](../.claude/governance/ACTIVE-MARKS.md). 4 cấp Active-High/Active/Medium/Disable (lệnh `/user-mark-*`). Forward-only.
## 7. Testing (Phase 9 active — 77 test pass post-Mig 21 + CI gate live) ## 7. Testing (Phase 9 active — 77 test pass post-Mig 21 + CI gate live)
### Stack đã apply ### Stack đã apply