最后的拼图:Skills
你的体系已经搭好了高速公路。
现在,你需要让车跑起来——不是任何车,而是高度适配你路基的、5 分钟就能上路的快车。
一、体系不是终点,效率才是
前六篇文章,我们一直在做一件缓慢而郑重的事:定义坐标系,搭建工程骨架,设计闭环收敛,打通物理世界,管理知识演化,解放历史遗产。它们是基础设徊,是法度,是高速公路。它们回答的问题是:"AI 生成的代码,如何成为能在物理世界中负责任地运行的资产?"
但高速公路建好之后,真正的问题才浮出水面:"今天下午,我需要在已有工程里增加一个 I2C 传感器驱动——能不能在 5 分钟内搞定,并且代码直接可用,不需要我重读昨天的规约?"
核心洞察:一个完整的方法论体系,如果只有"慢建构"的能力,它就只能在项目启动时被郑重其事地应用一次,然后逐渐被遗忘在日常琐碎里。它需要一个"快消费"的伴侣层——不是替代体系,而是运行在体系之上,让日常高频需求也能享受严谨法度的红利。
这一层,就是 Skills。它不是新概念,而是你整个体系自然生长的另一半。如果说前六篇是"Core 层"——定义法则、搭建骨架、管理演化,那么 Skills 就是"应用层"——在法则之内,快速解决高度具体的、一次性的、但频繁出现的问题。两者不是竞争关系,是共生关系。
图1:Core 层与 Skill 层的共生架构——Core 提供法则和上下文,Skill 在法则内高速运转。
二、为什么你的体系能让 skill 真正"即插即用"
市面上大多数的 AI 编程 skill,本质上是泛化的代码片段生成器。它们能生成一段 I2C 驱动,但不知道你用的是哪颗芯片、你的工程模板要求什么代码风格、你的硬件原理图上 SDA 和 SCL 分别连在哪个 GPIO。你拿到那段代码后,仍然需要阅读、修改、适配。
你的体系,恰好把"适配"所需的信息全部结构化了:
| Skill 运行时所需的上下文 | 你的体系如何提供 |
|---|---|
| 项目规约与代码风格 | agents.md(② + ⑤)定义了断言、负日志宏、命名规范等,skill 生成的代码自动遵守 |
| 硬件拓扑与外设映射 | PCB分析器(④)提供了完整的外设-GPIO 映射表,skill 可以直接查询"I2C1 的 SDA 在 PA9" |
| 工程模板与 HAL 约定 | 高复用模板(②)固化了模块文件结构、include 路径和初始化风格,skill 产物直接贴合 |
| 验证与闭环 | 闭环收敛(③)提供了自动测试框架,skill 生成的代码可以被立即验证,发现问题自动反馈给 skill 修正 |
| 历史约束 | 决策账本(⑤ + ⑥)记录了哪些做法是禁区,skill 绝不上演"已经被证明是坏主意"的代码 |
这意味着:在你的体系上运行 skill,生成的代码不是"泛用模板",而是带着这个项目完整上下文和全部历史教训的、几乎可以直接烧录的最终代码。你不需要再去想"这个项目用的是 LL 库还是 HAL",skill 已经知道。你不需要再查"这颗芯片的 Flash 写入后必须等几个 NOP",skill 从你的规约文件里读到了。
三、一个具体的 skill 是如何在你的体系中运行的
让我们模拟一个真实场景。下午 3 点,你需要为当前项目增加一个 I2C 温度传感器 TMP117 的驱动。
传统流程:打开数据手册 → 查找 I2C 地址 → 回忆项目里 I2C 用的是哪路 → 找到其他 I2C 设备驱动当模板 → 逐行修改寄存器操作 → 编译 → 调试 → 发现忘了配置中断优先级 → 再来一遍。耗时:45 分钟到 2 小时。
在你的体系下,这次操作是一个 skill 调用:
// 开发者只需要提供一个意图声明 // 然后启动 "i2c-sensor-skill" // 意图文件: tmp117_intent.yaml sensor: TMP117 bus: I2C1 i2c_address: 0x48 sample_rate: 1Hz alert_threshold: 85.0 # 摄氏度 output: tmp117_driver
Skill 启动后,自动执行以下查询链:
- 查询 PCB 分析器:"I2C1 的 SDA/SCL 分别映射到哪两个 GPIO?当前有没有其他设备共享这条总线?"
- 查询 agents.md:"I2C 驱动必须使用 DMA 模式,中断优先级必须为 4,严禁在 ISR 中调用任何日志函数。"
- 查询工程模板:"驱动文件应放在
Src/drivers/,头文件在Inc/drivers/,并遵循统一的错误返回码约定。" - 查询决策账本:"历史上是否有与 TMP117 或 I2C1 相关的已知陷阱?"(账本记录:某次 I2C1 与 SPI2 同时使用时出现总线冲突,原因是 DMA 通道重叠,已通过调整通道号解决。)
- 生成代码:基于以上所有上下文,生成完整的
tmp117.c和tmp117.h,代码已经遵循了负日志规范(包含期望值检查),使用了模板规定的 HAL 封装风格。 - 立即验证:闭环收敛 Agent 被触发,自动编译、烧录、运行 I2C 扫描测试和温度读取测试,确认传感器在线且数据在合理范围内。
耗时:5 分钟。其中 4 分钟是编译和烧录的物理时间,你真正参与的只有第一步——写一个意图声明。
这就是 Skill 层的价值:它把日常开发从"写代码"转变为"声明意图,审查结果"。
四、Skill 的设计原则:快,但不牺牲质量和可追溯性
快消费不代表"用完就扔,不管后果"。在你体系中运行的 skill,必须遵循几条硬性原则。这些原则,直接来自于你的 Core 层哲学:
原则一:所有 skill 产物必须可验证。
Skill 生成的代码,必须能立即被 CI 或闭环收敛 Agent 接管。如果 skill 生成了一段 I2C 驱动,那么对应的 I2C 扫描测试和压力测试就必须同步生成,并且必须在硬件上跑通。不允许"生成完就不管"的 skill。
原则二:所有 skill 必须尊重决策账本。
Skill 在生成代码前,必须查询账本中的历史禁区和已知陷阱。如果账本明确指示"I2C1 的 DMA 不能与 TIM2 的 CH2 共用通道",skill 必须自动避开,而不是再次踩坑后等人来救。
原则三:Skill 的运行上下文必须被记录。
当一个 skill 生成了代码并被接受,这个事件本身就是一个决策——相当于人在说:"这个 skill 的判断在当时是正确的。"这个决策必须被写回决策账本,以便未来的知识生命体征管理能追踪这次增量的来龙去脉。
原则四:Skill 不替代 Core,Core 不限制 Skill。
Skill 可以快速创建和废弃,但 Core 层(规约、模板、验证闭环)是稳定的。反之,Core 层永远不应该为了适应某个具体的 skill 而临时降低标准。两者各守其界,才能长期保持健康。
五、Skills 与五层进化的映射
Skills 不是外挂,而是五层进化每一层在"日常高频使用"时的自然延伸:
| 五层进化 | Skill 如何在其上运行 |
|---|---|
| L1 上下文增强 | Skill 自动查询 PCB 分析器和芯片数据库,获得完整的硬件上下文 |
| L2 可观测性 | Skill 生成的代码自动嵌入负日志,确保生成即带可观测性 |
| L3 数据闭环 | Skill 产物立即触发自动测试,失败则自动反馈修正 |
| L4 自动化 | Skill 调用链是全自动的,从意图声明到验证通过,无人介入 |
| L5 自治与共生 | Skill 的每一次执行结果都被记录进决策账本,参与未来的知识生命体征管理 |
从这个角度看,Skill 是让你的 L4 和 L5 日常化、平民化的关键。没有 skill,那些强大的自治机制只在重大迭代时被唤起;有了 skill,它们每一天都在为你的小修小补保驾护航。
六、最后的拼图
你的六篇文章,定义了一整套嵌入式 AI 工程化的严肃纪律。但纪律如果只存在于项目启动会议和重大重构中,它就会慢慢变成摆设。真正能让纪律活下来的,是把它融入到每一天、每一个具体小需求的执行里。
Skills 就是这一块拼图。它不是你体系的升级,而是你体系的日常化。它确保:当你在下午 3 点需要加一个传感器驱动时,你不会因为嫌麻烦而绕过所有精心设计的规约——因为 skill 让你在不绕路的情况下,比绕路更快。
本文定位
本文是五层进化系列支撑根系的核心文章。它提出了 Skill 层作为 Core 层的共生伴侣,定义了 skill 的运行原则,并将其映射到五层进化的每一级。建议与《实践项目模板》《自主修复闭环》《从收敛到进化》联合阅读,理解 skill 如何在规约、硬件上下文和决策账本的加持下,实现真正的"即插即用"。
系列导航:① 五层进化 · ② 实践项目模板 · ③ 自主修复闭环 · ④ 从收敛到进化 · ⑤ 知识的生命体征 · ⑥ 电路图分析器 · ⑦ Skills · ⑧ 历史的包袱 · ⑨ 固件铭牌与设备画像 · ⑩ 合规验证与AI编程 · ⑪ 回归现实:单Agent实践框架