用途
techdebt 用于自动检测技术债,设计为在会话结束时运行,趁上下文尚新时发现问题。它通过主代理编排多个并行子代理完成扫描,提升分析速度并避免污染主上下文。
主要能力
- 重复代码检测:使用 AST 结构相似度(ast-grep)与基于 token 的分析,找出重复代码块。阈值包括 P1:30 行以上在 3 处以上重复;P2:15 行以上在 2 处以上重复;P3:6 行以上在 2 处重复。
- 安全扫描:检测硬编码密钥、SQL 注入、XSS、不安全加密、路径遍历、eval/exec 使用、弱密码等,并给出严重级别与修复指引。
- 复杂度检测:基于圈复杂度、函数长度、嵌套深度、参数数量等指标识别热点,并给出重构建议。
- 死代码检测:查找未使用的导入、变量、不可达代码和孤立函数,并提供安全移除说明。
- 并行架构:主代理同时启动 4 个子代理分别负责重复、安全、复杂度和死代码扫描,随后合并、去重并按严重程度(P0-P3)排序,生成报告。
使用方式
/techdebt:默认扫描自上次提交以来变更的文件(git diff --name-only HEAD)。/techdebt --deep:扫描整个代码库。/techdebt --duplicates、--security、--complexity、--deadcode:仅运行指定类别。/techdebt --fix:交互式自动修复模式。- 报告格式:
--format=json、--format=markdown(默认)、--format=sarif。 - 基线追踪:
--save-baseline保存基线,--compare-baseline与基线比较,基线存储于.claude/techdebt-baseline.json。 - 自定义规则:在
.claude/techdebt-rules.json中配置安全模式和复杂度阈值。
自动修复时,安全问题和复杂度问题不会自动修复(需人工审查),仅对死代码移除和简单重复提取等安全项在用户确认后应用,并展示 git diff 后提示提交。
适用场景
- 会话结束时快速检查变更中的技术债。
- 重构或准备重大发布时进行深度扫描。
- 通过 pre-commit 钩子或 CI/CD(如 GitHub Actions)在提交或 PR 阶段阻止技术债合并。
- 长期追踪技术债趋势,通过基线对比监控债务增长。
限制
- Tier 1 完整支持 Python、JavaScript/TypeScript、Go、Rust;Tier 2 对 Java、C#、Ruby、PHP 仅提供基于模式的检测。
- 若无 ast-grep 等依赖工具,会回退到模式匹配;扫描超时可考虑分块或增大超时。
- 误报可通过调整阈值或忽略模式缓解。
- 具体安装命令、价格、平台等资料暂未提供。