- name
- refactor
- scope
- universal
- description
- [UDS] Guide refactoring decisions and strategy selection, including the refactor-versus-rewrite call.
Use when: code has become hard to change, choosing between tactical and architectural refactoring, working safely inside legacy code.
Not for: moving to a different framework or major version — use /migrate; clearing debug artifacts and dead code — use /sweep.
Keywords: refactor, rewrite, strangler, legacy code, technical debt, code smell, 重構, 重寫, 技術債.
- allowed-tools
- Read, Write, Grep, Glob, Bash(npm test:*), Bash(npx:*)
- argument-hint
- [file or module | 檔案或模組]
# Refactoring Assistant | 重構助手
Guide refactoring decisions, recommend strategies, and provide step-by-step execution workflows.
引導重構決策、推薦策略,並提供逐步執行工作流程。
## Usage | 使用方式
| Command | Purpose | 用途 |
|---------|---------|------|
| `/refactor` | Start interactive refactoring guide | 啟動互動式重構引導 |
| `/refactor decide` | Run refactor vs. rewrite decision tree | 執行重構 vs 重寫決策樹 |
| `/refactor tactical` | Suggest tactical (daily) strategies | 建議戰術性(日常)策略 |
| `/refactor strategic` | Guide strategic/architectural refactoring | 引導戰略性/架構重構 |
| `/refactor legacy` | Legacy code safety strategies | 遺留程式碼安全策略 |
| `/refactor debt` | Technical debt assessment | 技術債評估 |
## Strategy Quick Reference | 策略快速參考
### Tactical Strategies (Daily) | 戰術性策略
| Strategy | When to Use | 使用時機 |
|----------|-------------|---------|
| **Preparatory Refactoring** | Before adding a blocked feature | 新增被阻擋的功能之前 |
| **Boy Scout Rule** | During any maintenance work | 任何維護工作中 |
| **Red-Green-Refactor** | TDD development cycle | TDD 開發循環 |
### Strategic Strategies (Architectural) | 戰略性策略
| Strategy | When to Use | 使用時機 |
|----------|-------------|---------|
| **Strangler Fig** | Replacing entire system gradually | 逐步替換整個系統 |
| **Anti-Corruption Layer** | Integrating with legacy system | 與遺留系統整合 |
| **Branch by Abstraction** | Shared code refactoring on trunk | 在主幹上重構共享程式碼 |
### Safety Strategies (Legacy) | 安全防護策略
| Strategy | When to Use | 使用時機 |
|----------|-------------|---------|
| **Characterization Tests** | Before any legacy refactoring | 任何遺留程式碼重構之前 |
| **Scratch Refactoring** | Understanding black-box code | 理解黑盒程式碼 |
| **Finding Seams** | Injecting test doubles into legacy | 在遺留程式碼中注入測試替身 |
## Workflow | 工作流程
1. **Assess** - Identify code to refactor, evaluate test coverage
2. **Decide** - Run decision tree (refactor vs. rewrite) if needed
3. **Select strategy** - Choose appropriate strategy based on scope and risk
4. **Execute** - Follow step-by-step workflow with safety checks
5. **Verify** - Run tests to confirm behavior is preserved
## Usage Examples | 使用範例
```
User: /refactor src/legacy-auth/
AI: Analyzing src/legacy-auth/...
Test coverage: 23% — recommending safety-first approach.
Suggested strategy: Characterization Tests + Preparatory Refactoring
```
```
User: /refactor decide
AI: Let me help you decide whether to refactor or rewrite.
Question 1: Is the code currently working in production? [Y/N]
```
## Next Steps Guidance | 下一步引導
After `/refactor` completes, the AI assistant should suggest:
> **重構完成。建議下一步 / Refactoring complete. Suggested next steps:**
> - 執行 `/checkin` 通過品質關卡 ⭐ **Recommended / 推薦** — Pass quality gates
> - 執行 `/coverage` 確認重構後覆蓋率不下降 — Verify coverage not decreased
> - 執行 `/commit` 提交重構變更 — Commit the refactoring changes
## Reference | 參考
- Detailed guide: [guide.md](./guide.md)
- Core standard: [refactoring-standards.md](../../core/refactoring-standards.md)
## AI Agent Behavior | AI 代理行為
> 完整的 AI 行為定義請參閱對應的命令文件:[`/refactor`](../commands/refactor.md#ai-agent-behavior--ai-代理行為)
>
> For complete AI agent behavior definition, see the corresponding command file: [`/refactor`](../commands/refactor.md#ai-agent-behavior--ai-代理行為)
View on GitHub