npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

prompt-refine-skill

v2.3.0

Published

A model-aware Agent Skill that silently refines your prompt for the model currently answering.

Downloads

35

Readme


项目介绍

Prompt Refine 是一个轻量、跨平台的 Agent Skill。激活后,它会识别当前正在运行并回答问题的模型,然后在回答前应用该模型家族对应的提示词策略。

核心设计很简单,但很关键:按宿主模型路由,而不是按任务路由。如果当前是 Claude 在回答,就整段对话都使用 Anthropic 策略;如果当前是 GPT 在回答,就使用 OpenAI 策略。写代码任务不会让 Claude 切到 GPT 风格,写作任务也不会让 GPT 切到 Claude XML。

因此它可以用于支持 Agent Skills 的工具:Claude Code、Cursor、OpenAI Codex、Gemini CLI、GitHub Copilot、Windsurf、CodeBuddy 以及其他兼容 Agent。

它也会温和利用上下文:后续请求可以继承对话中相关的目标、约束、术语和偏好,但仍以用户最新指令为准。

它刻意保持轻量:无运行时依赖、无应用服务、不会额外调用一个“优化器模型”,上下文里只需要短小的 skill 文件和一个被选中的策略文件。目标是在不大量增加 token 成本的前提下,让请求结构更适合当前模型。

功能演示

同一个用户请求,会根据宿主模型形成不同的内部结构。下面展示的是隐藏重构的形态;正常模式下,用户只看到最终答案。

1. 模糊需求:补出必要结构

用户请求:

帮我分析一下这个市场的竞争格局

Anthropic Claude 格式:

<role>你是一位资深市场分析师,擅长竞争情报。</role>
<context>
用户没有说明具体市场、地域、客户群或时间范围。
保留不确定性;把可行假设说清楚,不编造事实。
</context>
<task>
在最可能的用户意图下,分析该市场的竞争格局。
</task>
<constraints>
- 开头先说明对市场、受众、地域和时间范围的假设。
- 区分较有把握的判断和未知信息。
- 不声称实时市场数据,除非用户已提供或可以验证。
- 只提出 1-2 个最能改进分析的追问。
</constraints>
<format>
使用这些小节:假设、竞争地图、壁垒与转换成本、战略含义、未知信息、后续问题。
</format>
<success_criteria>
即使用户尚未补充市场范围,答案也应可用,并清楚标出哪些结论依赖假设。
</success_criteria>

OpenAI GPT 格式:

目标:把一个范围不完整的市场分析请求,转成可用的第一版竞争格局分析。

用户请求:
"""帮我分析一下这个市场的竞争格局"""

相关上下文:
- 市场、地域、受众和时间范围均缺失。
- 保留不确定性,并明确说明假设。

要求:
1. 先说明假设的市场范围。
2. 识别可能的玩家类别和竞争动态。
3. 比较进入壁垒、转换成本和战略含义。
4. 标注未知信息,不编造事实。

硬约束:
- 不声称实时市场数据,除非用户已提供或可以验证。
- 只提出 1-2 个后续问题。

输出格式:使用 Markdown 小标题:假设、竞争地图、壁垒、战略含义、未知信息、后续问题。

2. 清晰需求:保留硬约束

用户请求:

请写一个 5 点 npm 发布检查清单,每点不超过 8 个字。

Anthropic Claude 格式:

<context>
用户给出了严格的格式要求。不要扩展任务范围。
</context>
<task>写出恰好 5 点 npm 发布检查清单。</task>
<constraints>
- 每点不超过 8 个字。
- 覆盖 package.json、README、LICENSE、版本号和 dry-run 发布。
- 只返回清单项,不添加引言或解释。
</constraints>
<format>使用编号列表,每项是一个简短的祈使句。</format>
<success_criteria>
恰好 5 项,每项不超过 8 个字,并覆盖所有指定主题。
</success_criteria>

OpenAI GPT 格式:

任务:写出恰好 5 点 npm 发布检查清单。

上下文:用户已经给出清晰硬约束,保留这些约束,不额外扩展范围。

硬约束:
- 每点不超过 8 个字。
- 覆盖 package.json、README、LICENSE、版本号和 dry-run 发布。
- 只返回清单,不添加解释。

输出契约:
- 编号列表。
- 恰好 5 行。
- 无引言、无结尾说明。

回答前自检:每项不超过 8 个字,并覆盖一个指定发布主题。

用户看到什么

用户只看到最终答案。除非启用 /refine verbose,否则中间重构不会显示。对于已经很清楚的请求,Prompt Refine 应尽量轻量处理,重点保护用户的硬约束。

策略始终跟随宿主模型,不是跟随任务话题:Claude 使用 Claude 偏好的结构,GPT 使用 GPT 偏好的结构。

快速开始

把本仓库安装到工具的项目级 skills 目录。以 Claude Code 为例:

git clone https://github.com/Li-Bailiang/prompt-refine-skill.git .claude/skills/prompt-refine

如果不想带入 .git 目录,可以使用 Release 包,或:

npx degit Li-Bailiang/prompt-refine-skill .claude/skills/prompt-refine

本 skill 也已发布到 npm:prompt-refine-skill(带版本号的发布)。上面的命令会把文件放到工具的 skills 目录中。

在对话中激活:

/prompt-refine

可用的会话内控制命令:

/refine verbose    # 每次回答前显示简短的 原始 -> 重构 对比
/refine off        # 在本轮对话中停止优化
/prompt-refine     # 上下文压缩或新会话后重新激活

安装路径

| 工具 | 项目级 skill 路径 | |---|---| | Claude Code | .claude/skills/prompt-refine | | Cursor | .cursor/skills/prompt-refine.agents/skills/prompt-refine | | OpenAI Codex | .agents/skills/prompt-refine | | Gemini CLI | .gemini/skills/prompt-refine.agents/skills/prompt-refine | | GitHub Copilot (VS Code) | .github/skills/prompt-refine.agents/skills/prompt-refine | | Windsurf | .windsurf/skills/prompt-refine | | CodeBuddy | .codebuddy/skills/prompt-refine |

多数工具也支持通用的 .agents/skills/ 约定。全局或用户级路径因平台而异,建议以各工具官方文档为准。

内置策略

| 宿主模型 | 策略文件 | 来源家族 | |---|---|---| | OpenAI GPT(GPT-5 系列) | strategies/openai.md | OpenAI 提示词指南 | | Anthropic Claude | strategies/anthropic.md | Anthropic prompt engineering | | Google Gemini | strategies/google-gemini.md | Gemini prompt design | | Meta Llama | strategies/meta-llama.md | Llama prompting guidance | | DeepSeek V4(含 R1) | strategies/deepseek.md | DeepSeek prompt library | | Mistral / Codestral | strategies/mistral.md | Mistral best practices | | Qwen | strategies/qwen.md | 阿里云百炼 / Model Studio 指南 | | xAI Grok | strategies/xai-grok.md | xAI Grok prompting references | | Cohere Command | strategies/cohere.md | Cohere docs | | Amazon Nova | strategies/amazon-nova.md | Nova prompt guide | | Microsoft Phi | strategies/microsoft-phi.md | Phi Cookbook | | 未知宿主 | strategies/universal.md | 保守通用兜底 |

评测

Prompt Refine 在 120 条模糊提示词上做过盲测的 A/B 评测(60 条英文 + 60 条中文,覆盖 32 个领域)。同一个生成模型针对每条提示词回答两次——一次原始、一次启用 Prompt Refine,由独立的裁判模型在不知道哪边是哪边的前提下打分。每对答案还会交换位置再判一次,以抵消顺序偏差。

关键结果

| | 结果 | |---|---| | Refine 对 raw 的胜率 | 74.0%(240 次判罚中 167 胜 / 52 负 / 21 平) | | 95% bootstrap 置信区间(按 prompt,n = 120) | [66.9%, 80.6%] | | 符号检验 | p < 0.0001 | | 英文 / 中文 | 75.0% / 72.9% | | 等长子集胜率 | 64.7%(refine 答案长度在 raw 的 ±25% 以内) |

等长胜率与主指标一并公布,用于排除裁判可能存在的长度偏好。在等长子集上,本版本胜率为 64.7%,而上一版本的同口径仅为 50.5%——说明改进是真实的答案质量提升,而不仅仅是输出更长。

各维度差值(refine − raw,1–5 分制)

| 维度 | Δ | |---|---| | 可执行性 (actionability) | +0.96 | | 完整性 (completeness) | +0.81 | | 结构性 (structure) | +0.49 | | 澄清问询 (clarification) | +0.35 | | 语言保真 (language fidelity) | +0.03 |

稳健性检查

| 检查 | 结果 | |---|---| | 内部脚手架泄漏(<role> / <task> / 重写后的提示词被输出) | 0 / 120 | | 中文提示词上的正文语言切换(剔除代码后) | 0 / 60 | | JSON 解析回退 · 被跳过的样本 | 0 · 0 |

模型配置:生成模型 claude-sonnet-4-6,裁判模型 claude-opus-4-8。当前评测的宿主模型策略为 Anthropic (strategies/anthropic.md);其他策略文件采用相同设计,但尚未做过同等规模的评测。

局限性

Prompt Refine 刻意保持简单,也坦白它的边界:

  • 尽力而为,并非确定性。 它在激活指令仍留在模型上下文时生效;对话过长被压缩后可能失效, 需要重新 /prompt-refine
  • 依赖宿主模型遵循元指令。 对不能稳定执行“先静默重构、再回答”的模型,收益较小。
  • 仅 Anthropic 策略经过规模化评测。 其余策略文件采用相同设计,但尚未做同等评测(见“评测”一节)。
  • 策略跟随快速变化的官方文档。 它们是对官方指南的精炼,需随官方更新而定期维护。
  • 对已经很清晰的请求收益有限。 按设计,干预可以是“无”——它最适合模糊或欠定义的请求。

为什么选择 Prompt Refine?

| | Prompt Refine | 独立提示词优化工具 | |---|:---:|:---:| | 形态 | Agent Skill | Web 或桌面应用 | | 模型适配 | 使用当前运行模型的策略 | 通用策略或手动选择 | | 输出 | 静默给出最终答案 | 展示优化后的 prompt | | 激活 | 会话级、可关闭 | 通常单次调用 | | 语言 | 保留原语言和意图 | 取决于实现 | | Token 成本 | 低:短 skill + 单策略文件 | 往往需要额外完整优化轮次 | | 依赖 | 无依赖 | 往往依赖具体应用 |

兼容平台

Prompt Refine 遵循 SKILL.md Agent Skill 约定,面向支持项目级 skills 的工具,包括 Claude Code、Cursor、OpenAI Codex、Gemini CLI、GitHub Copilot、Windsurf、CodeBuddy 以及其他兼容 Agent。

许可证

MIT License。可自由使用、修改和分发。

贡献

欢迎提交 Issue 和 Pull Request。新增或改进模型策略前,请先阅读 CONTRIBUTING.md

支持一下

如果 Prompt Refine 帮你省了时间,欢迎给仓库点一个 ⭐ —— 这能实实在在地帮助更多人发现这个项目。

Star History