ce-ideate

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Generate Improvement Ideas

生成改进想法

Note: The current year is 2026. Use this when dating ideation documents and checking recent ideation artifacts.
ce-ideate
precedes
ce-brainstorm
.
  • ce-ideate
    answers: "What are the strongest ideas worth exploring?"
  • ce-brainstorm
    answers: "What exactly should one chosen idea mean?"
  • ce-plan
    answers: "How should it be built?"
This workflow produces a ranked ideation artifact in
docs/ideation/
. It does not produce requirements, plans, or code.
注意:当前年份为2026年。 标注创意文档日期和查看近期创意成果时请使用此年份。
ce-ideate
先于
ce-brainstorm
执行。
  • ce-ideate
    回答:“哪些是值得探索的优质想法?”
  • ce-brainstorm
    回答:“选定的某个想法具体意味着什么?”
  • ce-plan
    回答:“应该如何构建它?”
这个工作流会在
docs/ideation/
目录下生成一份排名后的创意成果。它不会生成需求、计划或代码。

Interaction Method

交互方式

Use the platform's blocking question tool when available (
AskUserQuestion
in Claude Code,
request_user_input
in Codex,
ask_user
in Gemini). Otherwise, present numbered options in chat and wait for the user's reply before proceeding.
Ask one question at a time. Prefer concise single-select choices when natural options exist.
若平台提供阻塞式提问工具(Claude Code中的
AskUserQuestion
、Codex中的
request_user_input
、Gemini中的
ask_user
),请使用该工具。否则,在聊天中展示编号选项,等待用户回复后再继续。
一次只提一个问题。当存在明确选项时,优先选择简洁的单选形式。

Focus Hint

聚焦提示

<focus_hint> #$ARGUMENTS </focus_hint>
Interpret any provided argument as optional context. It may be:
  • a concept such as
    DX improvements
  • a path such as
    plugins/compound-engineering/skills/
  • a constraint such as
    low-complexity quick wins
  • a volume hint such as
    top 3
    ,
    100 ideas
    , or
    raise the bar
If no argument is provided, proceed with open-ended ideation.
<focus_hint> #$ARGUMENTS </focus_hint>
将任何提供的参数视为可选上下文。它可能是:
  • 一个概念,例如
    DX improvements
  • 一个路径,例如
    plugins/compound-engineering/skills/
  • 一个约束条件,例如
    low-complexity quick wins
  • 一个数量提示,例如
    top 3
    100 ideas
    raise the bar
若未提供参数,则进行开放式创意构思。

Core Principles

核心原则

  1. Ground before ideating - Scan the actual codebase first. Do not generate abstract product advice detached from the repository.
  2. Generate many -> critique all -> explain survivors only - The quality mechanism is explicit rejection with reasons, not optimistic ranking. Do not let extra process obscure this pattern.
  3. Route action into brainstorming - Ideation identifies promising directions;
    ce-brainstorm
    defines the selected one precisely enough for planning. Do not skip to planning from ideation output.
  1. 先锚定再构思 - 先扫描实际代码库。不要生成脱离仓库的抽象产品建议。
  2. 大量生成 -> 全面批判 -> 仅解释留存的想法 - 质量机制是明确的带有理由的否决,而非乐观排名。不要让额外流程掩盖这个模式。
  3. 引导行动进入头脑风暴环节 - 创意构思确定有前景的方向;
    ce-brainstorm
    将选定的方向定义到足够精确的程度以用于规划。不要从创意构思输出直接跳到规划环节。

Execution Flow

执行流程

Phase 0: Resume and Scope

阶段0:恢复与范围界定

0.1 Check for Recent Ideation Work

0.1 检查近期创意工作

Look in
docs/ideation/
for ideation documents created within the last 30 days.
Treat a prior ideation doc as relevant when:
  • the topic matches the requested focus
  • the path or subsystem overlaps the requested focus
  • the request is open-ended and there is an obvious recent open ideation doc
  • the issue-grounded status matches: do not offer to resume a non-issue ideation when the current argument indicates issue-tracker intent, or vice versa — treat these as distinct topics
If a relevant doc exists, ask whether to:
  1. continue from it
  2. start fresh
If continuing:
  • read the document
  • summarize what has already been explored
  • preserve previous idea statuses
  • update the existing file instead of creating a duplicate
查看
docs/ideation/
目录下过去30天内创建的创意文档。
当满足以下条件时,认为先前的创意文档相关:
  • 主题与请求的聚焦点匹配
  • 路径或子系统与请求的聚焦点重叠
  • 请求是开放式的,且存在明显的近期开放式创意文档
  • 基于问题的状态匹配:当当前参数表明需要问题追踪器意图时,不要提议恢复非问题导向的创意构思,反之亦然——将这些视为不同的主题
若存在相关文档,询问用户是否:
  1. 基于该文档继续
  2. 重新开始
若选择继续:
  • 阅读文档
  • 总结已探索的内容
  • 保留先前想法的状态
  • 更新现有文件,而非创建副本

0.2 Classify Subject Mode

0.2 分类主题模式

Classify the subject of ideation (what the user wants ideas about), not the environment. A user inside any repo can ideate about something unrelated to that repo; a user in
/tmp
can ideate about code they hold in their head.
Make two sequential binary decisions, enumerating negative signals at each:
Decision 1 — repo-grounded vs elsewhere. Weigh prompt content first, topic-repo coherence second, and CWD repo presence as supporting evidence only.
  • Positive signals for repo-grounded: prompt references repo files, code, architecture, modules, tests, or workflows; topic is clearly bounded by the current codebase.
  • Negative signals (push toward elsewhere): prompt names things absent from the repo (pricing, naming, narrative, business model, personal decisions, brand, content, market positioning); topic is creative, business, or personal with no code surface.
Decision 2 (only fires if Decision 1 = elsewhere) — software vs non-software. Classify by whether the subject of ideation is a software artifact or system, not by where the individual ideas will eventually land. If the topic concerns a product, app, SaaS, web/mobile UI, feature, page, or service, it is elsewhere-software — even when the ideas themselves are about copy, UX, CRO, pricing, onboarding, visual design, or positioning for that software product. Elsewhere-non-software is reserved for topics with no software surface at all: company or brand naming (independent of product), narrative and creative writing, personal decisions, non-digital business strategy, physical-product design.
Sample classifications:
  • "Improve conversion on our sign-up page" → elsewhere-software (the subject is a page)
  • "Redesign the onboarding flow" → elsewhere-software (the subject is a flow)
  • "Pricing page A/B test ideas" → elsewhere-software (the subject is a page)
  • "Features to add to our note-taking app" → elsewhere-software
  • "Name my new coffee shop" → elsewhere-non-software (the subject is a brand)
  • "Plot ideas for a short story" → elsewhere-non-software (the subject is a narrative)
  • "Options for my next career move" → elsewhere-non-software (the subject is a personal decision)
State the inferred approach in one sentence at the top, using plain language the user will recognize. Never print the internal taxonomy label (
repo-grounded
,
elsewhere-software
,
elsewhere-non-software
) to the user — those names are for routing only. Adapt the template below to the actual topic; pick a domain word from the topic itself (e.g., "landing page", "onboarding flow", "naming", "career decision") instead of a mode label.
  • Repo-grounded: "Treating this as a topic in this codebase — about X. Say 'actually this is outside the repo' to switch."
  • Elsewhere-software: "Treating this as a product/software topic outside this repo — about X. Say 'actually this is about this repo' or 'actually this has no software surface' to switch."
  • Elsewhere-non-software: "Treating this as a [naming | narrative | business | personal] topic — about X. Say 'actually this is about a software product' or 'actually this is about this repo' to switch."
The correction hints must also be plain language ("actually this is outside the repo", "actually this is about this repo"), not internal labels ("actually elsewhere-software").
Active confirmation on ambiguity (V16). When classifier confidence is low — single-keyword or short prompts mapping cleanly to either mode (
/ce-ideate ideas
,
/ce-ideate ideas for the docs
), conflicting CWD/prompt signals, or topic mentioning both repo-internal and external surfaces — ask one confirmation question via the platform's blocking question tool (
AskUserQuestion
in Claude Code,
request_user_input
in Codex,
ask_user
in Gemini) before dispatching Phase 1 grounding. For clear cases the one-sentence inferred-mode statement is sufficient; do not ask.
Sample wording (refine to fit the prompt at hand; follow the Interactive Question Tool Design rules in the plugin AGENTS.md — self-contained labels, max 4, third person, front-loaded distinguishing word, no leaked internal mode names):
  • Stem: "What should the agent ideate about?"
  • Options:
    • "Code in this repository — features, refactors, architecture"
    • "A topic outside this repository — business, design, content, personal decisions"
    • "Cancel — let me rephrase the prompt"
If the user confirms or selects "elsewhere," still run Decision 2 to choose between elsewhere-software and elsewhere-non-software.
Routing rule. When Decision 2 = non-software, still run Phase 1 Elsewhere-mode grounding (user-context synthesis + web-research by default; skip phrases honored). Learnings-researcher is skipped by default in this mode — the CWD's
docs/solutions/
rarely transfers to naming, narrative, personal, or non-digital business topics; see Phase 1 for the full rationale. Then load
references/universal-ideation.md
and follow it in place of Phase 2's software frame dispatch and the Phase 6 menu narrative. This load is non-optional — the file contains the domain-agnostic generation frames, critique rubric, and wrap-up menu that replace Phase 2 and the post-ideation menu for this mode, and none of those details live in this main body. Improvising from memory produces the wrong facilitation for non-software topics. Do not run the repo-specific codebase scan at any point. The §6.5 Proof Failure Ladder in
references/post-ideation-workflow.md
still applies — load and follow it whenever a Proof save (the elsewhere-mode default for Save and end) fails, so the local-save fallback path stays reachable in non-software elsewhere runs.
If any prompt-broadening or intake step (0.4 below) materially changes the topic, re-evaluate the mode statement before dispatching Phase 1 — classify on the scope to be acted on, not the scope at first read.
创意构思的主题(用户想要构思的内容)进行分类,而非环境分类。用户在任何仓库中都可以构思与该仓库无关的内容;用户在
/tmp
目录下也可以构思脑海中的代码。
依次做出两个二元决策,每个决策都列出负面信号:
决策1 — 基于代码仓库 vs 其他场景。优先考虑提示内容,其次是主题与仓库的一致性,当前工作目录(CWD)的仓库存在仅作为支持证据。
  • 基于代码仓库的正向信号:提示提及仓库文件、代码、架构、模块、测试或工作流;主题明显受限于当前代码库。
  • 负面信号(倾向于其他场景):提示提及仓库中不存在的内容(定价、命名、叙事、商业模式、个人决策、品牌、内容、市场定位);主题是创意、商业或个人相关,且无代码层面的关联。
决策2(仅当决策1=其他场景时触发) — 软件类 vs 非软件类。根据创意构思的主题是否为软件制品或系统进行分类,而非想法最终落地的位置。如果主题涉及产品、应用、SaaS、Web/移动UI、功能、页面或服务,则属于其他场景-软件类——即使想法本身是关于该软件产品的文案、UX、CRO、定价、引导流程、视觉设计或定位。其他场景-非软件类仅适用于完全无软件层面关联的主题:公司或品牌命名(独立于产品)、叙事和创意写作、个人决策、非数字化商业策略、实体产品设计。
分类示例:
  • “改进我们注册页面的转化率” → 其他场景-软件类(主题是页面)
  • “重新设计引导流程” → 其他场景-软件类(主题是流程)
  • “定价页面A/B测试想法” → 其他场景-软件类(主题是页面)
  • “为我们的笔记应用添加功能” → 其他场景-软件类
  • “为我的新咖啡店命名” → 其他场景-非软件类(主题是品牌)
  • “短篇小说的情节构思” → 其他场景-非软件类(主题是叙事)
  • “我下一步职业发展的选择” → 其他场景-非软件类(主题是个人决策)
在顶部用一句话说明推断的方法,使用用户能理解的平实语言。永远不要向用户展示内部分类标签(
repo-grounded
elsewhere-software
elsewhere-non-software
)——这些名称仅用于路由。根据实际主题调整以下模板;从主题本身中选取一个领域词汇(例如“着陆页”“引导流程”“命名”“职业决策”)代替模式标签。
  • 基于代码仓库:“将此视为当前代码库中的主题——关于X。若实际为仓库外主题,请说‘实际上这是仓库外的内容’以切换。”
  • 其他场景-软件类:“将此视为当前仓库外的产品/软件主题——关于X。若实际为仓库内主题或无软件层面关联,请说‘实际上这是关于当前仓库的’或‘实际上这无软件层面关联’以切换。”
  • 其他场景-非软件类:“将此视为[命名 | 叙事 | 商业 | 个人]主题——关于X。若实际为软件产品主题或仓库内主题,请说‘实际上这是关于软件产品的’或‘实际上这是关于当前仓库的’以切换。”
修正提示也必须使用平实语言(“实际上这是仓库外的内容”“实际上这是关于当前仓库的”),而非内部标签(“实际上是elsewhere-software”)。
歧义时主动确认(V16)。当分类器置信度较低时——单关键词或简短提示可同时映射到两种模式(
/ce-ideate ideas
/ce-ideate ideas for the docs
)、CWD与提示信号冲突,或主题同时提及仓库内部和外部层面——在启动阶段1锚定前,通过平台的阻塞式提问工具(Claude Code中的
AskUserQuestion
、Codex中的
request_user_input
、Gemini中的
ask_user
)提出一个确认问题。对于明确的情况,只需用一句话说明推断的模式即可;无需提问。
示例措辞(根据提示内容调整;遵循插件AGENTS.md中的交互式提问工具设计规则——独立标签、最多4个、第三人称、前置区分词、不泄露内部模式名称):
  • 开头:“Agent应针对什么进行创意构思?”
  • 选项:
    • “此仓库中的代码——功能、重构、架构”
    • “仓库外的主题——商业、设计、内容、个人决策”
    • “取消——让我重新表述提示”
若用户确认或选择“其他场景”,仍需执行决策2以区分其他场景-软件类和其他场景-非软件类。
路由规则。当决策2=非软件类时,仍需执行阶段1的其他场景模式锚定(默认进行用户上下文合成+网络研究;遵循跳过规则)。默认跳过Learnings研究员——当前工作目录的
docs/solutions/
很少能应用于命名、叙事、个人或非数字化商业主题;阶段1中有完整的理由说明。然后加载
references/universal-ideation.md
并遵循其中的内容,代替阶段2的软件框架调度和阶段6的菜单说明。此加载是必须的——该文件包含领域通用的生成框架、批判准则和收尾菜单,用于替代阶段2和非软件模式下创意构思后的菜单,这些细节均未在主文档中体现。凭记忆即兴发挥会导致非软件主题的引导方式错误。任何时候都不要运行仓库特定的代码库扫描。
references/post-ideation-workflow.md
中的§6.5验证失败流程仍然适用——每当验证保存(其他场景模式下“保存并结束”的默认选项)失败时,加载并遵循该流程,以便在非软件类其他场景运行中仍能使用本地保存的回退路径。
如果任何拓宽提示或引入步骤(如下文0.4)实质性地改变了主题,在启动阶段1前重新评估模式说明——根据要执行的范围进行分类,而非初始读取的范围。

0.3 Interpret Focus and Volume

0.3 解读聚焦点与数量

Infer three things from the argument:
  • Focus context - concept, path, constraint, or open-ended
  • Volume override - any hint that changes candidate or survivor counts
  • Issue-tracker intent - whether the user wants issue/bug data as an input source. Repo-mode only — do not trigger in elsewhere mode.
Issue-tracker intent triggers when the argument's primary intent is about analyzing issue patterns:
bugs
,
github issues
,
open issues
,
issue patterns
,
what users are reporting
,
bug reports
,
issue themes
.
Do NOT trigger on arguments that merely mention bugs as a focus:
bug in auth
,
fix the login issue
,
the signup bug
— these are focus hints, not requests to analyze the issue tracker.
When combined (e.g.,
top 3 bugs in authentication
): detect issue-tracker intent first, volume override second, remainder is the focus hint. The focus narrows which issues matter; the volume override controls survivor count.
Default volume:
  • each ideation sub-agent generates about 6-8 ideas (yielding ~36-48 raw ideas across 6 frames in the default path, or ~24-32 across 4 frames in issue-tracker mode; roughly 25-30 survivors after dedupe in the 6-frame path and fewer in the 4-frame path)
  • keep the top 5-7 survivors
Honor clear overrides such as:
  • top 3
  • 100 ideas
  • go deep
  • raise the bar
Use reasonable interpretation rather than formal parsing.
从参数中推断三点:
  • 聚焦上下文 - 概念、路径、约束条件或开放式
  • 数量覆盖 - 任何改变候选或留存想法数量的提示
  • 问题追踪器意图 - 用户是否希望将问题/ bug数据作为输入源。仅适用于仓库模式——其他场景模式下不触发。
当参数的主要意图是分析问题模式时,触发问题追踪器意图:
bugs
github issues
open issues
issue patterns
what users are reporting
bug reports
issue themes
不要在仅提及bug作为聚焦点的参数上触发:
bug in auth
fix the login issue
the signup bug
——这些是聚焦提示,而非分析问题追踪器的请求。
当组合出现时(例如
top 3 bugs in authentication
):先检测问题追踪器意图,然后是数量覆盖,剩余部分为聚焦提示。聚焦点缩小了相关问题的范围;数量覆盖控制留存想法的数量。
默认数量:
  • 每个创意子Agent生成约6-8个想法(在默认路径下,6个框架共产生约36-48个原始想法;在问题追踪器模式下,4个框架共产生约24-32个;6框架路径下去重后约有25-30个留存想法,4框架路径下更少)
  • 保留排名前5-7的留存想法
遵循明确的覆盖要求,例如:
  • top 3
  • 100 ideas
  • go deep
  • raise the bar
采用合理的解释而非形式化解析。

0.4 Light Context Intake (Elsewhere Mode, Software Topics Only)

0.4 轻量上下文引入(仅其他场景模式、软件主题)

Skip this step in repo mode (Phase 1 grounding agents do the work) and in non-software elsewhere mode (the universal facilitation reference governs intake).
Apply the discrimination test before asking anything: would swapping one piece of the user's stated context for a contrasting alternative materially change which ideas survive? If yes, the context is load-bearing — proceed without asking. If no, ask 1-3 narrowly chosen questions, building on what the user already provided rather than starting from a template. Default to free-form questions; use single-select only when the answer space is small and discrete (e.g., genre, tone). After each answer, re-apply the test before asking another. Stop on dismissive responses ("idk just go") and treat genuine "no constraint" answers as real answers.
When the user provides rich context up front (a paste, a brief, an existing draft), confirm understanding in one line and skip intake entirely.
仓库模式下跳过此步骤(阶段1的锚定Agent会完成相关工作),其他场景模式下的非软件主题也跳过此步骤(通用引导参考文件管理引入流程)。
在提问前应用判别测试:将用户陈述的上下文替换为对比内容是否会实质性改变留存的想法?如果是,说明该上下文是关键的——无需提问直接进行。如果否,提出1-3个精心选择的问题,基于用户已提供的内容而非模板开始。默认使用自由形式的问题;仅当答案空间小且离散时(例如类型、语气)使用单选形式。每次回答后,重新应用测试再决定是否继续提问。若用户给出否定回应(“我不知道,直接开始吧”)则停止,将明确的“无约束”回答视为有效答案。
若用户预先提供了丰富的上下文(粘贴内容、简要说明、现有草稿),用一句话确认理解后直接跳过引入步骤。

0.5 Cost Transparency Notice

0.5 成本透明通知

Before dispatching Phase 1, surface the agent count for the inferred mode in one short line so multi-agent cost is not invisible. Compute the count from the actual dispatch decision: 1 grounding-context agent (codebase scan in repo mode; user-context synthesis in elsewhere) + 1 learnings (skip in elsewhere-non-software) + 1 web researcher + 6 ideation = baseline 9 in repo mode and elsewhere-software, 8 in elsewhere-non-software. When issue-tracker intent triggers (repo mode only): add 1 for the issue-intelligence agent and drop ideation from 6 to 4, for a net -1 (baseline 8). Add 1 if the user opted into Slack research. Subtract 1 if the user issued a web-research skip phrase or V15 reuse will fire.
Examples (defaults, no skips, no opt-ins):
  • Repo mode: "Will dispatch ~9 agents: codebase scan + learnings + web research + 6 ideation sub-agents. Skip phrases: 'no external research', 'no slack'."
  • Repo mode, issue-tracker intent: "Will dispatch ~8 agents: codebase scan + learnings + web research + issue intelligence + 4 ideation sub-agents. Skip phrases: 'no external research', 'no slack'." Reflects the successful-theme path; if issue intelligence returns insufficient signal (see Phase 1), ideation falls back to 6 sub-agents and the total becomes ~9.
  • Elsewhere-software: "Will dispatch ~9 agents: context synthesis + learnings + web research + 6 ideation sub-agents. Skip phrases: 'no external research'."
  • Elsewhere-non-software: "Will dispatch ~8 agents: context synthesis + web research + 6 ideation sub-agents. Skip phrases: 'no external research'."
The line is informational; users do not need to acknowledge it.
在启动阶段1前,用简短的一句话说明推断模式下的Agent数量,避免多Agent成本不透明。根据实际调度决策计算数量:1个锚定上下文Agent(仓库模式下为代码库扫描;其他场景模式下为用户上下文合成)+1个Learnings Agent(其他场景-非软件模式下默认跳过)+1个网络研究员+6个创意Agent——仓库模式和其他场景-软件模式下基准为9个,其他场景-非软件模式下为8个。当触发问题追踪器意图时(仅仓库模式):增加1个问题智能Agent,将创意Agent从6个减少到4个,净减少1个(基准为8个)。若用户选择加入Slack研究,则增加1个。若用户发出网络研究跳过指令或触发V15复用,则减少1个。
示例(默认情况,无跳过,无加入):
  • 仓库模式:“将调度约9个Agent:代码库扫描 + Learnings + 网络研究 + 6个创意子Agent。跳过指令:‘no external research’、‘no slack’。”
  • 仓库模式,问题追踪器意图:“将调度约8个Agent:代码库扫描 + Learnings + 网络研究 + 问题智能 + 4个创意子Agent。跳过指令:‘no external research’、‘no slack’。” 此为成功主题路径;若问题智能Agent返回的信号不足(见阶段1),创意Agent将回退到6个,总数变为约9个。
  • 其他场景-软件模式:“将调度约9个Agent:上下文合成 + Learnings + 网络研究 + 6个创意子Agent。跳过指令:‘no external research’。”
  • 其他场景-非软件模式:“将调度约8个Agent:上下文合成 + 网络研究 + 6个创意子Agent。跳过指令:‘no external research’。”
此内容仅为告知;用户无需确认。

Phase 1: Mode-Aware Grounding

阶段1:模式感知锚定

Before generating ideas, gather grounding. The dispatch set depends on the mode chosen in Phase 0.2. Web research runs in all modes (skip phrases honored). Learnings runs in repo mode and elsewhere-software, and is skipped by default in elsewhere-non-software — the CWD repo's
docs/solutions/
almost always contains engineering patterns that do not transfer to naming, narrative, personal, or non-digital business topics.
Generate a
<run-id>
once at the start of Phase 1 (8 hex chars). Reuse it for the V15 cache file (this phase) and the V17 checkpoints (Phases 2 and 4) so they share one per-run scratch directory.
Pre-resolve the scratch directory path. Scratch lives in OS temp (not
.context/
), per the cross-invocation-reusable rule in the repo Scratch Space convention — the ideation topic is rarely tied to the CWD repo (especially in elsewhere mode), so keeping scratch out of any repo tree is the right default. Run one bash command to create the directory and capture its absolute path for all downstream use. Do not pass
${TMPDIR:-/tmp}
as a literal string to non-shell tools (Write, Read, Glob); those tools do not perform shell expansion.
bash
SCRATCH_DIR="${TMPDIR:-/tmp}/compound-engineering/ce-ideate/<run-id>"
mkdir -p "$SCRATCH_DIR"
echo "$SCRATCH_DIR"
Use the echoed absolute path (e.g.,
/var/folders/.../T/compound-engineering/ce-ideate/a3f7c2e1
on macOS,
/tmp/compound-engineering/ce-ideate/a3f7c2e1
on Linux) as
<scratch-dir>
for every subsequent checkpoint write and cache read in this run. The run directory is not deleted on Phase 6 completion — the V15 cache is session-scoped and reused across run-ids, and the checkpoints follow the cross-invocation-reusable convention of leaving session-scoped artifacts for later invocations to find.
Run grounding agents in parallel in the foreground (do not background — results are needed before Phase 2):
Repo mode dispatch:
  1. Quick context scan — dispatch a general-purpose sub-agent using the platform's cheapest capable model (e.g.,
    model: "haiku"
    in Claude Code) with this prompt:
    Read the project's AGENTS.md (or CLAUDE.md only as compatibility fallback, then README.md if neither exists), then discover the top-level directory layout using the native file-search/glob tool (e.g.,
    Glob
    with pattern
    *
    or
    */*
    in Claude Code). Return a concise summary (under 30 lines) covering:
    • project shape (language, framework, top-level directory layout)
    • notable patterns or conventions
    • obvious pain points or gaps
    • likely leverage points for improvement
    Keep the scan shallow — read only top-level documentation and directory structure. Do not analyze GitHub issues, templates, or contribution guidelines. Do not do deep code search.
    Focus hint: {focus_hint}
  2. Learnings search — dispatch
    research:ce-learnings-researcher
    with a brief summary of the ideation focus.
  3. Web research (always-on; see "Web research" subsection below for skip-phrase and V15 cache handling).
  4. Issue intelligence (conditional) — if issue-tracker intent was detected in Phase 0.3, dispatch
    research:ce-issue-intelligence-analyst
    with the focus hint. Run in parallel with the other agents.
    If the agent returns an error (gh not installed, no remote, auth failure), log a warning to the user ("Issue analysis unavailable: {reason}. Proceeding with standard ideation.") and continue with the remaining grounding.
    If the agent reports fewer than 5 total issues, note "Insufficient issue signal for theme analysis" and proceed with default ideation frames in Phase 2.
Elsewhere mode dispatch (skip the codebase scan; user-supplied context is the primary grounding):
  1. User-context synthesis — dispatch a general-purpose sub-agent (cheapest capable model) to read the user-supplied context from Phase 0.4 intake plus any rich-prompt material, and return a structured grounding summary that mirrors the codebase-context shape (project shape → topic shape; notable patterns → stated constraints; pain points → user-named pain points; leverage points → opportunity hooks the context implies). This keeps Phase 2 sub-agents agnostic to grounding source.
  2. Learnings search (elsewhere-software only; skipped by default in elsewhere-non-software) — dispatch
    research:ce-learnings-researcher
    with the topic summary in case relevant institutional knowledge exists (skill-design patterns, prior solutions in similar shape). Skip for elsewhere-non-software: the CWD's
    docs/solutions/
    is unlikely to be topically relevant for non-digital topics, and running it risks polluting generation with unrelated engineering patterns.
  3. Web research — same as repo mode (see subsection below).
Issue intelligence does not apply in elsewhere mode. Slack research is opt-in for both modes (see "Slack context" below).
生成想法前,先收集锚定信息。调度集合取决于阶段0.2中选择的模式。网络研究在所有模式下运行(遵循跳过规则)。Learnings在仓库模式和其他场景-软件模式下运行,其他场景-非软件模式下默认跳过——当前工作目录仓库的
docs/solutions/
几乎总是包含无法应用于命名、叙事、个人或非数字化商业主题的工程模式。
在阶段1开始时生成一个
<run-id>
(8个十六进制字符)。将其用于V15缓存文件(此阶段)和V17检查点(阶段2和4),以便它们共享一个每次运行的临时目录。
预先解析临时目录路径。临时目录位于系统临时文件夹中(而非
.context/
),符合仓库临时空间约定中的跨调用复用规则——创意构思主题很少与当前工作目录仓库绑定(尤其是在其他场景模式下),因此将临时目录放在任何仓库目录之外是正确的默认设置。运行一个bash命令创建目录并捕获其绝对路径供后续所有步骤使用。不要将
${TMPDIR:-/tmp}
作为字面字符串传递给非shell工具(Write、Read、Glob);这些工具不执行shell展开。
bash
SCRATCH_DIR="${TMPDIR:-/tmp}/compound-engineering/ce-ideate/<run-id>"
mkdir -p "$SCRATCH_DIR"
echo "$SCRATCH_DIR"
使用输出的绝对路径(例如macOS上的
/var/folders/.../T/compound-engineering/ce-ideate/a3f7c2e1
,Linux上的
/tmp/compound-engineering/ce-ideate/a3f7c2e1
)作为后续所有检查点写入和缓存读取的
<scratch-dir>
。运行目录不会在阶段6完成时删除——V15缓存是会话范围的,可在不同run-id间复用,检查点遵循跨调用复用约定,保留会话范围的工件供后续调用查找。
前台并行运行锚定Agent(不要后台运行——阶段2需要这些结果):
仓库模式调度:
  1. 快速上下文扫描 — 使用平台最便宜的可用模型(例如Claude Code中的
    model: "haiku"
    )调度一个通用子Agent,提示如下:
    阅读项目的AGENTS.md(或仅作为兼容回退的CLAUDE.md,若两者都不存在则阅读README.md),然后使用原生文件搜索/glob工具(例如Claude Code中使用
    Glob
    模式
    *
    */*
    )发现顶级目录结构。返回一份简洁的总结(不超过30行),涵盖:
    • 项目形态(语言、框架、顶级目录结构)
    • 值得注意的模式或约定
    • 明显的痛点或缺口
    • 可能的改进切入点
    保持扫描浅层——仅阅读顶级文档和目录结构。不要分析GitHub问题、模板或贡献指南。不要进行深度代码搜索。
    聚焦提示:{focus_hint}
  2. Learnings搜索 — 调度
    research:ce-learnings-researcher
    ,并提供创意构思聚焦点的简要总结。
  3. 网络研究(始终开启;见下文“网络研究”小节的跳过指令和V15缓存处理)。
  4. 问题智能(条件触发) — 若阶段0.3中检测到问题追踪器意图,调度
    research:ce-issue-intelligence-analyst
    并提供聚焦提示。与其他Agent并行运行。
    若Agent返回错误(gh未安装、无远程仓库、认证失败),向用户记录警告(“问题分析不可用:{原因}。将继续标准创意构思。”)并继续剩余的锚定工作。
    若Agent报告的问题总数少于5个,记录“问题信号不足,无法进行主题分析”并在阶段2中使用默认创意框架。
其他场景模式调度(跳过代码库扫描;用户提供的上下文是主要锚定信息):
  1. 用户上下文合成 — 调度一个通用子Agent(最便宜的可用模型),读取阶段0.4引入的用户提供的上下文以及任何丰富提示材料,返回结构化的锚定总结,镜像代码库上下文的形态(项目形态→主题形态;值得注意的模式→陈述的约束条件;痛点→用户指出的痛点;改进切入点→上下文暗示的机会点)。这使阶段2的子Agent无需关心锚定信息的来源。
  2. Learnings搜索 (仅其他场景-软件模式;其他场景-非软件模式下默认跳过) — 调度
    research:ce-learnings-researcher
    并提供主题总结,以防存在相关的机构知识(技能设计模式、类似形态的先前解决方案)。其他场景-非软件模式下跳过:当前工作目录的
    docs/solutions/
    不太可能与非数字化主题相关,运行此步骤可能会用无关的工程模式污染生成结果。
  3. 网络研究 — 与仓库模式相同(见下文小节)。
问题智能不适用于其他场景模式。Slack研究在两种模式下均为可选(见下文“Slack上下文”)。

Web Research (V5, V15)

网络研究(V5, V15)

Always-on for both modes. Skip when the user said "no external research", "skip web research", or equivalent in their prompt or earlier answers; in that case, omit
research:ce-web-researcher
from dispatch and note the skip in the consolidated grounding summary.
Reuse prior web research within a session via a sidecar cache — see
references/web-research-cache.md
for the cache file shape, reuse check, append behavior, and platform-degradation rules. Read it the first time
research:ce-web-researcher
would be dispatched in this run (and on every subsequent dispatch where the cache might apply).
When dispatching
research:ce-web-researcher
, pass: the focus hint, a brief planning context summary (one or two sentences), and the mode. Do not pass codebase content — the agent operates externally.
在两种模式下始终开启。当用户在提示或先前回答中说“no external research”“skip web research”或类似表述时跳过;此时从调度中省略
research:ce-web-researcher
,并在合并的锚定总结中记录跳过情况。
通过附带缓存复用会话内的先前网络研究——详见
references/web-research-cache.md
中的缓存文件形态、复用检查、追加行为和平台降级规则。在本次运行中首次调度
research:ce-web-researcher
时(以及后续任何可能适用缓存的调度时)读取该文件。
调度
research:ce-web-researcher
时,传递:聚焦提示、简要的规划上下文总结(一到两句话)和模式。不要传递代码库内容——该Agent在外部运行。

Consolidated Grounding Summary

合并锚定总结

Consolidate all dispatched results into a short grounding summary using these sections (omit any section that produced nothing):
  • Codebase context (repo mode) OR Topic context (elsewhere mode) — project/topic shape, notable patterns or stated constraints, pain points, leverage points
  • Past learnings — relevant institutional knowledge from
    docs/solutions/
  • Issue intelligence (when present, repo mode only) — theme summaries with titles, descriptions, issue counts, and trend directions
  • External context (when web research ran) — prior art, adjacent solutions, market signals, cross-domain analogies. Note "(reused from earlier dispatch)" when V15 reuse fired
  • Slack context (when present) — organizational context
Failure handling. Grounding agent failures follow "warn and proceed" — never block on grounding failure. If
research:ce-web-researcher
fails (network, tool unavailable), log a warning ("External research unavailable: {reason}. Proceeding with internal grounding only.") and continue. If elsewhere-mode intake produced no usable context, note in the grounding summary that context is thin so Phase 2 sub-agents can compensate with broader generation.
Slack context (opt-in, both modes) — never auto-dispatch. When the user asks for Slack context and Slack tools are available (look for any
slack-researcher
agent or
slack
MCP tools in the current environment), dispatch
research:ce-slack-researcher
with the focus hint in parallel with other Phase 1 agents. When tools are present but the user did not ask, mention availability in the grounding summary so they can opt in. When the user asked but no Slack tools are reachable, surface the install hint instead.
将所有调度结果合并为一份简短的锚定总结,包含以下部分(省略未产生内容的部分):
  • 代码库上下文 (仓库模式)主题上下文 (其他场景模式) — 项目/主题形态、值得注意的模式或陈述的约束条件、痛点、改进切入点
  • 过往经验 — 来自
    docs/solutions/
    的相关机构知识
  • 问题智能 (存在时,仅仓库模式) — 主题总结,包含标题、描述、问题数量和趋势方向
  • 外部上下文 (运行网络研究时) — 先前案例、相关解决方案、市场信号、跨领域类比。当触发V15复用时,标注“(复用自先前调度)”
  • Slack上下文 (存在时) — 组织上下文
故障处理。锚定Agent故障遵循“警告并继续”原则——永远不要因锚定故障而阻塞。若
research:ce-web-researcher
失败(网络问题、工具不可用),记录警告(“外部研究不可用:{原因}。将仅基于内部锚定继续。”)并继续。若其他场景模式下的引入步骤未产生可用上下文,在锚定总结中记录上下文不足,以便阶段2的子Agent通过更广泛的生成进行补偿。
Slack上下文(可选,两种模式)——永远不要自动调度。当用户请求Slack上下文且Slack工具可用时(查看当前环境中是否有
slack-researcher
Agent或
slack
MCP工具),与阶段1的其他Agent并行调度
research:ce-slack-researcher
并提供聚焦提示。当工具存在但用户未请求时,在锚定总结中提及可用性以便用户选择加入。当用户请求但无法访问Slack工具时,展示安装提示。

Phase 2: Divergent Ideation

阶段2:发散式创意构思

Generate the full candidate list before critiquing any idea.
Dispatch parallel ideation sub-agents on the inherited model (do not tier down -- creative ideation needs the orchestrator's reasoning level). Omit the
mode
parameter so the user's configured permission settings apply. Dispatch count is mode-conditional: 4 sub-agents only when issue-tracker intent was detected in Phase 0.3 AND the issue intelligence agent returned usable themes (see override below — cluster-derived frames capped at 4); 6 sub-agents otherwise, including the insufficient-issue-signal fallback from Phase 1 where intent triggered but themes were not returned. Each targets ~6-8 ideas (yielding ~36-48 raw ideas across 6 frames or ~24-32 across 4 frames, roughly 25-30 survivors after dedupe in the 6-frame path and fewer in the 4-frame path). Adjust per-agent targets when volume overrides apply (e.g., "100 ideas" raises it, "top 3" may lower the survivor count instead).
Give each sub-agent: the grounding summary, the focus hint, the per-agent volume target, and an instruction to generate raw candidates only (not critique). Each agent's first few ideas tend to be obvious -- push past them. Ground every idea in the Phase 1 grounding summary.
Assign each sub-agent a different ideation frame as a starting bias, not a constraint. Prompt each to begin from its assigned perspective but follow any promising thread -- cross-cutting ideas that span multiple frames are valuable.
Frame selection (mode-symmetric — same six frames in repo and elsewhere modes):
  1. Pain and friction — user, operator, or topic-level pain points; what is consistently slow, broken, or annoying.
  2. Inversion, removal, or automation — invert a painful step, remove it entirely, or automate it away.
  3. Assumption-breaking and reframing — what is being treated as fixed that is actually a choice; reframe one level up or sideways.
  4. Leverage and compounding — choices that, once made, make many future moves cheaper or stronger; second-order effects.
  5. Cross-domain analogy — generate ideas by asking how completely different fields solve a structurally analogous problem. The grounding domain is the user's topic; the analogy domain is anywhere else (other industries, biology, games, infrastructure, history). Push past the obvious analogy to non-obvious ones.
  6. Constraint-flipping — invert the obvious constraint to its opposite or extreme. What if the budget were 10x or 0? What if the team were 100 people or 1? What if there were no users, or 1M? Use the resulting design as a candidate even if the constraint flip itself is not realistic.
Issue-tracker mode override (repo mode only). When issue-tracker intent is active and themes were returned by the issue intelligence agent: each high/medium-confidence theme becomes a frame. Pad with frames from the 6-frame default pool (in the order listed above) if fewer than 3 cluster-derived frames. Cap at 4 total — issue-tracker mode keeps its tighter dispatch by design.
Ask each sub-agent to return a compact structure per idea: title, summary, why_it_matters, evidence/grounding hooks, optional boldness or focus_fit signal.
After all sub-agents return:
  1. Merge and dedupe into one master candidate list.
  2. Synthesize cross-cutting combinations -- scan for ideas from different frames that combine into something stronger (expect 3-5 additions at most).
  3. If a focus was provided, weight the merged list toward it without excluding stronger adjacent ideas.
  4. Spread ideas across multiple dimensions when justified: workflow/DX, reliability, extensibility, missing capabilities, docs/knowledge compounding, quality/maintenance, leverage on future work.
Checkpoint A (V17). Immediately after the cross-cutting synthesis step completes and the raw candidate list is consolidated, write
<scratch-dir>/raw-candidates.md
(using the absolute path captured in Phase 1) containing the full candidate list with sub-agent attribution. This protects the most expensive output (6 parallel sub-agent dispatches + dedupe) before Phase 3 critique potentially compacts context. Best-effort: if the write fails (disk full, permissions), log a warning and proceed; the checkpoint is not load-bearing. Not cleaned up at the end of the run (the run directory is preserved so the V15 cache remains reusable across run-ids in the same session — see Phase 6).
After merging and synthesis — and before presenting survivors — load
references/post-ideation-workflow.md
. This load is non-optional. The file contains the adversarial filtering rubric, artifact template, quality bar, and the canonical Phase 6 handoff menu (Refine, Open and iterate in Proof, Brainstorm, Save and end) — these options do not appear anywhere in this main body. Skipping the load silently degrades every subsequent step; the agent improvises the menu from memory instead of presenting the documented options. "Quickly" means fewer Phase 2 sub-agents, not skipping references. Do not load this file before Phase 2 agent dispatch completes.
在批判任何想法前,先生成完整的候选列表。
使用继承的模型并行调度创意子Agent(不要降级——创意构思需要编排器的推理水平)。省略
mode
参数,以便应用用户配置的权限设置。调度数量取决于模式:仅当阶段0.3中检测到问题追踪器意图且问题智能Agent返回可用主题时,调度4个子Agent(见下文覆盖规则——基于聚类的框架最多4个);否则调度6个子Agent,包括阶段1中触发意图但未返回主题的信号不足回退情况。每个Agent目标生成约6-8个想法(6个框架共产生约36-48个原始想法,4个框架共产生约24-32个;6框架路径下去重后约有25-30个留存想法,4框架路径下更少)。当存在数量覆盖时调整每个Agent的目标(例如“100 ideas”会增加数量,“top 3”可能会减少留存想法数量)。
为每个子Agent提供:锚定总结、聚焦提示、每个Agent的数量目标,以及仅生成原始候选想法(不进行批判)的指令。每个Agent的前几个想法往往比较明显——要突破这些局限。每个想法都要基于阶段1的锚定总结。
为每个子Agent分配不同的创意框架作为初始偏向,而非约束。提示每个Agent从指定的视角开始,但跟随任何有前景的思路——跨越多个框架的交叉想法很有价值。
框架选择(模式对称——仓库和其他场景模式下均使用以下6个框架):
  1. 痛点与摩擦 — 用户、操作者或主题层面的痛点;持续缓慢、破损或令人烦恼的事物。
  2. 反转、移除或自动化 — 反转痛苦的步骤、完全移除或自动化该步骤。
  3. 打破假设与重构 — 哪些被视为固定不变的事物实际上是可选择的;向上或向侧面重构。
  4. 杠杆与复利 — 一旦做出,就能让未来许多操作更便宜或更强大的选择;二阶效应。
  5. 跨领域类比 — 通过询问完全不同的领域如何解决结构相似的问题来生成想法。锚定领域是用户的主题;类比领域可以是任何其他领域(其他行业、生物学、游戏、基础设施、历史)。突破明显的类比,寻找非明显的类比。
  6. 约束反转 — 将明显的约束反转到其对立面或极端。如果预算是10倍或0会怎样?如果团队有100人或1人会怎样?如果没有用户或有100万用户会怎样?即使约束反转本身不现实,也要将生成的设计作为候选想法。
问题追踪器模式覆盖(仅仓库模式)。当问题追踪器意图激活且问题智能Agent返回主题时,每个高/中置信度的主题成为一个框架。如果基于聚类的框架少于3个,从默认6个框架池中按顺序补充框架。最多4个——问题追踪器模式设计为更紧凑的调度。
要求每个子Agent为每个想法返回紧凑的结构:标题、摘要、why_it_matters、evidence/grounding hooks、可选的boldness或focus_fit信号。
所有子Agent返回后:
  1. 合并并去重,形成一个主候选列表。
  2. 合成交叉组合——扫描来自不同框架的想法,将其组合成更强大的想法(最多新增3-5个)。
  3. 若提供了聚焦点,向聚焦点倾斜合并后的列表,但不排除更优质的相关想法。
  4. 有理由时,将想法分散到多个维度:工作流/DX、可靠性、可扩展性、缺失的功能、文档/知识复利、质量/维护、对未来工作的杠杆作用。
检查点A(V17)。交叉组合步骤完成并合并原始候选列表后,立即将完整的候选列表写入
<scratch-dir>/raw-candidates.md
(使用阶段1中捕获的绝对路径),并包含子Agent归属信息。这是为了在阶段3批判可能压缩上下文之前,保护最昂贵的输出(6个并行子Agent调度+去重)。尽力而为:若写入失败(磁盘满、权限不足),记录警告并继续;检查点不是必需的。运行结束时不清理(运行目录保留,以便V15缓存可在同一会话的不同run-id间复用——见阶段6)。
合并和合成后——在展示留存想法前,加载
references/post-ideation-workflow.md
。此加载是必须的。该文件包含对抗性过滤准则、工件模板、质量标准和标准的阶段6交接菜单(优化、在Proof中打开并迭代、头脑风暴、保存并结束)——这些选项未在主文档中出现。跳过此加载会无声地降低后续每个步骤的质量;Agent会凭记忆即兴生成菜单,而非展示文档中规定的选项。“快速”意味着减少阶段2的子Agent数量,而非跳过参考文件。不要在阶段2 Agent调度完成前加载此文件。