关于 prompt-improver
prompt-improver 是一项 Agent 技能,通过先研究上下文、再提出针对性问题,将模糊请求整理为可执行任务,并指导后续执行。
主要功能
- 01提问前先研究
- 02检查对话与项目上下文
- 03生成聚焦的选择题
- 04根据答复执行请求
适用场景
- 01澄清信息不足的编码任务
- 02为 Agent 请求补充上下文
- 03测试提示词评估流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ severity1/ claude-code-prompt-improver --skill prompt-improver安装后在 Claude Code 中输入/prompt-improver确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/examples.mdquestion-patterns.mdresearch-strategies.md详细介绍
提示词改进技能
目的
通过系统性研究和有针对性的澄清,将含糊不清的提示词转化为可执行且定义明确的请求。当钩子已判定提示词需要补充信息时,会调用此技能。
何时调用此技能
自动调用:
- UserPromptSubmit 钩子评估提示词
- 钩子判定提示词含糊不清(缺少具体细节、上下文或明确目标)
- 钩子调用此技能来指导研究和提问
手动调用:
- 通过基于研究的问题来完善含糊不清的提示词
- 构建或测试提示词评估系统时
- 即使结合对话历史,提示词仍缺少足够上下文时
前提假设:
- 提示词已被判定为含糊不清
- 评估阶段已完成(由钩子完成)
- 直接开始研究和澄清
核心工作流
此技能采用 4 个阶段的方法来完善提示词:
阶段 1:研究
在提问前,使用 TodoWrite 制定动态研究计划。
研究计划模板:
- 先检查对话历史——如果已有相关上下文,则避免重复探索
- 如有需要,检查代码库:
- 使用 Task/Explore 了解架构和项目结构
- 使用 Grep/Glob 查找特定模式和相关文件
- 检查 git log,了解近期变更
- 搜索错误、失败的测试以及 TODO/FIXME 注释
- 按需收集更多上下文:
- 阅读本地文档文件
- 使用 WebFetch 获取在线文档
- 使用 WebSearch 搜索最佳实践、常见方法和最新信息
- 记录发现,确保问题以实际项目上下文为依据
关键规则:
- 绝对不能跳过研究
- 探索代码库前,先检查对话历史
- 问题必须以实际发现为依据,而非假设或基础知识
- Glob、Grep、WebSearch、WebFetch 和多文件 Read 必须通过
Task/Explore执行,绝不能在主上下文中直接调用 - 每条 Explore 提示词都要包含与对话相关的上下文(文件路径、错误、先前决策);Explore 无法查看之前的对话轮次
有关详细的研究策略、模式和示例,请参阅 references/research-strategies.md。
阶段 2:生成有针对性的问题
根据研究发现,拟定 1-6 个问题以消除歧义。
问题指南:
- 有依据:每个选项都来自研究(代码库发现、文档或常见模式)
- 具体:避免使用“其他方法”之类含糊的选项
- 多选题:每个问题提供 2-4 个具体选项
- 聚焦:每个问题只涉及一个决策点
- 结合上下文:简要说明各种选择的权衡
问题数量:
- 1-2 个问题:简单歧义(哪个文件?采用哪种方法?)
- 3-4 个问题:中等复杂度(范围 + 方法 + 验证)
- 5-6 个问题:复杂场景(包含多个决策点的重大功能)
有关问题模板、有效模式和示例,请参阅 references/question-patterns.md。
阶段 3:获取澄清
使用 AskUserQuestion 工具提出基于研究的问题。
AskUserQuestion 格式:
- question: Clear, specific question ending with ?
- header: Short label (max 12 chars) for UI display
- multiSelect: false (unless choices aren't mutually exclusive)
- options: Array of 2-4 specific choices from research
- label: Concise choice text (1-5 words)
- description: Context about this option (trade-offs, implications)
重要: 始终包含 multiSelect 字段(true/false)。用户始终可以选择“其他”并输入自定义内容。
阶段 4:结合上下文执行
根据原始用户请求继续执行,并使用:
- 原始提示词的意图
- 用户的澄清答复
- 研究发现和上下文
- 对话历史
如同请求从一开始就已清晰明确那样执行。
示例
示例 1:调用技能 → 调研 → 提问 → 执行
钩子评估: 判断提示词含糊不清
原始提示词:“修复这个 bug”
**是否调用技能:**是(提示词缺少目标和上下文)
调研计划:
- 查看对话历史,查找近期错误
- 探索代码库,查找失败的测试
- 搜索 TODO/FIXME 注释
- 查看 git log,查找近期的问题区域
调研结果:
- 近期对话提到登录失败
- auth.py:145 中的 try/catch 吞掉了错误
- test_auth.py 中有测试失败
生成的问题:
- 你指的是哪个 bug?
- 登录身份验证失败(auth.py:145)
- 会话超时问题(session.py:89)
- 其他
**用户回答:**登录身份验证失败
**执行:**修复 auth.py:145 中导致登录失败的错误处理
示例 2:清晰的提示词(未调用技能)
原始提示词:“重构 src/api/users.ts 中的 getUserById 函数,使用 async/await 替代 promise”
**钩子评估:**通过所有检查
- 目标明确:src/api/users.ts 中的 getUserById
- 操作明确:重构为 async/await
- 成功标准:使用 async/await 替代 promise
**是否调用技能:**否(提示词清晰,无需调用技能即可立即继续)
如需查看各种提示词类型及其转换的完整示例,请参阅 references/examples.md。
核心原则
- 假定提示词含糊不清:仅在提示词含糊不清时调用技能(由钩子进行评估)
- 先调研:在拟定问题前,务必先收集上下文
- 问题有据可依:使用调研结果,而非假设或基础知识
- 具体明确:根据实际代码库和上下文提供具体选项
- 聚焦重点:最多提出 1-6 个问题,每个问题只涉及一个决策点
- 采用系统化方法:遵循 4 阶段工作流(调研 → 提问 → 澄清 → 执行)
渐进式披露
此 SKILL.md 包含核心工作流和要点。如需更深入的指导:
- 调研策略:references/research-strategies.md
- 提问模式:references/question-patterns.md
- 完整示例:references/examples.md
仅在需要了解特定方面的详细指导时,才加载这些参考资料。