# code-groom **Repository Path**: code-ape-hc/code-groom ## Basic Information - **Project Name**: code-groom - **Description**: code-groom skill 关注的是大多数代码审查工具不会管的事:冗余的中间层、散落在调用方身上的状态、一个函数干了三层的事。它是一套语言无关的代码结构自查框架。当你觉得代码「臃肿但说不上哪不对」时,用它过一遍。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # code-groom 代码组织梳理,不是风格美化。 大多数代码审查工具关注命名、格式和 lint 规则。code-groom 关注更底层的问题:冗余的中间层、散落在调用方身上的状态、一个函数干了好几层的事。它提供五条判断原则(改不改)加七条操作规则(怎么改),是一套语言无关的代码结构自查框架。 当你觉得代码"臃肿但说不上哪不对"时,用它过一遍。 --- ## 安装 将整个 `code-groom` 目录放入你的 Agent 的 skills 目录: - **WorkBuddy**: `~/.workbuddy/skills/code-groom/` - **Claude Code**: `~/.claude/skills/code-groom/` - **其他支持 SkillHub 的客户端**: 见各自文档 安装后,对 Agent 说"梳理代码"或"groom"即可触发。 --- ## 核心方法 ### 五原则(判断力 — 改不改) | 原则 | 一句话 | |------|--------| | **单一数据源** | 同一份值有没有在多处重复定义?→ 收归一处 | | **单层抽象** | 一个函数做了超过一层的事?→ 拆成编排层 + 细节函数 | | **封装** | 外部能改这个模块的内部字段吗?→ 加只读或私有 | | **消冗余** | 方法体只有一行调另一个方法?→ 内联,删方法 | | **状态找主人** | 内部状态散落在调用方身上?→ 抽成类,构造/dispose 收口 | ### 七规则(操作手法 — 怎么改) | 规则 | 自查动作 | |------|---------| | R1 谁产生谁持有 | 变量产生端自持,不让外部传回来 | | R2 死代码清除 | 搜索引用数:0 删,1 考虑内联 | | R3 纯转发删除 | 方法体一行调同名方法 → 删 | | R4 出口收进消费端 | 仅内部用的公开接口 → 不公开 | | R5 动态适配用接口 | 不同场景不同行为 → 接口注入,不写死实现 | | R6 小文件合并 | 同职责 < 50 行 → 合 | | R7 重复模式抽方法 | 同一结构 ≥ 2 次 → 抽 | ### 执行流程 1. **扫描影响范围** — 谁持有谁调用、谁监听谁发射、类型定义在哪 2. **过五原则** — 逐条问"我这个改动违反吗?" 3. **过七规则** — 具体动手时逐条执行 4. **自验** — 编译检查 + 竞态复核 --- ## 约束 - 行为零变化:只改内部组织,不改外部行为 - 不过度抽象:拆出来 3 行且只被一处调用 → 不拆 - 不扩大范围:只改命中的点,跨模块只记录不改 --- ## 与其他工具的区别 | | code-groom | linter | 重构工具 | |---|-----------|--------|---------| | 关注点 | 结构骨架(抽象层级、状态归属) | 格式风格(缩进、命名) | 行为变更(拆分模块、换算法) | | 语言绑定 | 无 | 特定语言 | 特定语言 | | 输出 | 改动清单 + 原因 | 错误列表 | 新代码 |