近期高频使用claude code感觉有很多不方便的点,倒逼着我去看官方文档,结合着自己的使用经验,做个阶段性总结,此文章正持续更新中···
场景1:权限问题
在终端中使用claude code频繁询问此命令能否执行
方案:
单次生效:claude --enable-auto-mode,之后在Shift+Tab切换模式时就可以切换至auto模式;claude --enable-auto-mode --permission-mode auto,直接以Auto Mode模式启动,无需Shift+Tab切换模式。
持久生效:在<~/.claude/settings.json>此目录下,添加defaultMode字段:
"permissions": {
"defaultMode": "auto"
}
场景2:功能开发
对已经上线的项目进行修改,结果AI改完之后还不如不改或尝试对现有项目增加探索性新功能
方案:
根据官方文档,claude code内置了原生工作树支持。
在cli中运行此命令claude --worktree或者claude --worktree <worktree名字>,claude code会在隔离的工作树中启动会话(不同的工作树,代码文件、改动、分支状态这部分是隔离的,.env、本地配置、依赖文件这部分不一定自动存在。),它会在当前 Git 仓库根目录下创建.claude/worktrees/<worktree名字>/。
- worktree中代码改坏了?
可以直接删掉这个隔离目录:git worktree remove .claude\worktrees\<worktree名字> - 满意worktree中改动?
(1)检查(cd \.claude\worktrees\<worktree名字>->git status->git diff)
(2)测试
(3)提交(git branch --show-current->git add .->git commit -m "提交信息...")
(4)返回主项目目录并切换至主分支(git branch --show-current->git checkout main->git pull)
(5)查看所有worktree分支(git worktree list)
(6)合并(git merge <worktree分支名字>)
(7)再次测试
(8)推送
(9)清理 worktree(git worktree remove .claude\worktrees\<worktree名字>)
(10)清理本地分支(git branch -d <worktree分支名字>)
当然上述操作完全可以用自然语言交给claude code自己处理,通常我会在测试完worktree中代码的有效性后手动执行/simplify命令用于代码质量的审查。
场景3:CLAUDE.md维护
claude code它也会犯错,每次出错时手动维护项目级CLAUDE.md太麻烦
方案:
在<~/.claude/CLAUDE.md>目录下,加入这段限制:
# 从纠错中学习
当用户明确纠正我对本项目的长期规则、工作流程、命令、目录结构、架构决策、测试方式、部署方式、代码风格或重复错误的理解时,执行本流程。
触发示例包括但不限于:
“这个项目不是这样做的”
“以后不要这样”
“以后记住……”
“这里应该使用……”
“这个命令不对,应该是……”
“我们项目的规则是……”
流程:
1.在继续处理原任务时,判断该纠正是否适合成为项目长期规则。
2.只建议记录稳定、可复用、项目特定的规则;不要建议记录一次性偏好、临时决策、猜测或仅适用于当前任务的信息。
3.如果适合记录,简要说明拟记录的规则,并询问用户:“我是否应该将此添加到项目的 CLAUDE.md 文件中?”
4.未经用户明确批准,不得修改、创建或追加 CLAUDE.md。
5.如果用户批准,则更新项目级 CLAUDE.md。
6.项目级 CLAUDE.md 指当前项目内,从当前工作目录开始向上查找的第一个 CLAUDE.md;不要跨出项目边界。若不存在,则询问用户是否需要创建。
7.写入内容必须简洁,优先写成一条 bullet;不要记录对话过程或原因解释。
8.提出记录建议后,继续处理用户原本的请求;不要因为等待批准而阻塞原任务。
场景4:没有遵守规则
我明明把规则都写到CLAUDE.md中了,为什么它不听我的
方案:
1.最懂大模型的还是大模型,要把自己想让他遵守的规则都列出来,然后让模型自己编写这些规则的适用情况,具体约束,执行流程等,多用祈使句,不要让模型感到角色混乱。
2.所有的东西都塞到CLAUDE.md里会让模型感到混乱,而且随着项目体积越来越大难免有互相矛盾的时候。通常我会在项目根目录下创建一个docs文件夹,里面维护各种各样的文档,包括但不限于项目结构,项目设计,开发方案等。换句话说,把什么时候遵循什么规则写到CLAUDE.md中,而具体的规则内容放到docs文件夹下的文档中,claude code就会有选择地看这些文档保持上下文干净。
