Problem
Original text (使用者口述,2026-05-04):
「判斷要走 simple, plan, spectra 的情況下,vagueness 應該是重要的判斷標準,但現在好像沒有」
— Source: /idd-issue invocation arguments
解讀
現行 idd-diagnose 的 Complexity 判定(rules/sdd-integration.md)用 4 層 gate:
| Layer |
衡量什麼 |
| Layer 1(Simple disqualifier) |
交付物形態(narrative / ad-hoc analysis / 多檔獨立) |
| Layer 2(Spectra necessary) |
是否有 published API/protocol/skill/tool surface |
| Layer 3(Spectra confirmation) |
是否動到 spec normative 行為、跨 2+ specs、架構決策 |
| Layer P(Plan signals) |
檔案互依、5+ ordered steps、decision-heavy diagnosis、risk-sensitive boundary、cross-file refactor |
全部都在量「改動的形狀」(scope / surface / risk),沒有一條在量「需求本身的清晰度」。
唯一沾到邊的:
- Layer P 的
Decision-heavy with multiple valid approaches —— 但前提是 diagnosis 已經列出 2+ 策略,代表 diagnosis 已經做完且收斂。對「issue body 本身就含糊到 diagnose 都做不下去」的情境沒覆蓋。
Why spectra-discuss is the default for Spectra rationale 提到「AI 常常高估 diagnosis 完整度」 —— 但這是 Spectra path 內 的安全網,不是把 vagueness 拉前到 routing 決策本身。
Type
refactor(改進既有 routing 規則)
Why vagueness 應該是一階信號
Issue 的 vagueness 跟改動的 scope 是 正交 的兩個維度:
Scope: 小 Scope: 大
┌─────────────────────────────────┬─────────────────────────────────┐
Vague needs: │ A. 「menu 感覺怪怪的,改一下」 │ B. 「整個 onboarding 流程要重做」 │
│ 一檔可能就改完,但不知道要改 │ 範圍大,且方向也不清楚 │
│ 什麼 → 現在會被判 Simple │ → 現在大機率判 Spectra(對) │
├─────────────────────────────────┼─────────────────────────────────┤
Clear needs: │ C. 「這行 typo,改 'recieve' → │ D. 「把 5 個 walker 抽出 visitor │
│ 'receive'」 │ protocol,介面設計如附圖」 │
│ → Simple(對) │ → 現在判 Plan(對) │
└─────────────────────────────────┴─────────────────────────────────┘
問題集中在 quadrant A:scope 小 + 需求模糊 → 現行邏輯判 Simple → AI 直接進 TDD loop → pattern-match 一個方向就動手 → 改完才發現「不是這個意思」。
這正是 spectra-discuss 想防的失敗模式,但 Simple path 完全沒有對應的 alignment gate。Plan path 的 EnterPlanMode 雖然能擋,但前提是先被路由到 Plan;vagueness 沒進入 routing 信號的話,quadrant A 永遠不會被路到 Plan。
Expected
rules/sdd-integration.md 應該把 Vagueness Layer 加進 4 層 gate,作為 routing 決策的一階信號。可能的 shape(待 diagnose):
-
新增 Layer V (Vagueness signals) —— 與 Layer P 並列,任一命中就升級到 Plan(或 Spectra,看程度)
- Issue body 含 hedge 語(「感覺」「好像」「之類的」「順便」「之類」「something like」「somehow」)
- 缺 expected/actual(bug type)或缺 acceptance criteria(feature type)
- 含 open question(「該用 X 還是 Y?」「要不要也包含 Z?」)
- 比較性訴求無基準(「改得好一點」「比較順」「更符合直覺」)
- 多個並列名詞模糊指涉(「相關的東西」「類似的地方」)
-
Layer 2 reformulation —— Spectra 不只看「有沒有 published API」,也看「需求是否需要先對齊才能定 contract」。Vague Spectra-shaped issue → spectra-discuss(本來就是 default,但這次 routing 應該主動點出 vagueness 是觸發因素)
-
新增 disqualifier 反向:即使 Layer 1 命中(narrative / ad-hoc),如果 vagueness 同時很高,可能要 escalate 到 Plan 而不是 Simple —— 例如「abstract 重寫,但風格、長度、目標讀者都沒講」應該先 Plan-mode 對齊再寫。
Actual
目前的 4 層 gate 完全沒有 vagueness 軸。所以:
- Quadrant A(small + vague)→ 一律 Simple → AI 直接動手 → 高機率改錯方向
- 即使 issue body 含「感覺怪怪的」「之類的」「再順便處理 X」這種 obvious hedge,也不會升級
- 唯一補救是 user 主動指定
--complexity Plan 或寫超詳細的 issue —— 但這就是把責任推給 user
Impact
- 失敗模式:Quadrant A issue 走 Simple path → AI 改完 → user「這不是我要的」→ revert/重做 → 多一輪
- 頻率:高。日常很多 ad-hoc 改善請求(「這個 UI 有點怪」「reports 看起來不太對」)都落在 quadrant A
- 目前的 workaround:user 自己升級到 Plan,或在 issue body 一開始就寫死 acceptance criteria —— 但 IDD 的 promise 是 routing 由 skill 判定,不是讓 user 預先 self-route
關聯設計線索
rules/sdd-integration.md "Why spectra-discuss is the default for Spectra" —— 已承認 vagueness 存在,但只在 Spectra 內部處理
idd-diagnose Step 3.5 是判定點,新增 Layer V 應該在這裡
MANIFESTO.md 5-axis bug-fix model —— 可能要新增「alignment axis」對應 vagueness
- 與
linked-context sister sweep(IC_R011)正交:那個是「漏抓 sibling」,這個是「主軸本身就模糊」
Next Step
/issue-driven-dev:idd-diagnose #NNN(實際 issue # 由建立後填入)
Linked-Context Siblings Filed (v2.48.0+ #529)
(none — no orphan sibling mentions in linked context)
Current Status
Phase: closed
Last updated: 2026-05-04 by idd-close
Key Decisions
- Verdict = Spectra → spectra-discuss → propose → apply → archive 完整 lifecycle
- Approach C 選定 (Step 3.4 in idd-diagnose,不新增獨立 skill,維持 6-skill plugin surface)
- Heuristic = AI Likert 6-point per-axis (V1, V4),trigger threshold per-axis ≥ 4 — 不用 keyword matching
- Hybrid 3-option (clarify / proceed / escalate) default 隨 max score 變
- Meta-rule
屬性評分用 Likert,不用 keyword 抽到 .claude/rules/attribute-assessment.md,session-wide via @import
- 5-axis bug-fix model → 6-axis (新增 Alignment quality,evidence = Layer V)
Scope Changes
- 比原 issue 描述新增:meta-rule 抽出獨立檔(超越 vagueness 適用範圍);MANIFESTO 6-axis 擴充
Blocking
Commits
Spectra Change
add-vagueness-layer-routing archived to openspec/changes/archive/2026-05-04-add-vagueness-layer-routing/
- Main spec at
openspec/specs/routing-vagueness-layer/spec.md (9 normative requirements)
Problem
解讀
現行
idd-diagnose的 Complexity 判定(rules/sdd-integration.md)用 4 層 gate:全部都在量「改動的形狀」(scope / surface / risk),沒有一條在量「需求本身的清晰度」。
唯一沾到邊的:
Decision-heavy with multiple valid approaches—— 但前提是 diagnosis 已經列出 2+ 策略,代表 diagnosis 已經做完且收斂。對「issue body 本身就含糊到 diagnose 都做不下去」的情境沒覆蓋。Why spectra-discuss is the default for Spectrarationale 提到「AI 常常高估 diagnosis 完整度」 —— 但這是 Spectra path 內 的安全網,不是把 vagueness 拉前到 routing 決策本身。Type
refactor(改進既有 routing 規則)
Why vagueness 應該是一階信號
Issue 的 vagueness 跟改動的 scope 是 正交 的兩個維度:
問題集中在 quadrant A:scope 小 + 需求模糊 → 現行邏輯判 Simple → AI 直接進 TDD loop → pattern-match 一個方向就動手 → 改完才發現「不是這個意思」。
這正是
spectra-discuss想防的失敗模式,但 Simple path 完全沒有對應的 alignment gate。Plan path 的 EnterPlanMode 雖然能擋,但前提是先被路由到 Plan;vagueness 沒進入 routing 信號的話,quadrant A 永遠不會被路到 Plan。Expected
rules/sdd-integration.md應該把 Vagueness Layer 加進 4 層 gate,作為 routing 決策的一階信號。可能的 shape(待 diagnose):新增 Layer V (Vagueness signals) —— 與 Layer P 並列,任一命中就升級到 Plan(或 Spectra,看程度)
Layer 2 reformulation —— Spectra 不只看「有沒有 published API」,也看「需求是否需要先對齊才能定 contract」。Vague Spectra-shaped issue → spectra-discuss(本來就是 default,但這次 routing 應該主動點出 vagueness 是觸發因素)
新增 disqualifier 反向:即使 Layer 1 命中(narrative / ad-hoc),如果 vagueness 同時很高,可能要 escalate 到 Plan 而不是 Simple —— 例如「abstract 重寫,但風格、長度、目標讀者都沒講」應該先 Plan-mode 對齊再寫。
Actual
目前的 4 層 gate 完全沒有 vagueness 軸。所以:
--complexity Plan或寫超詳細的 issue —— 但這就是把責任推給 userImpact
關聯設計線索
rules/sdd-integration.md"Why spectra-discuss is the default for Spectra" —— 已承認 vagueness 存在,但只在 Spectra 內部處理idd-diagnoseStep 3.5 是判定點,新增 Layer V 應該在這裡MANIFESTO.md5-axis bug-fix model —— 可能要新增「alignment axis」對應 vaguenesslinked-context sister sweep(IC_R011)正交:那個是「漏抓 sibling」,這個是「主軸本身就模糊」Next Step
/issue-driven-dev:idd-diagnose #NNN(實際 issue # 由建立後填入)Linked-Context Siblings Filed (v2.48.0+ #529)
(none — no orphan sibling mentions in linked context)
Current Status
Phase: closed
Last updated: 2026-05-04 by idd-close
Key Decisions
屬性評分用 Likert,不用 keyword抽到.claude/rules/attribute-assessment.md,session-wide via@importScope Changes
Blocking
Commits
b2899e6feat: Layer V Vagueness Pre-check for complexity routing (Complexity routing: vagueness 應該是一階信號,但目前 4 層 gate 都沒衡量需求清晰度 #12)Spectra Change
add-vagueness-layer-routingarchived toopenspec/changes/archive/2026-05-04-add-vagueness-layer-routing/openspec/specs/routing-vagueness-layer/spec.md(9 normative requirements)