SuperAPI AI 工具集

no-deferred-work

编程与开发

查看项目

更新于 10-16 04:06

技能介绍

用途

No Deferred Work 是一个面向开发过程的规范技能,用于阻止在代码中留下被推迟的工作。它的核心原则是:被推迟的工作就是被遗忘的工作,技术债会不断累积。规则很简单:如果工作需要做,就现在做;如果确实超出当前范围,必须获得明确的推迟许可。

主要能力

该技能明确禁止以下模式:

  • TODO 注释,例如 // TODO: Add error handling、// TODO: Implement validation、// TODO: Write tests
  • FIXME 注释,例如 // FIXME: This is a workaround
  • HACK 注释,例如 // HACK: Temporary solution
  • XXX 注释,例如 // XXX: Need to revisit
  • 占位实现,例如返回 true 的假验证函数、返回 {} as User 的占位数据获取、只打印日志的错误处理
  • 不完整的功能,例如缺少邮箱验证、密码哈希、通知等步骤的用户创建逻辑

它提供了一套决策流程:当实现过程中出现新工作时,先判断该工作是否在当前 issue 范围内。如果在范围内,立即完成;如果不在范围内,再判断能否在不做该工作的情况下完成当前任务。如果能,则为该工作创建单独的 issue;如果不能,则立即完成并扩展当前范围。

使用方式

该技能通过规则和示例指导开发者替换不良做法:

  • 范围内的工作:直接完成。例如把 // TODO: Add format validation 替换为完整的邮箱格式校验逻辑。
  • 范围外的工作:创建 issue。示例使用 gh issue create 命令创建带有标题、描述、验收标准和关联 issue 的正式 issue,然后继续当前工作。
  • 错误处理:完整实现。示例根据错误类型分别抛出面向用户的错误、记录日志或重新抛出未知错误。
  • 测试:直接编写。示例为边界情况编写测试,包括空输入、纯空白输入、最大长度输入和超长输入。

如果确实需要推迟(非常罕见),例外流程要求:先向人类伙伴请求明确许可;获得批准后创建正式的可追踪 issue;在代码中引用该 issue,而不是写 TODO 注释。

该技能还提供违规检测手段:

  • pre-commit 钩子示例,用 git diff --cached 和 grep 检测新增的 TODO、FIXME、HACK、XXX 注释,发现则报错并阻止提交。
  • 代码审查检查,审查者应拒绝包含 TODO 注释、FIXME 注释、占位实现、不完整错误处理或新代码缺少测试的 PR。

提交前检查清单包括:没有 TODO 注释、没有 FIXME 注释、没有 HACK 注释、没有占位实现、错误处理完整、测试完整、任何范围外工作都已创建 issue。

适用场景

该技能适用于所有开发过程,尤其是需要控制技术债、避免功能不完整和防止因推迟错误处理而导致生产问题的团队。它被 issue-driven-development 的第 7 步和 comprehensive-review 所应用,用于检查是否存在被推迟的工作。

限制

资料未提供该技能的具体安装命令、支持的平台、收费方式或价格信息。该技能主要是一套开发规范和检查规则,实际执行依赖开发者的遵守以及可选的 pre-commit 钩子和代码审查流程。