SuperAPI AI 工具集

bugfix

编程与开发

查看项目

更新于 10-15 08:17

技能介绍

用途

bugfix 是一个自主端到端缺陷修复技能,用于处理缺陷报告、失败测试、堆栈跟踪或 CI 失败等需要诊断与修复的任务。其目标是:从证据出发诊断问题、定位根因、实施最小化修复、验证并提交。

主要能力

  • 自主诊断:不轻易向用户索要更多信息,除非缺陷描述完全含糊不清,否则应使用工具自行查找。
  • 根因分类:在写任何代码前先判定问题类型,并采用对应修复方式。
    • 代码缺陷:逻辑错误、错误查询、错误比较——修复实现。
    • 测试缺陷:期望与文档化契约矛盾——修复测试并解释为何原测试有误。
    • Mock 接线:未遵循 mockReset: true 模式、Mock 状态陈旧——使用 CLAUDE.md 中的正确 Mock 模式。
    • 类型错误:TypeScript 编译失败——修复类型,而非测试。
    • 导入错误:包路径错误、缺少导出——修复导入解析。
  • 若属于 Mock 接线问题,需先阅读 CLAUDE.md 中的 Mock 模式,其中包含三种不同模式(转发、对象袋、基于计数器的序列)。
  • 证据优先思维:先收集再假设。
    • 运行失败测试,查看确切错误输出而非仅看描述。
    • 阅读失败测试,理解其期望。
    • 阅读被测源码。
    • 使用 git log --oneline -10 -- <file> 查看该文件近期是否被改动。
    • 对于运行时错误:检查日志、路由/插件/服务代码。
    • 在写代码前明确陈述假设,例如:“测试失败是因为 X,由 Y 导致。”

使用方式

技能提供以下脚本:

bash scripts/collect-bugfix-context.sh apps/api/src/tests/routes/auth.test.ts
bash scripts/run-targeted-test.sh apps/api/src/tests/routes/auth.test.ts
bash scripts/run-targeted-test.sh apps/api/src/tests/routes/auth.test.ts "returns 500"

参数 $ARGUMENTS 可接受:错误消息、失败测试路径、CI 日志 URL 或复现步骤。若为空,则询问错误或失败测试名称。

验证顺序:

  1. 运行特定失败测试——必须通过。
  2. 运行完整工作区测试套件——不得出现新失败。
  3. 对受影响工作区运行类型检查(npx tsc --noEmit)。
  4. 使用 git diff --name-only 验证每个改动文件都与该缺陷相关;无关改动应还原。

提交格式:

fix(scope): what was broken and how it was fixed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

适用场景

  • 收到缺陷报告、失败测试、堆栈跟踪或 CI 失败,需要诊断与修复。
  • 需要自主定位根因并实施最小化修复的自动化流程。

限制与约束

  • 除非缺陷描述完全含糊不清,否则绝不向用户索要更多信息。
  • 修复缺陷时绝不重构无关代码——范围蔓延会破坏回归隔离。
  • 修复目标缺陷时绝不顺手修复注意到的其他缺陷——应新建任务。
  • 绝不使用 git add -A——只暂存自己改动的文件。
  • 修复后绝不跳过运行完整工作区测试套件——目标测试通过不代表没有回归。
  • 在受影响工作区类型检查通过前绝不提交。

中止条件(停下并询问用户):

  • 缺陷位于安全敏感区域(认证、RBAC、IDOR)——先确认修复方案。
  • 修复需要改动超过 5 个文件——可能是架构问题。
  • 根因需要变更整个测试套件的 Mock 策略。