Cursor学习练手项目提示词:让输出更像真人经验
想避免Cursor生成的提示词像模板一样生硬?关键在于不要罗列功能清单。融入业务上下文、技术选型的依据,以及实际排雷过程中的反思——这才是真正的实操指导。
具体做法归结为三个要素:角色、场景、约束。三者结合,效果立竿见影。
通过“角色+场景+约束”三要素重构提示词
第一步,定义Cursor的角色。避免使用“你是一个前端工程师”这类泛泛表述。应改为“你是一位带过三个前端实习团队的资深工程师,近期刚用Next.js 14重构了公司内部工具平台”。角色越具体,语气和词汇越接近真人,生成的提示词个性越鲜明。
第二步,绑定真实的开发场景。例如:“现在需要给新实习生设计一个练手项目——一个带权限控制的看板应用,目标是在两周内让他们独立跑通从登录、创建任务、拖拽排序到导出PDF的完整流程。”场景越贴近实际工作流,指导价值越大。
第三步,设置硬性约束。例如:“禁止使用任何UI组件库(如Ant Design、Mantine),所有样式手写CSS;后端接口用Mock Service Worker模拟,但需写出真实的请求拦截逻辑;每个功能模块必须附带一句简短说明:为什么这里不用useEffect而用useLayoutEffect。”
融入实际开发中的权衡决策
方法一:在功能描述中嵌入取舍理由。不要只写“实现用户登录”。应改写为:“采用JWT实现登录(不使用OAuth,因为实习生尚未接触第三方授权流程;也不用Session Cookie,避免混淆服务端状态与客户端存储)。”这比单纯罗列功能更有价值。
方法二:主动揭示常见错误路径。例如在“添加任务”功能后补充:“注意:如果直接将input值通过useState存入tasks数组,新增任务后输入框无法清空——这是React中state异步更新和表单受控模式不匹配导致的,应使用useRef缓存input DOM并手动清空。”这不仅教学,还能帮实习生节省半天调试时间。
方法三:用括号补充真实协作细节。“导出PDF功能使用jspdf实现(不用html2canvas,它在Mac Safari下会截断长列表;也不用Puppeteer,本地开发环境安装Chromium太重)。”一句话,提前填平技术选型的坑。

强制输出带“人味”的结构
第一步:要求Cursor先撰写一段“我带实习生做这个项目时的真实反馈”。例如:“第一周总有同学卡在拖拽排序的onDragEnd事件监听上——不是API不会用,而是没意识到浏览器默认触发dragstart、dragover、drop三个事件,中间缺少一个preventDefault就会导致整个拖拽失效。”这类来自一线的踩坑记录,才是最珍贵的“人味”。
第二步:每个功能模块开头增加一句“我当时怎么教他们的”。例如:“教拖拽排序时,我先让他们删掉所有CSS,只保留border:1px solid red,确认DOM顺序变化后再添加动画——否则他们总盯着过渡效果调试,反而忽略了数据同步的本质。”
第三步:结尾不写干巴巴的“总结”,改写为“下次迭代建议”。“如果实习生提前完成,可以让他们将PDF导出改为支持多页自动分页(这时会暴露出jspdf对flex布局兼容性差的问题,正好带他们阅读源码补丁)。”既提供路径,也设置挑战——这才是真正的项目带教。
归根结底,让提示词具备“人味”并不困难:少写功能清单,多写踩坑笔记。