Skip to main content
MilesChou

orik

by MilesChou

Orik tools

Installation guide →
2 commandsdevelopment GitHub

Commands

ngised-ceps

從現有實作逆向推導技術設計

stnemeriuqer-ceps

從技術設計逆向推導需求和規格

Documentation

# Orik Plugin

逆向工程工具,從現有程式碼實作逆向推導出技術設計和需求文件。

## 功能概述

**ORIK** 是一個創新的逆向工程工具,能夠從既有的程式碼實作中,系統性地推導出技術設計文件和需求規格。當你接手一個缺乏文件的專案,或需要重新梳理系統架構時,ORIK 能協助你快速建立完整的文件體系。

### 逆向分析流程

```
程式碼實作 → 技術設計 → 需求規格
    ↓            ↓           ↓
(現有程式)   (推導設計)   (提取需求)
```

ORIK 採用兩階段逆向工程流程:

1. **階段 1:實作 → 設計** (`ngised-ceps`)
   - 分析程式碼結構和實作模式
   - 識別架構設計和技術堆疊
   - 推導資料模型和 API 契約
   - 生成技術設計文件

2. **階段 2:設計 → 需求** (`stnemeriuqer-ceps`)
   - 從設計文件提取功能需求
   - 推導業務規則和流程
   - 識別非功能性需求
   - 生成 EARS 格式需求文件

## 提供的命令

### `/orik:ngised-ceps [功能路徑或模組名稱]` - 從實作推導設計

從現有程式碼逆向分析並生成技術設計文件。

**執行內容:**

1. **程式碼探索和理解**
   - 識別程式碼範圍(功能路徑、模組、API 端點)
   - 分析程式碼結構(檔案組織、目錄結構、命名慣例)
   - 自動偵測技術堆疊(語言、框架、資料庫、工具)

2. **架構逆向工程**
   - 識別架構模式(MVC、微服務、分層架構等)
   - 建立元件依賴圖
   - 追蹤資料流動路徑

3. **API 和介面分析**
   - 提取所有 API 端點
   - 推導介面契約(請求/回應格式)
   - 識別認證和授權需求

4. **資料模型逆向工程**
   - 從程式碼提取領域實體
   - 分析實體間關係(一對一、一對多、多對多)
   - 提取業務規則和驗證邏輯

**生成檔案:**
- `.orik/reverse/[功能名稱]/design.md` - 技術設計文件
- `.orik/reverse/[功能名稱]/analysis.json` - 分析元資料

**使用範例:**
```bash
# 分析特定功能路徑
/orik:ngised-ceps src/services/auth

# 分析整個模組
/orik:ngised-ceps user-management

# 分析 API 端點
/orik:ngised-ceps api/v1/orders
```

### `/orik:stnemeriuqer-ceps [功能路徑或模組名稱]` - 從設計推導需求

從技術設計逆向推導原始需求和規格文件。

**前置條件:**
必須先執行 `/orik:ngised-ceps` 生成設計文件。

**執行內容:**

1. **設計分析和功能識別**
   - 從 API 端點推導使用者功能
   - 從服務方法推導業務能力
   - 從資料操作推導 CRUD 需求
   - 從認證授權推導使用者角色

2. **業務規則提取**
   - 從驗證規則轉換為業務約束
   - 從錯誤處理推導異常場景
   - 從狀態轉換推導工作流程

3. **非功能性需求推導**
   - 效能需求:從快取策略、分頁實作推導
   - 安全需求:從認證機制、加密實作推導
   - 可用性需求:從架構設計、健康檢查推導

4. **EARS 格式需求生成**
   - 將推導的需求轉換為標準 EARS 格式
   - 建立需求追溯矩陣
   - 評估置信度並標記不確定性

**生成檔案:**
- `.orik/reverse/[功能名稱]/requirements.md` - 需求文件
- `.orik/reverse/[功能名稱]/spec.json` - 規格資料
- `.orik/reverse/[功能名稱]/validation-checklist.md` - 驗證清單

**使用範例:**
```bash
# 從設計推導需求(需先執行 ngised-ceps)
/orik:stnemeriuqer-ceps src/services/auth
```

## 完整使用流程

```bash
# 步驟 1:分析程式碼,推導技術設計
/orik:ngised-ceps user-management

# 步驟 2:從設計推導需求規格
/orik:stnemeriuqer-ceps user-management

# 生成的文件結構:
# .orik/reverse/user-management/
# ├── design.md              # 技術設計文件
# ├── analysis.json          # 分析元資料
# ├── requirements.md        # 需求文件
# ├── spec.json              # 規格資料
# └── validation-checklist.md # 驗證清單
```

## 使用場景

1. **接手遺留系統**:快速理解缺乏文件的既有專案
2. **文件補全**:為老舊專案建立完整的技術文件
3. **架構審查**:系統性分析現有架構的設計決策
4. **知識轉移**:協助新成員快速理解系統結構
5. **需求追溯**:重建需求與實作的追溯關係

## 置信度評估

ORIK 會為推導的內容標記置信度:

- **高置信度**:有明確程式碼證據和一致模式
- **中置信度**:有部分證據但需要推論
- **低置信度**:主要基於假設和慣例

## 重要提醒

1. **推導的需求需要驗證**:與實際利害關係人確認推導的準確性
2. **標記所有推導**:明確區分事實和推測
3. **保留證據鏈**:每個需求都會追溯到程式碼位置
4. **識別矛盾**:記錄不一致或衝突的實作
5. **承認限制**:明確指出無法推導的部分

## 安裝方式

將此 Plugin 加入你的 Claude Code 配置:

```json
{
  "plugins": {
    "orik": {
      "source": "marketplace:orik@mileschou-marketplace"
    }
  }
}
```

## 與 Kiro 的關係

ORIK 是 [Kiro Plugin](../kiro) 的逆向工程版本:

- **Kiro**:需求 → 設計 → 實作(正向開發流程)
- **Orik**:實作 → 設計 → 需求(逆向分析流程)

當使用 ORIK 完成逆向分析後,可以將生成的規格轉換為 Kiro 格式,繼續使用 Kiro 進行正向開發。

## 版本記錄

請參閱 [CHANGELOG.md](./CHANGELOG.md) 查看詳細的版本變更記錄。

## 作者

Miles Chou ([@mileschou-marketplace](https://github.com/MilesChou))