Files
gh-mileschou-claude-marketp…/commands/stnemeriuqer-ceps.md
2025-11-30 08:40:31 +08:00

8.4 KiB
Raw Permalink Blame History

description, argument-hint, allowed-tools
description argument-hint allowed-tools
從技術設計逆向推導需求和規格
功能路徑或模組名稱
Bash, Read, Write, Edit, MultiEdit

逆向工程:從設計推導需求

從技術設計逆向推導原始需求和規格:$ARGUMENTS

前置條件驗證

檢查設計文件

  • 設計文件:@.orik/reverse/$ARGUMENTS/design.md
  • 分析資料:@.orik/reverse/$ARGUMENTS/analysis.json

必須先執行 /orik:ngised-ceps $ARGUMENTS 生成設計文件

任務:從設計推導需求

1. 設計分析和功能識別

1.1 功能清單提取

從設計文件識別所有功能:

功能映射
├── API 端點 → 使用者功能
├── 服務方法 → 業務能力
├── 資料操作 → CRUD 需求
└── 整合點 → 外部互動需求

1.2 使用者角色推導

從認證和授權模式推導:

  • 識別的角色類型
  • 權限矩陣
  • 存取控制規則
  • 多租戶需求(如果有)

1.3 業務流程重建

從資料流和序列圖推導:

  • 主要業務流程
  • 使用者旅程
  • 系統互動模式
  • 事件驅動流程

2. 業務規則提取

2.1 驗證規則轉換為需求

從程式碼驗證推導業務規則:

驗證邏輯 → 業務約束
├── 欄位驗證 → 資料品質需求
├── 關係約束 → 業務關聯規則
├── 狀態轉換 → 工作流程需求
└── 計算邏輯 → 業務計算規則

2.2 錯誤處理映射

從錯誤處理推導異常場景:

  • 預期的錯誤情況 → 邊界條件需求
  • 錯誤訊息 → 使用者回饋需求
  • 重試邏輯 → 可靠性需求
  • 降級策略 → 容錯需求

3. 非功能性需求推導

3.1 效能需求

從實作模式推導:

  • 快取策略 → 回應時間需求
  • 分頁實作 → 大量資料處理需求
  • 非同步處理 → 並發需求
  • 索引策略 → 查詢效能需求

3.2 安全需求

從安全實作推導:

  • 認證機制 → 身分驗證需求
  • 加密實作 → 資料保護需求
  • 輸入消毒 → 安全輸入需求
  • 稽核日誌 → 合規需求

3.3 可用性需求

從架構設計推導:

  • 負載平衡 → 高可用需求
  • 資料備份 → 災難復原需求
  • 健康檢查 → 監控需求
  • 錯誤恢復 → 韌性需求

4. EARS 格式需求生成

將推導的需求轉換為 EARS 格式:

4.1 功能需求模板

從 API: POST /api/users
推導為: 當使用者提交註冊表單,則系統應建立新帳戶並發送確認郵件

從驗證: email.unique()
推導為: 如果電子郵件已存在,則系統應拒絕註冊並顯示錯誤訊息

4.2 非功能需求模板

從快取: Redis TTL=3600
推導為: 當查詢使用者資料時系統應在1秒內回應

從重試: maxRetries=3
推導為: 如果外部服務失敗則系統應重試最多3次

5. 需求文件生成

生成 .orik/reverse/$ARGUMENTS/requirements.md

# 逆向工程需求文件

## 分析元資料
- 推導日期:[當前日期]
- 基於設計:.orik/reverse/$ARGUMENTS/design.md
- 置信度:[高/中/低]
- 推導方法ORIK 逆向工程

## 簡介
[從功能總覽推導的系統目的和價值主張]

## 推導的業務背景
### 可能的業務驅動因素
[從技術選擇推測業務考量]

### 推測的使用者問題
[從功能設計推導要解決的問題]

## 需求

### 需求 1[主要功能領域]
**推導的使用者故事:** 作為 [角色],我想要 [功能],以便 [利益]

#### 驗收標準EARS 格式)
1. 當 [從程式碼觀察的觸發] 則系統應 [從實作推導的行為]
2. 如果 [從驗證推導的條件] 則系統應 [從錯誤處理推導的回應]
3. 當 [從狀態管理推導] 系統應持續 [從背景任務推導]

**證據來源:**
- 檔案:[程式碼位置]
- 函數:[具體實作]
- 置信度:[高/中/低]

### 需求 2[次要功能領域]
[繼續相同模式...]

## 非功能性需求(推導)

### 效能需求
[從實作模式推導的效能期望]

### 安全需求
[從安全措施推導的安全需求]

### 可用性需求
[從架構推導的可用性需求]

## 識別的需求缺口

### 可能遺漏的需求
- [從設計不一致性推測]
- [從未使用的程式碼推測]
- [從TODO註解推測]

### 不明確的需求
- [模糊的業務規則]
- [硬編碼的假設]
- [缺乏錯誤處理的區域]

## 需求優先級推測

### 核心需求(必須有)
[從核心功能和嚴格驗證推導]

### 重要需求(應該有)
[從輔助功能和部分實作推導]

### 期望需求(可以有)
[從實驗性功能或註解掉的程式碼推導]

## 需求追溯矩陣

| 需求編號 | 設計元件 | 程式碼實作 | 測試覆蓋 | 置信度 |
|---------|---------|-----------|---------|--------|
| REQ-1.1 | API端點 | controller.py:45 | ✓ | 高 |
| REQ-1.2 | 服務層 | service.py:120 | ✗ | 中 |
[...]

6. 規格文件生成

生成 .orik/reverse/$ARGUMENTS/spec.json

{
  "reverse_engineering": true,
  "original_type": "implementation",
  "analysis_phases": {
    "implementation_analyzed": true,
    "design_derived": true,
    "requirements_extracted": true
  },
  "confidence_metrics": {
    "overall": "medium",
    "functional_requirements": "high",
    "non_functional_requirements": "medium",
    "business_context": "low"
  },
  "coverage": {
    "code_analyzed": "85%",
    "features_identified": 23,
    "requirements_derived": 18,
    "gaps_found": 5
  },
  "recommendations": [
    "與領域專家驗證推導的需求",
    "補充缺失的業務背景",
    "確認非功能性需求的準確性"
  ],
  "timestamp": "當前時間戳記"
}

7. 生成驗證建議

建立 .orik/reverse/$ARGUMENTS/validation-checklist.md

# 需求驗證檢查清單

## 與利害關係人確認
- [ ] 推導的使用者角色是否完整?
- [ ] 業務流程是否符合實際運作?
- [ ] 優先級是否正確?

## 與開發團隊確認
- [ ] 技術約束是否正確理解?
- [ ] 非功能需求是否合理?
- [ ] 是否有未記錄的重要功能?

## 與測試團隊確認
- [ ] 驗收標準是否可測試?
- [ ] 邊界條件是否完整?
- [ ] 測試場景是否涵蓋所有需求?

## 建議的後續行動
1. 安排需求審查會議
2. 與原始開發者訪談(如果可能)
3. 進行使用者訪談以驗證假設
4. 建立正式的需求文件

8. 完成報告

生成分析完成報告:

🔄 ORIK 逆向工程完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 分析統計
  • 識別功能需求:[數量]
  • 推導非功能需求:[數量]
  • 發現需求缺口:[數量]
  • 整體置信度:[高/中/低]

📁 生成文件
  ✓ 需求文件:.orik/reverse/$ARGUMENTS/requirements.md
  ✓ 規格資料:.orik/reverse/$ARGUMENTS/spec.json
  ✓ 驗證清單:.orik/reverse/$ARGUMENTS/validation-checklist.md

⚠️ 重要提醒
  推導的需求需要與實際利害關係人驗證
  
🎯 建議下一步
  1. 審查推導的需求文件
  2. 與團隊驗證準確性
  3. 補充缺失的業務背景

推導策略

從程式碼到意圖

程式碼模式 → 設計決策 → 業務需求
├── CRUD 操作 → 資料管理 → 資訊維護需求
├── 工作流程碼 → 狀態機 → 業務流程需求
├── 驗證規則 → 資料品質 → 業務規則需求
└── 整合代碼 → 系統互動 → 整合需求

置信度評估

  • :有明確程式碼證據和一致模式
  • :有部分證據但需要推論
  • :主要基於假設和慣例

注意事項

  1. 標記所有推導:明確區分事實和推測
  2. 保留證據鏈:每個需求都要追溯到程式碼
  3. 識別矛盾:記錄不一致或衝突的實作
  4. 承認限制:明確指出無法推導的部分
  5. 建議驗證:提供驗證推導正確性的方法

指示

  1. 仔細分析設計文件 - 提取所有功能和非功能線索
  2. 應用 EARS 格式 - 將觀察轉換為標準需求語句
  3. 建立追溯性 - 連接需求到設計到程式碼
  4. 評估置信度 - 為每個推導標記可信度
  5. 識別缺口 - 找出可能遺漏或不完整的需求
  6. 提供驗證路徑 - 建議如何確認推導的準確性
  7. 生成可行動建議 - 提供具體的後續步驟

生成的需求文件提供了從實作逆向推導的完整需求視圖,但需要與實際利害關係人驗證以確保準確性。