Skip to content

Commit 744c595

Browse files
author
薛華慶, james.hsueh
committed
feat: update spec content
1 parent 8abe7d6 commit 744c595

File tree

2 files changed

+44
-91
lines changed

2 files changed

+44
-91
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "gsi-protocol-installer"
3-
version = "1.1.2"
3+
version = "1.1.3"
44
description = "Installer for GSI-Protocol workflow commands (Claude Code & Codex)"
55
authors = [
66
{name = "James Hsueh", email = "[email protected]"}

scripts/templates/sdd-spec.md

Lines changed: 43 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ description: 階段 1 - 從使用者需求生成 Gherkin 行為規格(PM 角
1010

1111
## 使用者需求
1212

13-
__PROMPT__
13+
**PROMPT**
1414

1515
## 您的職責約束
1616

@@ -19,49 +19,14 @@ __PROMPT__
1919
- 思考:系統應該做什麼?有哪些邊界情況?如何處理錯誤?
2020
- 只使用 Gherkin 語法(Given-When-Then)。
2121

22-
## 重要:行為描述 vs 實作細節
23-
24-
**您的目標是撰寫「功能規格」,而非「測試步驟」。**
25-
26-
### ❌ 避免:實作細節和測試步驟
27-
- 具體的計算數值(例如:"價格應該是 800 美元")
28-
- 資料庫欄位或技術術語
29-
- UI 元件細節(按鈕、表單)
30-
- 系統內部狀態
31-
32-
### ✅ 推薦:業務行為和用戶價值
33-
- 業務規則和政策(例如:"VIP 會員應該獲得折扣優惠")
34-
- 用戶期望和體驗(例如:"購物車應該反映優惠後的金額")
35-
- 業務價值(例如:"提高客戶忠誠度")
36-
- 從用戶角度描述行為
37-
38-
### 對比範例
39-
40-
**❌ 實作細節(測試步驟):**
41-
```gherkin
42-
Given 使用者的會員等級是 "VIP"
43-
When 使用者購買金額是 1000 美元
44-
Then 折扣金額應該是 200 美元
45-
And 最終價格應該是 800 美元
46-
```
47-
48-
**✅ 行為描述(功能規格):**
49-
```gherkin
50-
Given 一位 VIP 會員進行結帳
51-
And 購物車金額達到優惠門檻
52-
When 會員完成訂單
53-
Then 系統應該自動套用 VIP 專屬折扣
54-
And 訂單摘要應該顯示折扣優惠
55-
```
56-
5722
## 您的任務
5823

5924
1. **檢查需求衝突**
6025
- 檢視 `features/` 目錄中所有現有的 feature 檔案
6126
- 分析新需求是否與現有功能規格存在衝突或矛盾
6227
- 如果發現衝突,**立即停止並向使用者確認**
63-
* 列出衝突的功能和具體衝突點
64-
* 詢問使用者如何處理(修改現有功能、調整新需求、或確認覆蓋)
28+
- 列出衝突的功能和具體衝突點
29+
- 詢問使用者如何處理(修改現有功能、調整新需求、或確認覆蓋)
6530
- 只有在無衝突或使用者確認後才繼續下一步
6631

6732
2. **分析需求**,考慮:
@@ -85,88 +50,76 @@ Feature: <清楚簡潔的功能名稱>
8550
<功能業務價值的簡短描述>
8651
8752
Scenario: <正常流程情境名稱>
88-
Given <業務前置條件,從用戶角度描述>
89-
And <補充前置條件>
90-
When <用戶執行的業務動作>
91-
And <額外的業務動作(如需要)>
92-
Then <預期的業務結果,描述行為而非驗證>
93-
And <補充的業務結果>
53+
Given <前置條件 1>
54+
And <前置條件 2>
55+
When <使用者動作或事件>
56+
And <額外動作(如需要)>
57+
Then <預期結果 1>
58+
And <預期結果 2>
9459
9560
Scenario: <邊界情況情境名稱>
96-
Given <邊界情況的業務場景>
97-
When <邊界情況下的用戶動作>
98-
Then <系統應展現的業務行為>
61+
Given <邊界情況設定>
62+
When <邊界情況下的動作>
63+
Then <預期行為>
9964
10065
Scenario: <錯誤處理情境名稱>
101-
Given <導致錯誤的業務情境>
102-
When <觸發錯誤的用戶動作>
103-
Then <系統應如何回應(從業務角度)>
66+
Given <無效條件>
67+
When <嘗試的動作>
68+
Then <預期的錯誤回應>
10469
```
10570

106-
**撰寫技巧:**
107-
- Given:描述業務情境,而非系統狀態(例如:「VIP 會員進行結帳」而非「會員等級 = VIP」)
108-
- When:描述用戶行為,而非系統操作(例如:「完成訂單」而非「呼叫 checkout API」)
109-
- Then:描述業務期望,而非技術驗證(例如:「應該套用折扣」而非「折扣 = 200」)
110-
11171
## 範例輸出
11272

11373
針對需求:"VIP 使用者購買超過 $100 可享 20% 折扣"
11474

11575
```gherkin
116-
Feature: VIP 會員優惠計劃
117-
作為企業,我想要給予 VIP 客戶購物折扣優惠
76+
Feature: VIP 折扣系統
77+
作為企業,我想要給予 VIP 客戶折扣優惠
11878
以提高客戶忠誠度和重複購買率。
11979
120-
Scenario: VIP 會員大額購物獲得優惠
121-
Given 一位 VIP 會員進行結帳
122-
And 購物車金額達到優惠門檻
123-
When 會員完成訂單
124-
Then 系統應該自動套用 VIP 專屬折扣
125-
And 訂單摘要應該顯示折扣優惠
126-
127-
Scenario: 一般會員無優惠資格
128-
Given 一位一般會員進行結帳
129-
And 購物車金額達到優惠門檻
130-
When 會員完成訂單
131-
Then 系統應該以原價結帳
132-
And 訂單摘要不顯示折扣資訊
133-
134-
Scenario: VIP 會員小額購物未達門檻
135-
Given 一位 VIP 會員進行結帳
136-
And 購物車金額未達優惠門檻
137-
When 會員完成訂單
138-
Then 系統應該以原價結帳
139-
And 提示會員還需消費多少才能享有優惠
140-
141-
Scenario: 拒絕異常的訂單金額
142-
Given 會員嘗試建立訂單
143-
When 購物車金額為負數或零
144-
Then 系統應該拒絕訂單
145-
And 提示會員購物車金額無效
80+
Scenario: 對 VIP 使用者套用折扣
81+
Given 使用者是 VIP
82+
When 使用者購買 1000 美元
83+
Then 最終價格應該是 800 美元
84+
And 套用的折扣應該是 200 美元
85+
86+
Scenario: 非 VIP 使用者無折扣
87+
Given 使用者是 NORMAL
88+
When 使用者購買 1000 美元
89+
Then 最終價格應該是 1000 美元
90+
And 套用的折扣應該是 0 美元
91+
92+
Scenario: 購買金額低於門檻無折扣
93+
Given 使用者是 VIP
94+
When 使用者購買 50 美元
95+
Then 最終價格應該是 50 美元
96+
And 套用的折扣應該是 0 美元
97+
98+
Scenario: 處理無效的購買金額
99+
Given 使用者是 VIP
100+
When 使用者購買 -100 美元
101+
Then 系統應該拒絕並回應錯誤 "無效的購買金額"
146102
```
147103

148104
## 品質檢查清單
149105

150106
完成前,確保您的規格具有:
107+
151108
- [ ] 已檢查與現有功能的衝突(如有衝突已向使用者確認)
152-
- [ ] 清楚的功能描述,強調業務價值
109+
- [ ] 清楚的功能描述
153110
- [ ] 至少一個正常流程情境
154111
- [ ] 至少一個邊界情況情境
155112
- [ ] 至少一個錯誤處理情境
156113
- [ ] 沒有技術實作細節(沒有資料庫、沒有程式碼、沒有架構)
157114
- [ ] 所有情境遵循 Given-When-Then 格式
158115
- [ ] 每個情境都是原子性且可測試的
159-
- [ ] **使用行為描述而非實作細節**
160-
- [ ] 避免具體的計算數值和測試斷言
161-
- [ ] 從用戶或業務角度描述期望行為
162-
- [ ] 描述「應該發生什麼」而非「如何驗證」
163-
- [ ] 使用業務語言而非技術術語
164116

165117
## 下一步
166118

167119
完成此階段後:
120+
168121
- 儲存 `.feature` 檔案
169-
- 您可以使用以下指令進入階段 2:`__CMD_PREFIX__sdd-arch features/<feature_name>.feature`
122+
- 您可以使用以下指令進入階段 2:`/sdd-arch features/<feature_name>.feature`
170123
- 或返回給使用者審查
171124

172125
現在根據使用者的需求建立 Gherkin 規格。

0 commit comments

Comments
 (0)