## 背景 `get_change_risk` 已能对 commit / range 出 directive(will_break / missing_cochanges / missing_tests / tests_to_run),但没接到 PR 时刻——而本仓配着 green 即 auto-merge,机器门禁缺位等于裸奔。#14 管出厂(release),本条管日常(每张 PR)。 第一性原理:门禁的价值恰在**不依赖模型质量**——守卫不能是被守卫者。agent 越自主,模型外的确定性 rail 越重要。PR 是唯一所有变更必过的 chokepoint,卡住它就是"无论模型怎么进化工具必须在位"的结构保证。 ## 要做 1. CI job:PR 上跑 `get_change_risk base..head`,directive 写成 PR 评论 + status check;`risk_percentile` 超阈值转 required-review,阻断 auto-merge。 2. `tests_to_run` 非空时,check 校验这些测试在本次 CI 里真的跑过。 3. 写时触发面(Refs #58):worktree 内 staged 变更即可调 advisory change-impact,把"写代码时发现问题"提前到 PR 之前。 4. 顺手(可拆独立小 issue):installer 无法更新 Claude skill(.skillz junction 路径),至少把 junction 检测 + 明确提示做进 doctor。 ## 验收 - 每张 PR 自动出现 directive 评论 + check;高危 PR 无人审不能 merge。 - 至少一次真实拦截案例(高危 PR 被 check 挡下)记录进 docs。 Refs #58 #14 #55
背景
get_change_risk已能对 commit / range 出 directive(will_break / missing_cochanges / missing_tests / tests_to_run),但没接到 PR 时刻——而本仓配着 green 即 auto-merge,机器门禁缺位等于裸奔。#14 管出厂(release),本条管日常(每张 PR)。第一性原理:门禁的价值恰在不依赖模型质量——守卫不能是被守卫者。agent 越自主,模型外的确定性 rail 越重要。PR 是唯一所有变更必过的 chokepoint,卡住它就是"无论模型怎么进化工具必须在位"的结构保证。
要做
get_change_risk base..head,directive 写成 PR 评论 + status check;risk_percentile超阈值转 required-review,阻断 auto-merge。tests_to_run非空时,check 校验这些测试在本次 CI 里真的跑过。验收
Refs #58 #14 #55