discuss-phase 与交互工作流

📑 目录

这是「GSD 全景代码解析」专题的第 17 篇。在前面的文章中,我们解析了 GSD 的 execute-phase(执行引擎)、plan-phase(战略大脑)和 new-project(项目起点)。但一个关键问题始终悬而未决:在"想清楚"和"做出来"之间,还存在一片巨大的灰色地带——需求尚未完全明确、技术方案仍有分歧、隐含假设未被揭露。这片灰色地带,正是 discuss-phase 存在的意义。

如果说 plan-phase 负责"制定计划",execute-phase 负责"执行计划",那么 discuss-phase 就是在计划之前、执行之中反复校准方向的思考罗盘。它是 GSD 工作流中最具"人性"的环节——一个让人与 AI 进行深度对话、共同澄清不确定性的交互空间。


一、discuss-phase 的定位:规划与执行之间的"思考空间"

在传统的软件开发流程中,"讨论"通常是一个非结构化的、难以追踪的活动。产品经理和工程师在会议室或 Slack 里交换意见,会议纪要散落在各处,关键的决策理由往往随着时间的推移而消失。当项目出现问题时,人们会困惑:"我们当时为什么做出这个决定?"

GSD 的 discuss-phase 工作流正是为了解决这一痛点而设计的。它的核心定位可以概括为一句话:

Structured Thinking, Persistent Decisions.
(结构化的思考,持久化的决策。)

1.1 为什么需要 discuss-phase

在第 15 篇中,我们分析了 plan-phase 如何将模糊的想法转化为 ROADMAP.md 和 phases/*.md。但 plan-phase 有一个隐含前提:输入必须足够清晰。如果用户在规划阶段仍然充满不确定性——"这个功能真的有必要吗?""用 GraphQL 还是 REST?""这个第三方服务是否可靠?"——plan-phase 产出的计划就会建立在流沙之上。

discuss-phase 的职责就是在进入 plan-phase 之前(或在 execute-phase 遇到阻塞时),提供一个结构化的讨论框架,帮助用户和 AI 共同:

  1. 澄清模糊需求:将"我觉得可能需要…"转化为"经过讨论,我们确认…"
  2. 识别隐含假设:暴露那些未被言说但影响决策的前提条件
  3. 探索替代方案:在多个技术路线或设计方向之间进行权衡
  4. 记录决策理由:每个关键决策都有可追溯的讨论上下文
flowchart LR
    subgraph Idea["想法层"]
        A1[模糊需求]
        A2[技术不确定性]
        A3[隐含假设]
    end

    subgraph Discuss["讨论层"]
        B1[discuss-phase]
        B2[假设分析]
        B3[头脑风暴]
        B4[决策记录]
    end

    subgraph Plan["规划层"]
        C1[plan-phase]
        C2[ROADMAP.md]
    end

    subgraph Execute["执行层"]
        D1[execute-phase]
        D2[代码产出]
    end

    A1 --> B1
    A2 --> B2
    A3 --> B3
    B1 --> B4
    B2 --> B4
    B3 --> B4
    B4 -->|"清晰的输入"| C1
    C1 --> C2
    C2 --> D1
    D1 --> D2
    D1 -->|"遇到阻塞"| B1

1.2 discuss-phase 的触发时机

discuss-phase 不是必须执行的环节,但在以下场景中,它的价值会被放大:

触发时机典型场景推荐模式
规划前新 Phase 开始前,目标不清晰defaultpower
执行中阻塞execute-phase 发现计划与 reality 不符chain
技术方案选择多个技术路线需要权衡all
批量澄清多个相关问题需要一次性讨论batch
自主探索不确定该讨论什么,让 AI 引导auto

二、渐进式披露架构:薄分发器设计

在第 13 篇中,我们详细介绍了 GSD 的**渐进式披露(Progressive Disclosure)**设计模式。discuss-phase.md 是这一模式的典范实现——也是 GSD 仓库中最早采用该模式的工作流之一。

2.1 从单体到分发器

早期的 discuss-phase.md 曾是一个超过 2000 行的单体文件,包含所有讨论模式的逻辑。随着模式数量的增加,这个文件遇到了严重的上下文预算危机

  • 2000 行 ≈ 12K-18K tokens
  • 其中 60% 是当前模式不会触发的代码
  • 有效上下文被严重挤压

GSD 的解决方案是将 discuss-phase 重构为薄分发器(Thin Dispatcher)

workflows/
├── discuss-phase.md          # 薄分发器 (~300 行)
└── discuss-phase/
    ├── modes/
    │   ├── default.md        # 默认交互模式
    │   ├── power.md          # 全功率讨论模式
    │   ├── auto.md           # 自动模式
    │   ├── all.md            # 全量问题模式
    │   ├── chain.md          # 链式追问模式
    │   ├── batch.md          # 批量处理模式
    │   ├── text.md           # 纯文本模式
    │   ├── analyze.md        # 分析模式
    │   └── advisor.md        # 顾问模式
    └── templates/
        ├── CONTEXT.md        # 上下文模板
        ├── DISCUSSION-LOG.md # 讨论日志模板
        └── checkpoint.json   # 检查点 schema

父文件 discuss-phase.md 的核心逻辑只有三步:

  1. 解析参数:提取 --mode(默认 default)、--topic--depth 等 flags
  2. 加载模式文件Read discuss-phase/modes/{mode}.md
  3. 委托执行:按模式文件定义的 process 执行

这种设计的收益是巨大的——当用户以 --mode=auto 调用时,只有 auto.md(约 200-400 行)被加载到上下文中,其他 8 个模式的代码完全不可见,节省了大量 token。

2.2 大小预算约束

discuss-phase.md 在 GSD 的 workflow-size-budget 测试中有一个特殊约束:<500 行(issue #2551)。这个硬约束强制它必须保持"薄"——任何新模式的添加都不能膨胀父文件,而必须通过新增 modes/*.md 来实现。

flowchart TD
    A[用户输入 /gsd:discuss-phase --mode=power] --> B[discuss-phase.md
薄分发器] B --> C{解析 mode 参数} C -->|power| D[加载 modes/power.md] C -->|auto| E[加载 modes/auto.md] C -->|chain| F[加载 modes/chain.md] C -->|batch| G[加载 modes/batch.md] C -->|all| H[加载 modes/all.md] D --> I[按 power 模式执行] E --> J[按 auto 模式执行] F --> K[按 chain 模式执行] G --> L[按 batch 模式执行] H --> M[按 all 模式执行]

三、多模式支持详解

GSD 的 discuss-phase 支持 9 种讨论模式,本文聚焦其中 5 种核心模式——它们分别对应不同的讨论策略和上下文消耗等级。

3.1 --power:全功率讨论模式

power 模式是 discuss-phase 的旗舰模式,专为复杂、高风险的技术决策设计。它的核心哲学是:没有问题是愚蠢的,但遗漏问题是危险的。

适用场景

  • 架构级决策(微服务 vs 单体、SQL vs NoSQL)
  • 安全关键功能的设计审查
  • 大规模重构前的可行性评估

执行特征

维度power 模式
讨论深度最深(5 层追问)
上下文消耗最高(~8K tokens)
Agent 协作可能 spawn gsd-assumptions-analyzer
输出产物DECISION.md + DISCUSSION-LOG.md
人工介入点每个关键决策都需要用户确认

power 模式的流程设计遵循**"漏斗式澄清"**:

flowchart TD
    A[输入话题/问题] --> B[广度发散
列出所有相关维度] B --> C1[技术维度] B --> C2[业务维度] B --> C3[安全维度] B --> C4[运维维度] B --> C5[成本维度] C1 --> D[深度挖掘
每层 5 个追问] C2 --> D C3 --> D C4 --> D C5 --> D D --> E[假设识别] E --> F[方案对比] F --> G[决策记录]

在 power 模式下,AI 不会急于给出结论,而是会系统性地遍历多个维度,对每个维度进行深度追问。例如,当讨论"是否引入消息队列"时,AI 会依次探索:

  1. 技术维度:现有架构的耦合度、吞吐量需求、延迟敏感度
  2. 业务维度:消息丢失的容忍度、消费顺序的要求
  3. 安全维度:消息内容的加密需求、访问控制
  4. 运维维度:监控告警、故障恢复、扩容策略
  5. 成本维度:基础设施成本、维护复杂度、团队学习成本

3.2 --all:全维度分析

all 模式与 power 类似,但更强调全面性而非深度。它的目标是确保"没有遗漏任何重要维度",而不是对每个维度进行无底洞式的追问。

与 power 的关键区别

对比维度powerall
追问深度每层最多 5 个追问每层 1-2 个追问
覆盖范围用户指定的核心维度所有可能维度(自动扩展)
决策风格深度论证后推荐列出所有选项的优劣
适合用户有明确关注点的决策者希望全景了解的新手

all 模式特别适用于技术选型场景。当团队面对"选 React 还是 Vue"、"用 PostgreSQL 还是 MongoDB"这类经典问题时,all 模式会生成一张全面的对比矩阵,而不是陷入某个细节。

3.3 --auto:自动选择讨论方向

auto 模式是 discuss-phase 中最"智能"的模式——它让用户无需预先定义讨论方向,由 AI 根据上下文自动判断最值得讨论的问题。

工作原理

  1. 上下文扫描:AI 读取当前项目的 STATE.mdROADMAP.md、最近的 SUMMARY.md
  2. 风险识别:基于项目状态识别潜在风险点(如 overdue 的 Plan、未解决的 Blocker、Schema Drift 等)
  3. 话题生成:自动生成 3-5 个最值得讨论的话题,按优先级排序
  4. 用户选择:用户选择话题,或让 AI 自动选择最高优先级的话题
flowchart LR
    A[加载项目上下文] --> B[扫描 STATE.md
ROADMAP.md
SUMMARY.md] B --> C[风险识别引擎] C --> D1[高优先级:
Phase 3 存在 gap] C --> D2[中优先级:
Schema 变更未同步] C --> D3[低优先级:
技术债累积] D1 --> E[用户选择话题] D2 --> E D3 --> E E --> F[进入讨论]

auto 模式的设计哲学是**"让 AI 做功课,让人做决策"**。AI 负责收集和整理信息,但最终讨论哪个话题由人决定。这种人机分工避免了两种极端:

  • 人完全主导:可能因为信息不足而遗漏关键话题
  • AI 完全主导:可能讨论对人来说优先级不高的话题

3.4 --chain:链式讨论

chain 模式的设计灵感来自思维链(Chain-of-Thought)提示技术。它不像 power 或 all 那样预先定义讨论维度,而是让讨论自然生长——每个问题的答案引出下一个问题,形成一条思考链。

核心机制

1. 用户提出初始问题
2. AI 回答,并在答案末尾生成"下一个最值得追问的问题"
3. 用户回答/确认,AI 继续深入
4. 当链深度达到阈值(默认 5 层)或问题收敛时停止
5. 输出完整的思维链作为 DECISION.md 的附录

chain 模式特别适合探索性讨论——当你有一个模糊的方向感,但不知道具体该问什么时,chain 模式会像苏格拉底一样,通过连续追问帮你理清思路。

flowchart TD
    A[用户: "我们应该优化 API 性能吗?"] --> B[AI: "应该。API 响应时间 P99 是多少?
下一个问题: 当前瓶颈在哪里?"] B --> C[用户: "P99 是 2.3s"] C --> D[AI: "2.3s 远超行业标准(<500ms)。数据库查询占比多少?
下一个问题: 是否有 N+1 查询?"] D --> E[用户: "数据库占 80%"] E --> F[AI: "高度可疑。检查 ORM 日志...发现 N+1。
下一个问题: 用 join 还是缓存解决?"] F --> G[用户: "先加缓存"] G --> H[AI: "推荐 Redis。缓存一致性策略?
下一个问题: Cache-Aside 还是 Write-Through?"]

chain 模式的一个精妙设计是收敛检测:当连续两轮追问的答案开始重复(用余弦相似度或关键词重叠判断),AI 会主动提议"当前话题已充分讨论,是否记录决策并结束?",防止无限延伸。

3.5 --batch:批量讨论

batch 模式是效率导向的模式——当你有一组相互独立的问题需要快速过一遍时,batch 模式可以并行处理它们。

适用场景

  • Daily Standup 式的快速对齐("这 5 个 blockers 哪个需要先解决?")
  • 计划执行前的最后确认("这 8 个任务的前提条件都满足了吗?")
  • 回顾会议前的议题收集

执行方式

flowchart LR
    A[输入 N 个问题] --> B[问题去重与聚类]
    B --> C1[聚类 1:
技术问题] B --> C2[聚类 2:
协调问题] B --> C3[聚类 3:
资源问题] C1 --> D[逐类批量讨论] C2 --> D C3 --> D D --> E[生成汇总报告]

batch 模式会先将输入的问题列表进行语义聚类(通过 LLM 判断问题间的相似度),然后对每个聚类进行批量讨论,最后生成一份汇总报告。报告包含:

  • 每个问题的结论
  • 问题之间的依赖关系("解决 A 需要先完成 B")
  • 推荐的执行顺序
  • 需要进一步 deep-dive 的问题列表

3.6 模式对比总结

模式核心策略上下文消耗人工介入最佳场景
power深度追问,多维度论证高风险架构决策
all广度覆盖,全景对比中高技术选型
auto智能引导,自动选题不确定该讨论什么
chain思维链,自然生长探索性思考
batch批量并行,效率优先快速对齐

四、假设分析(Assumptions Analysis)

假设分析是 discuss-phase 中最具工程价值的环节之一。软件开发中的大量返工,根源都在于错误的隐含假设——"我以为数据库会始终可用"、"我以为这个 API 会保持向后兼容"、"我以为用户会按照我预期的方式使用这个功能"。

4.1 识别隐含假设

discuss-phase 中的假设识别不是随机的,而是遵循一个结构化的扫描框架:

flowchart TB
    subgraph Input["输入"]
        A1[讨论话题]
        A2[项目上下文]
        A3[ROADMAP.md]
    end

    subgraph Scan["假设扫描引擎"]
        B1[技术假设扫描]
        B2[业务假设扫描]
        B3[用户假设扫描]
        B4[环境假设扫描]
    end

    subgraph Output["输出"]
        C1[假设清单]
        C2[风险评级]
        C3[验证策略]
    end

    A1 --> Scan
    A2 --> Scan
    A3 --> Scan
    B1 --> C1
    B2 --> C1
    B3 --> C1
    B4 --> C1
    C1 --> C2
    C2 --> C3

四类假设的扫描维度

假设类型典型示例风险等级
技术假设"第三方 API 99.9% 可用"、"这个库支持 TypeScript"
业务假设"用户愿意为此功能付费"、"监管政策不会变化"
用户假设"用户会阅读错误提示"、"用户偏好命令行而非 GUI"
环境假设"团队能在 2 周内掌握新技术"、"测试环境能复现生产问题"

在 discuss-phase 的 poweranalyze 模式中,AI 会显式地问:

"在继续之前,让我们暂停一下。关于这个话题,有哪些事情是我们认为为真但尚未验证的?"

这个问题看似简单,但它强制讨论参与者从"论证模式"切换到"质疑模式"——这是防止认知盲点的关键心理转换。

4.2 假设验证策略

识别假设只是第一步。discuss-phase 为每个被识别的假设分配一个验证策略

策略描述适用假设
Prove(证明)在继续前必须验证技术可行性、安全合规
Monitor(监控)暂时接受,但设置监控指标性能假设、可用性假设
Accept(接受)风险可控,无需验证团队能力、开发环境
Spike(技术调研)启动一个时间盒调研任务新技术、新框架

验证策略的选择不是 AI 的单方面决定,而是讨论的一部分。例如,AI 可能建议对"GraphQL 能满足我们的查询需求"这个假设采用 Spike 策略,但用户如果已有相关经验,可以将其降级为 Accept

flowchart LR
    A[识别假设] --> B{评估风险}
    B -->|高风险| C[Prove / Spike]
    B -->|中风险| D[Monitor]
    B -->|低风险| E[Accept]
    C --> F[记录验证任务]
    D --> G[设置监控指标]
    E --> H[记录理由]
    F --> I[写入 DECISION.md]
    G --> I
    H --> I

4.3 与 gsd-assumptions-analyzer Agent 的协作

powerall 模式下,discuss-phase 可能会 spawn 一个专门的子 Agent——gsd-assumptions-analyzer。这个 Agent 的职责是专注于假设分析,不参与讨论的其他方面。

协作流程

sequenceDiagram
    participant User as 用户
    participant DP as discuss-phase
    participant AA as gsd-assumptions-analyzer
    participant SDK as GSD SDK

    User->>DP: 启动 discuss-phase --mode=power
    DP->>SDK: gsd-sdk query init.discuss-phase
    SDK-->>DP: 项目上下文
    DP->>DP: 进行一般性讨论
    DP->>AA: Spawn assumptions-analyzer
话题: "引入微服务架构" AA->>AA: 深度扫描隐含假设 AA->>DP: 返回假设清单 + 风险评级 DP->>User: 展示假设分析结果 User->>DP: 确认/修改验证策略 DP->>SDK: state.add-decision
记录假设与验证策略

gsd-assumptions-analyzer 的设计体现了 GSD 的专业化 Agent 编排哲学——与其让一个通用 Agent 做所有事,不如让多个专业 Agent 各司其职。assumptions-analyzer 经过专门训练,更擅长识别认知盲点和隐含前提。

一个真实的假设分析示例

## 假设分析:从单体迁移到微服务

### 已识别假设

| ID | 假设内容 | 类型 | 风险 | 验证策略 |
|----|---------|------|------|---------|
| A1 | 团队已具备 Docker/K8s 运维能力 | 环境 || Prove |
| A2 | 服务间通信延迟 < 50ms 可接受 | 技术 || Spike |
| A3 | 当前数据库连接池不会成为瓶颈 | 技术 || Monitor |
| A4 | 产品功能边界已稳定,不会出现频繁的服务重组 | 业务 || Monitor |
| A5 | 监控和日志基础设施已就绪 | 环境 || Prove |

### 关键发现
- 假设 A1 和 A5 如果为假,将导致迁移项目失败
- 建议先执行 `/gsd:spike` 验证 A1 和 A5,再继续讨论

五、头脑风暴机制

头脑风暴(Brainstorming)在 discuss-phase 中不是"随意发散",而是一个有结构、有约束、有产出的创意生成流程。

5.1 结构化头脑风暴

GSD 的头脑风暴遵循**"发散 → 聚类 → 评估 → 收敛"**的四阶段模型:

flowchart LR
    subgraph Diverge["① 发散"]
        A1[禁止批评]
        A2[追求数量]
        A3[鼓励异想天开]
    end

    subgraph Cluster["② 聚类"]
        B1[语义相似度分组]
        B2[命名主题]
        B3[识别重复]
    end

    subgraph Evaluate["③ 评估"]
        C1[可行性评分]
        C2[影响力评分]
        C3[ effort 评分]
    end

    subgraph Converge["④ 收敛"]
        D1[优先级矩阵]
        D2[Top-3 推荐]
        D3[行动项]
    end

    Diverge --> Cluster --> Evaluate --> Converge

与传统头脑风暴的区别

维度传统头脑风暴GSD 头脑风暴
参与者人类团队人类 + AI
发散方式自由发言AI 辅助提示("还有吗?""如果反过来呢?")
聚类方式便利贴分类LLM 语义聚类
评估方式举手投票多维度评分矩阵
记录方式会议纪要不完整自动写入 DISCUSSION-LOG.md

5.2 AI 的"创造性破坏"角色

在发散阶段,AI 会主动扮演**"创造性破坏者"**——提出反直觉的、挑战现有假设的想法:

"我们讨论了用缓存解决性能问题。但如果反过来——让性能问题变得无关紧要呢?比如,用预计算 + 边缘部署,让查询时间不再影响用户体验?"

这种**反向提示(Inversion Prompting)**是 GSD 头脑风暴的 secret sauce。它利用 AI 没有"面子顾虑"的特点,提出人类团队成员可能因社交压力而不敢提的激进想法。

5.3 头脑风暴的产物

头脑风暴结束后,discuss-phase 会生成两个文件:

  1. DISCUSSION-LOG.md:完整的讨论记录,包括所有被提出的想法、聚类结果、评估矩阵
  2. BRAINSTORM-OUTCOME.md:精简的产出文档,包含:
    • Top-3 推荐方案及理由
    • 每个方案的假设清单
    • 推荐的下一步行动(如启动 spike、直接进入 plan-phase)

六、discuss-phase 与规划/执行的关系

discuss-phase 不是孤立存在的。它与 plan-phase 和 execute-phase 形成了 GSD 工作流中的**"决策三角"**:

flowchart TB
    subgraph DiscussPhase["discuss-phase"]
        D1[澄清需求]
        D2[识别假设]
        D3[记录决策]
    end

    subgraph PlanPhase["plan-phase"]
        P1[分解任务]
        P2[设计依赖]
        P3[生成 PLAN.md]
    end

    subgraph ExecutePhase["execute-phase"]
        E1[执行 Wave]
        E2[处理偏差]
        E3[创建 SUMMARY.md]
    end

    D1 -->|"清晰的输入"| P1
    D2 -->|"已知假设"| P2
    D3 -->|"决策上下文"| P3
    P3 --> E1
    E2 -->|"遇到阻塞"| D1
    E3 -->|"执行洞察"| D3

6.1 向 plan-phase 传递什么

discuss-phase 的输出是 plan-phase 的输入。具体来说:

  • DECISION.md → 成为 plan-phase 中技术方案的决策依据
  • 假设清单 → 影响 plan-phase 的任务优先级和风险缓解策略
  • DISCUSSION-LOG.md → 作为参考文档,供 planner Agent 在需要时读取

在第 15 篇中,我们看到 plan-phase 的 Planner Agent 会读取 references/ 目录中的文档。discuss-phase 的讨论日志通常会被软链接或复制到 references/discussion-logs/ 中,供 Planner 随时引用。

6.2 从 execute-phase 接收什么

discuss-phase 不仅是"规划前的准备",还是"执行中的诊所"。当 execute-phase 遇到以下情况时,可以回退到 discuss-phase:

  1. 计划与 reality 严重不符:发现 plan-phase 未能预见的依赖或约束
  2. 技术方案被证明不可行:原计划的技术路线在实际实现中遇到根本性障碍
  3. 需求理解偏差:实现过程中发现用户对需求的理解与 plan-phase 的假设不同

这种"回退"不是失败,而是 GSD **"学习型执行"**理念的体现——执行不仅仅是按照计划走,而是在执行中持续学习和调整。


七、交互工作流的设计哲学

discuss-phase 是 GSD 中交互密度最高的工作流。它的设计蕴含了几个深刻的人机协作哲学:

7.1 "讨论即代码"

在 GSD 中,讨论不是一次性的聊天,而是工程产物。每一次 discuss-phase 都会生成结构化的 Markdown 文件,这些文件:

  • 可以被版本控制(git 追踪讨论历史)
  • 可以被其他 Agent 引用(Planner 读取 DECISION.md
  • 可以被审计("我们为什么做出这个决定?"→ 查看 DISCUSSION-LOG.md

这种**"讨论即代码"**的理念,将通常被视为"非正式"的讨论活动,提升到了与代码同等重要的工程地位。

7.2 "不确定性是信息"

discuss-phase 有一个反直觉的设计:它奖励不确定性,惩罚虚假的确信

当 AI 检测到讨论中存在高度不确定性时,它不会试图用模糊的断言来"掩盖",而是会:

  1. 显式标记不确定性("这里存在不确定性:…")
  2. 提出降低不确定性的路径("建议通过 spike 验证…")
  3. DECISION.md 中记录不确定性对决策的影响

这种设计的理论基础来自信息论:不确定性本身就是有价值的信息——它告诉你"哪里还需要投入认知资源"。

7.3 "人的判断不可替代"

尽管 AI 可以生成假设清单、评估风险、甚至推荐决策,但 discuss-phase 的每一个关键节点都保留了人的否决权

  • AI 推荐的话题,用户可以选择不讨论
  • AI 识别的假设,用户可以判断为"已验证"
  • AI 推荐的方案,用户可以要求继续探索其他选项

这不是因为 AI 不够智能,而是因为某些决策的代价只能由人来承担。AI 提供信息和分析,但最终的判断和承诺来自人。

flowchart LR
    A[AI 提供
信息 + 分析] --> B[人做出
判断 + 承诺] B --> C[AI 记录
决策 + 理由] C --> D[AI 执行
计划 + 验证] D --> A

7.4 "对话即状态机"

discuss-phase 的交互不是无状态的聊天,而是一个状态机

状态说明可转换到
initialized刚启动,加载了上下文identifying-topic
identifying-topic确定讨论话题exploring / awaiting-input
exploring正在探索某个方向deep-diving / converging
deep-diving深度追问中exploring / converging
converging开始收敛到决策recording / awaiting-confirmation
recording记录决策到 DECISION.mdcompleted
completed讨论结束-

这个状态机让 discuss-phase 可以在任意时刻被中断和恢复——如果用户需要离开,当前状态会被保存到 STATE.md 中,下次启动时可以无缝继续。


八、小结

discuss-phase 是 GSD 框架中最具"人文精神"的工作流。它不产出代码,不生成计划,但它为所有后续的代码和计划提供了认知基础。其核心设计亮点包括:

  1. 薄分发器架构:通过渐进式披露将 2000+ 行单体拆分为 <500 行父文件 + 9 个模式文件,有效控制上下文预算
  2. 多模式支持:power/all/auto/chain/batch 五种模式覆盖从深度论证到快速对齐的全谱系讨论需求
  3. 假设分析机制:系统性地识别、分类和验证隐含假设,防止"流沙上的建筑"
  4. 结构化头脑风暴:发散 → 聚类 → 评估 → 收敛的四阶段模型,让创意生成有章可循
  5. 人机协作设计:AI 提供信息和分析,人做出判断和承诺,讨论产物工程化、版本化、可追溯

discuss-phase 的存在提醒我们:在 AI 能够写代码、做规划的时代,思考的质量仍然是决定成败的根本。一个好的 discuss-phase,能让后续的 plan-phase 少走弯路,让 execute-phase 少踩坑——它是对"磨刀不误砍柴工"这一古老智慧的工程化实现。


📌 下一篇预告:第 18 篇《quick 与 fast 工作流》将深入解析 GSD 中两个轻量级执行工作流——/gsd:quick/gsd:fast。与 execute-phase 的"重型 Wave 编排"不同,quick 和 fast 追求的是最小开销、最大速度的即兴执行。我们将看到 GSD 如何在"精密手术"(execute-phase)和"快速缝合"(quick/fast)之间取得平衡,以及什么时候该用"大炮"、什么时候该用"手术刀"。敬请期待!