[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K176KYPNC91BMWXWMREJ7F":3,"skill-same:01M6K176KYPNC91BMWXWMREJ7F":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6K176KYPNC91BMWXWMREJ7F","xiao",null,"Control a Xiaomi Robot Vacuum X20+ (model xiaomi.vacuum.c102gl) through the `xiao` CLI. Use this skill whenever the user mentions anything vacuum-related: robot vacuum, Xiaomi, Roborock, cleaning the house, mopping, sweeping, dock, base station, consumables (brush, filter, mop pad), rooms, map, zones, DND mode, fan speed, vacuum status, battery, cleaning schedule. Also trigger on Spanish equivalents (aspiradora, limpiar, trapear, cargar, habitaciones, cepillo, filtro, base, programar limpieza) and casual phrasings (limpia la casa, pon la aspiradora, qué batería tiene, mándala al dock). When in doubt, trigger — the CLI handles all vacuum ops.","dacrypt\u002Fxiao","dacrypt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F30375021?v=4","01M6K16WASYB13YBX8Z2VGSZP0","David Velásquez","01M6K16WH0M4VMZNGDQPRDD8NV",2,"MIT","https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fscripts\u002Fskills-sh\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"battery","vacuum","robot vacuum","cli","brush","filter","schedule","dnd","robot","ops","use","map","speed","mode","trigger","xiaomi","model","roborock","spanish","2026-11-10 10:12:30",false,"---\nname: xiao\ndescription: >\n  Control a Xiaomi Robot Vacuum X20+ (model xiaomi.vacuum.c102gl) through the `xiao`\n  CLI. Use this skill whenever the user mentions anything vacuum-related: robot\n  vacuum, Xiaomi, Roborock, cleaning the house, mopping, sweeping, dock, base\n  station, consumables (brush, filter, mop pad), rooms, map, zones, DND mode, fan\n  speed, vacuum status, battery, cleaning schedule. Also trigger on Spanish\n  equivalents (aspiradora, limpiar, trapear, cargar, habitaciones, cepillo,\n  filtro, base, programar limpieza) and casual phrasings (limpia la casa, pon la\n  aspiradora, qué batería tiene, mándala al dock). When in doubt, trigger — the\n  CLI handles all vacuum ops.\n---\n\n# xiao — Xiaomi Vacuum CLI Skill\n\nThe `xiao` CLI controls a Xiaomi Robot Vacuum X20+ via Xiaomi Cloud. Full\nreference lives in [`AGENTS.md`](..\u002F..\u002F..\u002FAGENTS.md) at the repo root — **read\nthat first** for canonical commands, intent mapping, and error recovery.\n\n## Prerequisites\n\nBefore any command will succeed:\n\n1. `pip install xiao-cli && playwright install chromium` (once per machine).\n2. `xiao setup cloud` completed — produces `config.toml`.\n3. `xiao setup browser-login` run once — the user logs into\n   `account.xiaomi.com` in the Chromium window it opens; xiao keeps that\n   session in a private profile so token refresh is silent afterwards.\n\n## Workflow for any user request\n\n1. **Parse intent.** Check the \"Intent mapping\" table in `AGENTS.md`.\n2. **Resolve room IDs** with `xiao map rooms` before any `xiao clean -r \u003Cid>`.\n   Never guess. IDs are per-vacuum and regenerate when the Xiaomi Home app\n   re-maps the house.\n3. **Run the command.** Prefer `--json` for status-type commands so you can\n   parse deterministically:\n   ```bash\n   xiao status --json\n   xiao consumables --json\n   ```\n4. **On error**, apply the recovery protocol in `AGENTS.md#error-recovery`\n   before asking the user:\n   - Exit `77` or stderr contains `token`\u002F`401` → retry once; if still bad,\n     `xiao cloud-login` and retry.\n   - Exit `2` or stderr says \"Cloud mode enabled but not configured\" → guide\n     user through `xiao setup cloud`.\n   - Exit `77` again after `cloud-login` → ask the user to run\n     `xiao setup browser-login` and log in once.\n   - Exit `1` + \"rejected by the vacuum (code N)\" → check `xiao status`\n     (docked? error? state 21?) before retrying.\n   - Exit `80` → the room clean was accepted but the robot stayed docked;\n     re-check room IDs, then offer `xiao start`.\n   - State 21 \u002F \"WashingMopPause\" → user must refill clean water \u002F empty\n     dirty water, then `xiao start`.\n\n## Exit codes (agent-meaningful)\n\n| Code | Meaning | Action |\n|---|---|---|\n| `0` | Success | Continue |\n| `2` | Not configured | Run `xiao setup cloud` |\n| `77` | Cloud auth failed | Run `xiao cloud-login` |\n| `80` | Room clean accepted but robot didn't leave the dock | Re-check IDs, fall back to `xiao start` |\n| Other non-zero | Generic failure | Parse stderr \u002F ask user |\n\n## Hard rules\n\n- **Never** print or commit the contents of `config.toml` — it holds the user's\n  Xiaomi password (plain text) and live service tokens.\n- **Never** call `xiao raw` unless the user explicitly asks. It's an unchecked\n  escape hatch into MIoT that can brick settings.\n- **Always** verify room IDs with `xiao map rooms` before using them in a\n  `clean -r` call.\n- In cloud mode `xiao pause` **stops** the job (no true pause on the X20+) and\n  `xiao clean -s` (spot) is unsupported — tell the user instead of improvising.\n- `xiao start` always triggers a mop wash first. Warn the user if they asked\n  for sweep-only; there's no flag to skip the wash.\n","# xiao — Xiaomi Vacuum CLI Skill\n\nThe `xiao` CLI controls a Xiaomi Robot Vacuum X20+ via Xiaomi Cloud. Full\nreference lives in [`AGENTS.md`](..\u002F..\u002F..\u002FAGENTS.md) at the repo root — **read\nthat first** for canonical commands, intent mapping, and error recovery.\n\n## Prerequisites\n\nBefore any command will succeed:\n\n1. `pip install xiao-cli && playwright install chromium` (once per machine).\n2. `xiao setup cloud` completed — produces `config.toml`.\n3. `xiao setup browser-login` run once — the user logs into\n   `account.xiaomi.com` in the Chromium window it opens; xiao keeps that\n   session in a private profile so token refresh is silent afterwards.\n\n## Workflow for any user request\n\n1. **Parse intent.** Check the \"Intent mapping\" table in `AGENTS.md`.\n2. **Resolve room IDs** with `xiao map rooms` before any `xiao clean -r \u003Cid>`.\n   Never guess. IDs are per-vacuum and regenerate when the Xiaomi Home app\n   re-maps the house.\n3. **Run the command.** Prefer `--json` for status-type commands so you can\n   parse deterministically:\n   ```bash\n   xiao status --json\n   xiao consumables --json\n   ```\n4. **On error**, apply the recovery protocol in `AGENTS.md#error-recovery`\n   before asking the user:\n   - Exit `77` or stderr contains `token`\u002F`401` → retry once; if still bad,\n     `xiao cloud-login` and retry.\n   - Exit `2` or stderr says \"Cloud mode enabled but not configured\" → guide\n     user through `xiao setup cloud`.\n   - Exit `77` again after `cloud-login` → ask the user to run\n     `xiao setup browser-login` and log in once.\n   - Exit `1` + \"rejected by the vacuum (code N)\" → check `xiao status`\n     (docked? error? state 21?) before retrying.\n   - Exit `80` → the room clean was accepted but the robot stayed docked;\n     re-check room IDs, then offer `xiao start`.\n   - State 21 \u002F \"WashingMopPause\" → user must refill clean water \u002F empty\n     dirty water, then `xiao start`.\n\n## Exit codes (agent-meaningful)\n\n| Code | Meaning | Action |\n|---|---|---|\n| `0` | Success | Continue |\n| `2` | Not configured | Run `xiao setup cloud` |\n| `77` | Cloud auth failed | Run `xiao cloud-login` |\n| `80` | Room clean accepted but robot didn't leave the dock | Re-check IDs, fall back to `xiao start` |\n| Other non-zero | Generic failure | Parse stderr \u002F ask user |\n\n## Hard rules\n\n- **Never** print or commit the contents of `config.toml` — it holds the user's\n  Xiaomi password (plain text) and live service tokens.\n- **Never** call `xiao raw` unless the user explicitly asks. It's an unchecked\n  escape hatch into MIoT that can brick settings.\n- **Always** verify room IDs with `xiao map rooms` before using them in a\n  `clean -r` call.\n- In cloud mode `xiao pause` **stops** the job (no true pause on the X20+) and\n  `xiao clean -s` (spot) is unsupported — tell the user instead of improvising.\n- `xiao start` always triggers a mop wash first. Warn the user if they asked\n  for sweep-only; there's no flag to skip the wash.\n",{"name":5,"description":7},"main","1cad4e2a4397739bda799e02e3dc9294f890ec84","scripts\u002Fskills-sh",1,"https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao","https:\u002F\u002Fgithub.com\u002Fdacrypt","2026-11-05 08:01:33",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add dacrypt\u002Fxiao --skill xiao",{"tool":61,"command":62},"bunx","bunx skills add dacrypt\u002Fxiao --skill xiao",{"tool":64,"command":65},"pnpm","pnpm dlx skills add dacrypt\u002Fxiao --skill xiao","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fscripts\u002Fskills-sh\u002FSKILL.md",true,[69,75,79],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"AGENTS.md","REFERENCE","参考文档",10039,"https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fscripts\u002Fskills-sh\u002FAGENTS.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"package.json",803,"https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fscripts\u002Fskills-sh\u002Fpackage.json",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"README.md",1470,"https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fscripts\u002Fskills-sh\u002FREADME.md",[84,90],{"skillNo":85,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":89,"publishedAt":43},"01M6K17CNQ15WNEA5SVJ6GXT29","https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002Fskills\u002Fxiao\u002FSKILL.md",[88],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[5],{"skillNo":91,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":43},"01M6K16ZCB5XXRK516D92SNNAA","https:\u002F\u002Fgithub.com\u002Fdacrypt\u002Fxiao\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fxiao\u002FSKILL.md",[94],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]]