Claude Code 配置优先级

2026-08-30 浏览 (1)

Claude Code 配置优先级

理解 CLAUDE.md、Skills、Hooks 的加载顺序和优先级

配置加载顺序

Claude Code 的配置是累加的,不是简单的覆盖。加载顺序如下:

1. ~/.claude/CLAUDE.md          # 全局配置,最先加载
         ↓
2. 项目 CLAUDE.md               # 项目级配置
   或 .claude/CLAUDE.md
         ↓
3. Skills SKILL.md              # 通过 Skill 工具加载
         ↓
4. Hooks 输出                   # 注入到 prompt

优先级规则

不是"覆盖",而是"先执行"

Claude 作为 LLM,会遵循它最先看到的明确指令。后面的指令不会覆盖前面的,而是被忽略或变成补充。

示例:Ferris 显示顺序问题

问题:我们在 SKILL.md 和 Hook 中都指定了 Ferris 的显示格式(文字在上),但 Claude 总是用另一种格式显示(文字在下)。

原因~/.claude/CLAUDE.md 里有这样的配置:

**On FIRST Rust skill load per session, show this Ferris:**

    _~^~^~_
\) /  o o  \ (/
  '_   -   _'
  / '-----' \

🦀 **Rust Skills Loaded**

Claude 最先看到这个指令,所以在加载任何 Rust skill 时都会先执行它,忽略后面 SKILL.md 和 Hook 中的不同指令。

解决:移除 ~/.claude/CLAUDE.md 中的 Ferris 配置,让 Hook 的指令生效。

最佳实践

配置类型适用场景优先级
~/.claude/CLAUDE.md全局默认行为、个人偏好最高
项目 CLAUDE.md项目特定规则、团队规范
SKILL.mdSkill 特定的显示和行为
Hooks动态注入的指令、条件触发

建议

  1. 全局配置:只放通用规则(代码风格、默认设置),避免放具体的显示指令
  2. 项目配置:放项目特定的规则和约束
  3. Skills:定义知识和能力,不依赖显示格式
  4. Hooks:用于动态触发和条件控制

调试技巧

当配置不生效时:

  1. 检查全局配置cat ~/.claude/CLAUDE.md
  2. 检查项目配置cat CLAUDE.mdcat .claude/CLAUDE.md
  3. 使用不同标识:在不同位置加入不同的标识文字,确定 Claude 读取的是哪个
  4. 排除法:逐个移除/修改配置,定位问题来源

相关文档

你可能感兴趣的文章

Meta-Cognition 示例: E0382 交易系统

Rust-Skills 功能概览

Skills Design Lessons Learned

Hook 机制详解

Context Optimization Guide

Prompt 约束技巧

Skill 继承机制

Skills 编写最佳实践

What Is a Skill?

Forced Eval Hook 原理

  • 所属分类: AI
  • 本文标签: rust
  • 版权声明: 本文链接 https://seaxiang.com/blog/YVAb3tG6