Loading...
Loading...
Compare original and translation side by side
AskUserQuestion with questions like:
- "In one sentence, what problem are you trying to solve?"
- "Who will use this? (End users, developers, internal team, etc.)"
- "Is this a new thing or improving something existing?"AskUserQuestion 示例问题:
- "用一句话描述你想要解决的问题是什么?"
- "谁会使用这个产品?(终端用户、开发者、内部团队等)"
- "这是全新产品还是对现有产品的改进?"AskUserQuestion(
question: "You mentioned wanting real-time updates. There are several approaches with different tradeoffs. Would you like me to research this before we continue?",
options: [
{label: "Yes, research it", description: "I'll investigate options and explain the tradeoffs"},
{label: "No, I know what I want", description: "Skip research, I'll specify the approach"},
{label: "Tell me briefly", description: "Give me a quick overview without deep research"}
]
)User: "I want real-time updates"
You: [Research WebSockets vs SSE vs Polling vs WebRTC]
You: "I researched real-time options. Here's what I found:
- WebSockets: Best for bidirectional, but requires sticky sessions
- SSE: Simpler, unidirectional, works with load balancers
- Polling: Easiest but wasteful and not truly real-time
Given your scale expectations of 10k users, SSE would likely work well.
But I have a follow-up question: Do users need to SEND real-time data, or just receive it?"AskUserQuestion(
question: "你提到想要实时更新。有几种不同的实现方案,各有优劣。是否需要我先调研这个问题再继续?",
options: [
{label: "是,进行调研", description: "我会调研不同选项并解释权衡因素"},
{label: "不需要,我明确需求", description: "跳过调研,我会指定实现方案"},
{label: "简要说明", description: "快速概述,无需深度调研"}
]
)用户: "我想要实时更新"
你: [调研 WebSockets vs SSE vs 轮询 vs WebRTC]
你: "我调研了实时更新的实现方案,结果如下:
- WebSockets:最适合双向通信,但需要粘性会话
- SSE:实现更简单,单向通信,兼容负载均衡器
- 轮询:最容易实现,但资源浪费大,并非真正的实时
考虑到你预计的1万用户规模,SSE可能是最合适的方案。
我还有一个后续问题:用户需要发送实时数据,还是仅接收实时数据?"AskUserQuestion(
question: "I noticed a potential conflict: You want [X] but also [Y]. These typically don't work together because [reason]. Which is more important?",
options: [
{label: "Prioritize X", description: "[What you lose]"},
{label: "Prioritize Y", description: "[What you lose]"},
{label: "Explore alternatives", description: "Research ways to get both"}
]
)AskUserQuestion(
question: "我发现一个潜在冲突:你想要[X]同时也想要[Y]。这两者通常无法共存,原因是[具体理由]。哪个需求更重要?",
options: [
{label: "优先实现X", description: "[会失去的功能]"},
{label: "优先实现Y", description: "[会失去的功能]"},
{label: "探索替代方案", description: "调研同时实现两者的方法"}
]
)undefinedundefined
If anything is missing, GO BACK and ask more questions.
如果有任何缺失,返回并补充提问。"Before I write the spec, let me confirm my understanding:
You're building [X] for [users] to solve [problem].
The core experience is [journey].
Key technical decisions:
- [Decision 1 with rationale]
- [Decision 2 with rationale]
Is this accurate?"thoughts/shared/specs/YYYY-MM-DD-<name>.mdundefined"在撰写规格说明前,我先确认一下理解是否正确:
你正在为[用户群体]开发[产品X],以解决[问题]。
核心用户体验是[用户旅程]。
关键技术决策:
- [决策1及理由]
- [决策2及理由]
以上是否准确?"thoughts/shared/specs/YYYY-MM-DD-<name>.mdundefinedundefinedundefinedoptions: [
{label: "Option A", description: "Clear choice with implications"},
{label: "Option B", description: "Alternative with different tradeoffs"},
{label: "I'm not sure", description: "Let's explore this more"},
{label: "Research this", description: "I'll investigate and come back"}
]options: [
{label: "选项A", description: "明确选择及影响"},
{label: "选项B", description: "替代方案及不同权衡"},
{label: "我不确定", description: "我们进一步探索"},
{label: "调研这个问题", description: "我会调研后返回结果"}
]AskUserQuestion(
question: "Which of these capabilities do you need?",
multiSelect: true,
options: [...]
)AskUserQuestion(
question: "你需要以下哪些功能?",
multiSelect: true,
options: [...]
)| Signal | What to do |
|---|---|
| "I think..." or "Maybe..." | Probe deeper, offer research |
| "That sounds good" (to your suggestion) | Verify they understand implications |
| "Just simple/basic X" | Challenge - define what simple means |
| Technology buzzwords without context | Ask what they think it does |
| Conflicting requirements | Surface the conflict explicitly |
| "Whatever is standard" | Explain there's no universal standard |
| Long pauses / short answers | They might be overwhelmed - simplify |
| 信号 | 应对方式 |
|---|---|
| "我觉得..." 或 "也许..." | 深入提问,主动提出调研 |
| 对你的建议回复"听起来不错" | 确认用户理解背后的影响 |
| "只要简单/基础的X就行" | 追问 - 明确"简单"的定义 |
| 脱离上下文使用技术术语 | 询问用户对该术语的理解 |
| 需求冲突 | 明确指出冲突 |
| "用标准方案就行" | 解释不存在通用标准 |
| 长时间停顿 / 简短回答 | 用户可能不知所措 - 简化问题 |
You: "What problem are you trying to solve?"
User: "I want to build an app where people can share recipes"
You: [AskUserQuestion: "Who specifically will use this? What's their cooking level?"]
User: "Home cooks, beginners to intermediate"
You: [AskUserQuestion: "Walk me through: someone opens your app for the first time. What do they see? What do they do first?"]
User: "Um, I guess they see recipes? And they can search?"
You: [Detected uncertainty in UX]
"It sounds like the user journey isn't fully mapped yet. Let me help with that.
[AskUserQuestion: 'What's the ONE thing a user should accomplish in their first 2 minutes?'
Options:
- Find and save a recipe
- Create their first recipe
- Browse trending recipes
- Set up their taste preferences
- Research this (I'll look at successful recipe apps)]"
User: "Research this - what do successful apps do?"
You: [Spawn research agent or WebSearch]
[Returns with findings from AllRecipes, Tasty, Paprika, etc.]
You: "I researched successful recipe apps. Here's what I found:
- Most start with a quick 'taste quiz' to personalize
- The core action is 'save recipe to collection'
- Discovery is usually browse-first, search-second
Given this, let's refine: [AskUserQuestion with informed options]"
[Continue until all categories are covered with sufficient depth]你: "你想要解决的问题是什么?"
用户: "我想做一个人们可以分享食谱的应用"
你: [AskUserQuestion: "具体是哪些用户会使用?他们的烹饪水平如何?"]
用户: "家庭厨师,从新手到中级水平"
你: [AskUserQuestion: "请描述用户首次打开应用的流程:他们会看到什么?首先会做什么?"]
用户: "嗯,我猜他们会看到食谱?然后可以搜索?"
你: [识别到用户体验的不确定性]
"看起来用户旅程还未完全梳理清楚。我来帮你分析一下。
[AskUserQuestion: '用户在最初2分钟内必须完成的核心动作是什么?'
选项:
- 找到并保存食谱
- 创建自己的第一个食谱
- 浏览热门食谱
- 设置口味偏好
- 调研这个问题(我会参考成功的食谱应用)]"
用户: "调研这个问题 - 看看成功的应用是怎么做的?"
你: [调用调研 agent 或 WebSearch]
[返回从 AllRecipes、Tasty、Paprika 等应用的调研结果]
你: "我调研了成功的食谱应用,发现:
- 大多数应用以快速的'口味测试'开始,实现个性化推荐
- 核心动作是'将食谱保存到收藏夹'
- 通常先浏览再搜索
基于此,我们来细化需求:[提出基于调研的选项式问题]"
[继续推进,直到所有相关类别都覆盖足够深度]AskUserQuestion(
question: "Spec created at thoughts/shared/specs/YYYY-MM-DD-<name>.md. How would you like to proceed?",
options: [
{label: "Start implementation now", description: "I'll begin implementing the spec in this session"},
{label: "Review spec first", description: "Read the spec and come back when ready"},
{label: "Plan implementation", description: "Create a detailed implementation plan with tasks"},
{label: "Done for now", description: "Save the spec, I'll implement later"}
]
)Say: "To implement this spec, say: 'implement the <name> spec'
This will:
1. Activate the spec context (drift prevention enabled)
2. Inject requirements before each edit
3. Checkpoint every 5 edits for alignment
4. Validate acceptance criteria before finishing"Spawn plan-agent or invoke /create_plan with the spec pathSay: "Spec saved. When ready, say 'implement the <spec-name> spec' to begin.
The spec includes:
- Problem statement
- User journeys
- Technical requirements
- Acceptance criteria
All of these will be used for drift prevention during implementation."AskUserQuestion(
question: "规格说明已保存至 thoughts/shared/specs/YYYY-MM-DD-<name>.md。接下来你想如何推进?",
options: [
{label: "立即开始开发", description: "我会在本次会话中开始实现规格说明"},
{label: "先评审规格说明", description: "我会先阅读规格说明,准备好后再继续"},
{label: "制定开发计划", description: "创建包含任务的详细开发计划"},
{label: "暂时结束", description: "保存规格说明,我之后再开发"}
]
)回复:"要实现该规格说明,请说:'implement the <name> spec'
这会:
1. 激活规格说明上下文(启用偏差预防)
2. 在每次编辑前注入需求
3. 每5次编辑后检查对齐情况
4. 完成前验证验收标准"调用 plan-agent 或使用 /create_plan 并传入规格说明路径回复:"规格说明已保存。准备好后,请说 'implement the <spec-name> spec' 即可开始开发。
规格说明包含:
- 问题陈述
- 用户旅程
- 技术需求
- 验收标准
以上内容将在开发过程中用于防止需求偏差。"