Files
solution-erp/docs/governance/adap-reports/2026-07-10-Governance-harness-21-spec-file-invocation.md

25 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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

# adap-report — 2026-07-10-Governance-harness-21-spec-file-invocation (SE)
> **Broadcast:** `2026-07-10-Governance-harness-21-spec-file-invocation.md` (outbox/all AI_INFRA). **Adopt S110 (2026-07-11), anh-directed** (`/check-email AI_INFRA` + lệnh anh nguyên văn: `"/fable-real inves và review — chủ đề các vấn đề trong email nhận được. hmw cho đám Opus 4.8 MAX xử lý"` — chính lệnh này ĐÃ đúng khung H21: owner gõ + vai đích-danh + worker hạng-hai).
> **Integrity gate:** whole-file `Get-FileHash` copy==nguồn ✓ + body `content_sha256` re-compute `19cc954b…` **MATCH ✓** (canonical split-frontmatter + strip-1-leading-newline + SHA256-UTF8). `reviewer_gate: PASS-WITH-FIXES` (gate-outward AI_INFRA WF-3 `wf_61e7fc76`). `supersedes_scope: partial` (trên H19 "model ảo ensemble" — 2 khoản thay: 2-vai-cố-định + mode-switch; định-nghĩa 2 engine + ký-ức-đúng-vai + chất-lượng GIỮ).
> **Harness-9 mandate 2-workflow + engine-đắt lượt này:** invest = **investigator-codebase Fable-real single-deep-pass** (spawn-direct; ⚠️ #53-garble → SendMessage-resume recover, verdict PASS đầy đủ) → lead verify + ghi **spec-file 3-mục** `.claude/workflows/runs/2026-07-11-h21-mtv3-adopt/spec-h21-mtv3-adopt-11-07-2026.md` (dogfood khoản-① NGAY lượt adopt — run-1) → WF implement **`wf_0c3b307f-a64`** (3 worker **Opus 4.8 MAX** `model:'opus'` edit-direct, 3/3 DONE 0-error schema-clean) → review = **reviewer Fable-real single-deep-pass** (⚠️ #53-garble lần 2 → SendMessage-resume recover) → **PASS_WITH_FIXES** (0 Critical · 5 Major M1-M5 · 9 minor) → em-main fix trọn M1-M4 + minors cùng phiên, M5 = chính file này + file MTv3 (khớp filename đã cite trong 3 supersede-note).
## Nấc per-khoản (G-011: agreed / executed / verified)
| Khoản (sàn 🔴) | Nấc | Evidence |
|---|---|---|
| **① Spec-file 3-mục mỗi run engine-đắt** (engine propose-only → lead verify → LEAD ghi → worker theo spec) | **executed + dogfood run-1 CÙNG LƯỢT** | Template + pipeline codify `harness-11-engine.md §K.E(ii)`; 2 command `fable-real.md:25-32` / `fable-clone.md:23-30`; runbook §2.1-bis; spec thật `runs/2026-07-11-h21-mtv3-adopt/spec-h21-mtv3-adopt-11-07-2026.md` (3-heading, provenance ghi rõ engine-propose → lead-verified-2-chỉnh → lead-ghi) |
| **② Owner-gõ-kèm-vai; BỎ mode-marker + BỎ 2-vai-cố-định; lead không tự ý** | **executed** | Marker `.claude/fable-real-mode.on` **ĐÃ XÓA** (Test-Path=False; `.gitignore:92` giữ pattern phòng-hờ + comment 🧊); 2 command redesign per-invocation `<vai> <đề-bài>` (vai ∈ roster 12, thiếu/sai → hỏi anh); session-start BƯỚC 0.5b reword reader-H21; engine K.A/K.B/K.D 🧊-supersede + K.E mới; runbook ~30 point-edit ($mode→$engine/INVOCATION, AP-4-mới "chạy ngoài lượt-lệnh = vi phạm") |
| **4 ghi-chú trung-thực a-d** | **executed (hiện diện đủ)** | K.E(iii) 4 note nguyên ý; `fable-real.md:22-23,31-32` + `fable-clone.md:21,29-30`; runbook §2.1-bis note-block. (a) giữ đúng nấc "owner-gated tầng lệnh + kỷ-luật lead, KHÔNG code-enforced" — grep "code-enforced" toàn bộ = phủ-định |
| **Migration khoản 5** (gỡ marker · grep token cũ toàn repo kể cả persona) | **executed + reviewer-verified** | 12 persona `.claude/agents/*.md` = **0 hit** (SẠCH — ngược bài học hub "chỗ sót ở persona phụ"); grep-suite post-fix: `Test-Path` marker 4/4 hit đều dòng-🧊, "LUÔN top-model" ACTIVE=0; HISTORY (session-log/archive/diary/adap-report-body-cũ/dogfood-form S108) giữ nguyên văn |
| **Sàn 5-điểm §6** | **executed 5/5** | Reviewer Fable bảng-đối-chiếu: ①spec-file ✓ ②worker-theo-spec (bơm args, `hmw.js` không đọc file) ✓ ③chỉ-chạy-khi-owner-gõ ✓ ④vai-owner-gán ✓ ⑤lead-không-tự-ý (kể cả HMW-ON; `hmw.js:38-40` comment reword `tier:'fable'` chỉ trong lượt lệnh) ✓ |
## Tailored / phát-hiện-riêng / honest-caveat
- **Tailored form:** giữ TÊN 2 lệnh cũ `/fable-real|/fable-clone` (= lệnh-A/lệnh-B; H21 §6 "tên lệnh tự quyết") — đổi semantics toggle→per-invocation; spec-file đặt trong run-trace H10 sẵn có (`.claude/workflows/runs/<run-id>/` git-TRACKED → owner audit qua git, đúng mục-đích khoản ①); naming `spec-<tên-tính-năng>-<dd-mm-yyyy>.md`.
- **Phát-hiện-riêng #1 (boundary-gap M2):** lệnh-B × 2 vai monitor (`tooling-auditor`/`harvest-curator`) — 2 vai ∉ `hmw.js` VALID_ROLES (10) → ensemble fail-soft **default-subagent mất persona** (H19 2-vai-cố-định che edge này; roster-12 promise mở ra mới lộ). Xử: document limitation ở `fable-clone.md` + K.E(i); bổ sung VALID_ROLES = đổi code, **chờ anh quyết** (không tự sửa trong đợt docs-only). → **RESOLVED CÙNG PHIÊN:** anh-directed (AskUserQuestion S110) bổ sung 2 monitor → VALID_ROLES **12** đủ roster (`hmw.js:28-29`, node --check PASS; supersede điểm H6-design "monitor ngoài workflow" — monitor vẫn INFORM-only, lane RETURN-only).
- **Phát-hiện-riêng #2 (worker-đổi-fact M1):** worker Opus khi reword tự đổi "10 vai"→"12 vai" trong câu mô tả VALID_ROLES = sai fact code — reviewer Fable bắt, em-main fix. Lesson: worker-draft đụng CON SỐ về code → cross-check code thật trước commit.
- **Phát-hiện-riêng #3 (sweep-theo-token mù semantics M3):** acceptance "grep `Test-Path` ngoài 🧊 = 0" PASS trong khi ~16 cụm semantics-cũ chưa-đánh-dấu vẫn sống (nặng nhất: P5 "2 vai EXCLUDED" mâu thuẫn ROLE_VALID roster-12 TRONG CÙNG checklist) — đúng lớp lỗi broadcast §5 cảnh báo, bắt bởi reviewer-Fable đọc-semantics (không phải grep). Fix point-edit trọn.
- **Honest-caveat:** (i) "lead không tự ý" = **kỷ-luật + owner-gated tầng lệnh, KHÔNG code-enforced**`hmw.js` không gate vai, đường `tier:'fable'` còn nguyên (đúng note-a broadcast); (ii) dogfood = **run-1 duy nhất** (chính lượt adopt này) — chưa có số-liệu N-run pipeline spec→worker (không claim); (iii) command `.md` sửa = **restart CLI mới ăn runtime** (registry hot-reload description ĐÃ thấy giữa phiên nhưng body-execution chưa re-verify — đồng bộ caveat ENV-DEPENDENT triage-S5); (iv) mark `RC-…17-46-35` (H19) = quyền anh — em đề xuất mark mới supersede, **CHƯA stamp, chờ anh** (P8).
- **#53 return-garble ×2 trong CHÍNH lượt này** (cả invest lẫn reviewer Fable-lane — đúng correlation reasoning-lane adap-request `2026-07-06-se-53-garble…`): **SendMessage-resume recover 2/2 sạch** — data-point mới củng cố mitigation-set đã gửi hub (S6 triage-reply đã ACCEPT codify).