目标:掌握高效提示词写法,使用官方 Prompt Library 提升效率
预计时间:30 分钟
对应官方文档:Prompt Library
为什么提示词很重要?
同样的需求,不同的表达方式,Claude 的输出质量可能天差地别。
❌ 差:"帮我改代码"
✅ 好:"请重构以下函数,要求:1) 添加类型注解 2) 减少嵌套层级 3) 保持原有功能"
提示词设计原则
1. 具体而非模糊
❌ "优化这个函数"
✅ "这个函数处理 10万+ 数据时很慢,请优化时间复杂度,目标 O(n)"
2. 提供上下文
❌ "修复这个 bug"
✅ "当用户输入包含 emoji 时,以下正则表达式会匹配失败。请修复:"
3. 指定输出格式
✅ "请按以下格式输出:
- 问题原因(1-2句)
- 修复方案(代码块)
- 测试建议"
4. 分步骤请求
✅ "请分两步:
1. 先分析当前代码的问题
2. 给出重构后的代码"
常用提示词模板
代码审查
请审查 @src/module.py,重点关注:
1. 安全性(SQL 注入、XSS、敏感信息泄露)
2. 性能(N+1 查询、内存泄漏)
3. 可维护性(复杂度、重复代码)
4. 测试覆盖
对每条问题给出:严重程度 + 具体位置 + 修复建议
重构请求
请重构 @src/old_module.py,要求:
- 遵循 SOLID 原则
- 添加完整的类型注解
- 函数长度不超过 30 行
- 添加单元测试
- 保持向后兼容
重构后运行测试验证:pytest tests/test_module.py -v
添加功能
请为 API 添加分页功能:
- 接口:GET /api/users
- 参数:page (默认1), per_page (默认20, 最大100)
- 返回:{items, total, page, per_page, total_pages}
- 使用游标分页而非 OFFSET
- 更新对应的 OpenAPI schema
调试协助
测试失败信息:
FAILED tests/test_api.py::test_create_user - AssertionError: 201 != 422
相关代码:
- @src/routes/users.py
- @tests/test_api.py::test_create_user
请:
1. 分析失败原因
2. 修复代码
3. 运行测试验证
使用 Prompt Library
Claude Code 内置了官方提示词库,按场景分类:
查看可用提示词
> /prompts
Categories:
- debugging 调试相关
- refactoring 重构相关
- testing 测试相关
- documentation 文档相关
- security 安全相关
使用提示词
> /prompt debugging/analyze-error
[自动加载预设提示词模板]
自定义提示词
在 .claude/prompts/ 目录创建:
# .claude/prompts/my-team/code-review.md
## 团队代码审查规范
审查 @{{file}} 时,请按以下优先级检查:
1. **P0 - 阻塞性问题**
- 安全漏洞
- 数据丢失风险
- 违反法律法规
2. **P1 - 严重问题**
- 性能回归
- 错误处理缺失
- 并发安全问题
3. **P2 - 建议**
- 代码风格
- 注释完整性
- 可测试性
输出格式:
- [P0/P1/P2] 位置: 问题描述 → 修复建议使用:
> /prompt my-team/code-review src/main.py
高级技巧
少样本提示(Few-shot)
给 Claude 示例,让它模仿风格:
请按照以下风格添加日志:
示例 1:
```python
logger.info("user_login", extra={
"user_id": user.id,
"ip": request.client.host,
"method": "password"
})
现在请为以下函数添加相同风格的日志: @src/auth.py::logout
### 角色设定
你是一位资深 Python 工程师,擅长性能优化和代码简洁性。 请用专业的眼光审查以下代码,给出具体的改进建议。
### 约束条件
请实现功能 X,约束:
- 不使用第三方库
- 时间复杂度 O(n log n)
- 空间复杂度 O(1)
- 兼容 Python 3.9
---
## 提示词检查清单
提交请求前,检查是否包含:
- [ ] 具体目标(做什么)
- [ ] 相关文件(@引用)
- [ ] 约束条件(不要做什么)
- [ ] 输出格式(怎么呈现)
- [ ] 验证方式(如何确认)
---
## 补充:Prompt Library 工作流与实战
### Prompt Library 工作流程
```mermaid
flowchart TD
A[遇到重复任务] --> B{已有 Prompt?}
B -->|是| C[直接调用 /prompts]
B -->|否| D[分析任务特征]
D --> E[编写 Prompt 模板]
E --> F[放入 .claude/prompts/]
F --> G[团队评审/优化]
G --> H[发布到 Prompt Library]
C --> I[应用 Prompt 执行任务]
H --> I
I --> J[收集反馈]
J --> K{需要改进?}
K -->|是| L[迭代更新模板]
L --> H
K -->|否| M[沉淀为团队资产]
高级配置与代码示例
示例 1:安全审查 Prompt 模板(团队级)
创建 .claude/prompts/security/audit.md:
# 安全代码审查
审查目标:@{{file}}
## 审查维度
1. **注入攻击**:SQL、命令、LDAP、XPath 注入
2. **敏感数据**:密码、Token、密钥硬编码或泄露
3. **权限控制**:越权访问、IDOR、未授权操作
4. **输入验证**:文件上传、路径遍历、SSRF
5. **依赖风险**:已知 CVE、过时组件
## 输出格式
对每个问题按以下格式输出:[严重级别: P0/P1/P2] 位置: :行号 风险: 一句话描述攻击场景 证据: 涉及的代码片段 修复: 具体的代码修改建议
## 特殊规则
- 发现 P0 级问题立即停止,不再继续其他检查
- 如果使用了框架内置安全功能(如 Django ORM),给予正面确认
- 对误报率高的模式(如拼接 SQL)要区分是字符串处理还是真注入
使用方式:
> /prompt security/audit src/views/users.py
示例 2:API 设计 Prompt 模板(含 OpenAPI 生成)
创建 .claude/prompts/api/design-endpoint.md:
# REST API 端点设计
需求:@{{requirement}}
技术栈:@{{stack}}
## 设计规范
1. 遵循 RESTful 原则,使用名词复数作为资源路径
2. HTTP 方法语义:GET 查询、POST 创建、PUT 全量更新、PATCH 部分更新、DELETE 删除
3. 状态码使用:201 创建成功、204 删除成功、400 参数错误、401 未认证、403 无权限、404 不存在、409 冲突
4. 响应体统一包装:{ "data": ..., "meta": { "request_id": "...", "timestamp": "..." } }
5. 错误响应:{ "error": { "code": "...", "message": "...", "details": [...] } }
## 输出要求
1. 给出 URL 路径和方法
2. 给出请求/响应的 JSON Schema
3. 给出 Python/FastAPI 或 Node/Express 的实现代码
4. 生成对应的 OpenAPI 3.0 YAML 片段
5. 列出需要添加的单元测试用例(只列场景,不写完整代码)使用方式:
> /prompt api/design-endpoint "用户下单并扣除库存" "FastAPI + SQLAlchemy"
示例 3:Few-shot 风格迁移完整示例
# 风格迁移:统一日志格式
请按照以下风格为所有函数添加结构化日志:
## 示例 1:普通操作
```python
# 之前
print(f"User {user_id} logged in")
# 之后
logger.info("user_login", extra={
"user_id": str(user_id),
"ip_address": request.client.host,
"user_agent": request.headers.get("user-agent"),
"event_type": "authentication"
})示例 2:异常处理
# 之前
try:
process_payment(order_id)
except Exception as e:
logger.error(f"Payment failed: {e}")
# 之后
try:
process_payment(order_id)
except PaymentError as e:
logger.error("payment_failed", extra={
"order_id": order_id,
"error_code": e.code,
"error_message": str(e),
"event_type": "payment",
"severity": "high"
}, exc_info=True)待处理文件
@src/orders.py @src/inventory.py
要求:
- 所有日志使用
logger.info|warning|error方法 - extra 字典必须包含
event_type字段 - 异常必须记录
exc_info=True - 用户相关操作必须包含
user_id - 不要修改业务逻辑,只添加/替换日志语句
---
### 实战场景
#### 场景一:标准化 API 接口设计(使用 Prompt 模板)
**背景**:团队新启动微服务拆分项目,需要设计 20+ 个 REST 接口,但不同开发者设计风格差异大,导致前端对接困难,文档也不统一。
**步骤**:
1. 架构师编写 `api/design-endpoint` Prompt 模板,强制统一响应格式、状态码语义、字段命名(camelCase vs snake_case)
2. 每位后端开发者在设计接口时,先调用 `/prompt api/design-endpoint` 描述需求
3. Claude 按模板输出 URL、Schema、实现代码、OpenAPI 片段
4. 开发者微调后直接提交 PR
**结果**:
- 20 个接口的风格 100% 统一,前端无需适配不同格式
- 设计阶段直接产出 OpenAPI 片段,Swagger 文档自动生成
- 每个接口附带测试建议,测试用例覆盖率提升
- 新人通过 Prompt 模板快速理解团队的 API 设计规范
#### 场景二:安全漏洞扫描(自定义审查 Prompt)
**背景**:公司接受外部安全审计前,需要自查代码中的高风险漏洞。人工逐行审查 5 万行代码耗时且容易遗漏。
**步骤**:
1. 安全负责人编写 `security/audit` Prompt,明确 P0/P1/P2 分级标准和输出格式
2. 将代码库按模块拆分,分批次调用 `/prompt security/audit` 审查关键文件
3. 对 AI 发现的每个问题人工复核,确认后创建 Jira 任务
4. 对误报的案例补充说明,迭代优化 Prompt 减少误报
**结果**:
- 在 2 天内完成全量代码扫描,人工审查预计需要 2 周
- 发现 3 个 P0 级问题(SQL 注入、硬编码密钥、越权访问),均在审计前修复
- Prompt 经过 3 轮迭代后,误报率从 40% 降低到 8%
- 形成可复用的安全审查资产,后续新代码可快速复用
---
## 下一步
→ [04. Skills:扩展 AI 能力](./04-Skills.md)