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

316 lines
8.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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`
```markdown
# 逆向工程需求文件
## 分析元資料
- 推導日期:[當前日期]
- 基於設計:.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`
```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`
```markdown
# 需求驗證檢查清單
## 與利害關係人確認
- [ ] 推導的使用者角色是否完整?
- [ ] 業務流程是否符合實際運作?
- [ ] 優先級是否正確?
## 與開發團隊確認
- [ ] 技術約束是否正確理解?
- [ ] 非功能需求是否合理?
- [ ] 是否有未記錄的重要功能?
## 與測試團隊確認
- [ ] 驗收標準是否可測試?
- [ ] 邊界條件是否完整?
- [ ] 測試場景是否涵蓋所有需求?
## 建議的後續行動
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. **生成可行動建議** - 提供具體的後續步驟
生成的需求文件提供了從實作逆向推導的完整需求視圖,但需要與實際利害關係人驗證以確保準確性。