6.0 KiB
SPEC — fable-real investigator-codebase: spec-cách-làm chi-tiết + checklist đợt 16-07 (Giai đoạn B)
Spec-file 3-mục H21 (lead ghi TRƯỚC spawn). Engine: real-single (lệnh anh S127: "/fable-real invest spec-cách làm chi tiết-checklist" — consent per-invocation còn hiệu lực, ghi ở run.md Giai đoạn B). Vai: investigator-codebase. Model: fable (spawn-param thắng pin — đo S126). Lượt này SOẠN (propose), KHÔNG phán (đó là reviewer #2 lượt C).
① Tính-năng / đề-bài
Ground-truth repo SE từng anchor + PROPOSE spec-cách-làm chi-tiết + checklist execute cho 6 việc theo THỨ-TỰ-VIỆC verdict A (sub-reviewer-1-verdict.md cùng folder). Output đủ chi-tiết để HMW workers Opus-MAX (Giai đoạn D) execute KHÔNG cần đoán: per việc = file đích tuyệt-đối · thay-đổi diff-level · lệnh verify chạy được · gate nào cần anh. Reviewer #2 (C) sẽ re-review spec này — soạn cho người-phán đọc được.
② Cách implement (cho investigator)
- Đọc
sub-reviewer-1-verdict.md(cùng folder) — bảng per-bản + caveat + thứ-tự 6 việc. Đọc 6 broadcast gốcbroadcasts/inbox/2026-07-1[56]-*.md(bảng sha ởrun.md). - Ground-truth TỪNG việc — mở file đích, xác nhận trạng-thái/line THẬT trên đĩa (đừng chép verdict A mù — line có thể xê dịch):
- Việc 1 (bản 5, nhỏ nhất): tìm config RAG per-project SE trong khung AI_INFRA (
D:\Dropbox\CONG_VIEC\AI_INFRA\**— verdict A neo rag.json:26contextual_retrieval: true+ :31 rationale trial-week-3 treo). Xác nhận đường-dẫn TUYỆT-ĐỐI + giá trị hiện tại + mirrorprojects.py:39. Spec: fliptrue→false+ rationale mới (revisit đóng bởi owner-final f5ce2778) + báo hub 1 dòng. Ghi rõ: quyền SE sửa = tiền lệ S41 (exclude_paths); hiệu-lực chờ re-bootstrap = AI_INFRA-op. - Việc 2 (bản 1, re-verify nhịp): (a)
docs/governance/adap-reports/2026-07-15-Governance-h17-cadence-update-bookend.mddòng 8 "7 khoản SAI" → sửa thành "5-sai + 2-đổi-cách-đọc"; (b) 2 citation stale:.claude/commands/session-start.md:206+memory-budget.json_owner_ratified— đọc ngữ-cảnh thật, đề-xuất wording re-tune neo cycle-2 CỦA SE; (c) counter GIỮ NGUYÊN (điều kiện gỡ hub KHÔNG áp — SE phiên ngắn-nhiều); (d) STAGE-2:broadcasts/_index.md6 row INBOUND pending→ai_infra — xác nhận khuôn move hiện tại. - Việc 3 (bản 2, lớn nhất): inventory 3-câu-hỏi × 7 vòng lặp SE (wal-flush Stop-hook · memory-archive-gate.ps1 · crystallized-backfill.ps1 · governance-detectors.ps1 · measure-agent-memory.ps1 · sleep-recovery L2 gist · curate L1→L2). Per vòng trả lời: (q1) trigger có đọc instrument đông-cứng? (q2) có niêm-phong sau move hay chỉ bảo-toàn-byte? (q3) ĐO/LÀM tách tầng + phanh chưa? Seed từ verdict A: niêm-phong = GAP thật (
memory-archive-gate.ps1DRY-planner không verify seal sau move; moved-not-cut S102 = kỷ-luật TAY); frozen-instrument:budget.measuredSTALE nhưng consumer ignore+re-measure (memory-selfimprove-audit.ps1:18,110). CHỈ port 3 CÂU HỎI — CẤM chép ngưỡng hub. - Việc 4 (bản 3): kiểm-kê nhãn đã-đo — 2 ứng viên verdict A:
scripts/crystallized-backfill.ps1:117-119"calibrated" /4.0 /3.0 (không assert/phản-chứng) +memory-budget.json:89measured_token_estimate=55000(metadata giàu ≠ phản-chứng). Per con chọn 1/3 lối-thoát (đo-lại-được | hạ-nhãn | thêm-phản-chứng) + soạn câu cửa-duyệt vào checklist reviewer. Grep thêm nhãn measured/empirical/calibrated/đã-đo trongscripts/*.ps1+.claude/workflows/hmw.js+memory-budget.json— có ứng viên thứ 3 sót không? - Việc 5 (bản 4): n-a — spec chỉ 1 mục: adap-report nắm-hướng (không code). CẤM copy mục 2 (hub tự khai chưa build).
- Việc 6 (thư 0): adap-reports ×5 theo REPORT-FORMAT LOCK (khuôn
/adap-report, xem file mẫu trongdocs/governance/adap-reports/) + email hub GỘP 1 thư (khuôn/send-emailoutboxbroadcasts/outbox/ai_infra/). Ask do-token GIỮ pending (đừng đóng sớm — errata batch hub đang soạn).
- Việc 1 (bản 5, nhỏ nhất): tìm config RAG per-project SE trong khung AI_INFRA (
- PROPOSE spec-execute per việc:
{file-đích tuyệt-đối · diff đề-xuất (before→after) · lệnh verify chạy được · owner-gate?}+ phân-lane D: việc nào HMW worker mechanical được, việc nào lead-solo (cross-repo AI_INFRA = việc 1), việc nào chờ anh. - GHI-ĐĨA-TRONG-LÚC-LÀM (chống #53, bài S123): ghi draft TĂNG-DẦN vào
sub-investigator-2-spec-draft.md(CHỈ file này — B4/B6). KHÔNG sửa bất-kỳ file nào khác (kể cả file đích — lượt này PROPOSE-only). KHÔNG tự ghi MEMORY (memoryDelta RETURN — lead VERIFY→APPEND). - Adversarial với verdict A: ground-truth lệch verdict A (line xê-dịch / giá-trị đã đổi / anchor không tồn tại) → ghi mục LỆCH riêng, spec theo ĐĨA không theo verdict.
③ Checklist + deliverable + acceptance (đo được)
- Draft trên đĩa
sub-investigator-2-spec-draft.md: đủ 6 việc × 4-trường {file:line verify-từ-đĩa · diff · lệnh-verify · gate} + phân-lane D - ≥5 evidence
file:lineTỰ MỞ từ đĩa (không chép verdict A) - ≥1 mục KHỚP/LỆCH explicit vs verdict A (adversarial check — "khớp hết" phải kèm cách đã thử phá)
- Checklist execute đo-được cho D: per việc ≥1 acceptance chạy được (lệnh + expected output)
- RETURN dòng-1 =
VERDICT: SPEC-READY|SPEC-BLOCKED — <1 dòng>+ pointer draft + mục LỆCH (nếu có); RETURN ≤400 words (draft nằm trên đĩa) - memoryDelta 4-field {task, verdict, learned, surprise}
- Acceptance lead-verify: spot-check ≥3 anchor draft vs đĩa · draft đủ 6 việc · lệch-vs-verdict-A có xử-lý · rồi lead ghi spec-execute cho C