
Description
Convert an openclaw (or similar) skill folder into a mavis/mcode-compatible skill via the bundled stdio MCP server `skill-bridge`. Use when the user wants to migrate a skill from openclaw, reuse a skill from another framework, or port a hand-written skill that does not follow the mavis schema. Do NOT use to create a brand-new skill from scratch (use `skill-creator` instead), or to lint/refine an existing mavis skill (use `skill-refiner`).
SKILL.md
skill-bridge
Bring a non-mavis skill into the mavis world. The skill itself is the thin LLM-facing layer; the heavy lifting lives in the stdio MCP server declared in mcp.json at the plugin root.
The MCP server exposes four tools, named after the original v0.1 CLI subcommands:
| Tool | Purpose |
|---|---|
detect(source) | Identify UTF-8 vs GBK; restore mojibake if needed. |
analyze(source) | Full report: frontmatter, body, hardcoded paths, external commands. |
classify(source) | One of pure (translatable), pure-wrapped-fix, wrapped-*, or abandon. |
convert(source, target_dir, force?, run_lint?) | Run the full pipeline; write to target_dir. Lint runs unless run_lint=false. |
source accepts either an absolute path to a SKILL.md file or to a directory containing one. target_dir is an absolute path that will be created or replaced atomically.
When to use this skill
- The user has an
openclawworkspace (or any non-mavis skill bundle) and wants to use those skills inside mavis. - The user found a skill on GitHub written in a different agent framework and wants to reuse it.
- The user wrote a
SKILL.mdthemselves years ago and wants to bring it up to mavis's current schema.
Do not use this skill for:
- Creating a new skill from scratch →
skill-creator - Fixing or refining an existing mavis skill →
skill-refiner - Listing what skills are available → read
<available_skills>from the system prompt
Inputs to collect
- Source path: an absolute path to either a
SKILL.mdfile or to a folder containing one. If the user gave a relative path, resolve it against the user's cwd before calling the tool. - Output path: an absolute path for the converted skill. Default: a folder whose basename matches the kebab-case name. If the user names a scope:
- user →
<homedir>/.minimax/skills/<name>/ - agent →
<homedir>/.minimax/agents/mavis/skills/<name>/ - project →
<repo>/.minimax/skills/<name>/
- user →
- Force overwrite (optional): only confirm with the user if the target already exists. The server is safe to re-run;
forceis informational.
Procedure
- Detect the source. Call
detect(source)and inspectencoding.- If
encoding === "unknown", warn the user before continuing. - If
encoding === "gbk"andreplaced === true, tell the user the source was GBK and we restored it.
- If
- Analyze the full report. Call
analyze(source)and checkhardcodedPathsandexternalCommands.- Non-empty
externalCommands→ the skill is likelywrapped-*(v0.2 only emitspure; stop and tell the user).
- Non-empty
- Classify. Call
classify(source). In v0.2, proceed only iftier === "pure". - Convert. Call
convert(source, target_dir).- If the tool returns
ok: falsewithtier: "abandon"ortier: "wrapped", stop and explain why. - If
ok: true, readtarget_dir/conversion-report.mdand surface thewarningsarray to the user verbatim. - Skim
target_dir/SKILL.md. If anything looks wrong (missing section, garbled encoding, broken path), tell the user before claiming success.
- If the tool returns
- Lint feedback. The
convertresponse already includes thelintobject (ok,code,stdout,stderr). Ifok === false, surface the lint output and do not claim the conversion is done. - Tell the user what was written, what to review, and how to use the new skill. Suggest
skill({name: "<converted-name>"})to verify it loads.
Output contract
- A directory at
target_dircontaining at minimum:SKILL.md— mavis-schema-compliantconversion-report.md— what was changed- optionally
references/<topic>.mdif the body was split
The server replaces target_dir atomically: at every observable point in time the directory is either the OLD content or the NEW content, never empty or half-written. Re-running with the same target_dir is always safe.
Failure handling
tier: abandonfromclassify→ do not write; explain the reason to the user.tier: wrappedin v0.2 → tell the user the server only supportspureright now; v0.3 will addwrapped.lint.ok === false→ do not claim success; show thelint.stdoutandlint.stderrverbatim.encoding === "unknown"→ ask the user to confirm the source is genuinely UTF-8 before writing.- Target already exists → atomic replace happens by default; only ask the user if you want to confirm before overwriting.
Examples
Input: /path/to/openclaw/skills/task-tracker
Good path:
detect(...)→utf-8, no replacement.classify(...)→pure / pure-wrapped-fix(one hardcoded path group).convert(source, target_dir)→ok: true, two warnings about path parameterization.- Confirm
lint.ok === true, surface the two warnings to the user.
Bad path: copy the SKILL.md to <homedir>/.minimax/agents/mavis/skills/<name>/ directly. The user's previous attempt at this failed because (a) the path is not in the mavis scan list and (b) GBK content was not detected.
Additional resources
references/compatibility-matrix.md— known openclaw skills and their tierreferences/path-patterns.md— the hardcoded path patterns we replace- The MCP server itself: see
mcp.json+server.mjsin the plugin root - The plan that produced this skill: see the plugin's
README.md
More skills from the MiniMax-Code-Plugins repository
View all 93 skillsarticle2tasks
convert articles into Dida365 tasks
Aug 18Content CreationMCPTask Managementbinder-agent-eval
evaluate LLM agent decision quality
Aug 27AgentsBenchmarkingEvalsLLMbinder-handoff
export and validate binder task packages
Aug 27AutomationData Engineeringbinder-protocol
compile and validate binder design protocols
Aug 27AutomationYAMLbinder-ranking-audit
audit binder campaign ranking results
Aug 27Data AnalysisQAbinder-replay
replay binder design campaigns
Aug 27AutomationData Analysis
More from MiniMax
View publisherandroid-native-dev
develop Android native applications
skills
Jul 13AccessibilityAndroidKotlinMobile +1buddy-sings
generate singing performances for AI companions
skills
Jul 13AgentsAudioCreativecolor-font-skill
select color palettes and font pairings
skills
Jul 13DesignPresentationsThemesTypographydesign-style-skill
select visual design systems for presentations
skills
Jul 13DesignDesign SystemPowerPointPresentationsflutter-dev
build cross-platform apps with Flutter
skills
Jul 13DartFlutterMobilePerformance +1frontend-dev
build visually striking frontend web pages
skills
Jul 13AnimationCreativeDesignFrontend +1