mcpField
T
tech-debt

tech-debt

github.com/secondsky开发24092 次安装5 周前更新
代码仓库

关于 tech-debt

tech-debt 是一项用于代码变更与维护规划的技术债务技能。它根据任务是否正在修改代码,选择预防新增债务或盘点并排序现有债务。

主要功能

  1. 01按任务状态选择处理模式
  2. 02变更期间清理技术债务
  3. 03分类并排序现有债务
  4. 04将盘点结果逐项带入实施

适用场景

  1. 01实现功能或修复时清理代码
  2. 02审查是否保留兼容路径
  3. 03审计代码库中的技术债务
  4. 04制定重构优先级与计划

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/secondsky/claude-skills --skill tech-debt

安装后在 Claude Code 中输入/tech-debt确认已加载。

附带文件references/prevent-during-change.mdreferences/triage-backlog.md

详细介绍

技术债

概览

本文件中的路由器将技术债的两种互补立场拆分开来:

  • 模式 A — 预防: 在你进行更改时,将代码调整到预期的最终状态。删除已失效的兼容路径,而不是保留它。
  • 模式 B — 分类处理: 在你评估现有代码时,对技术债进行分类、评分和优先级排序,制定修复计划。

它们适用于技术债生命周期中的不同阶段:编写时预防,规划时分类处理。分类处理的结果会逐项反馈到预防中。

何时使用

以下情况使用模式 A:

  • 你正在实现、收尾或审查某项功能、修复或重构,并且用户希望更改整洁明了。
  • 你正准备保留一个回退方案、别名、模式标志或包装器,以防万一——先确认是否有调用方。
  • 用户说“把这件事做好”“不要打补丁凑合”“零技术债”或“别留下烂摊子”。

以下情况使用模式 B:

  • 用户要求进行技术债审计、代码健康度审查,或询问“我们应该重构什么?”
  • 用户希望为维护或重构积压事项、路线图确定优先级。
  • 技术债不断累积,没人确定应该先修复什么。

以下情况不要使用:

  • 单个明显的局部问题,且没有结构性影响——直接修复,不要调用技术债框架。
  • 风格或格式方面的小问题——让他们使用代码检查器或格式化工具,而不是这里。
  • 绿地项目,且尚不清楚预期的最终状态(模式 A 无法针对尚未定义的目标)。

此技能的工作方式——路由器

此技能是一个路由器。 本文件保持精简,只负责协调。它会选择一种模式(或 A→B→A 链),然后你加载匹配的 references/*.md 并遵循其中的内容。 两份参考文档包含实际步骤、规则和示例。

绝不要将参考文档正文内联到此处。 如果某个分支的内容超过 2–3 行摘要,就应该放在 references/ 中。选择哪个分支的决策应留在此处。

原因:保持路由器精简,便于快速浏览;只有确认模式后才加载分支正文,可以避免在错误分支上浪费上下文。

路由

判断标准——任务的一个布尔属性:用户现在是否正在主动进行更改(正在编写或编辑代码,或已有差异)?yes → 模式 A;no → 模式 B。链式规则:分类出的条目一旦开始实施,就针对该更改切换到模式 A。

digraph tech_debt_route {
  rankdir=TB;
  node [shape=box];

  start  [label="User task touches tech debt" shape=oval];
  q      [label="Actively making a change\n(writing/editing code, has a diff)?" shape=diamond];
  a      [label="MODE A — PREVENT\nRework THIS change to the\nintended end state"];
  b      [label="MODE B — TRIAGE\nCategorize + score the\nwhole codebase's debt"];
  loadA  [label="Load references/prevent-during-change.md"];
  loadB  [label="Load references/triage-backlog.md"];
  chain  [label="Implementing a triaged item?\nSwitch to Mode A for that change" shape=diamond];

  start -> q;
  q -> a [label="yes"];
  q -> b [label="no — assessing existing code"];
  a -> loadA;
  b -> loadB;
  loadB -> chain;
  chain -> loadA [label="yes, per item"];
}
路由表
如果用户正在……模式加载
实现或收尾某项功能、修复或重构,并希望更改整洁明了Areferences/prevent-during-change.md
准备保留一个回退方案、别名或标志,以防万一Areferences/prevent-during-change.md
要求进行技术债审计/询问“我们应该重构什么”/要求审查代码健康度Breferences/triage-backlog.md
要求为维护或重构积压事项确定优先级Breferences/triage-backlog.md
修复分类处理中识别出的条目A(逐项处理)references/prevent-during-change.md

模式 A — 预防(更改期间)

从预期的最终状态出发重新设计更改,而不是沿着当前补丁的形成路径优化。着眼于应该存在的代码;删除失效的兼容路径,而不是改进它们。优先选择一个清晰的组件或流程,而不是模式标志。

加载 references/prevent-during-change.md 并遵循其中的内容。

模式 B — 分类处理(审计积压事项)

系统地识别、分类并确定代码库中现有技术债的优先级。生成带有工作量估算的优先级列表,以及可与功能开发并行推进的分阶段修复计划。

加载 references/triage-backlog.md 并遵循其中的内容。

总结

更改代码时预防新技术债;规划修复事项时分类处理旧技术债。

评论

支持 Markdown