第二阶段:提示词与任务拆解
第 7 篇:如何把一个模糊想法变成可执行开发需求
想法不是需求。想法只说明你大概想做什么,需求要说明给谁用、做什么、不做什么、怎样算完成。
你不需要先懂什么
你不需要懂产品经理方法,也不需要会写正式文档。
我们只学一张简单需求卡。
从一句话开始
比如:
text
我想做一个待办工具。
这是一个想法,不是开发需求。
它还缺很多信息。
我们可以一步一步补齐。
需求卡示例
text
项目名称:
个人待办事项工具
目标用户:
每天需要记录任务的个人用户。
核心场景:
早上记录今天要做的事,完成后打勾,晚上查看完成情况。
第一版必须做:
1. 新增任务
2. 标记完成
3. 删除任务
4. 刷新后数据保留
第一版暂时不做:
1. 登录
2. 团队协作
3. 手机提醒
4. 日历视图
验收标准:
1. 可以输入任务并添加到列表
2. 点击任务后可以切换完成状态
3. 点击删除后任务从列表消失
4. 刷新页面后任务仍然存在

(配图说明:一张"需求卡片图"。卡片分为项目名称、目标用户、核心场景、第一版必须做、暂时不做、验收标准六个区域。)
#mermaid-svg-FZP2qh772c2aHcC8{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-FZP2qh772c2aHcC8 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-FZP2qh772c2aHcC8 .error-icon{fill:#552222;}#mermaid-svg-FZP2qh772c2aHcC8 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-FZP2qh772c2aHcC8 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-FZP2qh772c2aHcC8 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-FZP2qh772c2aHcC8 .marker.cross{stroke:#333333;}#mermaid-svg-FZP2qh772c2aHcC8 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-FZP2qh772c2aHcC8 p{margin:0;}#mermaid-svg-FZP2qh772c2aHcC8 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-FZP2qh772c2aHcC8 .cluster-label text{fill:#333;}#mermaid-svg-FZP2qh772c2aHcC8 .cluster-label span{color:#333;}#mermaid-svg-FZP2qh772c2aHcC8 .cluster-label span p{background-color:transparent;}#mermaid-svg-FZP2qh772c2aHcC8 .label text,#mermaid-svg-FZP2qh772c2aHcC8 span{fill:#333;color:#333;}#mermaid-svg-FZP2qh772c2aHcC8 .node rect,#mermaid-svg-FZP2qh772c2aHcC8 .node circle,#mermaid-svg-FZP2qh772c2aHcC8 .node ellipse,#mermaid-svg-FZP2qh772c2aHcC8 .node polygon,#mermaid-svg-FZP2qh772c2aHcC8 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-FZP2qh772c2aHcC8 .rough-node .label text,#mermaid-svg-FZP2qh772c2aHcC8 .node .label text,#mermaid-svg-FZP2qh772c2aHcC8 .image-shape .label,#mermaid-svg-FZP2qh772c2aHcC8 .icon-shape .label{text-anchor:middle;}#mermaid-svg-FZP2qh772c2aHcC8 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-FZP2qh772c2aHcC8 .rough-node .label,#mermaid-svg-FZP2qh772c2aHcC8 .node .label,#mermaid-svg-FZP2qh772c2aHcC8 .image-shape .label,#mermaid-svg-FZP2qh772c2aHcC8 .icon-shape .label{text-align:center;}#mermaid-svg-FZP2qh772c2aHcC8 .node.clickable{cursor:pointer;}#mermaid-svg-FZP2qh772c2aHcC8 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-FZP2qh772c2aHcC8 .arrowheadPath{fill:#333333;}#mermaid-svg-FZP2qh772c2aHcC8 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-FZP2qh772c2aHcC8 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-FZP2qh772c2aHcC8 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FZP2qh772c2aHcC8 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-FZP2qh772c2aHcC8 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FZP2qh772c2aHcC8 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-FZP2qh772c2aHcC8 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-FZP2qh772c2aHcC8 .cluster text{fill:#333;}#mermaid-svg-FZP2qh772c2aHcC8 .cluster span{color:#333;}#mermaid-svg-FZP2qh772c2aHcC8 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-FZP2qh772c2aHcC8 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-FZP2qh772c2aHcC8 rect.text{fill:none;stroke-width:0;}#mermaid-svg-FZP2qh772c2aHcC8 .icon-shape,#mermaid-svg-FZP2qh772c2aHcC8 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-FZP2qh772c2aHcC8 .icon-shape p,#mermaid-svg-FZP2qh772c2aHcC8 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-FZP2qh772c2aHcC8 .icon-shape .label rect,#mermaid-svg-FZP2qh772c2aHcC8 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-FZP2qh772c2aHcC8 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-FZP2qh772c2aHcC8 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-FZP2qh772c2aHcC8 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 模糊想法
目标用户
核心场景
第一版功能
暂时不做
验收标准
开发需求
为什么要写"暂时不做"
因为 AI 很容易把功能做大。
你不说"不做登录",它可能觉得登录很合理。
你不说"不做提醒",它可能顺手设计提醒功能。
对初学者来说,这些功能会显著增加复杂度。
写"暂时不做",不是放弃这些功能,而是先保护第一版。
可复用提示词
text
我有一个产品想法:【填写想法】。
请帮我整理成一张适合 AI 编程的需求卡,包含:
1. 项目名称
2. 目标用户
3. 核心场景
4. 第一版必须做的功能
5. 第一版暂时不做的功能
6. 验收标准
7. 可以交给 Codex 的开发任务说明
读完就做
把自己的一个想法整理成需求卡。不要超过一页,越清楚越好。
本文小结
- 想法不能直接等于开发需求。
- 需求要包含用户、场景、功能范围和验收标准。
- "暂时不做"可以防止项目变复杂。
- 需求卡是初学者最实用的开发前准备。
下一篇,我们把需求卡扩展成一份轻量 PRD。