claude code从入门到精通(5):prompt与skill
Prompt 决定 Claude 这一次怎样理解和执行任务,Skill 则把经过验证的 Prompt、步骤和资料保存成可复用的工作流。
本篇只做入门介绍:先说明 Prompt 为什么重要、怎样写得更有效,再介绍 Skill 的作用、基本结构和查找方法。至于怎样从零设计并测试一个高质量 Prompt 或 Skill,后面会单独展开。
1. Prompt 是什么,为什么 Prompt 很重要
Prompt 通常被翻译为“提示词”,指的是我们提供给模型的输入。在 Claude Code 中,它不只是一个问题,还可能成为一次开发任务的起点:Claude 会根据 Prompt 阅读代码、修改文件、执行命令并验证结果。
因此,Prompt 更像一份交给开发者的任务说明,而不是某种需要背诵的“咒语”。
例如,下面这句 Prompt 并没有错:
帮我实现一个登录功能。
但它留下了太多需要猜测的内容:
- 登录接口放在哪里?
- 使用 Session 还是 JWT?
- 用户数据从哪里查询?
- 密码如何校验?
- 哪些情况算实现完成?
模型只能根据当前代码和常见做法自行选择。即使生成的代码能够运行,也可能与项目原有架构不一致。
Anthropic 在 Prompt 指南中给出了一条很实用的判断标准:把 Prompt 交给一个对任务背景了解不多的同事,如果他也不知道应该怎样完成,Claude 大概率同样会困惑。[1]
Prompt 重要,不是因为它能突破模型能力上限,而是因为它可以减少歧义,让模型知道目标、上下文、约束和完成标准。对于 Claude Code 这种能够直接修改代码的 Agent,任务越模糊,返工和误改的概率就越高。
2. Prompt 的 5 个实用编写技巧
2.1 任务描述要具体,不要只给一个方向
差的写法:
帮我做一个登录功能。
更具体的写法:
在 /api/auth/ 目录下创建登录 API:
- 接口为 POST /api/auth/login
- 接受 { email, password }
- 使用 bcrypt 验证密码
- 使用项目已有的 Prisma Client 查询 User 表
- 登录成功后返回 JWT
- 邮箱或密码错误时返回 401
后一种写法明确了文件范围、接口形式、数据结构和关键技术选择。Claude 不需要替你决定这些已经确定的需求。
具体不等于把每一行代码都规定好。如果你并不确定技术方案,可以描述目标和约束,让 Claude 先调查项目再提出方案。真正需要避免的是:需求已经存在于你的脑中,却没有写进 Prompt。
2.2 引用已有代码作为参考
如果项目中已经有相似实现,直接给出文件路径往往比写一大段抽象要求更有效:
参考 /api/bookmarks/route.ts 的代码风格,
为 /api/tags/ 创建类似的 CRUD 接口。
要求:
- 数据模型使用 prisma/schema.prisma 中的 Tag
- 沿用现有接口的错误处理和响应结构
- 不修改 Bookmark 相关代码
这段 Prompt 同时告诉 Claude:
- 到哪里查看现有模式;
- 哪个数据模型可以使用;
- 哪些行为需要保持一致;
- 哪些文件不在修改范围内。
Claude Code 本身能够搜索代码,但你已经知道的路径、错误信息、复现步骤和参考实现,应该直接提供。这些真实上下文通常比“你是一名资深全栈工程师”之类的角色描述更有价值。[1]
2.3 复杂任务先制定计划,确认后再执行
当任务涉及多个模块,或者你还不确定 Claude 会修改哪些文件时,可以先让它调查和规划:
我想给书签管理器添加搜索功能。
请先:
1. 分析书签列表和数据获取相关代码;
2. 列出需要修改的文件;
3. 说明准备采用前端过滤还是服务端搜索,以及选择理由;
4. 给出验证方案。
等我确认计划后再开始修改文件。
这样可以在真正产生代码改动之前发现方向性问题。Claude Code 官方也建议在复杂任务中先探索、再规划、最后实现和验证。[2]
不过,不是所有任务都需要计划。修改一个错别字、调整一条文案或修复位置明确的小问题时,直接执行更高效。计划的作用是降低复杂任务的误判风险,而不是给每次修改增加固定仪式。
2.4 一次只做一件事
差的写法:
帮我同时添加搜索功能、标签管理、用户认证和导出功能。
更好的写法:
先实现书签搜索功能:
- 在书签列表页添加搜索框
- 支持按标题和描述搜索
- 搜索时实时过滤结果,暂时使用前端过滤
- 不修改标签、认证和导出功能
把多个独立需求放进同一个 Prompt,会让修改范围、上下文和测试边界迅速扩大。一旦结果出现问题,也很难判断是哪部分需求造成的。
更稳妥的做法是把任务拆成可以单独验证的小步骤。完成搜索并通过测试后,再开始标签管理。这样更容易审查 diff,也更容易回退错误修改。
2.5 给 Claude 明确的验收标准
只告诉 Claude“做什么”还不够,最好再说明“怎样算完成”:
修复用户退出登录后仍能访问 /dashboard 的问题。
验收标准:
- 未登录用户访问 /dashboard 时跳转到 /login
- 已登录用户仍能正常访问
- 补充对应测试
- 运行认证模块测试和类型检查
- 最后汇报修改文件、执行命令和测试结果
Anthropic 将“让 Claude 能验证自己的工作”列为 Claude Code 的关键实践。测试、构建命令、预期输出和界面截图都可以成为验证依据。[2]
没有验收标准时,Claude 很容易在“代码看起来已经写完”的位置停止;有验收标准后,它才能根据结果继续检查和修正。
3. 什么是优质 Prompt,去哪里寻找
优质 Prompt 不一定很长,也不一定包含复杂格式。它最重要的特征是:针对明确任务,经过真实输入和输出的反复验证。
一个 Prompt 是否优质,可以从下面几个问题判断:
- 它解决的任务是否具体?
- 是否提供了完成任务所需的上下文?
- 是否写清了修改边界和输出要求?
- 是否有可以重复执行的验收标准?
- 在多次真实任务中,它是否比简单 Prompt 更稳定?
Anthropic 的 Prompt Engineering 文档建议先定义成功标准和评估方式,再开始优化 Prompt。[3] 如果没有评价标准,只比较哪段 Prompt 更长、措辞更专业,实际上无法证明它更好。
因此,不要因为一段 Prompt 是 AI 生成的就直接使用,也不要因为它在社区中收藏量高就默认有效。AI 可以帮助整理 Prompt,但最终仍要通过真实任务验证。
寻找可靠 Prompt 时,可以优先查看下面这些资料:
| 来源 | 适合查看的内容 |
|---|---|
| Anthropic Prompting Best Practices | 清晰指令、上下文、示例和结构化 Prompt |
| Claude Code Best Practices | 面向代码修改、规划和验证的 Prompt 示例 |
| Anthropic Prompt Engineering Interactive Tutorial | 可以逐步练习和比较结果的官方教程 |
| Anthropic Claude Cookbooks | 面向具体任务的 Notebook 和示例 |
除了官方资料,真实项目中的 Prompt 往往更值得参考,例如团队已经长期使用的代码审查清单、发布流程和故障排查步骤。因为它们通常经过了实际任务的反馈,而不是为了展示而临时生成。
如果想集中浏览现成 Prompt,还可以使用下面几个发现平台:
| 平台 | 特点 | 使用时需要注意 |
|---|---|---|
| Claude Code Prompt Library | Anthropic 官方整理,按 Claude Code 任务和角色分类,并解释 Prompt 为什么有效 | 最适合本文场景,但官方也将这些 Prompt 定位为起点,需要结合项目修改 |
| prompts.chat | 开源社区 Prompt 库,支持搜索、分享和自行部署 | 覆盖模型和任务较广,社区内容质量并不统一 |
| FlowGPT | 社区 Prompt 商店,包含 Programming、Productivity 等分类 | 娱乐和角色扮演内容较多,查找技术 Prompt 时需要主动筛选 |
| PromptBase | 商业 Prompt 市场,覆盖 Claude、ChatGPT 和其他生成模型 | 同时包含大量图像、视频 Prompt;付费和评分不能代替实际验证 |
对 Claude Code 用户来说,优先级应该是:先看官方 Prompt Library,再到社区平台寻找不同写法,最后把候选 Prompt 改写成符合自己代码库、约束和验收标准的版本。
社区 Prompt 网站可以用来发现思路,但使用前至少要检查:
- 是否说明适用模型和使用场景;
- 是否给出真实输入与输出;
- 是否包含失败案例或限制;
- 是否仍在维护;
- 是否能够在你的项目中重复得到类似结果。
优质 Prompt 的判断依据应该是验证结果,而不是作者名气、网站收录量或 Prompt 长度。
4. Skill 是什么,为什么需要 Skill
Prompt 更适合描述当前任务,但很多工作会反复出现:
- 每次提交前都要按同一套规则审查代码;
- 每次发布都要执行相同的测试和构建步骤;
- 每次写技术博客都要遵循同一套结构和引用规范;
- 每次处理某类文件都要使用相同的工具和流程。
如果每次都从头编写 Prompt,很容易遗漏步骤,不同版本也会逐渐分叉。更重要的是,已经积累的经验只存在于某次聊天或某个复制粘贴文件中,很难继续维护和分享。
Skill(技能)可以理解为一个封装了特定能力的可复用指令集。它把完成某类任务需要的说明、步骤、参考资料和辅助工具放进一个目录,让 Claude 在需要时读取并按照固定流程工作。[6]
可以把它理解成给 AI 准备的“菜谱”:
- Prompt 是这次告诉厨师“做一道红烧肉”以及当前的具体要求;
- Skill 是经过多次调整后保存下来的食谱,记录配料、步骤、火候和检查标准。
这个比喻的重点不是让 Skill 机械地重复内容,而是把已经验证有效的工作方法保存下来。以后遇到同类任务,可以在原有基础上继续改进,而不是重新从零开始。
Claude Code 可以根据 Skill 的 description 判断它是否适合当前任务,也可以通过 /skill-name 手动调用。Skill 的完整内容只在被使用时加载,因此较长的专业流程不需要全部塞进每一次对话。[6]
5. Skill 的基本结构
很多人看到 SKILL.md,会认为 Skill 只是一个 Markdown 文件。准确地说,Skill 是一个目录,SKILL.md 是其中必需的入口文件,其他文件按任务需要添加。
Agent Skills 开放规范给出的基础结构如下:[7]
skill-name/
├── SKILL.md # 必选:元数据和核心指令
├── scripts/ # 可选:可执行脚本
├── references/ # 可选:参考文档
└── assets/ # 可选:模板、图片和数据文件
如果把 Skill 比作一本食谱:
SKILL.md是食谱本身,说明什么时候使用、执行哪些步骤;scripts/是配套工具,把格式转换、数据校验等确定性操作写成脚本;references/是参考资料,例如 API 文档、技术规范和检查清单;assets/是任务需要的静态资源,例如模板、示例文件、图片和 Schema。
不同 Skill 也可能根据需要使用 examples/、templates/、resources/ 或配置文件。目录名称不是重点,重点是让 SKILL.md 清楚说明这些文件有什么作用、什么时候读取。
一个最小的 SKILL.md 由 YAML frontmatter 和 Markdown 指令组成:
---
name: code-review
description: Reviews code changes for correctness, maintainability, and missing tests. Use when the user asks to review a diff or pull request.
---
# Code review
1. Read the changed files and relevant tests.
2. Report concrete problems with file and line references.
3. Explain the impact of each problem.
4. Do not modify files unless the user asks for fixes.
其中:
name是 Skill 的名称,通常使用小写字母和短横线;description说明 Skill 能做什么,以及应该在什么情况下使用;- Markdown 正文记录具体步骤、要求和注意事项。
Agent Skills 规范要求 name 与父目录名一致,并要求 description 同时描述功能和触发场景。[7] 其他目录和文件都不是必选项。只需要几条指令的 Skill,保留一个 SKILL.md 就够了;任务涉及脚本、模板或大量资料时,再按需拆分。
6. 什么是优质 Skill,如何寻找优质 Skill
优质 Skill 的核心不在于文件数量,而在于它能否稳定完成一个边界清晰的任务。
判断一个 Skill 是否值得使用,可以检查:
- 目标是否具体:是“审查 REST API”,还是含糊的“帮助写代码”;
- 触发描述是否准确:
description是否说明了什么时候应该使用; - 步骤是否可执行:是否写清输入、执行流程、输出和停止条件;
- 资料是否可靠:引用的规范、模板和 API 是否有明确来源;
- 脚本是否可检查:依赖和执行方式是否清楚,代码是否能够审计;
- 是否经过验证:是否有真实示例、测试记录或长期使用反馈;
- 是否仍在维护:最近更新、Issue、许可证和兼容性是否明确。
查找 Skill 时,应该先看官方资源,再把社区仓库和聚合平台作为发现入口。
6.1 官方资源
- anthropics/skills:Anthropic 官方 Skill 示例、模板和规范仓库;[8]
- Claude Code Skills 文档:查看当前 Skill 的结构、调用方式和配置;
- Agent Skills Specification:查看开放格式对
SKILL.md和目录结构的要求。
官方仓库中的内容也主要用于示范和学习。Anthropic 明确提醒,关键任务仍应在自己的环境中充分测试。[8]
6.2 社区仓库
草稿中列出的几个社区仓库各有不同侧重:
| 仓库 | 特点 |
|---|---|
| ComposioHQ/awesome-claude-skills | 按文档、开发和业务等类别整理 Skill 与相关资源 |
| alirezarezvani/claude-skills | 覆盖开发、产品、研究和业务等多种任务 |
| travisvn/awesome-claude-skills | 以精选列表形式整理社区 Skill、工具和资料 |
| glebis/claude-skills | 提供面向具体工作流的 Skill 和配套脚本 |
这些仓库适合发现候选 Skill,但“被收录”不等于“已经适合你的项目”。仍然要阅读原始 SKILL.md、脚本、依赖和最近提交。
6.3 Skill 发现平台
| 平台 | 作用 |
|---|---|
| skills.sh | 搜索和浏览不同仓库中的 Agent Skills |
| SkillsMP | 按分类和关键词发现社区 Skill |
| AgentSkills.io | 提供 Agent Skills 开放规范,而不是质量排行榜 |
平台上的数量会持续变化,而且不同平台的收录口径并不一致,因此没有必要比较“谁的 Skill 最多”。目录适合帮助你找到候选项,质量判断仍要回到 Skill 的源码和真实测试。
最后需要强调:Skill 并不是越多越好。
每个 Skill 都应该对应一个明确且重复出现的工作流。安装大量功能重叠、描述模糊或从未使用的 Skill,只会增加选择成本,还可能让 Claude 在相似任务中触发错误的流程。
更合理的做法是:先从真实任务中找到反复出现的问题,再选择一个匹配的 Skill;经过测试后保留,效果不好就修改或删除。Skill 的价值不在收藏数量,而在于它是否把一套经过验证的工作方法稳定地复用了下来。
参考资料
- Anthropic:Prompting best practices
- Claude Code Docs:Best practices for Claude Code
- Anthropic:Prompt engineering overview
- Anthropic:Prompt Engineering Interactive Tutorial
- Anthropic:Claude Cookbooks
- Claude Code Docs:Extend Claude with skills
- Agent Skills:Specification
- Anthropic:anthropics/skills
- ComposioHQ:awesome-claude-skills
- alirezarezvani:claude-skills
- travisvn:awesome-claude-skills
- glebis:claude-skills
- skills.sh:The Agent Skills Directory
- SkillsMP:Agent Skills Marketplace
- Claude Code Docs:Prompt library
- prompts.chat:AI Prompts Community
- FlowGPT:Prompt Store
- PromptBase:Prompt Marketplace
更多推荐

所有评论(0)