Claude Code 使用指南

快速入门

  1. 初始化项目

    /init  # 生成 CLAUDE.md 文件
  2. 配置文件说明

    • CLAUDE.md - 项目级配置,建议提交到 Git

    • CLAUDE.local.md - 个人配置,已自动忽略

核心功能

文件与上下文管理

文件引用

  • @文件路径 - 引用指定文件,帮助 Claude 定位上下文

  • 支持在 CLAUDE.md 中使用此语法

  • Ctrl+V 粘贴图片

记忆管理

  • /compact - 压缩上下文,保留关键信息

  • /clear - 清空当前会话上下文

  • 直接告诉claude更新信息到CLAUDE.md

工作模式

Plan Mode

  • Shift + Tab 切换模式

  • Claude 会先制定执行计划并确认

  • 适用于复杂任务和多步骤操作

Thinking Levels

  • "Think""Think more""Think a lot""Think longer""Ultrathink"

  • 从快速响应到深度分析,适用于不同复杂度的问题

快捷键与命令

快捷键

快捷键

功能

ESC

打断执行

ESC + ESC

跳转到之前的消息(丢弃无关调试信息)

Ctrl+R

反向搜索历史命令

Ctrl+S

暂存当前提示词

Shift + Tab

切换到 Plan 模式

Tab / Enter

接受/执行提示建议

系统命令

  • !命令 - 执行 bash 命令(零延迟)

  • /init - 初始化项目

  • /compact - 压缩上下文

  • /clear - 清空上下文

  • /vim - 开启 Vim 模式

  • /statusline - 自定义状态栏显示内容

  • /context - 查看 Token 消耗详情

  • /stats - 查看使用统计

  • /usage - 查看使用限额

  • /hooks - 配置生命周期钩子

  • /rename 名称 - 重命名当前会话

  • /resume 名称 - 按名称恢复会话

  • /export - 导出完整对话记录

会话管理

  • /init — 让 Claude 为项目生成 CLAUDE.md 文档

  • /rename 名称 — 重命名当前会话

  • /resume 名称 — 按名称恢复会话

  • /export — 导出完整对话记录

  • claude --continue — 继续上一个会话

  • claude --resume — 选择要恢复的会话

自定义命令

  1. .claude/commands/ 创建 .md 文件

  2. 文件名即命令名,内容为执行说明

  3. 支持参数:

    • $ARGUMENTS - 全部参数

    • $1, $2, $3... - 位置参数

示例:

# ~/.claude/commands/review-pr.md
Review PR #$1 with priority $2 and assign to $3
​
# 使用
/review-pr 456 high alice

CLI 模式

  • claude -p "任务" — 无交互模式执行任务

  • claude --continue — 继续上一个会话

  • claude --resume — 选择要恢复的会话

  • claude --teleport 会话ID — 从网页会话同步到本地

  • claude --dangerously-skip-permissions — YOLO 模式(跳过所有确认,需谨慎使用)

MCP 扩展

什么是 MCP

Model Context Protocol - Anthropic 的开放标准协议,连接 AI 与外部工具

安装与配置

安装服务器

claude mcp add <name> npx <package>
claude mcp add my-server file:///path/to/server

权限配置 编辑 .claude/settings.local.json

{
  "permissions": {
    "allow": ["mcp__服务器名"],
    "deny": []
  }
}

推荐服务器

服务器

功能

安装命令

GitHub

项目管理、CI/CD

npx @composio/mcp@latest setup github --client claude

Filesystem

文件操作

claude mcp add filesystem npx @modelcontextprotocol/server-filesystem

PostgreSQL

数据库查询

claude mcp add postgres npx @modelcontextprotocol/server-postgres

Sequential Thinking

复杂问题解决

claude mcp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking

Memory

持久化记忆

claude mcp add memory npx @modelcontextprotocol/server-memory

Exa

网络搜索

claude mcp add exa npx @exa/mcp-server

MCP 管理

  • claude mcp list - 查看已安装服务器

  • claude mcp remove <name> - 移除服务器

  • npx @modelcontextprotocol/inspector - 测试服务器

  • @<server-name> - 在对话中引用 MCP 资源

完整配置示例

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@composio/mcp@latest", "github"]
    }
  },
  "permissions": {
    "allow": ["mcp__filesystem", "mcp__github"],
    "deny": []
  }
}

注意事项

  • MCP 服务器可访问敏感数据,只安装可信任的服务器

  • 某些服务器需要额外认证(如 GitHub OAuth)

  • 企业环境建议严格控制允许的服务器列表

  • 配置更改后需重启 Claude Code

Claude Code SDK

概述

Claude Code SDK 允许你在自己的应用程序和脚本中编程调用 Claude Code。它提供与终端版相同的功能,但可以集成到自动化工作流中。

主要特性

  • 支持 TypeScript、Python 和 CLI

  • 继承项目目录下的 Claude Code 设置

  • 默认只读权限(安全考虑)

  • 流式输出,实时获取响应

  • 适合集成到大型工具链和自动化流程

基础用法

TypeScript 示例

import { query } from "@anthropic-ai/claude-code";
​
const prompt = "查找 ./src/queries 目录中的重复查询";
​
for await (const message of query({ prompt })) {
  console.log(JSON.stringify(message, null, 2));
}

Python 示例

from anthropic_claude_code import query
import json
​
prompt = "分析这个项目的代码质量"
​
async for message in query(prompt=prompt):
    print(json.dumps(message, indent=2))

权限控制

默认只有读权限。启用写权限:

for await (const message of query({
  prompt: "重构这个函数",
  options: {
    allowedTools: ["Edit", "Write"]  // 允许编辑和创建文件
  }
})) {
  console.log(message);
}

实际应用场景

  1. Git Hooks - 自动审查代码变更

  2. 构建脚本 - 代码分析和优化

  3. CI/CD 集成 - 代码质量检查

  4. 文档生成 - 自动生成项目文档

  5. 代码维护 - 批量重构和清理

在 Hook 中使用 SDK

SDK 的强大之处在于可以在 Hook 中调用,实现"Claude 审查 Claude":

Hook 配置

{
  "PostToolUse": [{
    "matcher": "Write|Edit",
    "hooks": [{
      "type": "command",
      "command": "node scripts/ai-review.js"
    }]
  }]
}

scripts/ai-review.js

import { query } from "@anthropic-ai/claude-code";

async function reviewCode() {
  const filePath = process.env.CLAUDE_TOOL_INPUT_file_path;

  // 针对不同文件类型的智能审查
  if (filePath?.endsWith('.java')) {
    const prompt = `
      审查 ${filePath} 的代码质量:
      1. 检查是否符合 Java 命名规范
      2. 查找潜在的空指针异常
      3. 评估方法复杂度
      4. 检查是否有重复代码
    `;

    for await (const message of query({ prompt })) {
      if (message.type === 'text' && message.text.includes('问题')) {
        console.error(`代码审查发现问题:\n${message.text}`);
      }
    }
  }
}

reviewCode();

Java/Python 特定示例

Java 项目质量检查

const javaPrompt = `
  分析 src/main/java 目录:
  1. 找出所有未使用的导入
  2. 检查是否有违反 SOLID 原则的类
  3. 识别可以使用 Java 8+ 特性优化的代码
`;

for await (const message of query({ 
  prompt: javaPrompt,
  options: { allowedTools: ["Read", "Grep"] }
})) {
  // 处理分析结果
}

Python 依赖分析

prompt = """
检查 Python 项目依赖:
1. 找出 requirements.txt 中未使用的包
2. 检查是否有安全漏洞
3. 建议版本升级
"""

async for message in query(prompt=prompt):
    if message.get('type') == 'text':
        print(message['text'])

最佳实践

  1. 性能优化 - SDK 调用会启动新的 Claude 实例,注意控制频率

  2. 错误处理 - 始终处理可能的异常和超时

  3. 成本控制 - 每次调用都会产生 API 费用

  4. 权限最小化 - 只授予必要的工具权限

Hooks 自动化

概述

Hooks 允许你拦截和控制 Claude 的工具调用,在执行前后运行自定义命令,实现精细化的访问控制和工作流自动化。

Hook 类型

基础 Hook

  • PreToolUse - 工具执行前运行

    • 可阻止操作(返回 exit code 2)

    • 用于访问控制、验证检查

  • PostToolUse - 工具执行后运行

    • 不能撤销已完成的操作

    • 用于后续处理、通知反馈

扩展 Hook

  • Notification - Claude 请求权限或闲置60秒时触发

  • Stop - Claude 完成响应后运行

  • SessionStart/End - 会话开始/结束时执行

  • UserPromptSubmit - 用户提交提示词时触发

可监控的工具

工具名称

用途

常见 Hook 场景

Read

读取文件内容

阻止访问敏感文件

Write

创建新文件

检查命名规范

Edit

编辑现有文件

触发代码格式化

MultiEdit

批量编辑文件

批量代码检查

Execute

执行 shell 命令

阻止危险命令

Delete

删除文件

防止误删重要文件

Move

移动/重命名文件

验证文件组织结构

Grep

搜索文件内容

过滤敏感信息

💡 提示:使用 MCP 服务器时会增加新的工具类型,可直接询问 Claude 查看当前可用工具列表。

配置位置

优先级从低到高:

  1. ~/.claude/settings.json - 全局配置

  2. .claude/settings.json - 项目配置(团队共享)

  3. .claude/settings.local.json - 个人配置(不提交)

使用 /hooks 命令可视化管理。

Hook 数据结构

Hook 命令通过标准输入接收 JSON 数据:

{
  "session_id": "2d6a1e4d-6...",
  "transcript_path": "/Users/sg/...",
  "hook_event_name": "PreToolUse",
  "tool_name": "Read",
  "tool_input": {
    "file_path": "/code/queries/.env"
  }
}

不同 Hook 类型的输入结构差异较大,开发时建议先使用调试 Hook 了解数据格式:

{
  "PostToolUse": [{
    "matcher": "*",
    "hooks": [{
      "type": "command",
      "command": "jq . > debug/hook-data.json"
    }]
  }]
}

返回码规则

返回码

含义

适用类型

0

允许操作继续

所有

2

阻止操作(stderr 信息会反馈给 Claude)

PreToolUse

其他

视为错误

所有

环境变量

Hook 脚本可访问:

  • CLAUDE_SESSION_ID - 当前会话 ID

  • CLAUDE_TRANSCRIPT_PATH - 会话记录文件路径

  • CLAUDE_HOOK_EVENT_NAME - Hook 事件名称

  • CLAUDE_TOOL_NAME - 工具名称

  • CLAUDE_TOOL_INPUT_* - 工具参数(如 CLAUDE_TOOL_INPUT_file_path

  • CLAUDE_PROJECT_ROOT - 项目根目录

  • 标准输入 - 完整的 JSON 数据

实战示例

1. 阻止访问敏感文件

{
  "PreToolUse": [{
    "matcher": "Read|Grep",
    "hooks": [{
      "type": "command",
      "command": "python -c \"import sys, json; data=json.load(sys.stdin); path=data['tool_input'].get('file_path',''); sys.exit(2 if '.env' in path else 0)\" 2>&1 | tee -a /dev/stderr"
    }]
  }]
}

2. Java 代码格式化

{
  "PostToolUse": [{
    "matcher": "Write|Edit|MultiEdit",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if [[ \"$CLAUDE_TOOL_INPUT_file_path\" == *.java ]]; then google-java-format -i \"$CLAUDE_TOOL_INPUT_file_path\" 2>/dev/null || true; fi'"
    }]
  }]
}

3. Python 类型检查

{
  "PostToolUse": [{
    "matcher": "Edit|Write|MultiEdit",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if [[ \"$CLAUDE_TOOL_INPUT_file_path\" == *.py ]]; then mypy \"$CLAUDE_TOOL_INPUT_file_path\" 2>&1 | head -20 || true; fi'"
    }]
  }]
}

4. Java 编译检查

{
  "PostToolUse": [{
    "matcher": "Edit|Write",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if [[ \"$CLAUDE_TOOL_INPUT_file_path\" == *.java ]]; then javac -Xlint:all \"$CLAUDE_TOOL_INPUT_file_path\" 2>&1 | head -20; rm -f \"${CLAUDE_TOOL_INPUT_file_path%.java}.class\" 2>/dev/null; fi'"
    }]
  }]
}

5. 阻止危险命令

{
  "PreToolUse": [{
    "matcher": "Execute",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if echo \"$CLAUDE_TOOL_INPUT_command\" | grep -qE \"rm.*-rf|:(){ :|:& };:\"; then echo \"危险命令被阻止\" >&2; exit 2; fi'"
    }]
  }]
}

6. Python 代码风格检查

{
  "PostToolUse": [{
    "matcher": "Edit|Write",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if [[ \"$CLAUDE_TOOL_INPUT_file_path\" == *.py ]]; then flake8 \"$CLAUDE_TOOL_INPUT_file_path\" --max-line-length=120 2>&1 | head -10 || true; fi'"
    }]
  }]
}

高级应用

1. 使用 SDK 进行 AI 代码审查

结合 Claude Code SDK 实现智能代码审查:

{
  "PostToolUse": [{
    "matcher": "Write|Edit",
    "hooks": [{
      "type": "command",
      "command": "node scripts/ai-code-review.js"
    }]
  }]
}

scripts/ai-code-review.js

import { query } from "@anthropic-ai/claude-code";

async function aiCodeReview() {
  const filePath = process.env.CLAUDE_TOOL_INPUT_file_path;

  // Java 代码审查
  if (filePath?.endsWith('.java')) {
    const prompt = `
      审查 ${filePath}:
      1. 是否存在重复的业务逻辑
      2. 是否有潜在的并发问题
      3. 是否符合项目的设计模式
    `;

    for await (const message of query({ prompt })) {
      if (message.type === 'text') {
        console.log("AI 代码审查结果:", message.text);
      }
    }
  }

  // Python 代码审查
  if (filePath?.endsWith('.py')) {
    const prompt = `
      审查 ${filePath}:
      1. 是否有重复的函数定义
      2. 是否正确处理了异常
      3. 是否有性能优化空间
    `;

    for await (const message of query({ prompt })) {
      if (message.type === 'text') {
        console.log("AI 代码审查结果:", message.text);
      }
    }
  }
}

aiCodeReview();

2. 会话管理

{
  "SessionStart": [{
    "hooks": [{
      "type": "command",
      "command": "echo \"会话开始: $(date)\" >> .claude/session.log"
    }]
  }],
  "SessionEnd": [{
    "hooks": [{
      "type": "command",
      "command": "python scripts/backup_session.py"
    }]
  }]
}

3. 依赖安全检查

{
  "PostToolUse": [{
    "matcher": "Edit",
    "hooks": [{
      "type": "command",
      "command": "bash -c 'if [[ \"$CLAUDE_TOOL_INPUT_file_path\" == *requirements.txt ]]; then safety check --json 2>&1 | jq -r \".vulnerabilities | length\"; fi'"
    }]
  }]
}

Hook 与 SDK 协同工作

Hook 和 SDK 的结合使用可以创建强大的自动化工作流:

  1. Hook 作为触发器 - 监听 Claude 的操作

  2. SDK 作为执行器 - 执行复杂的 AI 任务

  3. 双向反馈 - SDK 的结果可以影响原始 Claude 的行为

示例工作流:

Claude 修改代码 → Hook 触发 → SDK 审查代码 → 
反馈给 Claude → Claude 根据反馈优化代码

最佳实践

  1. 性能考虑 - Hook 会影响响应速度,保持命令轻量

  2. 错误处理 - 总是处理异常情况,避免阻塞 Claude

  3. 日志记录 - 将重要操作记录到日志文件

  4. 团队协作 - 将通用 hooks 放在项目配置,个人偏好放在 local 配置

  5. 安全第一 - 使用 PreToolUse 建立安全边界

  6. 调试先行 - 开发新 Hook 前先用日志 Hook 了解数据结构

  7. SDK 集成 - 对于复杂的代码分析任务,考虑使用 SDK

常见问题

Q: Hook 执行失败会怎样? A: PreToolUse 失败(返回码2)会阻止工具执行,PostToolUse 失败不影响已完成的操作。

Q: 如何调试 Hook? A: 使用 jq . > debug.json 记录输入数据,或在脚本中添加日志输出。

Q: Hook 对性能的影响? A: 简单的 Hook(如格式化)影响很小,复杂操作(如 AI 审查)会明显增加延迟。

Q: Hook 和 SDK 的区别? A: Hook 是被动响应 Claude 的操作,SDK 是主动调用 Claude 执行任务。两者可以结合使用。

Q: 如何在 Hook 中使用 SDK? A: 在 Hook 脚本中导入 SDK,创建新的 Claude 实例进行分析。注意这会产生额外的 API 调用费用。

Skills 功能详解

Skills 是 Claude Code 的智能能力扩展系统,让你能够将专业知识、工作流程和最佳实践封装成模块化组件。与 Hooks(事件驱动)和 SDK(编程调用)不同,Skills 通过自然语言理解实现智能激活。

核心概念

什么是 Skills

Skills 本质上是一个包含 SKILL.md 文件的文件夹,它教会 Claude 如何处理特定领域的任务。就像《黑客帝国》中 Neo 瞬间学会功夫一样,Skills 让 Claude 即时获得专业能力。

工作原理

  1. 元数据预加载 - Claude 启动时加载所有 Skills 的元数据(约 100 tokens)

  2. 智能识别 - 根据用户需求和上下文,Claude 自主判断需要哪个 Skill

  3. 按需加载 - 仅在需要时加载完整 Skill 内容,避免上下文膨胀

  4. 专家模式 - 加载后 Claude 按照 Skill 定义的专业方式处理任务

Skill 结构

基本结构

my-skill/
├── SKILL.md          # 必需:核心定义文件
├── instructions.md   # 可选:详细操作指南
├── templates/        # 可选:代码模板
├── examples/         # 可选:使用示例
└── resources/        # 可选:参考资料

SKILL.md 格式

---
name: skill-name
description: 简短描述这个 Skill 的用途
version: 1.0.0
tags: [tag1, tag2, tag3]
---

# Skill 名称

## 功能概述
详细描述这个 Skill 能做什么

## 核心能力
- 能力1:具体描述
- 能力2:具体描述
- 能力3:具体描述

## 使用场景
描述什么情况下应该使用这个 Skill

## 工作流程
1. 步骤1
2. 步骤2
3. 步骤3

部署方式

Skills 可以部署在三个位置:

  1. 全局 Skills - ~/.claude/skills/

    • 个人所有项目都可使用

    • 适合通用工具类 Skills

  2. 项目 Skills - .claude/skills/

    • 仅在当前项目中可用

    • 适合项目特定的 Skills

  3. 远程 Skills - 通过 URL 或包管理器

    • 社区共享的 Skills

    • 第三方提供的专业 Skills

实战示例

1. Spring Boot 开发 Skill

创建一个完整的 Spring Boot 开发助手:

.claude/skills/spring-boot-expert/SKILL.md:

---
name: spring-boot-expert
description: Spring Boot 全栈开发专家,提供架构设计和代码生成
version: 2.0.0
tags: [java, spring, backend, microservices]
---

# Spring Boot Expert

## 核心能力

### 1. 项目架构
- 创建标准的分层架构(Controller, Service, Repository)
- 配置多模块项目结构
- 设置环境配置(dev, test, prod)

### 2. 代码生成
- 自动生成 CRUD 操作
- 创建 RESTful API 端点
- 生成 Swagger/OpenAPI 文档

### 3. 最佳实践
- 统一异常处理
- 全局响应封装
- 分页查询优化
- 缓存策略实施

## 激活场景
- 用户提到 Spring Boot、JPA、REST API
- 创建 Java 微服务项目
- 需要数据库操作代码

## 工作流程
1. 分析需求,确定实体和业务逻辑
2. 生成项目结构和配置文件
3. 创建实体类和数据库映射
4. 实现服务层和控制器
5. 添加测试用例

templates/entity.java:

package ${package}.entity;

import lombok.Data;
import javax.persistence.*;
import java.time.LocalDateTime;

@Data
@Entity
@Table(name = "${table_name}")
public class ${EntityName} {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(name = "created_at")
    private LocalDateTime createdAt;

    @Column(name = "updated_at")
    private LocalDateTime updatedAt;

    @PrePersist
    protected void onCreate() {
        createdAt = LocalDateTime.now();
        updatedAt = LocalDateTime.now();
    }

    @PreUpdate
    protected void onUpdate() {
        updatedAt = LocalDateTime.now();
    }
}

2. React 组件开发 Skill

.claude/skills/react-component-builder/SKILL.md:

---
name: react-component-builder
description: React 组件开发专家,支持 TypeScript 和现代 Hooks
version: 1.5.0
tags: [react, typescript, frontend, components]
---

# React Component Builder

## 核心能力

### 1. 组件创建
- 函数组件与 Hooks
- TypeScript 类型定义
- 组件性能优化

### 2. 状态管理
- useState, useReducer 最佳实践
- Context API 应用
- 自定义 Hooks 开发

### 3. 样式方案
- CSS Modules
- Styled Components
- Tailwind CSS 集成

## 代码规范
- 使用函数组件而非类组件
- Props 使用 TypeScript 接口定义
- 组件按功能拆分,保持单一职责
- 使用 React.memo 优化渲染性能

templates/component.tsx:

import React, { useState, useCallback, memo } from 'react';
import styles from './${ComponentName}.module.css';

interface ${ComponentName}Props {
  title: string;
  onAction?: (value: string) => void;
}

export const ${ComponentName} = memo<${ComponentName}Props>(({ 
  title, 
  onAction 
}) => {
  const [value, setValue] = useState('');

  const handleChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
    const newValue = e.target.value;
    setValue(newValue);
    onAction?.(newValue);
  }, [onAction]);

  return (
    <div className={styles.container}>
      <h2>{title}</h2>
      <input 
        type="text" 
        value={value} 
        onChange={handleChange}
        className={styles.input}
      />
    </div>
  );
});

${ComponentName}.displayName = '${ComponentName}';

3. 代码审查 Skill

.claude/skills/code-reviewer/SKILL.md:

---
name: code-reviewer
description: 智能代码审查专家,提供安全、性能和质量分析
version: 3.0.0
tags: [review, quality, security, performance]
---

# Code Reviewer

## 审查维度

### 1. 代码质量
- 命名规范检查
- 函数复杂度分析
- 代码重复检测
- SOLID 原则遵循

### 2. 安全审查
- SQL 注入风险
- XSS 攻击防护
- 敏感信息暴露
- 依赖漏洞扫描

### 3. 性能优化
- 算法时间复杂度
- 数据库查询优化
- 内存泄漏检测
- 异步操作优化

## 审查流程
1. 静态代码分析
2. 潜在问题识别
3. 改进建议生成
4. 优先级排序

## 输出格式
- 🔴 严重问题:必须修复
- 🟡 警告:建议改进
- 🟢 建议:可选优化
- 💡 最佳实践提示

创建自定义 Skills

方法一:使用 skill-creator

最简单的方式是使用官方的 skill-creator:

# 在 Claude 中运行
/skill-creator "创建一个 Python FastAPI 开发专家 Skill"

Claude 会自动生成完整的 Skill 结构。

方法二:手动创建

  1. 创建 Skill 文件夹

    mkdir -p .claude/skills/my-custom-skill
  2. 编写 SKILL.md

    ---
    name: my-custom-skill
    description: 我的自定义技能
    version: 1.0.0
    ---
      
    # 技能内容...
  3. 添加支持文件

    • 模板文件

    • 示例代码

    • 参考文档

高级特性

1. 动态模板

Skills 可以根据项目上下文动态调整行为:

## 代码生成策略

根据项目环境自动适配:
- 检测到 TypeScript → 生成类型安全代码
- 检测到 ESLint → 遵循项目代码规范
- 检测到测试框架 → 同时生成测试用例

2. Skill 组合

多个 Skills 可以协同工作:

---
name: fullstack-developer
dependencies: [react-expert, node-backend, database-designer]
---

# 全栈开发者 Skill
整合前端、后端和数据库设计能力

3. 条件激活

通过关键词和模式匹配控制激活:

---
name: performance-optimizer
activation_keywords: [slow, optimize, performance, 性能优化]
activation_patterns: ["查询.*慢", "页面.*卡顿"]
---

Skills vs 其他功能

特性

Skills

Slash Commands

Hooks

SDK

触发方式

智能识别

手动输入 /cmd

事件响应

API 调用

使用场景

领域专家

快捷操作

自动化

外部集成

上下文感知

✅ 完全

❌ 无

⚠️ 有限

✅ 完全

学习曲线

灵活性

最高

最佳实践

  1. 单一职责 - 每个 Skill 专注一个领域

  2. 清晰文档 - 明确说明能力边界和使用场景

  3. 示例驱动 - 提供丰富的代码示例

  4. 版本管理 - 使用语义化版本号

  5. 性能考虑 - 避免在元数据中包含大量内容

  6. 测试验证 - 创建测试场景验证 Skill 行为

调试技巧

  1. 查看已加载 Skills

    /skills
  2. 测试 Skill 激活

    # 使用相关关键词测试
    "帮我创建一个 Spring Boot 项目"  # 应该激活 spring-boot-expert
  3. 检查 Skill 内容

    cat .claude/skills/my-skill/SKILL.md

社区资源

常见问题

Q: Skills 会增加 token 消耗吗? A: 元数据始终加载(约 100 tokens),完整内容仅在需要时加载。

Q: 如何防止 Skill 误激活? A: 使用明确的 activation_keywords 和描述,避免过于宽泛的触发条件。

Q: Skills 可以调用外部 API 吗? A: Skills 本身不能,但可以指导 Claude 使用 MCP 工具或生成调用 API 的代码。

Q: 项目 Skills 会覆盖全局 Skills 吗? A: 是的,项目级 Skills 优先级更高。

Q: 如何共享我的 Skills? A: 可以发布到 GitHub,或提交到社区 Skills 仓库。


Claude Code 使用指南
https://blog.178688.xyz/archives/claude-code-shi-yong-zhi-nan
作者
Administrator
发布于
2026年01月06日
许可协议