这是本栏目 Skills 生态拆解的第 8 轮。句式、门牌、触发、体重、防腐这些写法维度,前几轮已经拆干净了,本期补一块没人碰过的拼图:可移植性。证据就挂在 9 月 11 日的 GitHub 新星榜上——anything2explainer 在简介里自报家门「A Claude Code / Codex skill」,stop-that-shit 干脆整件只面向 Codex/GPT 场景,38.9 万星的 openclaw 把「Any OS. Any Platform」写进招牌。SKILL.md 正在从 Claude Code 的事实标准,变成跨宿主的通用格式。本期从这些热门件的公开自述和官方写法规范里,提炼「可移植 SKILL.md」的五条设计模式,末尾附一个最小改造演示:怎么把单宿主件改成双栖件。
| 仓库 | 星数 | 自述关键词 |
|---|---|---|
| openclaw/openclaw | 389,438 | 「Any OS. Any Platform」的跨平台 Agent |
| affaan-m/ECC | 256,298 | 「agent harness」中性的性能优化系统 |
| lennney/stop-that-shit | 1,906 | 面向 Codex/GPT 的多平台 Hook + Skill Guard |
| yang0/handraw-style | 1,385 | 双语提示词 Skill |
| donvito/codex-astra-luna-orchestrator | 965 | 在 Codex 里编排双模型子代理 |
| kajisho5/ffmpeg-skill | 950 | 音视频处理件 |
| Vincentwei1021/anything2explainer | 893 | 自称「A Claude Code / Codex skill」 |
| achimala/dream-loop | 819 | Blender + 图像生成 + 子代理评审环 |
再看两个侧证:vinzdg/codenotch(1,442 星)做的事是把 Claude Code、Cursor、Codex、Antigravity 四家的用量限额钉在屏幕边上——用户手里已经不止一个宿主;skillsmp.com 收录的 Skills 目录超过 2300 件,收录标准早已不问出身。结论不复杂:你写的下一个 Skill,大概率会被人在另一个宿主里打开。写法得按移植设计。
评分对象是四件有代表性的跨宿主相关件,五维权重按本栏目惯例(功能 25%、设计 25%、实战 20%、上手 15%、社区 15%),星数越高越好,综合分加权计算:
| Skill | 功能完整度 | 设计质量 | 实战效果 | 上手难度 | 社区活跃度 | 综合 |
|---|---|---|---|---|---|---|
| anything2explainer | ★★★★ | ★★★★★ | ★★★★ | ★★★★ | ★★★★ | 4.25 |
| stop-that-shit | ★★★★ | ★★★★★ | ★★★★ | ★★★ | ★★★★★ | 4.25 |
| dream-loop | ★★★★ | ★★★★ | ★★★★ | ★★★ | ★★★ | 3.70 |
| codex-astra-luna-orchestrator | ★★★ | ★★★★ | ★★★ | ★★★ | ★★★★ | 3.40 |
说明:上手难度按对新手友好度给分,stop-that-shit 要动 Hook 配置,扣一星;社区活跃度以星数与上榜势头为主要依据,dream-loop 上榜时间短,保守给三星。
description 是唯一的常驻路由层,但每个宿主的路由器词表不一样。 anything2explainer 的门牌是个好样板:先说清「Topic in, narrated explainer video out」这个输入输出边界(任何路由器都读得懂),再在句尾补一句「A Claude Code / Codex skill」当信任状。顺序不能反——把宿主名放开头,等于在另一个宿主的路由里给门牌上了锁。
# 反例:Codex 读到「Claude Code 的 Read 工具」直接划走
description: 用 Claude Code 的 Read 工具读代码并生成周报。
# 正例:边界在前,宿主在后
description: 汇总一周 git 提交,生成中文周报 Markdown。当用户要求写周报、
总结提交记录时使用。适用于 Claude Code、Codex 等具备 shell 与文件
读写能力的编码 Agent。
SKILL.md 正文里每出现一个专属工具名(Read、Write、某个 MCP 的动词),可移植性就掉一格。官方规范里 Skill 的三件套原语——读文件、写文件、跑命令——恰恰是所有编码 Agent 都有的底座。写法上做一个替换纪律:凡是「用 X 工具做 Y」,改写成「做 Y(通过 shell 或文件读写)」。宿主自己会把它翻译成自家的工具调用。 stop-that-shit 能做多平台拦截,靠的就是只约定行为边界(别造无需求的哈希、别膨胀任务范围),不绑定任何一家的执行器。
单宿主件默认环境齐备;可移植件要在正文开头放一段「环境自检」,把快路和兜底都写出来:
## 环境自检
1. 能否执行 shell 命令?不能 → 请用户粘贴原始输出,转入纯文本流程。
2. 有无 ffmpeg?有 → 直接跑 scripts/extract.sh;没有 → 提示安装命令后重试。
dream-loop 的组合是个进阶样本:Blender 渲染、图像生成、子代理评审三段能力,简介里就写明是拼装关系——缺哪段,评审环就降级成人工检查。降级路径不是防御性废话,它决定了件在第二宿主里的「开机率」。
渐进披露的第三层(scripts/ 目录)天然跨宿主——bash 加 Python 标准库是所有 Agent 运行环境的最小公约数。两条纪律:
claude 命令存在);正文只保留判断性工作(怎么分组、什么算「本周」、风格怎么定),确定性的脏活全部交给脚本。这一层跨宿主时几乎零成本,因为大家共享同一个 shell。
打包之前,在两个宿主里各跑一条最小命令(不是全流程,是冒烟):加载是否命中、自检是否通过、脚本是否出数。然后把实测过的支持范围写回 description——anything2explainer 敢在门牌里写双栖,说明作者两个宿主都点过火。门牌里的每个宿主名都应该是一次冒烟测试的收据,没测过的别写,写了就是给下一个宿主的用户埋雷。
flowchart TD
A["用户请求进入宿主"] --> B["路由读门牌description"]
B --> C{"触发词命中?"}
C -->|命中| D["载入SKILL.md正文"]
C -->|未命中| Z["Skill保持沉睡"]
D --> E["执行环境自检段"]
E --> F{"宿主具备专属能力?"}
F -->|具备| G["快路: 原生能力直连"]
F -->|不具备| H["兜底: shell加文件约定"]
G --> I["运行scripts脚本"]
H --> I
I --> J["stdout结构化返回"]
J --> K["过冒烟检查清单"]
K --> L{"检查项全绿?"}
L -->|是| M["交付结果"]
L -->|否| N["按失败路径重试一次"]
N --> I
注意这张图和单宿主版的差别只有两处:门牌多服务一个路由器,正文多一层自检分岔。可移植性的成本就这两处,收益是星数来自两个社区。
以一个最小的「周报组装」件为例,只动要害,完整目录不变:
weekly-report/
├── SKILL.md # 改造主战场
├── scripts/
│ └── collect.sh # 已是 POSIX 脚本,无需改动
└── references/
└── format.md # 周报格式规范,宿主无关
改造前(单宿主写法):
name: weekly-report
description: 用 Bash 工具读取 git log 生成周报,当用户说「写周报」时使用。
用 Bash 工具执行 git log,再用 Write 工具写到 weekly.md。
改造后(可移植写法):
name: weekly-report
description: 汇总一周 git 提交,生成中文周报 Markdown。当用户要求写周报、
总结本周提交、整理 weekly report 时使用。适用于 Claude Code、Codex
等具备 shell 与文件读写能力的编码 Agent。
## 环境自检
1. 确认当前目录是 git 仓库;不是则向用户要仓库路径。
2. 确认 shell 可用;不可用则请用户粘贴 git log 输出,走纯文本分支。
## 流程
1. 运行 bash scripts/collect.sh,拿到原始提交列表。
2. 按 references/format.md 的规范分组、提炼、定稿。
3. 写入 weekly/2026-Www.md,并在回复里给出文件路径。
## 失败路径
- collect.sh 报错:把 stderr 原文给用户,附最可能的修复命令。
- 本周零提交:输出空周报模板,不要编造条目。
改动就三处:门牌换通用语并在句尾点名宿主、正文删掉所有专属工具名、头部加自检与失败路径。脚本层一字未动——这就是模式四说的「第三层免费跨宿主」。
# 双栖解说视频件(自称 Claude Code / Codex 双支持)
git clone https://github.com/Vincentwei1021/anything2explainer \
~/.claude/skills/anything2explainer
# 多平台护栏件(面向 Codex/GPT 场景,配置方法看仓库 README)
git clone https://github.com/lennney/stop-that-shit
# 子代理评审环(Blender + 图像生成)
git clone https://github.com/achimala/dream-loop ~/.claude/skills/dream-loop
# 在聚合市场里继续淘双栖件
npx skills find "codex compatible"
装完在两个宿主里各说一句触发语(比如「把这个主题做成解说视频」),看路由是否都命中——这就是你自己的冒烟矩阵。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
