fix(hooks): make integrity guard advisory-only

This commit is contained in:
xsser
2026-05-13 23:39:49 +08:00
parent 92850d9db2
commit 56332fe2eb
10 changed files with 144 additions and 47 deletions
+15
View File
@@ -72,6 +72,21 @@ Codex 没有 Claude Code 的 `/pua:xxx` slash command 命名空间时,可以
这比强制 GitHub 登录更利于收集真实数据,同时避免“无同意、无脱敏、无限流”的裸奔上传。
## Integrity Guard 为什么不再使用 `permissionDecision: "ask"`
从 v3.4.6 起,PUA Integrity Guard 将敏感但合法的操作降级为 advisory-only:只注入 `additionalContext`,不再输出 `permissionDecision: "ask"`
原因是 Claude Code 会把 hook 返回的 `ask` 当成硬权限请求处理,它的优先级高于 `bypassPermissions`,会导致用户明明开启 bypass 仍频繁弹窗。
新的分层是:
- memory、`CLAUDE.md``settings.json`、tests/evals/CI 等敏感操作:advisory-only,提醒模型谨慎并解释治理边界;
- hidden tests、hidden solution、gold patch、benchmark answers`permissionDecision: "deny"`,硬阻断,避免答案污染和评测作弊;
- 普通源码读写:静默放行。
核心原则:提醒走上下文通道,阻断才走权限裁决通道。
## “下场”这个词为什么改了?
“下场”同时可能表示“亲自动手介入”和“停止工作/退场”,容易让 agent lifecycle 语义混乱。现在统一为: