Claude Code 权限模式与工作流
Claude Code 的行为控制分为两个维度:权限级别(控制哪些操作需要确认)和工作流选项(控制执行策略)。
权限级别(三级)
1. 默认模式(Confirm All)
所有写操作(文件修改、命令执行)都需要用户确认后才会执行。读取文件、分析代码等只读操作不需要确认。
- CLAUDE.md 作为系统提示持续生效
- 默认模型为 Sonnet,可通过
/model切换 - 最安全的模式,适合日常开发
2. Auto-accept Edits(Tab 键切换 / --allowedTools)
文件修改自动执行,不再逐一确认;但 Shell 命令仍需确认。
- 在会话中按 Tab 可切换到此模式
- 也可通过
.claude/settings.json中的allowedTools细粒度配置哪些工具自动批准 - 适合信任度较高的开发场景,提升编码效率
3. 全自动模式(--dangerously-skip-permissions)
跳过所有权限提示,文件修改和命令执行全部自动进行。
- 适用于 CI/CD 流水线、批量脚本、沙箱环境
- ⚠️ 谨慎使用:不会有任何安全确认,可能导致意外修改或数据丢失
- 建议仅在隔离环境中使用
| 权限级别 | 文件修改 | Shell 命令 | 适用场景 |
|---|---|---|---|
| 默认 | 需确认 | 需确认 | 日常开发 |
| Auto-accept Edits | 自动 | 需确认 | 高效编码 |
--dangerously-skip-permissions | 自动 | 自动 | CI/CD、脚本 |
工作流选项(可叠加)
规划模式(--plan)
让 Claude 在执行前先输出完整计划,获得用户批准后再动手。这是一个正交选项,可以和上面任何权限级别组合使用。
- 适用于大型重构、多步骤功能开发、需要架构决策的任务
- Claude 会先分析需求、列出步骤,确认后再逐步执行
- 示例:
claude --plan "重构用户认证模块"
常用命令详解
| 命令 | 解释 | 使用场景 | 示例 |
|---|---|---|---|
| /clear | 清空上下文 | 重新开始、AI 问题解决失败时 | /clear |
| /compact | 压缩对话 | 重新开始但保留记忆 | /compact |
| /cost | 查看花费 | API 用户监控使用情况 | /cost |
| /login /logout | 登录登出 | 切换账号、认证管理 | /login |
| /model | 切换模型 | 根据任务需求选择合适模型 | /model |
| /status | 查看状态 | 监控 Claude Code 运行状态 | /status |
| /doctor | 系统检测 | 检查安装和配置 | /doctor |
| /init | 初始化项目 | 创建 CLAUDE.md 配置文件 | /init |
| /loop | 定时循环执行 | 周期性任务监控 | /loop 5m /status |
| /insights | 生成对话报告 | 项目进度总结、回顾 | /insights |
| /simplify | 代码审查 | 检查本地改动 | /simplify |
| /rewind | 回退操作 | 撤销错误修改 | /rewind |
| /resume | 恢复会话 | 继续未完成工作 | /resume |
| /hooks | 设置钩子 | 自定义自动化流程 | /hooks pre-commit |
| /plugin | 安装插件 | 扩展功能模块 | /plugin tailwind-theme-builder |
命令使用详解
1. 模型切换 (/model)
- 基础账户:只能在 Sonnet 和 Haiku 间切换
- Pro 账户:可以使用 Opus、Sonnet、Haiku
- 模型选择策略:
- Opus:复杂推理、架构设计、代码生成
- Sonnet:日常开发、bug 修复、代码审查
- Haiku:简单任务、快速查询、API 调用
2. 定时循环 (/loop)
语法:/loop [间隔] [命令]
- 间隔格式:
5s、1m、5m、1h等 - 适用场景:
# 每5分钟检查一次构建状态 /loop 5m /status # 监控部署进度 /loop 30s “curl -s https://api.example.com/deploy/status”
3. 项目初始化 (/init)
自动生成 CLAUDE.md 文件,包含:
- 项目描述和背景
- 编码规范和约定
- 文件结构说明
- 常用命令别名
- 团队协作指南
CLAUDE.md:全局记忆的核心
和聊天机器人交流时,”系统提示词”很重要,会持续影响 AI 的行为。在 Claude Code 中,CLAUDE.md 文件扮演着类似的角色。它是一个持续发挥作用的全局配置文件。
典型工作流
建立初始 CLAUDE.md
↓
对话直到长度接近溢出
↓
运行 `/compact` 续命
↓
达到里程碑时要求 Claude 更新 CLAUDE.md
↓
循环直到项目结束
CLAUDE.md 最佳实践
1. 文件结构建议
---
# 项目名称和描述
# 技术栈和架构说明
# 开发规范和约定
# 常见问题和解决方案
# 团队协作指南
---
## 项目概述
[项目背景、目标和主要功能]
## 开发规范
- 代码风格:使用 ESLint + Prettier
- 提交信息:Conventional Commits
- 分支策略:Git Flow
- 文档要求:每个 PR 需更新 README
## 重要配置
- API 端点:https://api.example.com
- 数据库连接:使用环境变量 DB_URL
- 缓存策略:Redis 端口 6379
## 常用命令
```bash
# 启动开发服务器
npm run dev
# 运行测试
npm test
# 构建项目
npm run build
#### 2. 内容建议
- **项目背景**:业务目标、技术选型原因
- **开发规范**:编码标准、Git 提交规范
- **文件结构**:重要目录说明
- **环境配置**:开发环境搭建步骤
- **常见问题**:已知问题和解决方案
#### 3. 维护策略
- **定期更新**:达到里程碑时主动要求 Claude 更新
- **版本追踪**:保留重要决策的记录
- **团队共识**:确保所有开发者都了解 CLAUDE.md 的存在
### CLAUDE.md 使用技巧
1. **文件长度控制**
- 保持文件简洁,避免过长
- 使用清晰的层级结构
- 定期清理过期信息
2. **会话中使用**
- 可以直接说 “claude.md” 而不是全称
- 要求 Claude “查询 claude.md 相关部分”
- 让 Claude 更新特定章节
3. **内容类型**
- ✅ 适合:配置项、规范要求、重要提醒
- ❌ 不适合:临时任务、个人笔记、过时信息
4. **常见提醒事项示例**
- “要求每次任务完成时都输出文件路径”
- “代码修改前必须先创建备份”
- “API 调用需要包含认证头”
## 高级操作技巧
### 1. 会话管理
- **使用 /compact**:当对话超过 300 条消息时建议使用
- **使用 /resume**:长时间工作后继续之前的进度
- **使用 /clear**:遇到性能问题时重置状态
### 2. 代码审查工作流
```bash
# 查看本地改动
/simplify
# 生成代码审查报告
/insights --focus code-quality
# 比较不同版本
/review --branch main
3. 项目初始化模板
使用 /init 命令时,Claude 会根据项目类型自动生成相应的模板:
- Web 应用:包含 React/Vue 配置、路由、状态管理
- 后端服务:API 设计、数据库配置、认证系统
- 移动应用:React Native/Flutter 配置、构建流程
4. 错误处理
- 遇到卡顿:使用
/clear重置 - 模型性能不足:切换到 Opus 模型
- 权限问题:使用
--dangerously-skip-permissions(谨慎使用)
5. 团队协作
- 共享 CLAUDE.md:确保团队成员使用相同的配置
- 定期同步:重要里程碑后更新文件
- 版本控制:将 CLAUDE.md 纳入 Git 管理
常见问题 FAQ
Q1: 什么时候使用规划模式?
A1: 复杂任务、重构项目、需要架构决策时使用。让 Claude 先分析需求、制定计划,再执行。
Q2: /loop 命令会一直运行吗?
A2: 默认会持续运行,可以使用 Ctrl+C 停止。也可以设置固定次数:/loop 5 10(每5秒一次,共10次)。
Q3: 如何保证代码质量?
A3: 使用 /simplify 进行代码审查,配合模型切换策略:
- 简单任务:Haiku 快速处理
- 复杂逻辑:Opus 深度分析
- 代码审查:Sonnet 平衡性能和质量
Q4: CLAUDE.md 文件放在哪里?
A4: 默认放在项目根目录,可以通过环境变量 CLAUDE_MD_PATH 自定义位置。
Q5: 如何备份会话内容?
A5: 使用 /insights 生成报告,或手动复制重要内容到文档中。
注意事项
- 文件不要太长,毕竟 CC 会默认读入这个文件
- 会话时为了省事,说
claude.md时 CC 也可以懂 - 文件里适合放提醒事项,比如 “要求 CC 每次宣布成功时都要带上证据文件链接”,以及 “代理服务端口是 9890”。然后会话时,可以要求 CC “查询 claude.md 相关部分”
- 官方的 “#” 进文档根 GPT 说有个 bug 不稳定