最佳实践提示转换器Skill best-practices

这个技能用于将模糊的用户提示转换为优化的Claude Code提示,通过添加验证、特定上下文、约束和分阶段结构,以提高AI代码生成的准确性和效率。关键词:提示工程、AI代码助手、Claude、最佳实践、提示优化。

AI应用 0 次安装 0 次浏览 更新于 3/8/2026

name: best-practices description: >- 将模糊提示转换为优化的Claude Code提示。添加验证、特定上下文、约束和适当的分阶段。通过 /best-practices 调用。

最佳实践 — 提示转换器

通过添加Claude所需内容来转换提示。

从这里开始

基于用户的请求:

用户提供要转换的提示: → 使用AskUserQuestion提问:

  • 问题: “我该如何改进这个提示?”
  • 标题: “模式”
  • 选项:
    1. 直接转换 — “我将应用最佳实践并输出改进版本”
    2. 先构建上下文 — “我将先收集代码库上下文和意图分析”

用户询问学习/理解: → 显示5个转换原则部分

用户请求示例: → 链接到 references/before-after-examples.md

用户请求评估提示: → 使用本文档末尾的成功标准评估规则


如果选择"直接转换"

应用下面的5个原则,并立即输出改进的提示。

如果选择"先构建上下文"

启动3个并行代理来收集上下文:

使用Task工具并行运行这些代理:

- Task task-intent-analyzer("[用户提示]")
- Task best-practices-referencer("[用户提示]")
- Task codebase-context-builder("[用户提示]")

每个代理返回的内容

代理 使命 返回
task-intent-analyzer 理解用户试图做什么 任务类型、差距、边缘案例、转换指导
best-practices-referencer 从references/中查找相关模式 匹配示例、要避免的反模式、转换规则
codebase-context-builder 探索此代码库 特定文件路径、类似实现、约定

代理返回后

  1. 综合发现 — 结合意图 + 最佳实践 + 代码库上下文
  2. 应用匹配模式 — 使用best-practices-referencer中的示例作为模板
  3. 基于代码库 — 添加codebase-context-builder中的特定文件路径
  4. 转换提示 — 应用5个原则,并利用所有收集的上下文
  5. 输出 — 显示改进的提示,并进行前后对比

代理定义

代理定义在 agents/

  • agents/task-intent-analyzer.md — 分析意图、差距和边缘案例
  • agents/best-practices-referencer.md — 从references/中查找相关示例和模式
  • agents/codebase-context-builder.md — 探索代码库中的文件和约定

转换工作流

转换时(选择模式后):

  1. 识别缺失内容 — 根据下面的5个原则检查
  2. 添加缺失元素 — 验证、上下文、约束、阶段、丰富内容
  3. 输出改进的提示 — 在代码块中,准备复制粘贴
  4. 显示更改内容 — 简要的前后对比

5个转换原则

按优先级顺序应用:

1. 添加验证(最高优先级)

最高杠杆改进。 当Claude可以验证自己的工作时,表现显著更好。

缺失 添加
无成功标准 带有预期输入/输出的测试案例
UI更改 “截图并与设计比较”
Bug修复 “编写失败的测试,然后修复”
构建问题 “修复后验证构建成功”
重构 “每次更改后运行测试套件”
无根本原因强制执行 “解决根本原因,不要抑制错误”
无验证报告 “总结您运行的内容和通过的内容”
之前: "实现电子邮件验证"
之后:  "编写validateEmail函数。测试案例:user@example.com → true,
         无效 → false, user@.com → false。实现后运行测试"
之前: "修复API错误"
之后:  "/api/orders端点对大订单返回500。检查OrderService.ts中的错误。解决根本原因,不要抑制错误。修复后,运行测试套件并总结您验证的内容和通过的内容。"

2. 提供特定上下文

用精确位置和细节替换模糊引用。

模糊 特定
“代码” src/auth/login.ts
“Bug” “用户报告X在Y发生时发生”
“API” “routes.ts中的 /api/users端点”
“那个函数” processPayment() 在第142行

添加上下文的四种方式:

策略 示例
限定任务范围 “为foo.py编写测试,覆盖用户注销的边缘案例。避免模拟。”
指向来源 “查阅ExecutionFactory的git历史,总结其API如何演变”
引用模式 “查看HotDogWidget.php并遵循该模式为日历小部件”
描述症状 “用户报告会话超时后登录失败。检查src/auth/,尤其是令牌刷新”

尊重项目CLAUDE.md

如果项目有CLAUDE.md,转换后的提示应:

  • 不违反项目约定
  • 相关时引用项目特定模式
  • 注意任何适用的项目约束
之前: "添加新的API端点"
之后:  "添加GET /api/products端点。检查此项目中的API约定在CLAUDE.md中。遵循routes/users.ts中的模式。实现后运行API测试。"
之前: "修复登录Bug"
之后:  "用户报告会话超时后登录失败。检查src/auth/中的认证流程,尤其是令牌刷新。编写一个重现问题的失败测试,然后修复它"

3. 添加约束

告诉Claude不要做什么。防止过度工程和不想要的更改。

约束类型 示例
依赖 “无新库”, “仅使用现有依赖”
测试 “避免模拟”, “测试中使用真实数据库”
范围 “不要重构无关代码”, “仅接触认证模块”
方法 “解决根本原因,不要抑制错误”, “保持向后兼容”
模式 “遵循现有代码库约定”, “匹配utils.ts中的风格”
之前: "添加日历小部件"
之后:  "实现具有月份选择和年份分页的日历小部件。遵循HotDogWidget.php中的模式。从零开始构建,不使用代码库中已用库以外的库"

4. 将复杂任务分阶段结构

对于较大任务,将探索与实现分开。

4阶段模式:

阶段1:探索
"阅读src/auth/并理解我们如何处理会话和登录。
 同时查看我们如何管理环境变量以存储密钥。"

阶段2:计划
"我想添加Google OAuth。哪些文件需要更改?
 会话流程是什么?创建一个计划。"

阶段3:实现
"根据您的计划实现OAuth流程。为回调处理程序编写测试,运行测试套件并修复任何失败。"

阶段4:提交
"用描述性消息提交并打开PR"

何时使用阶段:

  • 不确定方法
  • 更改涉及多个文件
  • 不熟悉被修改的代码

跳过阶段当:

  • 可以用一句话描述差异
  • 修复拼写错误、添加日志行、重命名变量
之前: "添加OAuth"
之后:  "阅读src/auth/并理解当前会话处理。为添加OAuth创建一个计划。然后根据计划实现。编写测试并验证它们通过"

5. 包含丰富内容

提供Claude可以直接使用的支持材料。

内容类型 如何提供
文件 使用 @filename 引用文件
图像 直接粘贴截图
错误 粘贴实际错误消息,而非描述
日志 使用 cat error.log | claude 管道
URL 链接到相关文档
之前: "让仪表板看起来更好"
之后:  "[粘贴截图] 为此设计实现仪表板。
         更改后截图结果并与原设计比较。
         列出任何差异并修复它们。确保在768px和1024px断点处的响应行为"
之前: "构建失败"
之后:  "构建失败并显示此错误:[粘贴实际错误]。修复它
         并验证构建成功。解决根本原因,不要抑制错误"

输出格式

转换提示时,输出:

**原始:** [他们的提示]

**改进:**

[转换后的提示在代码块中]


**添加:**
- [缺失内容及添加]
- [另一个改进]
- [等等]

快速转换示例

Bug修复

之前: "修复登录Bug"

之后: "用户报告会话超时后登录失败。检查src/auth/中的认证流程,尤其是令牌刷新。编写一个重现问题的失败测试,然后修复它。通过运行认证测试套件验证。"

添加: 症状、位置、验证(失败测试)、成功标准

功能实现

之前: "添加搜索功能"

之后: "为产品页面实现搜索。查看ProductList.tsx中的过滤工作原理以获取模式。搜索应按名称和类别过滤。添加测试:空查询返回所有、部分匹配有效、无结果显示消息。无外部搜索库。"

添加: 位置、引用模式、特定行为、测试案例、约束

重构

之前: "让代码更好"

之后: "重构utils.js以使用ES2024功能,同时保持相同行为。具体:将回调转换为async/await,使用可选链,添加适当的TypeScript类型。每次更改后运行现有测试套件以确保无破坏。"

添加: 特定更改、约束(相同行为)、每次步骤后的验证

测试

之前: "为foo.py添加测试"

之后: "为foo.py编写测试,覆盖用户注销的边缘案例。避免模拟。使用tests/中的现有测试模式。测试案例:logged_out_user返回401、expired_session重定向到登录、invalid_token引发AuthError。"

添加: 特定边缘案例、约束(无模拟)、模式引用、测试案例

调试

之前: "API慢"

之后: "/api/orders端点耗时3+秒。分析OrderService.ts中的数据库查询。查找N+1查询或缺失索引。修复性能问题并验证响应时间低于500ms。"

添加: 特定端点、位置、要查找的内容、可测量的成功标准

UI更改

之前: "修复按钮样式"

之后: "[粘贴设计截图] 更新主按钮以匹配此设计。检查Button.tsx和tailwind.config.js中的主题。更改后截图并与设计比较。列出任何差异。"

添加: 设计引用、文件位置、视觉验证

探索

之前: "认证如何工作?"

之后: "阅读src/auth/并解释此代码库中认证如何工作。覆盖:会话如何创建、令牌如何刷新、密钥存储在哪里。总结在markdown文档中。"

添加: 特定文件、要回答的特定问题、输出格式

迁移

之前: "升级到React 18"

之后: "从React 17迁移到React 18。首先,阅读[URL]的迁移指南。然后识别所有使用弃用API的组件。一次更新一个组件,每次后运行测试。不要更改无关代码。"

添加: 分阶段方法、参考文档、增量验证、范围约束

带验证报告

之前: "修复API错误"

之后: "/api/orders端点对大订单返回500。检查OrderService.ts中的错误。解决根本原因,不要抑制错误。修复后,运行测试套件并总结您验证的内容和通过的内容。"

添加: 症状、位置、根本原因强制执行、验证报告

转换检查表

输出前,验证改进的提示有:

  • [ ] 验证 — 如何知道它有效(测试、截图、输出)
  • [ ] 位置 — 特定文件、函数或区域
  • [ ] 约束 — 不要做什么
  • [ ] 单一任务 — 不复合(如果需要则拆分)
  • [ ] 阶段 — 如果复杂,结构化探索 → 计划 → 实现
  • [ ] 根本原因 — 对于Bug:“解决根本原因,不要抑制”
  • [ ] CLAUDE.md — 如果存在,尊重项目约定

快速提示质量检查

根据这些维度评估提示:

维度 0(缺失) 1(部分) 2(完整)
验证 “测试它” 特定测试案例 + 报告
位置 “代码” “认证模块” src/auth/login.ts:42
约束 隐含 “避免X、无Y、仅根本原因”
范围 模糊 部分 单一清晰任务

快速评估:

  • 0-3:需要大量工作
  • 4-5:需要一些改进
  • 6-8:良好,微小调整

后备:如果仍然太模糊

如果用户选择"直接转换"但提示缺乏足够上下文,问一个自然问题:

“Claude需要知道什么才能做好这件事?”

不要审问 — 一个问题足够。用您学到的内容转换。


常见反模式修复

反模式 问题 修复
“修复Bug” 无症状、无位置 添加用户报告 + 在哪里查找
“添加测试” 无范围、无案例 指定边缘案例 + 测试模式
“让它更好” 无"更好"标准 定义具体改进
“实现X” 无验证 添加测试案例或成功标准
“更新代码” 无约束 添加要保留的内容、要避免的内容

成功标准 — 提示质量评估

良好转换的提示通过这些检查:

原则1:验证 ✅

检查 通过 失败
有成功标准 “运行测试”, “截图匹配”
可测量结果 “响应 < 500ms” “让它更快”
可自我验证 Claude可以检查自己的工作 需要人工判断
根本原因强制执行 “不要抑制错误” 对方法保持沉默

原则2:特异性 ✅

检查 通过 失败
文件位置 src/auth/login.ts “认证代码”
函数/类名 processPayment() “那个函数”
行号(如果相关) :42 “某个地方”
CLAUDE.md尊重 “检查项目约定” 忽略项目规则

原则3:约束 ✅

检查 通过 失败
不要做什么 “避免模拟”, “无新依赖” 开放式
范围边界 “仅接触认证模块” 无限范围
要遵循的模式 “匹配UserService.ts风格” 无引用

原则4:结构 ✅

检查 通过 失败
单一任务 一个清晰目标 多个目标
分阶段(如果复杂) “探索 → 计划 → 实现” 直接跳到代码
适当深度 匹配任务复杂性 过度/不足指定

原则5:丰富内容 ✅

检查 通过 失败
实际错误 粘贴错误消息 “它坏了”
截图(UI) 附加图像 “按钮看起来不对”
文件引用 @filename 或路径 “那个文件”

整体质量分数

分数 含义 通过原则
⭐⭐⭐⭐⭐ 优秀 全部5个
⭐⭐⭐⭐ 良好 4个中的5个
⭐⭐⭐ 可接受 3个中的5个
⭐⭐ 需要工作 2个中的5个
1个或0个

目标: 每个转换的提示应评分 ⭐⭐⭐⭐ 或 ⭐⭐⭐⭐⭐


参考文件

更多示例和模式:


来源