Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Documents
rotifer-arena
Try itCompare two Rotifer Genes head-to-head and get a Markdown report with F(g) fitness and V(g) security grades.
What it does
Guides an assistant through the rotifer CLI to compare two Rotifer Genes or Agents and produce a Markdown report. It walks through five phases: identifying the target (ClawHub import, local, scratch, or scenario scaffolding), compiling each Gene, matching same-domain opponents, running Arena submissions with rotifer vg for security grades, and rendering the final report. Output is a conversation-rendered Markdown report with F(g), V(g), fidelity, ranking, and reproduction commands, saved to arena-reports/ only when the user says 'save'.
When to use it
- Evaluating a ClawHub Skill against the best same-domain Arena opponent
- Comparing two of your own Genes and choosing the winner
- Scaffolding a brand-new Arena scenario from scratch phenotypes
- Producing a report after both Genes are already published to Cloud
The skill document
Rotifer Arena — Gene Comparison & Evaluation
One Skill covering Gene/Genome/Agent comparison across all scenarios.
Prerequisites
This Skill requires the Rotifer CLI:
npx @rotifer/playground --version
Or use the MCP Server for IDE integration:
{
"mcpServers": {
"rotifer": {
"command": "npx",
"args": ["@rotifer/mcp-server"]
}
}
}
Overview
This Skill wraps Rotifer Protocol's core value — objective, quantifiable capability evaluation — into a one-click workflow. Users don't need to understand Gene, Arena, or F(g) concepts upfront; the Skill introduces them naturally during execution.
Cross-platform: This SKILL.md runs in any AI development environment that supports Skills/Agents.
Workflow
Phase 1: Identify Evaluation Target
Understand user intent through conversation and determine the evaluation mode:
| User signal | Mode | Action |
|---|---|---|
| "Evaluate the X skill from ClawHub" | ClawHub migration evaluation | rotifer wrap --from-clawhub |
| "Compare my two implementations" | Local comparison | Confirm both Gene names, skip to Phase 3 |
| "I have a Skill I want to test" | Skill import evaluation | rotifer wrap --from-skill |
| "Help me build a XX scenario" | Scenario scaffolding | Guide Gene creation (rotifer init or manual phenotype) |
If the user doesn't specify a domain: auto-read from phenotype.json, or guide the user to choose.
Phase 2: Compile & Verify
rotifer compile
Output guidance based on fidelity result:
- Wrapped: Verification passed, deterministic evaluation mode
- Hybrid/Native: WASM compilation, real sandbox execution mode (requires NAPI binding)
Phase 3: Automatic Opponent Matching
Priority order:
- User-specified: If the user says "compare X and Y", use those directly
- Same-domain local search: Highest-ranked Gene from
rotifer arena list --domain - Same-fidelity preferred: If target is Wrapped, prefer Wrapped opponents (avoid cross-fidelity blowouts)
- No opponent found: Inform the user, show current cross-domain Arena rankings for reference
Opponent selection requires user confirmation — show candidate F(g) and fidelity.
Phase 4: Arena Submit & Compare
rotifer vg
rotifer vg
rotifer arena submit
rotifer arena submit
rotifer arena list --domain
rotifer vg is where the report's V(g) column comes from — it scans a Gene's
code and returns a grade of A–D, or ? when there is no src/ to read (a
pure-prompt Skill earns ?, which is not a failing grade and should be
reported as "no code to scan"). Without this step there is no V(g) to put in
the table, and a guessed one is worse than an absent one.
To watch the ranking settle after both submissions rather than re-running
arena list:
rotifer arena watch # live; Ctrl+C to stop
rotifer arena watch all --interval 10000
It marks each change as new / improved / dropped / eliminated, which is what the report's "← new entry" markers are describing.
If both Genes are already published to Cloud, two further commands add adoption data the Arena does not measure:
rotifer compare # 2–5 published Genes, by reputation and downloads
rotifer stats # download history: 7d / 30d / 90d / all time
Keep the two kinds of comparison apart in the report. rotifer compare ranks
by reputation and downloads — how much the ecosystem uses something. The
Arena run measures F(g) — how well it performs. A Gene can lead on one and
trail on the other, and saying which is which is the point of the report.
Collect evaluation results for both Genes.
Phase 5: Generate Evaluation Report
Output the full report in the conversation (rendered Markdown).
Append at the end: > Reply "save" to write the report to arena-reports/.
When the user replies "save", write to /arena-reports/--vs-.md.
Say what "save" does when you offer it — it creates a file in their project,
under arena-reports/, creating that directory if it is missing. The report is
shown in full in the conversation first, so saving is a choice rather than the
only way to read it. Never write it without being asked.
Report format requirements:
- Title = conclusion: Use scenario name + both Gene names, not a generic title
- Conclusion first: Immediately below the title, a
>blockquote with one-sentence summary of winner and key data - Concise comparison table: Only decision-relevant metrics (rank, F(g), V(g), Fidelity, success rate, latency, source), bold the winner. Every number in it must come from a command actually run — F(g) from
arena list, V(g) fromrotifer vg, downloads fromrotifer stats. Leave a cell empty and say why rather than estimating it - Ranking visualization: Fixed-width ASCII table showing the full domain ranking, mark new entries with
← - Reproduction commands in a standalone bash block: Pure commands (no comments/output) for easy copy-paste
- No internal references: No ADR numbers, plan section numbers, or internal version notes
- Minimal metadata: One line at the bottom with date + CLI version + evaluation mode
Report structure (output directly in conversation):
- Title:
# Comparison: vs - Conclusion blockquote: One sentence — who won, key metric delta, core reason
- Comparison table: Rank, F(g), V(g), Fidelity, Success rate, Latency score, Source
- Current ranking: Full domain leaderboard (ASCII table,
←marks new entries) - Analysis: 2–3 paragraphs on fitness gap attribution, security comparison, same-fidelity positioning
- Upgrade path: Table with path / action / expected improvement / effort
- Reproduction steps: 4–5 pure CLI commands
- Next steps: 4 commands with brief descriptions
- Footer:
Generated on YYYY-MM-DD · @rotifer/playground@X.Y.Z · Mode: deterministic estimation
Scenario Examples
Example 1: Evaluate a ClawHub Skill's Competitiveness
User: Evaluate the web-search skill from ClawHub in the Rotifer ecosystem
Skill execution:
1. rotifer wrap clawhub-web-search --from-clawhub web-search -d search
2. rotifer compile clawhub-web-search
3. Auto-discover same-domain opponent: genesis-web-search (Native, F(g)=0.9470)
4. rotifer arena submit clawhub-web-search
5. Generate comparison report
Example 2: Compare Two Custom Genes
User: Compare my particle-brute and particle-spatial — which is better?
Skill execution:
1. Confirm both Genes exist with phenotype.json
2. rotifer arena submit particle-brute
3. rotifer arena submit particle-spatial
4. rotifer arena list --domain sim.particle
5. Generate comparison report
Example 3: Build a Quantitative Scenario
User: Help me build a quantitative strategy comparison scenario
Skill execution:
1. Guide user to define domain (e.g. quant.strategy)
2. Guide creation of two Gene phenotype.json files (Strategy A vs Strategy B)
3. If compilable source exists, compile to WASM
4. rotifer arena submit both Genes
5. Generate scenario comparison report
Checklist Before Running
- Project has a
rotifer.json(if not, guiderotifer init) - CLI is installed:
npm i -g @rotifer/playground, or invoke it asnpx @rotifer/playground rotifer doctorpasses — compiling to Native WASM needs esbuild and javy, and without themrotifer compilefails in a way that reads like a code error- ClawHub imports require network connectivity
What this Skill does on your machine
It has no code of its own — it tells your assistant which rotifer commands to
run. That is why its manifest declares process execution, filesystem read/write
and outbound network access: every one of those is the CLI acting, not this
Skill.
| Runs | The rotifer CLI (@rotifer/playground), fetched from npm if not installed. |
| Reads | Genes and Agent definitions in the current project workspace. |
| Writes | Only what the commands below write — Genes into the project's genes/, Agent definitions into .rotifer/agents/. Nothing outside the project. |
| Sends | Cloud registry and Arena queries, to the public Rotifer API. Your code is not uploaded unless you run rotifer publish yourself. |
Commands that install, publish or overwrite are proposed for your approval first, never run silently.
Related Skills
| Skill | Relationship |
|---|---|
gene (dev module) | Route here when users need to create a Gene from scratch |
gene (migration module) | Route here when the report recommends a fidelity upgrade |
gene (audit module) | Suggest running when the report shows low security scores |
Constraints
- No automatic Cloud publishing: Comparison evaluation is a local operation; Cloud publishing requires explicit user confirmation
- Cross-fidelity comparisons need a disclaimer: The baseFitness gap between Wrapped and Native comes from the scoring model, not actual capability differences
- Reports are Markdown format: Ready for blogs, community sharing, or GitHub Issues
Related skills
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Save, search, and manage personal notes and knowledge bases in Get笔记 on explicit request.
More from xiaoba-dev
Browse all skillsRoute any Rotifer request to the right sub-capability — onboarding, scaffolding, diagnostics, search, or fidelity upgrade.
Build a Rotifer Agent from existing Genes through a 7-phase workflow of decomposition, composition, creation, and testing.
Rank an Agent's Rotifer Genes against the Arena and swap in stronger ones. Invoked explicitly via /evolve — scan local capabilities, compare Genes, inspect fitness scores, and replace weak ones with user approval. Not for capabilities outside Rotifer.
Cross-vendor adversarial review. WARNING — this sends your brief, and any source files you approve, to a model hosted by a THIRD-PARTY vendor, where it stays in that vendor's session history under their retention terms. Ship a plan, proposal, or design to a model from a DIFFERENT vendor to attack it; every objection carries a verifiable anchor; the defender rules with an evidence tag on each ruling; the final round classifies into still-disputed / unresolved / verified-consensus instead of forcing agreement; a fresh-session judge is mandatory whenever the outcome looks too clean. Invoke only when the user explicitly asks for an adversarial review by a model from another vendor. One model role-playing several experts is not this skill.
Session knowledge distillation: assign what you just learned in this session into an agent's four-layer persistent knowledge base (rule / memory / skill / decision record). The core is four disciplines — search before adding, pick the right layer, guard against bloat, and run a hygiene pass before landing anything. Fits agent workflows that already have (or want to build) these four layers; this is not a general note- taking tool. Invoke explicitly at the end of a session to consolidate what was learned.
Installs a documentation governance architecture in a project and diagnoses what it is missing. Three actions: audit diagnoses the current state against seven components (source-of-truth layering / decision records / cascade discipline / planning system / checkpoints bound to actions / gates / incident traceability); init installs what is missing (config, a script copy, a pre-commit gate, two Claude Code hooks, decision and plan templates); check keeps verifying that what the docs claim about reality still holds (TODOs left hanging too long, cascade memos never carried out, plan status that doesn't match reality, broken references, broken links, § section references pointing to the wrong place, missing index entries, broken tables, endpoints the docs declare but the code doesn't have). The framework was distilled from the documentation system of a large protocol project, and every check is tied to a real incident. ⚠️ init modifies the repository and installs hooks that keep running aft