SuperAPI AI 工具集

workflow-green-repo

编程与开发

查看项目

更新于 10-16 09:16

技能介绍

用途

workflow-green-repo 用于把整个代码仓库带到经过验证的绿色基线:从干净状态出发,让每一项已配置的健康门禁(health gate)全部通过。这是一次范围广泛、且已获授权的清理工作——在这里,修复与当前工作无关的既有失败正是目标本身,而不是范围蔓延。

“绿色”的定义是:从零开始全新运行每一项门禁后全部通过,而不是仅凭你碰巧看到的那些失败来判断。因此流程要求:先枚举,再把工作清单外化,批量修复根因,反复重跑直到归零。

主要能力

  • 发现并确认仓库真实的门禁命令,而不是凭假设推断。
  • 捕获基线失败,区分真实回归与偶发不稳定(flake)。
  • 将失败清单持久化到 .cursor/green-repo-state.md,作为跨上下文压缩的事实来源。
  • 按批次修复根因,禁止用跳过、收窄断言、忽略错误等方式伪造通过。
  • 从零重新运行所有门禁,证明绿色,并输出结构化报告。

使用方式

自由度说明

本技能为 MIXED(混合)自由度:每个失败的根因分析为 HIGH 自由度;门禁发现、工作清单、以及“不跳过/不静默”为 LOW 自由度——必须严格照做。

推理要点

  • Authorize(授权)——用户明确要求整个仓库变绿。
  • Enumerate(枚举)——使用真实命令与基线失败,而非假设。
  • Fix-root(修根因)——不跳过、不收窄、不忽略。
  • Prove(证明)——从零全新运行每一项门禁。

示例

  • 授权:用户说“让这个仓库的 CI 通过”。
  • 枚举:pnpm typecheck 在 lib/billing 有 14 个错误;pnpm test 有 3 个日期时区相关失败。
  • 修根因:恢复上次重构丢失的 Invoice 判别字段;修复测试时钟中的时区,而不是 .skip 整个测试套件。
  • 证明:从零重跑 typecheck/lint/test/build → 干净;状态文件中零个未解决失败。

报告前自检

  • 已授权——这不是对无关债务的静默重写。
  • 无假绿——没有 .skip、@ts-ignore 或弱化断言。
  • 全新证明——绿色是一次完整新运行,而非上一批次的结果。
  • 归属正确——某个计划的遗留 → complete-everything;单一模式 → burndown-full;ratchet 作弊 → audit-gate-logic。

何时不要使用(LOW 自由度——不可跳过)

  • 用户要求完成某一个计划或功能 → 使用 complete-everything。
  • 改动是跨文件的一个可搜索模式 → 使用 burndown-full。
  • 没有明确授权触碰既有债务 → 先确认范围;不要静默重写无关代码。

Phase 0 — 确认授权并发现门禁(LOW 自由度——严格照做)

确认用户希望整个仓库变绿,包括早于其工作存在的债务。如果范围更窄,转用 complete-everything。

发现真实门禁命令——绝不假设。阅读 package.json scripts、Makefile、justfile、CI workflows(.github/workflows/*)、AGENTS.md、CLAUDE.md 和 README。识别以下各项的确切命令:typecheck、lint/format、单元/集成测试、e2e(如有)、build。

记录每项门禁所需范围(整个仓库 vs. monorepo 中的按包)以及任何环境前置条件(服务、环境变量、fixtures)。

捕获基线:每项门禁运行一次并记录失败输出。这是工作清单的来源,也能把真实回归与偶发不稳定区分开。

Phase 1 — 枚举完整失败工作清单(LOW 自由度——严格照做)

写入 .cursor/green-repo-state.md 作为持久事实来源,包含:门禁命令、基线捕获日期、失败清单(typecheck/lint/test/build 各条目)、偶发/环境相关(隔离,不假修)、修复过程中发现的(追加后修复)、有意例外(逐条说明理由——需人工签字)、证据。

陈述总数:“N 个失败门禁,跨 M 个区域。全部驱动至绿色。”

将工作清单镜像到原生任务列表以便 UI 可见;上下文压缩后以状态文件为准。

Phase 2 — 批量修复根因(HIGH 自由度)

按小批次处理清单(一个门禁区域或 5–10 个相关失败):

  • 编辑前先阅读失败代码及其意图,理解为何失败——不要用模式匹配来静默。
  • 修复根因。禁止:删除/.skip/.only 测试、收窄断言使其无法失败、用 @ts-ignore/eslint-disable/any 隐藏真实类型错误、吞掉异常的宽泛 try/catch、掩盖回归的全量快照更新。
  • 仅当输出变化正确且有意时才可更新快照或 golden 文件——并说明原因。
  • 每批次后立即在状态文件中勾选条目。
  • 将新浮现的失败追加到“修复过程中发现的”并在本次运行中关闭。
  • 若某失败确实偶发或需要你缺少的真实环境,将其移入隔离/例外区并写明精确原因——绝不伪造通过。真实环境阻塞是唯一的停止条件。
  • 外科手术式编辑:只改导致失败的部分,而非周边文件。为固定修复或匹配仓库既有做法而新增的测试才保留;用于复现的临时脚本不留在仓库中。
  • 批次之间不要暂停询问“继续吗?”,也不要因上下文变长就收尾——这种规模的运行会发生压缩,状态文件会携带工作清单跨越压缩。持续进行直到清单为空;重读状态文件而非依赖记忆。

Phase 3 — 从零证明绿色(LOW 自由度——严格照做)

在每项已配置门禁于全新运行中通过之前,不要报告绿色:

  • Typecheck(整个配置范围)→ 干净。
  • Lint/format → 干净。
  • 单元/集成测试 → 全部通过;隔离项明确列出。
  • E2E(如已配置)→ 通过。
  • Build → 成功。
  • 状态文件:除有理由的例外外,零个未勾选失败。

若仓库有 CI,注明相同门禁是否在那里运行、是否有环境特定项(以便本地绿色可预测 CI 绿色)。

任何新失败或回归 → 加入工作清单并回到 Phase 2。对于已批准计划或大范围改动场景,在最终声明前调用 completion-judge。

Phase 4 — 报告(LOW 自由度——不可跳过)

报告包含:范围、结果(GREEN | GREEN WITH QUARANTINE | BLOCKED)、各门禁命令与结果、已修复数量与区域、隔离/例外(逐条说明理由与跟踪建议)、环境阻塞(仅真实人工/基础设施门禁)。

除非被要求移除,保留 .cursor/green-repo-state.md 作为审计轨迹。如果有助于审查,建议将机械性修复与行为性修复分开提交。

适用场景

  • 用户明确要求让整个仓库通过 CI 或达到绿色基线。
  • 需要一次性清理跨多个区域的既有失败(类型、lint、测试、构建)。
  • 需要可审计的修复轨迹与从零验证的绿色证明。

限制

  • 必须获得明确授权才能触碰既有债务;否则先确认范围。
  • 仅适用于全仓库范围;单一计划或单一模式应改用 complete-everything 或 burndown-full。
  • 禁止任何伪造通过的手段(跳过、忽略、弱化断言、掩盖回归的快照更新)。
  • 真实环境阻塞是唯一停止条件;偶发失败只能隔离并说明原因,不能假修。
  • 关于具体收费、价格、平台支持等信息,资料中暂未提供。