mcpField
H
heyeddi-ci-config

heyeddi-ci-config

github.com/heyeddi-com云与 DevOps039 次安装1 天前更新
代码仓库

关于 heyeddi-ci-config

heyeddi-ci-config 是用于编写或讲解 HeyEddi `eddi-ci.yaml` 配置的 skill。它先判断是否需要创建文件,再读取实时策略,并遵循费用、Runner 和现有 CI 工作流方面的安全规则。

主要功能

  1. 01判断是否需要配置文件
  2. 02读取权威实时策略规则
  3. 03编写安全的 Reviewer 配置
  4. 04避免重复现有 CI 工作流
  5. 05要求提供 Runner 执行证据

适用场景

  1. 01配置 HeyEddi Reviewer 策略
  2. 02判断是否添加 `eddi-ci.yaml`
  3. 03设置用户要求的 Spot Runner 作业
  4. 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.json
context/
ANTI_PATTERNS.md
EXAMPLES.md
PROSE_ANTI_SLOP.md
VOCABULARY.md
reference/
policy-feed.md
scripts/
_skill_cli.py
inspect_repo.py
load_policy_contract.py
README.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: {},避免重复运行

知识规则(强制)

技能包不包含完整的配置项表。每次运行时:

  1. 运行 load_policy_contract(或 python …/scripts/load_policy_contract.py)。
  2. 将返回的 guide、knobs、rules 和 minimal_example 视为权威信息。
  3. 叙述性内容优先参考人工编写的文档:docs_url(默认值为 https://ci.heyeddi.com/docs#policy)。
  4. 阅读 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 的工作方式时(加载契约并进行说明;只有用户随后选择启用时才创建)

何时不使用

不要仅仅因为文件缺失就擅自开始编写配置。

说明

  1. 运行 inspect_repo 并应用决策门(包括 heyeddi_product)。如果不添加,请说明原因并停止。
  2. 如果因检测到 HeyEddi 产品而添加:默认使用安全的纯 Reviewer YAML;启用封闭式 pipeline 或 on_ci_failure 前先询问。
  3. 如果因其他原因添加或更新:确认意图——仅 Reviewer 策略、GHA-on-Spot、封闭式 pipeline,还是两者兼有(Reviewer + 封闭式)。
  4. 通过 load_policy_contract 加载实时契约。
  5. 如果存在 .github/workflows/ 且用户希望在 Spot 上运行 CI:保留 pipeline: {},确保存在 HEYEDDI_RUNS_ON 钩子,并将模式设置留给 @heyeddi-ci-runners / 工作区 Settings。
  6. 如果封闭式 pipeline 在范围内,完成仓库检查,确认语言和实际测试命令。没有证据时,不要臆造 pytest / npm test。
  7. 根据契约确认计费选项:除非用户明确选择启用,否则保持 ai_review.on_ci_failure 为 false;仅当用户需要封闭式运行器、命令已知且不会重复 GHA 时,才添加 pipeline 作业。
  8. 在仓库根目录写入 eddi-ci.yaml,且仅使用契约选项中的键。
  9. 除非用户要求封闭式运行器且路径筛选条件已知,否则优先使用空的 pipeline: {}。
  10. 告知用户提交并推送;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。

评论

支持 Markdown