Imported from DunCanYounG-1/auto-embedded (
SKILL.md). Install upstream withnpx skills add DunCanYounG-1/auto-embedded. Copyright stays with the author.
auto-embedded —— 装进工程、跨 7 个 AI 平台的 RIPER-5 + spec 注入 + 工具链框架
它是什么(与 embedded-dev 的区别)
embedded-dev 是全局单 skill 插件:refs 全局只读、靠模型自觉、frontmatter hook 对 user-skill 不生效、且只在 Claude 可用。
auto-embedded 对标 Trellis,把同一套能力做成装进每个固件工程、跨多个 AI 编码平台的基座:
- 项目级 hook 必然运行:
aemb init把注入接线写进工程的各平台配置(Claudesettings.json、Cursor/Codex/Copilothooks.json、Geminisettings.json、OpenCode JS 插件…),AI 工具必然执行(不依赖 skill frontmatter hook)。 - 项目级 spec 库:
.auto-embedded/spec/(分层、可版本化、可覆盖),而非全局只读 refs。 - 相关性自动注入:会话起始注入阶段+spec 索引;派 Scout/Builder/Verifier 时按 per-task
*.jsonl只 push 该角色相关的 spec。 - 学习回流:REVIEW 用
task.py promote把决策/约定/坑沉淀回 spec,跨会话/跨任务复利。 - 工具链一体化:24 个工具调用技能(编译/烧录/调试/串口/CAN/Modbus/VISA/静态分析/内存分析/RTOS/检索),脚本随框架装进
.auto-embedded/tools/,全平台都能调。 - 一次写、全平台交付:同一套 common 命令/技能/Agent 经占位符渲染成各平台正确语法,由各平台 configurator 写对应注入接线。
支持平台
已打通(7):claude cursor codex opencode copilot gemini windsurf
预留位(7,注册表就绪、configurator 待实现):kilo kiro antigravity qoder codebuddy droid pi
第一步:判断工程是否已安装
主交付物是固件且在某个工程目录时,先查该工程根有没有 .auto-embedded/:
- 没有 → 新接入,跑一次 init:
会脚手架aemb init <工程根> -u <开发者名> --platforms claude,cursor,codex # 或 --claude --cursor …,或 --all.auto-embedded/(运行时内核 + spec + 24 工具脚本)+ 写各平台注入接线/agents/skills/commands + 智能合并配置文件(settings.json/hooks.json/config.toml/package.json,只增删 aemb 片段)。 安装后在该工程新开一个会话,注入 hook 就会自动带出现场。 - 已有 → 接线已在注入现场。读注入的
<auto-embedded-session>块 +.auto-embedded/workflow.md,按 RIPER-5 推进。
日常驱动用 slash 命令 / 技能(init 已写进工程):
/aemb:start <标题> · /aemb:continue · /aemb:finish-work · /aemb:status(Cursor 等为 /aemb-…,Codex 为 $aemb-…)。
命令速查
脚手架(aemb = npm 全局安装出的命令;或 node dist/cli/index.js):
aemb init <工程> -u <名> [--platforms a,b | --<平台> … | --all] # 安装运行时 + 选定平台接线
aemb update <工程> # 升级 managed(脚本/hooks/agents/commands/工具),保留 spec/tasks/用户改动
aemb doctor <工程> # 体检 7 平台接线
aemb check <工程> [--arch|--hw|--spec|--json] # 机械门禁
aemb backup <工程> # 备份 .auto-embedded/
aemb uninstall <工程> # 按 manifest 剥除 aemb 片段 + 删 .auto-embedded(先备份)
底层脚本(slash 命令内部调它,也可直接用):
python .auto-embedded/scripts/task.py start "<标题>" | phase PLAN | select builder spec/architecture/index.md "原因" | promote conventions "<学习>" | list | journal "<摘要>" | archive
工作流(RIPER-5,权威在工程的 workflow.md)
每条回复开头声明 [MODE: 阶段]。默认 RESEARCH 起;含写代码的清单项进 EXECUTE 前必须过 PLAN 审查门并获用户确认。
| 阶段 | 干什么 | 角色 |
|---|---|---|
| RESEARCH | 查芯片/库、读 spec、引脚规划写 hw-lock.yaml、证据写 research.md | Scout(只读) |
| INNOVATE | 评候选方案 | — |
| PLAN | 出实施清单(路径+签名+寄存器+验证标准+review+层级);零占位符 | — |
| EXECUTE | 按轮次最小实现,每轮带 trace_id+验证标准+证据;本地 git 快照 | Builder(单写者) |
| REVIEW | 验证门→硬件合规(对照 hw-lock)→分层门禁→promote 回流 | Verifier(只审) |
多文件/长任务按 Scout→Builder→Verifier 分权,同一时刻只一个 Builder 写。
派 Agent:aemb-scout|aemb-builder|aemb-verifier,hook(push 平台)或 prelude(pull 平台 Codex/Copilot/Gemini 子 Agent)会按角色注入相关 spec。
工具调用技能(24,全量目录)
24 是全量目录。
aemb init按工程 profile(芯片/构建/OS 探测)精简装:例如纯 STM32+Keil 工程只装build-keil/flash-*/debug-*等相关技能,不装build-idf/build-scons。全量装用aemb init --full;事后增减用aemb add/remove <pack>;查当前装了什么用aemb profile。
脚本随框架装进 .auto-embedded/tools/<skill>/scripts/,按需用 python 调;SKILL 描述自动触发:
- 编译:
build-cmakebuild-iarbuild-idfbuild-keilbuild-makefilebuild-platformiobuild-scons(RT-Thread) - 烧录:
flash-idfflash-jlinkflash-keilflash-openocdflash-platformio - 调试:
debug-gdb-openocddebug-jlinkdebug-platformio - 观测/分析:
serial-monitorstatic-analysismemory-analysisrtos-debug - 总线/仪器:
can-debugmodbus-debugvisa-debug - 驱动:
peripheral-driver(开源驱动搜索→评估→适配/骨架;方法论见.auto-embedded/refs/stm32-hal/) - 检索:
zhihu-search(知乎站内问答检索)
知识库与专项流程(自上一代 embedded-dev 全量吸收,按需加载)
上一代 embedded-dev 的离线知识库与专项流程已 bundle 进运行时,随 aemb init 装入工程,按需读取(不自动全量注入,防撑爆上下文):
.auto-embedded/refs/(80+ 篇)—— STM32/GD32 API、引脚规划、IMU、故障分类、编码规范、驱动移植、竞赛清单/契约…总览见refs/index.md;refs/stm32-hal/为 STM32 HAL 方法论 + BSP 模板领域包。.auto-embedded/modes/(13 个专项流程)—— RIPER-5 主干外的专项工作流:competition(比赛 6-Agent + CP 门禁)、datasheet-lookup、netlist-lookup、gd32-board、mspm0-board、rtos-rtthread、seekfree-lib、matlab-*、industrial-data-acquisition、mcp-healthcheck、workflow-orchestration。总览见modes/index.md。
比赛模式:用户说"启用比赛模式"时进入 .auto-embedded/modes/competition.md,由 6 个专职 subagent 并行推进:
embedded-arch(唯一决策者/路由/集成)· embedded-drv(驱动)· embedded-alg(算法)· embedded-matlab(MATLAB 仿真)· embedded-qa(验证门)· embedded-report(报告),配合 CP-0~CP-5 决策门与 Defect Ticket 回派协议。 并行编排完整支持 Claude;其余平台装入 agent 定义但派发受限(Codex 禁 spawn、Copilot 无 Task 映射),降级为单代理按 modes/competition.md 顺序走 CP 门禁。日常 RIPER-5 仍用 aemb-scout/builder/verifier 三角色。
spec 库(项目级,可演进)
.auto-embedded/spec/ 五层(见各 index.md):architecture(六层模型+ARCH-1~8)、conventions(证据优先/复用优先/ISR/临界区/Git 快照)、hardware(事实基线 + 机器可读 hw-lock.yaml)、guides(思维清单)、governance(记忆边界)。
新增/改约定就改对应 index.md;REVIEW 用 promote 沉淀,下次自动注入。
架构(开发者向)
src/types/ai-tools.ts(平台注册表数据)→ src/configurators/*(每平台行为 + shared.ts 占位符渲染 + merge.ts 配置合并 + hooks.ts 共享 hook 分发)→ templates/(common/ 共享 body、shared-hooks/ 三个 Python hook、<平台>/ 私有模板、auto-embedded/ 运行时内核 + 工具脚本)。新增平台:加注册表条目 + 写 configurators/<平台>.ts + 在 configurators/index.ts 注册。
自测
bash tests/test-auto-embedded.sh
临时工程里 init --all 并断言整条闭环(7 平台脚手架/doctor/幂等/内核/工具脚本 shared 导入/SessionStart+面包屑+子 Agent 注入/卸载全清)。