claude-pangu 2.2.21 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -0
- package/agents/huoshen.md +220 -424
- package/agents/librarian.md +113 -276
- package/agents/lilou.md +56 -293
- package/agents/liubowen.md +103 -324
- package/agents/metis.md +178 -152
- package/agents/oracle.md +102 -260
- package/agents/wukong.md +101 -164
- package/agents/yugong.md +384 -231
- package/agents/zhuge.md +276 -200
- package/commands/handoff.md +178 -0
- package/commands/init-deep.md +160 -112
- package/commands/refactor.md +196 -194
- package/commands/start-work.md +88 -73
- package/commands/stop-continuation.md +57 -0
- package/hooks/agent-collaboration.sh +14 -1
- package/hooks/agent-handoff-prompt.sh +15 -4
- package/hooks/agent-ready-notification.sh +13 -2
- package/hooks/agent-usage-reminder.sh +12 -2
- package/hooks/anthropic-context-window-limit-recovery.sh +14 -2
- package/hooks/ast-grep.sh +14 -1
- package/hooks/atlas.sh +13 -4
- package/hooks/auto-update-checker.sh +20 -1
- package/hooks/background-compaction.sh +15 -2
- package/hooks/background-notification.sh +1 -1
- package/hooks/category-skill-reminder.sh +92 -0
- package/hooks/code-quality-checker.sh +14 -1
- package/hooks/comment-checker.sh +119 -0
- package/hooks/compaction-context-injector.sh +218 -0
- package/hooks/context-compression.sh +14 -1
- package/hooks/context-smart-alert.sh +15 -3
- package/hooks/context-window-monitor.sh +15 -3
- package/hooks/delegate-task-retry.sh +4 -4
- package/hooks/directory-agents-injector.sh +14 -1
- package/hooks/directory-readme-injector.sh +16 -2
- package/hooks/edit-error-recovery.sh +17 -3
- package/hooks/empty-message-sanitizer.sh +150 -0
- package/hooks/empty-task-response-detector.sh +14 -3
- package/hooks/error-friendly-display.sh +17 -7
- package/hooks/error-recovery.sh +14 -1
- package/hooks/first-use-onboarding.sh +1 -4
- package/hooks/hook-performance-monitor.sh +1 -1
- package/hooks/hooks.json +84 -1
- package/hooks/interactive-bash-session.sh +12 -2
- package/hooks/json-error-recovery.sh +176 -0
- package/hooks/lsp-tools.sh +14 -1
- package/hooks/non-interactive-env.sh +186 -0
- package/hooks/output-truncator.sh +14 -1
- package/hooks/preemptive-compaction.sh +14 -1
- package/hooks/rules-injector.sh +14 -1
- package/hooks/session-notification.sh +17 -3
- package/hooks/session-recovery.sh +12 -2
- package/hooks/stop-continuation-guard.sh +37 -0
- package/hooks/task-checkpointing.sh +14 -1
- package/hooks/think-mode.sh +14 -1
- package/hooks/thinking-block-validator.sh +14 -3
- package/hooks/tmux-agent-visualizer.sh +17 -2
- package/hooks/todo-continuation-enforcer.sh +105 -0
- package/hooks/write-existing-file-guard.sh +100 -0
- package/package.json +1 -1
- package/skills/agent-browser/SKILL.md +385 -146
- package/skills/dev-browser/SKILL.md +136 -0
- package/skills/frontend-ui-ux/SKILL.md +95 -3
- package/skills/git-master/SKILL.md +561 -386
package/commands/refactor.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: refactor
|
|
3
3
|
description: |
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
智能重构命令 - LSP + AST-grep + 架构分析 + 测试验证的系统化重构。
|
|
5
|
+
支持重命名、提取、移动等重构操作,带确定性执行和持续验证。
|
|
6
6
|
aliases:
|
|
7
7
|
- /重构
|
|
8
8
|
- /rf
|
|
@@ -12,278 +12,280 @@ allowed-tools:
|
|
|
12
12
|
- Grep
|
|
13
13
|
- Task
|
|
14
14
|
- Edit
|
|
15
|
+
- Write
|
|
16
|
+
- Bash
|
|
15
17
|
- TodoWrite
|
|
16
|
-
-
|
|
18
|
+
- mcp_lsp_goto_definition
|
|
19
|
+
- mcp_lsp_find_references
|
|
20
|
+
- mcp_lsp_symbols
|
|
21
|
+
- mcp_lsp_diagnostics
|
|
22
|
+
- mcp_lsp_prepare_rename
|
|
23
|
+
- mcp_lsp_rename
|
|
24
|
+
- mcp_ast_grep_search
|
|
25
|
+
- mcp_ast_grep_replace
|
|
17
26
|
model: sonnet
|
|
18
27
|
---
|
|
19
28
|
|
|
20
29
|
<command-name>/refactor</command-name>
|
|
21
30
|
|
|
22
|
-
#
|
|
31
|
+
# 智能重构命令
|
|
23
32
|
|
|
24
|
-
|
|
33
|
+
## 用法
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+
```
|
|
36
|
+
/refactor <重构目标> [--scope=<file|module|project>] [--strategy=<safe|aggressive>]
|
|
37
|
+
|
|
38
|
+
参数:
|
|
39
|
+
重构目标: 可以是文件路径、符号名、模式或描述
|
|
40
|
+
|
|
41
|
+
选项:
|
|
42
|
+
--scope: 重构范围(默认: module)
|
|
43
|
+
--strategy: 风险容忍度(默认: safe)
|
|
44
|
+
```
|
|
27
45
|
|
|
28
|
-
|
|
46
|
+
---
|
|
29
47
|
|
|
30
|
-
|
|
31
|
-
2. **小步前进** - 每次只做一个小改动
|
|
32
|
-
3. **持续验证** - 每步都运行测试
|
|
33
|
-
4. **保持功能** - 重构不改变行为
|
|
48
|
+
# 阶段 0: 意图门控(必须首先执行)
|
|
34
49
|
|
|
35
|
-
|
|
50
|
+
## 步骤 0.1: 解析请求类型
|
|
36
51
|
|
|
37
|
-
|
|
52
|
+
| 信号 | 分类 | 操作 |
|
|
53
|
+
|------|------|------|
|
|
54
|
+
| 具体文件/符号 | 明确 | 进入代码库分析 |
|
|
55
|
+
| "将 X 重构为 Y" | 清晰转换 | 进入代码库分析 |
|
|
56
|
+
| "改进"、"清理" | 开放式 | **必须询问**: "具体改进什么?" |
|
|
57
|
+
| 范围模糊 | 不确定 | **必须询问**: "哪些模块/文件?" |
|
|
38
58
|
|
|
39
|
-
|
|
59
|
+
## 步骤 0.2: 验证理解
|
|
40
60
|
|
|
41
|
-
|
|
61
|
+
确认以下各项:
|
|
62
|
+
- [ ] 目标已明确识别
|
|
63
|
+
- [ ] 期望结果已理解
|
|
64
|
+
- [ ] 范围已定义
|
|
65
|
+
- [ ] 成功标准可以阐述
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
**如果有任何不清楚,询问澄清问题。**
|
|
44
68
|
|
|
45
|
-
|
|
69
|
+
## 步骤 0.3: 创建初始 Todos
|
|
46
70
|
|
|
47
71
|
```
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
background_task(
|
|
57
|
-
agent="explore",
|
|
58
|
-
prompt="找到所有导入、使用或依赖 [TARGET] 的代码。
|
|
59
|
-
报告: 依赖链、导入图。"
|
|
60
|
-
)
|
|
61
|
-
|
|
62
|
-
# 阶段 3: 执行重命名
|
|
63
|
-
使用 LSP rename 或全局搜索替换
|
|
64
|
-
|
|
65
|
-
# 阶段 4: 验证
|
|
66
|
-
lsp_diagnostics 检查
|
|
67
|
-
运行测试
|
|
72
|
+
TodoWrite([
|
|
73
|
+
{"id": "phase-1", "content": "阶段 1: 代码库分析 - 启动并行探索 Agent", "status": "pending", "priority": "high"},
|
|
74
|
+
{"id": "phase-2", "content": "阶段 2: 构建代码地图 - 映射依赖和影响区域", "status": "pending", "priority": "high"},
|
|
75
|
+
{"id": "phase-3", "content": "阶段 3: 测试评估 - 分析测试覆盖和验证策略", "status": "pending", "priority": "high"},
|
|
76
|
+
{"id": "phase-4", "content": "阶段 4: 计划生成 - 调用诸葛生成详细重构计划", "status": "pending", "priority": "high"},
|
|
77
|
+
{"id": "phase-5", "content": "阶段 5: 执行重构 - 逐步执行并持续验证", "status": "pending", "priority": "high"},
|
|
78
|
+
{"id": "phase-6", "content": "阶段 6: 最终验证 - 完整测试套件和回归检查", "status": "pending", "priority": "high"}
|
|
79
|
+
])
|
|
68
80
|
```
|
|
69
81
|
|
|
70
|
-
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
# 阶段 1: 代码库分析(并行探索)
|
|
85
|
+
|
|
86
|
+
**将 phase-1 标记为 in_progress。**
|
|
71
87
|
|
|
72
|
-
|
|
88
|
+
## 1.1: 启动并行探索 Agent(后台)
|
|
89
|
+
|
|
90
|
+
同时启动所有探索:
|
|
73
91
|
|
|
74
92
|
```
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
4. 更新导入
|
|
87
|
-
5. 验证
|
|
93
|
+
// Agent 1: 查找重构目标
|
|
94
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="查找重构目标", prompt="查找 [TARGET] 的所有出现和定义。报告: 文件路径、行号、使用模式。")
|
|
95
|
+
|
|
96
|
+
// Agent 2: 查找相关代码
|
|
97
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="查找依赖", prompt="查找所有导入、使用或依赖 [TARGET] 的代码。报告: 依赖链、导入图。")
|
|
98
|
+
|
|
99
|
+
// Agent 3: 查找类似模式
|
|
100
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="查找类似模式", prompt="查找代码库中与 [TARGET] 类似的模式。报告: 类似实现、已建立的约定。")
|
|
101
|
+
|
|
102
|
+
// Agent 4: 查找测试
|
|
103
|
+
task(subagent_type="explore", run_in_background=true, load_skills=[], description="查找测试", prompt="查找与 [TARGET] 相关的所有测试文件。报告: 测试文件路径、测试用例名、覆盖指标。")
|
|
88
104
|
```
|
|
89
105
|
|
|
90
|
-
|
|
106
|
+
## 1.2: 直接工具探索(Agent 运行同时)
|
|
91
107
|
|
|
92
|
-
|
|
108
|
+
### LSP 工具精确分析
|
|
93
109
|
|
|
94
110
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
确定移动的影响范围。"
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
# 阶段 2: 执行移动
|
|
103
|
-
1. 在新位置创建代码
|
|
104
|
-
2. 更新所有导入路径
|
|
105
|
-
3. 删除旧位置代码
|
|
106
|
-
4. 验证
|
|
111
|
+
mcp_lsp_goto_definition — 跳转到定义
|
|
112
|
+
mcp_lsp_find_references — 查找所有引用
|
|
113
|
+
mcp_lsp_symbols — 文件/工作区符号
|
|
114
|
+
mcp_lsp_diagnostics — 当前诊断基线
|
|
107
115
|
```
|
|
108
116
|
|
|
109
|
-
###
|
|
110
|
-
|
|
111
|
-
**目标**: 减少复杂度
|
|
117
|
+
### AST-Grep 模式分析
|
|
112
118
|
|
|
113
119
|
```
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
subagent_type="general",
|
|
117
|
-
prompt="作为老子(简洁之道),请简化以下代码:
|
|
118
|
-
- 消除重复
|
|
119
|
-
- 简化条件
|
|
120
|
-
- 减少嵌套
|
|
121
|
-
- 提高可读性
|
|
122
|
-
|
|
123
|
-
文件: [FILE]
|
|
124
|
-
范围: [RANGE]"
|
|
125
|
-
)
|
|
120
|
+
mcp_ast_grep_search — 结构化模式搜索
|
|
121
|
+
mcp_ast_grep_replace(dryRun=true) — 预览重构(始终先预览)
|
|
126
122
|
```
|
|
127
123
|
|
|
124
|
+
## 1.3: 收集后台结果
|
|
125
|
+
|
|
126
|
+
所有结果收集后,**将 phase-1 标记为 completed。**
|
|
127
|
+
|
|
128
128
|
---
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
# 阶段 2: 构建代码地图
|
|
131
|
+
|
|
132
|
+
**将 phase-2 标记为 in_progress。**
|
|
131
133
|
|
|
132
|
-
|
|
134
|
+
基于阶段 1 结果构建:
|
|
133
135
|
|
|
134
136
|
```
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
# Agent 2: 找到相关代码
|
|
143
|
-
background_task(
|
|
144
|
-
agent="explore",
|
|
145
|
-
prompt="找到所有导入、使用或依赖 [TARGET] 的代码。
|
|
146
|
-
报告: 依赖链、导入图。"
|
|
147
|
-
)
|
|
148
|
-
|
|
149
|
-
# Agent 3: 找到类似模式
|
|
150
|
-
background_task(
|
|
151
|
-
agent="explore",
|
|
152
|
-
prompt="找到代码库中与 [TARGET] 类似的模式。
|
|
153
|
-
报告: 相似代码、可能的统一机会。"
|
|
154
|
-
)
|
|
155
|
-
|
|
156
|
-
# Agent 4: 检查测试覆盖
|
|
157
|
-
background_task(
|
|
158
|
-
agent="explore",
|
|
159
|
-
prompt="找到覆盖 [TARGET] 的测试。
|
|
160
|
-
报告: 测试文件、测试用例、覆盖范围。"
|
|
161
|
-
)
|
|
137
|
+
## CODEMAP: [TARGET]
|
|
138
|
+
|
|
139
|
+
### 核心文件(直接影响)
|
|
140
|
+
### 依赖图
|
|
141
|
+
### 影响区域
|
|
142
|
+
| 区域 | 风险等级 | 影响文件 | 测试覆盖 |
|
|
143
|
+
|------|----------|----------|----------|
|
|
162
144
|
```
|
|
163
145
|
|
|
146
|
+
识别重构约束:
|
|
147
|
+
- **必须遵循**: 已识别的现有模式
|
|
148
|
+
- **不能破坏**: 关键依赖
|
|
149
|
+
- **安全可改**: 隔离的代码区域
|
|
150
|
+
|
|
151
|
+
**将 phase-2 标记为 completed。**
|
|
152
|
+
|
|
164
153
|
---
|
|
165
154
|
|
|
166
|
-
|
|
155
|
+
# 阶段 3: 测试评估
|
|
167
156
|
|
|
168
|
-
|
|
157
|
+
**将 phase-3 标记为 in_progress。**
|
|
169
158
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
159
|
+
| 覆盖等级 | 策略 |
|
|
160
|
+
|----------|------|
|
|
161
|
+
| 高 (>80%) | 每步后运行现有测试 |
|
|
162
|
+
| 中 (50-80%) | 运行测试 + 添加安全断言 |
|
|
163
|
+
| 低 (<50%) | **暂停**: 建议先添加测试 |
|
|
164
|
+
| 无 | **阻止**: 拒绝激进重构 |
|
|
165
|
+
|
|
166
|
+
**将 phase-3 标记为 completed。**
|
|
177
167
|
|
|
178
168
|
---
|
|
179
169
|
|
|
180
|
-
|
|
170
|
+
# 阶段 4: 计划生成
|
|
171
|
+
|
|
172
|
+
**将 phase-4 标记为 in_progress。**
|
|
173
|
+
|
|
174
|
+
调用诸葛 (plan agent) 生成详细重构计划:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
task(subagent_type="plan", load_skills=[], run_in_background=false, description="重构计划",
|
|
178
|
+
prompt="创建详细重构计划:
|
|
179
|
+
## 重构目标: [用户原始请求]
|
|
180
|
+
## 代码地图: [阶段 2 结果]
|
|
181
|
+
## 测试覆盖: [阶段 3 结果]
|
|
182
|
+
## 要求: 原子步骤、可独立验证、按依赖排序")
|
|
183
|
+
```
|
|
181
184
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
| 重复代码 | 提取公共函数/组件 |
|
|
186
|
-
| 命名不清 | 重命名 |
|
|
187
|
-
| 文件太大 | 拆分模块 |
|
|
188
|
-
| 依赖混乱 | 重组导入、提取接口 |
|
|
189
|
-
| 嵌套太深 | 提前返回、提取函数 |
|
|
190
|
-
| 魔术数字 | 提取常量 |
|
|
185
|
+
将计划转换为细粒度 todos。
|
|
186
|
+
|
|
187
|
+
**将 phase-4 标记为 completed。**
|
|
191
188
|
|
|
192
189
|
---
|
|
193
190
|
|
|
194
|
-
|
|
191
|
+
# 阶段 5: 执行重构(确定性执行)
|
|
195
192
|
|
|
196
|
-
|
|
197
|
-
# 重命名
|
|
198
|
-
/refactor rename getUserById -> findUserById
|
|
193
|
+
**将 phase-5 标记为 in_progress。**
|
|
199
194
|
|
|
200
|
-
|
|
201
|
-
/refactor extract calculateTotal from OrderService.processOrder
|
|
195
|
+
对每个重构步骤:
|
|
202
196
|
|
|
203
|
-
|
|
204
|
-
|
|
197
|
+
### 执行前
|
|
198
|
+
1. 标记步骤 todo 为 `in_progress`
|
|
199
|
+
2. 读取当前文件状态
|
|
200
|
+
3. 验证 lsp_diagnostics 基线
|
|
205
201
|
|
|
206
|
-
|
|
207
|
-
|
|
202
|
+
### 执行
|
|
203
|
+
根据类型选择工具:
|
|
204
|
+
- **符号重命名**: `mcp_lsp_prepare_rename` → `mcp_lsp_rename`
|
|
205
|
+
- **模式转换**: `mcp_ast_grep_replace(dryRun=true)` 预览 → 执行
|
|
206
|
+
- **结构变更**: Edit 工具精确修改
|
|
208
207
|
|
|
209
|
-
|
|
210
|
-
/refactor suggest src/services/
|
|
211
|
-
/refactor suggest --file src/components/Dashboard.tsx
|
|
212
|
-
```
|
|
208
|
+
### 执行后验证(强制)
|
|
213
209
|
|
|
214
|
-
|
|
210
|
+
```
|
|
211
|
+
1. mcp_lsp_diagnostics — 必须干净或与基线相同
|
|
212
|
+
2. 运行测试命令
|
|
213
|
+
3. 类型检查
|
|
214
|
+
```
|
|
215
215
|
|
|
216
|
-
|
|
216
|
+
### 失败恢复协议
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
如果任何验证失败:
|
|
219
|
+
1. **停止** — 立即
|
|
220
|
+
2. **回滚** — 撤销失败的变更
|
|
221
|
+
3. **诊断** — 分析出了什么问题
|
|
222
|
+
4. **决定** — 修复重试、跳过、或咨询 Oracle
|
|
219
223
|
|
|
220
|
-
|
|
224
|
+
**绝不在测试失败的情况下继续下一步。**
|
|
221
225
|
|
|
222
|
-
|
|
223
|
-
|------|----------|----------|
|
|
224
|
-
| 📏 **长度** | 函数 > 50 行,文件 > 300 行 | 提取函数/拆分模块 |
|
|
225
|
-
| 🔄 **重复** | 相似代码块 > 10 行 | 提取公共函数 |
|
|
226
|
-
| 🌀 **复杂度** | 圈复杂度 > 10,嵌套 > 3 | 简化逻辑 |
|
|
227
|
-
| 🏷️ **命名** | 不符合规范、含义模糊 | 重命名 |
|
|
228
|
-
| 📦 **耦合** | 过多依赖、循环导入 | 解耦/重组 |
|
|
229
|
-
| 🧪 **可测试性** | 难以单元测试 | 依赖注入 |
|
|
226
|
+
**将 phase-5 标记为 completed。**
|
|
230
227
|
|
|
231
|
-
|
|
228
|
+
---
|
|
232
229
|
|
|
233
|
-
|
|
234
|
-
🔍 重构机会分析报告
|
|
235
|
-
═══════════════════════════════════════════════════════════════
|
|
230
|
+
# 阶段 6: 最终验证
|
|
236
231
|
|
|
237
|
-
|
|
238
|
-
├─ ⚠️ [长度] processUser() 函数 78 行 → 建议提取子函数
|
|
239
|
-
├─ ⚠️ [重复] 与 OrderService.ts 有 15 行相似代码
|
|
240
|
-
└─ 💡 [命名] `data` 变量名不够语义化
|
|
232
|
+
**将 phase-6 标记为 in_progress。**
|
|
241
233
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
234
|
+
1. 完整测试套件
|
|
235
|
+
2. 类型检查
|
|
236
|
+
3. Lint 检查
|
|
237
|
+
4. 构建验证(如适用)
|
|
238
|
+
5. 所有变更文件的 lsp_diagnostics
|
|
245
239
|
|
|
246
|
-
|
|
247
|
-
• 严重: 1 • 警告: 3 • 建议: 1
|
|
248
|
-
• 推荐优先修复: Dashboard.tsx 的复杂度问题
|
|
240
|
+
### 生成摘要
|
|
249
241
|
|
|
250
|
-
💡 快速操作:
|
|
251
|
-
/refactor simplify src/components/Dashboard.tsx
|
|
252
|
-
/refactor extract processUserData from UserService.processUser
|
|
253
|
-
═══════════════════════════════════════════════════════════════
|
|
254
242
|
```
|
|
243
|
+
## 重构完成
|
|
255
244
|
|
|
256
|
-
###
|
|
245
|
+
### 变更内容
|
|
246
|
+
- [变更列表]
|
|
257
247
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
248
|
+
### 验证结果
|
|
249
|
+
- 测试: 通过 (X/Y)
|
|
250
|
+
- 类型检查: 干净
|
|
251
|
+
- 构建: 成功
|
|
261
252
|
|
|
262
|
-
|
|
263
|
-
|
|
253
|
+
### 无回归检测
|
|
254
|
+
所有现有测试通过。未引入新错误。
|
|
255
|
+
```
|
|
264
256
|
|
|
265
|
-
|
|
266
|
-
/refactor suggest --all
|
|
257
|
+
**将 phase-6 标记为 completed。**
|
|
267
258
|
|
|
268
|
-
|
|
269
|
-
/refactor suggest --severity critical
|
|
270
|
-
```
|
|
259
|
+
---
|
|
271
260
|
|
|
272
|
-
|
|
261
|
+
# 关键规则
|
|
273
262
|
|
|
274
|
-
|
|
263
|
+
## 绝不
|
|
264
|
+
- 跳过 lsp_diagnostics 检查
|
|
265
|
+
- 在测试失败时继续
|
|
266
|
+
- 使用 `as any`、`@ts-ignore`、`@ts-expect-error`
|
|
267
|
+
- 删除测试使其通过
|
|
268
|
+
- 不理解现有模式就重构
|
|
269
|
+
|
|
270
|
+
## 始终
|
|
271
|
+
- 先理解再修改
|
|
272
|
+
- 先预览再应用 (ast_grep dryRun=true)
|
|
273
|
+
- 每次变更后验证
|
|
274
|
+
- 遵循现有代码库模式
|
|
275
|
+
- 实时更新 todos
|
|
276
|
+
- 发现问题立即报告
|
|
277
|
+
|
|
278
|
+
## 中止条件
|
|
279
|
+
- 目标代码测试覆盖为零
|
|
280
|
+
- 变更将破坏公共 API
|
|
281
|
+
- 3 次连续验证失败
|
|
275
282
|
|
|
276
283
|
---
|
|
277
284
|
|
|
278
|
-
##
|
|
285
|
+
## 用户的请求
|
|
279
286
|
|
|
280
|
-
|
|
287
|
+
$ARGUMENTS
|
|
281
288
|
|
|
282
|
-
|
|
283
|
-
2. **并行探索** - 找到所有相关代码
|
|
284
|
-
3. **评估影响** - 确定重构范围
|
|
285
|
-
4. **制定计划** - 创建重构步骤
|
|
286
|
-
5. **执行重构** - 小步安全重构
|
|
287
|
-
6. **验证结果** - 确保没有破坏
|
|
289
|
+
---
|
|
288
290
|
|
|
289
291
|
**安全重构开始...**
|