diverge

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

/diverge — Design Brainstorming & Structural Divergence Engine

/diverge — 设计头脑风暴与结构发散引擎

Generate concepts that differ in mechanism, not styling. The output is not a moodboard. It is a set of different machines that solve the same problem through fundamentally different operating principles, discovered through structured creative provocation.
生成机制层面存在差异的概念,而非仅风格不同的方案。输出结果不是情绪板,而是通过结构化创意激发方法得到的、基于完全不同运作原理解决同一问题的一系列方案。

When to Use

适用场景

  • Early-stage product exploration before converging on a direction
  • Breaking out of "default SaaS dashboard" gravity
  • Generating prototype-worthy concepts that stress-test different interaction models
  • When the user says "diverge", "explore directions", "give me range", "brainstorm", "radically different", "product directions"
  • 确定方向前的早期产品探索阶段
  • 打破“默认SaaS仪表盘”思维定式
  • 生成可用于原型验证的概念,测试不同交互模型
  • 用户提及“diverge”、“探索方向”、“给我多样化选择”、“头脑风暴”、“截然不同”、“产品方向”等表述时

Core Rule

核心规则

Every concept must differ from every other concept on at least 3 of the divergence axes. If two concepts share the same core mechanic, collapse them into one and generate a replacement.
Read
$CLAUDE_SKILL_DIR/references/divergence-axes.md
for the full axis library (14 axes), prompt frames, and banned patterns.

每个概念必须在至少3个发散维度上与其他所有概念不同。如果两个概念核心机制相同,需将它们合并并生成替代概念。
阅读
$CLAUDE_SKILL_DIR/references/divergence-axes.md
获取完整维度库(14个维度)、提示框架和禁用模式。

Workflow: 5-Pass Divergence

工作流程:五阶段发散法

Pass 0: DECOMPOSE     — first-principles problem breakdown
Pass 1: EXPLODE       — generate 8-10 concepts using axes + provocations + persona lenses
Pass 2: STRESS TEST   — comparison table with failure modes
Pass 2.5: ENRICH      — cross-pollination, narratives, convergence bridge
Pass 3: PROTOTYPE     — interactive React picker with DialKit
阶段0:分解     — 基于第一性原理拆解问题
阶段1:拓展       — 运用维度+激发技巧+用户角色视角生成8-10个概念
阶段2:压力测试   — 包含失败模式的对比表格
阶段2.5:深化      — 交叉融合、场景叙事、收敛过渡
阶段3:原型构建     — 带有DialKit的交互式React选择器

Pass 0: DECOMPOSE (understand before diverging)

阶段0:分解(发散前先理解)

Before generating concepts, decompose the problem using first-principles.
Read
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
— use only the First-Principles Decomposition section.
Output (150-250 words, tight):
  • 3 JTBD statements: obvious, emotional, surprising
  • The real constraint (time / knowledge / access / trust / motivation / coordination / attention)
  • One problem dissolution statement: "What would make this problem not exist?"
  • 2 structural siblings from other domains + the mechanism they use
Do NOT skip this pass. The decomposition directly shapes which axes and provocations are most relevant in Pass 1.
Subagent strategy: Run this pass in the main conversation. It's short and shapes everything after it.
生成概念前,先基于第一性原理拆解问题。
阅读
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
— 仅使用第一性原理分解章节内容。
输出要求(150-250字,简洁):
  • 3条JTBD(Jobs To Be Done)陈述:显性需求、情感需求、意外需求
  • 真实约束条件(时间/知识/权限/信任/动机/协作/注意力)
  • 一条问题消解陈述:“什么能让这个问题不复存在?”
  • 2个来自其他领域的结构同类方案及其运作机制
请勿跳过此阶段。分解结果将直接决定阶段1中最相关的维度和激发技巧。
子Agent策略: 在主对话中执行此阶段。内容简短,且会影响后续所有环节。

Pass 1: EXPLODE (generate range)

阶段1:拓展(生成多样化方案)

Input: Problem statement from the user + decomposition from Pass 0. If the problem is vague, ask one sharpening question. Do not over-clarify.
Before generating concepts:
  1. List the 5 most predictable solutions for this problem. Ban them.
  2. Consult the axis library (
    divergence-axes.md
    ) and select 8-10 axes that apply to this problem space.
  3. Assign each concept a different primary axis. No two concepts share the same primary axis.
  4. Select 2-3 creative provocation techniques from
    $CLAUDE_SKILL_DIR/references/creative-provocations.md
    . Use the Selection Guide at the bottom of that file to match techniques to the problem type. Each selected technique must influence at least 1 concept.
  5. Select 1 persona extreme or context shift from
    $CLAUDE_SKILL_DIR/references/persona-lens.md
    . At least 1 concept must be designed for this extreme user/context.
Generate 8-10 concepts. For each, output:
FieldWhat it answers
NameEvocative 2-3 word concept name
PremiseOne sentence. What this product believes about the problem.
Core mechanicThe single interaction/system behavior that defines it. Not a feature list.
Interaction modelDirect manipulation / conversational / ambient / agent-led / game-like / feed / ritual / invisible / collaborative / simulator
What the user no longer has to doThe effort or decision this concept eliminates.
What it sacrificesThe tradeoff. What gets worse. Be honest.
Structural differenceWhy this is a different species, not a different skin. Reference which axes it diverges on.
Provocation sourceWhich technique or lens generated this concept (axis combination, SCAMPER, assumption reversal, bisociation, persona extreme, emotion-first, etc.)
First prototype sceneThe single screen/moment/interaction to build first to test the concept.
Minimum diversity requirements:
  • At least 2 concepts remove the need for a traditional screen
  • At least 2 rely heavily on automation or agent behavior
  • At least 2 invert the problem (help users avoid/reduce/delegate rather than do)
  • At least 1 feels like a game or toy
  • At least 1 feels like a serious professional power tool
  • At least 1 borrows its operating logic from a non-software domain
  • At least 1 generated from a creative provocation technique (not just axis combination)
  • At least 1 designed for a non-obvious user persona or context
Quality gate: After generating, scan for "fake novelty" — concepts that look different but use the same core mechanic. Replace any duplicates.
Subagent strategy for Pass 1: For problems with clear sub-domains, you can spawn 2-3 parallel subagents to generate concept batches independently, then merge and deduplicate:
Agent 1: "Generate 4 concepts for [problem] using axes [A, B, C, D] and 
         provocation technique [X]. Each concept must meet the structural 
         fields defined below. [paste concept table format]"

Agent 2: "Generate 4 concepts for [problem] using axes [E, F, G, H] and 
         provocation technique [Y] + persona lens [Z]. Each concept must 
         meet the structural fields defined below. [paste concept table format]"
After agents return, deduplicate in the main conversation: merge results, run the fake novelty detector, collapse any overlapping concepts, and fill gaps in the diversity requirements.
Only use parallel agents when the problem space is rich enough to warrant it (broad problem, many applicable axes). For focused problems, generate all concepts in the main conversation.
输入: 用户提出的问题陈述 + 阶段0的分解结果。如果问题模糊,可提出一个明确化问题,但不要过度澄清。
生成概念前:
  1. 列出该问题最易想到的5种解决方案。禁用这些方案
  2. 查阅维度库(
    divergence-axes.md
    ),选择8-10个适用于该问题领域的维度。
  3. 为每个概念分配不同的主维度。任意两个概念的主维度不得重复。
  4. $CLAUDE_SKILL_DIR/references/creative-provocations.md
    中选择2-3种创意激发技巧。使用该文件底部的选择指南匹配技巧与问题类型。每种选中的技巧必须至少影响一个概念。
  5. $CLAUDE_SKILL_DIR/references/persona-lens.md
    中选择1种极端用户角色或场景转换。至少有一个概念需针对该极端用户/场景设计。
生成8-10个概念,每个概念需包含:
字段说明
名称2-3个词的有感染力的概念名称
核心假设一句话说明该产品针对问题的核心观点
核心机制定义该概念的单一交互/系统行为,而非功能列表
交互模型直接操作/对话式/环境式/Agent主导/游戏化/信息流/仪式化/隐形化/协作式/模拟式
用户无需再做的事该概念消除的用户精力投入或决策环节
牺牲的内容权衡取舍,哪些方面会变差。需诚实表述。
结构差异为何这是不同类型的方案而非换皮。需提及发散的维度。
激发来源生成该概念的技巧或视角(维度组合、SCAMPER、假设反转、异类融合、极端用户角色、情感优先等)
首个原型场景为测试该概念需首先构建的单一界面/时刻/交互
最低多样性要求:
  • 至少2个概念无需传统屏幕
  • 至少2个概念高度依赖自动化或Agent行为
  • 至少2个概念反转问题(帮助用户避免/减少/委托任务而非直接完成)
  • 至少1个概念类似游戏或玩具
  • 至少1个概念类似专业级强力工具
  • 至少1个概念借鉴非软件领域的运作逻辑
  • 至少1个概念由创意激发技巧生成(而非仅维度组合)
  • 至少1个概念针对非典型用户角色或场景设计
质量把关: 生成后检查“伪新颖性” — 即看似不同但核心机制相同的概念。替换所有重复概念。
阶段1子Agent策略: 对于有明确子领域的问题,可生成2-3个并行子Agent独立生成概念批次,然后合并去重:
Agent 1: "针对[问题]使用维度[A,B,C,D]和激发技巧[X]生成4个概念。每个概念需符合下方定义的结构字段。[粘贴概念表格格式]"

Agent 2: "针对[问题]使用维度[E,F,G,H]和激发技巧[Y]+用户角色视角[Z]生成4个概念。每个概念需符合下方定义的结构字段。[粘贴概念表格格式]"
Agent返回结果后,在主对话中去重:合并结果,运行伪新颖性检测,合并重叠概念,填补多样性要求的缺口。
仅当问题领域足够宽泛(适用维度多)时才使用并行Agent。针对聚焦型问题,在主对话中生成所有概念。

Pass 2: STRESS TEST (evaluate range)

阶段2:压力测试(评估方案范围)

Present a compact comparison table of all concepts across these dimensions:
ConceptInteraction ModelUser EffortSystem IntelligenceRisk LevelNovelty (real/fake)Death ScenarioProvocation Source
Death Scenario: For each concept, state the single most likely way it fails. Be specific: who is affected, what goes wrong, when it happens. Not "users might not like it." See
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
Failure Mode Analysis section for quality examples.
Then answer:
  • Which 3 are most structurally promising and why?
  • Which 2 are fake novelty (same sandwich, different lettuce)?
  • Which 1 is the "dangerous" idea — the one that's either brilliant or terrible?
Ask the user: "Which concepts should I prototype? Pick 2-4, or say 'surprise me.'"
Subagent strategy: Run Pass 2 in the main conversation. It requires seeing all concepts together to compare and detect fake novelty. Do not parallelize.
呈现所有概念在以下维度的紧凑对比表格:
概念交互模型用户投入系统智能风险等级新颖性(真实/伪)失败场景激发来源
失败场景: 为每个概念说明最可能的失败方式。需具体:受影响人群、问题点、发生时机。不能是“用户可能不喜欢”这类表述。参考
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
中的失败模式分析章节获取优质示例。
然后回答:
  • 哪3个概念在结构上最具潜力?原因是什么?
  • 哪2个是伪新颖性方案(换汤不换药)?
  • 哪1个是“危险”想法 — 要么极具创新性要么彻底失败?
询问用户:“我应该为哪些概念构建原型?选择2-4个,或说‘给我惊喜’。”
子Agent策略: 在主对话中执行阶段2。需要将所有概念放在一起对比以检测伪新颖性,请勿并行处理。

Pass 2.5: ENRICH (deepen before prototyping)

阶段2.5:深化(原型构建前优化)

For the concepts the user selected (or the top 3 if "surprise me"):
Read
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
— use the Cross-Pollination, Day-in-the-Life Narratives, and Convergence Bridge sections.
  1. Cross-pollinate: From the shortlisted concepts, pick the 3 most structurally different. Attempt 2-3 hybrid combinations. If a hybrid is more interesting than the weakest shortlisted concept, propose the swap.
  2. Day-in-the-Life: For each shortlisted concept, write a 3-paragraph narrative: trigger (what situation brings the user here), interaction (the felt experience, not features), aftermath (what's different now). Quality gate: must sound like a diary entry, not a press release.
  3. Convergence bridge: Present the decision framework table (signal strength, feasibility to prototype, risk of skipping, team conviction) so the user knows which concepts are best suited for prototyping.
Ask the user: "Ready to prototype? Or want to explore any hybrids further?"
Subagent strategy: Spawn parallel subagents for narratives when 3+ concepts are shortlisted:
Agent 1: "Write a day-in-the-life narrative for [Concept A]. 3 paragraphs: 
         trigger (specific situation, time, emotional state), interaction 
         (felt experience, not features), aftermath (what changed). 
         Must sound like a diary entry, not marketing copy. 
         Concept details: [paste concept fields]"

Agent 2: "Write a day-in-the-life narrative for [Concept B]. [same format]"

Agent 3: "Write a day-in-the-life narrative for [Concept C]. [same format]"
Run cross-pollination and convergence bridge in the main conversation (requires seeing all concepts together).
针对用户选中的概念(或如果用户说“给我惊喜”则选排名前三的概念):
阅读
$CLAUDE_SKILL_DIR/references/concept-enrichment.md
— 使用交叉融合日常场景叙事收敛过渡章节内容。
  1. 交叉融合: 从入围概念中挑选3个结构差异最大的,尝试2-3种混合组合。如果混合方案比最弱的入围概念更有趣,建议替换。
  2. 日常场景叙事: 为每个入围概念撰写3段叙事:触发场景(用户遇到该情况的场景)、交互体验(真实感受而非功能)、后续影响(发生了哪些变化)。质量要求:需像日记条目而非新闻稿。
  3. 收敛过渡: 呈现决策框架表格(信号强度、原型可行性、遗漏风险、团队认可度),让用户了解哪些概念最适合原型构建。
询问用户:“准备好构建原型了吗?还是想进一步探索混合方案?”
子Agent策略: 当入围概念≥3个时,为场景叙事生成并行子Agent
Agent 1: "为[概念A]撰写日常场景叙事。3段:触发场景(具体情境、时间、情绪状态)、交互体验(真实感受而非功能)、后续影响(发生的变化)。需像日记条目而非营销文案。概念详情:[粘贴概念字段]"

Agent 2: "为[概念B]撰写日常场景叙事。[相同格式]"

Agent 3: "为[概念C]撰写日常场景叙事。[相同格式]"
交叉融合和收敛过渡在主对话中执行(需要将所有概念放在一起处理)。

Pass 3: PROTOTYPE (build interactive picker)

阶段3:原型构建(打造交互式选择器)

Read
$CLAUDE_SKILL_DIR/references/picker-template.md
for the full React template and scaffolding instructions.
App structure:
diverge-[problem-slug]/
├── index.html
├── package.json          (vite + react deps)
├── vite.config.js
└── src/
    ├── main.jsx          (ReactDOM render)
    ├── App.jsx           (DivergePicker root — concept nav, scene, dialkit)
    ├── concepts/         (one file per concept)
    │   ├── concept-1.jsx (exports: meta + controls + Scene component)
    │   ├── concept-2.jsx
    │   └── ...
    ├── components/
    │   ├── ConceptNav.jsx
    │   ├── ConceptMeta.jsx
    │   └── DialKitPanel.jsx
    └── styles.css        (minimal global reset + dark theme tokens)
Key rules:
  1. Each concept is a separate file in
    src/concepts/
    exporting
    { id, name, premise, mechanic, sacrifices, axes, controls, Scene }
  2. The
    Scene
    component receives
    { values }
    from DialKit and responds in real-time
  3. DialKit controls must reflect the concept's mechanism, not cosmetics — see control libraries in picker-template.md
  4. 3-6 controls per concept, each changing behavior not appearance
  5. After scaffolding, run
    npm install && npm run dev
    and give the user the local URL
DialKit control examples by concept type:
  • Agent-driven:
    autonomy level
    ,
    intervention frequency
    ,
    aggressiveness
  • Game-like:
    difficulty
    ,
    reward frequency
    ,
    time pressure
  • Ritual:
    session length
    ,
    reminder cadence
    ,
    reflection depth
  • Power-tool:
    information density
    ,
    shortcut depth
    ,
    batch size
File output: Save to workspace as
diverge-[problem-slug]/
and start the dev server
Subagent strategy for Pass 3: Spawn parallel subagents for concept scenes (the most parallelizable part of the entire workflow):
Agent 1: "Build the React Scene component for [Concept A]. 
         Export format: { id, name, premise, mechanic, sacrifices, axes, controls, Scene }
         The Scene component receives { values } and responds to DialKit controls in real-time.
         Concept details: [paste concept fields + selected controls]
         Follow the concept file format from picker-template.md. Self-contained, 
         inline styles, mock data, no external dependencies beyond React."

Agent 2: "Build the React Scene component for [Concept B]. [same format]"

Agent 3: "Build the React Scene component for [Concept C]. [same format]"
Build the scaffold (App.jsx, ConceptNav, ConceptMeta, DialKitPanel, styles, config) in the main conversation while concept agents run in parallel. Merge concept files when agents return, then run
npm install && npm run dev
.

阅读
$CLAUDE_SKILL_DIR/references/picker-template.md
获取完整React模板和搭建说明。
应用结构:
diverge-[问题缩写]/
├── index.html
├── package.json          (vite + react 依赖)
├── vite.config.js
└── src/
    ├── main.jsx          (ReactDOM 渲染入口)
    ├── App.jsx           (DivergePicker 根组件 — 概念导航、场景、DialKit)
    ├── concepts/         (每个概念对应一个文件)
    │   ├── concept-1.jsx (导出:meta + controls + Scene 组件)
    │   ├── concept-2.jsx
    │   └── ...
    ├── components/
    │   ├── ConceptNav.jsx
    │   ├── ConceptMeta.jsx
    │   └── DialKitPanel.jsx
    └── styles.css        (极简全局重置 + 深色主题变量)
关键规则:
  1. 每个概念对应
    src/concepts/
    中的一个独立文件,导出
    { id, name, premise, mechanic, sacrifices, axes, controls, Scene }
  2. Scene
    组件接收来自DialKit的
    { values }
    并实时响应
  3. DialKit控件必须反映概念的机制而非外观 — 参考picker-template.md中的控件库
  4. 每个概念设置3-6个控件,每个控件改变行为而非外观
  5. 搭建完成后,运行
    npm install && npm run dev
    并告知用户本地URL
按概念类型划分的DialKit控件示例:
  • Agent驱动型:
    autonomy level
    (自主程度)、
    intervention frequency
    (干预频率)、
    aggressiveness
    (激进程度)
  • 游戏化型:
    difficulty
    (难度)、
    reward frequency
    (奖励频率)、
    time pressure
    (时间压力)
  • 仪式化型:
    session length
    (会话时长)、
    reminder cadence
    (提醒节奏)、
    reflection depth
    (反思深度)
  • 专业工具型:
    information density
    (信息密度)、
    shortcut depth
    (快捷操作层级)、
    batch size
    (批量处理规模)
文件输出: 保存到工作区
diverge-[问题缩写]/
并启动开发服务器
阶段3子Agent策略:概念场景生成并行子Agent(整个工作流中最适合并行的部分):
Agent 1: "为[概念A]构建React Scene组件。导出格式:{ id, name, premise, mechanic, sacrifices, axes, controls, Scene }。Scene组件接收{ values }并实时响应DialKit控件。概念详情:[粘贴概念字段+选中的控件]。遵循picker-template.md中的概念文件格式。独立封装、内联样式、模拟数据,除React外无外部依赖。"

Agent 2: "为[概念B]构建React Scene组件。[相同格式]"

Agent 3: "为[概念C]构建React Scene组件。[相同格式]"
在子Agent运行概念场景的同时,在主对话中搭建基础框架(App.jsx、ConceptNav、ConceptMeta、DialKitPanel、样式、配置)。子Agent返回后合并概念文件,然后运行
npm install && npm run dev

Output Format

输出格式

undefined
undefined

Diverge: {PROBLEM}

Diverge: {问题}

Decomposition (Pass 0)

分解(阶段0)

  • JTBD: [3 statements]
  • Real constraint: [primary + secondary]
  • Problem dissolution: [statement]
  • Structural siblings: [2 domains + mechanisms]
  • JTBD: [3条陈述]
  • 真实约束: [主要+次要]
  • 问题消解: [陈述]
  • 结构同类方案: [2个领域+机制]

Banned directions (predictable solutions removed)

禁用方向(移除易想到的解决方案)

  • [5 banned solutions]
  • [5个禁用方案]

Provocation techniques selected

选中的激发技巧

  • [2-3 techniques from creative-provocations.md]
  • Persona lens: [selected persona/context]
  • [来自creative-provocations.md的2-3种技巧]
  • 用户角色视角: [选中的角色/场景]

Concepts generated: {N}

生成的概念数量: {N}

[concept tables]
[概念表格]

Stress test (Pass 2)

压力测试(阶段2)

[comparison table with death scenarios + picks]
[包含失败场景的对比表格+选择建议]

Enrichment (Pass 2.5)

深化(阶段2.5)

[cross-pollination results + narratives + convergence bridge]
[交叉融合结果+场景叙事+收敛过渡表格]

Prototype (Vite app)

原型(Vite应用)

Location:
diverge-[problem-slug]/
Dev server: [local URL] Concepts included: [list] DialKit controls per concept: [summary]

---
位置:
diverge-[问题缩写]/
开发服务器: [本地URL] 包含的概念: [列表] 每个概念的DialKit控件: [摘要]

---

Output Budget

输出篇幅限制

Keep output focused. More words does not mean more divergence.
PassBudget
Pass 0 (DECOMPOSE)150-250 words
Pass 1 (EXPLODE)8-10 concepts x ~100 words each = 800-1000 words
Pass 2 (STRESS TEST)Comparison table + 100-150 words commentary
Pass 2.5 (ENRICH)3 narratives x 200 words + decision table = ~750 words
Pass 3 (PROTOTYPE)Code output (no word budget)
Total text output before prototyping: ~2200 words. If you're writing more, you're explaining instead of diverging.
保持输出聚焦。字数多不代表发散性强。
阶段篇幅限制
阶段0(分解)150-250字
阶段1(拓展)8-10个概念×约100字=800-1000字
阶段2(压力测试)对比表格+100-150字评论
阶段2.5(深化)3篇场景叙事×200字+决策表格=约750字
阶段3(原型构建)代码输出(无字数限制)
原型构建前的总文本输出约2200字。如果超出,说明你在解释而非发散。

Technique Rotation

技巧轮换

Each run of /diverge should use a different combination of provocation techniques. If the user runs /diverge twice on related problems, avoid reusing the same techniques. Variety in technique produces variety in output.
Track which techniques were used and select different ones next time. The creative-provocations.md library has 7 techniques and the persona-lens.md has 8 personas, 6 time budgets, and 8 contexts. There are enough combinations to never repeat.

每次运行/diverge都应使用不同组合的激发技巧。如果用户针对相关问题两次运行/diverge,避免重复使用相同技巧。技巧的多样性会带来输出的多样性。
记录已使用的技巧,下次选择不同的。creative-provocations.md库有7种技巧,persona-lens.md有8种用户角色、6种时间预算和8种场景。组合足够多,无需重复。

Subagent Orchestration Summary

子Agent编排总结

PassStrategyWhy
Pass 0Main conversationShort, shapes all downstream work
Pass 1Parallel subagents (optional)When problem space is broad, split axis ranges across 2-3 agents, merge + deduplicate
Pass 2Main conversation (read concept-enrichment.md for failure mode examples)Requires holistic comparison across all concepts
Pass 2.5Parallel subagents for narrativesDay-in-the-life narratives are independent per concept
Pass 3Parallel subagents for Scene componentsEach concept's Scene is self-contained, merge into scaffold
When NOT to use subagents:
  • Problem is focused/narrow (fewer than 8 applicable axes) — generate everything in main
  • Only 2 concepts shortlisted — not worth the overhead
  • User wants a quick brainstorm without prototyping — skip Pass 3 entirely
Subagent briefing rules:
  • Always include the full concept table format in the prompt so agents produce consistent output
  • Always include the problem statement and decomposition from Pass 0
  • Always specify which axes/techniques the agent should use (prevent overlap between agents)
  • After agents return, always run the fake novelty detector in the main conversation

阶段策略原因
阶段0主对话内容简短,影响后续所有工作
阶段1并行子Agent(可选)问题领域宽泛时,将维度范围拆分给2-3个Agent,合并后去重
阶段2主对话(参考concept-enrichment.md中的失败模式示例)需要对所有概念进行整体对比
阶段2.5场景叙事使用并行子Agent日常场景叙事每个概念独立
阶段3场景组件使用并行子Agent每个概念的Scene独立封装,合并到基础框架中
不适用子Agent的情况:
  • 问题聚焦/狭窄(适用维度少于8个)— 所有内容在主对话中生成
  • 仅2个概念入围 — 不值得付出并行开销
  • 用户想要快速头脑风暴无需原型 — 跳过阶段2.5和3,仅输出概念+压力测试
子Agent提示规则:
  • 提示中始终包含完整的概念表格格式,确保Agent输出一致
  • 始终包含问题陈述和阶段0的分解结果
  • 始终指定Agent应使用的维度/技巧(防止Agent间重叠)
  • Agent返回后,始终在主对话中运行伪新颖性检测

Edge Cases

边缘情况处理

  • User provides a solution, not a problem — Reframe: "You've described a solution. The problem underneath seems to be [X]. I'll diverge on the problem, not the solution."
  • User asks for < 5 concepts — Still generate 8-10 internally, then surface only the requested count, selecting for maximum range.
  • User asks for "variations" — Redirect: "Variations optimize within one direction. Diverge generates different directions. Want me to diverge first, then you can pick one to create variations of?"
  • Problem is too broad — Ask one sharpening question. Do not ask more than one.
  • Problem is too narrow — Widen it one level before diverging. State what you widened and why.
  • User says "quick" or "just brainstorm" — Run Passes 0-2 only, skip 2.5 and 3. Output concepts + stress test without prototyping.
  • User says "surprise me" — Select top 3 by maximum structural range (most different from each other), proceed to Pass 2.5 and 3.
  • 用户提供解决方案而非问题 — 重构:“你描述了一个解决方案。背后的问题似乎是[X]。我将针对问题进行发散,而非解决方案。”
  • 用户要求生成少于5个概念 — 仍在内部生成8-10个,然后仅展示用户要求的数量,选择差异最大的方案。
  • 用户要求“变体” — 引导:“变体是在单一方向内优化。发散是生成不同方向。要不要先进行发散,然后你再选一个方向生成变体?”
  • 问题过于宽泛 — 提出一个明确化问题,最多一个。
  • 问题过于狭窄 — 先将问题拓宽一个层级再发散。说明拓宽的内容和原因。
  • 用户说“快速”或“只是头脑风暴” — 仅运行阶段0-2,跳过2.5和3。输出概念+压力测试,无需原型。
  • 用户说“给我惊喜” — 选择结构差异最大的前3个(彼此间差异最大),进入阶段2.5和3。

What This Skill Is NOT

本技能不具备的能力

  • Not a UI polish tool (use
    /design
    for that)
  • Not a variation generator (same concept, different styling)
  • Not a wireframing tool (prototypes test mechanics, not layouts)
  • Not converging — this skill explicitly avoids premature optimization
  • Not exhaustive — it selects from technique libraries, not applies all of them
  • 不是UI优化工具(使用
    /design
  • 不是变体生成器(同一概念,不同风格)
  • 不是线框工具(原型测试机制,而非布局)
  • 不做收敛 — 本技能明确避免过早优化
  • 不追求穷尽 — 从技巧库中选择而非全部应用