universal-dev-standards 6.0.0 → 6.1.1
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 +38 -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 +38 -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/check.js +23 -13
- package/src/commands/init.js +58 -17
- package/src/i18n/messages.js +6 -6
- package/standards-registry.json +10 -10
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: brainstorm-assistant
|
|
3
3
|
source: ../../../../skills/brainstorm-assistant/SKILL.md
|
|
4
|
-
source_version: 4.
|
|
5
|
-
source_hash:
|
|
6
|
-
translation_version: 4.
|
|
7
|
-
last_synced: 2026-
|
|
4
|
+
source_version: 4.1.0
|
|
5
|
+
source_hash: 0c1fa3392232
|
|
6
|
+
translation_version: 4.1.0
|
|
7
|
+
last_synced: 2026-07-09
|
|
8
8
|
status: current
|
|
9
9
|
description: "[UDS] 在撰寫規格前進行結構化 AI 輔助腦力激盪"
|
|
10
10
|
---
|
|
@@ -20,7 +20,7 @@ description: "[UDS] 在撰寫規格前進行結構化 AI 輔助腦力激盪"
|
|
|
20
20
|
|
|
21
21
|
**v3 的核心改動:** v3 把發散從「單一 AI 衝數量」改為 **persona 集成**(每個角色以思維鏈獨立推理)× **多樣性透鏡**;把收斂從「單一 AI 評分 + 單一反駁」改為**多評審面板** + **硬角色反駁**(Devil's Advocate + Steelman)。直接對應文獻最強結論:多 persona 勝過單一 pass,單一 LLM 評審既弱又易諂媚。
|
|
22
22
|
|
|
23
|
-
**v4 的核心改動:** v3 提供了強健的*機制*,卻沒有可判定 pass/fail 的品質閘。v4 在其上疊加一道**時序化品質契約**——**腦力激盪品質標準(BQS v1)**——且不移除任何 v3 行為。BQS 是**四層 × 時間軸**結構:第 0 層宣告 explore/exploit 意圖;第 1 層(過程、leading、發散期全程可見)跑維度 **D1–D4**;第 2 層(產物、leading
|
|
23
|
+
**v4 的核心改動:** v3 提供了強健的*機制*,卻沒有可判定 pass/fail 的品質閘。v4 在其上疊加一道**時序化品質契約**——**腦力激盪品質標準(BQS v1)**——且不移除任何 v3 行為。BQS 是**四層 × 時間軸**結構:第 0 層宣告 explore/exploit 意圖;第 1 層(過程、leading、發散期全程可見)跑維度 **D1–D4**;第 2 層(產物、leading、收斂後僅施於推薦集,即 Agg. Score ≥ 3.5、不限筆數的想法)跑 **D5–D8** 加 Seeds 欄與爭議區;第 3 層是不受治理的 **Judgment Override**。第一原理:**決策用 leading 訊號、校準用 lagging 訊號——兩者是時間前後,而非對錯取捨。** 硬序列閘禁止 D5–D8 在發散期被揭示或評分。詳見下方「BQS v1 — 品質契約」。
|
|
24
24
|
|
|
25
25
|
## 使用前先選模式
|
|
26
26
|
|
|
@@ -42,7 +42,7 @@ description: "[UDS] 在撰寫規格前進行結構化 AI 輔助腦力激盪"
|
|
|
42
42
|
```
|
|
43
43
|
[Mode Selection] ─► PRE-FLIGHT ─► FRAME ─► DIVERGE ───────────► CONVERGE ──────────► OUTPUT
|
|
44
44
|
客觀路由 防止錨定 定義問題 persona 集成+透鏡 多評審面板+硬角色反駁 輸出提案
|
|
45
|
-
▲ 第 0 層 意圖 ▲ 第 1 層(D1–D4,leading) ▲ 第 2 層(D5–D8
|
|
45
|
+
▲ 第 0 層 意圖 ▲ 第 1 層(D1–D4,leading) ▲ 第 2 層(D5–D8,推薦集) ▲ 第 3 層 override
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
---
|
|
@@ -68,9 +68,9 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
68
68
|
|
|
69
69
|
> **硬序列閘:** D5–D8 禁止在發散期揭示或評分;CONVERGE 的 critic 不得在**最後一個 persona** 產完前被呼叫。
|
|
70
70
|
|
|
71
|
-
### 第 2 層 — 產物(收斂後 leading
|
|
71
|
+
### 第 2 層 — 產物(收斂後 leading,僅施於推薦集)
|
|
72
72
|
|
|
73
|
-
> 評判維度限縮在**收斂後 ×
|
|
73
|
+
> 評判維度限縮在**收斂後 × 僅推薦集**(Agg. Score ≥ 3.5 的想法,不限筆數),絕不在發散期對全部想法當硬閘(否則回溯污染發散、扼殺無證據的未來想法、製造填表劇場)。
|
|
74
74
|
|
|
75
75
|
| 維度 | Oracle |
|
|
76
76
|
|------|--------|
|
|
@@ -87,11 +87,11 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
87
87
|
|
|
88
88
|
### 結構規則
|
|
89
89
|
|
|
90
|
-
1. **Meta 停止規則:** 該層維度全綠 **且** 再跑一輪後
|
|
90
|
+
1. **Meta 停止規則:** 該層維度全綠 **且** 再跑一輪後 **推薦集成員不變**(看集合成員、不看內部排序)→停。**硬上限 2 輪**。取代模糊的「不翻決策」。
|
|
91
91
|
2. **判官≠產生者:** D2/D4/D5/D7 判定須獨立視角;單 context 自評只能 `[degraded]`,不得 pass。
|
|
92
92
|
3. **校準回路(吃 lagging):** v3 的三個工作階段自評指標收編為此回路 **lagging** 端——**Adoption Rate=D6 滯後驗證、Diversity=D2/D3 滯後觀測、Cognitive Load=成本約束**;**禁兩套平行評估**。
|
|
93
93
|
4. **BQS 自我演化(輕量):** 版本化 + 證據清單 last-reviewed 逾期 flag;「定期對 BQS 自身 brainstorm」列可選。
|
|
94
|
-
5. **最小充分原則:** 套用該 tier 所需的最少維度 +
|
|
94
|
+
5. **最小充分原則:** 套用該 tier 所需的最少維度 + 把第 2 層限縮在推薦集(Agg. Score ≥ 3.5),而非全部發散想法——認知經濟性的守門,不另設成本維度。
|
|
95
95
|
|
|
96
96
|
### 分級(綁 v3 既有客觀觸發,非自評)
|
|
97
97
|
|
|
@@ -207,7 +207,7 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
207
207
|
|
|
208
208
|
#### Step 3b: 硬角色反駁輪
|
|
209
209
|
|
|
210
|
-
軟性「請批評一下」只會得到附和(諂媚)。v3
|
|
210
|
+
軟性「請批評一下」只會得到附和(諂媚)。v3 指派**硬角色**:對**推薦集**(Agg. Score ≥ 3.5,不限筆數)中的每一個想法各跑一個 **Devil's Advocate**(「你的任務是論證此案會失敗」)與一個 **Steelman**(「說出反方最強而善意的版本」)。兩者一起壓力測試韌性,而非只是戳。
|
|
211
211
|
|
|
212
212
|
每個反對理由須為:「在 [具體情境] 下,此想法會失敗,因為 [具體原因]。」模糊顧慮(「這可能有點難」)不接受。
|
|
213
213
|
|
|
@@ -223,16 +223,16 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
223
223
|
|
|
224
224
|
> **BQS D4 — 判官≠產生者:** D4 唯有**評審/Devil's Advocate 在獨立 context 執行**(`--enhanced` 隔離 agent 宿主)才可 pass。baseline 單 context 下,面板是同 context 自評,標 `[degraded]`、**不得標 pass**——誠實但非獨立。不得把 baseline 跑當成 D4 pass 靜默通過。
|
|
225
225
|
|
|
226
|
-
#### Step 3c: BQS 第 2
|
|
226
|
+
#### Step 3c: BQS 第 2 層——對推薦集的產物閘
|
|
227
227
|
|
|
228
|
-
|
|
228
|
+
收斂後,**僅對推薦集**(Agg. Score ≥ 3.5 的想法,不限筆數)套用 **D5–D8**(絕不對全部發散想法)。若無想法達 3.5,仍保留分數最高的 1 個,標記 `[未達門檻——僅供參考]`,避免報告空白。對推薦集中每個想法:
|
|
229
229
|
|
|
230
230
|
- **D5 接地:** 將每個主張分流為 `[現狀/外部事實]`(需 file:line 或來源,否則 fail)vs `[未來/假說]`(免接地、標 `[假說]`)。**外部事實宣稱為跨級地板**——creative 級也須接地。
|
|
231
|
-
- **D6 淨值:**
|
|
231
|
+
- **D6 淨值:** 推薦集中每個想法須答「解誰問題/我們真有嗎/不做的代價」;至少一個淘汰為「不值得做」;掛 **lagging 登記欄**(事後哪個訊號驗證)。
|
|
232
232
|
- **D7 可證偽(二態):** 標 `[現可陳述證偽]` **或** `[需先做 X 才能定義證偽]`。後者**轉 next-step 餵 D8——不算 fail**。
|
|
233
233
|
- **D8 可行動:** 每個存活想法需 next-step 裁決(含明確「暫不做」);無 → fail。
|
|
234
234
|
|
|
235
|
-
> **Meta 停止規則(BQS 結構規則 1):** 當套用的維度全綠 **且** 再跑一輪後
|
|
235
|
+
> **Meta 停止規則(BQS 結構規則 1):** 當套用的維度全綠 **且** 再跑一輪後 **推薦集成員不變**(看集合成員、非內部排序)→停。**硬上限 2 輪。**
|
|
236
236
|
|
|
237
237
|
---
|
|
238
238
|
|
|
@@ -256,12 +256,14 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
256
256
|
|---|------|---------|------|-------------|---------------|--------------|-----------|
|
|
257
257
|
| 1 | ... | Skeptic | Reversal | 4.0 | 4.5 | 4.0 | 4.2 |
|
|
258
258
|
|
|
259
|
-
##
|
|
260
|
-
1. **[Idea]** ✓ Passed rebuttal — [Why] — Persona: [..] — [User rebuttal response]
|
|
259
|
+
## Recommendations (BQS Layer 2 applied, Agg. Score ≥ 3.5 — uncapped)
|
|
260
|
+
1. **[Idea]** (Agg. X.X) ✓ Passed rebuttal — [Why] — Persona: [..] — [User rebuttal response]
|
|
261
261
|
- D5 grounding: [current-state claims with file:line | future claims marked [hypothesis]]
|
|
262
262
|
- D6 net benefit: [whose problem / do we have it / cost of not doing] — lagging signal: [..]
|
|
263
263
|
- D7 falsifiability: [falsifiable now | need to do X first → next-step]
|
|
264
264
|
- D8 next-step: [action | defer]
|
|
265
|
+
2. **[Idea]** (Agg. X.X) ✓ Passed rebuttal — ...
|
|
266
|
+
<!-- 列出所有 Agg. Score ≥ 3.5 的想法,依分數由高到低排序——不限 3 筆。若無想法達 3.5,僅列分數最高的 1 個,標「[below threshold — shown for reference]」。 -->
|
|
265
267
|
|
|
266
268
|
## Contested Zone (high critic-variance ideas)
|
|
267
269
|
[Ideas whose critic variance exceeded threshold — surfaced, NOT eliminated by mean ranking (barbell long-tail)]
|
|
@@ -283,7 +285,7 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
283
285
|
- [ ] Proceed to `/sdd` if requirements are clear
|
|
284
286
|
```
|
|
285
287
|
|
|
286
|
-
> **BQS 輸出新增(v4):** **Seeds** 區(規則:被殺 ≥1 則非空)、**爭議區**(高方差想法不按 mean 淘汰)、**Judgment Override** 通道(人類裁決凌駕聚合分)為 BQS 第 2/3 層所要求。
|
|
288
|
+
> **BQS 輸出新增(v4):** **Seeds** 區(規則:被殺 ≥1 則非空)、**爭議區**(高方差想法不按 mean 淘汰)、**Judgment Override** 通道(人類裁決凌駕聚合分)為 BQS 第 2/3 層所要求。Recommendations 區塊為推薦集(不限筆數)中每個想法逐項記錄 D5–D8 狀態。
|
|
287
289
|
|
|
288
290
|
## 多樣性崩塌防護
|
|
289
291
|
|
|
@@ -291,7 +293,7 @@ BQS 是**四層 × 時間軸**契約。它是 v3 的**疊加**——所有 v3
|
|
|
291
293
|
|
|
292
294
|
- **絕不**用競品或產品類比當種子(「像 X 但給 Y」)。
|
|
293
295
|
- 變的是**透鏡**而非措辭——換句話不等於多樣化。
|
|
294
|
-
-
|
|
296
|
+
- 若推薦集全來自同一 persona/透鏡,**標示**並在輸出前再跑一個透鏡。
|
|
295
297
|
|
|
296
298
|
## 強化層——平行 persona
|
|
297
299
|
|
|
@@ -5,10 +5,10 @@ description: |
|
|
|
5
5
|
使用時機:模糊想法、功能探索、問題再框架、創意發想。
|
|
6
6
|
關鍵字:brainstorm, ideation, persona ensemble, multi-critic, HMW, SCAMPER, 腦力激盪, 發想, 創意。
|
|
7
7
|
source: ../../../../skills/brainstorm-assistant/guide.md
|
|
8
|
-
source_version: 4.
|
|
9
|
-
source_hash:
|
|
10
|
-
translation_version: 4.
|
|
11
|
-
last_synced: 2026-
|
|
8
|
+
source_version: 4.1.0
|
|
9
|
+
source_hash: c5cd260548c2
|
|
10
|
+
translation_version: 4.1.0
|
|
11
|
+
last_synced: 2026-07-09
|
|
12
12
|
status: current
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -16,8 +16,8 @@ status: current
|
|
|
16
16
|
|
|
17
17
|
> **語言**: [English](../../../../skills/brainstorm-assistant/guide.md) | 繁體中文
|
|
18
18
|
|
|
19
|
-
**版本**: 4.
|
|
20
|
-
**最後更新**: 2026-
|
|
19
|
+
**版本**: 4.1.0
|
|
20
|
+
**最後更新**: 2026-07-09
|
|
21
21
|
**適用範圍**: 所有軟體專案
|
|
22
22
|
**Scope**: universal
|
|
23
23
|
**類型**: 工具型 Skill(無對應核心標準)
|
|
@@ -55,10 +55,10 @@ v3 提供了強健的*機制*,卻沒有**可判定 pass/fail 的品質閘**—
|
|
|
55
55
|
|
|
56
56
|
- **第 0 層 — 意圖**:宣告 explore/exploit 配比;調節維度權重。
|
|
57
57
|
- **第 1 層 — 過程(發散期 leading、可見)**:維度 **D1 框架純度/D2 發散覆蓋/D3 跨會話多樣性/D4 評估去偏**,各有 oracle。**硬序列閘**禁止評判維度 D5–D8 在發散期被揭示或評分。
|
|
58
|
-
- **第 2 層 — 產物(收斂後 leading
|
|
58
|
+
- **第 2 層 — 產物(收斂後 leading、僅施於推薦集——Agg. Score ≥ 3.5,不限筆數)**:**D5 接地/D6 淨值/D7 可證偽/D8 可行動**,加 Seeds 欄與高方差想法的爭議區。
|
|
59
59
|
- **第 3 層 — 不可治理**:Judgment Override,人類直覺凌駕聚合分數。
|
|
60
60
|
|
|
61
|
-
第一原理被修正:**決策用 leading 訊號、校準用 lagging 訊號——兩者是時間前後,而非對錯取捨**(移除任何「只用 leading 不用 lagging」絕對說法)。核心主張:評判維度限縮在**收斂後 ×
|
|
61
|
+
第一原理被修正:**決策用 leading 訊號、校準用 lagging 訊號——兩者是時間前後,而非對錯取捨**(移除任何「只用 leading 不用 lagging」絕對說法)。核心主張:評判維度限縮在**收斂後 × 僅推薦集**(Agg. Score ≥ 3.5,不限筆數),絕不在發散期對全部想法當硬閘——否則回溯污染發散、扼殺無證據的未來想法、製造填表劇場。完整契約、oracle 與結構規則見 **SKILL.md →「BQS v1 — 品質契約」**。
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -301,7 +301,7 @@ HMW(預設起點)、SCAMPER(改善既有功能:Substitute 取代、Combi
|
|
|
301
301
|
|
|
302
302
|
### Step 3b: 硬角色反駁輪
|
|
303
303
|
|
|
304
|
-
軟性的「請批評一下這個」多半換來附和——在弱批評框架下 LLM 會諂媚。v3
|
|
304
|
+
軟性的「請批評一下這個」多半換來附和——在弱批評框架下 LLM 會諂媚。v3 對**推薦集**(Agg. Score ≥ 3.5,不限筆數)中的每一個想法指派**硬角色**:
|
|
305
305
|
|
|
306
306
|
- **Devil's Advocate(魔鬼代言人)**:「你的任務是論證這個想法*會*失敗。提出 2 個具體的失敗條件。」
|
|
307
307
|
- **Steelman(強論立場)**:「陳述最強、最善意版本的反論點——一個有思考力的對手真的會提出的那種。」
|
|
@@ -354,10 +354,12 @@ HMW(預設起點)、SCAMPER(改善既有功能:Substitute 取代、Combi
|
|
|
354
354
|
|---|------|---------|------|--------------|---------------|---------------|------|
|
|
355
355
|
| 1 | ... | Skeptic | Reversal | 4.0 | 4.5 | 4.0 | 4.2 |
|
|
356
356
|
|
|
357
|
-
##
|
|
357
|
+
## Recommendations (Agg. Score ≥ 3.5 — uncapped)
|
|
358
358
|
### 1. [想法] (Agg. X.X) ✓ Passed rebuttal
|
|
359
359
|
- **Why**: [理由] - **Persona/Lens**: [..] - **Rebuttal response**: [一行] - **Scope**: [S/M/L]
|
|
360
360
|
|
|
361
|
+
<!-- 列出所有 Agg. Score ≥ 3.5 的想法,依分數由高到低排序——不限 3 筆。若無想法達 3.5,僅列分數最高的 1 個,標「(below threshold — shown for reference)」。 -->
|
|
362
|
+
|
|
361
363
|
## Diversity Note
|
|
362
364
|
[存活下來的想法跨越了多少個不同的 persona/透鏡;若全來自同一群集則標示]
|
|
363
365
|
|
|
@@ -379,7 +381,7 @@ HMW(預設起點)、SCAMPER(改善既有功能:Substitute 取代、Combi
|
|
|
379
381
|
|
|
380
382
|
- **絕不**用競品或產品類比作種子(「像 X 但為 Y」)。
|
|
381
383
|
- **變化透鏡**,而不只是措辭——重新措辭一個提示並不會讓輸出多樣化。
|
|
382
|
-
-
|
|
384
|
+
- 若存活的推薦集全源自單一 persona 或透鏡,**標示出來**並在 OUTPUT 前再跑一個額外透鏡。
|
|
383
385
|
- 早期偏好**低擬真**的想法陳述(一個粗略方向,而非打磨過的概念)——高擬真的 AI 輸出會加深固著(發現 #3)。
|
|
384
386
|
|
|
385
387
|
---
|
|
@@ -589,6 +591,7 @@ BQS v1 是**疊加的品質契約**,不是打掉重練。v3 的一切都保留
|
|
|
589
591
|
|
|
590
592
|
| 版本 | 日期 | 變更 |
|
|
591
593
|
|------|------|------|
|
|
594
|
+
| 4.1.0 | 2026-07-09 | XSPEC-325:把固定 Top-3 推薦上限改為分數門檻**推薦集**(Agg. Score ≥ 3.5,不限筆數),貫穿 BQS 第 2 層——產物閘(D5–D8)、硬角色反駁輪(Devil's Advocate + Steelman)、Meta 停止規則(集合成員穩定性)、多樣性崩塌護欄、OUTPUT 推薦區塊,全部改以推薦集為對象,不再是固定 3 個。若無想法達 3.5,仍顯示分數最高的 1 個並標示「未達門檻,僅供參考」,避免報告空白。 |
|
|
592
595
|
| 4.0.0 | 2026-06-22 | XSPEC-296:腦力激盪品質標準(BQS v1)——疊加於 v3 的四層 × 時間軸品質契約。第 0 層 explore/exploit 意圖(調節 D2 權重);第 1 層過程 leading 維度 D1–D4 + 硬序列閘(發散期禁 D5–D8);第 2 層產物 leading 維度 D5–D8 僅施於 Top 3,加 Seeds 欄與高方差爭議區;第 3 層 Judgment Override(凌駕聚合分)。D4 判官≠產生者(須獨立 context,否則 `[degraded]`);D5 主張分流(外部事實跨級地板);D7 二態證偽(「需先做 X」→next-step、不算 fail);Meta 停止規則(Top-3 集合穩定 + 硬上限 2 輪)。工作階段自評重新定位為校準回路 lagging 端(Adoption→D6、Diversity→D2/D3、Cognitive Load→成本;禁兩套平行評估)。第一原理修正為「決策用 leading、校準用 lagging」。分級綁客觀模式選擇觸發。新增旗標 `--intent`。所有 v3 旗標/機制保留。 |
|
|
593
596
|
| 3.0.0 | 2026-06-01 | XSPEC-247:DIVERGE 重新對齊到 persona 集成 + 多樣性透鏡(類比/反轉/形態學);CONVERGE 重新對齊到多評審面板 + 硬角色反駁(Devil's Advocate + Steelman);多樣性崩塌護欄;Enhanced 層級(平行 persona/評審代理、優雅退回);認知科學依據以 6 項已驗證的 2024–2026 出處重建;效度說明重新評等(pre-flight 為低、Nijstad/Nemeth 降級);新增旗標 `--personas`/`--lens`/`--enhanced`;反種子護欄 |
|
|
594
597
|
| 2.1.0 | 2026-05-09 | XSPEC-196 Phase 2:模式選擇客觀路由;自我評估框架;A/B 實驗協議;研究效度說明;漸進採用協議 |
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
name: logging
|
|
3
3
|
description: "[UDS] 實作結構化日誌,包含正確的日誌層級和敏感資料處理"
|
|
4
4
|
source: ../../../../skills/logging-guide/SKILL.md
|
|
5
|
-
source_version: 1.
|
|
6
|
-
translation_version: 1.
|
|
7
|
-
last_synced: 2026-
|
|
8
|
-
source_hash:
|
|
5
|
+
source_version: 1.4.0
|
|
6
|
+
translation_version: 1.4.0
|
|
7
|
+
last_synced: 2026-07-08
|
|
8
|
+
source_hash: cf114de1df86
|
|
9
9
|
status: current
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -13,8 +13,8 @@ status: current
|
|
|
13
13
|
|
|
14
14
|
> **語言**: [English](../../../../skills/logging-guide/SKILL.md) | 繁體中文
|
|
15
15
|
|
|
16
|
-
**版本**: 1.
|
|
17
|
-
**最後更新**: 2026-
|
|
16
|
+
**版本**: 1.4.0
|
|
17
|
+
**最後更新**: 2026-06-19
|
|
18
18
|
**適用範圍**: Claude Code Skills
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -57,6 +57,28 @@ status: current
|
|
|
57
57
|
| **ERROR** | 失敗的操作、捕獲的例外、整合失敗 |
|
|
58
58
|
| **FATAL** | 無法恢復的錯誤、啟動失敗、失去關鍵資源 |
|
|
59
59
|
|
|
60
|
+
## 強制事件
|
|
61
|
+
|
|
62
|
+
把每則日誌格式化得再完美,但**在真正關鍵的時刻卻從不觸發**,比什麼都沒有還糟——它會在事故當下給人虛假的安心感。核心標準定義了**9 個必須產生日誌記錄的標準事件**。若日誌設定遵守層級/欄位規則卻遺漏這些事件,就是「規範上合格、實質上沉默」。務必全部實作這 9 項:
|
|
63
|
+
|
|
64
|
+
| 事件 id | 時機 | 層級 | 核心必要欄位 | 不可記錄 |
|
|
65
|
+
|----------|------|-------|----------------------|--------------|
|
|
66
|
+
| `application_startup` | 開機後、**接受請求前** | INFO | app_name, version, git_sha, environment, hostname, pid, listening_endpoints | secrets、完整連線字串 |
|
|
67
|
+
| `request_received` | Middleware 首次看到請求時 | INFO / DEBUG | method, path, source_ip, request_id | request body、auth headers |
|
|
68
|
+
| `validation_failure` | schema / ModelState / DTO 驗證拒絕時 | WARN | request_id, path, missing_fields[], payload_shape(僅 keys) | 欄位**值**、PII |
|
|
69
|
+
| `authentication_failure` | 登入 / token 驗證失敗時 | WARN | uid(嘗試值), source_ip, failure_reason | password、token 值 |
|
|
70
|
+
| `outbound_call_start` | 發起對外 HTTP/RPC 呼叫時 | INFO | target_url(host+path), 傳遞的 request_id, timeout_ms | credentials、bearer tokens |
|
|
71
|
+
| `outbound_call_complete` | 外部呼叫返回或失敗時 | INFO / WARN / ERROR | status_code **或** failure_phase(dns/tcp/tls/http), elapsed_ms, retries | 含 PII 的 response body |
|
|
72
|
+
| `business_event` | 具狀態改變的業務操作完成時 | INFO | operation_name, actor, target ids, outcome | 完整 record payload、PII |
|
|
73
|
+
| `heartbeat` | 長期執行的背景服務,≥ 1 次 / 60 秒 | INFO | service_name, queue_depth, items_processed_since_last_heartbeat | — |
|
|
74
|
+
| `shutdown` | 行程結束時(正常或致命錯誤) | INFO / ERROR | app_name, signal/reason, uptime_seconds, pending_work_count | — |
|
|
75
|
+
|
|
76
|
+
**為何是這些事件**——每一項都補上一個真實的事故盲區:靜默的 `validation_failure` 會隱藏未記錄的 payload;`authentication_failure` 若缺 `uid`/`source_ip` 就無法調查;缺少 `heartbeat` 代表 0-byte 的日誌檔不會被察覺;沒有 `outbound_call_*` 會讓「送出失敗」變成一場找不到任何呼叫痕跡、耗時 2 天的追查。
|
|
77
|
+
|
|
78
|
+
> 背景服務若在 60 秒內未寫入任何 INFO/WARN/ERROR,**必須**發出一則 `heartbeat`;若連續 ≥ 2 倍間隔(≥ 120 秒)都沒有出現,沉默偵測器**必須**告警。
|
|
79
|
+
|
|
80
|
+
完整目錄(每個事件的 `when`/`must_log`/`must_NOT_log`/`rationale` 及合規範例),請參閱核心[日誌標準](../../core/logging-standards.md#強制事件-mandatory-events)的**強制事件**章節。
|
|
81
|
+
|
|
60
82
|
## 結構化日誌
|
|
61
83
|
|
|
62
84
|
### 必要欄位
|
|
@@ -294,6 +316,7 @@ logger.error('處理訂單失敗', {
|
|
|
294
316
|
|
|
295
317
|
| 版本 | 日期 | 變更 |
|
|
296
318
|
|------|------|------|
|
|
319
|
+
| 1.4.0 | 2026-06-19 | 新增:強制事件章節(9 個標準事件),消弭技能與核心標準之間的內容漂移;版號與核心日誌標準 v1.4.0 對齊(XSPEC-070 Phase 2) |
|
|
297
320
|
| 1.1.0 | 2026-05-26 | 新增:日誌檔案輪替章節及指向核心標準輪替政策的交叉連結;輪替清單(XSPEC-232) |
|
|
298
321
|
| 1.0.0 | 2025-12-30 | 初始發布 |
|
|
299
322
|
|
|
@@ -21,9 +21,9 @@ Structured ideation before specification writing. Transform vague ideas into act
|
|
|
21
21
|
|
|
22
22
|
v3 把發散從「單一 AI 衝數量」改為**persona 集成**(每個角色以思維鏈獨立推理)× **多樣性透鏡**;把收斂從「單一 AI 評分 + 單一反駁」改為**多評審面板** + **硬角色反駁**(Devil's Advocate + Steelman)。直接對應文獻最強結論:多 persona 勝過單一 pass,單一 LLM 評審既弱又易諂媚。
|
|
23
23
|
|
|
24
|
-
**What changed in v4 | v4 的核心改動:** v3 supplied strong *mechanisms* but no decidable pass/fail quality gate. v4 layers a **time-sequenced quality contract** on top — the **Brainstorm Quality Standard (BQS v1)** — without removing any v3 behaviour. BQS is a **four-layer × timeline** structure: Layer 0 declares explore/exploit intent; Layer 1 (process, leading, visible during divergence) runs dimensions **D1–D4**; Layer 2 (product, leading, applied to
|
|
24
|
+
**What changed in v4 | v4 的核心改動:** v3 supplied strong *mechanisms* but no decidable pass/fail quality gate. v4 layers a **time-sequenced quality contract** on top — the **Brainstorm Quality Standard (BQS v1)** — without removing any v3 behaviour. BQS is a **four-layer × timeline** structure: Layer 0 declares explore/exploit intent; Layer 1 (process, leading, visible during divergence) runs dimensions **D1–D4**; Layer 2 (product, leading, applied to the Recommended Set only after convergence — ideas with Agg. Score ≥ 3.5, uncapped) runs **D5–D8** plus a Seeds column and a contested zone; Layer 3 is an ungoverned **Judgment Override**. First principle: **decisions use leading signals; calibration uses lagging signals — these are ordered in time, not a right/wrong trade-off.** The hard sequence gate forbids D5–D8 from being revealed or scored during divergence. See "BQS v1 — Quality Contract" below.
|
|
25
25
|
|
|
26
|
-
**v4 的核心改動:** v3 提供了強健的*機制*,卻沒有可判定 pass/fail 的品質閘。v4 在其上疊加一道**時序化品質契約**——**腦力激盪品質標準(BQS v1)**——且不移除任何 v3 行為。BQS 是**四層 × 時間軸**結構:第 0 層宣告 explore/exploit 意圖;第 1 層(過程、leading、發散期全程可見)跑維度 **D1–D4**;第 2 層(產物、leading
|
|
26
|
+
**v4 的核心改動:** v3 提供了強健的*機制*,卻沒有可判定 pass/fail 的品質閘。v4 在其上疊加一道**時序化品質契約**——**腦力激盪品質標準(BQS v1)**——且不移除任何 v3 行為。BQS 是**四層 × 時間軸**結構:第 0 層宣告 explore/exploit 意圖;第 1 層(過程、leading、發散期全程可見)跑維度 **D1–D4**;第 2 層(產物、leading、收斂後僅施於推薦集,即 Agg. Score ≥ 3.5、不限筆數的想法)跑 **D5–D8** 加 Seeds 欄與爭議區;第 3 層是不受治理的 **Judgment Override**。第一原理:**決策用 leading 訊號、校準用 lagging 訊號——兩者是時間前後,而非對錯取捨。** 硬序列閘禁止 D5–D8 在發散期被揭示或評分。詳見下方「BQS v1 — 品質契約」。
|
|
27
27
|
|
|
28
28
|
## Mode Selection | 使用前先選模式
|
|
29
29
|
|
|
@@ -49,7 +49,7 @@ Apply these **objective triggers** before starting. Default is full v3 — routi
|
|
|
49
49
|
```
|
|
50
50
|
[Mode Selection] ─► PRE-FLIGHT ─► FRAME ─► DIVERGE ───────────► CONVERGE ──────────► OUTPUT
|
|
51
51
|
客觀路由 防止錨定 定義問題 persona 集成+透鏡 多評審面板+硬角色反駁 輸出提案
|
|
52
|
-
▲ Layer 0 intent ▲ Layer 1 (D1–D4, leading) ▲ Layer 2 (D5–D8,
|
|
52
|
+
▲ Layer 0 intent ▲ Layer 1 (D1–D4, leading) ▲ Layer 2 (D5–D8, Recommended Set) ▲ Layer 3 override
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
---
|
|
@@ -83,9 +83,9 @@ At the start, declare the **explore/exploit ratio** and the bet type (incrementa
|
|
|
83
83
|
>
|
|
84
84
|
> D5–D8 禁止在發散期揭示或評分;CONVERGE 的 critic 不得在**最後一個 persona** 產完前被呼叫。
|
|
85
85
|
|
|
86
|
-
### Layer 2 — Product (post-convergence leading, applied to
|
|
86
|
+
### Layer 2 — Product (post-convergence leading, applied to the Recommended Set only) | 第 2 層 — 產物(收斂後 leading,僅施於推薦集)
|
|
87
87
|
|
|
88
|
-
> Evaluative dimensions are confined to **after convergence ×
|
|
88
|
+
> Evaluative dimensions are confined to **after convergence × the Recommended Set only** (ideas with Agg. Score ≥ 3.5, uncapped in count) — never as a full gate on every divergence idea (that would retroactively pollute divergence, kill evidence-free future ideas, and create form-filling theatre). | 評判維度限縮在**收斂後 × 僅推薦集**(Agg. Score ≥ 3.5 的想法,不限筆數),絕不在發散期對全部想法當硬閘(否則回溯污染發散、扼殺無證據的未來想法、製造填表劇場)。
|
|
89
89
|
|
|
90
90
|
| Dim | Oracle | Oracle |
|
|
91
91
|
|-----|--------|--------|
|
|
@@ -104,11 +104,11 @@ A reserved space no oracle enters: a human's intuition to "keep / kill" needs on
|
|
|
104
104
|
|
|
105
105
|
### Structural rules | 結構規則
|
|
106
106
|
|
|
107
|
-
1. **Meta stop rule | Meta 停止規則:** stop when the layer's dimensions are all green **and**, after one more round, the **
|
|
107
|
+
1. **Meta stop rule | Meta 停止規則:** stop when the layer's dimensions are all green **and**, after one more round, the **Recommended Set membership is unchanged** (set membership, not internal ranking). **Hard cap: 2 rounds.** This replaces the vague "decision didn't flip" criterion. | 該層維度全綠 **且** 再跑一輪後 **推薦集成員不變**(看集合成員、不看內部排序)→停。**硬上限 2 輪**。取代模糊的「不翻決策」。
|
|
108
108
|
2. **Judge ≠ generator | 判官≠產生者:** D2/D4/D5/D7 judgements need an independent viewpoint; single-context self-evaluation may only be `[degraded]`, never pass. | D2/D4/D5/D7 判定須獨立視角;單 context 自評只能 `[degraded]`,不得 pass。
|
|
109
109
|
3. **Calibration loop (consumes lagging) | 校準回路(吃 lagging):** v3's three Session Self-Evaluation metrics are folded in as the **lagging** end — **Adoption Rate = D6 lagging validation, Diversity = D2/D3 lagging observation, Cognitive Load = a cost constraint**. **Two parallel evaluation systems are forbidden** — there is one loop, not a separate self-eval. | v3 的 **Adoption Rate**=D6 滯後驗證、**Diversity**=D2/D3 滯後觀測、**Cognitive Load**=成本約束;三者收編為此回路 lagging 端,**禁兩套平行評估**。
|
|
110
110
|
4. **BQS self-evolution (lightweight) | BQS 自我演化(輕量):** versioned + an evidence `last-reviewed` that flags when overdue; "periodically brainstorm BQS itself" is optional. | 版本化 + 證據清單 last-reviewed 逾期 flag;「定期對 BQS 自身 brainstorm」列可選。
|
|
111
|
-
5. **Minimal sufficiency | 最小充分原則:** apply only the fewest dimensions the tier requires + the
|
|
111
|
+
5. **Minimal sufficiency | 最小充分原則:** apply only the fewest dimensions the tier requires + confining Layer 2 to the Recommended Set (Agg. Score ≥ 3.5) instead of every divergence idea — this is the gate for cognitive economy; no separate cost dimension is added. | 套用該 tier 所需的最少維度 + 把第 2 層限縮在推薦集(Agg. Score ≥ 3.5),而非全部發散想法——認知經濟性的守門,不另設成本維度。
|
|
112
112
|
|
|
113
113
|
### Tiering (bound to v3 objective triggers, not self-assessment) | 分級(綁 v3 既有客觀觸發,非自評)
|
|
114
114
|
|
|
@@ -254,9 +254,9 @@ Per-criterion guide (1–5): Feasibility (5=trivial … 1=near-impossible); Impa
|
|
|
254
254
|
|
|
255
255
|
#### Step 3b: Hard-role Rebuttal Round | 硬角色反駁輪
|
|
256
256
|
|
|
257
|
-
A soft "please critique this" instruction yields mostly agreement (sycophancy). v3 assigns **hard roles**: for each
|
|
257
|
+
A soft "please critique this" instruction yields mostly agreement (sycophancy). v3 assigns **hard roles**: for each idea in the **Recommended Set** (Agg. Score ≥ 3.5, uncapped), run a **Devil's Advocate** ("Your job is to argue this idea WILL fail") and a **Steelman** ("State the strongest charitable version of the counterargument"). Together they stress-test resilience rather than merely poke.
|
|
258
258
|
|
|
259
|
-
軟性「請批評一下」只會得到附和(諂媚)。v3
|
|
259
|
+
軟性「請批評一下」只會得到附和(諂媚)。v3 指派**硬角色**:對**推薦集**(Agg. Score ≥ 3.5,不限筆數)中的每一個想法各跑一個 **Devil's Advocate**(「你的任務是論證此案會失敗」)與一個 **Steelman**(「說出反方最強而善意的版本」)。兩者一起壓力測試韌性,而非只是戳。
|
|
260
260
|
|
|
261
261
|
Each counterargument must take the form: "This idea will fail in [specific context] because [specific reason]." Vague concerns ("this might be hard") are rejected.
|
|
262
262
|
|
|
@@ -278,20 +278,20 @@ The user **must** respond to each before advancing:
|
|
|
278
278
|
>
|
|
279
279
|
> D4 唯有**評審/Devil's Advocate 在獨立 context 執行**(`--enhanced` 隔離 agent 宿主)才可 pass。baseline 單 context 下,面板是同 context 自評,標 `[degraded]`、**不得標 pass**——誠實但非獨立。不得把 baseline 跑當成 D4 pass 靜默通過。
|
|
280
280
|
|
|
281
|
-
#### Step 3c: BQS Layer 2 — product gate on
|
|
281
|
+
#### Step 3c: BQS Layer 2 — product gate on the Recommended Set | BQS 第 2 層——對推薦集的產物閘
|
|
282
282
|
|
|
283
|
-
After convergence, apply **D5–D8 to the
|
|
283
|
+
After convergence, apply **D5–D8 to the Recommended Set only** (ideas with Agg. Score ≥ 3.5, uncapped — never to every divergence idea). If no idea reaches 3.5, keep the single highest-scoring idea and mark it `[below threshold — shown for reference]` so the report is never empty. For each idea in the Recommended Set:
|
|
284
284
|
|
|
285
|
-
|
|
285
|
+
收斂後,**僅對推薦集**(Agg. Score ≥ 3.5 的想法,不限筆數)套用 **D5–D8**(絕不對全部發散想法)。若無想法達 3.5,仍保留分數最高的 1 個,標記 `[未達門檻——僅供參考]`,避免報告空白。對推薦集中每個想法:
|
|
286
286
|
|
|
287
287
|
- **D5 Grounding:** split each claim into `[current state / external fact]` (needs a file:line or source, else fail) vs `[future / hypothesis]` (no grounding needed, mark `[hypothesis]`). An **external-fact claim is a cross-tier floor** — it must be grounded even at the creative tier. | 將每個主張分流為 `[現狀/外部事實]`(需 file:line 或來源,否則 fail)vs `[未來/假說]`(免接地、標 `[假說]`)。**外部事實宣稱為跨級地板**——creative 級也須接地。
|
|
288
|
-
- **D6 Net benefit:** each
|
|
288
|
+
- **D6 Net benefit:** each idea in the Recommended Set must answer "whose problem / do we actually have it / cost of not doing it"; at least one idea must be eliminated as "not worth doing"; attach a **lagging registry field** (which later signal validates this). | 推薦集中每個想法須答「解誰問題/我們真有嗎/不做的代價」;至少一個淘汰為「不值得做」;掛 **lagging 登記欄**(事後哪個訊號驗證)。
|
|
289
289
|
- **D7 Falsifiability (two-state):** mark `[falsifiable now]` **or** `[need to do X first to define falsification]`. The latter is **routed to a next-step that feeds D8 — it does NOT count as fail**. | 標 `[現可陳述證偽]` **或** `[需先做 X 才能定義證偽]`。後者**轉 next-step 餵 D8——不算 fail**。
|
|
290
290
|
- **D8 Actionability:** every surviving idea needs a next-step decision (including an explicit "defer / not now"); none → fail. | 每個存活想法需 next-step 裁決(含明確「暫不做」);無 → fail。
|
|
291
291
|
|
|
292
|
-
> **Meta stop rule (BQS structural rule 1) | Meta 停止規則:** stop iterating when the applied dimensions are all green **and** one more round leaves the **
|
|
292
|
+
> **Meta stop rule (BQS structural rule 1) | Meta 停止規則:** stop iterating when the applied dimensions are all green **and** one more round leaves the **Recommended Set membership unchanged** (set membership, not internal ordering). **Hard cap: 2 rounds.**
|
|
293
293
|
>
|
|
294
|
-
> 當套用的維度全綠 **且** 再跑一輪後
|
|
294
|
+
> 當套用的維度全綠 **且** 再跑一輪後 **推薦集成員不變**(看集合成員、非內部排序)→停。**硬上限 2 輪。**
|
|
295
295
|
|
|
296
296
|
---
|
|
297
297
|
|
|
@@ -317,12 +317,14 @@ Produce a Brainstorm Report ready for `/requirement` or `/sdd`. Each surviving i
|
|
|
317
317
|
|---|------|---------|------|-------------|---------------|--------------|-----------|
|
|
318
318
|
| 1 | ... | Skeptic | Reversal | 4.0 | 4.5 | 4.0 | 4.2 |
|
|
319
319
|
|
|
320
|
-
##
|
|
321
|
-
1. **[Idea]** ✓ Passed rebuttal — [Why] — Persona: [..] — [User rebuttal response]
|
|
320
|
+
## Recommendations (BQS Layer 2 applied, Agg. Score ≥ 3.5 — uncapped)
|
|
321
|
+
1. **[Idea]** (Agg. X.X) ✓ Passed rebuttal — [Why] — Persona: [..] — [User rebuttal response]
|
|
322
322
|
- D5 grounding: [current-state claims with file:line | future claims marked [hypothesis]]
|
|
323
323
|
- D6 net benefit: [whose problem / do we have it / cost of not doing] — lagging signal: [..]
|
|
324
324
|
- D7 falsifiability: [falsifiable now | need to do X first → next-step]
|
|
325
325
|
- D8 next-step: [action | defer]
|
|
326
|
+
2. **[Idea]** (Agg. X.X) ✓ Passed rebuttal — ...
|
|
327
|
+
<!-- List every idea with Agg. Score ≥ 3.5, sorted descending — do not cap at 3. If none reach 3.5, list only the single highest-scoring idea marked "[below threshold — shown for reference]". -->
|
|
326
328
|
|
|
327
329
|
## Contested Zone (high critic-variance ideas)
|
|
328
330
|
[Ideas whose critic variance exceeded threshold — surfaced, NOT eliminated by mean ranking (barbell long-tail)]
|
|
@@ -344,9 +346,9 @@ Produce a Brainstorm Report ready for `/requirement` or `/sdd`. Each surviving i
|
|
|
344
346
|
- [ ] Proceed to `/sdd` if requirements are clear
|
|
345
347
|
```
|
|
346
348
|
|
|
347
|
-
> **BQS output additions (v4):** the **Seeds** section (rule: non-empty when ≥1 idea was killed), the **Contested Zone** (high-variance ideas not eliminated by mean ranking), and the **Judgment Override** channel (human decision overriding the aggregate score) are required by BQS Layer 2/3. The
|
|
349
|
+
> **BQS output additions (v4):** the **Seeds** section (rule: non-empty when ≥1 idea was killed), the **Contested Zone** (high-variance ideas not eliminated by mean ranking), and the **Judgment Override** channel (human decision overriding the aggregate score) are required by BQS Layer 2/3. The Recommendations block records the D5–D8 status per idea, for every idea in the Recommended Set (uncapped).
|
|
348
350
|
>
|
|
349
|
-
> **BQS 輸出新增(v4):** **Seeds** 區(規則:被殺 ≥1 則非空)、**爭議區**(高方差想法不按 mean 淘汰)、**Judgment Override** 通道(人類裁決凌駕聚合分)為 BQS 第 2/3 層所要求。
|
|
351
|
+
> **BQS 輸出新增(v4):** **Seeds** 區(規則:被殺 ≥1 則非空)、**爭議區**(高方差想法不按 mean 淘汰)、**Judgment Override** 通道(人類裁決凌駕聚合分)為 BQS 第 2/3 層所要求。Recommendations 區塊為推薦集(不限筆數)中每個想法逐項記錄 D5–D8 狀態。
|
|
350
352
|
|
|
351
353
|
## Diversity-Collapse Guardrail | 多樣性崩塌防護
|
|
352
354
|
|
|
@@ -356,7 +358,7 @@ Using a single LLM for ideation reduces the **diversity of ideas across users**,
|
|
|
356
358
|
|
|
357
359
|
- **Never seed** with a competitor or product analogy ("like X but for Y"). | 絕不用競品/產品類比當種子。
|
|
358
360
|
- **Vary the lens**, not just the wording — reword ≠ diversify. | 變的是透鏡而非措辭——換句話不等於多樣化。
|
|
359
|
-
- If the surviving
|
|
361
|
+
- If the surviving Recommended Set all came from one persona/lens, **flag it** and run one more lens before OUTPUT. | 若推薦集全來自同一 persona/透鏡,**標示**並在輸出前再跑一個透鏡。
|
|
360
362
|
|
|
361
363
|
## Enhanced Tier — Parallel Personas | 強化層——平行 persona
|
|
362
364
|
|
|
@@ -10,8 +10,8 @@ description: |
|
|
|
10
10
|
|
|
11
11
|
> **Language**: English | [繁體中文](../../locales/zh-TW/skills/brainstorm-assistant/guide.md)
|
|
12
12
|
|
|
13
|
-
**Version**: 4.
|
|
14
|
-
**Last Updated**: 2026-
|
|
13
|
+
**Version**: 4.1.0
|
|
14
|
+
**Last Updated**: 2026-07-09
|
|
15
15
|
**Applicability**: All software projects
|
|
16
16
|
**Scope**: universal
|
|
17
17
|
**Type**: Utility Skill (no core standard)
|
|
@@ -49,10 +49,10 @@ v3 supplied strong *mechanisms* but no **decidable pass/fail quality gate** —
|
|
|
49
49
|
|
|
50
50
|
- **Layer 0 — Intent**: declare explore/exploit ratio; modulates dimension weights.
|
|
51
51
|
- **Layer 1 — Process (divergence-period leading, visible)**: dimensions **D1 frame purity / D2 divergence coverage / D3 cross-session diversity / D4 evaluation de-bias**, each with an oracle. A **hard sequence gate** forbids the evaluative dimensions D5–D8 from being revealed or scored during divergence.
|
|
52
|
-
- **Layer 2 — Product (post-convergence leading,
|
|
52
|
+
- **Layer 2 — Product (post-convergence leading, Recommended Set only — Agg. Score ≥ 3.5, uncapped)**: **D5 grounding / D6 net benefit / D7 falsifiability / D8 actionability**, plus a Seeds column and a contested zone for high-variance ideas.
|
|
53
53
|
- **Layer 3 — Ungoverned**: a Judgment Override where human intuition overrides the aggregate score.
|
|
54
54
|
|
|
55
|
-
The first principle is refined: **decisions use leading signals, calibration uses lagging signals — ordered in time, not a right/wrong trade-off** (this removes any "use only leading, never lagging" absolutism). The core claim: evaluative dimensions are confined to **after convergence ×
|
|
55
|
+
The first principle is refined: **decisions use leading signals, calibration uses lagging signals — ordered in time, not a right/wrong trade-off** (this removes any "use only leading, never lagging" absolutism). The core claim: evaluative dimensions are confined to **after convergence × the Recommended Set only** (Agg. Score ≥ 3.5, uncapped), never as a full gate on every divergence idea — otherwise they retroactively pollute divergence, kill evidence-free future ideas, and create form-filling theatre. The full contract, oracles, and structural rules live in **SKILL.md → "BQS v1 — Quality Contract"**.
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -307,7 +307,7 @@ A single LLM is a weak, biased evaluator (Li et al., 2025: LLMs are strong at ge
|
|
|
307
307
|
|
|
308
308
|
### Step 3b: Hard-role Rebuttal Round
|
|
309
309
|
|
|
310
|
-
A soft "please critique this" yields mostly agreement — LLMs are sycophantic under a weak critique frame. v3 assigns **hard roles** to the **
|
|
310
|
+
A soft "please critique this" yields mostly agreement — LLMs are sycophantic under a weak critique frame. v3 assigns **hard roles** to every idea in the **Recommended Set** (Agg. Score ≥ 3.5, uncapped):
|
|
311
311
|
|
|
312
312
|
- **Devil's Advocate**: "Your job is to argue this idea WILL fail. Produce 2 specific failure conditions."
|
|
313
313
|
- **Steelman**: "State the strongest, most charitable version of the counterargument — the one a thoughtful opponent would actually make."
|
|
@@ -360,10 +360,12 @@ Each idea that remains receives a badge: `✓ Passed rebuttal — [one-line summ
|
|
|
360
360
|
|---|------|---------|------|--------------|---------------|---------------|------|
|
|
361
361
|
| 1 | ... | Skeptic | Reversal | 4.0 | 4.5 | 4.0 | 4.2 |
|
|
362
362
|
|
|
363
|
-
##
|
|
363
|
+
## Recommendations (Agg. Score ≥ 3.5 — uncapped)
|
|
364
364
|
### 1. [Idea] (Agg. X.X) ✓ Passed rebuttal
|
|
365
365
|
- **Why**: [Reasoning] - **Persona/Lens**: [..] - **Rebuttal response**: [one line] - **Scope**: [S/M/L]
|
|
366
366
|
|
|
367
|
+
<!-- List every idea with Agg. Score ≥ 3.5, sorted descending — no cap at 3. If none reach 3.5, list only the single highest-scoring idea marked "(below threshold — shown for reference)". -->
|
|
368
|
+
|
|
367
369
|
## Diversity Note
|
|
368
370
|
[How many distinct personas/lenses the surviving ideas span; flag if all from one cluster]
|
|
369
371
|
|
|
@@ -385,7 +387,7 @@ Using a single LLM for ideation reduces the **diversity of ideas across users**,
|
|
|
385
387
|
|
|
386
388
|
- **Never seed** with a competitor or product analogy ("like X but for Y").
|
|
387
389
|
- **Vary the lens**, not just the wording — rewording a prompt does not diversify output.
|
|
388
|
-
- If the surviving
|
|
390
|
+
- If the surviving Recommended Set all originate from one persona or lens, **flag it** and run one additional lens before OUTPUT.
|
|
389
391
|
- Prefer **lower-fidelity** idea statements early (a rough direction, not a polished concept) — high-fidelity AI output deepens fixation (finding #3).
|
|
390
392
|
|
|
391
393
|
---
|
|
@@ -603,6 +605,7 @@ BQS v1 是**疊加的品質契約**,不是打掉重練。v3 的一切都保留
|
|
|
603
605
|
|
|
604
606
|
| Version | Date | Changes |
|
|
605
607
|
|---------|------|---------|
|
|
608
|
+
| 4.1.0 | 2026-07-09 | XSPEC-325: Replaced the fixed Top-3 recommendation cap with a score-threshold **Recommended Set** (Agg. Score ≥ 3.5, uncapped in count) throughout BQS Layer 2 — the product gate (D5–D8), the hard-role rebuttal round (Devil's Advocate + Steelman), the Meta stop rule (set-membership stability), the Diversity-Collapse Guardrail, and the OUTPUT Recommendations block all now key off the Recommended Set instead of a fixed 3. If no idea reaches 3.5, the single highest-scoring idea is still shown, marked "below threshold — shown for reference", so the report is never empty. |
|
|
606
609
|
| 4.0.0 | 2026-06-22 | XSPEC-296: Brainstorm Quality Standard (BQS v1) — a four-layer × timeline quality contract layered additively on v3. Layer 0 explore/exploit intent (modulates D2 weight); Layer 1 process leading dimensions D1–D4 with a hard sequence gate (D5–D8 forbidden during divergence); Layer 2 product leading dimensions D5–D8 applied to Top 3 only, with a Seeds column and high-variance contested zone; Layer 3 Judgment Override (overrides aggregate score). D4 judge≠generator (independent context else `[degraded]`); D5 claim split (external-fact floor cross-tier); D7 two-state falsifiability ("need to do X" → next-step, not fail); Meta stop rule (Top-3 set stability + hard cap 2 rounds). Session Self-Evaluation re-positioned as the calibration loop's lagging end (Adoption→D6, Diversity→D2/D3, Cognitive Load→cost; two parallel evaluations forbidden). First principle refined to "decisions use leading, calibration uses lagging". Tiering bound to objective Mode Selection triggers. New flag `--intent`. All v3 flags/mechanisms preserved. |
|
|
607
610
|
| 3.0.0 | 2026-06-01 | XSPEC-247: DIVERGE re-centred on persona ensemble + diversity lenses (analogical/reversal/morphological); CONVERGE re-centred on multi-critic panel + hard-role rebuttal (Devil's Advocate + Steelman); Diversity-Collapse Guardrail; Enhanced Tier (parallel persona/critic agents, graceful fallback); Research Foundations rebuilt on 6 verified 2024–2026 sources; Validity Caveats re-rated (pre-flight LOW, Nijstad/Nemeth demoted); new flags `--personas`/`--lens`/`--enhanced`; anti-seed guardrail |
|
|
608
611
|
| 2.1.0 | 2026-05-09 | XSPEC-196 Phase 2: Mode Selection objective routing; Self-Evaluation Framework; A/B Experiment Protocol; Research Validity Caveats; Gradual Adoption Protocol |
|
|
@@ -211,6 +211,17 @@ npm run sdd:analyze -- --specs specs --tests tests [--userguide docs] [--json]
|
|
|
211
211
|
|
|
212
212
|
**vs `/ac-coverage`**: ac-coverage = per-spec detailed AC↔test matrix;`/sdd analyze` = cross-spec/batch consistency + orphan detection(互補、不取代)。
|
|
213
213
|
|
|
214
|
+
## Spec-vs-Code Convergence Check | 規格與實作漂移偵測(2026-07-10,spec-kit `/converge` 借鑑)
|
|
215
|
+
|
|
216
|
+
**vs `/sdd analyze`**:`/sdd analyze` 問「測試有沒有正確引用 AC」(引用完整性,deterministic script);convergence check 問「程式碼的實際行為是否真的符合 spec 描述」(語意漂移,需要讀碼判斷,走 `sdd.flow.yaml` verify 階段的 `spec-match-check` ai-check step)——兩者互補、檢查的是不同層次的問題,不重疊。
|
|
217
|
+
|
|
218
|
+
雖然定義在 7-phase 狀態機的 `verify` 階段(一次性 gate),**這個檢查可以在任何時間點對已歸檔的 spec 獨立重跑**——用於偵測 spec 歸檔後、code 持續演進累積出的漂移(例如後續 commit 改了行為但沒回頭更新 spec)。重跑時:
|
|
219
|
+
|
|
220
|
+
- 落差分類:`missing`(spec 要求但沒做)/`partial`(做一半)/`contradicts`(行為與描述不同)/`unrequested`(做了沒被要求的事)
|
|
221
|
+
- 嚴重度:`CRITICAL`(違反 spec 明確 MUST)/`HIGH`/`MEDIUM`/`LOW`
|
|
222
|
+
- 唯讀比對——只列出發現,不自動修改 spec 或程式碼
|
|
223
|
+
- 適合定期(如季度)對重要 spec 抽查,或懷疑特定 spec 已過時時針對性執行
|
|
224
|
+
|
|
214
225
|
## Usage | 使用方式
|
|
215
226
|
|
|
216
227
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "universal-dev-standards",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.1.1",
|
|
4
4
|
"description": "CLI tool for adopting Universal Development Standards",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"documentation",
|
|
@@ -70,9 +70,9 @@
|
|
|
70
70
|
"@vitest/coverage-v8": "^4.1.5",
|
|
71
71
|
"ajv": "^8.20.0",
|
|
72
72
|
"ajv-formats": "^3.0.1",
|
|
73
|
-
"eslint": "10.
|
|
73
|
+
"eslint": "10.6.0",
|
|
74
74
|
"glob": "^13.0.1",
|
|
75
|
-
"globals": "17.
|
|
75
|
+
"globals": "17.7.0",
|
|
76
76
|
"husky": "^9.1.7",
|
|
77
77
|
"lint-staged": "^17.0.3",
|
|
78
78
|
"vitest": "^4.1.5"
|
package/src/commands/check.js
CHANGED
|
@@ -44,12 +44,9 @@ import { lintAll as lintI18nAll, partitionFindings as partitionI18nFindings } fr
|
|
|
44
44
|
* Display the summary of file integrity status
|
|
45
45
|
*/
|
|
46
46
|
function displayFileIntegritySummary(fileStatus, msg) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
47
|
+
// XSPEC-342 R4(安靜通過):不再逐檔列印「✓ 未變更」——實測佔 `uds check` 輸出約 70%
|
|
48
|
+
// (121 行中 85 行),把真正該讀的訊息(如標準落後)淹沒,也讓輸出大到被 agent 截斷。
|
|
49
|
+
// 未變更數仍保留在下方 summary 一行;此處只列印「需要注意」的檔(modified/missing/noHash)。
|
|
53
50
|
if (fileStatus.modified.length > 0) {
|
|
54
51
|
for (const file of fileStatus.modified) {
|
|
55
52
|
console.log(chalk.yellow(` ⚠ ${file} (${msg.modified})`));
|
|
@@ -221,7 +218,7 @@ function initializeCheckContext(projectPath) {
|
|
|
221
218
|
/**
|
|
222
219
|
* Display standards adoption status and update information
|
|
223
220
|
*/
|
|
224
|
-
function displayAdoptionStatus(manifest, msg, common, repoInfo) {
|
|
221
|
+
function displayAdoptionStatus(manifest, msg, common, repoInfo, standardsUpdate) {
|
|
225
222
|
console.log(chalk.green(msg.standardsInitialized));
|
|
226
223
|
console.log();
|
|
227
224
|
console.log(chalk.cyan(msg.adoptionStatus));
|
|
@@ -229,9 +226,15 @@ function displayAdoptionStatus(manifest, msg, common, repoInfo) {
|
|
|
229
226
|
console.log(chalk.gray(` ${common.version}: ${manifest.upstream.version}`));
|
|
230
227
|
console.log();
|
|
231
228
|
|
|
232
|
-
//
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
// XSPEC-342 R1:判斷「已裝標準」是否落後 **npm 最新版**,而非 CLI 自己 bundled 的副本。
|
|
230
|
+
// 舊 bug:拿 manifest.upstream.version 比 repoInfo.standards.version(=跑這支 CLI 帶的
|
|
231
|
+
// 標準副本)。CLI 一舊,bundled < npm 最新,就會吐出「6.1.0 → 5.12.1」這種倒退訊息,
|
|
232
|
+
// 且永遠說不出「你的標準過期了」。standardsUpdate = checkForUpdates(已裝標準版本):
|
|
233
|
+
// available = 已裝 < npm 最新。離線時為 null → 靜默略過(不誤用 bundled 版本比對)。
|
|
234
|
+
if (standardsUpdate && !standardsUpdate.offline && standardsUpdate.available) {
|
|
235
|
+
console.log(chalk.yellow(msg.updateAvailable
|
|
236
|
+
.replace('{current}', manifest.upstream.version)
|
|
237
|
+
.replace('{latest}', standardsUpdate.latestVersion)));
|
|
235
238
|
console.log(chalk.gray(` ${msg.runUpdate}`));
|
|
236
239
|
console.log();
|
|
237
240
|
}
|
|
@@ -308,10 +311,17 @@ export async function checkCommand(options = {}) {
|
|
|
308
311
|
console.log(chalk.bold(msg.title));
|
|
309
312
|
console.log(chalk.gray('─'.repeat(50)));
|
|
310
313
|
|
|
311
|
-
//
|
|
312
|
-
|
|
314
|
+
// XSPEC-342 R1:先問 npm 最新,判斷「已裝標準」是否落後(離線則跳過,不誤用 CLI bundled 版本)。
|
|
315
|
+
// fetchLatestVersion 有 60s 模組級快取,故此處與下方 checkCliVersion 共兩次呼叫只打一次網路。
|
|
316
|
+
let standardsUpdate = null;
|
|
317
|
+
if (!options.offline) {
|
|
318
|
+
standardsUpdate = await checkForUpdates(manifest.upstream.version, {
|
|
319
|
+
checkBeta: manifest.upstream.version.includes('-')
|
|
320
|
+
});
|
|
321
|
+
}
|
|
313
322
|
|
|
314
|
-
//
|
|
323
|
+
// Display adoption info
|
|
324
|
+
displayAdoptionStatus(manifest, msg, common, repoInfo, standardsUpdate);
|
|
315
325
|
|
|
316
326
|
// Check for CLI updates from npm registry (unless --offline)
|
|
317
327
|
if (!options.offline) {
|