problem-definition(问题定义) 是做什么的?
帮助用户在跳入解决方案之前清晰定义问题。适用于:界定新功能范围、验证产品创意、难以清晰表达构建内容,或陷入新技术“追新陷阱”时使用。
为什么使用问题定义技能?
- 减少返工:在编码前明确“为什么”和“为谁”而建。
- 聚焦价值:确保你最聪明的时间花在重要问题上。
- 避免追新陷阱:将对话从“我们能做什么?”引导至“我们需要解决什么?”
- 通用化:适用于从产品构思到调试会话的任何场景。
如何触发该技能
你可以随时主动请求该技能,但推荐在出现以下信号时使用:
- 听到模糊的陈述,如“我们需要一个像X一样的系统”
- 在编写代码前讨论功能映射
- 反复重构相同代码块
- 难以解释你正在解决什么
问题定义原则
- 从上下文开始:获取项目背景、用户角色和业务约束
- 用5个为什么:追问深层原因,直至触及真实问题
- 用用户的语言:描述问题,保留用户的实际用词
- 定义成功标准:如何衡量解决效果?
- 保持开放:避免过早锚定特定解决方案
示例对话片段
用户: 我想给这个应用添加一个建议引擎。 技能: 了解。让我们退一步,定义问题。为什么用户需要建议?他们现在使用什么替代方案? 用户: 用户花费太多时间滚动浏览目录。 技能: 明白了。所以核心问题是:"用户需要一种更快的方式发现相关内容"。这对吗?让我们列出约束条件:移动端优先、不到300毫秒延迟、离线支持。
产出物
一个清晰、简洁的问题陈述,包含:
- 用户角色
- 期望 vs 当前行为
- 失败模式的影响
- 成功标准(可衡量的KPI)
兼容平台
- 所有AI编码助手(Claude Code、Cursor、Codex、Copilot等)
- 以纯文本或无结构Markdown形式使用,无需特殊集成
许可证
MIT — 可自由使用和修改。