关于 quality-gate
面向 egregore 工作项的质量阶段编排技能,用于自审和拉取请求审查。它按步骤分派规范检查与对应技能,并记录结论,也可发布 GitHub 审查。
主要功能
- 01按质量步骤分派检查
- 02运行对应规范检查
- 03调用审查与优化技能
- 04支持自审和 PR 审查
- 05记录结论并发布 PR 审查
适用场景
- 01提交 PR 前检查变更
- 02审查其他 Agent 的拉取请求
- 03运行指定质量步骤
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill quality-gate安装后在 Claude Code 中输入/quality-gate确认已加载。
详细介绍
质量门禁
何时使用
- 对 egregore 工作项运行质量检查
- 创建 PR 前进行自我审查
- 以 PR 审查模式审查其他 Agent 的 PR
何时不使用
- 在 egregore 流水线之外进行手动代码审查
- 一次性 lint 或格式检查(直接使用
make lint)
编排 egregore 流水线的 QUALITY 阶段。 每个质量步骤都会运行 codex 中的规范检查, 并调用映射的技能。
路由表
| 步骤 | 规范 | 技能 | 模式 |
|---|---|---|---|
| 代码审查 | C1,C2,C3,C4,C5 | pensive:unified-review | self, pr |
| 精简 | - | conserve:unbloat | self |
| 代码优化 | - | pensive:code-refinement | self |
| 更新测试 | - | sanctum:update-tests | self |
| 更新文档 | C5 | sanctum:update-docs, scribe:slop-detector | self |
输入
编排器调用此技能时会提供:
- step:要运行的质量步骤(例如“code-review”)
- mode:“self-review”或“pr-review”
- work_item_id:清单中的工作项 ID
- branch:包含更改的 git 分支
- pr_number:(仅限 PR 审查模式)PR 编号
自我审查工作流
当 mode 为“self-review”时:
- 获取更改的文件:
git diff --name-only main...HEAD - 从
conventions/codex.yml加载规范 - 筛选映射到当前步骤的规范
- 通过
conventions.py运行规范检查 - 对更改的文件调用映射的技能
- 汇总所有发现
- 计算评定结果
自动修复循环
如果存在阻塞性发现:
- 尝试修复每项发现(取决于技能)
- 将修复提交到工作项分支
- 重新运行规范检查
- 如果尝试 3 次后仍有阻塞项,评定结果为 “fix-required”
评定结果计算
if no findings:
verdict = "pass"
elif all findings are severity "warning":
verdict = "pass-with-warnings"
elif blocking findings remain after auto-fix:
verdict = "fix-required"
将评定结果记录在清单决策中:
{
"step": "code-review",
"chose": "pass-with-warnings",
"why": "2 warnings (C4: noqa in hooks), 0 blocking"
}
完成完整性(可选,默认关闭)
默认情况下,循环会无限期自主运行:系统会记录
fix-required 判定,但仅凭该判定不会阻止事项继续推进。这保留了以往无需人工干预的运行方式。
当 config.pipeline.completion_integrity 为 true 时,判定会成为一道 Agent 无法巧言绕过的关卡:
- 系统会将
fix-required判定作为步骤失败报告给编排器,因此在存在未解决的阻塞问题时,事项无法推进到交付阶段。系统会在原地重试;达到max_attempts上限后,事项会标记为failed,并提醒监督者(绝不会悄然标记为completed)。 - 无论
auto_merge如何设置,合并都会暂缓,等待人工审查:PR 会准备就绪,但保持开放状态。
这样一来,“完成”由验证器(规范检查加上已映射的审查技能)来判定,而不是由 Agent 自说自话。这一原则源自已发布的 Agent harness,KbWen/agentic-os 对此表述得最为贴切:Agent“仍然可以偷工减料,只是不能在它无法控制的检查环节上蒙混过关”。这些 harness 中反复出现的模式包括:
| 模式 | 作用 | 来源 |
|---|---|---|
| 将验证器关卡作为完成判定依据 | 将“完成”绑定到 Agent 无法伪造的测试、lint 或结果哈希 | Aider、snarktank/ralph、gaasher |
| 完成承诺 + 最大迭代次数上限 | 字符串匹配“完成”并不足够;还需配合迭代上限和手动中止 | anthropics ralph-wiggum |
| Agent 无法控制的证据关卡 | 通过钩子或 CI 强制执行凭据扫描、测试执行验证和阶段日志解析 | KbWen/agentic-os |
| 保留改进 / 回退退步的账本 | 为每项更改评分,回退退步,并记录到仅追加的账本以供审查 | gaasher/Agent-Loop-Skills |
| 可读性锚点 | 持久化的当前状态文件或仓库映射文件,让人工可以重新进入循环 | Aider 仓库映射、agentic-os |
| 人工观察者检查点 | 观察早期迭代,监控差异,并将循环留给已定义的问题 | anthropics、ghuntley |
更多理由:应先让非法状态无法表示,再对其进行防护,因为隐藏不可能情况的回退机制会导致静默损坏,而不是可定位的崩溃。Armin Ronacher,《The Coming Loop》(2026),https://lucumr.pocoo.org/2026/6/23/the-coming-loop/。该标志默认关闭;启用它意味着有意选择让人工担任最终裁决者。
PR 审查工作流
当模式为 "pr-review" 时:
- 获取 PR 差异:
gh pr diff <number> --name-only - 加载规范,并筛选出代码审查步骤
- 对已更改的文件运行规范检查
- 对差异调用
pensive:unified-review - 收集所有发现
发布审查
将发现映射到 GitHub 审查:
- 没有发现:使用
gh apiPOST 审查, 事件为 "APPROVE" - 仅有警告:POST 审查,事件为 "COMMENT", 将发现作为行内评论
- 存在阻塞问题:POST 审查,事件为 "REQUEST_CHANGES",将阻塞问题作为行内评论, 并添加 "must fix" 前缀
每项发现的评论格式:
[egregore:{convention_id}] {message}
Convention: {convention_name}
Severity: {severity}
质量配置
工作项可以包含 quality_config 字段:
{
"skip": ["unbloat"],
"only": ["code-review", "update-docs"]
}
skip:要跳过的步骤列表(运行其他所有步骤)only:要运行的步骤列表(跳过其他所有步骤)- 如果两者都已设置,则以
only为准 - 如果两者都未设置,则运行所有步骤(默认)
按步骤筛选规范
并非所有规范都会在每个步骤中运行。上方的路由 表定义了哪些规范适用于哪些步骤。质量关卡会在运行检查前, 相应地筛选已加载的 codex。
退出条件
- 已执行所有适用的规范检查
- 已调用所有映射的技能
- 已计算判定并记录到清单中
- 对于 PR 审查:已发布 GitHub 审查