从 AI 助手到开发伙伴。解释 Claude 的工作机制,并通过真实使用案例和最佳/不良实践指导使用 Engineer Kit。
Claude Code 是 Anthropic 打造的 agentic 编码环境——不仅仅是回答问题的聊天机器人,而是能够读取文件、运行命令、修改代码并自主解决问题的 AI,让你可以专注于其他工作。
| 传统 AI | Claude Code |
|---|---|
| 你写代码,AI 审查 | 你描述想法,AI 来实现 |
| 来回复制粘贴代码片段 | AI 直接读取/修改文件 |
| 需要手动逐步引导 | AI 自主探索、规划、执行 |
| 无工具调用 | 完整访问权限:bash、git、文件系统 |
Claude Code 有一个 context window,包含完整对话:消息、已读文件和命令输出。上下文填满时性能下降——这是最重要的需要管理的约束。
解决方案:在不相关的任务之间经常使用 /clear。
ClaudeKit 是 Claude Code 的工作流模板集,包含 2 个 kit:
ClaudeKit 是付费产品。我强烈推荐这套工具,因为它非常高效,维护者也非常积极——相比于在网上研究大量的配置和工作流,它能节省很多时间。
购买 ClaudeKit(8折优惠)Engineer Kit(claudekit-engineer)将 Claude Code 从 AI 助手转变为开发伙伴。不是独立应用——而是 .claude/ 文件夹,直接放入项目中。
先安装 CLI(每台机器只需一次):
如果 .claude/.claude\ 文件夹已存在,请在 init 之前手动备份或合并文件。
ck init 后的项目结构
project/ ├── CLAUDE.md Template (customize after) ├── AGENTS.md Agent definitions ├── .gitignore ├── .repomixignore Repomix ignore patterns ├── release-manifest.json Kit version manifest ├── plans/ Plans directory ├── .opencode/ OpenCode compatibility └── .claude/ ClaudeKit config ├── .ck.json Kit metadata ├── settings.json Claude Code settings ├── metadata.json Deletion patterns ├── statusline.cjs Statusline config ├── .env.example Environment template ├── .mcp.json.example MCP config template ├── agents/ 14+ definitions ├── hooks/ 22+ hooks ├── rules/ Workflow rules ├── skills/ 90+ commands ├── scripts/ Utility scripts ├── schemas/ JSON schemas ├── output-styles/ Response formats └── session-state/ Session tracking
ck new 和 ck init(默认"Update everything: Yes")自动创建 CLAUDE.md 模板。只有选择"Update everything: No"并取消勾选时,CK 才会跳过此文件。
CK 创建模板后,你可以进一步定制以适应你的项目:
/init 从代码库重新生成(如果 CLAUDE.md 已存在,/init 只会建议改进,不会覆盖) 保持在 200 行以下。文件过长会消耗 context 并导致 Claude 遗漏规则(遵循度下降)。只写关键内容:构建命令、编码标准、主要规范。如果指令膨胀,可拆分到 @import 或 .claude/rules/ 中的文件。
在 Claude Code session 中,运行 /ck:coding-level 命令(无参数)来打开交互式选择器,选择 6 个级别之一。或直接设置:/ck:coding-level 3。
替代方案 — Output Styles(原生):Claude Code 有自己的 Output styles 功能 — 运行 /config → 选择 "Output style" → 从菜单中选择。这是 Claude Code 的独立功能,恰好有些风格命名与 CK coding levels 相似。
机制差异:
/ck:coding-level 写入 .ck.json,guidelines 通过 SessionStart hook 在每次打开 session 时注入。outputStyle 到 .claude/settings.local.json,从下一个 session 生效以保持 prompt cache 稳定)。 二选一 — 使用 /ck:coding-level 或原生 Output styles,不要同时启用以避免 guidelines 重叠。
| Level | 名称 | 风格 |
|---|---|---|
| 0 | ELI5 | 解释得像对不懂编程的人说话 |
| 1 | Junior | 解释原因,导师风格 |
| 2 | Mid-level | 设计模式,系统思维 |
| 3 | Senior | 权衡取舍,架构决策 |
| 4 | Tech Lead | 风险与业务影响 |
| 5 | God Mode | 零手把手(默认,适合 15+ 年经验) |
God Mode 假设你是专家(15+ 年或领域专家)——已经知道答案,只需要验证/第二意见/快速输入。Claude 充当力量倍增器,不是老师。
如果你是 Claude Code 新手,设置 level 1 或 2 以获得解释。God Mode 优化速度,但假设你能在 Claude 出错时自行调试。
.claude/rules/对于大型项目,将指令拆分为 .claude/rules/ 中的多个小文件,而不是把所有内容塞进一个 CLAUDE.md。Rules 可以通过 YAML frontmatter 按文件路径限定作用域——仅在 Claude 处理匹配模式的文件时加载到上下文,节省上下文空间。
.claude/ 目录结构Rules 只是其中一部分——.claude/ 包含多种配置类型。Project scope(通过 git 与团队共享)与 Global scope(个人,每台机器)的摘要:
./CLAUDE.md # project instructions (hoặc ./.claude/CLAUDE.md) ./CLAUDE.local.md # personal — gitignored ./.mcp.json # MCP servers (team-shared) ./.worktreeinclude # copy gitignored files vào worktree mới (optional) ./.claude/ ├── settings.json # permissions, hooks, model ├── settings.local.json # personal — auto-gitignored ├── rules/*.md # topic rules (path-scopable) ├── skills/<name>/ # /skill-name + bundles ├── commands/*.md # /command (legacy — prefer skills) ├── agents/*.md # subagents ├── agent-memory/ # project subagent memory (memory: project) └── output-styles/*.md # system-prompt styles
.\CLAUDE.md # project instructions (hoặc .\.claude\CLAUDE.md) .\CLAUDE.local.md # personal — gitignored .\.mcp.json # MCP servers (team-shared) .\.worktreeinclude # copy gitignored files vào worktree mới (optional) .\.claude\ ├── settings.json # permissions, hooks, model ├── settings.local.json # personal — auto-gitignored ├── rules\*.md # topic rules (path-scopable) ├── skills\<name>\ # /skill-name + bundles ├── commands\*.md # /command (legacy — prefer skills) ├── agents\*.md # subagents ├── agent-memory\ # project subagent memory (memory: project) └── output-styles\*.md # system-prompt styles
~/.claude.json # app state, personal MCP, UI prefs ~/.claude/ ├── CLAUDE.md # global instructions ├── settings.json # default settings ├── keybindings.json # custom shortcuts ├── rules/*.md # user-level rules ├── skills/ # personal skills ├── commands/ # personal commands ├── agents/ # personal subagents ├── agent-memory/ # subagent memory (memory: user) ├── output-styles/ # personal styles ├── plugins/ # installed plugins (auto-managed) └── projects/<project>/memory/ # auto-memory (Claude tự ghi)
%USERPROFILE%\.claude.json # app state, MCP, UI prefs %USERPROFILE%\.claude\ ├── CLAUDE.md # global instructions ├── settings.json # default settings ├── keybindings.json # custom shortcuts ├── rules\*.md # user-level rules ├── skills\ # personal skills ├── commands\ # personal commands ├── agents\ # personal subagents ├── agent-memory\ # subagent memory (memory: user) ├── output-styles\ # personal styles ├── plugins\ # installed plugins (auto-managed) └── projects\<project>\memory\ # auto-memory (Claude tự ghi)
在 rule 文件顶部添加 YAML frontmatter 以限制适用范围。Claude 仅在处理匹配 glob 模式的文件时将 rule 加载到上下文——减少上下文膨胀,同时保持各领域的专门指导(auth、db、UI、tests…)。
Rules(和 CLAUDE.md)是 Claude 读取的指令,不是 Claude Code 强制执行的配置。如果指令冲突或模糊,Claude 可能不会遵循。要获得保证的行为,请使用:
settings.json)— 在工具调用前/后运行的脚本| CLAUDE.md + rules | settings.json |
|---|---|
| 拼接到上下文——global + project + local 都会被读取 | 键级覆盖——project 覆盖 global,local 覆盖 project |
| 冲突时:最后加载的文件胜出(last read) | 数组(permissions.allow)合并;标量(model)取最具体的值 |
skills/<name>/SKILL.md——将 SKILL.md + 支持文件(检查清单、脚本、参考文档)打包在一起。如果 skill 和 command 同名,skill 优先。~/.claude/projects/<project>/memory/MEMORY.md(每个 session 加载前 200 行 / 25KB)。主题文件按需加载。切换:/memory 或 autoMemoryEnabled 设置。| CLAUDE.md | .claude/rules/*.md |
|---|---|
| 整个项目的通用指令 | 按主题/路径划分的模块化指令 |
| 启动时始终加载到上下文 | 无 paths:启动时加载 · 有 paths:文件匹配时懒加载 |
| 目标:少于 200 行 | 每个文件一个主题(code-style.md、testing.md...) |
| 构建命令,通用规范 | 领域规则:API、前端、安全、数据库... |
| 单个文件 | 多个文件,递归子目录 |
使用带 paths 字段的 YAML frontmatter,使 rule 仅在 Claude 接触匹配的文件时生效:
没有 paths 字段的 Rules 无条件加载。有 paths 的 Rules 在 Claude 读取匹配该模式的文件时触发。
.claude/rules/i18n-rules.md。打开 session 时,Claude 按从上到下的顺序读取 memory 文件,然后将所有内容拼接(concatenate)到上下文中——互不覆盖。
带 paths frontmatter 的 rules 仅在 Claude 接触匹配模式的文件时激活——不在启动时加载。这样你可以为每个目录编写特定 rule,而不会使 CLAUDE.md 膨胀。
Anthropic 建议 CLAUDE.md 应少于 200 行。更长的文件会导致 adherence(遵守度)下降——意味着 Claude 会因为需要处理太多信息而更多地忽略或遗漏你的规则。规则文件也应保持简短。当 CLAUDE.md 接近 200 行时,按主题拆分到 .claude/rules/(例如 api-design.md、testing.md、security.md)。使用描述性文件名,以便团队和 Claude 都能通过 Grep 快速找到它们。
对于大型项目或想在多个 repo 之间共享 rules 时,你有 4 种上下文扩展机制。下面的图表显示了每种机制如何将额外文件拉入基础 CLAUDE.md。
@import syntax
将其他文件直接嵌入 CLAUDE.md
在 CLAUDE.md 中,写 @docs/coding-standards.md 或 @~/.claude/my-prefs.md 可以在该位置嵌入文件内容。Claude 支持相对路径和绝对路径,最大嵌套深度为 5 次(hop)。用于将长内容拆分到单独文件,同时保持 CLAUDE.md 简洁。
--add-dir flag
在同一 session 中打开额外的工作目录
默认情况下,Claude Code 只读取你启动时所在目录(工作目录)中的文件。--add-dir 标志允许在同一 session 中打开其他目录——在处理 monorepo 或需要引用当前项目外的目录如 ../shared、../design-system 时很方便。
三种激活方式完全等效:启动时的 --add-dir 标志、session 中的斜杠命令 /add-dir,或在 settings.json 中声明 additionalDirectories。
重要提示:默认情况下,Claude 不会从通过 --add-dir 添加的目录中加载 CLAUDE.md 或 CLAUDE.local.md 文件——以保持与旧项目的向后兼容性。如果希望 Claude 应用这些目录中的 memory,请在启动前启用以下环境变量:
启用后,添加目录中的每个 CLAUDE.md 或 CLAUDE.local.md 都会与主项目一起加载,让 Claude 在同一 session 中理解每个工作区的约定。此功能从版本 2.1.20 开始可用,出于向后兼容性原因需要手动开启。
CLAUDE.local.md
个人笔记,不提交到 git
用于你在项目中个人偏好的文件(沙箱 URL、测试账户、个人调试命令)。将 CLAUDE.local.md 添加到 .gitignore 以避免被提交。Claude 会与 CLAUDE.md 一起加载此文件,但它只在你的机器上可见——团队成员看不到。
.claude/rules/ 目录支持符号链接——将团队的标准 ruleset 保存在一处,然后链接到每个项目。更新 rule 时,所有项目同时获得更新。Claude 自动检测循环符号链接并跳过,不会卡住。
--fast: Skip research | --auto: Skip all review gates
影响最大的单一建议。
/ck:cook 已包含测试。需要测试特定文件夹时才单独使用 /ck:test [path]。
在以下情况直接使用 /ck:plan:
在以下情况前使用 /ck:brainstorm:不确定哪种方案最好、需要权衡分析(WebSockets vs SSE)、没有先例的新功能。
对于 UI 密集型功能,先添加原型步骤进行审查:
用模拟数据做 HTML 原型比真实实现快得多。提早发现设计问题,避免返工。
何时使用 /clear:
修复:每个不相关的任务之间使用 /clear
修复:2 次纠正失败后 → /clear 并写更好的 prompt
修复:使用 /ck:plan --fast 进行轻量级计划
修复:/ck:test + 手动测试 + 代码审查 → 然后发布
修复:具体症状 + 位置 + 预期行为
此速查表仅列出 14 个常用命令。查看所有命令的完整参考表、详细语法和实际示例:vividkit.dev/guides/commands。
| 场景 | 命令 |
|---|---|
| 探索选项 | /ck:brainstorm [question] |
| 规划功能 | /ck:plan [description] |
| 实现功能 | /ck:cook [description] |
| 快速小修复 | /ck:cook --fast [fix] |
| 修复 Bug | /ck:fix [symptom] |
| 技术问题 | /ck:ask [question] |
| 运行测试 | /ck:test [path] |
| 探索代码库 | /ck:scout [path] |
| 代码审查 | /ck:code-review [path|--pr N] |
| 审查变更 | /ck:watzup |
| 提交 | /ck:git cm "message" |
| 完整发布流程 | /ck:ship |
| 清空上下文 | /clear |
| 设置初学者模式 | /ck:coding-level 1 |