Skip to content

routing 判準:更傾向 Spectra/SDD — 規格記錄的價值應計入分流權重 #252

Description

@kiki830621

Problem

Original text:
「我在想可能在idd裡面,要更傾向走SDD一點,因為那才會有明確的規格記錄」
— Source: 使用者(Che),2026-07-10,AI4o batch triage 期間

詮釋:現行 idd-diagnose Step 3.5 的三層 routing(Simple / Plan / Spectra)把 Spectra 設計成窄門——Layer 2 必要條件是「對外 published API/protocol contract 給 future callers」,內部 refactor / 效能優化 / 行為修正即使動到多檔共享模組也只到 Plan。使用者的立場是:這道門應該再開一點——SDD 路徑的價值不只在「API contract 要 freeze」,更在 spectra 流程會產出 spec/proposal/design 的持久規格記錄,而 Plan tier 的 Implementation Plan comment 是一次性 artifact(散在 issue timeline,不進 openspec/specs/ 的 living documentation)。

實戰脈絡(觸發本 issue 的事件):同日某 repo 的 batch diagnose 中,10 筆 issue 有 8 筆被判 SDD-warranted(多為內部效能優化與行為修正,無對外 API)。依現行 SKILL.md 判準這些是 over-trigger(應為 Plan);但使用者裁決「尊重原判定走 SDD 鏈」,並隨後表達本 issue 的立場——那次「over-trigger」在使用者價值觀下其實是 desired behavior

Type

feature(routing 判準調整)

Expected

Diagnose routing 對「會沉澱出值得記錄的設計決策」的改動更傾向 Spectra,可能的方向(實作時決定,非窮舉):

  • 放寬 Layer 2:從「對外 published API contract」擴為「產生值得 freeze 的行為契約」(含內部共享模組的跨檔行為語意、效能架構決策)
  • 或新增 Layer 2 替代條件:hard-gate 命中(單一概念散佈 ≥N 檔 + 共享抽象)時預設升 Spectra 而非 Plan
  • 或 config 開關(sdd_bias: high|default)讓 repo 層級表態偏好——不同專案對「規格記錄 vs 流程重量」的取捨不同

Actual

  • Layer 2 窄門 + 「Plan-Spectra 分界:published API/protocol 就是 line」的明文規則 → 內部改動幾乎不可能進 Spectra
  • SKILL.md 的 anti-pattern 段明文把「cross-file refactor 沒對外暴露 API → 應該 Plan 不是 Spectra」列為 over-trigger——與使用者本立場直接衝突,需要修訂或加註 bias 開關

Impact

  • routing 判準是 IDD 的核心分流,改動影響所有 downstream(idd-all Phase 3 routing、idd-plan 的 Spectra 提示、idd-list 的 suggested next)
  • 取捨的另一面要誠實記錄:Spectra 三步鏈(discuss → propose → apply)單 issue 成本以小時計,偏向 SDD = 用流程重量換規格沉澱——這正是需要 spec 討論而非直接改 SKILL.md 的原因

關聯

  • rules/sdd-integration.md — 三層 routing 判準的 source of truth
  • idd-diagnose SKILL.md Step 3.5 — Layer 2/3、hard-gate、anti-pattern 段

Clarity Surface(idd-clarify run 2026-07-10T14:27:43Z)

Type Source Suggested canonical Status
ambiguity "更傾向走SDD一點" 「一點」的量級待 spec 討論定案:(a) 放寬 Layer 2 定義 (b) hard-gate 命中改升 Spectra (c) config bias 開關——三方向已列於 Expected,非本 annotation 可解 surfaced

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions