# 用 Claude Code 简化 80% 日常工作的三件事

> 大多数人把 Claude Code 用成了高级搜索引擎。讲清三件事:用 CLAUDE.md 把行为规范沉淀下来、用 Subagent 给它定角色、用 /goal 把循环交出去——把效率从'快一点'拉到'少做 80%'。

- 原文链接: https://laojin.blog/blog/20260525_simplify_with_claude_code
- 作者: 老金
- 发布日期: 2026-05-25
- 标签: Claude Code, CLAUDE.md, Subagent, 自动化, /goal

---

![用 Claude Code 简化 80% 日常工作的三件事](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260525/00_cover.png)

用了这么久 Claude Code,你的工作效率真的变了吗?

我问过不少开发者,得到的答案大多是:"比以前快了一点,但没有传说中那么神。"

问题不在工具,在用法。

我自己有一个跑了一年多的 PWA 边项目 TinyPA——记一句话进去,后台 LLM 自动拆成 todo / note / mood / followup,每天 22:00 出复盘,08:00 推早报。麻雀虽小,从 schema、cron、prompt、provider 抽象到 UI 都得自己盯。半年下来,Claude Code 的用法把这个项目的维护成本压到几乎可以忽略——每次打开终端不是写代码,是审查它已经写好的东西。

把过程里学到的三件事整理在这里。

## 建立 Claude 的行为规范

大多数人用 Claude Code 的方式是:每次开新对话,重新解释一遍项目背景。这不是 Claude 的问题,是你没有给它一份持久的行为规范。

Andrej Karpathy 记录过 LLM 写代码时最常犯的几类错误:过度设计、忽略现有模式、添加不必要的依赖、随意改动未被要求的代码。有人把这些观察整理成一个 CLAUDE.md 模板放进项目根目录,一周内 GitHub 拿了 15,000 星。

![CLAUDE.md 四条核心原则](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260525/01_claude_md_rules.png)

四条核心原则:

```
Think Before Coding    → 阻止错误假设和遗漏的权衡
Simplicity First       → 阻止过度设计和臃肿抽象
Surgical Changes       → 阻止触碰未经要求的代码
Goal-Driven Execution  → 测试先行,验证成功标准
```

实际数据对比:

```
没有 CLAUDE.md:        Claude 在约 40% 的情况下违反规范
使用 Karpathy CLAUDE.md:违规率降至约 3%
设置时间:              5 分钟
```

一行命令自动生成你项目的 CLAUDE.md:

```bash
claude -p "通读整个项目,基于以下四条原则生成一份 CLAUDE.md:
  Think Before Coding(动手前先想清楚)、
  Simplicity First(优先简单方案)、
  Surgical Changes(外科手术式改动)、
  Goal-Driven Execution(以目标为导向执行)。
  按你实际看到的架构来适配,不要套模板。" 
    --allowedTools Bash,Write,Read
```

**TinyPA 里这条规则的体感**:上周我把 chat 模型默认从 NVIDIA NIM 的 Llama 切到 Google Gemini。没有 CLAUDE.md 之前,类似改动经常会被"顺手"扩成一次大重构——Claude 看到 `lib/llm/` 下面 `gemma.ts`、`openai-compat.ts`、`anthropic.ts`、`provider.ts` 几个文件,会忍不住建议把 provider 抽象再封一层接口,把 prompt 模板拆成单独的包,把模型名做成枚举。结果一次默认值切换变成一周的工程。

加了 Surgical Changes 这一条之后,同样的任务今天再做:改了三处默认字符串、把 `gemma.ts` 重命名成 `index.ts`(因为它本来就是 dispatcher,不是 Gemma 实现)、更新了 README / DEPLOY / .env.example 里的措辞。其他什么都没动。最后切成两个 commit 推上去——一个是 lint 配置迁移,一个是 Gemini 默认。每个 commit 的范围都和它的 message 严格对得上。

这是最低成本、收益最高的一步。先做这个。

## 定义 Claude 角色

大多数人的用法:打开对话框,描述需求,等输出,复制粘贴,发现不对,再描述。

这是把 Claude Code 用成了高级搜索引擎。正确用法是:给它角色,给它工具,让它在系统里跑。

`everything-claude-code` 这个仓库(153,000+ stars)提供了一套现成的 AI 工程团队配置:

```
planner.md           → 功能规划
architect.md         → 系统架构决策
tdd-guide.md         → 测试驱动开发
code-reviewer.md     → 质量与安全审查
security-reviewer.md → 漏洞分析
loop-operator.md     → 自主循环执行
```

安装方式:

```
/plugin marketplace add affaan-m/everything-claude-code
```

或者直接把需要的 .md 文件复制到项目的 `.claude/` 目录。

**一个重要提醒:不要一次性全装。**

27 个 Agent + 64 个 Skill 同时加载,上下文会被撑爆,Token 消耗速度比你打完第一个 prompt 还快。只取你真正需要的部分。

![只装真正用到的三个角色](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260525/02_subagent_roles.png)

**TinyPA 里我实际用到的就三个角色**:

- **Explore**——只读搜索。比如 NIM → Gemini 迁移之前,先让它在仓库里把所有 `nvidia` / `nim` / `gemma` 字样的位置全列出来(包括注释、env 示例、UI 文案、错误日志),一次性拿到清单,主对话不用消耗上下文去 grep。
- **Plan**——动手前的架构脚手架。tree-hole UI 那次重构我就先让 Plan 出方案:消息从聊天气泡变成树枝上的节点,状态怎么映射成 sprout / leaf / flower / fruit、布局算法放哪个文件、动画用 CSS 还是 framer-motion。Plan 出完我自己改两处再让主线程实现,一次跑完没有返工。
- **code-review**——commit 之前过一道。特别是涉及 auth、cron 触发、cron 密钥泄漏面这种代码,自己看容易脸盲,让独立 reviewer 走一遍便宜得多。

剩下的角色我都没装。一个边项目不需要 architect + security-reviewer + loop-operator 同时常驻——按功能拆,按需调用。

## Token 问题

如果你在用 Claude Max,可能遇到过这种情况:

明明 CLAUDE.md 写得很清楚,但 Claude 突然开始忽略规则。

有人用 HTTP 代理拦截了不同版本的 Claude Code API 请求,发现了一个奇怪的现象:

```
v2.1.98:   169,514 字节请求 → 计费 49,726 tokens
v2.1.100:  168,536 字节请求 → 计费 69,922 tokens
差异:      减少 978 字节,但增加 20,196 tokens
```

v2.1.100 发送的字节更少,但收取的 Token 多了 20,000 个。这 2 万个 Token 占用了真实的上下文窗口,直接稀释了你的 CLAUDE.md 指令。

临时解决方案:

```bash
npx claude-code@2.1.98
```

在 TinyPA 这种规模的项目里效果尤其明显——上下文窗口不大的时候,几千字的差额就足以把 CLAUDE.md 挤出"前文有效记忆",Claude 开始凭直觉写代码,Surgical Changes 那条原则就变成了空气。

## 真正的自动化长什么样

到这里光有 CLAUDE.md 和子 Agent 还不够——它们让单次对话变得靠谱,但人还是在循环里。下一步是把"该不该做"和"做了没"也交出去。

![/goal 把循环交给系统](https://pic-1258874139.cos.ap-hongkong.myqcloud.com/laojinblog/posts/20260525/03_goal_loop.png)

**TinyPA 这种个人项目的尺度上**,自动化其实分两层:

**项目本身就是一套自动化**。22:00 cron 抓昨日所有 message → LLM 拆成 item → 24h 之内的去重合并 → 落库 → 早 08:00 把昨日复盘和今日 top 3 推到邮箱和 Telegram。我作为用户的输入只有一句话:"今天有点累,晚上还要改 PR。",剩下的整理、归类、回顾、推送都是系统在跑。

**开发流程也是一套自动化**。这一层我用 `/goal` 命令兜住——给一个客观可验证的终止条件,Claude 自己跑到条件满足为止,不用我每轮回"继续"。

举几个 TinyPA 里真跑过的 goal:

```
/goal README.md 不再出现 NVIDIA NIM / Gemma 4 字样,
技术栈和环境变量章节准确反映当前的 Gemini provider;
grep -i "nim\|gemma" 在 README 和 .env.example 里返回为空
```

```
/goal lib/jobs/extract.ts 的 LLM 输出解析失败时,
错误信息能够区分"LLM 返回空"和"NDJSON 不合法"两种情况,
并且对这两种情况各有一个测试用例
```

整个过程不用插手。我看 IDE 里文件变化、git diff 慢慢长出来,时不时看一眼方向对不对。

本质上还是三层:**CLAUDE.md 定规范 → Agent 配置定角色 → 定时循环或 /goal 驱动执行**。

人负责判断,系统负责执行。这才是 AI 工具的正确分工。

## 最后

Claude Code 要想效率最大化,简化日常的工作,必不可少要做好将 Claude Code 配置成一个系统。自动化程度越高,效率提升越大。你现在有做哪些配置或自动化?一起在评论区聊聊。
