SuperAPI AI 工具集

no-comments

编程与开发

查看项目

更新于 11-03 01:35

技能介绍

用途

no-comments 是一个针对 Remotion 代码库的注释清理技能,目标是让自研代码通过命名、类型和结构自解释,只保留阅读者无法从代码中获知的外部系统信息。代码中若隐藏真实意外情况,优先考虑更清晰的命名、提取变量或类型;只有在改动是琐碎、局部的情况下才调整代码,否则删除注释并在报告中指出该意外。

作用范围

使用用户指定的文件或 diff;否则使用当前相对 main 的 diff,包括已暂存、未暂存和未跟踪的改动:

git diff main...HEAD git diff HEAD git ls-files --others --exclude-standard

只处理范围内新增或修改行上的注释,不扫同一文件中未改动的代码。

保留内容

当注释涉及外部系统且仍然准确时保留:

  • 浏览器行为:Chrome/Safari/Firefox 的怪异行为、WebCodecs、Canvas、CSS、布局、事件顺序、自动播放策略、关联的缺陷跟踪链接。
  • 媒体与工具链:FFmpeg、编解码器、容器、Mediabunny、Chromium 标志、Lambda/Cloud Run 限制、Node.js、Bun、TypeScript 编译器、打包器行为。
  • 第三方库与 API:为何以特殊方式调用、上游 issue 链接。
  • 操作系统、硬件与规范限制:文件系统、GPU、Linux/macOS/Windows 差异、RFC、W3C 规范。

同时保留:

  • 机器读取指令:eslint-disable*、@ts-expect-error、@ts-ignore、/// <reference>、'use client'、istanbul ignore、prettier-ignore、biome-ignore、@vitest-environment、shebang、许可证头。但仍需检查每个抑制是否必要,删除已失效的。
  • 公开导出 API 的 JSDoc(会显示在编辑器提示中)。
  • @deprecated 标签(参见 deprecate-api 技能)。
  • 文档、MDX 和展示给用户的代码片段中的注释。

删除内容

  • 叙述随后几行做什么的注释(如 // Get the frame、// Loop over tracks)。
  • 重复名称、类型或参数的注释。
  • 解释自身架构、数据流或设计选择的注释。
  • 为自身 bug 的规避方案辩护的注释;应在范围内修复根因,或保留无注释的代码。
  • 关于自身代码的 IMPORTANT、do not remove、keep in sync with X、talk to Y first 类便签。若约束真实存在,可提议用类型、共享常量、测试或 lint 编码该约束;无论如何删除注释。
  • 被注释掉的代码、无关联 issue 的 TODO/FIXME、变更日志式注释(如 // Added in v4.0.x)、分节分隔线。
  • 混合注释:只保留外部系统那一句,删除其余部分。

判断方法

对每条注释判断保留或删除。不确定是否涉及外部系统时,可问:如果重写我们的代码,这条注释是否仍然成立?成立则保留;只有依赖我们某种写法才成立,则删除。

执行步骤

  1. 收集范围内所有注释(//、/* /、JSDoc、JSX {/ */}、shell/YAML 中的 #)。
  2. 按上述规则分类为保留或删除。
  3. 执行删除,不改变行为;移除会破坏格式的多余空行。
  4. 对涉及的包运行格式化和 lint:

bunx turbo run lint --filter='<package-name>'

  1. 报告:删除的注释数量、保留注释及一行理由、可提议编码的约束、值得后续跟进的代码意外。

限制

该技能聚焦注释清理,不改变代码行为;涉及代码结构调整时仅限琐碎的本地改动。资料未提供其他平台支持、收费或价格信息。