Appearance
任务描述模板
任务描述写得好不好,直接决定 AI 生成结果的质量。这页给几个具体模板,针对 Vibe Coding 里最常见的几类任务场景。
为什么任务描述需要刻意练习
AI 不会主动帮你澄清需求。如果你说"帮我优化这段代码",它会给你一个基于自己理解的优化版本,不一定是你想要的那种优化。描述越模糊,猜对的概率越低,修改的次数越多。
好的任务描述不是长,而是信息密度高。
通用结构
[我想实现的功能或目标]
[现有的上下文或约束]
[我不想要的东西(可选)]
[成功的标志是什么(可选)]这个结构不需要照搬,但养成"先说目标,再说约束"的习惯,结果会稳定很多。
场景模板
新建功能
帮我给这个用户管理系统加一个"批量导出"功能。
要求:
- 可以导出为 CSV 格式
- 导出字段包括:用户名、邮箱、注册时间、最后登录时间
- 文件名格式:users-{日期}.csv
- 数据量可能很大,不能一次性加载到内存里
现有代码用 Node.js + Express,数据库是 PostgreSQL,已经有 User model。关键点:说清楚目标、格式约束、技术栈限制,不要让 AI 猜。
修复问题
登录接口有时候会返回 500 错误,不是每次都能复现。
错误信息是:
TypeError: Cannot read properties of null (reading 'id')
at UserController.login (controllers/user.js:45)
我的猜测是用户不存在时 findOne 返回 null,但后续代码没有处理这个情况。
帮我修复这个问题,同时把错误处理统一一下。关键点:贴上完整错误信息,说明复现条件,分享你的猜测(即使不确定),这样 AI 的定位会快很多。
重构代码
帮我重构 @controllers/order.js 这个文件。
现在的问题:
- 一个函数超过 200 行
- 数据库操作、业务逻辑、响应处理全混在一起
- 没有错误处理
目标:
- 把业务逻辑抽到 service 层
- 数据库操作封装到 repository 层
- 每个函数不超过 50 行
不要改接口签名,路由文件我不想动。关键点:明确说清楚现在哪里不对、目标是什么、哪些东西不能动。
实现一个算法或工具函数
帮我写一个函数,输入一个文章列表(每篇有 title、content、tags),
输出按相关度排序的搜索结果。
搜索规则:
- title 匹配权重是 content 匹配的 3 倍
- tags 完全匹配加 5 分
- 不需要用外部库,用原生 JS 实现
- 要有单元测试,覆盖至少:命中 title、命中 tags、无结果三种情况
返回类型:{ results: Article[], total: number }关键点:给出输入输出格式,说明权重规则,指定测试要求。
容易犯的描述错误
过于技术化
❌ 把这个 useEffect 改成用 React Query 的 useQuery,添加 staleTime 和 cacheTime 配置
✅ 帮我把这个数据获取逻辑改成 React Query 管理,
数据 5 分钟内不重新请求,缓存保留 30 分钟前者要求你先知道 React Query 的 API,后者让 AI 去对应具体参数。
没有约束
❌ 帮我优化这个查询
✅ 这个查询现在每次要 2 秒,帮我把它优化到 200ms 以内,
不能改数据库 schema,可以加索引没有约束时,AI 不知道什么叫"优化成功"。
描述行为而非结果
❌ 在数组里遍历每个元素,然后根据条件过滤,再格式化成对象
✅ 输入:[{id: 1, status: 'active', name: 'foo'}]
输出:{1: 'foo'}(只保留 status 为 active 的,key 是 id,value 是 name)给示例永远比描述步骤清晰。
迭代的节奏
第一次描述不可能完美,也不需要。更好的方式是:
- 写一个粗略的描述,先让 AI 给出方向
- 看它理解对了吗,然后修正具体的偏差
- 接受部分结果,继续描述下一步
把任务描述当成一次对话的开始,不是一份需求文档。
下一页是 错误修复对话技巧,专门讲出错之后怎么和 AI 配合快速定位问题。