Skip to content

[enhancement] acceptance-review 缺在 IDD mode model — 「人不 review」需要 first-class 做法 #102

@kiki830621

Description

@kiki830621

Problem

Original text (使用者於 2026-05-19 #96-backlog triage session 提出,反思剛把 PR #101 的 review 委派給 AI 之後):
「其實我現在都不 review,人不 review 是不是也要有人不 review 的做法」

IDD 的 mode model 目前是一個 2-tuple:(path, interaction)PR / direct-commit × attended / unattended(見 references/pr-flow.mdidd-all Phase 0.5)。但這個 tuple 沒有涵蓋一個獨立的維度:acceptance review —— merge 前「誰簽核接受這個改動」。

IDD 裡其實有兩層 review,只 model 了一層:

  1. idd-verify = AI correctness 驗證(6-AI ensemble)。強制、機械式、可證偽。回答「code 有沒有滿足 issue 的要求」。
  2. merge-time acceptance review = owner 的「我們要不要這個 / 現在 / 這樣做」判斷。目前完全沒 model —— idd-all / idd-all-chain 「停在 verified」,然後 informally 提示「human review → merge → close」。

實務上使用者回報:他根本不做 human acceptance review。所以 (PR, unattended) mode 產出一個 idd-verify 通過的 PR,然後……就直接 merge 了。IDD 設計上假設存在的「human review」那一步被無聲跳過。

核心問題:如果「人不 review」是實際的運作模式,IDD 應該對它有一個設計過的做法 —— 命名它、明確化它、決定(若有)什麼東西替代那個 acceptance 判斷 —— 而不是留成一個 informal gap 讓使用者默默繞過。

三個已觀察到的 acceptance-review 值

同一個 backlog-triage session 內,acceptance review 實際出現了 3 種不同行為:

session 內何處 獨立性
human review #96 → PR #99,使用者自己看、自己 merge ✅ 獨立
AI-delegated review PR #101「你可以幫我 review」→ 實作 AI 做 mergeable / auto-close-trap-scan / verify-history 檢查後 merge ⚠️
no review idd-verify PASS 即 merge(使用者自述的常態) ❌ 無

關鍵風險:委派回實作 AI 會塌掉獨立性

idd-verify 的 6-AI 之所以有效,是因為「Claude 修、獨立 AI 群驗」—— reviewer ≠ implementer。當 acceptance review 委派回實作的 AI 本身(PR #101 的情況),那層獨立性就消失了 —— 變成實作者審自己的 acceptance。PR #101 還算安全(純 docs、6-AI 已驗、做的是機械檢查),但當預設就危險。

所以更精準的問題不是「要不要人 review」,而是 「acceptance 的獨立判斷從哪來」:idd-verify 給獨立的 correctness;merge review 本該再加一層獨立的 acceptance;委派回實作 AI = 省事但獨立性沒了。

Type

enhancement(IDD methodology / mode model 設計)

Expected

IDD 對「acceptance review」這個維度有明確的設計立場。候選方向(待 idd-diagnose 決定,此處僅列出不預判):

  • A. 升級為 3-tuple (path, interaction, acceptance) —— acceptance ∈ {human-required, AI-delegated, none},在 pr-flow.md / idd-all Phase 0.5 明文解析,跟現有兩軸從同一 source 推導。
  • B. 不擴 tuple,但讓 verified→merge 的收尾明確問一次「這個 merge 誰簽?」—— 把隱性步驟升成 explicit checkpoint(類似 idd-close 的 human-checkpoint 哲學)。
  • C. 維持現狀但文件化 —— 承認 idd-all 停在 verified 之後的 acceptance 是 informal,明文寫「IDD 不負責 acceptance gate,使用者自負」,至少讓缺口從隱性變顯性。
  • 不論哪個方向,都要處理「AI-delegated review 會塌掉獨立性」這個 risk —— 例如若允許 AI 代理 acceptance,是否應由非實作的獨立 AI 做(借 idd-verify 既有的獨立性設計),而不是實作 AI 自審。

Actual

  • IDD mode model 只有 (path, interaction) 2-tuple;acceptance review 不是 first-class 概念。
  • idd-all / idd-all-chain 「停在 verified」+ informally 提示 human review —— 沒有 enforce、沒有 model、沒有紀錄「這個 merge 由誰 accept」。
  • 使用者實務上跳過 human acceptance review;IDD 沒攔、也沒提供替代設計。
  • PR cluster: 6 Simple docs/pattern follow-ups (#96-backlog triage) #101 出現了第三種未命名的 mode(AI 代理 acceptance review),IDD 完全沒有它的契約。

Impact

  • 影響的檔案:references/pr-flow.md(mode resolution canonical 演算法)、skills/idd-all/SKILL.md + skills/idd-all-chain/SKILL.md(Phase 0.5 mode tuple、收尾 stop-at-verified)、skills/idd-verify/SKILL.md(verify 是 correctness 層,需與 acceptance 層明確區分)、skills/idd-close/SKILL.md(close 的 human-checkpoint 哲學與 acceptance review 高度相關)、CLAUDE.md(mode 文件)、可能 MANIFESTO.md(IDD 的 closure axis 論述應納入 acceptance 維度)。
  • 影響的使用者流程:所有走 PR path 的 IDD 工作 —— verified 之後的 acceptance 目前是 undefined behavior。

Notes

由 2026-05-19 的 #96-backlog triage session 浮現 —— 使用者在該 session 把 cluster-PR #101 的 review 委派給 AI,事後反思「人不 review」其實是常態,於是發現 IDD 的 mode model 缺了 acceptance 這個維度。屬於「用 IDD 的過程中浮現的 IDD 設計缺口」,本身就值得一個 issue。

相關脈絡:同 session 的 #96(cluster-PR vs direct-commit path 衝突)也是 mode model 的設計議題 —— 兩者都指向 pr-flow.md 的 mode resolution 需要更完整的維度模型。


Current Status

Phase: diagnosed

Complexity

Spectra — Layer 2 (modifies the published (path, interaction) mode contract in pr-flow.md, consumed by all IDD skills) + Layer 3 (architectural decision, normative-behavior change, cross-cuts 4+ skills).

Next

/spectra-discuss — topic "acceptance-review as an IDD mode dimension". Open questions: direction A/B/C, axis-value naming, the AI-delegated-review independence question.

History

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions