refactorlisted
Install: claude install-skill snowzhaozhj/claude-devtools-rs
# refactor
按 scope 扫描代码,识别结构反模式与碰行为契约边界的伪 refactor,输出结构化 findings 表。
Refactor 定义(Fowler):行为不变的结构改动。
## 1. Scope 选择
**解析优先级**(从上到下,先匹配先用):
1. **显式 surface flag** `--surface ui` / `--surface ipc`
2. **路径前缀匹配**(最长前缀优先):`src-tauri/` / `ui/` / `crates/`
3. **路径存在性检查**:参数若是路径(含 `/` 或 `.`)→ `[ -e <path> ]` 校验,不存在报错让用户重试
4. **裸 crate 名解析**:参数无 `/` 且 `crates/<arg>/Cargo.toml` 存在 → 展开为 `crates/<arg>/`
5. **特殊字面量** `workspace` → 全仓
6. **fallback**:单文件按扩展名(`.rs` / `.svelte` / `.ts`)
**消歧速查**:
| 用户输入 | 解析 | 读哪些 references |
|---|---|---|
| `/refactor cdt-api` | step 4 裸 crate → `crates/cdt-api/` | rust + smells |
| `/refactor crates/cdt-api/src/ipc.rs` | step 2 prefix `crates/` | rust + smells |
| `/refactor src-tauri/src/lib.rs` | step 2 prefix `src-tauri/` 优先于 .rs ext | tauri + rust + smells |
| `/refactor ui/src/lib/Foo.svelte` | step 2 prefix `ui/` | svelte + smells |
| `/refactor --surface ipc` | step 1 surface flag | tauri + rust + smells |
| `/refactor workspace` | step 5 字面量 | 全部 4 个 |
读 references 前先 `Glob` / `wc -l` 摸目标体量;> 5000 行先按 crate / 文件群拆。
## 2. boundary-sensitive guard(伪 refactor 识别)
下面 5 类碰了行为契约边界,命中即在 finding 里标 `category: boundary-<n>-<short>`:
1. 改公共 trait / 生命周期约束 / 泛型 bound(即使语义没变也可能 break crate API)
2. async runtime / 调度 / 取消 / 背压 / 错误传播重排(可能改变可观测行为或线程安全契约)
3. Tauri IPC payload schema 改动(字段名 / 序列化形状 / 错误模型)
4. Svelte 5 reactivity 状态流 / 派生值 / 事件时序变动(纯机械 `$:` → `$derived` 不算 boundary)
5. Tauri plugin / capability 边界拆分时 API / permission / command surface 改