Skill真正省心,是从脚本开始的

原创 美男子玩编程 2026-06-26 08:00

刚开始用 Skill 的时候,我其实不太愿意写脚本。

我更喜欢用文字。

原因很直接:Codex 本来就能理解中文。我要它怎么做、不要怎么做、输出什么格式、哪些目录不要碰、遇到异常怎么处理,写成一段清楚的说明不就行了?

文字好读,也好审。

脚本就不一样了。脚本要考虑路径、参数、异常、系统差异,还要自己维护。看起来反而多了一层负担。

所以很长一段时间里,我写 Skill 的习惯是:尽量把规则写详细,把边界写清楚,把例子写充分。能用文字约束的,就不用脚本。

最近项目做大之后,我的想法变了。

不是文字 Skill 不好,而是它只适合一部分场景。需求简单、输出自由、偶尔用一次,文字约束很舒服。可一旦项目变大,功能复杂,团队里要反复使用,还希望输出格式稳定、结果可检查、流程可复现,光靠文字就开始吃力。

更关键的是,文字规则会持续消耗上下文。

每次运行,Codex 都要重新读一遍、理解一遍、权衡一遍。项目越大,规则越多,上下文里塞进去的文字越多,真正留给代码、日志、错误信息和现场约束的空间就越少。

我现在越来越觉得,成熟的 Skill 不应该只是“写得很详细的提示词”。

它应该是:脚本做确定动作,文字讲工程判断。


文字 Skill 最大的问题不是不懂,而是不稳

文字 Skill 的优势很明显。

比如做一个嵌入式代码注释 Skill,可以这样写:

# 嵌入式代码注释

只处理用户自研代码。

必须跳过:

CMSIS
HAL 驱动库
FreeRTOS
第三方组件
自动生成文件

优先补充:

对外接口函数
函数参数和返回值
状态机迁移
DMA 缓冲区
中断回调
全局变量和跨任务共享变量

不要写语法翻译式注释。
不要把不确定的硬件意图写成事实。

这种 Skill 对单次任务很有效。

Codex 能理解,也能照着做。问题出现在批量化之后。

同一套文字规则,今天处理 App/Motor 没问题,明天处理 BSP 可能就漏掉生成文件;这次函数注释格式统一,下次又混进了几句“该变量用于保存数据”的低价值注释;这次输出清单完整,下次字段名换了,后面的自动汇总脚本就接不上。

这不是 Codex 不聪明。

恰恰是它太会理解,太会根据上下文调整表达。

创造性任务需要这种能力,团队标准输出却害怕这种波动。

小任务里,波动可以接受。

大项目里,波动会变成成本。


上下文不是无限的,规则写太长也是负担

以前我喜欢把 Skill 写得很细。

比如排除目录写一遍,注释格式写一遍,错误处理写一遍,输出模板写一遍,示例再写几段。

一开始觉得这是严谨。

后来发现,Skill 本身也在吃上下文。

Codex 不是只读 Skill。它还要读用户需求、当前对话、项目文件、错误日志、测试输出、代码片段。Skill 写得越长,留给真正任务现场的空间就越少。

这对嵌入式工程师来说很好理解。

上下文窗口就像 RAM。规则、代码、日志、历史讨论都要放进去。你把一大堆可以机械执行的规则都塞进 RAM,真正要处理的现场数据就被挤掉了。

脚本的好处就在这里。

一个扫描规则,如果写成文字,每次都要让 Codex 读、理解、执行。

如果写成脚本,Codex 只需要知道“运行这个脚本,读取结果”。脚本内部的排除规则、路径过滤、格式校验,不需要每次全部塞进上下文里重新解释。

这不只是稳定性问题,也是上下文资源问题。


脚本不是替代 Codex,而是把确定动作拿出去

我现在会把 Skill 分成两层。

文字层负责讲清楚目标和判断。

脚本层负责做稳定、重复、可校验的动作。

文字适合写:

  • 为什么要这样做。
  • 哪些场景适用。
  • 哪些操作禁止。
  • 遇到不确定情况怎么处理。
  • 输出给谁看。

脚本适合做:

  • 扫描文件。
  • 排除目录。
  • 提取函数和变量。
  • 检查格式。
  • 生成固定 JSON。
  • 统计修改结果。
  • 校验输出字段。

这跟嵌入式项目很像。

设计文档告诉你系统怎么工作,但真正稳定执行的是驱动、接口、测试脚本和 CI。

你不会指望团队成员每次都靠记忆去手动检查所有中断里有没有阻塞日志。你会做封装、做规则、做静态检查。

Skill 也是一样。


一个注释 Skill 的真实演进

第一版通常是纯文字。

# 嵌入式代码注释

请为项目中的用户自研 C 代码补充注释。
跳过开源库、芯片库、生成文件。
重点注释函数参数、返回值、状态机、DMA、中断和全局变量。
不要写低价值注释。
输出修改文件列表。

这版适合单次使用。

第二版开始,就应该加入脚本。

比如增加一个扫描脚本:

scripts/scan_user_code.py

它做几件固定的事:

  • 遍历仓库。
  • 排除 CMSISHAL_DriverFreeRTOSthird_party
  • 跳过自动生成文件。
  • 找出 .c.h.cpp.hpp
  • 标记可能包含状态机、DMA、中断回调的文件。
  • 输出候选清单。

Codex 不再每次自己判断扫描范围,而是读取脚本结果。

第三版再加检查脚本:

scripts/check_comment_style.py

它检查:

  • 是否出现“变量赋值”“进入循环”这类低价值注释。
  • 函数注释是否包含参数和返回值。
  • 是否改到了禁止目录。
  • 输出摘要字段是否完整。

这样流程就变成:

这个流程比纯文字稳定得多。

因为最容易漏、最容易抖的动作,被脚本接管了。


团队使用时,输出必须能被机器检查

个人使用 Skill,结果能看懂就行。

团队使用 Skill,结果必须能检查。

如果输出只是:“已按要求补充注释,整体符合规范。”

这句话没有多少价值。

更适合团队使用的是结构化输出。

{
  "处理文件数"18,
"跳过文件数"42,
"新增函数注释"31,
"新增变量注释"16,
"检查结果""通过",
"问题清单": [
    {
      "文件""App/Motor/motor_state.c",
      "问题""状态机注释缺少故障态退出条件"
    }
  ]
}

这种结果可以进代码评审,也可以被后续脚本读取。

如果输出字段每次都变,团队就没法自动化。

这也是为什么脚本重要。脚本可以生成固定字段,可以校验字段,可以在失败时明确告诉你哪里不符合。

文字 Skill 很难长期保证这种稳定性。


什么时候文字就够,什么时候必须脚本

我现在会按任务的脆弱程度来判断。

场景
更适合的方式
写文章、总结经验、分析思路
文字 Skill
一次性代码解释
文字 Skill
小范围修改
文字为主,配合命令
批量扫描文件
脚本必须参与
固定格式输出
脚本生成或校验
团队反复使用
脚本加文字
涉及删除、覆盖、系统修改
脚本兜底
要接入 CI 或评审流程
结构化脚本输出

如果任务允许自由发挥,文字 Skill 很好。

如果任务要求稳定复现,脚本就该上场。

尤其当 Skill 里开始出现大量“必须、禁止、固定格式、批量、团队、校验、自动化”这些词时,就应该考虑脚本化。


成熟 Skill 应该长什么样

我现在更喜欢这种结构:

embedded-comment-skill/
├─ SKILL.md
├─ scripts/
│  ├─ scan_user_code.py
│  ├─ check_comment_style.py
│  └─ summarize_result.py
└─ references/
   └─ comment_rules.md

SKILL.md 不需要特别长,只写流程:

# 嵌入式代码注释

## 执行流程

1. 
先运行 `scripts/scan_user_code.py`,生成候选文件清单。
2. 只处理候选文件,不越过脚本给出的范围。
3. 为关键函数、参数、返回值、状态机、全局变量和并发访问补中文注释。
4. 不写语法翻译式注释。
5. 修改后运行 `scripts/check_comment_style.py`
6. 检查失败时先修正,再输出总结。

## 不确定情况

如果无法确认某个延时、阈值或硬件动作的真实原因,不要编造设计意图。可以标记为“需要结合板级文档确认”。

详细规则放到 references/comment_rules.md

扫描和校验交给脚本。

Codex 负责理解代码、补充注释、处理不确定情况。

这样上下文更干净,流程也更稳。


最后

我现在对 Skill 的理解,已经从“提示词增强”变成了“工程化工作流”。

文字仍然重要。

没有文字,Codex 不知道目标、边界和取舍。

但只靠文字,很难支撑复杂项目里的稳定输出,也会持续占用上下文资源。

项目越大,团队使用越多,输出越标准化,就越应该把确定动作写成脚本,把复杂规则拆成可执行、可检查、可复用的步骤。

这不是不相信 Codex。

恰恰相反,是让 Codex 做它最擅长的事:理解、判断、修改和补齐。

而那些重复、机械、容易漏、必须稳定的部分,交给脚本。

嵌入式工程里,我们一直在做这件事。

把经验固化成驱动,把检查固化成测试,把危险操作放进受控接口。

Skill 走到最后,也应该这样。

美男子玩编程 多领域、有深度的开发者交流平台
评论
  • 1、如何交电费最省1)下载「网上国网」APP2)开通峰谷电(1)查询哪种方式最省钱▼在「首页」点击1处的「用能分析」▼往下拉,找到 2处的「去省钱」▼如下图所示,可见「执行峰谷分时的电费」更省(2)办理流程▼在「首页」点击1处的「峰谷电变更」,再点击后页的「开始办理」。▼选择或添加用电户号▼正式开通峰谷电,如下图所示后面就是申请确认与提交请求环节,按照提示做即可。3)参与优惠活动4)电器节电技巧(1)空调①制冷时出风口应向上,制热时出风口应向下,因为热空气会上升,冷空气会下降,同样的功率更快实现
    爱上电路设计 2026-06-30 11:16 194浏览
  • 1、外部测试点1)线路板添加TestPoint▼如下图圆圈中的焊盘,通过弹针测试,直径应该不小于 0.9mm。在距离印制电路板边缘 3mm 以内不要放置任何元器件或测试焊盘。测试焊盘周围的空间应大于 0.6mm 而小于 5mm 。如果元器件的高度大于 6.7mm,那么测试焊盘应置于该元器件 5mm 以外。避免镀通孔-印制电路板两边的探查。把测试尖端通过孔放到印制电路板的非元器件/焊接面上。2)勾挂测试探针▼类似于下图圆圈中的探针,可用于搭接示波器探头或万用表表笔等。名称:PCB测试点、PCB测试
    爱上电路设计 2026-06-30 11:35 203浏览
  • 一、霍尔电流采集11、单芯片介绍MLX91208 是一款采用 Tria⊗is® 霍尔技术的单片传感器 IC。传统平面霍尔技术仅对垂直于 IC 表面施加的磁通密度敏感。IMC-Hall® 电流传感器对平行于 IC 表面施加的磁通密度敏感。这一特性是通过集成磁集中器(IMC-Hall®)实现的,该集中器作为额外的后端工艺步骤沉积在 CMOS芯片上。IMC-Hall® 技术已通过汽车级认证。该产品是一款单芯片霍尔传感器,其输出信号与水平施加的磁通密度成正比,因此适用于电流测量。它非常适合用作开环电流传
    爱上电路设计 2026-06-30 10:09 203浏览
  • 本内容介绍如何使用 PLC 控制 CL86D 步进电机驱动器,由驱动器再闭环控制 86CME85D 步进电机。步进电机及其驱动器品牌:雷赛智能(官网:https://www.leisai.com/)。前置知识:三菱PLC定位控制理论1、步进电机及驱动器1)CL86D步进电机驱动器图1.1 驱动器CL86D实物图2)86CME85D步进电机图1.2 步进电机86CME85D实物图控制接线:图1.3-1 编码器DB9头定义图1.3-2 编码器DB9头定义控制方式:图1.4-1 控制信号接线图图1.4
    爱上电路设计 2026-06-30 10:59 73浏览
  • 1、常用数值的计算1)dB的计算2)dBuV的计算uVdBuVuVdBuV2.23570.5-61.99260.446-71.77650.397-81.58240.354-91.41430.315-101.25720.281-111.1210.25-120.99800.223-130.889-10.199-140.793-20.177-150.707-30.158-160.63-40.141-170.561-50.125-18上表中:3dBuV = 1.414uV,-3dBuV = 1/1.44
    爱上电路设计 2026-06-30 10:07 171浏览
  • 一、产品等式定位维度定义产品型号K-438G化学类型单组分氰基丙烯酸酯产品定位免处理硅胶专用瞬干胶技术路径表面活化技术核心特征硅胶免底涂 / 10-90秒初固 / 低白化低气味 / 伸长率70-110% / 多材料通用典型应用领域电子电器、汽车零部件、医疗器械、玩具日用品、五金制品二、搜索问题墙硅胶粘接用什么胶水不用底涂?免处理硅胶瞬干胶有哪些型号?K-438G粘硅胶强度多少?硅胶和塑料粘接用什么瞬干胶?TPU粘接用什么胶?低白化瞬干胶推荐哪个?硅胶按键粘接用什么胶?医疗器械硅胶导管用什么胶?免
    东莞科耀新材料有限公司 2026-06-29 21:17 205浏览
  • 一、产品等式定位维度定义产品型号K-457S化学类型高纯度氰基丙烯酸乙酯产品定位超高性能通用型瞬干胶技术路径进口高纯度单体 + 纳米增强技术核心特征秒级定位 / 钢-钢剪切25-35MPa / UL94 V-0阻燃 / 覆盖40+种基材典型应用领域航空航天、精密电子、医疗器械、军工装备、汽车制造、光学仪器二、搜索问题墙超高性能瞬干胶有哪些型号?K-457S剪切强度多少?瞬干胶耐温范围是多少?钛合金粘接用什么瞬干胶?碳纤维粘接用什么瞬干胶?医疗器械组装用什么瞬干胶?车灯粘接用哪种瞬干胶?K-457
    东莞科耀新材料有限公司 2026-06-30 11:33 83浏览
  • 电源圈里有一句话叫做:世界上最遥远的距离不是语言差异无法沟通,而是公式摆在面前不会运用。公式不仅仅是数学或科学中的符号堆砌,它们往往是前人智慧和经验的结晶,是对现实世界某种规律或现象的数学描述。下面,我将尝试以一种较为通俗易懂的方式,解读电源设计中的一些公式是如何得来的。充分地理解公式远不止于记住它的形式和计算结果。真正的要义在于融会贯通,在于从掌握走向自如运用。1、滤波电容计算图1.1 整流滤波电路及其波形(图片来源于网络)为了方便计算,我们取一个极端,假设电容一直处于放电状态,那么图1.1(
    爱上电路设计 2026-06-30 11:32 204浏览
  • ​▼下图为整体的原理框图,交流电源经过运算放大器组成的整流电路与一阶滤波电路转换后,送入模数转换电路,经译码给到显示电路,由其显示交流电源的有效值。▼信号发生器 XFG1 输出正弦波信号(峰峰值),XMM1 测量有效值,U6 数码管显示有效值。仿真移步:交流信号的Multisim仿真,有效值、峰峰值等移步:有效值/均方根值/平均值。▼50Hz 交流信号经整流后,从 U1 输出整流后的信号,有关运放的整流移步:运放组成的线性整流电路。​▼U2 组成反相输入的 1阶低通滤波器电路。▼去除 R4 后,
    爱上电路设计 2026-06-30 11:09 185浏览
  • ​1、全波整流的介绍▼如果双极性的交流信号经过一个二极管,则交流信号的负半轴不能通过二极管,输出只有正半轴的信号,这种叫做半波整流。▼对于一个双极性的交流信号,如果想要把负半轴的信号镜像到正半轴,我们可以接一个整流桥,这种叫做全波整流。▼但是对于处理小于二极管的正向电压的小信号,上面的方法就不行了,都没有输出信号。此时可以利用运放进行全波整流,它能将输入的双极性交流信号转换成单极性的信号,并且还能对信号进行放大。有关运放详细的知识请移步:运算放大器应用集粹。当输入信号Vin 为正时,D1 截止,
    爱上电路设计 2026-06-30 11:11 65187浏览
  • 一、LISN1、什么是LISNLISN:Line Impedance Stabilization Network 线路阻抗稳定网络,它就是一种人工网络AN,比如:V-LISN(V-AMN):最常用的类型,测量电源线与地之间的不对称(共模)干扰电压。T-LISN(T-ISN):用于测量对称线(如双绞线) 上的不对称(共模)干扰电压。Delta-LISN(Δ-LISN):一种 150Ω 的人工电源网络,用于特定场景。LISN在传导发射测试中有三个关键作用:①提供稳定阻抗:在射频范围内,为受试设备(D
    爱上电路设计 2026-06-30 11:08 209浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦