一、CLAUDE.md定义项目 / 用户级持久系统提示文件每一次会话启动自动加载注入模型上下文。本质给 Claude 长期记忆不用每次聊天重复交代项目规则。加载优先级由宽→窄后加载覆盖前者用户全局~/.claude/CLAUDE.md本机所有项目生效项目共享./CLAUDE.md提交 Git团队共用本地私有./CLAUDE.local.md加入.gitignore个人本地配置能力与特点✅ 自动加载全程生效贯穿整个对话生命周期 ✅ 适合项目架构、编码规范、构建命令、目录结构、固定约束 ❌ 不适合多步骤复杂工作流、按需触发功能这类交给 Skill ⚠️ 上下文开销常驻占用上下文窗口不要无限堆砌内容示例片段# 项目基础规则 项目为SpringBoot3 MyBatis-Plus统一返回包装类ResultT 禁止使用e.printStackTrace()捕获异常抛出BusinessException 代码注释使用JavaDoc提交前执行mvn spotless:apply选型建议凡是每次对话都必须遵守的规则放到 CLAUDE.md按需执行的流程不要放这里。二、Skill技能定义可按需加载、可复用的模块化指令包支持斜杠命令/skillname手动唤起也可由模型自动调用。 文件标准SKILL.md支持放在项目目录或插件内。核心特性懒加载会话启动不占用上下文调用后才载入结束后可释放触发方式手动/code-review自动模型识别任务匹配描述自动加载支持元配置文件头部 frontmatter--- name: code-review description: 执行代码静态审查检查规范、安全漏洞 disable-model-invocation: false # true禁止模型自动调用只能用户手动执行 --- 审查变更代码重点检查SQL注入、空指针、事务边界...使用场景代码评审、接口文档生成、日志分析、架构梳理团队标准化工作流跨项目复用Skill vs CLAUDE.md 关键区别表格CLAUDE.mdSkill会话启动立刻加载常驻上下文按需加载不调用无开销全局永久生效临时生效只本次任务基础通用约束专项任务流程三、Subagent子代理定义独立隔离的 AI Agent 实例拥有独立上下文窗口、独立系统提示、独立工具权限主 Agent 可以委派任务给它。类比主工程师把专项任务外包给独立实习生实习生独立干活只返回最终摘要不污染主对话上下文。核心能力上下文隔离子 Agent 对话历史不会灌入主会话仅汇总结果传回独立权限可以限制子 Agent 可用工具只读文件、禁止执行 shell 等支持并行执行同时启动多个子代理并行分析可嵌套子代理内部还能继续调用 Skill、甚至再拉起子代理调用方式自动委派主 Agent 判断任务适合专项子代理自动调用手动唤起/agents list查看、显式调用典型场景安全审计子代理、单元测试生成子代理、日志深度分析子代理耗时、大量探索、产生海量中间信息的任务避免撑满主上下文 极易混淆Skill VS Subagent面试高频区分表格SkillSubagent只是一段 Prompt / 指令集合运行在主 Agent 内部独立完整 AI 会话实例拥有独立上下文没有独立思考循环依附主 Agent 执行拥有独立思考、工具调用循环适合操作规范、检查清单、流程模板适合复杂多步骤、深度探索、隔离任务轻量低开销较重启动新模型会话简单口诀流程模板用 Skill独立专项小组、需要隔离上下文用 Subagent。四、MCPModel Context Protocol模型上下文协议定义Anthropic 开源双向标准化协议JSON-RPC over stdio/websocket/httpClaude ↔ 外部系统的通用桥梁。类比LSP语言服务协议给 IDE 提供代码能力MCP 给 AI 提供外部数据与工具能力。架构客户端 / 服务端ClientClaude Code内置 MCP 客户端MCP Server独立进程向外暴露工具、资源、提示模板MCP Server 可以实现访问 PostgreSQL、Redis、Git 仓库对接 Jira、Slack、Github、监控平台本地自定义脚本、内部业务 API核心价值统一标准不用为每个系统单独开发集成权限集中管控MCP 服务层限制 AI 能执行哪些操作实时外部数据突破模型静态知识库限制配置方式项目.mcp.json/ 插件内置 MCP 服务配置声明要启动的服务进程。{ mcpServers: { postgres: { command: node, args: [./mcp-postgres/server.js] } } }边界区分MCP ≠ SkillMCP 提供工具能力Skill 教模型怎么使用这些工具例MCP 提供数据库查询工具Skill 定义 “如何规范查询、如何校验 SQL”五、Hooks生命周期钩子定义事件驱动拦截机制在 Claude Agent 生命周期关键节点注入自定义逻辑确定性执行不受模型随机性影响。类似 Git pre-commit、前端生命周期钩子用来强制策略、自动化、拦截危险操作。四大 Hook 类型command运行 shell 脚本http调用远程接口prompt调用模型做条件判断agent拉起 subagent 执行校验常用核心事件表格事件触发时机典型用途SessionStart会话初始化环境检查、预加载信息PreToolUse工具执行之前⭐高危命令拦截、权限校验禁止 rm -rfPostToolUse工具执行完成后格式化输出、日志上报、自动 lintUserPromptSubmit用户发送消息时输入过滤、内容补全StopAgent 准备结束输出输出规范校验、查漏补缺SubagentStart / SubagentStop子代理启停子任务监控关键特点✅强制执行不受模型是否 “听话” 影响Prompt 规则模型可能忽略Hook 不会 ⚠️ 不要重度业务逻辑适合安全策略、自动化校验、监控告警示例配置 hooks.jsonjson{ PreToolUse: [ { matcher: Bash, hooks: [ { type: command, command: ./scripts/check-danger-cmd.sh } ] } ] }六、Plugin插件定义打包分发容器把上面所有组件统一封装Skill、Subagent、Hooks、MCP Server、LSP 服务、样式配置。Plugin 扩展分发包本身不提供能力承载所有扩展组件。插件标准目录结构my-plugin/ ├── plugin.json # 插件清单名称、版本、描述 ├── skills/ # 存放多个SKILL.md技能 ├── agents/ # Subagent定义文件 ├── hooks/hooks.json # 钩子配置 ├── .mcp.json # 内置MCP服务 └── scripts/ # 脚本依赖作用一键安装、卸载、启用 / 禁用整套扩展团队、社区共享成套工作流不再零散复制各种 md、配置作用域隔离插件能力可以选择全局 / 当前项目生效运行逻辑Claude Code 启动时扫描插件目录自动发现并加载内部 Skill、Agent、Hook、MCP 服务。组件协作全景流程一次编码任务新建会话 →加载 CLAUDE.md用户需求触发任务模型判断需要代码评审 → 自动加载Skill(code-review)Skill 要求查询数据库 → 调用MCP(postgres)获取数据执行 shell 查询前 →PreToolUseHook拦截高危命令检查识别任务复杂委派 → 启动Subagent (安全审计)整套能力打包后可封装为Plugin分享给团队快速选型决策表开发必看每次会话通用基础规则 →CLAUDE.md可复用专项任务流程模板 →Skill需要独立上下文、并行、深度专项任务 →Subagent需要访问数据库、外部 API、第三方系统 →MCP Server需要强制拦截、校验、自动化不受模型随机影响 →Hooks需要打包以上所有组件分发共享 →Plugin