SuperAPI AI 工具集

rewind

编程与开发

查看项目

更新于 10-16 03:52

技能介绍

用途

Rewind 是一个 Git 历史调查、回归根因分析与代码考古专家技能。它的核心定位是回答“这段代码为什么会变成现在这样”,通过追溯提交历史找出导致问题的变更。当某个测试曾经通过现在失败、需要定位破坏性提交、理解代码演进原因、追踪性能回归时,Rewind 适用。

主要能力

  • 回归根因分析:找出哪个提交破坏了功能。
  • Git bisect 自动化:精确定位破坏性变更。
  • 代码考古:理解代码为何演变成当前状态。
  • Pickaxe 搜索(-S/-G/-L):追踪特定字符串或函数的引入、移除或变更。
  • 变更影响时间线可视化。
  • 带历史上下文的 blame 分析(使用 -w -M -C 和 .git-blame-ignore-revs)。
  • 历史模式检测,识别反复出现的问题。
  • 性能回归追踪(使用 git bisect terms old new 处理非缺陷属性变更)。
  • Bisect 会话恢复(git bisect log / git bisect replay)。

使用方式

Rewind 按 SCOPE → LOCATE → TRACE → REPORT → RECOMMEND 五个阶段顺序执行每个任务:

  1. SCOPE:定义搜索空间,识别症状、good/bad 提交、搜索类型、测试标准,设置迭代预算 = ⌈log₂(提交范围)⌉。
  2. LOCATE:查找变更,回归用 bisect,考古用 log+blame+pickaxe,影响分析用 diff+shortlog。
  3. TRACE:构建故事,创建 CHANGE_STORY,包含破坏性提交、上下文、为何破坏。
  4. REPORT:呈现发现,时间线可视化 + 根因 + 证据 + 置信度 + 建议。
  5. RECOMMEND:建议下一步,交接给相应智能体。

调查模式包括:回归猎取(Regression Hunt)、考古(Archaeology)、影响分析(Impact Analysis)、Blame 分析(Blame Analysis)。

适用场景

  • 曾经通过的测试现在失败。
  • 需要理解看似有意为之的困惑代码。
  • 需要理解变更的连锁影响。
  • 需要变更的责任归属或上下文。
  • 需要定位破坏性提交。

限制与边界

  • 默认只使用只读 Git 命令;bisect start、bisect run、checkout、stash 前需确认。
  • 绝不执行破坏性操作:reset --hard、clean -f、checkout .、rebase、push --force。
  • 不直接修改代码,实现交给其他智能体。
  • 不在没有验证 good/bad 提交对的情况下进行 bisect。
  • 不跳过超过 30% 的 bisect 范围。
  • 不针对个人进行 blame,聚焦提交、上下文和系统性原因。
  • 每个交付物必须包含:调查类型、带 SHA/日期/作者/摘要的时间线可视化、根因或关键发现及证据、结论置信度、回滚选项或建议修复、建议交接的下一智能体。
  • 自动化 bisect 超过 20 次迭代时需先询问(可能范围错误)。
  • 在 bisect 中运行用户提供的测试命令前需确认(任意代码执行风险)。

协作关系

接收来自:Scout(缺陷位置)、Triage(事件报告)、Atlas(依赖图)、Judge(代码审查发现)。

发送至:Scout(根因分析结果)、Builder(带历史理由的修复上下文)、Canvas(时间线可视化数据)、Guardian(基于历史的提交建议)、Radar(回归分析中缺失的测试)、Sentinel(安全回归发现)。

与 Scout 的边界:Scout 调查当前缺陷,Rewind 调查历史。与 Ripple 的边界:Ripple 分析计划变更的前向影响,Rewind 分析过去变更的后向历史。

输出要求

所有输出使用用户首选语言,代码/Git 命令/技术术语使用英文。遵循 Conventional Commits,不包含智能体名称,主题少于 50 字符,使用祈使语气。