Claude Code How to–如何组合CC各种工具
从github项目中学习如果组合官方提供的各种工具–不定版本尽量新版本
1. 背景
前面文章已经学习了如何安装claude colder,如何安装Skills,MCP,Command,Agent,settings等,但是都是独立的模块进行的了解,该如何整合起来形成自己的工作流才是最重要的事情
这里依据luongnv89/claude-howto仓库进行第二步的学习
| 维度 | 官方文档(Official Docs) | 本指南(This Guide) |
|---|---|---|
| 格式 | 参考型文档 | 使用 Mermaid 图的可视化教程 |
| 深度 | 功能说明 | 底层工作原理解析 |
| 示例 | 基础代码片段 | 可直接用于生产的模板 |
| 结构 | 按功能组织 | 渐进式学习路径(从入门到进阶) |
| 入门方式 | 自主学习 | 带时间预估的引导式路线 |
| 自我评估 | 无 | 交互式测验,定位知识缺口并生成个性化路径 |
该仓库主要是下面几个部分:
- 覆盖 Claude Code 所有功能的 10 个教程模块——从斜杠命令到自定义智能体团队
- 可直接复制粘贴的配置——斜杠命令、CLAUDE.md 模板、hook 脚本、MCP 配置、子智能体定义以及完整插件包
- 使用 Mermaid 图展示每个功能的内部工作原理,让你不仅知道“怎么用”,还理解“为什么这样设计”
- 内置自我评估——可以在 Claude Code 中直接运行
/self-assessment或/lesson-quiz hooks来识别知识盲区
主要是介绍了10个模块和上手容易程度
| 顺序 | 模块 | 等级 |
|---|---|---|
| 1 | Slash Commands(斜杠命令) | Beginner(初级) |
| 2 | Memory(记忆) | Beginner+(初级+) |
| 3 | Checkpoints(检查点) | Intermediate(中级) |
| 4 | CLI Basics(命令行基础) | Beginner+(初级+) |
| 5 | Skills(技能) | Intermediate(中级) |
| 6 | Hooks(钩子) | Intermediate(中级) |
| 7 | MCP | Intermediate+(中级+) |
| 8 | Subagents(子智能体) | Intermediate+(中级+) |
| 9 | Advanced Features(高级功能) | Advanced(高级) |
| 10 | Plugins(插件) | Advanced(高级) |
不同版本的claude code会发生变化,有可能大版本之后会有大的逻辑变化,所以要紧跟版本
2. Claude Code How To
将项目从github克隆下来之后,挨个进行复制,前面的claude code learn已经介绍了不同工具安装的目录路径,这里将不同的文件夹拷贝到目标文件夹即可
# 1. Clone the guide,克隆当前的仓库
git clone https://github.com/luongnv89/claude-howto.git
cd claude-howto
# 2. Copy your first slash command,启动第一个命令
mkdir -p /path/to/your-project/.claude/commands
cp 01-slash-commands/optimize.md /path/to/your-project/.claude/commands/
# 3. Try it — in Claude Code, type: 尝试第一个命令
# /optimize
# 4. Ready for more? Set up project memory: 设置项目记忆
cp 02-memory/project-CLAUDE.md /path/to/your-project/CLAUDE.md
# 5. Install a skill: skill的安装
cp -r 03-skills/code-review-specialist ~/.claude/skills/3 Commands学习
斜杠命令就像你个人访问 AI 助手的快捷方式,可以把slash command想象成你在手机上设置的快捷方式图标,点击一下就能直接打开特定的功能,而不需要每次都输入完整的指令。而slash command可以看作是存储提示的markdown文件,里面包含了你想要AI执行的任务的详细说明和示例。通过使用斜杠命令,你可以快速调用这些预设的提示,节省时间并提高效率
slash command结构
当你使用/commands的时候,其实底层触发的是下面的逻辑
┌─────────────────┐
│ User Input │
│ /command-name │
└────────┬────────┘
│ Triggers
▼
┌─────────────────────────┐
│ Search │
│ .claude/commands/ │
└──────────┬──────────────┘
│ Finds
▼
┌─────────────────────────┐
│ command-name.md │
└──────────┬──────────────┘
│ Loads
▼
┌─────────────────────────┐
│ Markdown Content │
└──────────┬──────────────┘
│ Executes
▼
┌─────────────────────────┐
│ Claude Processes Prompt │
└──────────┬──────────────┘
│ Returns
▼
┌─────────────────────────┐
│ Result in Context │
└─────────────────────────┘现在
command用户体验层面基本合并skills了,但底层概念没有完全合并,Command本质上只是markdown文档,但是Skills增加了比如Tool权限控制,有更好的参数处理,能够与Hook配合等

- 新版命令分类
| 类型 | 来源 | 定义方式 | 示例 | 是否推荐 | 备注 |
|---|---|---|---|---|---|
| Built-in Commands | Claude Code 内置 | 系统提供 | /help, /clear, /model |
✅ 必须 | 不可修改 |
| Skills(新标准) | 用户定义 | .claude/skills/*.md |
/optimize, /pr, /refactor |
⭐⭐⭐⭐⭐ 推荐 | 替代旧 custom commands |
| Plugin Commands | 插件系统 | 插件注册 | /frontend-design:frontend-design |
⭐⭐⭐ | 依赖插件生态 |
| MCP Prompts | MCP Server | MCP tools / prompts | /mcp__github__list_prs |
⭐⭐⭐⭐ | 面向工具/API |
| Legacy Commands(旧) | .claude/commands/ |
Markdown 文件 | /build, /test |
⚠️ 兼容但不推荐 | 已被 Skills 取代 |
不同的类型有了自己的命名规则,方便分类和管理
| 类型 | 命名格式 |
|---|---|
| Skill command | /skill-name |
| Plugin command | /plugin:command |
| MCP command | /mcp__server__tool |
| Built-in | /help |
自定义斜杠命令已合并到技能中。
.claude/commands/目录下的文件仍然有效,但现在推荐使用技能目录 (.claude/skills/)。两者都会创建/commands-name快捷方式。
- 命令示例
[1] Claude Code内置命令
Claude Code内置命令都是绑定在claude code安装过程中的,不像自定义的命令需要手动安装到指定目录下
| 分类 | Slash Command | 别名 | 功能说明 |
|---|---|---|---|
| 帮助与元信息 | /help |
- | 查看帮助信息 |
/feedback |
/bug、/share |
提交反馈或问题 | |
/powerup |
- | 查看增强功能 | |
/release-notes |
- | 查看版本更新日志 | |
/exit |
- | 退出 Claude Code | |
| 会话与对话 | /clear |
- | 清空当前会话 |
/resume |
- | 恢复历史会话 | |
/rename |
- | 重命名会话 | |
/branch |
- | 创建会话分支 | |
/rewind |
/checkpoint |
回退到历史检查点 | |
/fork |
- | 分叉当前对话 | |
/copy |
- | 复制当前会话 | |
/export |
- | 导出会话内容 | |
/recap |
- | 生成会话总结 | |
/btw |
- | 后台继续执行任务 | |
/background |
- | 后台运行任务 | |
/stop |
- | 停止当前任务 | |
| 上下文与规划 | /context |
- | 查看上下文状态 |
/compact |
- | 压缩上下文 | |
/focus |
- | 设置关注范围 | |
/plan |
- | 生成执行计划 | |
/goal |
- | 管理目标 | |
/tasks |
- | 查看任务列表 | |
| 模型与推理强度 | /model |
- | 切换模型 |
/effort |
- | 调整推理强度 | |
/fast |
- | 快速模式 | |
/advisor |
- | 顾问模式 | |
| 项目初始化与配置 | /init |
- | 初始化项目 |
/config |
/settings |
配置 Claude Code | |
/memory |
- | 管理记忆 | |
/permissions |
- | 权限管理 | |
/hooks |
- | 配置 Hooks | |
/mcp |
- | MCP 管理 | |
/agents |
- | Agent 管理 | |
/skills |
- | Skills 管理 | |
/plugin |
- | 插件管理 | |
/workflows |
- | 工作流管理 | |
/statusline |
- | 状态栏设置 | |
/keybindings |
- | 快捷键配置 | |
/theme |
- | 主题设置 | |
/color |
- | 配色设置 | |
/scroll-speed |
- | 滚动速度设置 | |
/vim |
- | Vim 模式配置 | |
/terminal-setup |
- | 终端环境配置 | |
/ide |
- | IDE 集成配置 | |
/sandbox |
- | 沙箱配置 | |
/add-dir |
- | 添加工作目录 | |
/cd |
- | 切换目录 | |
/reload-skills |
- | 重新加载 Skills | |
/reload-plugins |
- | 重新加载插件 | |
/privacy-settings |
- | 隐私设置 |
不同的版本会有不同的命令迭代更新,核心是知道有什么命令,在需要的时候调用即可,有的命令是针对桌面版的Claude Code
[2] Code Quality Command (/optimize)
Command现在并入了skills中,当前学习还是放置在commands文件夹中
# 1. 克隆仓库
git clone https://github.com/luongnv89/claude-howto.git
cd claude-howto
# 2. 创建项目文件夹或者直接复制到个人目录下的.claude
mkdir -p /path/to/your-project/.claude/commands
# 3. 复制命令文件
cp 01-slash-commands/optimize.md /path/to/your-project/.claude/commands/下面是Optimization的markdown文件内容:
---
description: Analyze code for performance issues and suggest optimizations
---
# Code Optimization
Review the provided code for the following issues in order of priority:
1. **Performance bottlenecks** - identify O(n²) operations, inefficient loops
2. **Memory leaks** - find unreleased resources, circular references- 已经不需要name字段了,文件名就是命令名
- description字段是可选的,但建议添加,方便在命令列表中快速了解
在Claude Code中输入/optimize,就会触发这个命令,Claude会根据markdown文件中的提示分析代码并给出优化建议。
/optimize 是一个代码性能优化分析技能。它会扫描代码并按优先级检
查以下问题:
1. 性能瓶颈 — O(n²) 操作、低效循环
2. 内存泄漏 — 未释放的资源、循环引用
3. 算法改进 — 更优的算法或数据结构建议
4. 缓存机会 — 重复计算的可缓存点
5. 并发问题 — 竞态条件、线程安全问题
每个发现会标注严重程度(Critical/High/Medium/Low)、代码位置、
解释和修复建议。
用法: 对当前工作目录中的代码运行分析。你可以在后面指定要分析
的文件或代码范围,比如 /optimize src/utils.ts。
需要我对当前项目跑一次优化分析吗?[3] Bundled Skills
Claude Code中有几个命令是以Skills的形式打包然后以/command命令调用,方便直接使用,后续介绍Skills的时候会详细介绍
| 技能命令 | 用途说明 |
|---|---|
/batch <instruction> |
使用 Worktree 编排和执行大规模并行代码修改任务。 |
/claude-api |
加载当前项目所使用编程语言对应的 Claude API 参考文档。 |
/debug [description] |
启用调试日志,并可附带调试说明。 |
/loop [interval] <prompt> |
按指定时间间隔重复执行同一个 Prompt。 |
/code-review [effort] |
对当前 Diff 进行代码审查,重点查找正确性和潜在 Bug。可指定审查强度(如 low、medium、high)。在 v2.1.146 中曾吸收 /simplify 功能,但后来重新拆分。 |
/simplify |
执行仅针对代码清理和优化的审查,包括代码复用、简化、效率提升和结构优化,并自动应用修改;不会主动查找 Bug。如需 Bug 检查,应使用 /code-review。曾在 v2.1.152 中作为 /code-review --fix 的别名,v2.1.154 后恢复为独立命令。 |
4 Memory学习
记忆功能使 Claude 能够在会话和对话之间保留上下文。它以两种形式存在:claude.ai 中的自动合成,以及 Claude Code 中基于文件系统的 CLAUDE.md 文件。
在 Claude.ai(网页端 Claude)中,Claude 会自动从你和它的长期对话里提炼出一些有价值的信息,形成 Memory,而不是让你手动维护一个文件
Claude Code中的记忆系统提供了永久的上下文保存,可以多重的会话.不像临时的上下文窗口,记忆文件有优势:
- 能够在team中分享项目标准
- 存储个人开发偏好
- 保持项目规则和设置
- 导入额外文档
- 项目的版本控制
| Command | 作用(Purpose) | 用法(Usage) | 适用场景(When to Use) |
|---|---|---|---|
/init |
初始化项目记忆,创建或更新 CLAUDE.md |
/init |
新项目开始时;首次创建项目记忆 |
/memory |
编辑和管理记忆文件 | /memory |
大规模修改、整理、查看项目记忆 |
# 前缀 |
快速添加单行记忆(已废弃) | 已移除 | 现在使用 /memory 或直接对话告诉 Claude |
@path/to/file |
导入外部文件内容作为上下文 | @README.md@docs/api.md |
引用已有文档、规范、设计说明 |
这里先给一个整体的关系图
项目知识管理
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
/init /memory @file
创建记忆库 编辑记忆库 导入临时上下文
│ │ │
└──────────┬──────┘ │
▼ │
CLAUDE.md │
(长期项目记忆) │
▲ │
└───────────────┬────────┘
▼
Claude 回答问题
4.1 /init命令
/init在Claude Code是设置项目记忆的最快方式,它会初始化一个包含项目基础文档的CLAUDE.md文件
在claude code中输入/init后
- 在您的项目中创建一个新的
CLAUDE.md文件,可以位于项目中的CLAUDE.md,也可以在用户层面的./claude/CLAUDE.md,或者两者都创建 - 制定项目规范和准则
- 为跨会话的上下文持久性奠定基础
- 为项目标准提供模板
增强交互模式(Enhanced interactive mode):设置环境变量
CLAUDE_CODE_NEW_INIT=1后,Claude Code 的/init命令会启用新的多阶段交互流程,引导你一步一步完成项目初始化
./CLAUDE.md和./.claude/CLAUDE.md现在属于平级状态
在bash或zsh中设置:
export CLAUDE_CODE_NEW_INIT=14.2 /memory命令
#快捷键已经弃用,之前还没了解过现在已经弃用了,发展太快学的太慢不知道是好还是坏了..
在Claude Code中输入/memory,Claude会提示你选择要编辑的文件,然后确认后会跳转到编辑器去编辑文件,确认即可

AI Agent现在能做很多,包括你可以直接让AI去修改memory,比如告诉它下面的信息请记住,本项目始终使用 TypeScript 严格模式。 另请注意:优先使用 async/await 而非 Promise 链。
什么时候使用
/memory?
- 审查现有内存内容
- 做大量项目标准的更新
- 重新组织结构
- 添加详细的文档或者指南
- 随着项目的演进,维护和更新内存
4.3 @/path/file功能
这是 Claude Code 中一个很实用的功能,允许你在 CLAUDE.md 里引用其他文件内容,避免把所有内容都堆到一个大文件里
比如在CLAUDE.md文件中可以这么写
# Project Documentation
See @README.md for project overview
See @package.json for available npm commands
See @docs/architecture.md for system design
# Import from home directory using absolute path
@~/.claude/my-project-instructions.md有点类似
Ghostty中的设置文件,可以引用别的位置的文件来补充设置,放置一个文件内容过多导致的信息爆炸
- 相对路径和绝对路径都是可以的
- 文件深度最大是5层,相当于5个子文件夹
- 首次从外部位置导入数据时,会触发安全审批对话框。
- 在 Markdown 代码 span 或代码块中,导入指令不会被执行
- 通过引用现有文档,有助于避免重复工作。
4.4 记忆架构和层级管理
Claude Code 使用多层级Memory系统。Memory文件会在 Claude Code 启动时自动加载,级别较高的文件优先级更高
- Claude Code 企业级集中管理(Managed Policy) 的功能,类似公司 IT 管理员统一下发配置和规则,让所有开发者使用 Claude Code 时自动遵守相同的规范
| 系统 | 路径 |
|---|---|
| macOS | /Library/Application Support/ClaudeCode/CLAUDE.md |
| Linux / WSL | /etc/claude-code/CLAUDE.md |
| Windows | C:\Program Files\ClaudeCode\CLAUDE.md |
- Managed Drop-ins 以前只能写有一个巨大的
CLAUDE.md从v2.1.83 开始新增,可以拆分多个文件,大型组织经常有很多的团队,如安全团队,开发规范团队,AI平台团队,所有人都修改同一个CLAUDE.md会造成冲突
Managed CLAUDE.md
└── 同目录下的 managed-settings.d/
01-security.md
02-compliance.md
03-devops.md
04-python.md
05-web.md- Project Memory–团队共享上下文(版本控制)
./.claude/CLAUDE.md or ./CLAUDE.md (in repository root)
这里的./非常容易让人误解,文档里的./CLAUDE.md并不是当前Shell工作目录,而是指Repository Root(git仓库根目录)
/etc/claude-code/CLAUDE.md (系统级)
↓
项目根目录 CLAUDE.md (项目级)
↓
.claude/CLAUDE.md (本项目附加规则)
↓
memory- 项目规则 - 模块化、主题特定的项目说明
.claude/rules/*.md:把项目规则拆成多个主题文件,按需组织和维护- 项目里的
CLAUDE.md:写一个总规则文件
my-project/
├── CLAUDE.md
└── .claude/
└── rules/
├── python.md
├── testing.md
├── git.md
├── architecture.md
└── security.md以前是把规则按主题一起塞入到CLAUDE.md,文件越来越大,越来越难维护,现在加入rules/*.md之后,团队协作项目,每个关键流程都是一个单独的文件,方便维护和更新
| 特性 | .claude/rules/*.md |
Managed Drop-ins |
|---|---|---|
| 作用范围 | 当前项目 | 整台机器 / 整个组织 |
| 位置 | 项目目录内 | 系统目录 |
| 管理者 | 项目开发者 | IT管理员 / 企业管理员 |
| 是否提交 Git | 通常是 | 通常不是 |
| 是否随项目传播 | 是 | 否 |
| 优先级 | 较低 | 较高 |
| 目标 | 项目规范 | 企业强制策略 |
- 个人记忆 - 个人偏好(所有项目)
~/.claude/CLAUDE.md (in user home directory)
- User-Level Rules - Personal rules (all projects)
~/.claude/rules/*.md
- 本地项目记忆(Local Project Memory)
专门解决:同一个项目里,团队共享规则和我个人习惯不一样怎么办
./CLAUDE.local.md
- Auto Memory - Claude’s automatic notes and learnings
Claude 在使用过程中自动积累的项目记忆
Claude Code 对于memory搜索是有顺序的

4.5 使用 claudeMdExcludes 排除 CLAUDE.md 文件
在大型单体仓库中,某些 CLAUDE.md 文件可能与您当前工作无关。claudeMdExcludes 设置允许您跳过特定的 CLAUDE.md 文件,使其不被加载到上下文中
// In ~/.claude/settings.json or .claude/settings.json
{
"claudeMdExcludes": [
"packages/legacy-app/CLAUDE.md",
"vendors/**/CLAUDE.md"
]
}或者直接让AI去写入到文件中去
- Setting 文件的层级
Claude Code 设置(包括 autoMemoryDirectory、claudeMdExcludes 和其他配置)是根据五级层次结构解析的,级别越高优先级越高:
| Level | Location | Scope | 说明 |
|---|---|---|---|
| 1 (Highest) | Managed policy (system-level) | Organization-wide enforcement | 组织级强制策略(最高优先级,无法被覆盖) |
| 2 | managed-settings.d/ (v2.1.83+) |
Modular policy drop-ins | 模块化策略片段,按文件名字母顺序合并 |
| 3 | .claude/settings.local.json |
Local overrides | 本地覆盖配置(通常被 git ignore) |
| 4 | .claude/settings.json |
Project-level | 项目级配置(会提交到 git 仓库) |
| 5 (Lowest) | ~/.claude/settings.json |
User preferences | 用户全局偏好设置(最低优先级) |
在claude code输入
/config同样会修改当前用户下的setting.json文件,选择之后都会保存

- 本地缓存文件清理
{
"cleanupPeriodDays": 14
}Claude Code 启动时,会删除 14 天前的本地历史文件,会清理下面的目录
| 目录 | 用途 |
|---|---|
~/.claude/checkpoints/ |
Checkpoint 历史快照 |
~/.claude/tasks/ |
Task 执行记录 |
~/.claude/shell-snapshots/ |
Shell 命令快照 |
~/.claude/backups/ |
Claude 自动备份文件 |
对于用户和项目推荐的CLAUDE.md写法和结构,更加合理的管控项目和个人偏好
your-project/
├── .claude/
│ ├── CLAUDE.md
│ └── rules/
│ ├── code-style.md
│ ├── testing.md
│ ├── security.md
│ └── api/ # Subdirectories supported
│ ├── conventions.md
│ └── validation.md
~/.claude/
├── CLAUDE.md
└── rules/ # User-level rules (all projects)
├── personal-style.md
└── preferred-patterns.md~/.claude中放长期不变的个人习惯your-project/.claude中放项目级别的规则- 这两个是可以共存的,但是
~/.claude下面的会覆盖项目里面的
- 在Rules中指定文件
Path-Specific Rules with YAML Frontmatter 的作用是: > 让某条规则只对特定目录、文件类型或路径生效,而不是整个项目都生效
不使用特定路径的话,Rules会应用到整个项目,使用YAML Frontmatter会指定文件
---
paths: src/api/**/*.ts
---
# API Development Rules
- All API endpoints must include input validation
- Use Zod for schema validation
- Document all parameters and response types
- Include error handling for all operations还可以使用全局模式:
**/*.ts- All TypeScript filessrc/**/*- All files under src/src/**/*.{ts,tsx}- Multiple extensions{src,lib}/**/*.ts, tests/**/*.test.ts- Multiple patterns
.claude/rules/ 的两个组织能力增强功能:子目录递归 + 符号链接(symlink)复用规则
- Subdirectories(子目录)
- Symlinks(符号链接): 允许你在多个项目之间共享同一份规则文件

4.6 Auto Memory
自动记忆库是一个持久目录,Claude 会在项目运行过程中自动记录学习成果、模式和见解。与您手动编写和维护的 CLAUDE.md 文件不同,自动记忆库由 Claude 在运行过程中自动生成。
- 自动记忆库中的内容会根据项目需求自动更新,无需手动干预。
- 自动记忆库的位置在
~/.claude/projects/<project>/memory/ - 入口点:
MEMORY.md是自动内存目录中的主文件 - 会话启动时,MEMORY.md 文件的前 200 行(或前 25KB,以先到者为准)会被加载到上下文中。主题文件是按需加载的,而不是在启动时加载的。
常见的目录结构:
~/.claude/projects/<project>/memory/
├── MEMORY.md # Entrypoint (first 200 lines / 25KB loaded at startup)
├── debugging.md # Topic file (loaded on demand)
├── api-conventions.md # Topic file (loaded on demand)
└── testing-patterns.md # Topic file (loaded on demand)自动记忆功能需要 Claude Code v2.1.59 或更高版本
默认情况下,自动内存存储在 ~/.claude/projects/<项目>/memory/ 目录中。您可以使用 autoMemoryDirectory 设置(自 v2.1.74 版本起可用)更改此位置
// In ~/.claude/settings.json or .claude/settings.local.json (user/local settings only)
{
"autoMemoryDirectory": "/path/to/custom/memory/directory"
}[2] Worktree and Repository Sharing
同一个 Git 仓库中的所有工作树和子目录共享同一个自动内存目录。这意味着在不同的工作树之间切换,或者在同一个仓库的不同子目录中工作,都会读写同一个内存文件。
subagents有自己独立的memory 上下文,在子代理定义中使用内存前置信息字段来指定要加载的内存范围
memory: user # Load user-level memory only
memory: project # Load project-level memory only
memory: local # Load local memory only[3] Additional Directories with --add-dir
--add-dir 标志允许 Claude Code 从当前工作目录之外的其他目录加载 CLAUDE.md 文件。这对于单体仓库或多项目架构非常有用,因为在这些情况下,其他目录的上下文信息也很重要。
有两种方法来允许claude code读取子目录
- 临时生效,在终端直接写
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude,只对这一次claude启动生效 export CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1写在.bashrc或者.zshrc中,永久生效
同样的控制是否启动自动记忆也是这样子的
# Disable auto memory for a session
CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude
# Force auto memory on explicitly
CLAUDE_CODE_DISABLE_AUTO_MEMORY=0 claude4.7 实际例子
[1] 个人偏好定位等,写在~/.claude/CLAUDE.md中,可以用来参考:
# My Development Preferences
## About Me
- **Experience Level**: 8 years full-stack development
- **Preferred Languages**: TypeScript, Python
- **Communication Style**: Direct, with examples
- **Learning Style**: Visual diagrams with code
## Code Preferences
### Error Handling
I prefer explicit error handling with try-catch blocks and meaningful error messages.
Avoid generic errors. Always log errors for debugging.
### Comments
Use comments for WHY, not WHAT. Code should be self-documenting.
Comments should explain business logic or non-obvious decisions.
### Testing
I prefer TDD (test-driven development).
Write tests first, then implementation.
Focus on behavior, not implementation details.
### Architecture
I prefer modular, loosely-coupled design.
Use dependency injection for testability.
Separate concerns (Controllers, Services, Repositories).
## Debugging Preferences
- Use console.log with prefix: `[DEBUG]`
- Include context: function name, relevant variables
- Use stack traces when available
- Always include timestamps in logs
## Communication
- Explain complex concepts with diagrams
- Show concrete examples before explaining theory
- Include before/after code snippets
- Summarize key points at the end
## Project Organization
I organize my projects as:
project/
├── src/
│ ├── api/
│ ├── services/
│ ├── models/
│ └── utils/
├── tests/
├── docs/
└── docker/
## Tooling
- **IDE**: VS Code with vim keybindings
- **Terminal**: Zsh with Oh-My-Zsh
- **Format**: Prettier (100 char line length)
- **Linter**: ESLint with airbnb config
- **Test Framework**: Jest with React Testing Library[2] 个人项目下的./CLAUDE.md文件
# Project Configuration
## Project Overview
- **Name**: E-commerce Platform
- **Tech Stack**: Node.js, PostgreSQL, React 18, Docker
- **Team Size**: 5 developers
- **Deadline**: Q4 2025
## Architecture
@docs/architecture.md
@docs/api-standards.md
@docs/database-schema.md
## Development Standards
### Code Style
- Use Prettier for formatting
- Use ESLint with airbnb config
- Maximum line length: 100 characters
- Use 2-space indentation
### Naming Conventions
- **Files**: kebab-case (user-controller.js)
- **Classes**: PascalCase (UserService)
- **Functions/Variables**: camelCase (getUserById)
- **Constants**: UPPER_SNAKE_CASE (API_BASE_URL)
- **Database Tables**: snake_case (user_accounts)
### Git Workflow
- Branch names: `feature/description` or `fix/description`
- Commit messages: Follow conventional commits
- PR required before merge
- All CI/CD checks must pass
- Minimum 1 approval required
### Testing Requirements
- Minimum 80% code coverage
- All critical paths must have tests
- Use Jest for unit tests
- Use Cypress for E2E tests
- Test filenames: `*.test.ts` or `*.spec.ts`
### API Standards
- RESTful endpoints only
- JSON request/response
- Use HTTP status codes correctly
- Version API endpoints: `/api/v1/`
- Document all endpoints with examples
### Database
- Use migrations for schema changes
- Never hardcode credentials
- Use connection pooling
- Enable query logging in development
- Regular backups required
### Deployment
- Docker-based deployment
- Kubernetes orchestration
- Blue-green deployment strategy
- Automatic rollback on failure
- Database migrations run before deploy
## Common Commands
| Command | Purpose |
|---------|---------|
| `npm run dev` | Start development server |
| `npm test` | Run test suite |
| `npm run lint` | Check code style |
| `npm run build` | Build for production |
| `npm run migrate` | Run database migrations |
## Team Contacts
- Tech Lead: Sarah Chen (@sarah.chen)
- Product Manager: Mike Johnson (@mike.j)
- DevOps: Alex Kim (@alex.k)
## Known Issues & Workarounds
- PostgreSQL connection pooling limited to 20 during peak hours
- Workaround: Implement query queuing
- Safari 14 compatibility issues with async generators
- Workaround: Use Babel transpiler
## Related Projects
- Analytics Dashboard: `/projects/analytics`
- Mobile App: `/projects/mobile`
- Admin Panel: `/projects/admin`