关于 heyeddi-ci-config
heyeddi-ci-config 是用于编写或讲解 HeyEddi `eddi-ci.yaml` 配置的 skill。它先判断是否需要创建文件,再读取实时策略,并遵循费用、Runner 和现有 CI 工作流方面的安全规则。
主要功能
- 01判断是否需要配置文件
- 02读取权威实时策略规则
- 03编写安全的 Reviewer 配置
- 04避免重复现有 CI 工作流
- 05要求提供 Runner 执行证据
适用场景
- 01配置 HeyEddi Reviewer 策略
- 02判断是否添加 `eddi-ci.yaml`
- 03设置用户要求的 Spot Runner 作业
- 04讲解现有 CI 配置行为
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ heyeddi-com/ heyeddi-ci-skills --skill heyeddi-ci-config安装后在 Claude Code 中输入/heyeddi-ci-config确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
manifest.jsoncontext/ANTI_PATTERNS.mdEXAMPLES.mdPROSE_ANTI_SLOP.mdVOCABULARY.mdreference/policy-feed.mdscripts/_skill_cli.pyinspect_repo.pyload_policy_contract.pyREADME.md详细介绍
HeyEddi CI 配置
为 HeyEddi Reviewer / 可选 Spot runners 编写正确的 eddi-ci.yaml。不要凭记忆编造配置项。
安全
- 当前轮次中未获得授权合并前,绝不合并 PR;绝不写入
auto_merge - 计费配置项和密封的 Spot
pipeline作业必须明确选择启用 - 编写配置前始终先运行
load_policy_contract - Spot 已推出——如果工作区已获得授权,作业就可以运行;没有 Check/Spot 证据(
@heyeddi-ci-runners)时,绝不声称作业已经运行 - 如果
.github/workflows/已负责 CI,优先使用 GHA + 工作区 runner 模式,而非密封的pipeline:;保留pipeline: {},避免重复运行
知识规则(强制)
技能包不包含完整的配置项表。每次运行时:
- 运行
load_policy_contract(或python …/scripts/load_policy_contract.py)。 - 将返回的
guide、knobs、rules和minimal_example视为权威信息。 - 叙述性内容优先参考人工编写的文档:
docs_url(默认值为 https://ci.heyeddi.com/docs#policy)。 - 阅读
context/ANTI_PATTERNS.md,了解不会过时的长期安全规则。
策略源(生产环境):https://cihook.heyeddi.com/api/public/eddi-ci-policy
脚本内的回退顺序:本地 HeyEddi CI 检出版本 → HEYEDDI_CI_POLICY_URL / 生产 API → 文档页面文本。
决策门槛:是否添加文件(强制)
缺少 eddi-ci.yaml 并不是缺陷。系统已应用安全默认值(关闭 runners,关闭 on_ci_failure)。在编写任何内容之前先做出决定:
仅当至少满足以下一项时,才编写 / 创建 eddi-ci.yaml
- 用户明确要求创建、添加或配置
eddi-ci.yaml inspect_repo报告heyeddi_product.uses_heyeddi_product: true——该仓库已使用 HeyEddi 产品(参见下方信号)。此时添加一个仅用于 Reviewer 的安全文件(关闭计费配置项,设置pipeline: {}),除非用户拒绝。- 用户希望设置超出默认值的 Reviewer 策略(例如
allow_external_prs、提高validation_max_attempts、记录团队规则) - 用户希望使用密封的 Spot
pipeline:作业(无 GHA / 最少使用 GHA,或运行小众检查),并接受使用真实命令和路径筛选器——参见@heyeddi-ci-runners - 用户希望在 Spot 上运行 GHA——仍然只编写 Reviewer YAML(
pipeline: {}),并向用户介绍HEYEDDI_RUNS_ON钩子和工作区 Runners 模式(@heyeddi-ci-runners) - 用户正在按照 HeyEddi PR CTA 操作,并且确认现在要进行配置(仅有 CTA ≠ 自动编写;如果意图不明确,只询问一次)
HeyEddi 产品信号(来自 inspect_repo → heyeddi_product.evidence):
- 存在
.heyeddi/工作区 - 已安装
.agents/skills/heyeddi-* skills-lock.json固定了HeyEddi-com/heyeddi-skills(旧版HeyEddi-com/skills也计入)PRODUCT.md/.heyeddi/product.md/README.md/ 软件包标识中提到了 HeyEddi
以下情况不要创建文件
- 唯一信号是“缺少文件”,且没有 HeyEddi 产品标记
- 用户只希望进行常规代码审查,且从未选择启用配置 / 这不是 HeyEddi 项目
- 解释默认设置已安全后,用户拒绝
- 为了填写
pipeline,你必须编造测试命令或路径筛选器(仍可添加不含 pipeline 作业的 Reviewer-only YAML)
如果不添加
简要说明:HeyEddi 已使用安全默认设置运行;用户之后需要策略或 runners 时,可以调用 @heyeddi-ci-config。停止。不要编写文件。
如果更新现有文件
仅在用户要求更改策略 / runners,或需要修复用户已提交的无效 YAML 时才进行编辑。不要主动“改进”未修改且有效的配置。
何时使用此技能
- 满足上述任一“编写 / 创建”条件时
- 用户询问
eddi-ci.yaml的工作方式时(加载契约并进行说明;只有用户随后选择启用时才创建)
何时不使用
不要仅仅因为文件缺失就擅自开始编写配置。
说明
- 运行
inspect_repo并应用决策门(包括heyeddi_product)。如果不添加,请说明原因并停止。 - 如果因检测到 HeyEddi 产品而添加:默认使用安全的纯 Reviewer YAML;启用封闭式
pipeline或on_ci_failure前先询问。 - 如果因其他原因添加或更新:确认意图——仅 Reviewer 策略、GHA-on-Spot、封闭式
pipeline,还是两者兼有(Reviewer + 封闭式)。 - 通过
load_policy_contract加载实时契约。 - 如果存在
.github/workflows/且用户希望在 Spot 上运行 CI:保留pipeline: {},确保存在HEYEDDI_RUNS_ON钩子,并将模式设置留给@heyeddi-ci-runners/ 工作区 Settings。 - 如果封闭式
pipeline在范围内,完成仓库检查,确认语言和实际测试命令。没有证据时,不要臆造pytest/npm test。 - 根据契约确认计费选项:除非用户明确选择启用,否则保持
ai_review.on_ci_failure为 false;仅当用户需要封闭式运行器、命令已知且不会重复 GHA 时,才添加pipeline作业。 - 在仓库根目录写入
eddi-ci.yaml,且仅使用契约选项中的键。 - 除非用户要求封闭式运行器且路径筛选条件已知,否则优先使用空的
pipeline: {}。 - 告知用户提交并推送;HeyEddi App 会在 PR 上的文件变更时对其进行检查。之后的执行声明必须有 Check 证据。
工具
| 工具 | 用途 |
|---|---|
load_policy_contract | 获取实时选项、指南、规则和示例 |
inspect_repo | 检测 HeyEddi 产品、语言和可能的测试命令 |
示例
仅 Reviewer(安全 / GHA 仓库)
加载契约后,使用契约中的 minimal_example(或等效内容),关闭计费选项并设置 pipeline: {}。
用户要求使用封闭式运行器(无 GHA)
仅当 inspect_repo 显示实际命令和路径前缀后,才添加带有 filter.paths 的 pipeline 作业。未经明确选择,绝不启用 on_ci_failure。绝不镜像现有工作流中的作业。
备注
- 未知顶层键会导致架构校验失败(
extra=forbid)。 - YAML 无效时,App 会忽略该文件并使用安全默认值。
- 结构示例见
context/EXAMPLES.md;务必通过load_policy_contract重新确认选项。 - GHA 超出限制与封闭式 pipeline 的取舍:
@heyeddi-ci-runners。