Install
openclaw skills install huo15-openclaw-simplify对最近修改的代码做"复用/质量/效率"三维审查,产出可执行的清理清单;然后实际修复命中的问题。用于刚写完功能、PR 提交前、重构前的自检。触发词:简化代码、清理冗余、重构建议、simplify、code cleanup、代码体检、能不能更简洁。
openclaw skills install huo15-openclaw-simplify对刚写完的代码做"复用/质量/效率"三维体检 — 青岛火一五信息科技有限公司
当用户刚完成一段实现,或准备提 PR,说:
产出:三维清单(复用 / 质量 / 效率)+ 每条命中标注严重程度 + 自动修复可安全改的(保守策略)。
| 项 | 命中信号 | 默认行动 |
|---|---|---|
| 与仓库内已有函数重复 | grep 到名称/行为相似的函数 | 标记 → 建议替换,不自动改(需用户确认契合) |
| 逻辑可抽函数(重复出现 ≥3 次的片段) | 肉眼识别 + grep 验证 | 抽函数,放到最近的共用模块 |
| 重新发明了标准库 / 已有依赖 | 出现如自写 deep-merge / debounce | 改用依赖;若依赖未装,不自动 npm install,给命令让用户装 |
| 可下沉到 util | 业务代码里混进了纯函数 | 提取到 utils/ 或 lib/ |
| 项 | 命中信号 | 默认行动 |
|---|---|---|
裸 any / 裸 unknown 未收窄 | TS 语言明显 | 收窄类型,优先用 TypeBox / Zod 已有 schema |
| 魔法数字 / 魔法字符串 | 42, "pending" 散落 | 提常量,放到 constants.ts |
| 嵌套 if-else > 3 层 | 阅读困难 | 提前返回 / early return / 卫语句 |
| console.log 残留 | grep `console.(log | info |
| 注释是"做了什么"而非"为什么" | 注释重复代码 | 改"为什么"或删 |
命名不达意(data / temp / obj) | 一眼看不出含义 | 改成表达意图的名字 |
| 项 | 命中信号 | 默认行动 |
|---|---|---|
| O(n²) 可降 O(n) | 嵌套 for + 查找 | Map / Set 替代 |
| 同一对象重复 JSON.parse/stringify | 显眼的往返 | 缓存中间结果 |
| 在循环里做 I/O(db 查询 / fetch) | await 在 for 里 | Promise.all 或批量查 |
| 不必要的 re-render / 重新计算 | React useMemo 缺失;大对象每次新建 | 加记忆化 |
整包导入(import *) | 引起 bundle 膨胀 | 按需导入 |
git diff HEAD~1 或 git diff --stagedfile:line## 简化报告 — <commit/path>
### 🔴 必改(3 项)
1. [reuse] `src/a.ts:45` — deep-merge 自写实现,应改用 lodash.merge(已装)
2. [quality] `src/b.ts:12` — 裸 any,应收窄为 `User | null`
3. [quality] `src/c.ts:88` — 3 层嵌套 if,建议 early return
### 🟡 建议(2 项)
4. [efficiency] `src/d.ts:33` — for 循环里 await fetch,改 Promise.all 减 3× 耗时
5. [reuse] `src/e.ts:70` — 与 `utils/slugify.ts` 逻辑重复
### 🟢 可选(1 项)
6. [quality] `src/f.ts:5` — 变量名 `data` 可改为 `userProfiles`
### 未动
- [quality] test 文件中的 console.log(按惯例放过)
npm install x 命令,不 exec@generated / // DO NOT EDIT / dist/ / build/| 场景 | 用哪个 |
|---|---|
| 只看代码质量 | 本技能 |
| 看安全漏洞(密钥 / 注入 / XSS) | huo15-openclaw-security-review |
| PR 全流程评审(含安全 + 质量 + 设计) | huo15-openclaw-code-review |
| 设计稿 / UI 打分 | huo15-openclaw-design-critique |