mcpField
B
bloat-detector

bloat-detector

github.com/athola测试与质量343158 次安装1 天前更新
代码仓库

关于 bloat-detector

bloat-detector 是用于分层检查代码库冗余的技能,适合维护、重构或发布前审查。它覆盖代码、AI 生成内容、文档、依赖和 Git 历史,并要求人工批准后才能执行清理。

主要功能

  1. 01三级渐进式扫描
  2. 02检查代码、文档与依赖冗余
  3. 03分析 Git 历史与增长趋势
  4. 04按置信度和优先级排序
  5. 05清理前须经批准

适用场景

  1. 01定期维护时查找冗余
  2. 02重构前识别清理目标
  3. 03发布前检查代码库膨胀
  4. 04审计插件配置与技能文件

安装

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

$npx skills add https://github.com/athola/claude-night-market --skill bloat-detector

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

modules/
ai-generated-bloat.md
code-bloat-patterns.md
documentation-bloat.md
git-history-analysis.md
growth-analysis.md
quick-scan.md
remediation-types.md
static-analysis-integration.md

详细介绍

臃肿检测器

通过渐进式分析层级,系统地检测并消除代码库中的臃肿。

臃肿类别

类别示例
代码死代码、上帝类、熔岩流、重复代码
AI 生成内容Tab 补全臃肿、氛围编程、幻觉依赖
文档冗余、冗长、过时内容、低质内容
依赖项未使用的导入、依赖臃肿、幽灵包
Git 历史过时文件、低变更频率代码、超大单次提交

快速开始

第 1 层:快速扫描(2-5 分钟,无需工具)
/bloat-scan

检测内容:大型文件、过时代码、陈旧的 TODO、注释掉的代码块、基础重复代码

第 2 层:定向分析(10-20 分钟,可选工具)
/bloat-scan --level 2 --focus code   # or docs, deps

新增内容:静态分析(Vulture/Knip)、Git 变更热点、文档相似度

第 3 层:深度审计(30-60 分钟,完整工具链)
/bloat-scan --level 3 --report audit.md

新增内容:跨文件冗余、依赖关系图、可读性指标

适用场景

适用不适用
上下文用量 > 30%正在开发功能
季度维护时效性强的 Bug
发布前清理代码库 < 1000 行
大规模重构前工具不可用(第 2/3 层)

不适用场景

  • 正在开发功能
  • 时效性强的 Bug
  • 代码库 < 1000 行

置信度等级

等级置信度操作
高90-100%可安全移除
中70-89%先检查
低50-69%进一步调查

优先级排序

Priority = (Token_Savings × 0.4) + (Maintenance × 0.3) + (Confidence × 0.2) + (Ease × 0.1)

模块架构

第 1 层(始终可用):

  • 参见 modules/quick-scan.md - 启发式分析,无需工具
  • 参见 modules/git-history-analysis.md - 过时情况、变更频率、氛围编程特征
  • 参见 modules/growth-analysis.md - 增长速度、预测、阈值警报

第 2 层(可选工具):

  • 参见 modules/code-bloat-patterns.md - 反模式(上帝类、熔岩流)
  • 参见 modules/ai-generated-bloat.md - AI 特有模式(Tab 臃肿、幻觉)
  • 参见 modules/documentation-bloat.md - 冗余、可读性、低质内容检测
  • 参见 modules/static-analysis-integration.md - Vulture、Knip

共享模块:

  • 参见 modules/remediation-types.md - DELETE、REFACTOR、CONSOLIDATE、ARCHIVE

生态系统级检测

通过生态系统范围的审计发现跨插件边界或清单配置的模式。

alwaysApply 累积

标记包含 3 个或更多技能且设置了 alwaysApply: true 的插件。 每个始终加载的技能都会将其全文注入每次会话, 在用户输入任何内容前就形成基础令牌开销。 汇总 estimated_tokens 字段,报告每次会话的总开销。

钩子注册缺失

对比 plugin.json 或 openpackage.yml 中声明的钩子 与 hooks.json 中的条目。若某个钩子存在于 hooks.json 但未列入清单,则插件加载器无法识别它, 也无法通过常规插件管理进行审计、版本控制或禁用。

模板页脚检测

扫描技能文件,查找在 10 个或更多文件中重复出现的相同多行文本块 (例如“找不到命令 / 权限错误 / 意外行为”等通用故障排除部分)。 这些复制粘贴内容会增加令牌开销,却没有提供技能专属价值。

技能中的目录臃肿

加载到模型上下文中的技能无需 HTML 样式的 目录。检测 ## Table of Contents 后是否跟有 项目符号格式的锚点链接列表。这些内容会浪费令牌,因为 模型是按顺序读取内容,而非通过超链接跳转。

未注册的模块子目录

将磁盘上的 skills/*/modules/ 文件与各技能 SKILL.md 前置元数据中的 modules: 列表进行对比。磁盘上存在但未列入清单的文件 无法通过渐进式加载识别,可能是冗余内容,或未纳入加载路径。

自动排除项

始终排除:.venv、__pycache__、.git、node_modules、dist、build、vendor

也遵循:.gitignore、.bloat-ignore

安全性

  • 绝不自动删除 - 所有更改都需要批准
  • 支持试运行 - 使用 --dry-run 预览
  • 备份分支 - 批量更改前创建

相关内容

  • bloat-auditor Agent - 执行扫描
  • unbloat-remediator Agent - 安全修复
  • context-optimization 技能 - MECW 原则
  • /bloat-scan 命令 - 面向用户的斜杠命令,用于调用此 技能;不存在单独的 bloat-scan 技能

退出标准

  • 至少完成一个级别的扫描(第 1、2 或 3 级),并按臃肿类别 列出发现的问题(代码、AI 生成内容、文档、依赖项、Git 历史)
  • 为每个发现的问题分配置信度(高/中/低),并根据以下公式 计算优先级分数: `(Token_Savings × 0.4) + (Maintenance × 0.3) + (Confidence × 0.2)
    • (Ease × 0.1)`
  • 未经用户明确批准,不执行自动删除;每项拟议的移除操作均根据 modules/remediation-types.md 记录为 DELETE、REFACTOR、 CONSOLIDATE 或 ARCHIVE
  • 如果扫描目标包含插件目录,则检查生态系统级模式 (alwaysApply 累积、钩子注册缺失、样板页脚、目录臃肿)

评论

支持 Markdown