CLAUDE.md 配置文件说明文件位置及作用文件位置作用是否提交CLAUDE.md项目根目录项目级文档AI 每次启动自动读取✅.claudeignore.claude/.claudeignore排除无关文件类似.gitignore✅.claude/settings.json.claude/settings.json团队共享配置权限规则 Hooks 注册✅.claude/settings.local.json.claude/settings.local.json个人本地配置权限白名单❌.claude/commands/.claude/commands/项目级自定义命令如/full-review✅.claude/skills/.claude/skills/项目级技能包团队共享✅.claude/rules/.claude/rules/编码规范按需加载✅.claude/hooks/.claude/hooks/自动化脚本事件触发执行✅.claude/memory/.claude/memory/自动记忆MEMORY.md 分类记忆❌.claude/mcp.json.claude/mcp.jsonMCP 服务器配置✅1. CLAUDE.md位置: 项目根目录作用: 为 Claude Code 提供项目核心信息包括构建命令、架构结构、配置说明配置内容详解# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.标准前缀标识这是 Claude Code 的引导文档项目说明## 项目说明 **技术栈**: Spring Boot 3.5.14 MyBatis Plus MySQL 8.0 Java 18项目技术栈概述核心命令mvn cleaninstall-DskipTests跳过测试编译所有模块mvntest运行所有测试mvn spring-boot:run启动 Spring Boot 应用项目结构rice-grain (parent) ├── common/ # 通用工具类、常量、枚举 ├── dao/ # 数据访问层 (mapper/) ├── service/ # 业务逻辑层 └── controller/ # Web 层REST API 入口 (应用主入口)多模块 Maven 项目结构规范- 接口遵循 RESTful 风格 - 统一使用 ResultT 包装返回值 - 分页使用 PageRequest 对象开发和设计规范2. .claudeignore位置:.claude/.claudeignore作用: 排除无关文件让 Claude Code 忽略构建产物、IDE 配置等配置示例# Maven 构建产物 target/ .mvn/ *.class *.jar *.war # 日志文件 *.log # IntelliJ IDEA *.iml *.iws *.ipr .idea/ # VS Code .vscode/ # Eclipse/STS .classpath .project .settings/ .apt_generated .factorypath .springBeans .sts4-cache # NetBeans nbproject/ nbbuild/ dist/ nbdist/ .nb-gradle/ build/ # 其他 node_modules/ npm-debug.log yarn-error.log配置说明模式说明target/Maven 构建输出目录*.classJava 编译产物*.jar打包文件*.log日志文件.idea/IntelliJ IDEA 配置.vscode/VS Code 配置3. settings.json位置:.claude/settings.json作用: 团队共享配置包括权限规则、Hooks 注册、MCP 服务器配置配置示例{mcpServers:{context7:{command:npx,args:[-y,upstash/context7-mcp]},memory:{type:stdio,command:npx,args:[-y,modelcontextprotocol/server-memory]}},permissions:{allow:[Bash(mvn *),Bash(npm run dev),Bash(npx *),WebFetch(domain:github.com),Bash(timeout 3 node \~/.claude/plugins/claude-hud/dist/index.js\)]},hooks:{beforeToolUse:{Bash(rm * *):.claude/hooks/dangerous-command-check.sh,Bash(git push --force):.claude/hooks/pre-push-check.sh},afterToolUse:{Write(*.java):.claude/hooks/java-format.sh},beforeFinalResponse:{*:.claude/hooks/unit-test-check.sh}}}配置说明mcpServers服务器说明context7实时库/框架文档查询memory跨会话持久化记忆permissions.allow规则说明Bash(mvn *)允许所有 Maven 命令Bash(npm run dev)允许启动开发服务器WebFetch(domain:github.com)允许访问 GitHubhooks事件触发时机beforeToolUse工具使用前afterToolUse工具使用后beforeFinalResponse最终响应前4. settings.local.json位置:.claude/settings.local.json作用: 个人本地配置不提交到版本库配置示例{permissions:{allow:[Bash(whoami),Bash(cd *),Bash(ls *),Bash(cat *),Read(*),Glob(*),Grep(*)]},theme:dark,fontFamily:JetBrains Mono}配置说明配置说明permissions.allow个人权限白名单theme界面主题fontFamily字体偏好5. commands/位置:.claude/commands/作用: 项目级自定义命令通过/命令名调用示例full-review.md# /full-review 对当前分支进行全面代码审查 1. 运行 git diff main 获取变更 2. 检查代码规范符合性 3. 检查潜在安全问题 4. 检查测试覆盖率 5. 生成审查报告示例api-doc.md# /api-doc 生成 API 文档 1. 扫描所有 RestController 类 2. 提取 RequestMapping 路径 3. 整理参数和响应类型 4. 输出 Markdown 格式文档可用命令列表命令作用/full-review全面代码审查/api-doc生成 API 文档/test-coverage分析测试覆盖率6. skills/位置:.claude/skills/作用: 项目级技能包定义可复用的工作流程示例mybatis-generator.md--- name: mybatis-generator description: 使用 MyBatis Plus 代码生成器创建 CRUD --- ## 步骤 1. 确认数据库连接配置 2. 选择目标表 3. 运行代码生成器 4. 生成 Entity、Mapper、Service、Controller 5. 验证生成的代码示例integration-test.md--- name: integration-test description: 创建集成测试 --- ## 步骤 1. 确定测试场景 2. 准备测试数据 3. 编写 SpringBootTest 测试类 4. 使用 MockBean 模拟依赖 5. 验证业务逻辑可用技能列表技能作用mybatis-generatorMyBatis 代码生成integration-test集成测试创建7. rules/位置:.claude/rules/作用: 编码规范按需加载示例01-architecture.md# Architecture Rules ## 模块依赖层次 **必须严格遵守:**controller → service → dao → common- **controller/**: REST API 端点禁止包含业务逻辑 - **service/**: 业务逻辑实现 - **dao/**: 数据访问层MyBatis Mapper - **common/**: 工具类、常量禁止依赖其他模块 ## 禁止行为 - ❌ 跨层调用Controller 直接调用 Mapper - ❌ 循环依赖 - ❌ common 模块依赖业务模块示例02-api-design.md# API Design Rules ## RESTful 规范 ### URL 设计 - 使用名词复数/api/users - 避免动词使用 HTTP 方法表达操作 - 资源层级/api/users/{id}/orders ### 响应格式 - 成功{ code: 200, data: T, message: success } - 失败{ code: 400, data: null, message: error } ### 状态码 - 200: 成功 - 400: 请求参数错误 - 401: 未授权 - 403: 禁止访问 - 404: 资源不存在 - 500: 服务器内部错误示例03-database.md# Database Rules ## MyBatis Plus 规范 ### Entity - 使用 TableName 指定表名 - 主键使用 TableId(type IdType.AUTO) - 逻辑删除使用 TableLogic ### Mapper - 继承 BaseMapperT - 自定义方法使用 XML ### 分页 - 统一使用 PageRequest 对象 - 返回 PageT 类型规范文件列表文件作用01-architecture.md架构分层规范02-api-design.mdAPI 设计规范03-database.md数据库规范8. hooks/位置:.claude/hooks/作用: 自动化脚本在特定事件触发时执行示例dangerous-command-check.sh#!/bin/bash# 危险命令检查COMMAND$1if[[$COMMAND*rm -rf*]];thenecho⚠️ 检测到危险命令rm -rfecho请确认目标目录是否在白名单中exit1fiexit0示例pre-push-check.sh#!/bin/bash# 推送前检查echo 执行推送前检查...# 检查是否有未提交的更改if!gitdiff--quiet;thenecho⚠️ 存在未暂存的更改请先提交exit1fi# 运行测试mvntest-qif[$?-ne0];thenecho⚠️ 测试失败请修复后推送exit1fiecho✅ 检查通过exit0示例java-format.sh#!/bin/bash# Java 代码格式化FILE$1if[[$FILE*.java]];thenecho格式化$FILE# 调用格式化脚本fi示例unit-test-check.sh#!/bin/bash# 单元测试检查echo 检查新增代码的单元测试...# 检查是否有新测试类NEW_TESTS$(gitdiff--name-only HEAD~1|grep*Test.java|wc-l)if[$NEW_TESTS-eq0];thenecho⚠️ 未检测到新增测试fiexit0Hooks 脚本列表脚本作用dangerous-command-check.sh危险命令拦截pre-push-check.sh推送前检查java-format.shJava 格式化unit-test-check.sh单元测试检查9. memory/位置:.claude/memory/作用: 跨会话持久化记忆目录结构memory/ ├── MEMORY.md # 记忆索引 ├── user/ # 用户相关记忆 │ ├── preferences.md │ └── role.md ├── feedback/ # 反馈记忆 │ ├── coding-style.md │ └── testing.md ├── project/ # 项目相关记忆 │ ├── milestones.md │ └── decisions.md └── reference/ # 引用资源 ├── links.md └── documentation.mdMEMORY.md 示例# 记忆索引 ## 用户记忆 - [preferences.md](user/preferences.md) — 编码偏好 - [role.md](user/role.md) — 角色信息 ## 反馈记忆 - [coding-style.md](feedback/coding-style.md) — 代码风格要求 - [testing.md](feedback/testing.md) — 测试规范 ## 项目记忆 - [milestones.md](project/milestones.md) — 项目里程碑 - [decisions.md](project/decisions.md) — 重要决策 ## 参考资源 - [links.md](reference/links.md) — 常用链接 - [documentation.md](reference/documentation.md) — 文档索引记忆类型类型说明user/用户偏好、角色、知识feedback/用户反馈、修正建议project/项目进度、决策、事件reference/外部资源链接10. mcp.json位置:.claude/mcp.json作用: MCP 服务器配置配置示例{mcpServers:{context7:{command:npx,args:[-y,upstash/context7-mcp],description:实时库/框架文档},memory:{type:stdio,command:npx,args:[-y,modelcontextprotocol/server-memory],description:持久化记忆},filesystem:{command:npx,args:[-y,modelcontextprotocol/server-filesystem,.],description:文件系统访问}}}MCP 服务器列表服务器作用context7库/框架文档查询memory跨会话记忆filesystem文件系统访问总结完整文件结构项目根目录/ ├── CLAUDE.md # 项目说明AI 自动读取 ├── .claudeignore # 排除文件 └── .claude/ ├── settings.json # 团队配置权限 Hooks ├── settings.local.json # 个人配置不提交 ├── mcp.json # MCP 服务器配置 ├── commands/ │ └── full-review.md # 自定义命令 ├── skills/ │ ├── mybatis-generator.md # 项目技能 │ └── integration-test.md ├── rules/ │ ├── 01-architecture.md # 架构规范 │ ├── 02-api-design.md # API 规范 │ └── 03-database.md # 数据库规范 ├── hooks/ │ ├── dangerous-command-check.sh │ ├── pre-push-check.sh │ ├── java-format.sh │ └── unit-test-check.sh └── memory/ ├── MEMORY.md ├── user/ ├── feedback/ ├── project/ └── reference/文档最后更新2026-04-29