專案

一般

配置概況

動作

Feature #321

進行中
SC

GOV-1.7.7 反捏造四道機械閘落地:hooks + CI + ICGC 外部複查管線 + PM 鎖寫

Feature #321: GOV-1.7.7 反捏造四道機械閘落地:hooks + CI + ICGC 外部複查管線 + PM 鎖寫

是由 Sashiba Chou28 天 前加入.

狀態:
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 寫入矩陣事前 denywrite-matrix-guard.ps1,PreToolUse Write/Edit):具名角色對非授權治理目錄的寫入事前擋、指路 fallback 規則 11;fail-open(協調者主線/泛型 agent/舊版 build/repo 外一律放行)
  • shell-write-guardshell-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.ps1test-shell-write-guard.ps1test-v17-s1s2s6.ps1:閘邏輯單元測試
  • test-cjk-regression.ps1:CJK 編碼回歸(PowerShell hook 中文處理)
  • test-claims-gen.pytest-committed-spec-audit.pytest-external-review.pytest-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_byhuman_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.yml committed_spec_audit + l4-external-review.yml
  • PM 工具權限實際收窄為 Read/Glob/Grepmemory: 已移除(工具路由層即拒寫,非僅 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

沒有任何資料可供顯示

動作

匯出至 PDF Atom