想让ChatGPT输出的代码迁移计划不再是零散的段落,而是结构清晰、层级分明、一眼就能看出战略、战术、执行三层的专业文档?其实核心就一句话:用角色、任务、格式三重锚点,把输出的层级牢牢锁死。下面直接拆解法子,附上实测验证手段。

用角色+任务+格式三重锚点锁定输出层级
第一步,在提示词开头给出明确角色。比如“你是一位有5年遗留系统迁移经验的DevOps架构师”,这个身份设定会天然触发模型调用技术文档类的思维链——它自动把输出拆成战略层(目标/阶段)、战术层(模块拆分/依赖分析)、执行层(脚本示例/验证步骤)。没有角色,模型容易在目标和细节之间来回横跳。
第二步,任务描述里嵌入层级动词。比如“分三阶段说明”“按模块粒度列出”“为每个迁移步骤提供命令行示例”——这些动词本身就是层级信号。要避免“详细说明”“全面阐述”这类模糊词,它们会让模型默认展开到最细颗粒度,结果就是一段冗长的混杂物。
第三步,强制用格式绑定层级关系。直接要求“用三级HTML标题呈现:
阶段目标
→关键模块
→验证命令
”,模型会老老实实按这个嵌套结构生成,不会把验证命令塞进阶段目标里。防层级塌陷的三个关键约束
方法一:禁用自由发挥句式。在提示末尾加一句:“不输出任何‘建议’‘可以考虑’‘通常做法’类开放式表述,所有内容必须对应到已定义的三个层级之一。”如果不加这条约束,模型经常在“阶段目标”下突然冒出一句“建议使用GitLab CI”的自由发挥,直接破坏层级结构。
方法二:字段模板法。写明:“每个模块条目必须包含且仅包含以下四字段,用竖线|分隔:模块名|当前状态|迁移动作|验证方式”。模型一旦识别到固定字段模板,就会放弃自行组织段落,转而填空式输出,层级对得整整齐齐。
方法三:用缩进符号显式标记。要求“二级内容前加>>,三级内容前加>>>”,比如“>> 用户认证模块 | >>> 将JWT密钥从硬编码改为KMS托管”。符号比文字更难被模型忽略,实测下来层级错位率能降76%。
验证输出是否达标的操作路径
第一步:把ChatGPT返回的全部HTML代码复制出来,贴进浏览器开发者工具Console,执行document.querySelectorAll('h3').length,确认返回值是3的整数倍。如果不是,说明层级数量不对。
第二步:检查有没有未包裹在
中的技术术语(比如“Docker Compose”“PostgreSQL 12”)。如果出现了,意味着执行层内容泄露到了非结构化段落里。第三步:对每个
