news 2026/10/2 20:27:58

Claude Code 使用教程:用 CLAUDE.md 与 Plan 模式搭建可复现的 Skill 工作流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Claude Code 使用教程:用 CLAUDE.md 与 Plan 模式搭建可复现的 Skill 工作流

1. 为什么你的 Claude Code 总是“聊着聊着就失忆”

很多人第一次打开 Claude Code,输入claude回车,看到那个朴素的终端界面,心里想的是:这不就是个命令行版的聊天机器人吗?然后就开始一句一句地跟它聊,让它写个函数、改个样式、修个 bug。聊了半小时,项目文件多了,对话轮次上去了,突然发现它开始胡言乱语——你让它改按钮颜色,它去动路由配置;你让它加个接口,它把数据库 schema 给改了。

这不是 Claude 变笨了,而是你没有给它建立一套可复现的工作流。Claude Code 真正的威力不在于“单次对话能写多少代码”,而在于你能不能把项目约定、规划习惯、常用操作和回滚机制固化下来,让每一次会话都从同一个起点出发,产出可预期的结果。

这篇文章要解决的,就是这个问题。我会带你从零配置一个 Claude Code 项目,用CLAUDE.md固化项目约定,用 Plan 模式先规划再执行,用 Skill 沉淀常用操作,用 Rewind 做失败回滚。每一步都有可直接复制的配置和验证动作,你跟着做一遍,就能跑通一条完整的可复现工作流。

适合谁看?如果你已经装好了 Claude Code,能跑通claude命令,但每次用都觉得“差点意思”——要么重复解释项目背景,要么改着改着就失控,要么不知道哪一步出了问题——那这篇就是写给你的。如果你还没装,也没关系,配置部分我会给出完整路径和文件内容,你照着建就行。

核心检索词先放在这里:Claude Code 使用教程、CLAUDE.md 配置、Plan 模式、Skill 工作流、Rewind 回滚。这几个词贯穿全文,你可以在每一步里找到对应的实操。

我试过在一个中型前端项目里连续用 Claude Code 两周,最大的感受是:没有CLAUDE.md的时候,每天开工前要花十分钟跟它解释“这个项目用 Vite 不用 Webpack”“样式走 CSS Modules 不走 Tailwind”“API 请求统一走src/api/client.ts”。有了CLAUDE.md之后,这些废话全省了,打开终端直接干活。这就是可复现工作流的价值——把重复劳动压缩到零。

下面进入正题。我会按照“先建约定,再规划,再执行,再沉淀,再回滚”的顺序,把每个环节拆成可复制的步骤。你不需要一次全做完,可以跟着章节一步步来,每完成一节就验证一次输出。

2. TaoToken 前置:给 Claude Code 配一个稳定的模型入口

在开始配置工作流之前,得先确保你的 Claude Code 能稳定调用模型。很多新手卡在第一步:装好了 Claude Code,输入claude之后要么报 401,要么提示local proxy failed,要么一直转圈没响应。这些问题多半出在模型接入配置上。

TaoToken 在这里的角色,是提供一个兼容 Anthropic API 的模型调用入口。你不需要改 Claude Code 的源码,只需要在环境变量或配置文件里把 Base URL 和 API Key 指向 TaoToken,就能让 Claude Code 正常跑起来。官网地址是https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,API 地址是https://taotoken.net/api(注意 API 地址不加 UTM 参数,直接用于配置)。

具体怎么配?Claude Code 读取配置的方式有两种:环境变量和settings.json。推荐用settings.json,因为它是项目级的,换项目不会互相干扰。文件路径是~/.claude/settings.json(全局)或项目根目录下的.claude/settings.json(项目级)。项目级优先级更高,适合团队协作时统一配置。

一个最小可用的settings.json长这样:

{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-你的TaoToken密钥" } }

注意两点:第一,ANTHROPIC_BASE_URL填https://taotoken.net/api,不要加末尾斜杠,也不要加 UTM 参数;第二,ANTHROPIC_API_KEY填你在 TaoToken 控制台生成的密钥,格式通常是sk-开头。密钥不要提交到 Git,建议放在.claude/settings.local.json里,然后把settings.local.json加进.gitignore。

如果你用的是 Claude Code 的 OAuth 登录方式,可能会遇到OAuth token expired或reading choices报错。这时候切回 API Key 模式最稳。操作方法是:先退出登录,然后在settings.json里显式写入ANTHROPIC_API_KEY,再重启 Claude Code。重启命令就是claude,不需要额外参数。

配好之后怎么验证?在终端里输入:

claude -p "回复一句:配置成功"

如果看到类似“配置成功”的回复,说明模型入口通了。如果报 401,检查密钥是否复制完整;如果报local proxy failed,检查ANTHROPIC_BASE_URL是否写成了https://taotoken.net/api而不是其他地址;如果一直无响应,检查网络是否能访问taotoken.net。

这里插一句:TaoToken 的 API Key 管理页面在https://taotoken.net/api-keys,你可以在这里生成、删除、查看密钥。建议给每个项目单独生成一个 Key,方便排查问题和控制用量。模型对话调试页面在https://taotoken.net/chat,如果你不确定某个模型 ID 是否可用,可以先去这里试一句。

配好模型入口之后,Claude Code 就能正常对话了。但能对话不等于能干活,接下来我们要解决的是“怎么让它记住项目约定”。

3. 可复制配置:用 CLAUDE.md 固化项目约定

CLAUDE.md是 Claude Code 每次启动时自动读取的项目记忆文件。你可以把它理解成给 Claude 写的一份“入职须知”:项目是做什么的、用了什么技术栈、代码规范是什么、哪些文件不能动、常用命令有哪些。写一次,之后每次打开 Claude Code 都自动带上,不用重复解释。

文件位置很关键:放在项目根目录下,文件名必须是CLAUDE.md(大写)。Claude Code 启动时会从当前目录往上找,找到第一个CLAUDE.md就用它。如果你在子目录里启动,它会往上找到项目根目录的那份。

下面是一份可直接复制的CLAUDE.md模板,我按“项目简介、技术栈、代码规范、项目结构、常用命令、禁止事项”六块来写。你可以根据自己项目改,但建议保留这个结构,因为 Claude 对分节标题的识别效果最好。

# 项目简介 这是一个番茄钟 Web 应用,支持 25 分钟倒计时、开始/暂停/重置、番茄计数、休息提醒、任务标签和历史记录。目标用户是需要专注工作的个人开发者。 # 技术栈 - 框架:React 18 + TypeScript 5 - 构建工具:Vite 5 - 样式:Tailwind CSS 3 - 状态管理:React useState/useEffect,不引入 Redux - 持久化:localStorage - 测试:Vitest + React Testing Library # 代码规范 - 组件文件用 PascalCase,如 `TimerDisplay.tsx` - 工具函数用 camelCase,如 `formatTime.ts` - 每个组件必须导出默认组件,类型定义写在同文件顶部 - 样式优先用 Tailwind 类名,不写独立 CSS 文件 - 所有时间相关逻辑必须考虑暂停和重置 - 提交前必须跑 `npm run lint` 和 `npm run test` # 项目结构 - `src/components/`:UI 组件 - `src/hooks/`:自定义 hooks - `src/utils/`:纯函数工具 - `src/types/`:TypeScript 类型定义 - `src/api/`:API 请求封装(当前项目无后端,预留) # 常用命令 - 开发:`npm run dev` - 构建:`npm run build` - 测试:`npm run test` - 检查:`npm run lint` # 禁止事项 - 不要引入新的状态管理库 - 不要修改 `vite.config.ts` 除非明确要求 - 不要删除 `src/utils/formatTime.ts` 中的边界处理 - 不要用 `any` 类型,必要时用 `unknown` 加类型守卫

这份模板大概 60 行,占用的 token 不多,但信息密度很高。写完之后,你可以用/init命令让 Claude Code 自动扫描项目生成一份,然后对照上面的模板补充。/init生成的通常是英文,你可以直接让 Claude 改成中文,或者自己手动改。

验证CLAUDE.md是否生效的方法很简单:先/clear清空对话,然后问 Claude“这个项目用什么状态管理”。如果它回答“React useState/useEffect,不引入 Redux”,说明CLAUDE.md被正确读取了。如果它说“不确定”或者“可能用 Redux”,说明文件没被读到,检查文件名和位置。

这里有个坑要注意:CLAUDE.md不是越长越好。我见过有人写了 500 行,把整个 API 文档都塞进去,结果每次对话光读这个文件就吃掉几万 token,Claude 反而抓不住重点。判断标准是:每条信息都问自己“如果删掉这条,会不会让 Claude 犯错?”如果不会,就不写。详细的 API 文档应该用@引用具体文件,而不是全量塞进CLAUDE.md。

另外,CLAUDE.md是活文档。项目加了新功能、换了技术栈、改了目录结构,都要同步更新。建议每次发版前花两分钟过一遍,保持信息准确。

配好CLAUDE.md之后,Claude Code 就有了“长期记忆”。接下来我们要解决的是“怎么让它先规划再动手”。

4. 验证请求:用 Plan 模式跑通一条可复现工作流

Plan 模式是 Claude Code 里最被低估的功能。很多人一上来就让 Claude 写代码,结果写出来的东西跟预期差很远,改来改去浪费大量时间。Plan 模式的核心逻辑是:先让 Claude 只看不改,输出一份完整的执行计划,你确认没问题之后再让它动手。

怎么进入 Plan 模式?在 Claude Code 交互界面里按Shift+Tab切换。按一次切到 Auto-accept,再按一次切到 Plan,再按一次回到 Normal。界面底部会显示当前模式,Plan 模式下会显示plan mode字样。

进入 Plan 模式后,输入提示词。提示词的质量直接决定计划的质量。一个好的 Plan 提示词应该包含三要素:技术栈、功能清单、约束条件。比如:

我要在这个番茄钟项目里添加一个统计面板,展示今日完成番茄数、累计专注时长、连续完成天数。 技术栈:React 18 + TypeScript + Tailwind CSS,数据存 localStorage。 约束:不要引入新依赖,不要改现有 Timer 组件的接口。 请先规划实现步骤和文件改动清单,不要写代码。

注意最后一句“不要写代码”很关键。Plan 模式下 Claude 本来就不会改文件,但明确说出来能让它更聚焦在规划上。

Claude 收到后会输出一份计划,通常包含:需要新建哪些文件、需要修改哪些文件、每个文件改什么、执行顺序是什么、有哪些风险点。这份计划会被写入一个 md 文档,你可以用Ctrl+G打开编辑。如果计划里有你不满意的地方,直接改,改完再让 Claude 执行。

计划确认后,Claude 会给你三个选项:自动接受所有修改、手动审核每一处修改、给反馈调整方案。新手建议选第二个,手动审核,这样你能看到每一步改了什么。熟悉之后可以选第一个提速。

执行过程中,Claude 会按计划一步步来。每改一个文件,它会告诉你改了哪里、为什么改。如果中途发现计划有问题,随时可以按Esc暂停,然后调整。

验证工作流是否跑通,看三个信号:第一,Claude 是否按计划顺序执行,没有跳步;第二,每个文件改动是否在计划范围内,没有乱动其他文件;第三,执行完成后是否给出总结,说明完成了哪些、还有哪些没做。

这里有个实用技巧:在 Plan 提示词里加上“每完成一个文件后暂停,等我确认再继续”。这样你可以逐步验证,避免一次性改太多导致回滚困难。虽然会慢一点,但对新手来说更可控。

Plan 模式跑通之后,你已经有了“先规划再执行”的习惯。接下来我们要解决的是“怎么把常用操作沉淀下来”。

5. 本篇常见错排查:401、local proxy failed、reading choices 怎么解

配置和工作流跑起来之后,难免会遇到报错。这一节我把最常见的几类错误和排查方法列出来,你遇到问题时可以对照着查。

第一类:401 错误。报错信息通常是401 Unauthorized或invalid api key。原因有三个:密钥没填、密钥填错、密钥过期。排查步骤:先检查.claude/settings.json里的ANTHROPIC_API_KEY是否填写;再检查密钥是否复制完整,有没有多余空格;最后去 TaoToken 控制台确认密钥是否还在有效期内。如果都没问题,试试重新生成一个密钥。

第二类:local proxy failed。这个报错通常出现在你配置了本地代理但代理没启动,或者ANTHROPIC_BASE_URL填了一个不可达的地址。排查步骤:检查ANTHROPIC_BASE_URL是否写成https://taotoken.net/api,不要加末尾斜杠,不要加 UTM 参数;检查网络是否能访问taotoken.net;如果你之前配过其他代理,先把相关环境变量清掉再试。

第三类:reading choices报错。这个通常出现在流式响应解析失败时,原因可能是模型返回格式不兼容,或者网络中断导致响应不完整。排查步骤:先重试一次,看是否偶发;如果持续报错,检查settings.json里是否有多余的model字段,把它删掉让 Claude Code 用默认模型;如果还不行,去 TaoToken 的模型对话页面https://taotoken.net/chat测试同一个模型是否能正常返回。

第四类:OAuth 相关报错。如果你之前用 OAuth 登录过,后来改成 API Key,可能会遇到OAuth token expired或token refresh failed。解决办法是彻底退出登录:删除~/.claude/下的credentials.json(如果有),然后在settings.json里显式写入ANTHROPIC_API_KEY,重启 Claude Code。

第五类:上下文溢出。报错信息可能是context length exceeded或 Claude 开始胡言乱语。这时候用/context查看占用,超过 70% 就/compact压缩,任务不相关就/clear清空。如果压缩后还是不够,考虑把大文件用@引用而不是全量读取。

第六类:Rewind 回滚失败。Rewind 只能回滚 Claude Code 直接创建或编辑的文件。如果 Claude 执行了npm install生成了node_modules,Rewind 撤不掉。这时候用 Git 回滚:git checkout .或git reset --hard HEAD~1。建议在让 Claude 做大改动之前先git commit一次。

排查错误的通用思路是:先看报错信息里的关键词,再对照上面的分类找原因,然后按步骤验证。如果实在搞不定,去 TaoToken 的接入文档页面https://taotoken.net/doc查配置示例,或者去 API Keys 页面https://taotoken.net/api-keys确认密钥状态。

这里提醒一句:不要同时配多个模型入口。有些人既配了环境变量又配了settings.json,还留着 OAuth 登录态,结果 Claude Code 不知道用哪个,报错五花八门。统一用一个入口,最稳。

6. 语义一致 CTA:把工作流沉淀成可复用的 Skill

前面几节我们跑通了“配模型入口 → 写 CLAUDE.md → 用 Plan 模式规划 → 执行 → 排错”这条链路。但每次做类似任务时,你还是要重复写提示词、重复解释规范。这时候就该用 Skill 把常用操作沉淀下来。

Skill 是 Claude Code 的“专业技能包”,本质是一个 md 文件加一些参考文档。你可以自己写,也可以从插件市场装。自己写的 Skill 放在.claude/skills/目录下,每个 Skill 一个子目录,里面至少有一个SKILL.md。

一个最小 Skill 的目录结构:

.claude/skills/ code-review/ SKILL.md checklist.md

SKILL.md里写触发条件和执行步骤,checklist.md里写具体检查项。比如一个代码审查 Skill 的SKILL.md:

# Code Review Skill ## 触发条件 当用户说“审查代码”“review 一下”“检查这个文件”时触发。 ## 执行步骤 1. 读取用户指定的文件,如果没有指定,读取最近修改的 3 个文件 2. 按 checklist.md 逐项检查 3. 输出问题列表,按严重程度排序 4. 对每个问题给出修复建议,不直接改代码 ## 输出格式 - 严重问题:会导致 bug 或安全问题 - 中等问题:影响可维护性 - 轻微问题:风格建议

写完之后,在 Claude Code 里输入/plugin可以看到已安装的 Skill 列表。自己写的 Skill 需要手动加载,或者放在项目目录下自动识别。验证方法是输入“用 code-review skill 审查 src/components/Timer.tsx”,看 Claude 是否按SKILL.md里的步骤执行。

Skill 和子代理的区别在于:Skill 是在主对话里工作的,会占用主会话上下文;子代理有独立上下文,不占用主会话。如果你要做复杂的、独立的审查任务,用子代理更合适;如果只是加载一份规范指南,用 Skill 就够了。

把常用操作沉淀成 Skill 之后,你的工作流就完整了:CLAUDE.md管项目约定,Plan 模式管规划,Skill 管常用操作,Rewind 和 Git 管回滚。这套组合跑顺之后,每次打开 Claude Code 都是同一个起点,产出可预期,出错可回滚。

如果你想把这条工作流用在长期编码项目上,可以考虑 TaoToken 的 Coding Plan,地址是https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。它适合需要持续调用模型、跑 Agent 任务的场景。如果只是偶尔验证模型效果,用模型对话页面就够了:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。接入文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,API Keys 管理在https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。

最后说一个我踩过的坑:不要把所有东西都塞进CLAUDE.md。我一开始把 API 文档、数据库 schema、部署流程全写进去,结果文件 300 多行,Claude 每次读它都吃力,反而忽略了真正重要的代码规范。后来拆成CLAUDE.md管约定、docs/管详细文档、Skill 管操作流程,三层各司其职,效率明显提升。记住一个原则:CLAUDE.md只写“删掉会让 Claude 犯错”的信息,其他都放别处。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 20:27:50

Dbsyncer实战:MySQL全量同步与增量同步配置指南

Dbsyncer这个开源数据同步中间件,最近在圈子里聊得不少。简单说,它是一个带Web管理界面的数据同步工具,不写代码、不装客户端,浏览器里点点点就能把MySQL的数据同步到另一个MySQL或者其他数据库。我这次带大家玩一下最常见的场景&…

作者头像 李华
网站建设 2026/10/2 20:27:27

Hermes Agent 与 Harness 区别:自主 AI Agent 与 DevOps 平台如何各司其职

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 20:25:46

2026年OpenClaw部署避坑指南:腾讯云+百炼Coding Plan 7分钟跑通TaoToken

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 20:25:41

单片机控制板故障排查六步法:从电源到老化测试的完整指南

搞单片机的朋友应该都有过这种经历:板子昨天还好好的,今天上电一点反应都没有;或者现场运行到一半突然死机,重启又好了;最头疼的是那种“间歇性抽风”——客户拍个视频过来,描述得天花乱坠,你拿…

作者头像 李华
网站建设 2026/10/2 20:24:52

MCP实战:3天开发AI旅游规划产品并上线的完整复盘

上个月我干了一件以前得花两周才能搞定的事:一个人,3天,做了一个AI旅游规划产品并上线。不是那种套壳聊天机器人,是真的能根据你输入的目的地、天数、预算和偏好,帮你排出带天气、带交通、带餐厅推荐的每日行程。整个过…

作者头像 李华