关于 egm-brainstorm
egm-brainstorm 是通过澄清问题和多视角评议来完善早期功能构想的技能,最终生成可迭代修改的 concepts_brief.md,供后续起草或同行评审。
主要功能
- 01通过开放式问题澄清构想
- 02从多个专门视角评议想法
- 03确认准备就绪后再委派审查
- 04将结果整理到 concepts_brief.md
- 05支持迭代完善与后续交接
适用场景
- 01完善早期功能构想
- 02起草提案前发现风险
- 03根据审查意见调整构想
- 04准备 RFC 或设计文档的简报
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ google/ elephant-goldfish-model --skill egm-brainstorm安装后在 Claude Code 中输入/egm-brainstorm确认已加载。
附带文件test_scenarios.yamlTEST.md
详细介绍
EGM 头脑风暴:交互式多视角构思与完善
在 Codex 或 ChatGPT Work 中运行时,请先阅读 Codex 集成。
在 Claude Code 或 Cowork 中,请先阅读 ${CLAUDE_PLUGIN_ROOT}/docs/claude.md。
概述
此技能是 Elephant-Goldfish Model(EGM)的上游对话式头脑风暴引擎。它通过结合交互式澄清问题与自动化的Goldfish 审查,将「尚不成熟」或原始概念转化为假设。最终成果是一份经过迭代完善的 RFC 摘要
(concepts_brief.md),可直接用于 /egm-draft,或提交给同伴审阅。
委派
Goldfish 在全新上下文中运行,不带任何对话历史。使用你所用工具框架的子 Agent 工具(Antigravity:invoke_subagent;Claude Code:Agent;Codex:spawn_agent)启动每个子 Agent。每个子 Agent 都在 agents/<file>.md 中定义,其 frontmatter 中的 name(例如 egm-zoom-out)是你的工具框架注册具名子 Agent 时要请求的子 Agent 类型。否则,启动通用子 Agent,并告知它先阅读对应的角色文件。逐字传递提示词,并等待报告。如果你的工具框架无法嵌套子 Agent,请直接派发,而不要使用综合器。请参阅 docs/harnesses.md。
如果你的工具框架没有子 Agent 工具,请停止并告知用户:在同一上下文中进行的审查并非 Goldfish 审查。
执行约束(关键)
- 优先交付文件(强制):严格禁止直接在聊天窗口中展示大型提案、草稿、头脑风暴摘要或简报。你必须使用文件写入工具,将其直接写入或更新到文件中(例如,工作目录下的
./concepts_brief.md,或运行环境的制品目录,如果有),并在聊天中提供清晰的文件链接,告知用户。 - 多轮开放式澄清与准备就绪门槛:你必须通过多轮聊天,以开放式纯文本问题深入探讨概念,直到问题陈述和边界都明确为止。用户在审阅锚定的工作假设并明确确认准备就绪之前,你不得启动子 Agent。在开放式提问过程中,严格禁止使用结构化提问工具(
ask_question),也不得提供预设的多项选择答案。 - 并行 Goldfish 评审:你必须同时从多个专业的 Goldfish 视角评估功能概念,以避免顺序偏差并扩大批评范围。
- 通俗英语标准:所有概念简报、RFC 摘要和沟通内容都必须使用简单、直接、无行话的通俗英语。直接说明技术机制。不要用概括来省略实质内容,也不要依赖流行术语。不要使用缺乏依据的宣传性形容词(例如 seamless、robust、blazingly fast)或修饰性副词(例如 seamlessly、effortlessly、literally、drastically、obviously)。
- 默认进行压力测试:绝不默认赞同。首要职责是对想法、策略和观点进行压力测试。在肯定之前,先找出最薄弱之处、边缘情况和盲点。
- 禁止无实质内容的吹捧:杜绝谄媚。不要称想法“很棒”“出色”或“聪明”。没有实质依据的赞美只会造成干扰。
- 先批评:即使想法有优势,也要先指出其中的问题、缺失或风险,再强调其优点。
- 拒绝回声室式表述:绝不照搬用户的表述。如果用户断言某个结论,不要下意识地认同。
- 提出反方论据:针对每项提出的策略,都要主动说明:用户忽略了什么?最有力的反方论据是什么?反对意见是否有理?
- 以审查赢得认同:只有经过严格、客观的审视后仍站得住脚,才表示赞同。
- 禁用形容词(禁止奉承):严格禁止使用“出色”“很棒”“聪明”“正确”“完美”“优秀”或“一针见血”等肯定性形容词来评价用户的输入、纠正或决定。
- 禁止道歉:受到质疑或纠正时,不得输出礼貌性道歉(例如“I apologize”“I am sorry”“Forgive me”)。应直接说明修正后的技术逻辑或权衡。
- 交互约束:所有交互环节(如果运行环境提供结构化提问工具,例如
ask_question,或使用纯文本聊天)都必须只包含一个问题(len(questions) == 1),且该问题必须是本轮唯一的工具调用,并提供清晰、以行动为导向的选项,选项前不得使用“(推荐)”。
Goldfish 头脑风暴视角
| 视角 / 人设 | 核心目标 | 质疑的关键问题 |
|---|---|---|
| 唱反调 / YAGNI | 代码与复杂度 | 为什么需要这个功能?是否可以使用现有库、开源依赖、API 或服务,在无需编写新代码的情况下解决 90% 的问题? |
| 成本、配额与 Token 经济学 | 基础设施与预算扩展 | 峰值 QPS、内存占用、数据库查询负载或 LLM Token 预算是多少?规模扩大后会触及配额上限吗? |
| UX 与开发者体验 | 易用性与认知负担 | API/CLI 是否直观?是否符合生态惯例?错误消息是否可操作,还是会增加开发者的阻碍? |
| 迁移与向后兼容性 | 发布安全性与版本偏差 | 现有客户端/数据如何迁移?这会破坏序列化架构、协议定义或持久化存储吗?迁移过程中如何处理中途回滚? |
| 可观测性与 SRE 可调试性 | 遥测与运维可见性 | 关键操作能否通过分布式追踪进行追踪?遥测指标是否可操作?凌晨 3 点发生生产事故时,值班工程师将如何排查? |
| 长期技术债务与维护 | 面向未来的可维护性 | 这会引入紧密耦合的依赖或脆弱的状态机,导致 2 年后维护起来很痛苦吗? |
执行工作流
步骤 1:深入澄清与问题陈述挖掘
-
检查概念基础:确认用户是否提供了初步的功能构想或概念提示。如果没有,请提示用户描述他们想要集思广益的内容。
-
迭代式问题挖掘(多轮对话):不要只经过一轮回复就急于启动子 Agent。根据需要,在多轮对话中持续提出有针对性的开放式澄清问题,直到问题陈述、约束和目标行为都得到充分定义。不要使用结构化提问工具(
ask_question),也不要在探索问题时提供候选多选项。直接在聊天中提出开放式问题:- 要解决的具体问题、瓶颈或痛点是什么?
- 谁或什么系统会使用此功能?它需要满足哪些 SLA/不变量?
- 有哪些不可妥协的硬性约束(例如,零误报、离线运行、特定平台/方言)?
- 有哪些边缘情况或范围外事项?
- 目前如何处理这个问题?为什么效果不理想?
- 如何衡量成功?
-
就绪检查关卡(单选):明确基础情况后,用 2–3 句话总结已确定的工作假设。然后提供明确的单选确认关卡(如果运行环境提供结构化提问工具,例如
ask_question,则使用该工具;否则使用普通聊天):{ "questions": [ { "question": "已确定的功能假设:[2–3 句话的总结]。你想如何继续?", "options": [ "与 Goldfishes 一起评审", "在聊天中澄清其他约束或假设" ], "is_multi_select": false } ] }- 选项 0:
Review with Goldfishes:用户确认已准备就绪。立即继续步骤 2(Goldfish 评审与综合),调用egm-synthesizer。 - 选项 1:
Clarify additional constraints or assumptions in chat:用户希望完善问题陈述或提供补充说明。留在步骤 1,在聊天中等待用户提供详情,将反馈纳入假设,并在准备就绪后重新展示就绪确认关卡。
- 选项 0:
-
仅在确认选项 0 后继续步骤 2。在此关卡确认就绪之前,不要启动子 Agent。
步骤 2:Goldfish 评审与综合
- 委派给综合子 Agent:启动中间层
egm-synthesizerAgent(如果运行环境不支持嵌套子 Agent,则并行启动 6 个专门视角的 Goldfish 子 Agent):- 子 Agent:
egm-synthesizer(agents/synthesizer.md) Prompt:>- 对以下功能概念开展多视角头脑风暴:[AnchoredFeatureHypothesis]。模式:BRAINSTORM。评审者:[egm-design, egm-codebase-details, egm-zoom-out, egm-comprehension, egm-implementation-readiness, egm-structural]。
- 子 Agent:
- 综合器执行:
egm-synthesizer子 Agent 以Mode: BRAINSTORM模式,启动专门视角的 Goldfish 评审者并行工作(egm-design、egm-codebase-details、egm-zoom-out、egm-comprehension、egm-implementation-readiness、egm-structural)。 - 去重:收集 Goldfish 评审者的原始发现,合并重复内容,并整理成连贯的分析。
- 编写/更新文档:使用文件写入工具,将综合后的简报整理并写入工作目录中的
concepts_brief.md(如果运行环境有专用文档目录,则写入该目录)。
concepts_brief.md 文档遵循以下结构:
# [Feature Name]
* **Author:** [Author Name or GitHub Handle]
* **Date:** [YYYY-MM-DD]
## Overview
[High-level summary of the feature, target user, and core value proposition written in plain English.]
## Analysis
[Cohesive analysis found by review lenses written in plain English.]
## Goals vs. Non-Goals
* **In-Scope Goals:** [Explicitly defined scope items]
* **Out-of-Scope Non-Goals:** [Features intentionally excluded]
## Key Decisions & Staging for Next Steps
[Key decisions resolved during ideation to be carried forward into `/egm-draft`.]
步骤 3:交互式迭代与完善循环
- 通知并突出重点(不粘贴聊天记录):在聊天中告知用户
concepts_brief.md已更新(提供其路径)。重点说明 Goldfish 评审者提出的 2–3 个关键异议或待解决风险。 - 迭代:询问用户希望如何处理 Goldfish 的异议 (例如,调整方案方向、缩小范围或增加约束)。
- 返回循环:重复步骤 1 和步骤 2,重新运行或更新 Goldfish 分析,直到概念经受住审查且用户满意。
步骤 4:定稿与交接
-
产物确认:请用户审阅最终的
concepts_brief.md产物并确认其认可。 -
步骤 4 交接关卡弹窗(单选):获得批准后,展示标准化交接选项(如果 运行环境提供
ask_question等结构化提问工具,则使用该工具;否则通过普通聊天展示):{ "questions": [ { "question": "头脑风暴已完成。concepts_brief.md 已定稿。请选择下一步:", "options": [ "将 concepts_brief.md 发布为 RFC,征求团队反馈", "继续执行 /egm-draft(初始化正式设计文档)", "在构思模式下继续完善 concepts_brief.md", "结束头脑风暴,并保留简报以供日后使用" ], "is_multi_select": false } ] }- 选项 0:
Publish concepts_brief.md as RFC for team feedback:- 使用文件写入工具将
concepts_brief.md写入docs/designs/<feature_name>.md。 - 如果
docs/designs/SITEMAP.md存在,则在其中登记该 RFC。 - 在聊天中告知用户 RFC 已发布,可分享给团队征求反馈,再开始正式起草。提醒用户,
收集反馈后,可运行
/egm-draft docs/designs/<feature_name>.md来启动详细设计。
- 使用文件写入工具将
- 选项 1:
Proceed to /egm-draft (Initialize formal design document):- 确认
concepts_brief.md已保存在工作目录 或产物目录中。 - 指示用户运行
/egm-draft(或启用egm-draft技能),并说明/egm-draft会自动将concepts_brief.md作为优先级 1 的输入来源。
- 确认
- 选项 2:
Continue refining concepts_brief.md in ideation mode:- 返回步骤 3 的迭代循环,根据用户在聊天中的输入进一步探讨边界情况或 更新简报。
- 选项 3:
Conclude brainstorming and keep brief for later:- 妥善结束会话。提醒用户,
concepts_brief.md仍会保留, 供日后参考。
- 妥善结束会话。提醒用户,
- 选项 0: