[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-minimax-skill-bridge":3,"mdc--8j9x0k-key":37,"related-org-minimax-skill-bridge":1124,"related-repo-minimax-skill-bridge":1327},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"skill-bridge","migrate skills to MCP format","Convert an openclaw (or similar) skill folder into a mavis\u002Fmcode-compatible\nskill via the bundled stdio MCP server `skill-bridge`. Use when the user\nwants to migrate a skill from openclaw, reuse a skill from another\nframework, or port a hand-written skill that does not follow the mavis\nschema. Do NOT use to create a brand-new skill from scratch (use\n`skill-creator` instead), or to lint\u002Frefine an existing mavis skill\n(use `skill-refiner`).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"minimax","MiniMax","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fminimax.jpg","MiniMax-AI",[13,17,20,23],{"name":14,"slug":15,"type":16},"Automation","automation","tag",{"name":18,"slug":19,"type":16},"MCP","mcp",{"name":21,"slug":22,"type":16},"Plugin Development","plugin-development",{"name":24,"slug":25,"type":16},"Engineering","engineering",5,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002FMiniMax-Code-Plugins","2026-08-27T13:32:24.473006",null,2,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Community registry and contribution toolkit for MiniMax Code plugins.","https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002FMiniMax-Code-Plugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fantianqi\u002Fskill-bridge\u002Fskills\u002Fskill-bridge","---\nname: skill-bridge\ndescription: |\n  Convert an openclaw (or similar) skill folder into a mavis\u002Fmcode-compatible\n  skill via the bundled stdio MCP server `skill-bridge`. Use when the user\n  wants to migrate a skill from openclaw, reuse a skill from another\n  framework, or port a hand-written skill that does not follow the mavis\n  schema. Do NOT use to create a brand-new skill from scratch (use\n  `skill-creator` instead), or to lint\u002Frefine an existing mavis skill\n  (use `skill-refiner`).\ndescriptions:\n  zh-Hans: |\n    通过内置的 stdio MCP server `skill-bridge`，把 openclaw（或类似框架）\n    的 skill 转换为 mavis\u002Fmcode 兼容的 skill。需要迁移\u002F移植\u002F复用 skill 时使用。\ndisplayNames:\n  zh-Hans: Skill 移植桥\nmetadata:\n  openclaw_compat: true\n  auto-invoke: \"\"\n---\n\n# skill-bridge\n\nBring 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.\n\nThe MCP server exposes four tools, named after the original v0.1 CLI subcommands:\n\n| Tool | Purpose |\n| --- | --- |\n| `detect(source)` | Identify UTF-8 vs GBK; restore mojibake if needed. |\n| `analyze(source)` | Full report: frontmatter, body, hardcoded paths, external commands. |\n| `classify(source)` | One of `pure` (translatable), `pure-wrapped-fix`, `wrapped-*`, or `abandon`. |\n| `convert(source, target_dir, force?, run_lint?)` | Run the full pipeline; write to `target_dir`. Lint runs unless `run_lint=false`. |\n\n`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.\n\n## When to use this skill\n\n- The user has an `openclaw` workspace (or any non-mavis skill bundle) and wants to use those skills inside mavis.\n- The user found a skill on GitHub written in a different agent framework and wants to reuse it.\n- The user wrote a `SKILL.md` themselves years ago and wants to bring it up to mavis's current schema.\n\nDo **not** use this skill for:\n\n- Creating a new skill from scratch → `skill-creator`\n- Fixing or refining an existing mavis skill → `skill-refiner`\n- Listing what skills are available → read `\u003Cavailable_skills>` from the system prompt\n\n## Inputs to collect\n\n- **Source path**: an absolute path to either a `SKILL.md` file or to a folder containing one. If the user gave a relative path, resolve it against the user's cwd before calling the tool.\n- **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:\n  - user → `\u003Chomedir>\u002F.minimax\u002Fskills\u002F\u003Cname>\u002F`\n  - agent → `\u003Chomedir>\u002F.minimax\u002Fagents\u002Fmavis\u002Fskills\u002F\u003Cname>\u002F`\n  - project → `\u003Crepo>\u002F.minimax\u002Fskills\u002F\u003Cname>\u002F`\n- **Force overwrite (optional)**: only confirm with the user if the target already exists. The server is safe to re-run; `force` is informational.\n\n## Procedure\n\n1. **Detect** the source. Call `detect(source)` and inspect `encoding`.\n   - If `encoding === \"unknown\"`, warn the user before continuing.\n   - If `encoding === \"gbk\"` and `replaced === true`, tell the user the source was GBK and we restored it.\n2. **Analyze** the full report. Call `analyze(source)` and check `hardcodedPaths` and `externalCommands`.\n   - Non-empty `externalCommands` → the skill is likely `wrapped-*` (v0.2 only emits `pure`; stop and tell the user).\n3. **Classify**. Call `classify(source)`. In v0.2, proceed only if `tier === \"pure\"`.\n4. **Convert**. Call `convert(source, target_dir)`.\n   - If the tool returns `ok: false` with `tier: \"abandon\"` or `tier: \"wrapped\"`, stop and explain why.\n   - If `ok: true`, read `target_dir\u002Fconversion-report.md` and surface the `warnings` array to the user verbatim.\n   - Skim `target_dir\u002FSKILL.md`. If anything looks wrong (missing section, garbled encoding, broken path), tell the user **before** claiming success.\n5. **Lint feedback**. The `convert` response already includes the `lint` object (`ok`, `code`, `stdout`, `stderr`). If `ok === false`, surface the lint output and do not claim the conversion is done.\n6. **Tell the user** what was written, what to review, and how to use the new skill. Suggest `skill({name: \"\u003Cconverted-name>\"})` to verify it loads.\n\n## Output contract\n\n- A directory at `target_dir` containing at minimum:\n  - `SKILL.md` — mavis-schema-compliant\n  - `conversion-report.md` — what was changed\n  - optionally `references\u002F\u003Ctopic>.md` if the body was split\n\nThe 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.\n\n## Failure handling\n\n- `tier: abandon` from `classify` → do not write; explain the reason to the user.\n- `tier: wrapped` in v0.2 → tell the user the server only supports `pure` right now; v0.3 will add `wrapped`.\n- `lint.ok === false` → do not claim success; show the `lint.stdout` and `lint.stderr` verbatim.\n- `encoding === \"unknown\"` → ask the user to confirm the source is genuinely UTF-8 before writing.\n- Target already exists → atomic replace happens by default; only ask the user if you want to confirm before overwriting.\n\n## Examples\n\n**Input**: `\u002Fpath\u002Fto\u002Fopenclaw\u002Fskills\u002Ftask-tracker`\n\n**Good path**:\n1. `detect(...)` → `utf-8`, no replacement.\n2. `classify(...)` → `pure \u002F pure-wrapped-fix` (one hardcoded path group).\n3. `convert(source, target_dir)` → `ok: true`, two warnings about path parameterization.\n4. Confirm `lint.ok === true`, surface the two warnings to the user.\n\n**Bad path**: copy the `SKILL.md` to `\u003Chomedir>\u002F.minimax\u002Fagents\u002Fmavis\u002Fskills\u002F\u003Cname>\u002F` 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.\n\n## Additional resources\n\n- `references\u002Fcompatibility-matrix.md` — known openclaw skills and their tier\n- `references\u002Fpath-patterns.md` — the hardcoded path patterns we replace\n- The MCP server itself: see `mcp.json` + `server.mjs` in the plugin root\n- The plan that produced this skill: see the plugin's `README.md`\n",{"data":38,"body":46},{"name":4,"description":6,"descriptions":39,"displayNames":41,"metadata":43},{"zh-Hans":40},"通过内置的 stdio MCP server `skill-bridge`，把 openclaw（或类似框架）\n的 skill 转换为 mavis\u002Fmcode 兼容的 skill。需要迁移\u002F移植\u002F复用 skill 时使用。\n",{"zh-Hans":42},"Skill 移植桥",{"openclaw_compat":44,"auto-invoke":45},true,"",{"type":47,"children":48},"root",[49,56,79,84,227,253,260,295,307,345,351,435,441,766,772,824,843,849,937,943,959,969,1038,1062,1068],{"type":50,"tag":51,"props":52,"children":53},"element","h1",{"id":4},[54],{"type":55,"value":4},"text",{"type":50,"tag":57,"props":58,"children":59},"p",{},[60,62,68,70,77],{"type":55,"value":61},"Bring a non-mavis skill into the mavis world. The skill itself is the ",{"type":50,"tag":63,"props":64,"children":65},"strong",{},[66],{"type":55,"value":67},"thin LLM-facing layer",{"type":55,"value":69},"; the heavy lifting lives in the stdio MCP server declared in ",{"type":50,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":55,"value":76},"mcp.json",{"type":55,"value":78}," at the plugin root.",{"type":50,"tag":57,"props":80,"children":81},{},[82],{"type":55,"value":83},"The MCP server exposes four tools, named after the original v0.1 CLI subcommands:",{"type":50,"tag":85,"props":86,"children":87},"table",{},[88,107],{"type":50,"tag":89,"props":90,"children":91},"thead",{},[92],{"type":50,"tag":93,"props":94,"children":95},"tr",{},[96,102],{"type":50,"tag":97,"props":98,"children":99},"th",{},[100],{"type":55,"value":101},"Tool",{"type":50,"tag":97,"props":103,"children":104},{},[105],{"type":55,"value":106},"Purpose",{"type":50,"tag":108,"props":109,"children":110},"tbody",{},[111,129,146,195],{"type":50,"tag":93,"props":112,"children":113},{},[114,124],{"type":50,"tag":115,"props":116,"children":117},"td",{},[118],{"type":50,"tag":71,"props":119,"children":121},{"className":120},[],[122],{"type":55,"value":123},"detect(source)",{"type":50,"tag":115,"props":125,"children":126},{},[127],{"type":55,"value":128},"Identify UTF-8 vs GBK; restore mojibake if needed.",{"type":50,"tag":93,"props":130,"children":131},{},[132,141],{"type":50,"tag":115,"props":133,"children":134},{},[135],{"type":50,"tag":71,"props":136,"children":138},{"className":137},[],[139],{"type":55,"value":140},"analyze(source)",{"type":50,"tag":115,"props":142,"children":143},{},[144],{"type":55,"value":145},"Full report: frontmatter, body, hardcoded paths, external commands.",{"type":50,"tag":93,"props":147,"children":148},{},[149,158],{"type":50,"tag":115,"props":150,"children":151},{},[152],{"type":50,"tag":71,"props":153,"children":155},{"className":154},[],[156],{"type":55,"value":157},"classify(source)",{"type":50,"tag":115,"props":159,"children":160},{},[161,163,169,171,177,179,185,187,193],{"type":55,"value":162},"One of ",{"type":50,"tag":71,"props":164,"children":166},{"className":165},[],[167],{"type":55,"value":168},"pure",{"type":55,"value":170}," (translatable), ",{"type":50,"tag":71,"props":172,"children":174},{"className":173},[],[175],{"type":55,"value":176},"pure-wrapped-fix",{"type":55,"value":178},", ",{"type":50,"tag":71,"props":180,"children":182},{"className":181},[],[183],{"type":55,"value":184},"wrapped-*",{"type":55,"value":186},", or ",{"type":50,"tag":71,"props":188,"children":190},{"className":189},[],[191],{"type":55,"value":192},"abandon",{"type":55,"value":194},".",{"type":50,"tag":93,"props":196,"children":197},{},[198,207],{"type":50,"tag":115,"props":199,"children":200},{},[201],{"type":50,"tag":71,"props":202,"children":204},{"className":203},[],[205],{"type":55,"value":206},"convert(source, target_dir, force?, run_lint?)",{"type":50,"tag":115,"props":208,"children":209},{},[210,212,218,220,226],{"type":55,"value":211},"Run the full pipeline; write to ",{"type":50,"tag":71,"props":213,"children":215},{"className":214},[],[216],{"type":55,"value":217},"target_dir",{"type":55,"value":219},". Lint runs unless ",{"type":50,"tag":71,"props":221,"children":223},{"className":222},[],[224],{"type":55,"value":225},"run_lint=false",{"type":55,"value":194},{"type":50,"tag":57,"props":228,"children":229},{},[230,236,238,244,246,251],{"type":50,"tag":71,"props":231,"children":233},{"className":232},[],[234],{"type":55,"value":235},"source",{"type":55,"value":237}," accepts either an absolute path to a ",{"type":50,"tag":71,"props":239,"children":241},{"className":240},[],[242],{"type":55,"value":243},"SKILL.md",{"type":55,"value":245}," file or to a directory containing one. ",{"type":50,"tag":71,"props":247,"children":249},{"className":248},[],[250],{"type":55,"value":217},{"type":55,"value":252}," is an absolute path that will be created or replaced atomically.",{"type":50,"tag":254,"props":255,"children":257},"h2",{"id":256},"when-to-use-this-skill",[258],{"type":55,"value":259},"When to use this skill",{"type":50,"tag":261,"props":262,"children":263},"ul",{},[264,278,283],{"type":50,"tag":265,"props":266,"children":267},"li",{},[268,270,276],{"type":55,"value":269},"The user has an ",{"type":50,"tag":71,"props":271,"children":273},{"className":272},[],[274],{"type":55,"value":275},"openclaw",{"type":55,"value":277}," workspace (or any non-mavis skill bundle) and wants to use those skills inside mavis.",{"type":50,"tag":265,"props":279,"children":280},{},[281],{"type":55,"value":282},"The user found a skill on GitHub written in a different agent framework and wants to reuse it.",{"type":50,"tag":265,"props":284,"children":285},{},[286,288,293],{"type":55,"value":287},"The user wrote a ",{"type":50,"tag":71,"props":289,"children":291},{"className":290},[],[292],{"type":55,"value":243},{"type":55,"value":294}," themselves years ago and wants to bring it up to mavis's current schema.",{"type":50,"tag":57,"props":296,"children":297},{},[298,300,305],{"type":55,"value":299},"Do ",{"type":50,"tag":63,"props":301,"children":302},{},[303],{"type":55,"value":304},"not",{"type":55,"value":306}," use this skill for:",{"type":50,"tag":261,"props":308,"children":309},{},[310,321,332],{"type":50,"tag":265,"props":311,"children":312},{},[313,315],{"type":55,"value":314},"Creating a new skill from scratch → ",{"type":50,"tag":71,"props":316,"children":318},{"className":317},[],[319],{"type":55,"value":320},"skill-creator",{"type":50,"tag":265,"props":322,"children":323},{},[324,326],{"type":55,"value":325},"Fixing or refining an existing mavis skill → ",{"type":50,"tag":71,"props":327,"children":329},{"className":328},[],[330],{"type":55,"value":331},"skill-refiner",{"type":50,"tag":265,"props":333,"children":334},{},[335,337,343],{"type":55,"value":336},"Listing what skills are available → read ",{"type":50,"tag":71,"props":338,"children":340},{"className":339},[],[341],{"type":55,"value":342},"\u003Cavailable_skills>",{"type":55,"value":344}," from the system prompt",{"type":50,"tag":254,"props":346,"children":348},{"id":347},"inputs-to-collect",[349],{"type":55,"value":350},"Inputs to collect",{"type":50,"tag":261,"props":352,"children":353},{},[354,371,417],{"type":50,"tag":265,"props":355,"children":356},{},[357,362,364,369],{"type":50,"tag":63,"props":358,"children":359},{},[360],{"type":55,"value":361},"Source path",{"type":55,"value":363},": an absolute path to either a ",{"type":50,"tag":71,"props":365,"children":367},{"className":366},[],[368],{"type":55,"value":243},{"type":55,"value":370}," file or to a folder containing one. If the user gave a relative path, resolve it against the user's cwd before calling the tool.",{"type":50,"tag":265,"props":372,"children":373},{},[374,379,381],{"type":50,"tag":63,"props":375,"children":376},{},[377],{"type":55,"value":378},"Output path",{"type":55,"value":380},": an absolute path for the converted skill. Default: a folder whose basename matches the kebab-case name. If the user names a scope:\n",{"type":50,"tag":261,"props":382,"children":383},{},[384,395,406],{"type":50,"tag":265,"props":385,"children":386},{},[387,389],{"type":55,"value":388},"user → ",{"type":50,"tag":71,"props":390,"children":392},{"className":391},[],[393],{"type":55,"value":394},"\u003Chomedir>\u002F.minimax\u002Fskills\u002F\u003Cname>\u002F",{"type":50,"tag":265,"props":396,"children":397},{},[398,400],{"type":55,"value":399},"agent → ",{"type":50,"tag":71,"props":401,"children":403},{"className":402},[],[404],{"type":55,"value":405},"\u003Chomedir>\u002F.minimax\u002Fagents\u002Fmavis\u002Fskills\u002F\u003Cname>\u002F",{"type":50,"tag":265,"props":407,"children":408},{},[409,411],{"type":55,"value":410},"project → ",{"type":50,"tag":71,"props":412,"children":414},{"className":413},[],[415],{"type":55,"value":416},"\u003Crepo>\u002F.minimax\u002Fskills\u002F\u003Cname>\u002F",{"type":50,"tag":265,"props":418,"children":419},{},[420,425,427,433],{"type":50,"tag":63,"props":421,"children":422},{},[423],{"type":55,"value":424},"Force overwrite (optional)",{"type":55,"value":426},": only confirm with the user if the target already exists. The server is safe to re-run; ",{"type":50,"tag":71,"props":428,"children":430},{"className":429},[],[431],{"type":55,"value":432},"force",{"type":55,"value":434}," is informational.",{"type":50,"tag":254,"props":436,"children":438},{"id":437},"procedure",[439],{"type":55,"value":440},"Procedure",{"type":50,"tag":442,"props":443,"children":444},"ol",{},[445,506,566,590,686,748],{"type":50,"tag":265,"props":446,"children":447},{},[448,453,455,460,462,468,470],{"type":50,"tag":63,"props":449,"children":450},{},[451],{"type":55,"value":452},"Detect",{"type":55,"value":454}," the source. Call ",{"type":50,"tag":71,"props":456,"children":458},{"className":457},[],[459],{"type":55,"value":123},{"type":55,"value":461}," and inspect ",{"type":50,"tag":71,"props":463,"children":465},{"className":464},[],[466],{"type":55,"value":467},"encoding",{"type":55,"value":469},".\n",{"type":50,"tag":261,"props":471,"children":472},{},[473,486],{"type":50,"tag":265,"props":474,"children":475},{},[476,478,484],{"type":55,"value":477},"If ",{"type":50,"tag":71,"props":479,"children":481},{"className":480},[],[482],{"type":55,"value":483},"encoding === \"unknown\"",{"type":55,"value":485},", warn the user before continuing.",{"type":50,"tag":265,"props":487,"children":488},{},[489,490,496,498,504],{"type":55,"value":477},{"type":50,"tag":71,"props":491,"children":493},{"className":492},[],[494],{"type":55,"value":495},"encoding === \"gbk\"",{"type":55,"value":497}," and ",{"type":50,"tag":71,"props":499,"children":501},{"className":500},[],[502],{"type":55,"value":503},"replaced === true",{"type":55,"value":505},", tell the user the source was GBK and we restored it.",{"type":50,"tag":265,"props":507,"children":508},{},[509,514,516,521,523,529,530,536,537],{"type":50,"tag":63,"props":510,"children":511},{},[512],{"type":55,"value":513},"Analyze",{"type":55,"value":515}," the full report. Call ",{"type":50,"tag":71,"props":517,"children":519},{"className":518},[],[520],{"type":55,"value":140},{"type":55,"value":522}," and check ",{"type":50,"tag":71,"props":524,"children":526},{"className":525},[],[527],{"type":55,"value":528},"hardcodedPaths",{"type":55,"value":497},{"type":50,"tag":71,"props":531,"children":533},{"className":532},[],[534],{"type":55,"value":535},"externalCommands",{"type":55,"value":469},{"type":50,"tag":261,"props":538,"children":539},{},[540],{"type":50,"tag":265,"props":541,"children":542},{},[543,545,550,552,557,559,564],{"type":55,"value":544},"Non-empty ",{"type":50,"tag":71,"props":546,"children":548},{"className":547},[],[549],{"type":55,"value":535},{"type":55,"value":551}," → the skill is likely ",{"type":50,"tag":71,"props":553,"children":555},{"className":554},[],[556],{"type":55,"value":184},{"type":55,"value":558}," (v0.2 only emits ",{"type":50,"tag":71,"props":560,"children":562},{"className":561},[],[563],{"type":55,"value":168},{"type":55,"value":565},"; stop and tell the user).",{"type":50,"tag":265,"props":567,"children":568},{},[569,574,576,581,583,589],{"type":50,"tag":63,"props":570,"children":571},{},[572],{"type":55,"value":573},"Classify",{"type":55,"value":575},". Call ",{"type":50,"tag":71,"props":577,"children":579},{"className":578},[],[580],{"type":55,"value":157},{"type":55,"value":582},". In v0.2, proceed only if ",{"type":50,"tag":71,"props":584,"children":586},{"className":585},[],[587],{"type":55,"value":588},"tier === \"pure\"",{"type":55,"value":194},{"type":50,"tag":265,"props":591,"children":592},{},[593,598,599,605,606],{"type":50,"tag":63,"props":594,"children":595},{},[596],{"type":55,"value":597},"Convert",{"type":55,"value":575},{"type":50,"tag":71,"props":600,"children":602},{"className":601},[],[603],{"type":55,"value":604},"convert(source, target_dir)",{"type":55,"value":469},{"type":50,"tag":261,"props":607,"children":608},{},[609,638,666],{"type":50,"tag":265,"props":610,"children":611},{},[612,614,620,622,628,630,636],{"type":55,"value":613},"If the tool returns ",{"type":50,"tag":71,"props":615,"children":617},{"className":616},[],[618],{"type":55,"value":619},"ok: false",{"type":55,"value":621}," with ",{"type":50,"tag":71,"props":623,"children":625},{"className":624},[],[626],{"type":55,"value":627},"tier: \"abandon\"",{"type":55,"value":629}," or ",{"type":50,"tag":71,"props":631,"children":633},{"className":632},[],[634],{"type":55,"value":635},"tier: \"wrapped\"",{"type":55,"value":637},", stop and explain why.",{"type":50,"tag":265,"props":639,"children":640},{},[641,642,648,650,656,658,664],{"type":55,"value":477},{"type":50,"tag":71,"props":643,"children":645},{"className":644},[],[646],{"type":55,"value":647},"ok: true",{"type":55,"value":649},", read ",{"type":50,"tag":71,"props":651,"children":653},{"className":652},[],[654],{"type":55,"value":655},"target_dir\u002Fconversion-report.md",{"type":55,"value":657}," and surface the ",{"type":50,"tag":71,"props":659,"children":661},{"className":660},[],[662],{"type":55,"value":663},"warnings",{"type":55,"value":665}," array to the user verbatim.",{"type":50,"tag":265,"props":667,"children":668},{},[669,671,677,679,684],{"type":55,"value":670},"Skim ",{"type":50,"tag":71,"props":672,"children":674},{"className":673},[],[675],{"type":55,"value":676},"target_dir\u002FSKILL.md",{"type":55,"value":678},". If anything looks wrong (missing section, garbled encoding, broken path), tell the user ",{"type":50,"tag":63,"props":680,"children":681},{},[682],{"type":55,"value":683},"before",{"type":55,"value":685}," claiming success.",{"type":50,"tag":265,"props":687,"children":688},{},[689,694,696,702,704,710,712,718,719,724,725,731,732,738,740,746],{"type":50,"tag":63,"props":690,"children":691},{},[692],{"type":55,"value":693},"Lint feedback",{"type":55,"value":695},". The ",{"type":50,"tag":71,"props":697,"children":699},{"className":698},[],[700],{"type":55,"value":701},"convert",{"type":55,"value":703}," response already includes the ",{"type":50,"tag":71,"props":705,"children":707},{"className":706},[],[708],{"type":55,"value":709},"lint",{"type":55,"value":711}," object (",{"type":50,"tag":71,"props":713,"children":715},{"className":714},[],[716],{"type":55,"value":717},"ok",{"type":55,"value":178},{"type":50,"tag":71,"props":720,"children":722},{"className":721},[],[723],{"type":55,"value":71},{"type":55,"value":178},{"type":50,"tag":71,"props":726,"children":728},{"className":727},[],[729],{"type":55,"value":730},"stdout",{"type":55,"value":178},{"type":50,"tag":71,"props":733,"children":735},{"className":734},[],[736],{"type":55,"value":737},"stderr",{"type":55,"value":739},"). If ",{"type":50,"tag":71,"props":741,"children":743},{"className":742},[],[744],{"type":55,"value":745},"ok === false",{"type":55,"value":747},", surface the lint output and do not claim the conversion is done.",{"type":50,"tag":265,"props":749,"children":750},{},[751,756,758,764],{"type":50,"tag":63,"props":752,"children":753},{},[754],{"type":55,"value":755},"Tell the user",{"type":55,"value":757}," what was written, what to review, and how to use the new skill. Suggest ",{"type":50,"tag":71,"props":759,"children":761},{"className":760},[],[762],{"type":55,"value":763},"skill({name: \"\u003Cconverted-name>\"})",{"type":55,"value":765}," to verify it loads.",{"type":50,"tag":254,"props":767,"children":769},{"id":768},"output-contract",[770],{"type":55,"value":771},"Output contract",{"type":50,"tag":261,"props":773,"children":774},{},[775],{"type":50,"tag":265,"props":776,"children":777},{},[778,780,785,787],{"type":55,"value":779},"A directory at ",{"type":50,"tag":71,"props":781,"children":783},{"className":782},[],[784],{"type":55,"value":217},{"type":55,"value":786}," containing at minimum:\n",{"type":50,"tag":261,"props":788,"children":789},{},[790,800,811],{"type":50,"tag":265,"props":791,"children":792},{},[793,798],{"type":50,"tag":71,"props":794,"children":796},{"className":795},[],[797],{"type":55,"value":243},{"type":55,"value":799}," — mavis-schema-compliant",{"type":50,"tag":265,"props":801,"children":802},{},[803,809],{"type":50,"tag":71,"props":804,"children":806},{"className":805},[],[807],{"type":55,"value":808},"conversion-report.md",{"type":55,"value":810}," — what was changed",{"type":50,"tag":265,"props":812,"children":813},{},[814,816,822],{"type":55,"value":815},"optionally ",{"type":50,"tag":71,"props":817,"children":819},{"className":818},[],[820],{"type":55,"value":821},"references\u002F\u003Ctopic>.md",{"type":55,"value":823}," if the body was split",{"type":50,"tag":57,"props":825,"children":826},{},[827,829,834,836,841],{"type":55,"value":828},"The server replaces ",{"type":50,"tag":71,"props":830,"children":832},{"className":831},[],[833],{"type":55,"value":217},{"type":55,"value":835}," 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 ",{"type":50,"tag":71,"props":837,"children":839},{"className":838},[],[840],{"type":55,"value":217},{"type":55,"value":842}," is always safe.",{"type":50,"tag":254,"props":844,"children":846},{"id":845},"failure-handling",[847],{"type":55,"value":848},"Failure handling",{"type":50,"tag":261,"props":850,"children":851},{},[852,871,896,922,932],{"type":50,"tag":265,"props":853,"children":854},{},[855,861,863,869],{"type":50,"tag":71,"props":856,"children":858},{"className":857},[],[859],{"type":55,"value":860},"tier: abandon",{"type":55,"value":862}," from ",{"type":50,"tag":71,"props":864,"children":866},{"className":865},[],[867],{"type":55,"value":868},"classify",{"type":55,"value":870}," → do not write; explain the reason to the user.",{"type":50,"tag":265,"props":872,"children":873},{},[874,880,882,887,889,895],{"type":50,"tag":71,"props":875,"children":877},{"className":876},[],[878],{"type":55,"value":879},"tier: wrapped",{"type":55,"value":881}," in v0.2 → tell the user the server only supports ",{"type":50,"tag":71,"props":883,"children":885},{"className":884},[],[886],{"type":55,"value":168},{"type":55,"value":888}," right now; v0.3 will add ",{"type":50,"tag":71,"props":890,"children":892},{"className":891},[],[893],{"type":55,"value":894},"wrapped",{"type":55,"value":194},{"type":50,"tag":265,"props":897,"children":898},{},[899,905,907,913,914,920],{"type":50,"tag":71,"props":900,"children":902},{"className":901},[],[903],{"type":55,"value":904},"lint.ok === false",{"type":55,"value":906}," → do not claim success; show the ",{"type":50,"tag":71,"props":908,"children":910},{"className":909},[],[911],{"type":55,"value":912},"lint.stdout",{"type":55,"value":497},{"type":50,"tag":71,"props":915,"children":917},{"className":916},[],[918],{"type":55,"value":919},"lint.stderr",{"type":55,"value":921}," verbatim.",{"type":50,"tag":265,"props":923,"children":924},{},[925,930],{"type":50,"tag":71,"props":926,"children":928},{"className":927},[],[929],{"type":55,"value":483},{"type":55,"value":931}," → ask the user to confirm the source is genuinely UTF-8 before writing.",{"type":50,"tag":265,"props":933,"children":934},{},[935],{"type":55,"value":936},"Target already exists → atomic replace happens by default; only ask the user if you want to confirm before overwriting.",{"type":50,"tag":254,"props":938,"children":940},{"id":939},"examples",[941],{"type":55,"value":942},"Examples",{"type":50,"tag":57,"props":944,"children":945},{},[946,951,953],{"type":50,"tag":63,"props":947,"children":948},{},[949],{"type":55,"value":950},"Input",{"type":55,"value":952},": ",{"type":50,"tag":71,"props":954,"children":956},{"className":955},[],[957],{"type":55,"value":958},"\u002Fpath\u002Fto\u002Fopenclaw\u002Fskills\u002Ftask-tracker",{"type":50,"tag":57,"props":960,"children":961},{},[962,967],{"type":50,"tag":63,"props":963,"children":964},{},[965],{"type":55,"value":966},"Good path",{"type":55,"value":968},":",{"type":50,"tag":442,"props":970,"children":971},{},[972,991,1009,1025],{"type":50,"tag":265,"props":973,"children":974},{},[975,981,983,989],{"type":50,"tag":71,"props":976,"children":978},{"className":977},[],[979],{"type":55,"value":980},"detect(...)",{"type":55,"value":982}," → ",{"type":50,"tag":71,"props":984,"children":986},{"className":985},[],[987],{"type":55,"value":988},"utf-8",{"type":55,"value":990},", no replacement.",{"type":50,"tag":265,"props":992,"children":993},{},[994,1000,1001,1007],{"type":50,"tag":71,"props":995,"children":997},{"className":996},[],[998],{"type":55,"value":999},"classify(...)",{"type":55,"value":982},{"type":50,"tag":71,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":55,"value":1006},"pure \u002F pure-wrapped-fix",{"type":55,"value":1008}," (one hardcoded path group).",{"type":50,"tag":265,"props":1010,"children":1011},{},[1012,1017,1018,1023],{"type":50,"tag":71,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":55,"value":604},{"type":55,"value":982},{"type":50,"tag":71,"props":1019,"children":1021},{"className":1020},[],[1022],{"type":55,"value":647},{"type":55,"value":1024},", two warnings about path parameterization.",{"type":50,"tag":265,"props":1026,"children":1027},{},[1028,1030,1036],{"type":55,"value":1029},"Confirm ",{"type":50,"tag":71,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":55,"value":1035},"lint.ok === true",{"type":55,"value":1037},", surface the two warnings to the user.",{"type":50,"tag":57,"props":1039,"children":1040},{},[1041,1046,1048,1053,1055,1060],{"type":50,"tag":63,"props":1042,"children":1043},{},[1044],{"type":55,"value":1045},"Bad path",{"type":55,"value":1047},": copy the ",{"type":50,"tag":71,"props":1049,"children":1051},{"className":1050},[],[1052],{"type":55,"value":243},{"type":55,"value":1054}," to ",{"type":50,"tag":71,"props":1056,"children":1058},{"className":1057},[],[1059],{"type":55,"value":405},{"type":55,"value":1061}," 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.",{"type":50,"tag":254,"props":1063,"children":1065},{"id":1064},"additional-resources",[1066],{"type":55,"value":1067},"Additional resources",{"type":50,"tag":261,"props":1069,"children":1070},{},[1071,1082,1093,1113],{"type":50,"tag":265,"props":1072,"children":1073},{},[1074,1080],{"type":50,"tag":71,"props":1075,"children":1077},{"className":1076},[],[1078],{"type":55,"value":1079},"references\u002Fcompatibility-matrix.md",{"type":55,"value":1081}," — known openclaw skills and their tier",{"type":50,"tag":265,"props":1083,"children":1084},{},[1085,1091],{"type":50,"tag":71,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":55,"value":1090},"references\u002Fpath-patterns.md",{"type":55,"value":1092}," — the hardcoded path patterns we replace",{"type":50,"tag":265,"props":1094,"children":1095},{},[1096,1098,1103,1105,1111],{"type":55,"value":1097},"The MCP server itself: see ",{"type":50,"tag":71,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":55,"value":76},{"type":55,"value":1104}," + ",{"type":50,"tag":71,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":55,"value":1110},"server.mjs",{"type":55,"value":1112}," in the plugin root",{"type":50,"tag":265,"props":1114,"children":1115},{},[1116,1118],{"type":55,"value":1117},"The plan that produced this skill: see the plugin's ",{"type":50,"tag":71,"props":1119,"children":1121},{"className":1120},[],[1122],{"type":55,"value":1123},"README.md",{"items":1125,"total":1326},[1126,1150,1166,1185,1200,1220,1238,1256,1271,1287,1306,1316],{"slug":1127,"name":1127,"fn":1128,"description":1129,"org":1130,"tags":1131,"stars":1147,"repoUrl":1148,"updatedAt":1149},"android-native-dev","develop Android native applications","Android native application development and UI design guide. Covers Material Design 3, Kotlin\u002FCompose development, project configuration, accessibility, and build troubleshooting. Read this before Android native application development.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1132,1135,1138,1141,1144],{"name":1133,"slug":1134,"type":16},"Accessibility","accessibility",{"name":1136,"slug":1137,"type":16},"Android","android",{"name":1139,"slug":1140,"type":16},"Kotlin","kotlin",{"name":1142,"slug":1143,"type":16},"Mobile","mobile",{"name":1145,"slug":1146,"type":16},"UI Components","ui-components",13030,"https:\u002F\u002Fgithub.com\u002FMiniMax-AI\u002Fskills","2026-07-13T06:16:54.247834",{"slug":1151,"name":1151,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":1147,"repoUrl":1148,"updatedAt":1165},"buddy-sings","generate singing performances for AI companions","Use when user wants their Claude Code pet (\u002Fbuddy) to sing a song. Triggers on any request that combines the concept of their Claude Code buddy, pet, or companion with singing or music. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1156,1159,1162],{"name":1157,"slug":1158,"type":16},"Agents","agents",{"name":1160,"slug":1161,"type":16},"Audio","audio",{"name":1163,"slug":1164,"type":16},"Creative","creative","2026-07-13T06:16:35.130644",{"slug":1167,"name":1167,"fn":1168,"description":1169,"org":1170,"tags":1171,"stars":1147,"repoUrl":1148,"updatedAt":1184},"color-font-skill","select color palettes and font pairings","Choose presentation-ready color palettes and font pairings for PPT\u002Fdesign tasks. Use when users ask for visual theme choices, brand-safe palettes, or font recommendations. Triggers include: 配色, 色板, 字体, color palette, font, PPT配色, 字体搭配.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1172,1175,1178,1181],{"name":1173,"slug":1174,"type":16},"Design","design",{"name":1176,"slug":1177,"type":16},"Presentations","presentations",{"name":1179,"slug":1180,"type":16},"Themes","themes",{"name":1182,"slug":1183,"type":16},"Typography","typography","2026-07-13T06:17:02.785587",{"slug":1186,"name":1186,"fn":1187,"description":1188,"org":1189,"tags":1190,"stars":1147,"repoUrl":1148,"updatedAt":1199},"design-style-skill","select visual design systems for presentations","Select a consistent visual design system for PPT slides using radius\u002Fspacing style recipes. Use when users ask for overall style direction or component styling consistency. Includes Sharp\u002FSoft\u002FRounded\u002FPill recipes, component mappings, typography\u002Fspacing rules, and mixing guidance. Triggers: 风格, style, radius, spacing, 圆角, 间距, PPT风格, 视觉风格, design style, component style.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1191,1192,1195,1198],{"name":1173,"slug":1174,"type":16},{"name":1193,"slug":1194,"type":16},"Design System","design-system",{"name":1196,"slug":1197,"type":16},"PowerPoint","powerpoint",{"name":1176,"slug":1177,"type":16},"2026-07-13T06:17:10.398389",{"slug":1201,"name":1201,"fn":1202,"description":1203,"org":1204,"tags":1205,"stars":1147,"repoUrl":1148,"updatedAt":1219},"flutter-dev","build cross-platform apps with Flutter","Flutter cross-platform development guide covering widget patterns, Riverpod\u002FBloc state management, GoRouter navigation, performance optimization, and platform-specific implementations. Includes const optimization, responsive layouts, testing strategies, and DevTools profiling.\nUse when: building Flutter apps, implementing state management (Riverpod\u002FBloc), setting up GoRouter navigation, creating custom widgets, optimizing performance, writing widget tests, cross-platform development.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1206,1209,1212,1213,1216],{"name":1207,"slug":1208,"type":16},"Dart","dart",{"name":1210,"slug":1211,"type":16},"Flutter","flutter",{"name":1142,"slug":1143,"type":16},{"name":1214,"slug":1215,"type":16},"Performance","performance",{"name":1217,"slug":1218,"type":16},"State Management","state-management","2026-07-13T06:16:36.626679",{"slug":1221,"name":1221,"fn":1222,"description":1223,"org":1224,"tags":1225,"stars":1147,"repoUrl":1148,"updatedAt":1237},"frontend-dev","build visually striking frontend web pages","Full-stack frontend development combining premium UI design, cinematic animations,\nAI-generated media assets, persuasive copywriting, and visual art. Builds complete,\nvisually striking web pages with real media, advanced motion, and compelling copy.\nUse when: building landing pages, marketing sites, product pages, dashboards,\ngenerating media assets (image\u002Fvideo\u002Faudio\u002Fmusic), writing conversion copy,\ncreating generative art, or implementing cinematic scroll animations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1226,1229,1230,1231,1234],{"name":1227,"slug":1228,"type":16},"Animation","animation",{"name":1163,"slug":1164,"type":16},{"name":1173,"slug":1174,"type":16},{"name":1232,"slug":1233,"type":16},"Frontend","frontend",{"name":1235,"slug":1236,"type":16},"Web Development","web-development","2026-07-13T06:16:39.108827",{"slug":1239,"name":1239,"fn":1240,"description":1241,"org":1242,"tags":1243,"stars":1147,"repoUrl":1148,"updatedAt":1255},"fullstack-dev","build full-stack web applications","Full-stack backend architecture and frontend-backend integration guide.\nTRIGGER when: building a full-stack app, creating REST API with frontend, scaffolding backend service,\nbuilding todo app, building CRUD app, building real-time app, building chat app,\nExpress + React, Next.js API, Node.js backend, Python backend, Go backend,\ndesigning service layers, implementing error handling, managing config\u002Fauth,\nsetting up API clients, implementing auth flows, handling file uploads,\nadding real-time features (SSE\u002FWebSocket), hardening for production.\nDO NOT TRIGGER when: pure frontend UI work, pure CSS\u002Fstyling, database schema only.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1244,1247,1248,1251,1254],{"name":1245,"slug":1246,"type":16},"Backend","backend",{"name":1232,"slug":1233,"type":16},{"name":1249,"slug":1250,"type":16},"Full-stack","full-stack",{"name":1252,"slug":1253,"type":16},"REST API","rest-api",{"name":1235,"slug":1236,"type":16},"2026-07-13T06:16:43.219005",{"slug":1257,"name":1257,"fn":1258,"description":1259,"org":1260,"tags":1261,"stars":1147,"repoUrl":1148,"updatedAt":1270},"gif-sticker-maker","create animated GIF stickers from photos","Convert photos (people, pets, objects, logos) into 4 animated GIF stickers with captions.\nUse when: user wants to create cartoon stickers, GIF expressions, emoji packs, animated avatars,\nor convert photos to Funko Pop \u002F Pop Mart blind box style animations.\nTriggers: sticker, GIF, cartoon, emoji, expression pack, avatar animation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1262,1263,1264,1267],{"name":1227,"slug":1228,"type":16},{"name":1163,"slug":1164,"type":16},{"name":1265,"slug":1266,"type":16},"Images","images",{"name":1268,"slug":1269,"type":16},"Media","media","2026-07-13T06:16:51.74461",{"slug":1272,"name":1272,"fn":1273,"description":1274,"org":1275,"tags":1276,"stars":1147,"repoUrl":1148,"updatedAt":1286},"ios-application-dev","develop iOS applications with SwiftUI and UIKit","iOS application development guide covering UIKit, SnapKit, and SwiftUI. Includes touch targets, safe areas, navigation patterns, Dynamic Type, Dark Mode, accessibility, collection views, common UI components, and SwiftUI design guidelines. For detailed references on specific topics, see the reference files.\nUse when: developing iOS apps, implementing UI, reviewing iOS code, working with UIKit\u002FSnapKit\u002FSwiftUI layouts, building iPhone interfaces, Swift mobile development, Apple HIG compliance, iOS accessibility implementation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1277,1278,1281,1282,1285],{"name":1133,"slug":1134,"type":16},{"name":1279,"slug":1280,"type":16},"iOS","ios",{"name":1142,"slug":1143,"type":16},{"name":1283,"slug":1284,"type":16},"SwiftUI","swiftui",{"name":1145,"slug":1146,"type":16},"2026-07-13T06:16:55.686092",{"slug":1288,"name":1288,"fn":1289,"description":1290,"org":1291,"tags":1292,"stars":1147,"repoUrl":1148,"updatedAt":1305},"minimax-docx","create and edit DOCX documents","Professional DOCX document creation, editing, and formatting using OpenXML SDK (.NET). Three pipelines: (A) create new documents from scratch, (B) fill\u002Fedit content in existing documents, (C) apply template formatting with XSD validation gate-check. MUST use this skill whenever the user wants to produce, modify, or format a Word document — including when they say \"write a report\", \"draft a proposal\", \"make a contract\", \"fill in this form\", \"reformat to match this template\", or any task whose final output is a .docx file. Even if the user doesn't mention \"docx\" explicitly, if the task implies a printable\u002Fformal document, use this skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1293,1296,1299,1302],{"name":1294,"slug":1295,"type":16},"Documents","documents",{"name":1297,"slug":1298,"type":16},"DOCX","docx",{"name":1300,"slug":1301,"type":16},"Office","office",{"name":1303,"slug":1304,"type":16},"Templates","templates","2026-07-13T06:16:40.461868",{"slug":1307,"name":1307,"fn":1308,"description":1309,"org":1310,"tags":1311,"stars":1147,"repoUrl":1148,"updatedAt":1315},"minimax-music-gen","generate music and audio tracks","Use when user wants to generate music, songs, or audio tracks. Triggers on any request involving music creation, song writing, lyrics generation, audio production, or covers. Also triggers when user provides lyrics and wants them turned into a song, or describes a mood\u002Fscene and wants background music. Supports multilingual triggers — match equivalent phrases in any language. Do NOT use for music playback of existing files, music theory questions, or music recommendation without generation.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1312,1313,1314],{"name":1160,"slug":1161,"type":16},{"name":1163,"slug":1164,"type":16},{"name":1268,"slug":1269,"type":16},"2026-07-13T06:16:50.381758",{"slug":1317,"name":1317,"fn":1318,"description":1319,"org":1320,"tags":1321,"stars":1147,"repoUrl":1148,"updatedAt":1325},"minimax-music-playlist","generate personalized music playlists","Generate personalized music playlists by analyzing the user's music taste and generation feedback history. Triggers on any request involving playlist generation, music taste profiling, or personalized music recommendations. Supports multilingual triggers — match equivalent phrases in any language.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1322,1323,1324],{"name":1160,"slug":1161,"type":16},{"name":1163,"slug":1164,"type":16},{"name":1268,"slug":1269,"type":16},"2026-07-13T06:16:57.002997",141,{"items":1328,"total":1423},[1329,1343,1360,1371,1382,1395,1404],{"slug":1330,"name":1330,"fn":1331,"description":1332,"org":1333,"tags":1334,"stars":26,"repoUrl":27,"updatedAt":1342},"article2tasks","convert articles into Dida365 tasks","将技术周报（批量）或单篇文章整理为滴答清单待办事项，自动分类到已有清单并打标签，全程通过 MCP 写入，跨平台无需任何本地脚本。当用户提供周报内容、文章链接，或提及「周报」「文章汇总」「添加到滴答」时，使用此技能。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1335,1338,1339],{"name":1336,"slug":1337,"type":16},"Content Creation","content-creation",{"name":18,"slug":19,"type":16},{"name":1340,"slug":1341,"type":16},"Task Management","task-management","2026-08-18T03:49:38.751656",{"slug":1344,"name":1344,"fn":1345,"description":1346,"org":1347,"tags":1348,"stars":26,"repoUrl":27,"updatedAt":1359},"binder-agent-eval","evaluate LLM agent decision quality","当需要在相同的阶段输入上评测 LLM agent 的结构化决策、或对比多个 provider 的决策质量时使用；对应 openbinder evaluate-agent（--provider\u002F--compare\u002F--case）与 openbinder provider doctor。典型触发语：\"用 mock provider 跑一遍 decision case 评测\"\"对比一下几个 provider 在同一批 case 上的表现\"\"先 doctor 一下 minimax 配置通不通\"。同义场景：agent 评测、decision evaluation、visible\u002Fhidden 分层、泄露检查、provider 对比、冻结决策。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1349,1350,1353,1356],{"name":1157,"slug":1158,"type":16},{"name":1351,"slug":1352,"type":16},"Benchmarking","benchmarking",{"name":1354,"slug":1355,"type":16},"Evals","evals",{"name":1357,"slug":1358,"type":16},"LLM","llm","2026-08-27T13:32:30.156635",{"slug":1361,"name":1361,"fn":1362,"description":1363,"org":1364,"tags":1365,"stars":26,"repoUrl":27,"updatedAt":1370},"binder-handoff","export and validate binder task packages","当需要把 binder 设计算力任务打包交给外部平台（Claude Science 或自有服务器）、或校验\u002F导入外部返回的结果包时使用；对应 openbinder handoff export\u002Fvalidate\u002Fimport。典型触发语：\"把这个 target 打包成 handoff 任务包\"\"校验一下对方返回的 result package\"\"把外部算回来的结果导入进来\"。同义场景：external handoff、任务包导出、结果包校验、回传包导入、RUNBOOK。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1366,1367],{"name":14,"slug":15,"type":16},{"name":1368,"slug":1369,"type":16},"Data Engineering","data-engineering","2026-08-27T13:32:32.957864",{"slug":1372,"name":1372,"fn":1373,"description":1374,"org":1375,"tags":1376,"stars":26,"repoUrl":27,"updatedAt":1381},"binder-protocol","compile and validate binder design protocols","当需要把 binder 设计协议草稿编译成结构化 protocol.yaml、校验协议、或按阶段切出 stage slice 时使用；对应 openbinder protocol validate\u002Fcompile\u002Fshow 三个子命令。典型触发语：\"把这份 protocol 草稿编译一下\"\"校验这个 protocol.yaml\"\"把 cofold_scoring 阶段的切片拿出来\"。同义场景：协议编译、protocol compiler、十阶段、stage slice、阶段上下文、protocol validate。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1377,1378],{"name":14,"slug":15,"type":16},{"name":1379,"slug":1380,"type":16},"YAML","yaml","2026-08-27T13:32:33.760978",{"slug":1383,"name":1383,"fn":1384,"description":1385,"org":1386,"tags":1387,"stars":26,"repoUrl":27,"updatedAt":1394},"binder-ranking-audit","audit binder campaign ranking results","当需要重算并审计 binder campaign 的候选排序、核对 recorded 与 recomputed 是否一致时使用；对应 openbinder audit-ranking（--fixture\u002F--source）。典型触发语：\"审计一下这个 campaign 的排序\"\"recorded 和 recomputed 对得上吗\"\"重算 top-N 命中率和 Spearman\"。同义场景：ranking audit、排序审计、ensemble 重算、hit rate、缺失数据处理、missing data 报告。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1388,1391],{"name":1389,"slug":1390,"type":16},"Data Analysis","data-analysis",{"name":1392,"slug":1393,"type":16},"QA","qa","2026-08-27T13:32:34.155444",{"slug":1396,"name":1396,"fn":1397,"description":1398,"org":1399,"tags":1400,"stars":26,"repoUrl":27,"updatedAt":1403},"binder-replay","replay binder design campaigns","当需要回放已记录的 binder 设计 campaign、重现每一步\"当时知道什么、决定了什么\"时使用；对应 openbinder replay（--fixture\u002F--events\u002F--source）。典型触发语：\"帮我回放一下 IL-7Ra 的 binder campaign\"\"回放那个失败的 campaign\"\"看看当时每一步都知道了什么\"。同义场景：campaign replay、事件流回放、replay report、gap 分析、时间线重建。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1401,1402],{"name":14,"slug":15,"type":16},{"name":1389,"slug":1390,"type":16},"2026-08-27T13:32:33.346398",{"slug":1405,"name":1405,"fn":1406,"description":1407,"org":1408,"tags":1409,"stars":26,"repoUrl":27,"updatedAt":1422},"binder-report","generate final reports from agent artifacts","当需要把 output\u002F 下已产生的 replay、agent 评测、ranking 审计产物汇总成最终报告束时使用；收集既有 artifact、按六类证据分级标注、生成 limitations 并提交 stage-gate 审批。典型触发语：\"把这些产物汇总成最终报告\"\"出一份 binder 最终报告和 limitations\"\"把 replay\u002F评测\u002F审计结果打包成报告束\"。同义场景：最终报告、报告束、evidence grading、limitations、claim check、收尾报告。",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1410,1413,1416,1419],{"name":1411,"slug":1412,"type":16},"Documentation","documentation",{"name":1414,"slug":1415,"type":16},"Operations","operations",{"name":1417,"slug":1418,"type":16},"Reporting","reporting",{"name":1420,"slug":1421,"type":16},"Summarization","summarization","2026-08-27T13:32:26.101404",93]