用途:为 HeyEddi Reviewer 及可选的 Spot runner 编写正确的 eddi-ci.yaml,避免凭记忆臆造配置项。
主要能力:通过 load_policy_contract 获取权威的 guide、knobs、rules 与 minimal_example;通过 inspect_repo 检测仓库是否使用 HeyEddi 产品,并识别语言与可能的测试命令。
使用方式:每次运行先执行 load_policy_contract(或 python …/scripts/load_policy_contract.py),以返回内容为准;叙述性文档见 docs_url(默认 https://ci.heyeddi.com/docs#policy),安全规则见 context/ANTI_PATTERNS.md。契约来源优先级为本地 heyeddi-ci checkout → HEYEDDI_CI_POLICY_URL / 生产 API(https://cihook.heyeddi.com/api/public/eddi-ci-policy)→ 文档页文本。
决策门:缺少 eddi-ci.yaml 不算缺陷,安全默认已生效(runners 关闭、on_ci_failure 关闭)。仅在用户明确要求创建/配置、inspect_repo 显示 uses_heyeddi_product 为 true、用户需要超出默认的 Reviewer 策略、需要 sealed Spot pipeline、需要 GHA on Spot,或用户确认按 PR CTA 配置时才写入。若仅因文件缺失且无 HeyEddi 产品标记,或用户只想要普通代码审查,则不创建。
限制:未知顶层键会导致 schema 失败(extra=forbid);无效 YAML 会被 App 忽略并回退安全默认。计费开关与 sealed Spot pipeline 任务需显式选择加入;不得在未获授权时合并 PR,不得写 auto_merge;不得在无 Check/Spot 证据时声称任务已运行。优先 GHA + workspace runner 模式,保留 pipeline: {} 以避免重复运行。sealed pipeline 需真实命令与路径过滤,不得臆造 pytest / npm test。写入后需用户提交推送,由 HeyEddi App 在 PR 变更时校验。