Universal prompt optimizer skill
一个零配置的 Prompt 优化 Skill:通过追问澄清与结构化重写,让模糊的 AI Agent 指令变得清晰、可控、可执行。
npx -y skills add Jupiter363/universal-prompt-optimizer-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
将模糊、宽泛、不完整的自然语言请求,通过主动追问澄清缺失信息后,标准化为 LLM 偏好的结构化 Prompt——包含角色、任务、背景、目标、约束、步骤、输出格式。适用于代码开发、Bug排查、重构、测试、文档、计划、研究、写作等 AI Agent 任务场景。当用户要求优化/改写/整理/结构化/澄清/增强 Prompt,要求先优化再执行、先把需求说清楚,或输入"帮我修一下bug""帮我优化这个页面""帮我写个文档""帮我规划一下""帮我重构一下"等缺乏具体目标与边界的中文口语化指令时触发。已非常具体明确的任务指令不触发。
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
16.8 KB, as published. Nobody here has run it
Universal Prompt Optimizer
将用户模糊、宽泛、不完整的自然语言请求,分两步处理为 LLM 可直接执行的高质量 Prompt:
- 阶段一:追问澄清 — 缺失关键信息时主动提问,信息熵达标后停止
- 阶段二:提示词标准化 — 将原始输入 + 追问所得信息,按 LLM 偏好的格式重组为标准结构化 Prompt
追问澄清并标准化后,直接执行任务。用户说"只优化不执行"或"不要执行"时才跳过执行环节。
何时使用
当满足以下任一条件时触发本 Skill——
显式请求(用户明确要求优化 Prompt):
- 要求优化/改写/整理/规范化/结构化/澄清/增强/补全/润色/标准化 Prompt 或"提示词"
- 要求改成适合 Claude Code / Codex / Cursor / ChatGPT / AI Agent 执行的指令
- 要求"先优化再执行""先把需求说清楚""先帮我明确任务""先帮我整理需求""帮我把需求说清楚""帮我把任务描述清楚""帮我把这个任务拆清楚""帮我把这个指令写得更好""帮我让这个需求更清晰"
- "这个 prompt 怎么写更好""这个需求怎么让 AI 更好执行"
隐式模糊请求(用户未提"优化"但输入明显模糊、缺上下文、缺目标、缺约束):
- 排查类:"帮我修一下 bug""帮我看看哪里有问题""帮我处理一下报错""帮我排查一下""帮我分析一下""这个报错怎么处理"
- 开发类:"帮我优化这个页面""帮我做一下这个功能""帮我加个功能""帮我实现这个功能""帮我设计一下""帮我想想怎么实现"
- 重构类:"帮我重构一下""这块代码太乱了""帮我优化代码结构""帮我整理一下代码"
- 测试类:"帮我写个测试""补一下单测""帮我测一下这个功能"
- 文档类:"帮我写个文档""帮我整理说明""帮我生成接口文档""帮我写个 README"
- 计划类:"帮我规划一下""帮我做个计划""这个项目怎么做""帮我排一下任务"
- 写作类:"帮我写一段""帮我润色一下""帮我改得正式一点"
- 通用类:"帮我处理一下""帮我完善一下""帮我整理一下""帮我检查一下""帮我改一下""帮我把这个项目搞一下"
- 元需求:"这个功能怎么做""不知道怎么写 prompt""不知道怎么描述这个任务""我不太清楚怎么做""能不能帮我把需求理清楚""帮我想想这个怎么做"
何时不使用 / 边界
以下情况不应触发本 Skill,直接执行即可:
- 用户输入已非常具体明确:包含文件路径(如
src/login.ts)、行号(如"第 35 行")、精确参数(如"把 timeout 改成 5000")、明确操作(如"运行 npm install") - 纯翻译、纯信息查询、纯命令执行任务
- 用户明确表示不需要优化或追问(如"不要优化,直接做""直接执行不用整理")
需要的输入:用户至少提供一个可识别的任务意图。若输入为空或仅含"好""嗯""行"等无意义词汇,提示用户补充具体内容。
快速参考:任务类型 × 优化重点 × 追问要点
| 任务类型 | 优化重点 | 必问信息 |
|---|---|---|
| 代码开发 | 明确目标/边界/技术栈;确认是否需要测试 | 目标功能、涉及范围、技术栈 |
| Debug | 先定位→再分析→最小改动 | 报错信息、复现步骤、影响范围 |
| 重构 | 保持行为不变;先说明重构点;保留公共接口 | 目标文件/模块、重构原因、已有测试情况 |
| 测试 | 明确测试对象/框架;覆盖正常+边界+异常 | 测试目标、测试框架、覆盖范围 |
| 文档 | 明确文档类型/读者/格式 | 文档类型、目标读者、接口信息 |
| 计划 | 明确目标/现状/约束;拆分阶段;标注风险 | 项目目标、当前状态、时间约束 |
| 研究 | 明确问题/范围;明确是否联网;明确引用要求 | 研究问题、信息范围、输出格式 |
| 写作 | 明确对象/语气/长度/用途;保留原意 | 写作对象、语气风格、长度要求 |
核心原则
1. 保留用户原意
不得改变用户真实目标。"帮我看看登录 bug" → 不应优化为"重构整个用户认证系统"。
2. 先追问,不编造
缺失关键信息时,主动向用户提问,不能自行编造文件名、接口名、错误日志、业务规则、用户角色、技术栈、预期行为。这是本 Skill 价值最大的地方——普通 LLM 倾向于"猜",本 Skill 要求"问"。
3. 追问有节制,用信息熵判断停止时机
- 每轮最多提 1-3 个问题,不要抛出一长串
- 优先问最关键的信息(安全 > 目标 > 范围 > 技术细节 > 输出格式)
- 硬性上限:最多追问 3 轮,避免用户疲劳
- 信息熵止步: 每轮用户回答后,评估当前信息是否已足够支撑高质量优化 Prompt。判断标准——5 个关键维度(安全与破坏性、任务目标、范围与边界、技术细节、输出格式)中,如果"决定执行方向"的维度已有明确答案,剩余不确定项不影响方向选择,则立即停止追问,进入优化环节。不需要所有维度都完美才停止
- 用户回答"不知道""不确定"时,接受并继续,不反复追问同一点
4. 第二阶段必须标准化
追问结束后,必须将原始输入和追问所得的全部信息,按照"提示词标准化"章节定义的 7 段结构重组。不直接输出追问内容,不留"帮我修 bug"类原始口语化表达。标准化是固定工序,不能因为信息充足就跳过。
5. 避免过度优化
不把简单任务改得过长或扩展到用户未要求的范围。
6. 默认优化后执行
标准化完成后直接基于标准化 Prompt 执行任务,不向用户确认"是否执行"。用户说"只优化不执行""不要执行"时才只输出不执行。高风险操作(删除数据、修改生产配置)仍需在标准化 Prompt 的"约束"中注明人工确认步骤。
执行流程
- 分析用户输入:提取核心目标、已知信息、识别关键缺失维度
- 判断信息是否足够直接标准化:
- 信息足够(目标明确 + 范围清晰 + 无安全歧义) → 跳到第 5 步
- 关键信息缺失 → 进入第 3 步(阶段一)
- 阶段一:追问澄清(循环入口)
a. 按优先级提 1-3 个问题(安全 > 目标 > 范围 > 技术细节 > 输出格式)
提问格式:「在继续之前需要确认几个信息(不清楚的可以答"不确定"):1. ... 2. ...」
b. 等待用户回答
c. 信息熵判断:
- 方向仍不明确 且 追问轮次 < 3 → 回到 3a 继续追问
- 方向已明确,或已达 3 轮上限 → 进入第 4 步
- 汇总:收集原始输入 + 所有追问问答,准备进入标准化
- 阶段二:提示词标准化
- 按固定 7 段结构重组所有信息: 角色 / 任务 / 背景 / 目标 / 约束 / 步骤 / 输出格式
- 每个字段必须有内容,信息不足的维度填入「未确认:xxx」
- 「任务」字段必须去口语化("帮我修 bug"改写为"排查并修复 xxx 问题")
- 「约束」和「步骤」必须具体可验证
- 输出:追问汇总(如有)+ 标准化 Prompt + 未确认信息列表
- 判断执行:
- 用户明确说"只优化不执行""不要执行" → 结束,不执行
- 其他情况(默认) → 基于标准化 Prompt 直接执行任务
追问模式
何时进入追问模式
当用户输入满足以下任意一条时,进入追问模式而非直接输出优化结果:
- 任务目标不明确(用户没说清楚要达成什么)
- 关键上下文缺失(涉及哪些文件、系统、模块未描述)
- 缺少错误信息或复现步骤(Debug 类任务)
- 边界不清(用户可能期望一个大改动但只说了几个字)
- 存在安全歧义(指令可能被理解为删除、覆盖、修改生产配置等风险操作)
追问优先级
按重要性从高到低排序提问:
- 安全与破坏性 — 这个操作会不会改数据、删文件、影响生产环境?
- 任务目标 — 用户到底想达成什么?
- 范围与边界 — 改哪些文件/模块?不改哪些?
- 技术细节 — 技术栈、框架、依赖、已有实现情况
- 输出格式 — 用户期望得到什么形态的结果?
提问格式
每轮追问使用以下结构:
在继续之前需要确认几个信息,回答越具体,优化结果越精确(不清楚的可以答"不确定"):
1. <最关键的缺失信息,具体的问题>
2. <次要缺失信息>
3. <补充确认>
追问规则
- 每轮 1-3 个问题,不要直接抛 5+ 个
- 第一轮聚焦最关键的问题(通常是安全 > 目标 > 范围)
- 问题要具体——不问"你想要什么?",而问"你希望修改 src/auth/ 下的登录逻辑,还是调整后端 Token 验证流程?"(如果已经有上下文可以缩小范围的话)
- 用户说"不知道""随便""你定" — 接受,标记为"未确认",在最终 Prompt 中显式注明"此部分信息用户未提供,执行时需自行判断"
- 追问结束后,汇总用户补充的全部信息,输出完整优化 Prompt
追问结束信号(按优先级)
- 信息熵达标(最优先)— 决定执行方向的 3 个核心维度(任务目标、范围边界、安全风险)已明确,剩余不确定项不影响方向选择,即使还有小疑问也立即停止追问
- 用户主动结束 — 用户表示"先这样""可以了""就按这个来"
- 硬性轮次上限 — 已追问 3 轮,无论信息是否齐全都停止
- 用户连续"不知道" — 连续两轮无法提供有效信息,不再追问
结束追问后,立即进入阶段二:提示词标准化。
提示词标准化
什么是标准化
标准化是将追问阶段收集到的原始输入 + 用户回答,按 LLM 偏好的格式重新组织为结构化 Prompt。它不是简单拼接信息,而是:
- 把口语化表达("帮我修一下 bug")转换为精确的任务描述
- 把零散回答("登录页面没反应""所有用户都有""最近改了 Token 刷新")整合进对应结构
- 显式标注边界(该做什么、不该做什么)
- 把不确定的信息以
[未确认:xxx]形式暴露给执行者
标准化七段结构
每个标准化后的 Prompt 必须包含以下结构,根据信息可用度选用(标记了"未确认"的可以占位):
## 角色
<执行此任务时 AI 应扮演的角色,如"你是一个前端调试专家">
## 任务
<一句话描述要做什么,必须精确,不得保留"帮我修 bug"类口语化表达>
## 背景
<任务的上下文:为什么需要做、现状如何、已有的相关信息>
## 目标
<达成的标准——什么算"完成"、什么算"成功">
## 约束
<明确的边界和禁令,按重要性排列>
- 不得 <禁止行为>
- 只修改 <范围>,不触碰 <排除范围>
- <其他约束>
## 步骤
<推荐的执行顺序,每步一个可验证的动作>
1. <步骤 1>
2. <步骤 2>
3. <步骤 3>
## 输出格式
<任务完成后应产出的内容——如"说明涉及文件、修改原因、验证方式">
标准化规则
- 每个字段必须有内容——信息不足的维度填入
[未确认:需要确认xxx],不空着 - "任务"字段必须去口语化——"帮我修一下 bug"改写为"排查并修复 xxx 功能的 bug","帮我加个搜索"改写为"为 xxx 模块添加搜索功能"
- "约束"字段必须具体——不写"注意安全",写"不得修改生产数据库连接配置"
- "步骤"字段每步可验证——不写"分析问题",写"打开浏览器 Network 面板,确认登录请求 HTTP 状态码"
- 追问所得信息分布到对应字段——不额外留一个"追问汇总"在 Prompt 正文中(追问汇总是给用户看的元信息,不进入标准化 Prompt)
标准化示例
输入(原始 + 追问所得):
原始:帮我修一下登录功能,用户说有时候登录不了 追问所得:所有用户均有概率遇到,表现为点击登录按钮后页面没反应、无报错。最近改过 Token 刷新逻辑。不确定是否发出了网络请求。
标准化输出:
## 角色
你是一个前端调试专家,擅长排查浏览器端异步逻辑和网络请求问题。
## 任务
排查并修复登录按钮点击后无响应的问题。
## 背景
所有用户均有概率遇到,表现为点击登录按钮后页面无反应、无报错提示。最近改动过 Token 刷新逻辑,疑似相关。
## 目标
定位登录按钮无响应的根因并修复,修复后所有用户点击登录按钮均能正常发起登录请求。
## 约束
- 不得重构整个认证模块,只修复导致按钮无响应的具体问题
- 不得修改后端登录接口逻辑(问题定位在前端)
- 修改前先确认 Token 刷新逻辑的具体改动内容(git diff)
## 步骤
1. 定位登录按钮的点击事件绑定代码,检查是否被 Token 刷新逻辑中的异常或 return 中断
2. 打开浏览器 Network 面板,确认点击按钮后登录请求是否发出
3. 检查 Token 刷新逻辑中是否存在未捕获异常或竞态条件
4. 确认根因后做最小修复,验证 Token 刷新和登录两个流程互不干扰
## 输出格式
说明问题根因、修复方式、涉及文件、验证步骤。
输出格式
标准模式(默认输出)
对话中输出给用户的内容分为两部分:元信息(追问过程等)+ 标准化 Prompt(可直接作为 LLM 输入使用)。
## 追问汇总
- 问:<问题 1> → 答:<用户回答>
- 问:<问题 2> → 答:<用户回答>
## 标准化 Prompt
<上述 7 段结构的完整标准化 Prompt>
## 未确认信息
- <标准化后仍缺失的信息>
如果未进入追问(信息一开始就充足),则省略"追问汇总",直接输出标准化 Prompt。
极简模式
用户要求"只输出优化后的 prompt"或"不要解释"时,跳过追问环节,仅基于已有信息输出优化后的 Prompt 正文。缺失信息在 Prompt 内部以"[未确认:xxx]"标记。
仅优化不执行模式
用户明确说"只优化不执行""不要执行""先看看优化结果"时:只完成追问澄清和标准化输出,不执行任务。其他情况默认输出后直接执行。
常见错误
| 错误做法 | 为什么不对 | 正确做法 |
|---|---|---|
| 缺信息时直接编造 | LLM 倾向"猜",猜错比不问更糟 | 进入追问模式,向用户澄清 |
| 一次抛 8 个问题 | 用户被吓到,懒得回答 | 每轮 1-3 个,按优先级递进 |
| 用户说"不知道"还反复问 | 追问变审问,体验极差 | 接受并标记为未确认 |
| "帮我修 bug" → 直接改代码 | 未定位就动手,可能改错方向 | 先追问报错信息、复现步骤 |
| 追问 5 轮还不停 | 用户疲劳,失去耐心 | 信息熵达标即停,硬上限 3 轮 |
| 信息已够还继续追问 | 用户已经说清楚了方向,再问细节属于骚扰 | 方向维度明确后立即停止,不等完美信息 |
| 对已清晰的指令强行追问 | 用户明明说了文件路径还要"确认一下" | 已具体的任务直接输出或执行 |
| 标准化后停着不执行 | 用户期望直接动手,多一步确认就是多一次打断 | 默认输出后直接执行,用户说"不执行"才停 |
安全边界
- 不得改变用户原意
- 不得编造文件名、接口名、错误日志或业务规则
- 不得把查询/只读任务改写为写入、删除或提交任务
- 不得把小范围任务扩展为大规模重构
- 不得承诺优化后的 Prompt 一定产生正确结果
- 涉及删除数据、修改生产配置等高风险操作时,必须在追问环节确认范围和后果,并在标准化 Prompt 的"约束"中显式加入人工确认步骤(如"修改生产配置前需用户确认"),但不阻止后续执行——确认步骤在执行过程中生效
- 用户拒绝回答安全相关问题时,在优化后 Prompt 中显式标注风险