docs: 更新 Claude Code 插件指南 + 新增开发参考文档

Claude Code插件高效运用指南.md:
1、补充遗漏的内置 Skills(schedule/update-config/keybindings-help)
2、新增第三方 Skills 记录(find-skills/tmux/summarize/tavily-research/embedded-systems)
3、新增第八章:新电脑环境恢复指南(含 ESP-IDF v5.4.2 安装步骤)
4、新增步骤 3.1:第三方 Skills 安装命令

新增文档:
5、Claude Code 十个最值得装的 Skills copy.md — 微信文章内容存档
6、资深嵌入式工程师开发思维.md — 嵌入式开发核心思维与注意事项

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Rdzleo 2026-04-02 10:09:08 +08:00
parent 0bdf7be875
commit b35d86f84c
4 changed files with 607 additions and 4 deletions

View File

@ -0,0 +1,281 @@
我已将整理好的内容保存为 Markdown 文档。您可以直接复制以下内容,或通过 sandbox:/mnt/data/Claude_Code_十个最值得装的_Skills.md 下载该文件。
# Claude Code 十个最值得装的 Skills不是越多越能打是这 10 个最能打!
很多人以为Claude Code 好不好用,主要取决于模型够不够强。但用久了你会发现,真正把人和人拉开差距的,往往不是模型本身,而是另一层东西:**你有没有把一批高频、稳定、可复用的 skills 装进自己的工作流。**
同样一个 Claude Code有的人拿它写几个函数、改几段文案有的人已经让它跑浏览器、查资料、整理文档、控制终端、维护测试、辅助重构。差别不只是会不会写提示词而是有没有把外部能力接进来让它从“会回答”变成“会做事”。
所以这篇文章不想讨论哪个模型分数更高,也不想给你堆一串目录。我只想回答一个更实际的问题:**如果你在用 Claude Code最值得优先装的 10 个 skills 到底是什么?**
**我的筛选标准很简单,就三个:**
1. 是不是真的能装进 Claude Code 生态
2. 会不会高频用到
3. 能不能明显提升结果,而不只是看起来很酷
按这个标准,下面这 10 个最值得优先配。
## Part.01 agent-browser把 Claude Code 从代码编辑器里放出来
如果只选一个最值得优先装的 skill我会把票投给它。
原因很简单。很多真实工作,根本不发生在终端里,也不发生在代码文件里,而是发生在网页上。你要登录后台、点按钮、填表单、截图、抓页面信息、测试 Web App、跑自动化流程这些事都离不开浏览器。
大多数人对 Claude Code 的理解还停留在“会写代码”。但一旦你接上浏览器能力它就不只是会写还能执行。它可以先打开页面再识别交互元素然后点击、输入、等待页面更新最后把结果拉回来。这种能力一接上Claude Code 才真正从一个 coding assistant 开始往 agent 走。
它的价值不在“会打开网页”,而在于它把网页操作变成了 Claude Code 可以连续执行的一条工作流。做测试的人会用到,做调研的人会用到,做运营、抓取、后台操作的人也会用到。只要你的工作里有网站,这个 skill 就很难闲着。
**推荐入口:**
页面https://skills.sh/vercel-labs/agent-browser/agent-browser
安装命令:
```bash
npx skills add vercel-labs/agent-browser@agent-browser -g -y
```
## Part.02 find-skills先别急着造轮子先学会找轮子
很多人 skill 装得少,不是因为不需要,而是因为不知道有什么能装。
这就是这种 skill 的意义。它像 Claude Code 生态里的技能搜索入口。你想做某件事,但不确定有没有现成方案,它能帮你从 skills 生态里先把答案翻出来。这个能力看起来不直接,但长期特别值钱。
因为使用 AI 工具最浪费时间的一件事,不是执行,而是“重复摸索”:
* 这个事到底有没有现成 skill
* 我要不要自己写?
* 有没有别人已经沉淀好的流程?
* 这个方向是不是已经有成熟模板?
`find-skills` 解决的就是这个问题。它本身不直接产出网页、代码或文档,但它会极大降低你探索生态的成本。你可以把它理解成“技能层的搜索引擎”。对于想把 Claude Code 用深的人来说,这个 skill 不是锦上添花,而是效率入口。
页面https://skills.sh/vercel-labs/skills/find-skills
安装:
```bash
npx skills add vercel-labs/skills@find-skills -g -y
```
## Part.03 summarize信息时代最稀缺的不是内容是压缩能力
它是那种非常实用、但又经常被低估的 skill。
**很多人高估了生成,低估了压缩。** 但现实工作里,你真正缺的往往不是“多写一段”,而是“把一堆杂乱信息压成能用的结论”。
网页太长,读不完。播客太长,听不完。文档太多,筛不完。会议记录太碎,理不顺。这时候 `summarize` 的价值就出来了。
它最适合处理:
* 长网页
* 长文档
* 播客或视频转录
* 研究材料
* 多篇资料汇总
* 会议纪要整理
对开发者来说,它能帮你快速读文档、读 RFC、读 issue 讨论;对产品和内容工作者来说,它能帮你快速提炼观点、抽出框架、形成判断。一个好用的 Claude Code不应该只会写而应该会读、会压、会提炼。`summarize` 让这件事变得更稳定。
页面https://skills.sh/steipete/clawdis/summarize
安装:
```bash
npx skills add steipete/clawdis@summarize -g -y
```
## Part.04 skill-creator真正高阶的用法是把自己的工作流做成 skill
所有会长期用 Claude Code 的人,最后都会走到这一步:不再满足于只装别人做好的东西,而开始把自己的工作方式沉淀成 skill。这就是它的价值。
今天你可能反复在做这些动作:
* 写提纲
* 改标题
* 统一格式
* 补测试
* 生成 release notes
* 拆分任务步骤
如果某个动作一周会重复很多次,那它就值得被固化。`skill-creator` 做的,就是把这些重复动作从“零散经验”变成“可复用流程”。
这件事的意义很大。因为当 Claude Code 开始复用你的工作流,它就不再只是一个会听命令的助手,而更像一个逐渐熟悉你做事方式的同事。你沉淀得越多,它的产出越稳定。对重度用户来说,`skill-creator` 不只是一个工具,而是把经验转化成资产的开始。
页面https://skills.sh/anthropics/skills/skill-creator
安装:
```bash
npx skills add anthropics/skills@skill-creator -g -y
```
## Part.05 tmux真正的深度使用者迟早要接管终端会话
如果你平时只做轻量任务,那它可能没那么显眼。但如果你开始跑长任务、远程机、交互式 CLI、持续观察日志`tmux` 的价值会一下子变得很大。
Claude Code 最大的问题之一,不是它不会执行,而是很多复杂工作并不是“一条命令跑完就结束”。现实里你经常会遇到:
* 命令要跑很久
* 过程要持续观察
* 中途要交互输入
* 多个任务要并行
* 远端环境不能轻易断开
这时候,`tmux` 这种 skill 就不是可有可无,而是稳定性保障。它让 Claude Code 不只是“执行一次”,而是可以持续控制一个已经存在的终端环境。这种能力特别适合开发、运维、远程任务、批处理场景。对高级用户来说,收益非常高。
页面https://skills.sh/steipete/clawdis/tmux
安装:
```bash
npx skills add steipete/clawdis@tmux -g -y
```
## Part.06 testing / e2e / playwright 类 skills让 Claude Code 不只是写代码,还能写可靠代码
如果你做前端、Web 应用、自动化测试,那么 `testing` / `e2e` / `playwright` 这一类 skill 很值得优先配。
Claude Code 本来就擅长写和修改测试,但裸用模型有个常见问题:能写出来,不代表写得稳定、清晰、可维护。加上这类 skill 之后,它在下面这些事情上通常会稳很多:
* 测试结构怎么组织
* 断言怎么写更有意义
* 边界条件怎么覆盖
* Playwright 用例怎么更像真实场景
* 哪些测试值得保留,哪些测试只是噪音
你可以把这类 skill 理解成“给 Claude Code 加了一层测试工程经验”。如果你的项目本身依赖自动化测试,这类 skill 的收益会非常直接,而且是长期收益。
页面https://skills.sh/anthropics/skills/webapp-testing
安装:
```bash
npx skills add anthropics/skills@webapp-testing -g -y
```
备选https://skills.sh/supercent-io/skills-template/testing-strategies
## Part.07 docs / readme / api-docs 类 skills技术文档不是附属品是项目可维护性的一部分
这类 skill 特别适合 Claude Code。因为 Claude Code 很擅长理解已有代码和结构,再把它整理成文档。问题在于,如果没有一套约束,它写出来的文档很容易“看着完整,实际上没重点”。`docs` / `readme` / `api-docs` 这类 skill 的价值,就是给它一套文档组织框架,让它更像一个靠谱的技术写作者,而不是只会堆字。
这类 skill 很适合以下场景:
* 补 README
* 整理 API 文档
* 给项目写上手说明
* 给团队补内部文档
* 把零散说明统一格式
文档类工作很少有人喜欢做但项目往往因为文档差而掉效率。Claude Code 在这个方向上本来就有天赋,只是需要一套更像样的模板去约束。装上这一类 skill收益非常稳定。
> **注意**:这一类不是一个统一 skill 名,得按你写什么文档来选。
**推荐入口:**
页面https://skills.sh/googleworkspace/cli/gws-docs
安装:
```bash
npx skills add googleworkspace/cli@gws-docs -g -y
```
**更佳建议**`docs` 这一类我建议你按语言/场景再细分搜,比如:
* `api docs`
* `readme`
* `java docs`
* `python docs`
## Part.08 refactor / review / best-practices 类 skills让它更像资深工程师而不只是补代码的人
这类 skill 的意义在于,它给 Claude Code 增加了一层“工程判断模板”。平时你让模型改代码,它可能能改对,但不一定改得像团队里的资深工程师。它可能修了 bug却没顺手整理结构可能完成了功能却留下了可读性和维护性问题。`refactor` / `review` / `best-practices` 这类 skill就是在把“能用”往“更专业”推一步。
它们通常会强化这些能力:
* 识别代码坏味道
* 拆大函数
* 收敛重复逻辑
* 改善命名
* 降低复杂度
* 按最佳实践做结构调整
如果你的工作不是一次性写 demo而是长期维护代码库这类 skill 很值得长期挂着。因为它们解决的不是“做不做得出来”,而是“做出来以后能不能长期维护”。
页面https://skills.sh/supercent-io/skills-template/code-refactoring
安装:
```bash
npx skills add supercent-io/skills-template@code-refactoring -g -y
```
备选https://skills.sh/github/awesome-copilot/refactor
## Part.09 git-workflow / changelog / release 类 skills把那些烦但必须做的事交给它
如果你经常提 PR、写提交、发版本、整理 changelog那么这类 skill 会特别省时间。
Claude Code 做这类工作有天然优势:它能读 diff、能理解改动范围、能总结重点、能按结构输出。很多时候真正烦人的不是开发本身而是开发之后那一串“必须做、但没人爱做”的环节
* commit message 怎么写更规范
* changelog 怎么整理
* release note 怎么写给人看
* PR 描述怎么说清楚影响范围
* 分支和提交流程怎么更统一
这类 skill 的价值就在于,它让 Claude Code 不只是参与“写代码”,还参与“交付代码”。对于团队协作来说,这是很实用的一层。
页面https://skills.sh/supercent-io/skills-template/changelog-maintenance
安装:
```bash
npx skills add supercent-io/skills-template@changelog-maintenance -g -y
```
备选https://skills.sh/wshobson/agents/changelog-automation
## Part.10 research / web-search / extract 类 skills别把 Claude Code 只当 coder它其实也是研究助理
Claude Code 常被看作 coding agent但实际上它在调研型任务上也很强。特别是当你给它配上 `research` / `web-search` / `extract` 这类 skill它就不只是“写代码”而是开始承担
* 查资料
* 读网页
* 提取信息
* 比较方案
* 形成结构化判断
这对开发者特别有价值。你做技术选型的时候,要比较框架;你接新库的时候,要读文档;你判断方案时,要看 issue、看经验贴、看不同实践。Claude Code 如果只会写,它的价值只发挥了一半;一旦它会搜、会读、会摘、会比,它才真正变成一个研究助理。
**推荐(优先用 Tavily**
页面https://skills.sh/tavily-ai/skills/research
安装:
```bash
npx skills add tavily-ai/skills@research -g -y
```
备选https://skills.sh/199-biotechnologies/claude-deep-research-skill/deep-research
## 最后:别先追求“装很多”,先追求“装进去之后会反复用”
如果只给一个建议,我会说:**别把 skill 当收藏夹,先把高频用得上的装起来。**
很多人最容易走两个极端:
* 一个是完全不装
* 一个是装一堆,结果十天半个月都不调一次
真正有价值的 skill一般都有一个共同点**你装进去之后,会在很多不同任务里反复调用。**
从这个角度看:
* `agent-browser` 解决网页执行
* `summarize` 解决信息压缩
* `find-skills` 解决技能发现
* `skill-creator` 解决工作流沉淀
* `tmux` 解决长会话控制
* `testing` / `docs` / `refactor` / `git` / `research` 这些,则是在把 Claude Code 从“会写代码”推向“能承担完整工作流”。
所以Claude Code 的 skill 体系,不该被理解成一个插件市场。**更准确地说,它是一套外置能力系统。你装进去的,不只是功能,而是你希望 Claude Code 以后替你承担的那部分工作方式。**
如果你现在刚开始配,我建议优先顺序就按这三个梯队来:
**第一梯队**
* `agent-browser`
* `summarize`
* `find-skills`
一个负责执行网页任务一个负责压缩信息一个负责扩展生态。先把这三件事跑顺Claude Code 的可用性会立刻上一个台阶。)
**第二梯队**
* `skill-creator`
* `tmux`
**第三梯队**
* `testing` / `docs` / `refactor` 类 skills
* `git-workflow` 类 skills
* `research` 类 skills
(前者解决“能不能用”,后者解决“能不能用深”。)
总之Claude Code 的上限,不只是模型决定的,更是你给它配了哪一组 skills 决定的。

View File

@ -1,6 +1,6 @@
# Claude Code 插件高效运用指南
> 更新日期: 2026-03-19skill-creator 补充
> 更新日期: 2026-04-01补充遗漏的内置 Skills 和命令
> 适用环境: macOS / Claude Code 2.1.37+ / ESP32 嵌入式开发
---
@ -11,8 +11,9 @@
|------|------|------|
| 官方插件 (claude-plugins-official) | 7 个 | Git 工作流、代码审查、功能开发、迭代循环、规则维护、Skill 创建 |
| 社区插件 (claude-code-settings) | 2 个 | 长时任务自主执行、规格驱动开发 |
| 自定义 Skills (~/.claude/skills/) | 10 个 | ESP32 专用 6 个 + RK3588/Linux 驱动 4 个 |
| 内置 Skills | 3 个 | simplify、loop、claude-api |
| 自定义 Skills (~/.claude/skills/) | 11 个 | ESP32 专用 6 个 + RK3588/Linux 驱动 4 个 + 硬件驱动工作流 1 个 |
| 第三方 Skills (~/.claude/skills/) | 5 个 | find-skills、tmux、summarize、tavily-research、embedded-systems |
| 内置 Skills | 6 个 | simplify、loop、claude-api、schedule、update-config、keybindings-help |
---
@ -35,6 +36,10 @@
| `/skill-creator` | skill-creator | **元技能**:交互式创建、测试、优化自定义 Skills |
| `/simplify` | 内置 | 审查代码复用性、质量和效率 |
| `/loop` | 内置 | 定时循环执行命令(如每 5 分钟检查一次) |
| `/schedule` | 内置 | 创建/管理定时远程 Agentcron 定时任务) |
| `/update-config` | 内置 | 配置 settings.json 的 hooks 自动化行为 |
| `/keybindings-help` | 内置 | 自定义 Claude Code 键盘快捷键 |
| `/ralph-loop help` | ralph-loop | 查看 Ralph Loop 插件说明和可用命令 |
---
@ -393,6 +398,87 @@ allowed-tools: Bash, Read, Grep, Glob # 可选,限制可用工具
---
### 场景 8定时任务与远程 Agent
#### `/schedule` — 定时远程 Agent
**何时用**:需要周期性自动执行任务(如定时检查构建状态、定期代码审查、自动同步等)
**使用方式**
```
你:/schedule # 查看和管理定时任务
你:/schedule create # 创建新的定时 Agent
你:/schedule list # 列出所有已创建的定时任务
你:/schedule run <trigger-name> # 手动触发执行一次
```
**工作原理**
- 基于 cron 表达式定义执行周期
- 每次触发时启动一个远程 Agentheadless 模式)
- Agent 执行完毕后自动停止,下次 cron 时间到达再启动
**ESP32 项目实际用例**
```
# 每天早上 9 点自动检查代码规范
你:/schedule create "每天 9:00 运行 /code-review 检查未提交的代码"
# 每周一自动审计 CLAUDE.md
你:/schedule create "每周一 /claude-md-improver"
```
---
### 场景 9配置自动化与快捷键
#### `/update-config` — 配置 hooks 自动化行为
**何时用**:需要设置自动化行为,如"每次提交前自动运行 lint"、"每次保存文件后自动格式化"
**使用方式**
```
你:/update-config
你:帮我配置一个 hook每次执行 Edit 工具后自动检查代码风格
```
**工作原理**
- 修改 `~/.claude/settings.json` 中的 hooks 配置
- Hooks 是 Claude Code 的事件钩子系统,在特定事件(工具调用前/后、会话开始/结束等)自动执行 shell 命令
- 与 Skills 的区别Skills 影响 Claude 的行为Hooks 是在 Claude 行为之外自动执行的外部命令
**配置示例**
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"command": "echo '文件已修改'"
}
]
}
}
```
---
#### `/keybindings-help` — 自定义键盘快捷键
**何时用**:想修改 Claude Code 的默认快捷键,或添加自定义快捷键组合
**使用方式**
```
你:/keybindings-help
你:帮我把提交快捷键改为 Ctrl+S
你:添加一个 chord 快捷键
```
**工作原理**
- 修改 `~/.claude/keybindings.json` 文件
- 支持单键绑定和 chord 组合键(如 `Ctrl+K, Ctrl+C`
- 可覆盖默认快捷键或新增自定义绑定
---
## 四、ESP32 项目推荐工作流
### 日常开发流程
@ -468,7 +554,16 @@ allowed-tools: Bash, Read, Grep, Glob # 可选,限制可用工具
| rk3588-troubleshoot | 你描述驱动不工作、设备不识别、内核崩溃 |
| simplify | 通过 /simplify 调用 |
| loop | 通过 /loop 调用 |
| claude-api | 涉及 Anthropic SDK 开发 |
| claude-api | 涉及 Anthropic SDK 开发import anthropic / @anthropic-ai/sdk |
| schedule | 通过 /schedule 调用,或提到"定时任务"、"cron"、"定期执行" |
| update-config | 通过 /update-config 调用,或提到"配置 hooks"、"自动化行为"、"settings.json" |
| keybindings-help | 通过 /keybindings-help 调用,或提到"快捷键"、"键盘绑定"、"rebind" |
| **hw-driver-workflow** | 提供原理图/数据手册/参考代码,或说"帮我写驱动"、"适配芯片"、"分析原理图" |
| **find-skills** | 说"有没有xxx的Skill"、"找一个Skill" |
| **summarize** | 说"总结"、"压缩"、提供长文档/URL 要求提取关键信息 |
| **tavily-research** | 说"调研"、"搜索"、"查一下xxx的资料"、需要在线查找技术方案 |
| **tmux** | 需要监控终端日志、长时间编译、远程会话管理 |
| **embedded-systems** | 涉及固件开发、RTOS、中断处理、DMA、功耗优化、裸机编程、volatile 声明等通用嵌入式工程原则 |
### ESP32 Skills 与插件配合
@ -501,3 +596,138 @@ allowed-tools: Bash, Read, Grep, Glob # 可选,限制可用工具
5. **插件更新**:运行 `claude plugins update` 可更新所有插件到最新版本
6. **`/skill-creator` 资料质量决定 Skill 质量**:喂入的文档越专业、越详细,生成的 Skill 审查清单和排障表越准确。建议提供官方文档 + 实战踩坑经验的组合
7. **Skill 持续迭代**:首次创建的 Skill 不一定完美,随着实际开发中遇到新问题,持续补充更新 SKILL.md类似你现有 ESP32 Skills 的演进过程)
8. **`/schedule` 定时任务**:需要网络连接才能触发远程 Agent离线环境下无法使用
9. **`/update-config` 修改 hooks**hooks 配置错误可能阻塞工具调用,修改前建议备份 `settings.json`
10. **快捷键配置文件**:位于 `~/.claude/keybindings.json`,格式错误会导致快捷键失效
---
## 七、文件路径速查
| 文件 | 路径 | 说明 |
|------|------|------|
| 全局规则 | `~/.claude/CLAUDE.md` | 所有项目通用的指令规则 |
| 插件配置 | `~/.claude/settings.json` | enabledPlugins、hooks、permissions |
| 快捷键 | `~/.claude/keybindings.json` | 自定义键盘快捷键 |
| 自定义 Skills | `~/.claude/skills/<name>/SKILL.md` | 个人全局 Skills |
| 项目级 Skills | `.claude/skills/<name>/SKILL.md` | 仅当前项目生效 |
| 项目级规则 | `.claude/CLAUDE.md` 或项目根 `CLAUDE.md` | 项目专属指令 |
| 自动记忆 | `~/.claude/projects/<path>/memory/` | 跨会话持久化记忆 |
| 官方插件缓存 | `~/.claude/plugins/cache/claude-plugins-official/` | 下载的插件文件 |
| 社区插件缓存 | `~/.claude/plugins/cache/claude-code-settings/` | 第三方插件文件 |
---
## 八、新电脑环境恢复指南
### 8.1 开发环境信息
| 环境 | 版本 | 说明 |
|------|------|------|
| **ESP-IDF** | **v5.4.2** | 路径:`~/esp/esp-idf/v5.4.2/esp-idf/` |
| Claude Code | 最新版npm 安装) | 当前 v2.1.79 |
| Node.js | 16+ | Claude Code 运行依赖 |
| Python | 3.8+ | ESP-IDF 构建依赖 |
| 操作系统 | macOS | ESP-IDF 通过 `export.sh` 激活环境 |
### 8.2 恢复步骤
#### 步骤 1安装 Claude Code
```bash
npm install -g @anthropic-ai/claude-code
```
#### 步骤 2恢复用户数据
如果 `~/.claude/` 目录已通过 Git 备份:
```bash
# 方式 A直接 clone 到 ~/.claude/
git clone <你的仓库地址> ~/.claude
# 方式 B已有 ~/.claude/ 目录Claude Code 安装后自动创建)
cd ~/.claude
git init
git remote add origin <你的仓库地址>
git fetch origin
git checkout -f main
```
恢复后自动生效的内容(无需额外操作):
- `CLAUDE.md` — 全局规则ESP32/LVGL/BLE/RTC 开发经验)
- `skills/` — 11 个自定义 SkillsESP32×6 + RK3588×3 + Android HAL + 硬件驱动工作流)
- `settings.json` — 插件开关配置
- `projects/*/memory/` — 各项目跨会话记忆
#### 步骤 3重新安装插件
`settings.json` 中记录了插件开关,但插件代码(`plugins/cache/`)未纳入 Git 备份,需要重新下载:
```bash
# 官方插件7 个)
claude plugins install commit-commands@claude-plugins-official
claude plugins install code-review@claude-plugins-official
claude plugins install pr-review-toolkit@claude-plugins-official
claude plugins install feature-dev@claude-plugins-official
claude plugins install ralph-loop@claude-plugins-official
claude plugins install claude-md-management@claude-plugins-official
claude plugins install skill-creator@claude-plugins-official
# 社区插件2 个)
claude plugins install autonomous-skill@claude-code-settings
claude plugins install spec-kit-skill@claude-code-settings
```
#### 步骤 3.1:重新安装第三方 Skills
第三方 Skills 通过 `npx skills add` 安装,不在 Git 备份中,需要重新下载:
```bash
# 第三方 Skills5 个)
npx skills add vercel-labs/skills@find-skills -g -y
npx skills add steipete/clawdis@tmux -g -y
npx skills add steipete/clawdis@summarize -g -y
npx skills add tavily-ai/skills@tavily-research -g -y
npx skills add https://github.com/jeffallan/claude-skills --skill embedded-systems -g -y
```
#### 步骤 4配置 API Key
```bash
# 设置 Anthropic API Key环境变量不在配置文件中
export ANTHROPIC_API_KEY=你的密钥
# 建议写入 shell 配置文件持久化
echo 'export ANTHROPIC_API_KEY=你的密钥' >> ~/.zshrc
```
#### 步骤 5安装 ESP-IDF v5.4.2
```bash
mkdir -p ~/esp && cd ~/esp
git clone -b v5.4.2 --recursive https://github.com/espressif/esp-idf.git v5.4.2/esp-idf
cd v5.4.2/esp-idf
./install.sh esp32s3 # 按需安装目标芯片esp32s3/esp32c3 等)
# 激活环境
source ~/esp/esp-idf/v5.4.2/esp-idf/export.sh
# 验证
idf.py --version # 应输出 ESP-IDF v5.4.2
```
### 8.3 恢复内容清单
| 内容 | 来源 | 需要下载 | 说明 |
|------|------|:---:|------|
| 全局规则 `CLAUDE.md` | Git 备份 | ❌ | clone 后自动生效 |
| 自定义 Skills11 个) | Git 备份 | ❌ | clone 后自动生效 |
| 插件配置 `settings.json` | Git 备份 | ❌ | clone 后自动生效 |
| 项目记忆 `memory/` | Git 备份 | ❌ | clone 后自动生效 |
| 本指南文档 | Git 备份 | ❌ | clone 后自动生效 |
| 插件代码9 个插件) | 远程下载 | ✅ | 执行 `claude plugins install`(步骤 3 |
| 第三方 Skills5 个) | 远程下载 | ✅ | 执行 `npx skills add`(步骤 3.1 |
| Claude Code 程序 | npm 远程 | ✅ | 执行 `npm install -g` |
| ESP-IDF v5.4.2 | GitHub | ✅ | 执行 `git clone` + `install.sh` |
| API Key | 手动配置 | ✅ | 写入环境变量 |

View File

@ -0,0 +1,92 @@
作为拥有10年以上经验的嵌入式软件开发工程师在启动一个新项目时其思维模式和工作流程已高度系统化、工程化并深刻融入了对**可靠性、可维护性、可测试性**以及**资源极限利用**的追求。
以下是我为您梳理的,从拿到硬件到交付固件的完整开发思维与注意事项清单:
### **第一部分项目启动与基础构建占时20%决定80%的后期效率)**
1. **深度硬件交底与验证**
* **原理图精读**:不只看功能部分,重点关注电源树、复位电路、时钟源、外部存储器接口、未使用引脚的处理(上拉/下拉)。找出所有可能影响软件的硬件设计细节。
* **硬件验证**在写任何业务代码前先编写最基础的“硬件体检程序”。测试所有GPIO输入/输出、通信接口UART, I2C, SPI的Loopback测试、ADC/DAC精度、外部存储器读写完整性。**确保硬件平台本身是稳定可靠的**。
* **数据手册标记**:将芯片数据手册中关于外设寄存器、电气特性、时序要求的关键页打印或高亮标记,形成你的“硬件圣经”。
2. **环境与工具链的“一次搞定”**
* **固化工具链**选择并固定编译器如GCC、调试器如J-Link的版本。在团队内统一并编写详细的《环境搭建手册》避免“在我机器上是好的”问题。
* **构建系统自动化**:使用 `CMake``Makefile` 管理项目确保一键编译、链接、生成多种格式的固件如Hex, Bin, 带调试信息的Elf
* **版本控制即起点**在写第一行代码前就建立Git仓库。`.gitignore` 文件要精心配置忽略所有编译中间文件、IDE工程文件。
3. **项目骨架与架构设计**
* **清晰的分层目录结构**,例如:
```
firmware/
├── CMakeLists.txt
├── docs/ # 设计文档、硬件笔记
├── drivers/ # 芯片外设驱动(与硬件强耦合)
│ ├── inc/
│ └── src/
├── bsp/ # 板级支持包(开发板特定配置、传感器驱动)
│ ├── inc/
│ └── src/
├── middlewares/ # 中间件RTOS, FileSystem, Protocol Stack
├── application/ # 纯应用逻辑(与硬件无关的业务代码)
│ ├── modules/ # 功能模块
│ └── tasks/ # RTOS任务如果使用
├── utilities/ # 通用工具(队列、环形缓冲区、日志系统)
├── tests/ # 单元测试、集成测试代码
└── build/ # 编译输出目录(被.gitignore忽略
```
* **定义接口,而非实现**`drivers` 层为 `bsp` 层提供稳定的API`i2c_write(device_addr, reg, data)``bsp` 层为 `application` 层提供更抽象的API`sensor_read_temperature()`)。**下层不知道上层的存在**,实现依赖反转。
### **第二部分:编码与实现的核心思维(贯穿全程)**
4. **资源意识深入骨髓**
* **RAM是黄金Flash是白银**
* 全局变量使用前,思考“它真的需要全程存在吗?” 优先使用栈变量或动态分配如有OS
* 常量数据务必加 `const` 修饰让编译器将其放入Flash。
* 仔细规划内存池和缓冲区大小,避免“大概够用”的随意定义。使用 `sizeof` 计算结构体大小。
* **CPU周期要计较**
* 在中断服务程序ISR**只做最紧急的事**(置标志、读数据),将处理逻辑抛给后台任务。
* 避免在循环中调用阻塞函数或进行复杂计算。合理使用查表法替代实时计算。
* 对性能关键路径进行代码剖析Profiling
5. **防御性编程与鲁棒性**
* **断言Assert无处不在**:在函数入口检查参数有效性,在假设成立的地方使用断言。在发布版本中,可通过宏将其定义为空,但开发阶段它是致命的错误捕捉器。
* **全面处理错误**:所有函数都应设计返回值或状态码,指示成功或失败原因。**即使一个函数今天看起来永远不会失败,也要为明天的变化留出处理路径。**
* **考虑边界与极端情况**:数据溢出、下溢、通信超时、异常输入、电源抖动。思考“如果…会怎样?”
6. **可调试性设计**
* **统一的日志系统**设计分等级Error, Warn, Info, Debug的日志输出可通过宏在编译时全局关闭或开启特定级别。日志信息要包含模块名、行号关键数据要格式化输出。
* **丰富的状态信息**:提供命令或接口,能实时输出内部关键变量、任务堆栈使用率、内存池状态等。
* **预留测试点**在关键流程中埋下“软件探针”如翻转某个测试用GPIO方便用示波器测量代码执行时间。
7. **代码规范即纪律**
* **命名自解释**:变量、函数名清晰表达其用途(如 `getBatteryVoltage()` 而非 `getVolt()`。采用团队统一的命名风格如CamelCase, snake_case
* **函数短小精悍**一个函数只做一件事长度最好控制在一屏内约50行
* **注释说明“为什么”,而非“是什么”**:代码本身应清晰表达“做什么”。注释应解释复杂的算法逻辑、非常规做法的原因、参考的文档或芯片勘误表。
### **第三部分:项目推进与维护的工程习惯**
8. **文档与代码同步**
* **README.md是门户**:说明项目目标、硬件依赖、如何构建、如何烧录、如何测试。
* **API文档自动化**使用Doxygen等工具从代码注释中自动生成驱动和模块的API文档。
* **设计决策记录ADR**:当做出重要架构或技术选型决定时,写一个简短的文档记录背景、考虑过的方案、最终决定及理由。这对未来维护者和你自己至关重要。
9. **持续集成与测试**
* **单元测试**对关键算法、数据结构、硬件抽象层进行单元测试确保逻辑正确。可以使用Unity、CppUTest等框架。
* **硬件在环测试**:编写自动化测试脚本,通过串口、网络等方式向设备发送命令,验证功能并记录结果。
* **回归测试**:任何修改后,运行已有的测试集,确保没有破坏原有功能。
10. **版本管理与发布**
* **语义化版本**:采用 `主版本.次版本.修订号`如1.2.3)的版本规则,并严格执行。
* **详细的发布说明**:每个固件发布版本,都附带说明新增功能、修复的缺陷、已知问题。
* **分支策略**如Git Flow明确 `main`(主发布)、`develop`(开发)、`feature/*`(功能分支)、`hotfix/*`(热修复)的用途。
### **十年经验工程师的终极思维模式**
* **从“实现功能”到“构建系统”**:思考的重点从单个函数、模块,转移到模块间通信、系统状态机、启动顺序、错误恢复的整体系统行为。
* **“假设”是万恶之源**:不假设硬件永远正常,不假设数据永远有效,不假设调用者会遵守规则。用代码验证一切。
* **拥抱变化,保持抽象**:硬件可能会改,需求肯定会变。通过良好的分层和抽象,将变化隔离在最小范围内。
* **复利思维**:在工具、脚本、代码框架上的每一分投入,都会在整个项目周期乃至职业生涯中产生复利回报。花一天时间写个自动化烧录脚本,可能节省未来上百小时。
* **教是最好的学**:乐于进行代码审查,乐于向同事解释你的设计。在阐述的过程中,你会发现自己逻辑的漏洞,并巩固知识。
* **敬畏硬件,尊重物理**深刻理解软件指令最终是如何变成电子信号的时序、中断延迟、电磁兼容性EMC都是需要考虑的“软件问题”。
**总结**:资深嵌入式工程师的思维,是将**严谨的工程方法**、**深刻的资源约束认知**和**对不确定性的防御意识**,融合成一种近乎本能的开发习惯。其目标不仅是让代码工作,更是构建一个**易于理解、易于修改、经得起时间考验**的可靠系统。