You already have AI skills. Maybe a debugging workflow in .cursor/skills/debugger/SKILL.md, a code review checklist under ~/.codex/skills/, or a custom prompt-engineering skill you’ve refined over months. They work — but they’re static files. They can’t compete with alternatives, can’t be versioned on a registry, and can’t be shared with other agents in a structured way.
Rotifer’s Skill Import pipeline turns those files into genes — modular units that carry metadata, participate in fitness evaluation, and live in a cloud registry anyone can query. The migration takes about five minutes per skill, and you don’t have to rewrite a single line.
Let’s walk through it.
Prerequisites
Before you start, make sure you have:
- Node.js >= 20 — check with
node -v - Rotifer CLI — install globally:
npm install -g @rotifer/playground - At least one SKILL.md file — in any of the standard skill directories
Verify the CLI is available:
rotifer --version# => @rotifer/playground v0.5.xStep 1: Scan for Skills
First, let Rotifer discover what skills you already have:
rotifer scan --skills --skills-path .cursor/skillsExample output:
🔍 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.The scanner reads every SKILL.md it finds, extracts the skill name from the directory structure, and reports what’s available. No files are modified — this is read-only reconnaissance.
Step 2: Wrap a Skill
Pick a skill and wrap it into a gene. Let’s use the debugger as an example:
rotifer wrap debugger-skill \ --from-skill .cursor/skills/debugger/SKILL.md \ --domain debuggingThis generates a gene directory under genes/debugger-skill/ with three files:
| File | Purpose |
|---|---|
phenotype.json | Declares the gene’s domain, input/output schema, and fidelity level (wrapped) |
SKILL.md | A copy of your original skill file, now bundled as gene documentation |
.gene-manifest.json | Internal metadata — gene ID, version, creation timestamp, source path |
The --domain flag categorizes the gene (e.g. debugging, testing, code-review, search). This determines which Arena bracket the gene competes in and helps agents discover it by capability.
Your original SKILL.md is never modified. The wrap command only reads it and creates a new gene directory alongside your existing genes.
Step 3: Compile (Validate)
Next, validate that the gene’s structure is well-formed:
rotifer compile debugger-skillFor Wrapped genes (which don’t contain executable WASM), the compile step validates:
phenotype.jsonschema is correct and complete- Required fields (
domain,fidelity,version) are present - The referenced
SKILL.mdexists and is non-empty .gene-manifest.jsonis internally consistent
Expected output:
📦 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.If anything is missing or malformed, the compiler will tell you exactly what to fix before you can proceed.
Step 4: Publish
Authenticate with the Rotifer Cloud Registry, then publish:
rotifer loginrotifer publish debugger-skillrotifer login opens an interactive auth flow (or reads credentials from ~/.rotifer/auth.json if you’ve logged in before). Once authenticated, publish uploads your gene to the cloud registry where it becomes discoverable by any agent using the MCP Server or the web registry at rotifer.ai.
🚀 Publishing debugger-skill v0.1.0... Registry: cloud.rotifer.dev Fidelity: wrapped Domain: debugging
✅ Published! View at: https://rotifer.ai/genes/debugger-skillYour skill is now a gene. Other agents can find it, compare it against alternatives, and adopt it — all through standard Rotifer tooling.
Wrapped vs Native
Not all genes are equal. The fidelity level determines what a gene can do:
| Attribute | Wrapped Gene | Native Gene |
|---|---|---|
| Source | Imported from SKILL.md | Written with express() function |
| Contains WASM | No — metadata only | Yes — executable IR |
| Runs in sandbox | No | Yes |
| Base fitness | 0.45 | 0.70 |
| Arena eligible | Limited brackets | All brackets |
| Portable across bindings | Metadata only | Full execution portability |
Wrapped genes are a legitimate starting point. They participate in the registry, carry reputation, and can be discovered by agents. But they can’t execute inside the Rotifer runtime — an agent that adopts a Wrapped gene uses its documentation as a prompt, not as runnable code.
Native genes, on the other hand, compile to WASM and run inside a sandboxed environment with measurable performance. Their higher base fitness reflects this additional capability.
Upgrading to Native
When you’re ready to give your gene executable behavior, provide a WASM binary:
rotifer compile debugger-skill --wasm debugger.wasmOr write a TypeScript express() function in genes/debugger-skill/index.ts and let the compiler handle the TS → WASM pipeline automatically:
rotifer compile debugger-skill# Detects index.ts → esbuild → Javy → WASM → Rotifer IRThe gene’s fidelity upgrades from wrapped to native, its base fitness rises, and it becomes eligible for full Arena competition. Your existing phenotype and metadata carry over — no need to re-publish from scratch.
Default Skill Paths
Rotifer’s scanner knows where to look for skills across popular AI development tools:
| Environment | Default Path | Notes |
|---|---|---|
| Cursor | .cursor/skills/ | Project-level skills |
| Codex | ~/.codex/skills/ | Global skills |
| Custom | Any directory | Pass --skills-path <dir> to rotifer scan |
You can scan multiple paths in sequence:
rotifer scan --skills --skills-path .cursor/skillsrotifer scan --skills --skills-path ~/.codex/skillsEach discovered skill can be individually wrapped and published.
What’s Next
You’ve scanned, wrapped, compiled, and published. Your skills are now genes — discoverable, comparable, and ready to evolve. From here you can:
- Submit to the Arena —
rotifer arena submit debugger-skillto compete against other debugging genes - Track fitness — watch how your gene ranks as agents adopt and evaluate it
- Upgrade to Native — add executable logic for higher fitness and full portability
- Compose into Genomes — combine multiple genes into a coordinated workflow
Deep Dive: See the full Skill Import Guide for all options and advanced workflows.