SuperAPI AI 工具集

resolve-fixme

编程与开发

查看项目

更新于 10-16 04:49

技能介绍

Resolve FIXME Comments

用途

用于在代码库中查找所有 FIXME 注释,并完整实现这些注释所描述的工作。适用于用户要求修复、解决或处理 FIXME 注释的场景。

工作流程

  1. 运行发现脚本

从仓库根目录执行脚本,收集所有 FIXME 及其上下文:

bash .forge/skills/resolve-fixme/scripts/find-fixme.sh [PATH]

PATH 可选;省略则搜索整个工作目录。

脚本会为每个 FIXME 打印前 2 行、后 5 行上下文,以及确切的文件路径和行号。

跳过 .git/、target/、node_modules/ 和 vendor/。

需要 rg(ripgrep)或 grep + python3。

  1. 将每个 FIXME 展开为完整指令

不要只依赖发现输出。

对每个命中项:

打开文件并阅读报告行附近的内容。

将 FIXME 扩展为包含整个注释块。

将所有连续的相关注释行视为同一条指令的一部分。

重要:

FIXME 可能是多行的。包含 FIXME 的那一行通常只是开头。

真正的指令可能延续在后续注释行中,并可能包含实际的实现细节。

在阅读完整注释块之前,不要解释或修改 FIXME。

对每个展开后的 FIXME,记录:

文件路径

完整注释块的起始行与结束行

该 FIXME 所要求内容的简短摘要

  1. 跨文件合并相关 FIXME

在编辑代码之前,先一起审阅所有展开后的 FIXME。

许多 FIXME 描述的是同一底层任务在不同文件中的不同侧面。例如:

一个文件可能描述需要引入的领域类型

另一个可能描述一旦该类型存在就应消失的参数

另一个可能描述完成同一重构所需的服务、仓库或 UI 更新

将这类 FIXME 归组为一个实现任务。

分组时,寻找:

共享词汇

对同一类型、服务、仓库、参数或功能的引用

明确描述不同文件中前置与后续变更的注释

只有放在一起阅读才有意义的注释

对每个分组,产出一份统一的任务理解:

涉及的所有文件和行范围

该分组需要完成的完整实现

变更应采用的顺序

不要孤立地逐个文件解决分组内的 FIXME。要一致地解决整个任务。

  1. 完整实现每个 FIXME

每个 FIXME 都必须被解决。没有跳过路径。

逐个分组任务推进,直到底层实现完成:

阅读理解设计所需的任何额外文件。

创建或修改所需的代码、类型、服务、仓库、测试、配置或模板。

将变更传播到分组中所有受影响的文件。

只有在所描述的工作真正实现之后,才移除对应的 FIXME 注释。

关键规则:除非底层实现已完成,否则绝不要删除或改写 FIXME 注释。该注释是所需工作的记录。在完成该工作之前移除它属于失败。

如果 FIXME 暗示更大的重构,就执行该重构。如果它需要创建新的支撑代码,就创建它。如果注释明确暗示其他地方还有后续工作,不要停在第一个局部变更上。

  1. 验证

解决所有 FIXME 之后:

运行项目的标准验证步骤:

cargo insta test --accept

重新运行发现脚本:

bash .forge/skills/resolve-fixme/scripts/find-fixme.sh [PATH]

确认目标范围内不再残留 FIXME 注释。

说明

优先采用针对性修复,但当多个 FIXME 描述同一更大任务时,不要缩小工作范围。

当意图不明确时,先广泛阅读再编辑。

一致性比局部性更重要:分组后的 FIXME 应导向一份连贯的实现。

任务不是清理注释,而是完成这些注释所指向的实现。