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 [间隔] [命令]

  • 间隔格式5s1m5m1h
  • 适用场景
    # 每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 不稳定