你已经有了 AI 技能。也许是 .cursor/skills/debugger/SKILL.md 里的调试工作流,也许是 ~/.codex/skills/ 下的代码审查清单,也许是你花了几个月打磨的提示词工程技能。它们好用——但它们是静态文件。不能与替代方案竞争,不能在注册表中版本化,也不能以结构化的方式共享给其他 Agent。
Rotifer 的 Skill 导入管道可以将这些文件变成基因——携带元数据、参与适应度评估、存在于云端注册表中供任何人查询的模块化单元。每个技能的迁移大约只需五分钟,而且你不用重写任何一行代码。
让我们一步步来。
前提条件
开始之前,确保你已准备好:
- Node.js >= 20 — 通过
node -v检查 - Rotifer CLI — 全局安装:
npm install -g @rotifer/playground - 至少一个 SKILL.md 文件 — 在任一标准技能目录中
验证 CLI 可用:
rotifer --version# => @rotifer/playground v0.5.x第一步:扫描现有技能
首先,让 Rotifer 发现你已有的技能:
rotifer scan --skills --skills-path .cursor/skills示例输出:
🔍 Scanning .cursor/skills/ for SKILL.md files...
Found 4 skills:
┌──────────────────────┬────────────────────────────────────────────┬──────────┐ │ Skill Name │ Path │ Size │ ├──────────────────────┼────────────────────────────────────────────┼──────────┤ │ debugger │ .cursor/skills/debugger/SKILL.md │ 3.2 KB │ │ testing-strategist │ .cursor/skills/testing-strategist/SKILL.md │ 4.1 KB │ │ prompt-engineer │ .cursor/skills/prompt-engineer/SKILL.md │ 2.8 KB │ │ security-auditor │ .cursor/skills/security-auditor/SKILL.md │ 5.0 KB │ └──────────────────────┴────────────────────────────────────────────┴──────────┘
Run `rotifer wrap <name> --from-skill <path>` to wrap any skill as a gene.扫描器会读取它找到的每一个 SKILL.md,从目录结构中提取技能名称,然后报告可用的技能。不会修改任何文件——这是只读的侦察操作。
第二步:包装技能为基因
选择一个技能并将其包装为基因。我们以调试器为例:
rotifer wrap debugger-skill \ --from-skill .cursor/skills/debugger/SKILL.md \ --domain debugging这会在 genes/debugger-skill/ 下生成一个基因目录,包含三个文件:
| 文件 | 用途 |
|---|---|
phenotype.json | 声明基因的领域、输入/输出模式和保真度级别(wrapped) |
SKILL.md | 你原始技能文件的副本,现在作为基因文档打包 |
.gene-manifest.json | 内部元数据——基因 ID、版本、创建时间戳、来源路径 |
--domain 标志用于对基因进行分类(如 debugging、testing、code-review、search)。这决定了基因在哪个 Arena 分组中竞争,也帮助 Agent 按能力发现它。
你的原始 SKILL.md 不会被修改。wrap 命令只是读取它,然后在你现有的基因目录旁创建一个新的基因目录。
第三步:编译(验证)
接下来,验证基因的结构是否完整:
rotifer compile debugger-skill对于 Wrapped 基因(不包含可执行 WASM),编译步骤会验证:
phenotype.json模式正确且完整- 必填字段(
domain、fidelity、version)存在 - 引用的
SKILL.md存在且非空 .gene-manifest.json内部一致
预期输出:
📦 Compiling debugger-skill... Fidelity: wrapped (metadata-only, no WASM) Phenotype: ✓ valid Manifest: ✓ consistent Docs: ✓ SKILL.md present (3.2 KB)
✅ debugger-skill is ready to publish.如果有任何缺失或格式错误,编译器会准确告诉你需要修复什么,然后才能继续。
第四步:发布
通过 Rotifer 云注册表进行身份验证,然后发布:
rotifer loginrotifer publish debugger-skillrotifer login 会打开交互式认证流程(如果你之前登录过,则从 ~/.rotifer/auth.json 读取凭证)。认证成功后,publish 会将你的基因上传到云注册表,使其可以被任何使用 MCP Server 的 Agent 或 rotifer.ai 网页注册表发现。
🚀 Publishing debugger-skill v0.1.0... Registry: cloud.rotifer.dev Fidelity: wrapped Domain: debugging
✅ Published! View at: https://rotifer.ai/genes/debugger-skill你的技能现在是一个基因了。其他 Agent 可以找到它、将它与替代方案进行比较,然后采纳它——全部通过标准的 Rotifer 工具链完成。
Wrapped 与 Native 对比
并非所有基因生而平等。保真度级别决定了基因能做什么:
| 属性 | Wrapped 基因 | Native 基因 |
|---|---|---|
| 来源 | 从 SKILL.md 导入 | 使用 express() 函数编写 |
| 包含 WASM | 否——仅元数据 | 是——可执行 IR |
| 沙箱中运行 | 否 | 是 |
| 基础适应度 | 0.45 | 0.70 |
| Arena 参赛资格 | 有限分组 | 所有分组 |
| 跨 Binding 可移植性 | 仅元数据 | 完整执行可移植 |
Wrapped 基因是合理的起点。它们参与注册表、携带声誉,并可以被 Agent 发现。但它们无法在 Rotifer 运行时中执行——采纳 Wrapped 基因的 Agent 会将其文档作为提示词使用,而非可运行的代码。
Native 基因则编译为 WASM,在沙箱环境中运行,性能可测量。更高的基础适应度反映了这种额外能力。
升级到 Native
当你准备好为基因赋予可执行行为时,可以提供 WASM 二进制文件:
rotifer compile debugger-skill --wasm debugger.wasm或者在 genes/debugger-skill/index.ts 中编写 TypeScript express() 函数,让编译器自动处理 TS → WASM 管道:
rotifer compile debugger-skill# 检测到 index.ts → esbuild → Javy → WASM → Rotifer IR基因的保真度会从 wrapped 升级为 native,基础适应度上升,并获得完整 Arena 竞争的参赛资格。你现有的表型和元数据会保留——无需从头重新发布。
默认技能路径
Rotifer 的扫描器知道在哪里寻找主流 AI 开发工具的技能:
| 环境 | 默认路径 | 说明 |
|---|---|---|
| Cursor | .cursor/skills/ | 项目级技能 |
| Codex | ~/.codex/skills/ | 全局技能 |
| 自定义 | 任意目录 | 向 rotifer scan 传入 --skills-path <dir> |
你可以依次扫描多个路径:
rotifer scan --skills --skills-path .cursor/skillsrotifer scan --skills --skills-path ~/.codex/skills每个被发现的技能都可以单独包装和发布。
接下来做什么
你已经完成了扫描、包装、编译和发布。你的技能现在是基因了——可被发现、可被比较、准备好进化。接下来你可以:
- 提交到 Arena —
rotifer arena submit debugger-skill,与其他调试基因竞争 - 追踪适应度 — 观察你的基因在 Agent 采纳和评估过程中的排名变化
- 升级到 Native — 添加可执行逻辑以获得更高适应度和完整可移植性
- 组合为 Genome — 将多个基因组合成协调的工作流
深入阅读: 查看完整的 Skill 导入指南,了解所有选项与高级工作流。