想让 Codex 修一个 Bug,却多了一堆无关改动;想优化代码,改完反而更难读。把任务、范围和想要的结果一起说清楚,才能更容易检查它有没有做好。
下次不知道怎么问,就来这里复制。 下面 7 个常用模板已经写好任务边界和处理要求。选对应场景,复制整段,只替换一处【】;需要多项工作一起完成,就用最后的组合模板。
不限定模型,任何模型都可以使用这些提示词。 文中以 Codex 为例;自行读取项目、修改文件和运行检查,需要所用编程助手具备相应工具。没有项目访问能力时,提供必要的代码、日志等材料即可。
模板不限定语言或框架,由 Codex 自行查看项目。每次只处理指定任务,使用简单、容易读懂的写法;中文注释解释对应代码是什么意思、有什么作用。
| 你想做什么 | 复制哪一条 |
|---|---|
| 修好报错或异常 | 01 · 修 Bug |
| 增加功能,或继续调整刚做好的功能 | 02 · 加功能、改功能 |
| 简化代码、提升性能,或两者一起做 | 03 · 优化代码 |
| 修改已有功能的规则和操作方式 | 04 · 改已有功能 |
| 按设计图还原页面 | 05 · 还原设计稿 |
| 修好启动、编译或打包失败 | 06 · 修启动和构建问题 |
| 给现有功能接上真实接口 | 07 · 对接接口 |
| 同一个需求需要一起完成多项工作 | 组合使用 · 写清共同目标 |
一、常用独立模板
01|修 Bug:贴上报错,只解决这一个问题
使用场景:程序报错、点了没反应、页面进不去,或者结果明显不对。优先贴报错;没有报错,就描述操作和异常结果。
复制这段:
请在当前项目中定位并修复这一个 Bug。
报错或异常:【
粘贴完整报错;没有报错时,用一段话说明在哪个功能遇到问题、做了什么操作、实际出现了什么异常】自行查找相关文件、执行流程和最近改动,确认对应语言、版本及运行方式。能从项目查到的信息直接查,不让我重复填写。
尝试复现,根据实际代码、报错和可访问的日志确认原因,再做最小修复。不通过忽略错误、关闭检查或返回固定结果掩盖问题。
只修改修复这个 Bug 必需的地方,保留其他正常行为。不顺手重构、加功能、优化其他模块或升级无关依赖。
用最直接、容易看懂的写法修改。复杂链式调用和嵌套表达式拆成清楚的步骤,变量名说明用途,不增加多余封装。新增或修改的代码配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由;使用当前语言支持的注释语法。
通过原来的操作或直接相关的现有检查验证,不新增或改写测试代码,不生成脚本、报告或文档文件。无法验证时说明限制。
只有项目里找不到、又影响定位的关键信息才向我追问。最后用白话说明原因、修改位置和验证结果。完成即停止,不自动提交、推送、部署或处理其他问题。
02|加功能、改功能:把想要的效果说清楚
使用场景:加搜索、筛选、导出等新功能,或继续调整刚做好的功能。这一条适合描述整体需求;专门调整旧功能规则,可以使用第 4 条。
复制这段:
请在当前项目中新增或修改下面指定的功能。
功能要求:【
用一段话说明要新增或调整的能力、用户会怎样使用,以及完成后希望得到什么结果】自行找到相关实现和项目里已有的类似功能,确认语言、版本、框架及工具。需要新增的能力直接补上,已有的功能在原实现上调整,不重复创建同样的功能。
根据我描述的操作和结果整理完成标准,直接落实。这项需求同时包含新增和修改时一并完成;只有项目无法说明、又影响最终行为的关键规则才向我确认。
只做本次需求明确涉及的改动,保留没有要求改变的行为。处理直接相关的正常输入、空结果和失败情况,不扩展额外功能、不重构其他模块、不引入多余依赖。
优先使用简单、直观的实现。复杂操作拆开写,变量名容易理解,避免长链式调用、层层嵌套和多余抽象。新增或修改的代码配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由;采用当前语言的合法注释语法。
用现有检查或实际操作验证,不新增测试代码、演示项目、辅助脚本或文档。格式不支持注释的配置在回复中解释,不写入非法注释。
最后简要说明功能如何使用、改了哪里、哪些操作已验证。完成即停止,不自动提交、推送、部署或继续处理其他事项。
03|优化代码:可以简化写法,也可以提升性能
使用场景:代码重复、处理太绕、运行慢、内存占用高或存在重复请求。可以只要求简化、只要求提速,也可以明确要求两者一起做。
复制这段:
请优化当前项目中指定部分的代码和运行表现。
优化目标:【
说明要优化的功能或处理过程,哪里难读、重复、运行慢或占用资源多,以及希望改善什么、保留什么行为】自行定位目标实现、调用方和已有约定,识别语言、版本及工具链。先理解现有行为,再按我写的目标处理:简化写法、提升性能,或两者一起做。
简化时,减少重复和不必要的绕行,把复杂链式调用、嵌套表达式及多层判断拆成独立步骤,使用清楚的中间变量或简单循环。不要为了少写几行牺牲可读性,不增加多余封装或设计模式。
性能优化时,先用现有能力复现和测量,确认真正的瓶颈,再处理多余计算、重复访问、资源占用或其他已确认的问题。不凭感觉加缓存、加并发或扩容。
只调整指定部分及优化必需的关联代码,保留原有结果、错误处理和对外行为,核对执行顺序与副作用的约束。不顺手修其他 Bug、加功能、整理其他模块或升级无关依赖。
修改以最简单、容易理解的实现为准。新增或修改的代码配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由;采用当前语言支持的语法。
用原有操作、现有检查和测量工具验证,不新增测试代码、压测脚本、监控或报告文件。性能对比使用相同操作、数据规模和测量口径,没测量的改善明确标为未验证。
最后用白话说明哪里变简单了、确认了什么瓶颈、实际改善了多少,以及是否保持原有行为。完成即停止,不自动提交、推送、部署或继续处理其他事项。
04|改已有功能:说清现在怎样、希望改成怎样
使用场景:调整旧功能的操作方式、显示内容、校验规则或默认行为。适合功能已经完成,只需要改其中一部分的情况。
复制这段:
请修改当前项目中这项已经存在的功能。
修改要求:【
说明要调整的已有功能、现在怎样运行、希望改成什么效果,以及哪些原有行为需要保留】自行找到相关实现、调用方和现有规则,识别对应语言、版本及工具。先确认现在的行为,再根据我的要求确定哪些行为需要改变、哪些需要保留。
在原实现上做最小修改,不重新做一套功能。若相关调用方也必须调整,只修改保证这项功能正常工作所必需的地方。
核对这次调整直接涉及的输入、操作顺序、默认状态和错误处理,避免改了一个操作却影响没有要求改变的行为。旧数据或已有配置会受影响时,先说明并确认关键业务规则,不自行扩大调整。
写法简单、分步明确,复杂处理拆开写。新增或修改的代码配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由;使用对应语言的合法语法。
不顺手重构、增加附加功能、优化其他部分或升级依赖,不新增测试代码、脚本和文档。用原有操作或直接相关的现有检查,分别核对修改后的行为和必须保留的行为。
最后说明现在怎样使用、改了哪里、哪些原有行为已确认保留。无法确认的部分如实说明。完成即停止,不自动提交、推送、部署或处理其他问题。
05|还原设计稿:按图调整,保留原有功能
使用场景:已有设计图,需要调整页面的布局、颜色、字体和间距,保留页面原来的业务功能。
复制这段:
请根据我提供的设计图还原当前项目的页面。
页面要求:【
说明需要还原的页面或界面,提供对应设计图或设计链接,并写清重点还原的部分和需要保留的功能】自行找到目标页面、组件和样式,按项目实际语言、框架及版本实现。根据设计图核对布局、尺寸、间距、字体、颜色和元素状态,复用现有能力。
只修改还原这个页面必需的界面内容,保留交互、数据处理和接口行为。不改其他页面,不自行增加设计图之外的功能或装饰。
写法简单、分步清楚;新增或修改的布局、样式及逻辑配合法的通俗中文注释,说明对应代码是什么意思、有什么作用,不记录修改过程或修改理由。
用现有预览方式核对,不新增测试代码、演示页面或额外文档。图中无法确认的关键要求再向我追问。最后说明还原情况、保留的功能和仍有差异的地方,完成即停止,不自动提交、推送或部署。
06|修启动和构建问题:贴上日志,修好这一次失败
使用场景:项目启动不了、编译或打包失败、安装依赖报错,或者本地正常但构建环境失败。
复制这段:
请解决当前项目的这一次启动、编译或构建失败。
失败信息:【
粘贴失败时的完整日志,并简要说明是哪一步失败;不同环境表现不一致时,补充具体差异现象】自行识别项目语言、版本、运行或编译工具、依赖管理和构建方式,找到原来的执行入口和配置。按当前操作系统及项目实际工具使用命令,不套用其他语言的处理方式。
结合报错检查直接相关的代码、配置、依赖和最近改动,确认失败发生在哪一步。涉及本地与构建环境差异时,只对比影响这次失败的版本和配置。
先确定原因,再做最小修复。只有确实与失败有关的依赖或配置才调整,不默认删除依赖记录、全量升级、重装环境或重整构建流程。
如需修改代码或已有脚本,采用简单、清楚的分步写法,配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由。配置不支持注释时在回复中解释。
仅重跑原失败命令或对应构建任务,核对失败是否消失、目标是否能正常启动或构建。不新增测试代码、辅助脚本或文档,不顺手修改业务功能。
若缺少环境或无法访问失败日志,说明已定位到哪一步,只索取必需信息。最后说明原因、修改位置、实际执行结果及未验证的部分,完成即停止,不自动提交、推送或部署。
07|对接接口:把已有功能接到真实数据
使用场景:功能和接口已经存在,需要完成数据读取或提交,并处理调用成功、空数据及失败的情况。
复制这段:
请给当前项目中指定的现有功能对接真实接口。
对接要求:【
说明需要对接接口的功能、要读取或提交什么数据,以及收到结果后希望怎样使用或处理】自行找到目标功能、现有接口说明、服务实现和已有调用方式,识别语言、版本及实际通信约定。先确认调用地址或入口、输入条件、返回内容和错误处理,复用项目现有的认证和请求能力。
按真实接口接入,核对参数、数据类型、返回字段及页面或调用方使用的结构。需要转换的数据分步处理,别把请求、转换和状态更新挤在复杂表达式里。
只对接我指定的功能,保留没有要求改变的行为,不修改既有接口约定、不扩展其他功能,也不增加多余封装。
新增或修改的代码使用简单写法,配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由。根据实际功能处理调用中、成功、空结果和失败,避免重复提交或旧结果覆盖新结果等直接相关问题。
用现有环境验证读取或提交,检查传入内容、实际响应和使用结果是否一致;仅验证本次对接,不生成测试代码、调试工具、脚本或文档。
找不到接口说明、接口不存在或服务无法访问时,说明缺少什么,不编造接口或把假数据当作对接成功。最后说明已接入的流程、实际联调结果和未完成部分,完成即停止,不自动提交、推送或部署。
二、组合写法:把相关工作放进同一个任务
使用场景:同一项需求需要两种或几种处理方式一起完成。把相关工作写进一段需求,说明共同针对哪个功能,以及做到什么结果才算完成。
组合时,写清三个意思即可:一起做什么、处理哪个范围、最终要达到什么效果。 一个【】里可以写多句话,不必拆成多个填写项。
| 组合方式 | 适合的需求 |
|---|---|
| 新增或修改功能+接口对接 | 功能需要实现,同时要使用真实接口读取或提交数据 |
| 还原设计稿+接口对接 | 界面需要按设计还原,同时要接入真实数据 |
| 修 Bug+性能优化 | 同一个功能既有明确异常,也有需要一起解决的性能问题 |
| 修改已有功能+优化代码 | 调整指定功能的行为,同时简化或提速相关实现 |
只组合本次确实需要的工作。把共同目标说清楚后,由 Codex 按依赖顺序处理;原有的任务边界、简单写法和中文注释要求继续适用。
通用组合模板
复制这段:
请把下面明确列出的工作作为同一项任务,一起完成。
完整需求:【
用一段话说明要一起完成的两项或几项工作、它们针对的功能或范围,以及最终希望达到的结果】自行查看相关实现、项目约定和已有能力,识别语言、版本及工具。先整理本次包含哪些工作、它们怎样衔接,再按依赖顺序处理。能从项目确认的信息自行查,只有影响完成结果的关键缺口才向我追问。
只处理我在这段需求里明确列出的工作,以及完成它们必需的关联改动。保留其他正常行为,不自动增加任务、不扩大到其他模块、不升级无关依赖。
组合里包含新增或修改功能时,在现有实现上补充或调整;包含接口对接时,核对真实接口、输入条件、返回结构和使用结果,让功能与接口一起能用。不编造接口,也不把假数据或未经联调的调用当作完成。
组合里包含性能优化时,先确认瓶颈,再做针对性优化,用相同操作、数据规模和测量口径比较结果。
所有必要修改采用最简单、容易看懂的实现。复杂链式调用、嵌套表达式和多层判断拆开写,变量名清楚。新增或修改的代码配通俗中文注释,说明对应语句是什么意思、有什么作用,不记录修改过程或修改理由;使用当前语言支持的合法语法。
用现有环境和检查能力验证这项组合任务的完整流程,而不只检查其中一部分。不新增测试代码、联调或压测脚本、报告或文档文件。无法验证或完成的环节说明具体原因,不伪造成功结果。
最后按本次列出的各项工作,简要说明完成情况、实际验证结果及尚未解决的部分。完成即停止,不自动提交、推送、部署或处理其他问题。
下次卡住,回来找 《程序员 Codex 提问急救卡》。一项工作选独立模板,多项相关工作选组合模板。只替换一处,整段复制。
这份模板会持续更新。 欢迎在评论区分享你常遇到的开发问题,或说说还希望补充哪种问法。觉得有用,欢迎点赞、收藏,方便下次需要时回来复制。