<p align="right"><font color="#3f3f3f">2025年07月28日</font></p>
> **目标**:在安全、低成本的前提下,充分发挥 Claude Code 的 “代理式编码” 能力,为单人或团队项目提供持续增益。
## 1. 理念速览
| 核心原则 | 说明 |
| --------------- | ------------------------------------------------- |
| **前置设计** | 明确上下文边界、权限模型、成本阈值 → 再接入 Claude |
| **轻量索引 & 按需加载** | 顶层 CLAUDE.md 只放导航;大文件按需 `@path` 或子目录 CLAUDE.md 引入 |
| **最小权限** | 通过 `permissions.allow/deny`、容器隔离,限制文件系统与网络访问范围 |
| **分层记忆** | 遵循「项目 > 共享 > 个人」层级,把长期规范写进项目级,个人偏好写进用户级 |
| **成本可视化** | 在 CI 或本地脚本中统计 Token & 执行时间,自动降级模型或切分任务 |
---
## 2. 安装与基础环境
- **支持系统**:macOS ≥ 10.15、Ubuntu ≥ 20.04 / Debian ≥ 10、Windows 10 (WSL);≥ 4 GB RAM。
- **依赖**:Node ≥ 18、Bash/Zsh/Fish、可访问互联网。
- **一键安装**:
```bash
npm install -g @anthropic-ai/claude-code
claude /login # 浏览器 OAuth 鉴权
claude /doctor # 自检依赖 & 网络
```
- **关键环境变量**
| 变量 | 用途 | 建议配置 |
| ------------------------------- | ------------- | -------------------------- |
| `ANTHROPIC_API_KEY` | 访问 Claude API | GitHub/CI Secrets,严禁硬编码 |
| `ANTHROPIC_BASE_URL` | 私有网关地址 | 企业网关或代理 |
| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 限制生成 Token 上限 | 项目 `.claude/settings.json` |
| `DISABLE_TELEMETRY` | 关闭用量遥测 | 合规场景下置 `true` |
---
## 3. 分层配置与 `settings.json`
Claude Code 依次读取并覆盖下列配置文件:
1. **企业策略**(集中管控,自上而下下发)
2. **CLI 参数**(优先级最高,适合一次性覆写)
3. **项目共享** → `./.claude/settings.json`
4. **项目局部** → `./.claude/settings.local.json`(进 `.gitignore`)
5. **用户级** → `~/.claude/settings.json`
> 建议在仓库根建 `.claude/`,将允许工具、默认模型、公共 Hook 写入共享配置;个人偏好写入用户级;敏感或实验功能放 `settings.local.json`。
---
## 4. 权限 & 安全模型
- **白名单优先**:通过 `permissions.allow/deny` 精细控制对 `Write()`、`Bash()`、`Network()` 等危险动作。
- **Safe YOLO 容器**:批量格式化 / 生成样板时,可在无网容器里加 `--dangerously-skip-permissions`,速度快且不怕误删文件。
- **密钥管理**:所有 CI/仓库中统一用 Secrets;本地开发使用 `envrc` 或 `direnv` 注入。
- **日志审计**:走网关 / 代理时记录请求日志,便于安全回溯。
---
## 5. CLAUDE.md 与上下文工程
### 5.1 层级读取规则
| 读取阶段 | 触发时机 | 行为 |
| --------- | ----------- | -------------------------- |
| **启动** | 打开 Claude 时 | 从 cwd 递归向上加载所有 CLAUDE.md |
| **子目录追加** | 首次访问子目录文件 | 追加该子目录 CLAUDE.md |
| **用户级** | 始终 | 最后合并 `~/.claude/CLAUDE.md` |
冲突遵循「近处优先」。
### 5.2 `@path` 导入机制
- 会 **立即** 展开,整块内容写入提示;可递归 5 层。
- 顶层 @ 导入大文件会推高 Token 消耗,建议:
1. 顶层只写一句导航。
2. 需要时在对话中 `@docs/big-spec.md` 即时加载。
3. 定期使用 `claude token-count` 监控提示大小。
---
## 6. 多功能仓库的上下文拆分
```text
repo/
├─ CLAUDE.md # 项目索引(轻量)
├─ docs/
│ ├─ coding-style.md
│ └─ testing-guidelines.md
├─ feature-a/CLAUDE.md # A 模块规范
├─ feature-b/CLAUDE.md # B 模块规范
```
### 工作流
1. `cd feature-a && claude` → 自动加载项目索引 + feature‑a 规范。
2. 跨模块需求:对话里写 `@feature-b/README.md` 即时引入。
3. 并行任务:在 `settings.json` 的 `additionalDirectories` 加入其他模块路径,将其 CLAUDE.md 暂时暴露。
---
## 7. 子代理(Sub‑agents)与命令自动化
### 7.1 Slash Commands
- 把常用操作模板放 `.claude/commands/`。
- 例:`/project:lint-all` → 一键修复 ESLint。
### 7.2 Sub‑agents
- 在 `.claude/agents/` 建立 `sql-optimizer.md`:
```yaml
---
name: sql-optimizer
allowed_tools:
- Read()
- Bash(psql)
prompt: |
你是一名资深数据库专家,负责优化查询…
---
```
- 通过 `/agent sql-optimizer` 让 Claude 专注数据库任务。
---
## 8. CI / GitHub Actions 集成
```yaml
name: claude-audit
on: [pull_request]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Claude Doc Audit
run: claude -p '你是文档审计员,确保改动符合 @docs/coding-style.md' \
--allowedTools "Bash(npm run lint*)" \
--model claude-3.5-haiku \
--timeout_minutes 5
```
- Scope 最小化,只给必要权限。
- 复杂任务分段调用:格式化用 Haiku,评审用 Sonnet/Opus。
---
## 9. IDE & 本地开发体验
- **VS Code 插件**:自动侦测 Claude Code,支持选中文本、Diff 视图、Alt+Cmd+K 注入上下文。
- **gh CLI**:可让 Claude 写 commit message、生成 PR 描述。
- **多模态**:桌面版可拖拽截图或设计稿进行 UI 比对。
---
## 10. 成本控制与监控
| 维度 | 建议 |
| ------------ | ----------------------------------------------- |
| **模型选择** | Haiku:格式化 / 小脚本;Sonnet/Opus:复杂重构 / 审计 |
| **Token 上限** | 项目 `.claude/settings.json` 设置 `maxOutputTokens` |
| **执行超时** | CLI `--timeout_minutes` 或 CI 步骤超时控制 |
| **用量统计** | `claude usage --since yesterday` 追踪消耗 |
---
## 11. 常见问题(FAQ)
**Q1: Claude 会一次性加载所有子目录 CLAUDE.md 吗?**
> 不会。只有在访问子目录文件时才追加其 CLAUDE.md。
**Q2: 顶层大量 @import 会不会撑爆上下文?**
> 会占用窗口。把大文件交给即时 `@file` 引入。
**Q3: 如何确保 Claude 只修改当前功能代码?**
> 在 `.claude/settings.json` 限制 `permissions.allow`,并在 cwd 使用相对路径,防止误写其他模块。
---
## 12. 参考链接与进一步阅读
- 官方博客:**Claude Code – Best Practices for Agentic Coding**
- Reddit `r/ClaudeAI` 社区模板与踩坑总结
- Connectors Directory & MCP 文档
---
> **最后一句话**:牢记 “目录分层 + 轻量索引 + 按需加载 + 最小权限 + 成本监控”,让 Claude Code 成为你的高效、可控、可信的 AI 编程伙伴。