從現有實作逆向推導技術設計
Generates technical design documents by reverse engineering existing codebases and analyzing implementation patterns.
/plugin marketplace add MilesChou/claude-marketplace/plugin install orik@mileschou-marketplace功能路徑或模組名稱從現有程式碼逆向分析並生成技術設計文件:$ARGUMENTS
ORIK 是從既有實作逆向推導出設計和需求的流程:
根據 $ARGUMENTS 確定要分析的範圍:
探索並記錄:
程式碼基礎結構
├── 檔案組織模式
├── 目錄結構意圖
├── 命名慣例
└── 模組邊界
自動偵測:
分析並識別:
建立元件依賴圖:
graph TB
Controller --> Service
Service --> Repository
Repository --> Database
Service --> ExternalAPI
從入口點追蹤資料流動:
掃描並記錄所有 API 端點:
# 搜尋路由定義
grep -r "Route\|route\|@app\|@router" --include="*.py" --include="*.js" --include="*.php"
# 搜尋控制器方法
grep -r "def.*Controller\|function.*Action" --include="*.py" --include="*.php"
從實作推導介面定義:
從程式碼提取領域實體:
# 搜尋模型定義
grep -r "class.*Model\|@Entity\|Schema\|Table" --include="*.py" --include="*.php" --include="*.js"
# 搜尋資料庫遷移
find . -path "*/migrations/*" -o -path "*/schema/*"
分析實體間關係:
從驗證和約束推導規則:
根據分析結果生成 .orik/reverse/$ARGUMENTS/design.md:
# 逆向工程技術設計
## 分析元資料
- 分析日期:[當前日期]
- 分析範圍:$ARGUMENTS
- 程式碼行數:[統計]
- 檔案數量:[統計]
## 概覽
[從程式碼推導的系統概述]
## 架構
[識別的架構模式和結構]
### 技術堆疊(推導)
- **語言**:[偵測結果]
- **框架**:[偵測結果]
- **資料庫**:[偵測結果]
- **相依套件**:[從 package.json/requirements.txt/composer.json 提取]
### 架構決策推論
[從實作模式推導可能的架構決策原因]
## 資料流
[追蹤的資料流程圖]
## 元件和介面
### 識別的服務
[從程式碼提取的服務列表和方法]
### API 端點(發現)
| 方法 | 路由 | 推測用途 | 參數 | 回應 |
|------|------|----------|------|------|
| [提取的端點資料] |
## 資料模型
### 領域實體(推導)
[從模型檔案提取的實體]
### 實體關係(分析)
[從關聯定義推導的 ER 圖]
## 錯誤處理模式
[從 try-catch 和錯誤處理程式碼分析]
## 安全實作(觀察)
[從程式碼識別的安全措施]
## 測試覆蓋(如果存在)
[從測試檔案分析測試策略]
## 推導的設計模式
[識別的設計模式和最佳實踐]
## 技術債務和改進建議
[發現的潛在問題和優化機會]
建立 .orik/reverse/$ARGUMENTS/analysis.json:
{
"analysis_type": "implementation_to_design",
"timestamp": "當前時間戳記",
"scope": "$ARGUMENTS",
"files_analyzed": [],
"patterns_identified": [],
"dependencies_found": [],
"next_phase": "stnemeriuqer-ceps",
"confidence_level": "high|medium|low",
"gaps_identified": []
}
生成分析摘要給使用者:
📊 逆向工程分析完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 分析範圍:$ARGUMENTS
📈 分析檔案:[數量] 個檔案
🔍 識別模式:[列出主要架構模式]
🎯 置信度:[高/中/低]
✅ 已生成:
• 設計文件:.orik/reverse/$ARGUMENTS/design.md
• 分析資料:.orik/reverse/$ARGUMENTS/analysis.json
🔜 下一步:
執行 /orik:stnemeriuqer-ceps $ARGUMENTS
從設計推導需求和規格
# Laravel/PHP
"Route::|class.*Controller|function.*Action|Schema::|DB::"
# Python/FastAPI
"@app\.|@router\.|class.*Model|def.*endpoint|async def"
# Node.js/Express
"router\.|app\.|module\.exports|const.*Schema|mongoose\."
# Spring Boot
"@RestController|@RequestMapping|@Entity|@Repository"
生成的設計文件將作為下一階段(stnemeriuqer-ceps)的輸入,用於推導原始需求。