大模型应用
为 AI 代理的 PR 评审/合并/CI…
当 Claude Code 代理会执行 PR 评审、评论、合并、发布、改 CI 或推送受保护分支等外部可见操作,且需要人工审批与可离线验证的审计链时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
为 AI 代理的 PR 评审/合并/CI特定
解决思路
- 安装插件:claude plugin install wshobson/agents/review-agent-governance
- 把默认策略复制到项目根目录:cp .claude/plugins/review-agent-governance/policies/review-agent-governance.cedar ./review-governance.cedar,并按项目规则编辑该文件(策略编写参考 ../agents/review-policy-author.md)
- 创建回执目录与忽略项:mkdir -p ./review-receipts,然后把 ./review-receipts/、./review-governance.key、./.review-approved 追加到 .gitignore
- 首次运行 protect-mcp sign 会生成签名密钥;把第一份回执中的公钥提交到仓库,供审计者后续验证
- 按会话审批:在执行被门禁的操作前 touch ./.review-approved 打开审批窗口,让 Claude Code 执行评审/评论/合并,操作后立即 rm ./.review-approved 关闭窗口
- 或在 Claude Code 内使用斜杠命令 /approve-review "Reviewing PR #123 authored by contributor X",它会创建带原因说明的 ./.review-approved 并向回执链写入人工审批回执,之后仍需 rm 关闭窗口
- 如需强制所有工具调用都走完整 Cedar 策略评估、禁用审批绕过,设置 export REVIEW_APPROVAL_FLAG=./.never-approve;此时任何命中 forbid 规则的调用都会被拒绝,审批窗口失效(适用于 CI 或锁定审计运行)
- 查看回执:ls -la ./review-receipts/
- 离线验证整条回执链:npx @veritasacta/verify ./review-receipts/*.json;退出码 0 表示全部真实且链完整,1 表示某回执被篡改,2 表示回执格式错误
- 在 Claude Code 内用 /list-pending 遍历回执链,打印最近的 decision: deny 条目及其工具名、命令模式和时间戳
- 典型审批流程:先用 /list-pending 查看被拒操作,人工判断后执行 /approve-review "..." 创建审批窗口,让代理重试该操作(产生 decision=allow、reason=human_approved 的回执),最后 rm ./.review-approved 关闭窗口
- 与 protect-mcp 组合使用时,两个插件各自的 hooks/hooks.json 都会注册 PreToolUse 钩子,Claude Code 每次工具调用都会运行两者;每个 evaluate.sh 从 stdin 的钩子负载读取 tool_name 和 tool_input(Claude Code 不设置 TOOL_NAME 变量),分别评估 ./protect.cedar 与 ./review-governance.cedar;两个钩子都通过才放行,任一 Cedar 策略 deny 即阻断
适用边界 · 注意事项
- 代理只做本地文件编辑和运行测试时,本插件属于过度配置,应改用 protect-mcp 做通用工具调用策略
- 需要完全无人值守、不允许任何人工审批窗口的场景(除非改用 REVIEW_APPROVAL_FLAG=./.never-approve 的全拒绝审计模式)