[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DTQ1TAD7RHXQ65RRKW468N":3,"skill-same:01M6DTQ1TAD7RHXQ65RRKW468N":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6DTQ1TAD7RHXQ65RRKW468N","video-subtitles",null,"Generate timed subtitles from video or audio, translate their text, and burn subtitles into a new video. Use for captions, SRT, video subtitles, or adding translated subtitles in Sudowork desktop or WebUI cloud conversations.","sudoprivacy\u002Fsudowork","sudoprivacy","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F115790070?v=4","01M6DTPA1KMM1JSSJBNE9FGG5Q","01M6DTPA5PQ2F3S9CVXH1TQ4RT",10,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"subtitles","Video","video subtitles","text","new","for","srt","conversations","burn","webui","use","translate","Captions","Audio","cloud","desktop","generate","2026-11-10 10:12:30",false,"---\nname: minimax-401-diagnostic\ndescription: Diagnose MiniMax 401 auth errors in AO workers. A redacted or invalid MINIMAX_API_KEY is one possible cause; verify current provider errors and configuration before identifying the cause or changing settings.\nwhen_to_use: \"Use when: (1) an AO worker tmux pane shows 'Please run \u002Flogin · API Error: 401' or 'login fail: carry the API secret key', (2) worker is stuck waiting for input despite having 'minimax' model config, (3) \u002Fms surfaces another 401 incident. Do NOT use for general auth issues — this skill is specifically for the MiniMax proxy 401 + \u002Flogin prompt stall pattern.\"\nallowed-tools: [\"Bash\", \"Read\", \"Write\", \"Edit\"]\ncontext: \"A redacted or invalid MINIMAX_API_KEY in the launchd configuration is one known cause of 401 errors. A \u002Flogin prompt may follow a provider 401, but verify the current response and configuration before concluding that credentials or model routing caused it. Do not swap models as a substitute for diagnosis.\"\n---\n\n# MiniMax 401 Diagnostic\n\n## Common symptom pattern\n\nThis sequence is one possible failure pattern; verify each step from current\nprovider output and worker configuration.\n\n1. AO worker starts → hits MiniMax proxy → proxy returns `401 Unauthorized`\n2. Claude Code intercepts 401 → shows `\u002Flogin` prompt in tmux pane\n3. Worker appears to hang (\"waiting for input\") but is actually blocked on `\u002Flogin`\n4. `tmux capture-pane` shows: `Please run \u002Flogin · API Error: 401` or `login fail: carry the API secret key in the 'Authorization' field`\n5. Config shows `agent: minimax` or `model: MiniMax-M2.7` — this alone does not establish the cause\n\n## Quick Diagnosis\n\n### Step 0 — Plist template check (do this FIRST)\n\n```bash\n# Check for unsubstituted @VAR@ tokens in the installed plist\n# If any exist, bash expands them to empty → 401 on every API call\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, re, sys\ncontent = open(sys.argv[1]).read()\nvars = re.findall(r'@[A-Z_][A-Z0-9_]*@', content)\nif vars:\n    print(f'BAD: Unsubstituted tokens: {sorted(set(vars))}')\nelse:\n    print('OK: No unsubstituted @VAR@ tokens')\nEOF\n\n# If BAD: re-run setup to regenerate plist with real env vars:\nbash scripts\u002Fsetup-launchd.sh lifecycle\n# Then verify:\nbash scripts\u002Ftest-launchd-env.sh\n```\n\nUnsubstituted `@VAR@` tokens establish that the plist template was not rendered.\nUse the repository's launchd setup workflow, then continue diagnosis if the\n401 persists.\n\n```bash\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, re, sys\n\nwith open(sys.argv[1], \"rb\") as source:\n    data = plistlib.load(source)\nvariables = re.findall(r\"@[A-Z_][A-Z0-9_]*@\", str(data))\nkey = data.get(\"EnvironmentVariables\", {}).get(\"MINIMAX_API_KEY\", \"\")\nprint(\"BAD: unsubstituted plist template tokens\" if variables else \"OK: no template tokens\")\nif key == \"__OPENCLAW_REDACTED__\":\n    print(\"BAD: MINIMAX_API_KEY is the redacted sentinel\")\nelif key:\n    print(\"OK: MINIMAX_API_KEY is configured; value not displayed\")\nelse:\n    print(\"BAD: MINIMAX_API_KEY is missing\")\nEOF\n```\n\nDo not print the plist or retrieve the keychain item's value. For safe\ncredential handling, follow [cloud-ops-credential-guard](..\u002Fcloud-ops-credential-guard\u002FSKILL.md)\nand the repository's launchd setup workflow.\n\n## Full Diagnostic Steps\n\n### Step 1: Capture the worker's tmux pane\n\n```bash\n# Find the tmux session for the stuck worker\ntmux list-sessions | grep \u003Cworker-name>\n\n# Capture the stuck state\ntmux capture-pane -pt \u003Csession>:0.0 -S -100\n```\n\nLook for: `Please run \u002Flogin`, `API Error: 401`, `login fail`, `MINIMAX_API_KEY`\n\n### Step 2: Check the plist's MINIMAX_API_KEY without displaying it\n\n```bash\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, sys\nwith open(sys.argv[1], \"rb\") as source:\n    data = plistlib.load(source)\nkey = data.get(\"EnvironmentVariables\", {}).get(\"MINIMAX_API_KEY\", \"\")\nif key == \"__OPENCLAW_REDACTED__\":\n    print(\"BAD: redacted sentinel\")\nelif key:\n    print(\"OK: configured; value not displayed\")\nelse:\n    print(\"BAD: missing\")\nEOF\n```\n\n### Step 3: Check keychain for the real key\n\n```bash\n# Check presence without leaking credential to terminal\nsecurity find-generic-password -s MINIMAX_API_KEY >\u002Fdev\u002Fnull 2>&1 && echo \"Keychain: MINIMAX_API_KEY present\" || echo \"Keychain: MINIMAX_API_KEY missing\"\n```\n\nThis check reports presence only. Never retrieve or print the keychain value.\n\n### Step 4: Fix — use the repository's launchd setup workflow\n\n```bash\n# Use the repository's launchd setup to repair the service configuration\nbash scripts\u002Fsetup-launchd.sh lifecycle\n```\n\nDo not copy a credential into a plist or shell variable manually. Follow the\nrepository's launchd setup workflow and the credential-handling rules in\n[cloud-ops-credential-guard](..\u002Fcloud-ops-credential-guard\u002FSKILL.md).\n\n### Step 5: Reload the launchd service\n\n```bash\nlaunchctl bootout gui\u002F$(id -u)\u002Fai.agento.lifecycle-all\nlaunchctl bootstrap gui\u002F$(id -u) ~\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\nlaunchctl kickstart -k gui\u002F$(id -u)\u002Fai.agento.lifecycle-all\n```\n\n### Step 6: Verify workers recover\n\n```bash\nsleep 5\npgrep -f \"lifecycle-worker\" | wc -l  # Should show 12+ workers\ntmux list-sessions | grep ao-        # Should show active sessions, not stuck on \u002Flogin\n```\n\n## Verify Before Changing the Model\n\nYou might see `model: MiniMax-M2.7` in the config and think \"just switch to Claude Opus.\" A model change does not establish or repair the cause of an authentication error. First:\n\n1. Verify that the current provider response is a 401 and identify which route returned it.\n2. Confirm the active worker configuration and credential-presence status without displaying credential values.\n3. Change model routing only when the current configuration and provider evidence show it is the cause.\n\n## Anti-Patterns\n\n- **WRONG**: `ao spawn --agent codex` to \"fix\" the 401 — masks the symptom, wrong model for the task\n- **WRONG**: `export MINIMAX_API_KEY=...` in a running shell — doesn't fix the launchd service's env\n- **WRONG**: Changing `model` in agent-orchestrator.yaml without evidence that routing is the cause\n- **WRONG**: Killing and respawning the worker without fixing the plist — it will hit the same 401 immediately\n\n## Recurring Incident History\n\n| Date | Worker | Manifestation | Root Cause |\n|------|--------|---------------|------------|\n| 2026-04-15 | PRs #454, #453, #452, #450, #444 | 5 PRs stuck with 401 | `__OPENCLAW_REDACTED__` in plist |\n| 2026-05-01 | ao-4449 (PR #511) | `\u002Flogin` + 401, stuck at \"Brewed for 3m 13s\" | `__OPENCLAW_REDACTED__` in plist |\n\n## Files to Check\n\n- `~\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist` — MINIMAX_API_KEY value\n- `scripts\u002Fsetup-launchd.sh` — how MINIMAX_API_KEY is substituted into the plist\n- `~\u002F.hermes_prod\u002Fconfig.yaml` — MiniMax credential source\n\n## Claim Class\n\nThis skill covers a recurring credential-related failure pattern. Verify the\ncurrent error and active configuration before applying its remediation.\n","# MiniMax 401 Diagnostic\n\n## Common symptom pattern\n\nThis sequence is one possible failure pattern; verify each step from current\nprovider output and worker configuration.\n\n1. AO worker starts → hits MiniMax proxy → proxy returns `401 Unauthorized`\n2. Claude Code intercepts 401 → shows `\u002Flogin` prompt in tmux pane\n3. Worker appears to hang (\"waiting for input\") but is actually blocked on `\u002Flogin`\n4. `tmux capture-pane` shows: `Please run \u002Flogin · API Error: 401` or `login fail: carry the API secret key in the 'Authorization' field`\n5. Config shows `agent: minimax` or `model: MiniMax-M2.7` — this alone does not establish the cause\n\n## Quick Diagnosis\n\n### Step 0 — Plist template check (do this FIRST)\n\n```bash\n# Check for unsubstituted @VAR@ tokens in the installed plist\n# If any exist, bash expands them to empty → 401 on every API call\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, re, sys\ncontent = open(sys.argv[1]).read()\nvars = re.findall(r'@[A-Z_][A-Z0-9_]*@', content)\nif vars:\n    print(f'BAD: Unsubstituted tokens: {sorted(set(vars))}')\nelse:\n    print('OK: No unsubstituted @VAR@ tokens')\nEOF\n\n# If BAD: re-run setup to regenerate plist with real env vars:\nbash scripts\u002Fsetup-launchd.sh lifecycle\n# Then verify:\nbash scripts\u002Ftest-launchd-env.sh\n```\n\nUnsubstituted `@VAR@` tokens establish that the plist template was not rendered.\nUse the repository's launchd setup workflow, then continue diagnosis if the\n401 persists.\n\n```bash\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, re, sys\n\nwith open(sys.argv[1], \"rb\") as source:\n    data = plistlib.load(source)\nvariables = re.findall(r\"@[A-Z_][A-Z0-9_]*@\", str(data))\nkey = data.get(\"EnvironmentVariables\", {}).get(\"MINIMAX_API_KEY\", \"\")\nprint(\"BAD: unsubstituted plist template tokens\" if variables else \"OK: no template tokens\")\nif key == \"__OPENCLAW_REDACTED__\":\n    print(\"BAD: MINIMAX_API_KEY is the redacted sentinel\")\nelif key:\n    print(\"OK: MINIMAX_API_KEY is configured; value not displayed\")\nelse:\n    print(\"BAD: MINIMAX_API_KEY is missing\")\nEOF\n```\n\nDo not print the plist or retrieve the keychain item's value. For safe\ncredential handling, follow [cloud-ops-credential-guard](..\u002Fcloud-ops-credential-guard\u002FSKILL.md)\nand the repository's launchd setup workflow.\n\n## Full Diagnostic Steps\n\n### Step 1: Capture the worker's tmux pane\n\n```bash\n# Find the tmux session for the stuck worker\ntmux list-sessions | grep \u003Cworker-name>\n\n# Capture the stuck state\ntmux capture-pane -pt \u003Csession>:0.0 -S -100\n```\n\nLook for: `Please run \u002Flogin`, `API Error: 401`, `login fail`, `MINIMAX_API_KEY`\n\n### Step 2: Check the plist's MINIMAX_API_KEY without displaying it\n\n```bash\npython3 - \"$HOME\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\" \u003C\u003C'EOF'\nimport plistlib, sys\nwith open(sys.argv[1], \"rb\") as source:\n    data = plistlib.load(source)\nkey = data.get(\"EnvironmentVariables\", {}).get(\"MINIMAX_API_KEY\", \"\")\nif key == \"__OPENCLAW_REDACTED__\":\n    print(\"BAD: redacted sentinel\")\nelif key:\n    print(\"OK: configured; value not displayed\")\nelse:\n    print(\"BAD: missing\")\nEOF\n```\n\n### Step 3: Check keychain for the real key\n\n```bash\n# Check presence without leaking credential to terminal\nsecurity find-generic-password -s MINIMAX_API_KEY >\u002Fdev\u002Fnull 2>&1 && echo \"Keychain: MINIMAX_API_KEY present\" || echo \"Keychain: MINIMAX_API_KEY missing\"\n```\n\nThis check reports presence only. Never retrieve or print the keychain value.\n\n### Step 4: Fix — use the repository's launchd setup workflow\n\n```bash\n# Use the repository's launchd setup to repair the service configuration\nbash scripts\u002Fsetup-launchd.sh lifecycle\n```\n\nDo not copy a credential into a plist or shell variable manually. Follow the\nrepository's launchd setup workflow and the credential-handling rules in\n[cloud-ops-credential-guard](..\u002Fcloud-ops-credential-guard\u002FSKILL.md).\n\n### Step 5: Reload the launchd service\n\n```bash\nlaunchctl bootout gui\u002F$(id -u)\u002Fai.agento.lifecycle-all\nlaunchctl bootstrap gui\u002F$(id -u) ~\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist\nlaunchctl kickstart -k gui\u002F$(id -u)\u002Fai.agento.lifecycle-all\n```\n\n### Step 6: Verify workers recover\n\n```bash\nsleep 5\npgrep -f \"lifecycle-worker\" | wc -l  # Should show 12+ workers\ntmux list-sessions | grep ao-        # Should show active sessions, not stuck on \u002Flogin\n```\n\n## Verify Before Changing the Model\n\nYou might see `model: MiniMax-M2.7` in the config and think \"just switch to Claude Opus.\" A model change does not establish or repair the cause of an authentication error. First:\n\n1. Verify that the current provider response is a 401 and identify which route returned it.\n2. Confirm the active worker configuration and credential-presence status without displaying credential values.\n3. Change model routing only when the current configuration and provider evidence show it is the cause.\n\n## Anti-Patterns\n\n- **WRONG**: `ao spawn --agent codex` to \"fix\" the 401 — masks the symptom, wrong model for the task\n- **WRONG**: `export MINIMAX_API_KEY=...` in a running shell — doesn't fix the launchd service's env\n- **WRONG**: Changing `model` in agent-orchestrator.yaml without evidence that routing is the cause\n- **WRONG**: Killing and respawning the worker without fixing the plist — it will hit the same 401 immediately\n\n## Recurring Incident History\n\n| Date | Worker | Manifestation | Root Cause |\n|------|--------|---------------|------------|\n| 2026-04-15 | PRs #454, #453, #452, #450, #444 | 5 PRs stuck with 401 | `__OPENCLAW_REDACTED__` in plist |\n| 2026-05-01 | ao-4449 (PR #511) | `\u002Flogin` + 401, stuck at \"Brewed for 3m 13s\" | `__OPENCLAW_REDACTED__` in plist |\n\n## Files to Check\n\n- `~\u002FLibrary\u002FLaunchAgents\u002Fai.agento.lifecycle-all.plist` — MINIMAX_API_KEY value\n- `scripts\u002Fsetup-launchd.sh` — how MINIMAX_API_KEY is substituted into the plist\n- `~\u002F.hermes_prod\u002Fconfig.yaml` — MiniMax credential source\n\n## Claim Class\n\nThis skill covers a recurring credential-related failure pattern. Verify the\ncurrent error and active configuration before applying its remediation.\n",{"name":45,"context":46,"description":47,"when_to_use":48,"allowed-tools":49},"minimax-401-diagnostic","A redacted or invalid MINIMAX_API_KEY in the launchd configuration is one known cause of 401 errors. A \u002Flogin prompt may follow a provider 401, but verify the current response and configuration before concluding that credentials or model routing caused it. Do not swap models as a substitute for diagnosis.","Diagnose MiniMax 401 auth errors in AO workers. A redacted or invalid MINIMAX_API_KEY is one possible cause; verify current provider errors and configuration before identifying the cause or changing settings.","Use when: (1) an AO worker tmux pane shows 'Please run \u002Flogin · API Error: 401' or 'login fail: carry the API secret key', (2) worker is stuck waiting for input despite having 'minimax' model config, (3) \u002Fms surfaces another 401 incident. Do NOT use for general auth issues — this skill is specifically for the MiniMax proxy 401 + \u002Flogin prompt stall pattern.",[50,51,52,53],"Bash","Read","Write","Edit","main","42ccd02cbf5e8e47839dc3eab6fc754dc6b339cf","apps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles",2,"https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork","https:\u002F\u002Fgithub.com\u002Fsudoprivacy","2026-11-13 05:58:38",{"source":8,"skillName":45,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add sudoprivacy\u002Fsudowork --skill minimax-401-diagnostic",{"tool":67,"command":68},"bunx","bunx skills add sudoprivacy\u002Fsudowork --skill minimax-401-diagnostic",{"tool":70,"command":71},"pnpm","pnpm dlx skills add sudoprivacy\u002Fsudowork --skill minimax-401-diagnostic","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002FSKILL.md",true,[75,81,87,91],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"_sudowork_meta.json","REFERENCE","参考文档",293,"https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002F_sudowork_meta.json",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"scripts\u002Fcloud_media.py","SCRIPT","脚本",5020,"https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002Fscripts\u002Fcloud_media.py",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Frequirements-cloud.txt",33,"https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002Fscripts\u002Frequirements-cloud.txt",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fsubtitles.mjs",4688,"https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fvideo-subtitles\u002Fscripts\u002Fsubtitles.mjs",[96,116,158,180,206,233],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":100,"sourceHtmlUrl":101,"categories":102,"keywords":109,"publishedAt":40},"01M6DTQM16M8ZCQSVW6GYYB9GM","skill-creator","创建或更新 Sudowork 自定义技能，同时保留核心 skill creation \u002F skill-design 最佳实践。用于用户要求创建新技能、优化已有技能、打包导入 Sudowork，或让技能展示在我的技能自定义技能中。","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fskill-creator\u002FSKILL.md",[103,106],{"categoryNo":104,"categoryName":105,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[110,111,112,113,114,115],"skill creator","creator","design","creation","skill-design","skill creation",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":120,"licenseFileUrl":121,"sourceHtmlUrl":122,"categories":123,"keywords":133,"publishedAt":40},"01M6DTQEH8DMDYG9ET2PSB381S","shareone","Host HTML\u002FMarkdown pages and share PDF, Word, or PowerPoint docs as ShareOne short links. Use when publishing pages\u002Fdocs, adding passwords\u002Fwatermarks, comments, downloads, or updates.","MIT","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fshareone\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fshareone\u002FSKILL.md",[124,127,130],{"categoryNo":125,"categoryName":126,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":128,"categoryName":129,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":131,"categoryName":132,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[118,134,135,136,137,138,139,140,141,142,143,144,33,145,146,147,148,149,150,151,152,153,154,155,156,157],"PDF","pptx","docs","powerpoint","share","downloads","publish","sharing","markdown","Word","short","html","publishing","hosting","upload","pages","as","host","with","comments","links","passwords","updates","when",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":40},"01M6DTQB7MRE9C1ETCRF8KCMY4","image-generation","Generate new images or edit existing images using AI. Use this skill when the user wants to create, generate, draw, design, or produce an image from a text description, OR when they want to modify, edit, alter, or transform an existing image (e.g. 'generate a picture of...', 'create an image', 'draw me a...', 'edit this image', 'change the background', 'modify the above picture', '生成图片', '画一张', '修改图片', '编辑上面的图').","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fimage-generation\u002FSKILL.md",[164],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[166,167,168,112,169,170,39,171,172,26,173,174,33,175,176,177,178,179,157,27],"image","Image Generation","generation","change","create","produce","生成","edit","user","images","draw","me","transform","Existing",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":187,"publishedAt":40},"01M6DTQ7Y4CZRXENW8272CNFGD","image-analysis","Analyze, describe, or answer questions about image content using vision AI. Use this skill when the user asks anything about an image — what it shows, what's in it, reading text\u002Fdiagrams, identifying objects, or any question referencing a previous image (e.g. 'what is in this image', 'read the text in this screenshot', 'explain this diagram', 'tell me about the image above', '识别图片', '分析图片内容').","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fimage-analysis\u002FSKILL.md",[186],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[166,188,189,190,191,192,193,26,194,195,196,174,33,197,198,199,200,177,201,202,203,204,205,157],"analysis","image analysis","diagram","screenshot","content","analyze","explain","question","read","vision","diagrams","vision ai","objects","about","questions","reading","answer","describe",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":40},"01M6DTQ4MFX1843KSW940WHB3R","auto-login","Log in to a website automatically using credentials saved in the local key store. Use when the user wants unattended\u002Frepeat login to a site (no re-scanning QR, no re-typing passwords), e.g. '帮我自动登录这个网站', 'set up auto-login for X', '记住这个网站的登录'. The plaintext password is NEVER seen by you — the user fills it in 秘钥管理 and sudowork fills the form itself.","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002Fauto-login\u002FSKILL.md",[],[213,214,215,216,217,218,219,220,174,33,221,222,223,224,225,226,227,228,229,230,155,231,28,232,157],"auto","auto login","login","website","SET","credentials","password","site","never","scanning","up","log","local","form","typing","you","re","qr","saved","log in",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":240,"publishedAt":40},"01M6DTPWP3PCTFHSWV70Q67MTC","sudowork-skill-installer","🔧 PRIMARY skill installer for Sudowork. Use this skill for ALL skill installation requests.\n**CRITICAL: This is the ONLY skill installer you should use.**\n**DO NOT use clawhub for installation** - clawhub is for ClawHub.com publishing ONLY.\nTriggers: \"帮我安装skill\", \"install a skill\", \"安装技能\", \"推荐技能\", \"need a skill\", \"find a skill\", \"下载技能\", \"网文大纲\", \"skill安装\".\nWhen user asks to install any skill → ALWAYS use sudowork-skill-installer, NEVER clawhub.","https:\u002F\u002Fgithub.com\u002Fsudoprivacy\u002Fsudowork\u002Fblob\u002Fdev\u002Fapps\u002Fdesktop\u002Fskills\u002F_builtin\u002Fsudowork-skill-installer\u002FSKILL.md",[239],{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},[241,242,243,244,245,246,174,247,33,221,248,146,249,250,251,252,228,253,28,254,157],"skill installer","installer","sudowork skill installer","clawhub","下载","find","install","only","do","installation","triggers","critical","requests","skill installation"]