cache-patch
**参数说明**:`$ARGUMENTS` 由 Claude Code 自动传递,对应用户输入的参数部分(如 `/cache-patch status` 中的 `status`)。
系统优化扫描(full/ux/perf/code 四种模式)
> /plugin marketplace add doccker/cc-use-exp > /plugin install cc-use-exp@cc-use-exp
How it fires
How this command gets triggered: by you, by Claude, or both.
/optimizeContext preview
What this command does when you run it.
系统优化扫描(full/ux/perf/code 四种模式)
description: 系统优化扫描(full/ux/perf/code 四种模式) allowed-tools: Bash(git ls-files:*), Bash(git diff:*), Bash(git status:*), Bash(git log:*), Bash(git stash:*), Bash(git checkout:*), Bash(go build:*), Bash(go test:*), Bash(go vet:*), Bash(npm run build:*), Bash(npm test:*), Bash(npx vue-tsc:*), Bash(mvn compile:*), Bash(mvn test:*), Bash(wc:*), Bash(python -m pytest:*), Read, Glob, Grep, Edit, Write, Agent, WebSearch argument-hint: "[ux|perf|code] 默认 full 全量扫描"
根据参数选择扫描模式:
参数值:「$ARGUMENTS」
---
使用 AskUserQuestion 询问扫描范围:
请选择扫描范围: 1. 全量扫描(前端 + 后端) 扫描所有代码,token 消耗较大(项目越大消耗越多), 适合里程碑节点或季度优化。 2. 仅后端 只扫描 Go/Java/Python 等后端代码。 3. 仅前端 只扫描 Vue/React/TS 等前端代码。 4. 指定目录 用户输入目录路径,只扫描指定模块。
用户选择「全量扫描」时,先统计规模并提示:
# 统计文件数和行数 git ls-files --exclude-standard | head -500 git ls-files --exclude-standard | xargs wc -l 2>/dev/null | tail -1
输出提示:
⚠️ 全量扫描预估: - 文件数:XX 个 - 总行数:约 XXXX 行 - 预计消耗 tokens 较多,确认继续?(Y/N)
用户确认后进入第 1 步。
---
扫描项目基本信息,输出概览表:
1. **技术栈识别**:读取 `go.mod`(Go 版本)、`package.json`(Vue/React/Node 版本)、`pom.xml`(Java 版本)、`requirements.txt`/`pyproject.toml`(Python 版本) 2. **框架识别**:Gin/Echo/Fiber、Spring Boot、Vue/React、Element Plus/Ant Design 3. **数据库**:搜索 SQLite/MySQL/PostgreSQL 连接配置 4. **已用中间件**:搜索 Redis/MQ/MinIO/ES 的 import 和配置 5. **文件规模统计**:按语言分类统计文件数和行数 6. **大文件检测**:按语言阈值(Go 400行 / Vue 200行 / Java 300行 / TS/JS 300行 / Python 300行)
## 项目概览 | 项 | 值 | |---|---| | 技术栈 | Go 1.22 + Gin / Vue 3.4 + Element Plus 2.7 | | 数据库 | SQLite / MySQL | | 已用中间件 | Redis | | 后端文件 | XX 个,约 XXXX 行 | | 前端文件 | XX 个,约 XXXX 行 | | 大文件(>阈值) | X 个 |
---
根据模式参数决定执行哪些维度:
| 模式 | 执行维度 | |------|---------| | `full` | UX + PERF + CODE + SUGAR + SEC + BEST | | `ux` | UX | | `perf` | PERF + BEST(中间件相关) | | `code` | CODE + SUGAR |
---
| 检查项 | 扫描方法 | 判定标准 | |--------|---------|---------| | 表单防重复提交 | 搜索 `<el-form>` / `<form>` 的提交处理 | 提交函数无 loading 状态控制 → 问题 | | 列表空状态 | 搜索 `<el-table>` / `v-for` 列表 | 无 `<el-empty>` 或 empty slot → 问题 | | 加载状态 | 搜索 API 调用处 | 无 loading / skeleton 反馈 → 问题 | | 错误提示 | 搜索 `catch` 块 | `console.log` 吞错误,无用户提示 → 问题 | | 表单校验 | 搜索 `<el-form>` | 无 `:rules` 或规则为空 → 问题 | | 批量操作 | 搜索列表页 | 仅逐条操作,无批量选择能力 → 建议 | | 响应式布局 | 搜索 `@media` / `:span` / `:xs` | 无任何响应式处理 → 建议 |
| 检查项 | 扫描方法 | 判定标准 | |--------|---------|---------| | 接口响应格式 | 搜索 handler 返回结构 | 不统一(有的 `{code,data}` 有的裸返回)→ 问题 | | 分页支持 | 搜索列表查询接口 | 返回全量数据无分页 → 问题 | | 参数校验 | 搜索 handler 入参 | 无 `binding:"required"` 或手动校验 → 建议 |
---
| 检查项 | 扫描方法 | 判定标准 | |--------|---------|---------| | N+1 查询 | 搜索循环内的 DB 调用 | `for` 循环内有 `db.Find` / `db.First` → Critical | | 全表查询 | 搜索无 Where 的 Find/Select | `db.Find(&all)` 无条件无分页 → Critical | | 缺失索引 | 读取 model struct tag | 外键和常用查询字段无 `index` tag → Important | | 慢查询日志 | 搜索 GORM 配置 | 未配置 `SlowThreshold` → 建议 | | 连接池 | 搜索 DB 配置 | 未设置 `MaxOpenConns` / `MaxIdleConns` → 建议 |
| 检查项 | 扫描方法 | 判定标准 | |--------|---------|---------| | 路由懒加载 | 搜索 router 配置 | 使用 `import Xxx from` 而非 `() => import()` → 问题 | | 大依赖 | 读取 package.json | 检查 moment.js / lodash 全量引入 → 建议替代 | | 图片优化 | 搜索静态资源 | 大图片(>500KB)未压缩 → 建议 |
对以下中间件逐一评估,输出决策表:
**Redis 决策:**
**MinIO(对象存储)决策:**
**Elasticsearch 决策:**
**MQ(消息队列)决策:**
**输出格式:**
## 中间件评估 | 中间件 | 当前状态 | 建议 | 理由 | |--------|---------|------|------| | Redis | 未使用 | 推荐引入 | GetSysConfig() 每次查库,变更频率低 | | MinIO | 未使用 | 推荐引入 | 文件存本地 ./uploads/,容器化有风险 | | Elasticsearch | 未使用 | 暂不需要 | 搜索场景简单,数据量 <1w | | MQ | 未使用 | 暂不需要 | 无明显异步阻塞场景 |
---
| 检查项 | 扫描方法 | 判定标准 | |--------|---------|---------| | **前端重复组件** | 搜索相似的模板结构(相同 el- 组件组合出现 ≥2 次) | 多页面有相同布局 → 应抽取公共组件 | | **前端重复逻辑** | 搜索相同的 API 调用 + 分页 + 搜索模式 | ≥2 处相同 CRUD 模式 → 应抽取 composable | | **后端重复代码** | 搜索 service 层相同的 查询+校验+更新 模式 | ≥3 个 service 相同模式 → 建议泛型封装 | | **前后端重复定义** | 对比后端 struct/DTO 和前端 interface/type | 同一实体两端各定义,字段不一致 → 问题 | | **上帝文件** | 按语言阈值检测超大文件 | 超过阈值 → 给出拆分建议 | | **死代码** | 搜索未被 import 的 exported 函数、未使用的组件文件 | 存在 → 建议删除 | | **硬编码** | 搜索魔法数字、硬编码 URL、写死的配置值 | 存在 → 建议提取常量或配置 |
**组件抽取建议输出格式:**
## 组件抽取建议 | 当前位置 | 建议抽取为 | 复用次数 | 预计减少行数 | |---------|-----------|---------|------------| | views/user/Detail, views/order/Detail | components/DetailCard.vue | 3 | ~100 行 | | api/user.ts, api/order.ts 的错误处理 | utils/request.ts | 8 | ~60 行 | | service/user.go, service/order.go CRUD | pkg/base/service.go (泛型) | 4 | ~200 行 |
---
读取项目的语言版本后,按以下检查表扫描:
| 版本要求 | 检查项 | 旧写法特征 | 新写法 | |---------|--------|-----------|--------| | 1.21+ | slices 包 | 手写 Contains/Filter/Map 工具函数 | `slices.Contains()` 等标准库 | | 1.21+ | slog 结构化日志 | `log.Println` / `fmt.Println` | `slog.Info()` | | 1.21+ | min/max 内置函数 | 手写 `if a > b { return a }` | `max(a, b)` | | 1.22+ | range 整数 | `for i := 0; i < n; i++` | `for i := range n` | | 1.22+ | http 路由增强 | 简单 mux + 手动路径匹配 | `http.HandleFunc("GET /api/{id}")` | | 1.23+ | iter 迭代器 | 手写迭代逻辑 | `iter.Seq` / `iter.Seq2` |
| 版本要求 | 检查项 | 旧写法特征 | 新写法 | |---------|--------|-----------|--------| | 17+ | record | 纯数据 class(只有 gett
保留你熟悉的 CLI/IDE,让 Claude Code、Gemini CLI、Codex、Cursor、GitHub Copilot 开箱即用 按费力度从低到高,用最少操作获得最大帮助 ## 📢 本仓库已停止更新 / This Repository Is No Longer Maintained 中文:因开源版权屡遭侵权,本仓库停止更新,现有内容保持可用。全部新能力已迁移至新项目 dev-agent-kit/recipes 持续维护,新内容只在新项目更新。 新项目相比本仓库已额外提供(并持续完善): pi
**参数说明**:`$ARGUMENTS` 由 Claude Code 自动传递,对应用户输入的参数部分(如 `/cache-patch status` 中的 `status`)。