|
4 | 4 |
|
5 | 5 | ## 指令概覽 |
6 | 6 |
|
| 7 | +### 核心工作流程(必需) |
| 8 | + |
7 | 9 | ``` |
8 | 10 | /sdd-auto → 自動模式:自動執行全部 4 個 Phase |
9 | 11 | /sdd-spec → Phase 1:生成 Gherkin 規格 |
10 | 12 | /sdd-arch → Phase 2:設計架構(繁中文件) |
11 | | -/sdd-integration-test → BDD:生成 Integration Tests(測試先行) |
12 | 13 | /sdd-impl → Phase 3:實作邏輯 |
13 | 14 | /sdd-verify → Phase 4:驗證實作 |
14 | 15 | ``` |
15 | 16 |
|
| 17 | +### 選用指令 |
| 18 | + |
| 19 | +``` |
| 20 | +/sdd-integration-test → 🔷 選用:生成 Integration Tests(BDD 測試先行) |
| 21 | +``` |
| 22 | + |
| 23 | +> **💡 提示:** `/sdd-integration-test` 適合重視測試先行開發的團隊,在 Phase 2 之後、Phase 3 之前使用。 |
| 24 | +
|
16 | 25 | --- |
17 | 26 |
|
18 | 27 | ## `/sdd-auto` - 自動模式 |
|
110 | 119 |
|
111 | 120 | --- |
112 | 121 |
|
113 | | -## `/sdd-integration-test` - BDD Integration Tests |
| 122 | +## `/sdd-integration-test` - BDD Integration Tests(選用) |
114 | 123 |
|
115 | 124 | **目的:** 從 feature file 和 architecture.md 生成 integration tests(測試先行),測試會失敗(紅燈),等待實作後轉為通過(綠燈)。 |
116 | 125 |
|
| 126 | +> **🔷 此為選用階段**:適合實踐 BDD 測試先行的團隊。如果您的專案不需要測試先行開發,可以跳過此階段直接使用 `/sdd-impl`。 |
| 127 | +
|
117 | 128 | **用法:** |
118 | 129 | ```bash |
119 | 130 | /sdd-integration-test <feature_file_path> |
|
142 | 153 | **BDD 工作流程:** |
143 | 154 | 1. **規格階段**:定義 feature file(`/sdd-spec`) |
144 | 155 | 2. **架構階段**:設計技術架構(`/sdd-arch`) |
145 | | -3. **測試階段**(本指令):生成 integration tests(🔴 紅燈) |
| 156 | +3. **測試階段**(本指令,🔷 選用):生成 integration tests(🔴 紅燈) |
146 | 157 | 4. **實作階段**:實作功能(`/sdd-impl`) |
147 | 158 | 5. **驗證階段**:確認測試通過(`/sdd-verify` → 🟢 綠燈) |
148 | 159 |
|
149 | 160 | **何時使用:** |
150 | | -- ✅ 完成 `/sdd-spec` 和 `/sdd-arch` 後 |
151 | | -- ✅ 需要先定義測試場景 |
152 | | -- ✅ 確保實作符合業務需求 |
| 161 | +- ✅ 團隊實踐 BDD 測試先行開發 |
| 162 | +- ✅ 需要完整的整合測試覆蓋 |
| 163 | +- ✅ 複雜的業務邏輯需要驗證 |
153 | 164 | - ✅ 建立整合測試框架 |
154 | | -- ✅ 與 `/sdd-impl` 搭配使用(測試先行開發) |
| 165 | +- ✅ 與 `/sdd-impl` 搭配使用 |
| 166 | + |
| 167 | +**何時跳過:** |
| 168 | +- ⏭️ 簡單的 CRUD 功能 |
| 169 | +- ⏭️ 快速原型開發 |
| 170 | +- ⏭️ 時程緊迫的專案 |
| 171 | +- ⏭️ 團隊不熟悉 BDD |
155 | 172 |
|
156 | 173 | **支援框架:** |
157 | 174 | - **TypeScript**: Jest/Vitest + Supertest |
|
218 | 235 |
|
219 | 236 | ## 工作流程比較 |
220 | 237 |
|
221 | | -### 自動模式流程 |
| 238 | +### 標準工作流程(推薦) |
222 | 239 | ``` |
223 | 240 | 使用者需求 |
224 | 241 | ↓ |
225 | | -/sdd-auto <需求> |
| 242 | +/sdd-spec <需求> |
226 | 243 | ↓ |
227 | | -[全部 4 個階段自動執行] |
| 244 | +[審查 Gherkin] |
| 245 | + ↓ |
| 246 | +/sdd-arch features/spec.feature |
| 247 | + ↓ |
| 248 | +[審查結構] |
| 249 | + ↓ |
| 250 | +/sdd-impl features/spec.feature |
| 251 | + ↓ |
| 252 | +[審查實作] |
| 253 | + ↓ |
| 254 | +/sdd-verify features/spec.feature |
228 | 255 | ↓ |
229 | 256 | 完整功能 |
230 | 257 | ``` |
231 | 258 |
|
232 | 259 | **優點:** |
233 | | -- ⚡ 最快獲得可運作程式碼的方式 |
234 | | -- 🎯 單一指令 |
235 | | -- 🔄 適合迭代 |
236 | | - |
237 | | -**缺點:** |
238 | | -- 🚫 階段之間無手動審查 |
239 | | -- 🚫 如果複雜可能需要重做 |
| 260 | +- 🎯 流程清晰,易於理解 |
| 261 | +- ⚡ 開發速度快 |
| 262 | +- 📋 適合大多數專案 |
240 | 263 |
|
241 | 264 | --- |
242 | 265 |
|
243 | | -### 手動模式流程 |
| 266 | +### BDD 測試先行工作流程(選用) |
244 | 267 | ``` |
245 | 268 | 使用者需求 |
246 | 269 | ↓ |
|
252 | 275 | ↓ |
253 | 276 | [審查結構] |
254 | 277 | ↓ |
255 | | -/sdd-impl features/spec.feature structure/struct.py |
| 278 | +/sdd-integration-test features/spec.feature 🔷 選用 |
256 | 279 | ↓ |
257 | | -[審查實作] |
| 280 | +[審查測試 - 紅燈] |
| 281 | + ↓ |
| 282 | +/sdd-impl features/spec.feature |
258 | 283 | ↓ |
259 | | -/sdd-verify features/spec.feature implementation/impl.py |
| 284 | +[審查實作 - 綠燈] |
| 285 | + ↓ |
| 286 | +/sdd-verify features/spec.feature |
| 287 | + ↓ |
| 288 | +完整功能 + 完整測試 |
| 289 | +``` |
| 290 | + |
| 291 | +**優點:** |
| 292 | +- 🎯 測試先行,品質更高 |
| 293 | +- 📋 完整的整合測試覆蓋 |
| 294 | +- 🔍 更適合複雜業務邏輯 |
| 295 | + |
| 296 | +**缺點:** |
| 297 | +- ⏱️ 需要額外時間 |
| 298 | +- 🔢 需要更多步驟 |
| 299 | +- 📚 團隊需熟悉 BDD |
| 300 | + |
| 301 | +--- |
| 302 | + |
| 303 | +### 自動模式流程 |
| 304 | +``` |
| 305 | +使用者需求 |
| 306 | + ↓ |
| 307 | +/sdd-auto <需求> |
| 308 | + ↓ |
| 309 | +[全部 4 個階段自動執行] |
260 | 310 | ↓ |
261 | 311 | 完整功能 |
262 | 312 | ``` |
263 | 313 |
|
264 | 314 | **優點:** |
265 | | -- 🎯 每個階段完全控制 |
266 | | -- 📋 手動審查檢查點 |
267 | | -- 🔍 更適合複雜功能 |
| 315 | +- ⚡ 最快獲得可運作程式碼的方式 |
| 316 | +- 🎯 單一指令 |
| 317 | +- 🔄 適合迭代 |
268 | 318 |
|
269 | 319 | **缺點:** |
270 | | -- ⏱️ 更耗時 |
271 | | -- 🔢 需要多個指令 |
| 320 | +- 🚫 階段之間無手動審查 |
| 321 | +- 🚫 不包含 integration tests |
| 322 | +- 🚫 如果複雜可能需要重做 |
272 | 323 |
|
273 | 324 | --- |
274 | 325 |
|
|
277 | 328 | | 情境 | 建議指令 | |
278 | 329 | |----------|-------------------| |
279 | 330 | | "快速原型展示" | `/sdd-auto` | |
280 | | -| "需要團隊審查的生產功能" | 手動階段 | |
| 331 | +| "需要團隊審查的生產功能" | 標準工作流程 | |
281 | 332 | | "學習 SDD 方法論" | 先使用 `/sdd-auto`,然後嘗試手動 | |
282 | 333 | | "API 契約設計" | `/sdd-spec` + `/sdd-arch` | |
283 | | -| "複雜業務邏輯" | 手動階段 | |
| 334 | +| "複雜業務邏輯" | 標準工作流程 | |
284 | 335 | | "測試想法" | `/sdd-auto` | |
285 | 336 | | "遷移現有程式碼" | 先使用 `/sdd-spec` | |
286 | | -| "需要利害關係人批准" | 手動階段 | |
287 | | -| "BDD 測試先行開發" | `/sdd-integration-test` + `/sdd-impl` | |
288 | | -| "建立整合測試" | `/sdd-integration-test` | |
| 337 | +| "需要利害關係人批准" | 標準工作流程 | |
| 338 | +| "BDD 測試先行開發" | BDD 測試先行工作流程(含 `/sdd-integration-test`) | |
| 339 | +| "建立整合測試框架" | `/sdd-integration-test` | |
| 340 | +| "簡單 CRUD 功能" | 標準工作流程(跳過 `/sdd-integration-test`) | |
289 | 341 |
|
290 | 342 | --- |
291 | 343 |
|
@@ -374,12 +426,15 @@ pipx run gsi-protocol-installer |
374 | 426 | **快速參考卡:** |
375 | 427 |
|
376 | 428 | ``` |
377 | | -快速原型 → /sdd-auto <需求> |
378 | | -生產程式碼 → /sdd-spec → /sdd-arch → /sdd-impl → /sdd-verify |
379 | | -BDD 測試先行開發 → /sdd-spec → /sdd-arch → /sdd-integration-test → /sdd-impl → /sdd-verify |
380 | | -只要規格 → /sdd-spec <需求> |
381 | | -只要架構 → /sdd-arch <spec.feature> |
382 | | -只要整合測試 → /sdd-integration-test <spec.feature> |
383 | | -只要程式碼 → /sdd-impl <spec.feature> |
384 | | -只要驗證 → /sdd-verify <spec.feature> |
| 429 | +快速原型 → /sdd-auto <需求> |
| 430 | +
|
| 431 | +標準工作流程(推薦) → /sdd-spec → /sdd-arch → /sdd-impl → /sdd-verify |
| 432 | +
|
| 433 | +BDD 測試先行(選用) → /sdd-spec → /sdd-arch → /sdd-integration-test → /sdd-impl → /sdd-verify |
| 434 | +
|
| 435 | +只要規格 → /sdd-spec <需求> |
| 436 | +只要架構 → /sdd-arch <spec.feature> |
| 437 | +只要整合測試(選用) → /sdd-integration-test <spec.feature> |
| 438 | +只要程式碼 → /sdd-impl <spec.feature> |
| 439 | +只要驗證 → /sdd-verify <spec.feature> |
385 | 440 | ``` |
0 commit comments