動作
Feature #321
進行中
SC
GOV-1.7.7 反捏造四道機械閘落地:hooks + CI + ICGC 外部複查管線 + PM 鎖寫
Feature #321:
GOV-1.7.7 反捏造四道機械閘落地:hooks + CI + ICGC 外部複查管線 + PM 鎖寫
狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-07-04
完成日期:
完成比例:
0%
預估工時:
概述
GOV-1.7.7 反捏造四道機械閘落地:hooks + CI + ICGC 外部複查管線 + PM 鎖寫¶
背景¶
專案的反捏造防線先前只有紙上約定(CLAUDE.md 的寫入權矩陣、研究鐵則、守門 spot-check)——全部靠 agent 自律,而「會造假的節點連『我有自查』也一起造假」。工程進度層(測試通過/功能完成)更是零機械檢查,假綠燈與假研究數字同樣致命。
本批把 ai-team-template v1.7.7 的確定性防捏造層搬進 travel_helper:把信任錨定在「外部、runtime 執行、模型控制不了」的地面真相上,而非 agent 自我回報(watcher ≠ watchee)。同時完成教訓 14「PM 鎖寫」——orchestrator 不該擁有內容寫入權,能做但不該做的能力遲早被誤用(ARGUS 2026-06-09「PM 冒名包辦」事件)。
變更內容¶
四道機械閘(新增 .claude/hooks/ + .github/)¶
-
S1 錨點閘(
fabrication-check.ps1,Stop hook):本輪新增的 specs 行帶[evidence: conclusions/…]錨點但該結論human_checkpoint缺/pending → block;含 A/A′/B/C/C-H1~H11/R/S1/S2 全套檢查項(跨 AI 辯論落地) -
S2/S7 寫入矩陣事前 deny(
write-matrix-guard.ps1,PreToolUse Write/Edit):具名角色對非授權治理目錄的寫入事前擋、指路 fallback 規則 11;fail-open(協調者主線/泛型 agent/舊版 build/repo 外一律放行) -
shell-write-guard(
shell-write-guard.ps1,PreToolUse Bash/PowerShell):擋具名角色用 shell 重導向繞過寫入矩陣;fail-open -
committed_spec_audit(
.github/workflows/tests.yml,CI):本地 Stop hook 只看 working tree,同輪git commit可藏假 ——CI 在帳號外對已提交的 specs 重跑 S1 不變式(committed_spec_audit.py)
ICGC 外部複查管線(L4,新增)¶
-
claims_gen.py:從研究產出抽取可查證聲稱 →claims.json -
external_review.py+run_external_review.py:獨立 AI session 讀 claims 做外部複查(破解「主協調者自身捏造」場景 H) -
.github/workflows/l4-external-review.yml+cron/:排程外部複查;l4-ledger.txt記錄已複查的 verifier 報告 -
pdf_fetch.py:PDF 抽取快取(docs/research/pdf-cache/) - secrets 走
secrets.local.env(gitignore,per-user)
測試(隨 hooks 落地,.claude/hooks/test-*)¶
-
test-write-matrix-guard.ps1/test-shell-write-guard.ps1/test-v17-s1s2s6.ps1:閘邏輯單元測試 -
test-cjk-regression.ps1:CJK 編碼回歸(PowerShell hook 中文處理) -
test-claims-gen.py/test-committed-spec-audit.py/test-external-review.py/test-pdf-*.py+test-fixtures/
治理文件與設定¶
- CLAUDE.md:新增「進度聲稱證據規則」「寫入權矩陣與防冒名紀律」「協調者守門與強制 spot-check(含人類抽查 checkpoint)」「v1.7 四道機械閘」四大段
-
project-manager.md:工具收窄為
Read/Glob/Grep、移除memory:frontmatter(避免 harness 自動補發 Write/Edit 架空硬鎖)、加「 你不寫檔」段 -
conclusions/_template.md:內建 provenance frontmatter(
produced_by/human_checkpoint: pending…) - settings.json:註冊 PreToolUse×2 + Stop×1 三個 hook
- .gitignore:ICGC per-run/per-machine 產物、secrets、pdf-cache、audit-ledger 等
- USAGE.md:tree 節點寫入分工同步 PM 鎖寫後語義
驗收標準¶
- 三個 hook 已註冊於
.claude/settings.json(PreToolUse Write|Edit、PreToolUse Bash|PowerShell、Stop) - hook 各自附單元測試(
test-*.ps1/test-*.py)+ CJK 回歸測試 - CI 兩條 workflow 落地(
tests.ymlcommitted_spec_audit +l4-external-review.yml) - PM 工具權限實際收窄為
Read/Glob/Grep、memory:已移除(工具路由層即拒寫,非僅 prompt 自律) - 所有閘 fail-open:協調者主線/泛型 agent/舊版 build/repo 外路徑一律放行(寧漏勿誤殺)
- 縱深防禦不撤:機械閘只收窄非消滅捏造,人類稽核與外部 AI 複查保留
- 無新增產品程式碼、不影響 ARCH-1 既有 / 狀態(純治理層變更)
後續¶
- 人類動作:GitHub 開 branch protection 把 tests 設 required check
- 人類定期
git log -p docs/research/conclusions/稽核human_checkpoint回填時序 - L4 外部複查 cron 首次實跑驗證(需設
secrets.local.env)
沒有任何資料可供顯示
動作