universal-dev-standards 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/ai/options/commit-message/bilingual.ai.yaml +19 -1
- package/bundled/ai/standards/checkin-standards.ai.yaml +3 -3
- package/bundled/ai/standards/documentation-writing-standards.ai.yaml +1 -1
- package/bundled/ai/standards/frontend-design-standards.ai.yaml +33 -3
- package/bundled/ai/standards/push-standards.ai.yaml +14 -3
- package/bundled/ai/standards/requirement-engineering.ai.yaml +42 -3
- package/bundled/ai/standards/self-review-protocol.ai.yaml +15 -10
- package/bundled/ai/standards/verification-evidence.ai.yaml +88 -5
- package/bundled/core/checkin-standards.md +3 -3
- package/bundled/core/documentation-writing-standards.md +1 -1
- package/bundled/core/feature-discovery-standards.md +191 -0
- package/bundled/core/frontend-design-standards.md +93 -4
- package/bundled/core/multi-environment-e2e-testing.md +195 -0
- package/bundled/core/push-standards.md +82 -0
- package/bundled/core/requirement-engineering.md +2 -2
- package/bundled/core/self-review-protocol.md +13 -8
- package/bundled/core/verification-evidence.md +170 -10
- package/bundled/locales/COVERAGE.md +27 -21
- package/bundled/locales/zh-CN/CHANGELOG.md +26 -3
- package/bundled/locales/zh-CN/CLAUDE.md +1 -1
- package/bundled/locales/zh-CN/MAINTENANCE.md +42 -661
- package/bundled/locales/zh-CN/README.md +10 -10
- package/bundled/locales/zh-CN/SECURITY.md +2 -2
- package/bundled/locales/zh-CN/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-CN/core/browser-compatibility-standards.md +17 -7
- package/bundled/locales/zh-CN/core/cost-budget-test.md +1 -1
- package/bundled/locales/zh-CN/core/cross-flow-regression.md +8 -7
- package/bundled/locales/zh-CN/core/flaky-test-management.md +1 -1
- package/bundled/locales/zh-CN/core/flow-based-testing.md +8 -8
- package/bundled/locales/zh-CN/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-CN/core/full-coverage-testing.md +74 -2
- package/bundled/locales/zh-CN/core/license-compliance.md +3 -1
- package/bundled/locales/zh-CN/core/logging-standards.md +83 -7
- package/bundled/locales/zh-CN/core/mock-boundary.md +58 -6
- package/bundled/locales/zh-CN/core/packaging-standards.md +2 -1
- package/bundled/locales/zh-CN/core/pipeline-security-gates.md +24 -4
- package/bundled/locales/zh-CN/core/prompt-regression.md +1 -1
- package/bundled/locales/zh-CN/core/replay-test.md +1 -1
- package/bundled/locales/zh-CN/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-CN/core/security-testing.md +24 -7
- package/bundled/locales/zh-CN/core/self-review-protocol.md +17 -12
- package/bundled/locales/zh-CN/core/smoke-test.md +1 -1
- package/bundled/locales/zh-CN/core/verification-evidence.md +252 -41
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +6 -2
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +16 -25
- package/bundled/locales/zh-CN/docs/user/GLOSSARY.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/SKILL.md +21 -19
- package/bundled/locales/zh-CN/skills/brainstorm-assistant/guide.md +14 -11
- package/bundled/locales/zh-CN/skills/dev-methodology/guide.md +1 -1
- package/bundled/locales/zh-CN/skills/logging-guide/SKILL.md +29 -6
- package/bundled/locales/zh-CN/skills/spec-derivation/guide.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +26 -3
- package/bundled/locales/zh-TW/CLAUDE.md +1 -1
- package/bundled/locales/zh-TW/MAINTENANCE.md +32 -8
- package/bundled/locales/zh-TW/README.md +10 -10
- package/bundled/locales/zh-TW/SECURITY.md +2 -2
- package/bundled/locales/zh-TW/ai/options/commit-message/bilingual.ai.yaml +6 -1
- package/bundled/locales/zh-TW/core/cost-budget-test.md +1 -1
- package/bundled/locales/zh-TW/core/flaky-test-management.md +1 -1
- package/bundled/locales/zh-TW/core/flow-based-testing.md +8 -8
- package/bundled/locales/zh-TW/core/frontend-design-standards.md +1 -1
- package/bundled/locales/zh-TW/core/license-compliance.md +3 -1
- package/bundled/locales/zh-TW/core/logging-standards.md +2 -2
- package/bundled/locales/zh-TW/core/mock-boundary.md +1 -1
- package/bundled/locales/zh-TW/core/packaging-standards.md +2 -1
- package/bundled/locales/zh-TW/core/pipeline-security-gates.md +24 -4
- package/bundled/locales/zh-TW/core/prompt-regression.md +1 -1
- package/bundled/locales/zh-TW/core/replay-test.md +1 -1
- package/bundled/locales/zh-TW/core/requirement-engineering.md +1 -1
- package/bundled/locales/zh-TW/core/security-testing.md +24 -7
- package/bundled/locales/zh-TW/core/self-review-protocol.md +16 -11
- package/bundled/locales/zh-TW/core/smoke-test.md +1 -1
- package/bundled/locales/zh-TW/core/verification-evidence.md +260 -31
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +6 -2
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +16 -25
- package/bundled/locales/zh-TW/docs/user/GLOSSARY.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +10 -3
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/SKILL.md +21 -19
- package/bundled/locales/zh-TW/skills/brainstorm-assistant/guide.md +14 -11
- package/bundled/locales/zh-TW/skills/dev-methodology/guide.md +1 -1
- package/bundled/locales/zh-TW/skills/logging-guide/SKILL.md +29 -6
- package/bundled/locales/zh-TW/skills/spec-derivation/guide.md +1 -1
- package/bundled/skills/brainstorm-assistant/SKILL.md +22 -20
- package/bundled/skills/brainstorm-assistant/guide.md +10 -7
- package/bundled/skills/spec-driven-dev/SKILL.md +11 -0
- package/package.json +3 -3
- package/src/commands/init.js +58 -17
- package/standards-registry.json +10 -10
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../../core/verification-evidence.md
|
|
3
|
-
source_version: 1.
|
|
4
|
-
translation_version: 1.
|
|
5
|
-
last_synced: 2026-
|
|
3
|
+
source_version: 1.2.0
|
|
4
|
+
translation_version: 1.2.0
|
|
5
|
+
last_synced: 2026-07-17
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -10,8 +10,8 @@ status: current
|
|
|
10
10
|
|
|
11
11
|
> **語言**: [English](../../../core/verification-evidence.md) | 繁體中文
|
|
12
12
|
|
|
13
|
-
**版本**: 1.
|
|
14
|
-
**最後更新**: 2026-
|
|
13
|
+
**版本**: 1.2.0
|
|
14
|
+
**最後更新**: 2026-07-17
|
|
15
15
|
**適用性**: 所有 AI 輔助開發工作流
|
|
16
16
|
**範圍**: 通用 (Universal)
|
|
17
17
|
**靈感來源**: [Superpowers](https://github.com/obra/superpowers) — verification-before-completion (MIT)
|
|
@@ -20,7 +20,12 @@ status: current
|
|
|
20
20
|
|
|
21
21
|
## 目的
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
建立「鐵律」:無驗證證據不可聲稱完成——並確保**證據本身站得住腳**。本標準防兩種不同的失敗:
|
|
24
|
+
|
|
25
|
+
1. **無證據就宣稱成功**——代理斷言它從未查過的事(Iron Law)。
|
|
26
|
+
2. **證據撐不起它的主張**——代理**確實查了**,而查詢工具靜默地沒有運作(證據有效性,v1.2.0 新增)。
|
|
27
|
+
|
|
28
|
+
前者是幻覺的一種,**後者不是**——沒有任何東西被捏造,是一個真實的指令產生了真實的輸出,而那個輸出的意思不是它看起來的意思。兩者殊途同歸:一個不成立的完成聲明。
|
|
24
29
|
|
|
25
30
|
---
|
|
26
31
|
|
|
@@ -31,7 +36,10 @@ status: current
|
|
|
31
36
|
| 驗證證據 (Verification Evidence) | 驗證指令執行及其結果的結構化記錄 |
|
|
32
37
|
| 鐵律 (Iron Law) | 絕對規則:無證據 = 不可聲稱完成 |
|
|
33
38
|
| RED-GREEN 循環 | 透過展示修復前測試失敗、修復後測試通過來證明 bug 修復 |
|
|
34
|
-
| Exit Code |
|
|
39
|
+
| Exit Code | 指令的數值回傳值。**「`0 = 成功`」是工具的慣例,不是保證** —— 見「證據有效性」 |
|
|
40
|
+
| 環境層次 (Environment Layer) | 該證據是從哪個環境蒐集而來(`local` / `uat` / `prd`) |
|
|
41
|
+
| 證據有效性 (Evidence Validity) | 證據*本身*是否可信 —— 亦即驗證指令究竟有沒有真的執行、有沒有真的量到它宣稱量到的東西 |
|
|
42
|
+
| 工具靜默失敗 (Silent Tool Failure) | 驗證指令根本沒跑起來,或跑了但什麼都沒量到,卻產生了與真實結果無從分辨的輸出 |
|
|
35
43
|
|
|
36
44
|
---
|
|
37
45
|
|
|
@@ -41,54 +49,275 @@ status: current
|
|
|
41
49
|
|
|
42
50
|
代理聲稱「已完成」不是證據。驗證必須是可獨立執行且產生可觀察輸出的。
|
|
43
51
|
|
|
52
|
+
### 非證據的聲明
|
|
53
|
+
|
|
54
|
+
以下聲明**不構成**驗證證據:
|
|
55
|
+
|
|
56
|
+
| 聲明 | 原因 |
|
|
57
|
+
|------|------|
|
|
58
|
+
| 「已完成」 | 無可觀察的輸出 |
|
|
59
|
+
| 「應該可以了」 | 未執行驗證 |
|
|
60
|
+
| 「我改了程式碼」 | 修改 ≠ 驗證 |
|
|
61
|
+
| 「測試應該會通過」 | 預測 ≠ 事實 |
|
|
62
|
+
| 「指令回傳 0。」 | 僅在該指令有可能量到它所主張的事時才成立 —— 見「證據有效性」 |
|
|
63
|
+
|
|
44
64
|
---
|
|
45
65
|
|
|
46
66
|
## 證據格式
|
|
47
67
|
|
|
48
|
-
|
|
68
|
+
每次驗證都必須產生結構化的證據記錄:
|
|
49
69
|
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"command": "pnpm test -- --filter core",
|
|
73
|
+
"exit_code": 0,
|
|
74
|
+
"output": "Tests: 47 passed, 0 failed\nDuration: 3.2s",
|
|
75
|
+
"timestamp": "2026-03-20T14:30:00Z",
|
|
76
|
+
"environment_layer": "local"
|
|
77
|
+
}
|
|
57
78
|
```
|
|
58
79
|
|
|
80
|
+
### 必填欄位
|
|
81
|
+
|
|
82
|
+
| 欄位 | 型別 | 必填 | 說明 |
|
|
83
|
+
|------|------|------|------|
|
|
84
|
+
| `command` | string | 是 | 實際執行的驗證指令 |
|
|
85
|
+
| `exit_code` | number | 是 | 指令的 exit code。**須依「證據有效性」解讀 —— 此欄位是一項主張,不是事實** |
|
|
86
|
+
| `output` | string | 是 | 指令輸出(截斷至 2000 字元,保留關鍵資訊) |
|
|
87
|
+
| `timestamp` | string | 是 | ISO 8601 格式的執行時間 |
|
|
88
|
+
| `environment_layer` | string | 條件性 | 該證據來自哪一層(`local` / `uat` / `prd`)。**任何具外部服務依賴的 AC(簡訊、金流、IdP)皆為必填**;未填時,該 AC 的驗證層級視同僅止於 local |
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
59
92
|
## 證據類型
|
|
60
93
|
|
|
61
94
|
| 類型 | 適用場景 | 範例 |
|
|
62
95
|
|------|----------|------|
|
|
63
96
|
| **測試結果** | 功能開發、bug 修復 | `npm test` 輸出 |
|
|
97
|
+
| **型別檢查** | 靜態型別的程式碼庫 | `pnpm tsc --noEmit` 無錯誤 |
|
|
64
98
|
| **建置成功** | 編譯、打包 | `npm run build` 的 exit code 0 |
|
|
65
99
|
| **Lint 通過** | 程式碼品質 | `npm run lint` 無錯誤 |
|
|
66
100
|
| **RED-GREEN** | bug 修復 | 修復前失敗 → 修復後通過 |
|
|
101
|
+
| **健康探測** | 已部署的服務 | `curl https://<service>/health` —— 須聲明 `environment_layer`;對 `localhost` 的探測驗到的是本機 process,不是那個部署 |
|
|
67
102
|
| **手動驗證** | UI 變更、視覺效果 | 截圖或螢幕錄影 |
|
|
68
103
|
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 環境層次
|
|
107
|
+
|
|
108
|
+
> **鐵律(環境)**:驗收前,必須先確立*此環境層次究竟有能力驗證此流程的哪些維度*。
|
|
109
|
+
|
|
110
|
+
環境無法演練到的維度,測試通過也證明不了什麼。在 `local` 用 mock 的金流閘道跑過,並沒有驗證金流串接 —— 驗到的是那個 mock。因此證據必須聲明它是在哪裡蒐集的。
|
|
111
|
+
|
|
112
|
+
| 層次 | 意義 |
|
|
113
|
+
|------|------|
|
|
114
|
+
| `local` | 開發機或 CI;外部依賴通常為 mock 或 stub |
|
|
115
|
+
| `uat` | 使用真實(或 sandbox)外部服務的 staging 環境 |
|
|
116
|
+
| `prd` | 生產環境 |
|
|
117
|
+
|
|
118
|
+
對於依賴外部服務的 AC,僅有 `local` 證據**不足採信**:要嘛補上 `uat`/`prd` 證據,要嘛明確聲明此缺口。見 VE-005 / VE-006。
|
|
119
|
+
|
|
120
|
+
> 此聲明應寫入專案的**環境分層責任矩陣**(`docs/testing/environment-stratification-matrix.md` 或測試計畫)—— 這是由 `deployment-standards` 標準所定義的逐專案交付物,用以回答「哪些測試流程能在哪個環境中被完整驗證?」。無法驗證的組合應在該處標記 ⚠️/❌,而不是任由一次通過的 local 執行把它們含混帶過。
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
69
124
|
## RED-GREEN 循環
|
|
70
125
|
|
|
71
|
-
|
|
126
|
+
對 bug 修復與回歸測試,驗證必須同時展示「失敗」與「修好」:
|
|
72
127
|
|
|
73
|
-
1
|
|
74
|
-
2. **修復** — 套用修復
|
|
75
|
-
3. **GREEN** — 展示修復後測試通過
|
|
76
|
-
4. **全套** — 執行完整測試套件確認無回歸
|
|
128
|
+
### 步驟 1:RED —— 證明 bug 存在
|
|
77
129
|
|
|
78
|
-
|
|
130
|
+
在修復**之前**執行測試,確認它會失敗:
|
|
79
131
|
|
|
80
|
-
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"command": "pnpm test -- parser.test.ts",
|
|
135
|
+
"exit_code": 1,
|
|
136
|
+
"output": "FAIL: expected null to equal { name: 'test' }",
|
|
137
|
+
"timestamp": "2026-03-20T14:25:00Z"
|
|
138
|
+
}
|
|
139
|
+
```
|
|
81
140
|
|
|
82
|
-
|
|
141
|
+
### 步驟 2:套用修復
|
|
142
|
+
|
|
143
|
+
進行程式碼變更。
|
|
144
|
+
|
|
145
|
+
### 步驟 3:GREEN —— 證明修復有效
|
|
146
|
+
|
|
147
|
+
在修復**之後**執行測試,確認它會通過:
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"command": "pnpm test -- parser.test.ts",
|
|
152
|
+
"exit_code": 0,
|
|
153
|
+
"output": "PASS: 12 tests passed",
|
|
154
|
+
"timestamp": "2026-03-20T14:28:00Z"
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 步驟 4:兩者都記錄
|
|
159
|
+
|
|
160
|
+
證據記錄必須同時包含 RED 與 GREEN 兩個階段。
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 證據有效性
|
|
165
|
+
|
|
166
|
+
> **證據本身會騙人。要驗的不只是主張,還有證據本身。**
|
|
167
|
+
|
|
168
|
+
鐵律擋下的是「**沒有**證據就聲稱成功」。它擋不住反向的失敗:代理**確實**跑了驗證,指令**確實**回來了,`exit_code`**確實**是 `0` —— **而輸出毫無意義**,因為那道指令根本沒量到任何東西。
|
|
169
|
+
|
|
170
|
+
這不是幻覺。幻覺是虛構你沒查過的事。這是反過來:**你查了,而那個查詢工具騙了你。** `anti-hallucination` 標準涵蓋不到這一塊 —— 該標準的每一條禁令都是某種形式的「不要編造」,而這裡沒有任何東西被編造。
|
|
171
|
+
|
|
172
|
+
### 四條有效性規則
|
|
173
|
+
|
|
174
|
+
**1. 只有在「成功時回傳 0」的工具上,`exit_code = 0` 才代表成功。**
|
|
175
|
+
|
|
176
|
+
這個慣例近乎普世,正因如此才無人質疑。當一個工具在受測情境下**依設計**就是會失敗時,它的非零 exit code 並不帶有關於受測物的任何資訊 —— 該讀的是*輸出*。反向亦然:非零 exit code 並不足以確立受測物是壞的。
|
|
177
|
+
|
|
178
|
+
**2.「輸出為空」/「查無」/`0` 不等於「它不存在」。**
|
|
179
|
+
|
|
180
|
+
在斷定「不存在」之前,先確立查詢工具*成功執行過*:它不是 `command not found`,不是被拒絕權限,它的參數也沒有被中間的 shell 吃掉。**先驗證查詢工具能動,再去相信查詢結果的沉默。**
|
|
181
|
+
|
|
182
|
+
**3. 用來檢測存在與否的指令,不得丟棄 stderr。**
|
|
183
|
+
|
|
184
|
+
壓抑 stderr(`2>/dev/null` 及其等價寫法)消音掉的,正好就是那個本來會回報「這個工具壞了」的通道。失敗於是穿上了與真陰性一模一樣的外衣。
|
|
185
|
+
|
|
186
|
+
**4. pipeline 的 exit code 不屬於其中任何單一階段。**
|
|
187
|
+
|
|
188
|
+
在 `set -o pipefail` 下,`producer | grep -q pattern` 會繼承 `producer` 的非零值,與 `grep` 有沒有匹配到無關。當決策取決於內容時,**先捕捉輸出,再評估它** —— 不要讓一個 pipeline 把兩個問題壓縮成一個數字。
|
|
189
|
+
|
|
190
|
+
### 此失效模式的實例證據
|
|
191
|
+
|
|
192
|
+
以下是某 AI 代理於 2026-07-17 實際執行的驗證指令,每一道都導出了自信而錯誤的結論,並被當成事實回報出去:
|
|
193
|
+
|
|
194
|
+
| 驗證指令 | `exit_code` | 輸出 | 實際真相 |
|
|
195
|
+
|---|:---:|---|---|
|
|
196
|
+
| `sudo -n find /backup/immich -type f 2>/dev/null \| wc -l` | **0** | `0` | `sudo` 因無 tty 而失敗,`2>/dev/null` 吃掉了錯誤訊息,空輸入讓 `wc -l` 印出 `0`。**實際存在 31 個檔案。** 被回報為「備份是空的」 |
|
|
197
|
+
| `gpg --list-packets <valid-file.gpg>` | **≠ 0** | 格式良好的 packet 列表 | 該主機**依設計**就不持有私鑰;gpg 在此情境必定以非零退出。**該檔案是有效的。** 據此刪掉了一份完好的加密備份 |
|
|
198
|
+
| `gpg … \| grep -q "tag=1"`(在 `pipefail` 下) | **≠ 0** | grep *確實*匹配到了 | pipeline 繼承了 gpg 的非零值;匹配與否根本無關。**第二次刪掉了一份完好的備份** |
|
|
199
|
+
| 以雙引號包住、透過 SSH 執行的 `grep -c "${VAR}/path" file` | **0** | `0` | `${VAR}` 被*本機* shell 展開成空字串;遠端的 grep 搜的是錯的字串 |
|
|
200
|
+
| `gpg --import key.asc 2>/dev/null` | — | (空) | gpg **根本沒安裝**;`command not found` 進了被壓抑的 stderr |
|
|
201
|
+
| `until ! ssh host 'systemctl is-active svc'; do …` | — | 迴圈退出 | **SSH 連線失敗與服務已結束,產生的 exit code 一模一樣。** 事後讀到的「結果」是前一次執行留下的過期值 |
|
|
202
|
+
| 以非特權使用者執行 `du -sh /data/*` | **0** | `4.0K` | 讀不到的目錄被回報成幾近空目錄,而非回報為錯誤 |
|
|
203
|
+
| 以 `case "$tag" in *M*)` 搜尋 monthly 快照 | **0** | (無匹配) | 該 tag 的實際值是 `monthly` —— 沒有大寫 `M`。差點變成「沒有任何 monthly 快照」 |
|
|
204
|
+
|
|
205
|
+
**其中四筆 `exit_code = 0` 卻是錯的;兩筆 `exit_code ≠ 0` 卻是對的。** 此欄位在兩個方向上都不可靠 —— 而在那兩筆非零的案例中,遵循 VE-002(「標記驗證失敗、觸發修復迴圈」)摧毀了一份健康的產物。
|
|
206
|
+
|
|
207
|
+
> **來源說明(Provenance)**:所有實例均出自單一代理(Claude Opus 4.8)單日的工作,記錄於 AsiaOstrich XSPEC-340。此樣本密集但狹窄。它是作為證據而非證明提出的 —— 但請注意,上述每一項失敗都源自*工具本身的語義*(sudo、gpg、pipefail、POSIX exit code),而非任何模型特性,因此任何驅動同一批工具的代理都暴露在同樣的陷阱下。
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 信任規則
|
|
212
|
+
|
|
213
|
+
| 規則 | 說明 |
|
|
83
214
|
|------|------|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
215
|
+
| 代理說「完成」但沒有 `verification_evidence` | 標記為**未驗證** |
|
|
216
|
+
| 有 `verification_evidence` 但 `exit_code ≠ 0` | 標記為**驗證失敗** —— **除非**已知該工具在受測狀態下本就會以非零退出(證據有效性規則 1),此時改以輸出判定 |
|
|
217
|
+
| `exit_code = 0`,但該指令不可能量到它所宣稱的事 | 標記為**未驗證** —— 一道在錯的地方執行、或根本沒執行的通過指令,不是證據 |
|
|
218
|
+
| 證據主張「不存在」(`0`、空輸出、「查無」) | 在證明查詢工具成功執行過之前,標記為**未驗證** |
|
|
219
|
+
| 多個驗證步驟 | **全部**步驟都必須通過 |
|
|
220
|
+
| 代理提供的是錯誤指令的證據 | 標記為**未驗證** |
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 規則
|
|
225
|
+
|
|
226
|
+
| ID | 觸發條件 | 動作 | 優先級 |
|
|
227
|
+
|----|----------|------|--------|
|
|
228
|
+
| VE-001 | 代理回報成功但無 verification_evidence | 降級為 `done_with_concerns` | Critical |
|
|
229
|
+
| VE-002 | 證據中 `exit_code ≠ 0` | 標記驗證失敗、觸發修復迴圈 —— 須**先**確認該工具在此狀態下成功時會回傳 0(見 VE-007) | High |
|
|
230
|
+
| VE-003 | bug 修復缺少 RED-GREEN 循環 | 要求補上 RED 與 GREEN 兩份證據 | High |
|
|
231
|
+
| VE-004 | 輸出超過 2000 字元 | 截斷,但保留錯誤訊息與摘要行 | Medium |
|
|
232
|
+
| VE-005 | AC 具外部服務依賴(簡訊、金流、IdP) | 證據必須聲明 `environment_layer`;僅有 local 證據不足採信 | Required |
|
|
233
|
+
| VE-006 | 具外部依賴的 AC 被標為完成,卻無 `environment_layer` | 降級為 `done_with_concerns`;要求補上層次聲明,或在 environment-stratification-matrix 中補上 ⚠️/❌ 條目 | High |
|
|
234
|
+
| VE-007 | 驗證工具在受測狀態下**依設計**就會以非零退出 | VE-002 不適用。改以輸出內容判定;**不得對健康的產物觸發修復迴圈** | Critical |
|
|
235
|
+
| VE-008 | 證據主張「不存在」(`0`、空輸出、「查無」) | 在證明查詢工具成功執行過之前一律無效。以不壓抑 stderr 的方式重跑 | High |
|
|
236
|
+
| VE-009 | 存在性/不存在性檢查壓抑了 stderr(`2>/dev/null` 或等價寫法) | 證據不成立。以 stderr 可見的方式重跑 | High |
|
|
237
|
+
| VE-010 | 證據的 `exit_code` 來自 pipeline(尤其是在 `pipefail` 下) | 該 code 不歸屬於任何單一階段。改為捕捉輸出並評估內容 | Medium |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 輸出截斷指引
|
|
242
|
+
|
|
243
|
+
當驗證輸出超過 2000 字元時:
|
|
244
|
+
|
|
245
|
+
1. **保留**:錯誤訊息、失敗摘要、測試計數、最終狀態行
|
|
246
|
+
2. **移除**:冗長的進度輸出、通過測試的 stack trace、重複行
|
|
247
|
+
3. **標記截斷**:在被移除內容處加上 `[... truncated ...]`
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## 範例
|
|
252
|
+
|
|
253
|
+
### 良好:完整的證據
|
|
254
|
+
|
|
255
|
+
```yaml
|
|
256
|
+
verification_evidence:
|
|
257
|
+
- command: "pnpm test"
|
|
258
|
+
exit_code: 0
|
|
259
|
+
output: "Test Suites: 12 passed\nTests: 147 passed\nTime: 8.3s"
|
|
260
|
+
timestamp: "2026-03-20T14:30:00Z"
|
|
261
|
+
- command: "pnpm lint"
|
|
262
|
+
exit_code: 0
|
|
263
|
+
output: "No issues found"
|
|
264
|
+
timestamp: "2026-03-20T14:30:05Z"
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### 不良:沒有證據
|
|
268
|
+
|
|
269
|
+
```yaml
|
|
270
|
+
status: success
|
|
271
|
+
message: "I've completed the task and everything should work now."
|
|
272
|
+
# ❌ 沒有 verification_evidence —— 違反鐵律
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 不良:撐不起自身主張的證據
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
claim: "The backup directory is empty — backups are not running."
|
|
279
|
+
verification_evidence:
|
|
280
|
+
- command: "sudo -n find /backup/immich -type f 2>/dev/null | wc -l"
|
|
281
|
+
exit_code: 0
|
|
282
|
+
output: "0"
|
|
283
|
+
timestamp: "2026-07-17T13:05:00Z"
|
|
284
|
+
# ❌ 通過了鐵律:證據存在、exit_code 是 0、輸出很具體。
|
|
285
|
+
# ❌ 違反 VE-008、VE-009、VE-010:
|
|
286
|
+
# - 主張「不存在」卻未證明查詢工具跑過(VE-008)
|
|
287
|
+
# - 壓抑掉了那句「sudo: a terminal is required」的 stderr(VE-009)
|
|
288
|
+
# - 這個 exit code 是 pipeline 的,也就是 `wc -l` 的 —— `find` 根本沒跑(VE-010)
|
|
289
|
+
# 實際存在 31 個檔案。目錄被列為空的,是因為根本沒人去看。
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### 良好:同一道檢查,改為有效版本
|
|
293
|
+
|
|
294
|
+
```yaml
|
|
295
|
+
claim: "The backup directory holds 31 files."
|
|
296
|
+
verification_evidence:
|
|
297
|
+
- command: "ssh host 'sudo find /backup/immich -type f | wc -l'" # stderr not suppressed
|
|
298
|
+
exit_code: 0
|
|
299
|
+
output: "31"
|
|
300
|
+
timestamp: "2026-07-17T13:07:00Z"
|
|
301
|
+
environment_layer: "prd"
|
|
302
|
+
# ✅ stderr 會浮現 sudo/權限失敗,而不是印出 0
|
|
303
|
+
# ✅ 使用單引號,${...} 不會在傳輸前被本機 shell 展開
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
88
307
|
|
|
89
308
|
## 相關標準
|
|
90
309
|
|
|
91
|
-
- [
|
|
92
|
-
- [
|
|
93
|
-
- [提交規範](checkin-standards.md)
|
|
94
|
-
- [
|
|
310
|
+
- [反幻覺標準](anti-hallucination.md) —— 互補標準。它防的是*捏造*的主張(斷言從未查證過的事);證據有效性涵蓋的是反向的失敗 —— **確實**查證過、但查證工具靜默失效的主張。
|
|
311
|
+
- [系統化除錯](systematic-debugging.md) —— 當證據顯示確實有失敗時,如何往下調查
|
|
312
|
+
- [提交規範](checkin-standards.md) —— 完成聲明在此受閘門把關
|
|
313
|
+
- [測試治理](test-governance.md) —— 規定哪些測試必須存在,因而也就規定了哪些證據必須存在
|
|
314
|
+
- [測試標準](testing-standards.md) —— 產生多數證據的那些測試是怎麼寫的
|
|
315
|
+
- [代理派遣與並行協調](agent-dispatch.md) —— 委派出去的工作會回傳主張,那些主張需要套用本標準
|
|
316
|
+
- [部署標準](deployment-standards.md) —— 定義 VE-005 / VE-006 所引用的「環境分層責任矩陣」
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 參考資料
|
|
321
|
+
|
|
322
|
+
- **Superpowers**: [verification-before-completion](https://github.com/obra/superpowers) (MIT)
|
|
323
|
+
- **測試驅動開發**: RED-GREEN-REFACTOR 循環
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UDS 速查表
|
|
2
2
|
|
|
3
|
-
> Quick reference for all UDS features | Last updated: 2026-
|
|
3
|
+
> Quick reference for all UDS features | Last updated: 2026-07-09
|
|
4
4
|
|
|
5
5
|
**Language**: [English](../../../docs/user/CHEATSHEET.md) | 繁體中文 | [简体中文](../../zh-CN/docs/CHEATSHEET.md)
|
|
6
6
|
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
| `uds update` | Update standards to latest version |
|
|
18
18
|
| `uds skills` | List installed Claude Code skills |
|
|
19
19
|
| `uds agent` | Manage UDS agents (list, install, info) |
|
|
20
|
-
| `uds workflow` | Manage UDS workflows (list, install, info, execute, status) |
|
|
21
20
|
| `uds ai-context` | Manage AI context configuration (init, validate, graph) |
|
|
22
21
|
|
|
23
22
|
## 💬 斜線命令
|
|
@@ -217,6 +216,7 @@
|
|
|
217
216
|
| `estimation-standards` | Estimation Standards |
|
|
218
217
|
| `execution-history` | Execution History Repository Standards |
|
|
219
218
|
| `failure-source-taxonomy` | Failure Source Taxonomy Standard |
|
|
219
|
+
| `feature-discovery-standards` | Feature Discovery Standards |
|
|
220
220
|
| `feature-flag-standards` | Feature Flag Management Standards |
|
|
221
221
|
| `feature-manifest-standard` | Feature Manifest Standard |
|
|
222
222
|
| `flaky-test-management` | Flaky Test Management Standards |
|
|
@@ -239,6 +239,7 @@
|
|
|
239
239
|
| `mock-boundary` | This document defines rules for what can and canno |
|
|
240
240
|
| `model-provenance` | Model Provenance Policy Standards |
|
|
241
241
|
| `model-selection` | Define a cost-effective strategy for selecting AI |
|
|
242
|
+
| `multi-environment-e2e-testing` | Multi-Environment E2E Testing Standards |
|
|
242
243
|
| `mutation-testing` | Mutation testing evaluates test suite effectivenes |
|
|
243
244
|
| `no-cicd-deployment` | No-CI/CD Deployment Strategy |
|
|
244
245
|
| `observability-standards` | Observability Standards |
|
|
@@ -256,6 +257,7 @@
|
|
|
256
257
|
| `project-structure` | This standard defines conventions for project dire |
|
|
257
258
|
| `prompt-regression` | Prompt Regression Standards |
|
|
258
259
|
| `property-based-testing` | Property-Based Testing Standards |
|
|
260
|
+
| `push-standards` | Git Push Safety Gates |
|
|
259
261
|
| `recovery-recipe-registry` | Recovery Recipe Registry Standard |
|
|
260
262
|
| `refactoring-standards` | This standard defines comprehensive guidelines for |
|
|
261
263
|
| `release-quality-manifest` | Release Quality Manifest |
|
|
@@ -298,6 +300,7 @@
|
|
|
298
300
|
| `timeout-standards` | Timeout Standards |
|
|
299
301
|
| `token-budget` | Token Budget Zone Standard |
|
|
300
302
|
| `translation-lifecycle-standards` | Translation lifecycle standards: MISSING vs OUTDAT |
|
|
303
|
+
| `user-journey-testing` | User Journey Testing Standard |
|
|
301
304
|
| `user-story-mapping` | User Story Mapping Standards |
|
|
302
305
|
| `verification-evidence` | Establish an "Iron Law" that no task can be claime |
|
|
303
306
|
| `verification-oracle` | Verification Oracle Standards |
|
|
@@ -351,6 +354,7 @@
|
|
|
351
354
|
| `check-version-sync.ps1` | Check Version Sync |
|
|
352
355
|
| `check-version-sync.sh` | Version Sync Checker |
|
|
353
356
|
| `check-workflow-compliance.sh` | DEPRECATED: Use 'npx tsx scripts/check-workflow-co |
|
|
357
|
+
| `commitlint-bilingual-rule.mjs` | commitlint-bilingual-rule.mjs — custom commitlint |
|
|
354
358
|
| `convert-md-to-yaml.mjs` | Markdown to AI-YAML Conversion Script |
|
|
355
359
|
| `fix-manifest-paths.ps1` | Fix Manifest Paths |
|
|
356
360
|
| `fix-manifest-paths.sh` | Manifest Path Fixer |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# UDS 功能參考手冊
|
|
2
2
|
|
|
3
3
|
> Universal Development Standards - 完整功能文件
|
|
4
|
-
> Auto-generated | Last updated: 2026-
|
|
4
|
+
> Auto-generated | Last updated: 2026-07-09
|
|
5
5
|
|
|
6
6
|
**Language**: [English](../../../docs/reference/FEATURE-REFERENCE.md) | 繁體中文 | [简体中文](../../zh-CN/docs/FEATURE-REFERENCE.md)
|
|
7
7
|
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
3. [技能](#skills) (55)
|
|
15
15
|
4. [代理](#agents) (5)
|
|
16
16
|
5. [工作流程](#workflows) (5)
|
|
17
|
-
6. [核心規範](#core-standards) (
|
|
18
|
-
7. [腳本](#scripts) (
|
|
17
|
+
6. [核心規範](#core-standards) (149)
|
|
18
|
+
7. [腳本](#scripts) (58)
|
|
19
19
|
|
|
20
|
-
**Total Features:
|
|
20
|
+
**Total Features: 332**
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -132,20 +132,6 @@
|
|
|
132
132
|
|
|
133
133
|
**說明**: Manage UDS workflows (list, install, info, execute, status)
|
|
134
134
|
|
|
135
|
-
**選項**:
|
|
136
|
-
| Option | 說明 |
|
|
137
|
-
|--------|-------------|
|
|
138
|
-
| `--installed` | Show installation status for all AI tools |
|
|
139
|
-
| `-t, --tool` | Target AI tool (default: claude-code) |
|
|
140
|
-
| `-g, --global` | Install to user level instead of project level |
|
|
141
|
-
| `-y, --yes` | Skip confirmation prompts |
|
|
142
|
-
| `-t, --tool` | Target AI tool (default: claude-code) |
|
|
143
|
-
| `--resume` | Resume from saved state |
|
|
144
|
-
| `--restart` | Restart from beginning (discard saved state) |
|
|
145
|
-
| `-v, --verbose` | Show detailed output |
|
|
146
|
-
| `--dry-run` | Show steps without executing |
|
|
147
|
-
| `-y, --yes` | Skip confirmation prompts |
|
|
148
|
-
|
|
149
135
|
### `uds ai-context`
|
|
150
136
|
|
|
151
137
|
**說明**: Manage AI context configuration (init, validate, graph)
|
|
@@ -316,7 +302,7 @@
|
|
|
316
302
|
| `alerting-standards` | 1.0.0 | |
|
|
317
303
|
| `anti-hallucination` | 1.5.1 | This standard defines strict guidelines for AI assistants to prevent hallucinati |
|
|
318
304
|
| `anti-sycophancy-prompting` | 1.0.0 | This standard defines techniques and rules for designing prompts that elicit gen |
|
|
319
|
-
| `api-design-standards` | 1.
|
|
305
|
+
| `api-design-standards` | 1.1.0 | This standard defines comprehensive guidelines for designing, building, and main |
|
|
320
306
|
| `audit-trail` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
321
307
|
| `behavior-driven-development` | 1.1.0 | |
|
|
322
308
|
| `behavior-snapshot` | - | |
|
|
@@ -344,7 +330,7 @@
|
|
|
344
330
|
| `data-pipeline` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
345
331
|
| `database-standards` | 1.0.0 | This standard defines guidelines for database design, querying, migration, and o |
|
|
346
332
|
| `deployment-standards` | 1.1.0 | This standard defines guidelines for safely deploying software to production, co |
|
|
347
|
-
| `deprecation-standards` | 1.
|
|
333
|
+
| `deprecation-standards` | 1.1.0 | |
|
|
348
334
|
| `design-document-standards` | 1.0.0 | |
|
|
349
335
|
| `developer-memory` | 1.1.1 | This standard defines a structured system for capturing, retrieving, and surfaci |
|
|
350
336
|
| `disaster-recovery-drill` | - | |
|
|
@@ -357,6 +343,7 @@
|
|
|
357
343
|
| `estimation-standards` | 1.0.0 | |
|
|
358
344
|
| `execution-history` | 1.0.0 | |
|
|
359
345
|
| `failure-source-taxonomy` | - | |
|
|
346
|
+
| `feature-discovery-standards` | 1.0.0 | **Status**: Active | **Updated**: 2026-05-13 | |
|
|
360
347
|
| `feature-flag-standards` | 1.0.0 | |
|
|
361
348
|
| `feature-manifest-standard` | - | |
|
|
362
349
|
| `flaky-test-management` | - | |
|
|
@@ -376,9 +363,10 @@
|
|
|
376
363
|
| `license-compliance` | 2.1.0 | **Status**: Active | **Updated**: 2026-05-16 | |
|
|
377
364
|
| `llm-output-validation` | - | |
|
|
378
365
|
| `logging-standards` | 1.4.0 | |
|
|
379
|
-
| `mock-boundary` | 1.
|
|
366
|
+
| `mock-boundary` | 1.1.0 | This document defines rules for what can and cannot be mocked in tests. Its goal |
|
|
380
367
|
| `model-provenance` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
381
368
|
| `model-selection` | 1.0.1 | Define a cost-effective strategy for selecting AI model tiers based on task comp |
|
|
369
|
+
| `multi-environment-e2e-testing` | 1.0.0 | **Status**: Active | **Updated**: 2026-05-13 | |
|
|
382
370
|
| `mutation-testing` | 1.0.0 | Mutation testing evaluates test suite effectiveness by injecting artificial bugs |
|
|
383
371
|
| `no-cicd-deployment` | - | |
|
|
384
372
|
| `observability-standards` | 1.0.0 | |
|
|
@@ -396,8 +384,9 @@
|
|
|
396
384
|
| `project-structure` | 1.2.0 | This standard defines conventions for project directory structure beyond documen |
|
|
397
385
|
| `prompt-regression` | - | |
|
|
398
386
|
| `property-based-testing` | - | |
|
|
387
|
+
| `push-standards` | 1.0.0 | **Status**: Active | **Updated**: 2026-04-23 | |
|
|
399
388
|
| `recovery-recipe-registry` | - | |
|
|
400
|
-
| `refactoring-standards` | 2.
|
|
389
|
+
| `refactoring-standards` | 2.2.0 | This standard defines comprehensive guidelines for code refactoring, covering ev |
|
|
401
390
|
| `release-quality-manifest` | - | |
|
|
402
391
|
| `release-readiness-gate` | 1.0.0 | This standard defines a **single, aggregated Release Readiness Gate** that unifi |
|
|
403
392
|
| `replay-test` | - | |
|
|
@@ -405,7 +394,7 @@
|
|
|
405
394
|
| `resource-cost-boundary` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
406
395
|
| `retrospective-standards` | 1.0.0 | Retrospectives are structured team reflections that identify what worked well, w |
|
|
407
396
|
| `retry-standards` | - | |
|
|
408
|
-
| `reverse-engineering-standards` | 1.
|
|
397
|
+
| `reverse-engineering-standards` | 1.2.0 | This standard defines the principles, workflows, and best practices for reverse |
|
|
409
398
|
| `rollback-standards` | - | |
|
|
410
399
|
| `runbook-standards` | 1.0.0 | |
|
|
411
400
|
| `runbook` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
@@ -416,7 +405,7 @@
|
|
|
416
405
|
| `security-decision` | - | |
|
|
417
406
|
| `security-standards` | 1.1.0 | This standard defines comprehensive security guidelines for software development |
|
|
418
407
|
| `security-testing` | 1.1.0 | This document defines the security testing methodology for software projects. It |
|
|
419
|
-
| `self-review-protocol` | 1.
|
|
408
|
+
| `self-review-protocol` | 1.1.0 | This standard mandates a **self-review pass** on large markdown edits before com |
|
|
420
409
|
| `server-ops-security` | - | |
|
|
421
410
|
| `skill-standard-alignment-check` | - | |
|
|
422
411
|
| `slo-sli` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
@@ -438,10 +427,11 @@
|
|
|
438
427
|
| `timeout-standards` | - | |
|
|
439
428
|
| `token-budget` | - | |
|
|
440
429
|
| `translation-lifecycle-standards` | 1.0.0 | Translation lifecycle standards: MISSING vs OUTDATED distinction, semver-aware s |
|
|
430
|
+
| `user-journey-testing` | - | |
|
|
441
431
|
| `user-story-mapping` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
442
432
|
| `verification-evidence` | 1.0.0 | Establish an "Iron Law" that no task can be claimed as complete without verifica |
|
|
443
433
|
| `verification-oracle` | 1.0.0 | **Status**: Active | **Updated**: 2026-06-17 | |
|
|
444
|
-
| `versioning` | 1.
|
|
434
|
+
| `versioning` | 1.5.0 | This standard defines how to version software releases using Semantic Versioning |
|
|
445
435
|
| `virtual-organization-standards` | 1.0.0 | This standard treats the AI ecosystem as a "Virtual Organization." It defines ho |
|
|
446
436
|
| `workflow-enforcement` | - | |
|
|
447
437
|
| `workflow-state-protocol` | 1.0.0 | |
|
|
@@ -493,6 +483,7 @@
|
|
|
493
483
|
| `check-version-sync.ps1` | Check Version Sync |
|
|
494
484
|
| `check-version-sync.sh` | Version Sync Checker |
|
|
495
485
|
| `check-workflow-compliance.sh` | DEPRECATED: Use 'npx tsx scripts/check-workflow-compliance.ts' instead (cross-platform). |
|
|
486
|
+
| `commitlint-bilingual-rule.mjs` | commitlint-bilingual-rule.mjs — custom commitlint rules enforcing the |
|
|
496
487
|
| `convert-md-to-yaml.mjs` | Markdown to AI-YAML Conversion Script |
|
|
497
488
|
| `fix-manifest-paths.ps1` | Fix Manifest Paths |
|
|
498
489
|
| `fix-manifest-paths.sh` | Manifest Path Fixer |
|
|
@@ -105,7 +105,7 @@ _參見:`/tdd`、`test-driven-development` 標準_
|
|
|
105
105
|
## U
|
|
106
106
|
|
|
107
107
|
**UDS(Universal Development Standards,通用開發標準)**
|
|
108
|
-
本專案。一套與語言無關、與框架無關的軟體開發品質彙集,含
|
|
108
|
+
本專案。一套與語言無關、與框架無關的軟體開發品質彙集,含 149 個核心標準、55 個 AI skill 與 51 個斜線命令。
|
|
109
109
|
|
|
110
110
|
**UDS Manifest(`uds-manifest.json`)**
|
|
111
111
|
所有 UDS 標準與 skill 的機器可讀索引。包含統計數據、skill 對命令的對照,以及分類歸屬。供 UDS CLI 與文件產生器使用。
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
source: ../../../../options/commit-message/bilingual.md
|
|
3
|
-
source_version: 1.
|
|
4
|
-
translation_version: 1.
|
|
5
|
-
last_synced:
|
|
3
|
+
source_version: 1.1.0
|
|
4
|
+
translation_version: 1.1.0
|
|
5
|
+
last_synced: 2026-07-09
|
|
6
6
|
status: current
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -136,6 +136,13 @@ docs: fix typo in README / 修正 README 錯字
|
|
|
136
136
|
- 「小變更」時跳過一種語言
|
|
137
137
|
- 不必要地翻譯技術術語
|
|
138
138
|
|
|
139
|
+
## AI 助手執行期紀律
|
|
140
|
+
|
|
141
|
+
本選項也適用於以此雙語模式撰寫使用者對話文字的 AI 助手,不只 commit message。長對話中,助手剛處理完大量非目標語言內容(程式碼、log、英文文件)後,下一段回覆容易漂移到錯誤語言。
|
|
142
|
+
|
|
143
|
+
- **切換回覆前先自檢** — 處理完大量非目標語言內容後,寫下一段使用者對話文字前先確認會使用目標語言,不需等使用者指出才發現。
|
|
144
|
+
- **立即修正,不拖延** — 若使用者已指出語言跑掉,下一則回覆就要修正,不要重複道歉或繼續漂移。
|
|
145
|
+
|
|
139
146
|
## 技術術語
|
|
140
147
|
|
|
141
148
|
保持技術術語使用英文:
|