[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698T8V8R7PXJH7AJB77RSK9":3,"skill-same:01M698T8V8R7PXJH7AJB77RSK9":57},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":39,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M698T8V8R7PXJH7AJB77RSK9","diagnose-gateway",null,"Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.","openclaw\u002Fopenclaw","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMDRVH56MV30D253NFP",394406,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fcustodian-skills\u002Fdiagnose-gateway\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28],"diagnose gateway","diagnose","gateway","config","secrets","read","only","port","channels","with","read-only","2026-11-10 10:12:30",false,"---\nname: diagnose-gateway\ndescription: Diagnose Gateway, config, secrets, channels, and port failures with read-only one-liners.\n---\n\n# Diagnose the Gateway\n\nThis playbook is read-only: no config writes, no service restarts, no `doctor --fix`, no killing listeners. Never print secret values; report only redacted SecretRef owner state. Every run ends with the observable Prove result or an exact explanation of why it could not be proven.\n\n## Gather\n\n```\nopenclaw doctor --lint\nopenclaw gateway status --deep\nopenclaw config validate\nopenclaw channels status\nopenclaw models status\nopenclaw channels logs --channel \u003Cid>\n```\n\n`doctor --lint` is read-only and can exit `1` for findings: read the report and continue the remaining checks. Do not substitute ordinary `doctor` or `doctor --non-interactive`; they can copy legacy config and migrate state without `--fix`.\n\nOn managed installs, bounded recent logs: `.\u002Fscripts\u002Fclawlog.sh` (repo checkout) or the log path printed at gateway startup (`\u002Ftmp\u002Fopenclaw\u002Fopenclaw-\u003Cdate>.log` by default).\n\nCheck these signatures without guessing:\n\n- invalid config or schema errors (`config validate` names the exact key and line);\n- degraded SecretRef owners — report the owner, never ids or values;\n- expired or rejected channel authentication (`channels status` per account);\n- `EADDRINUSE`, a second gateway listener, or service\u002Fconfig port mismatch (`lsof -nP -iTCP:\u003Cport> -sTCP:LISTEN`);\n- gateway crash loops: read the last startup stack in the gateway log; a schema-valid config that still crashes startup is a bug — capture the stack and report it.\n\nCorrelate timestamps and identify the first owner-boundary failure.\n\n## Mutate\n\nNothing. Do not change config, migrate state, or alter services. Diagnostic commands may still produce incidental logs or cache bookkeeping.\n\n## Repair\n\nTranslate each finding into the next action, naming the responsible skill when one exists: `configure-channel`, `add-model-provider`, or `cloud-image-bake`. Recommend `openclaw doctor --fix --non-interactive` only as a separately approved step.\n\n## Prove\n\nRepeat the smallest read-only check that exposes the condition and record its output, for example:\n\n```\nopenclaw gateway status --deep\nopenclaw channels status --probe\n```\n\nIf access, logs, or the gateway are unavailable, report that exact blocker rather than declaring a cause.\n\n## Report\n\nFindings in causal order with evidence for each; current gateway\u002Fconfig\u002FSecretRef\u002Fchannel\u002Fport state; one recommended next skill or operator action. State explicitly that no config\u002Fservice repairs or state migrations were performed.\n\nFurther reference: https:\u002F\u002Fdocs.openclaw.ai\u002Fgateway\u002Ftroubleshooting\n","# Diagnose the Gateway\n\nThis playbook is read-only: no config writes, no service restarts, no `doctor --fix`, no killing listeners. Never print secret values; report only redacted SecretRef owner state. Every run ends with the observable Prove result or an exact explanation of why it could not be proven.\n\n## Gather\n\n```\nopenclaw doctor --lint\nopenclaw gateway status --deep\nopenclaw config validate\nopenclaw channels status\nopenclaw models status\nopenclaw channels logs --channel \u003Cid>\n```\n\n`doctor --lint` is read-only and can exit `1` for findings: read the report and continue the remaining checks. Do not substitute ordinary `doctor` or `doctor --non-interactive`; they can copy legacy config and migrate state without `--fix`.\n\nOn managed installs, bounded recent logs: `.\u002Fscripts\u002Fclawlog.sh` (repo checkout) or the log path printed at gateway startup (`\u002Ftmp\u002Fopenclaw\u002Fopenclaw-\u003Cdate>.log` by default).\n\nCheck these signatures without guessing:\n\n- invalid config or schema errors (`config validate` names the exact key and line);\n- degraded SecretRef owners — report the owner, never ids or values;\n- expired or rejected channel authentication (`channels status` per account);\n- `EADDRINUSE`, a second gateway listener, or service\u002Fconfig port mismatch (`lsof -nP -iTCP:\u003Cport> -sTCP:LISTEN`);\n- gateway crash loops: read the last startup stack in the gateway log; a schema-valid config that still crashes startup is a bug — capture the stack and report it.\n\nCorrelate timestamps and identify the first owner-boundary failure.\n\n## Mutate\n\nNothing. Do not change config, migrate state, or alter services. Diagnostic commands may still produce incidental logs or cache bookkeeping.\n\n## Repair\n\nTranslate each finding into the next action, naming the responsible skill when one exists: `configure-channel`, `add-model-provider`, or `cloud-image-bake`. Recommend `openclaw doctor --fix --non-interactive` only as a separately approved step.\n\n## Prove\n\nRepeat the smallest read-only check that exposes the condition and record its output, for example:\n\n```\nopenclaw gateway status --deep\nopenclaw channels status --probe\n```\n\nIf access, logs, or the gateway are unavailable, report that exact blocker rather than declaring a cause.\n\n## Report\n\nFindings in causal order with evidence for each; current gateway\u002Fconfig\u002FSecretRef\u002Fchannel\u002Fport state; one recommended next skill or operator action. State explicitly that no config\u002Fservice repairs or state migrations were performed.\n\nFurther reference: https:\u002F\u002Fdocs.openclaw.ai\u002Fgateway\u002Ftroubleshooting\n",{"name":5,"description":7},"main","f1c93577085244aa96aa87b53a2df9b59d293bd7","custodian-skills\u002Fdiagnose-gateway",82884,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw","https:\u002F\u002Fopenclaw.ai","https:\u002F\u002Fgithub.com\u002Fopenclaw","Your personal, open source AI assistant.","2026-11-13 03:01:37",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add openclaw\u002Fopenclaw --skill diagnose-gateway",{"tool":49,"command":50},"bunx","bunx skills add openclaw\u002Fopenclaw --skill diagnose-gateway",{"tool":52,"command":53},"pnpm","pnpm dlx skills add openclaw\u002Fopenclaw --skill diagnose-gateway","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fcustodian-skills\u002Fdiagnose-gateway\u002FSKILL.md",true,[],[58,64,87,104,126,150],{"skillNo":59,"name":60,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":29},"01M698VP84FNM6G9MR1HPX7MF7","lobster","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FSKILL.md",[],[60],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":29},"01M698YY8QGQ7S8TJNKJG6VTPH","xurl","xurl CLI for authenticated X posts, replies, reads\u002Fsearch, DMs, media upload, followers, auth status, or raw v2 API calls.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fxurl\u002FSKILL.md",[],[66,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],"for","api","calls","replies","posts","upload","tap","install","brew","node","Media","search","npm","status","auth","cli",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":29},"01M698YWT1CJ0WK88WB909R9RT","weather","Current weather and forecasts with web_fetch, falling back to wttr.in curl for locations, rain, temperature, travel planning.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fweather\u002FSKILL.md",[],[89,94,95,78,96,79,97,98,99,100,101,102,71,103,27],"travel planning","travel","fetch","curl","https","help","planning","web","back","temperature",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":115,"publishedAt":29},"01M698YV2Q0R0JJKAWGFS21K0N","visualize","Create inline visuals for code and explanations, or author persistent OpenClaw dashboard widgets with show_widget.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Fvisualize\u002FSKILL.md",[110],{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[106,116,117,118,119,71,27,120,121,122,123,124,9,125],"widgets","openclaw dashboard","author","inline","show","code","create","visuals","dashboard","widget",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":140,"publishedAt":29},"01M698YS2TRJH9ENG28HD9CD87","trello","Manage Trello boards, lists, and cards via the Trello REST API.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftrello\u002FSKILL.md",[132,137],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":138,"categoryName":139,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000030","开发工程师",[128,98,141,142,143,144,145,146,78,79,147,97,72,148,149],"cloud","manage","via","rest api","token","atlassian","jq","REST","developer",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":29},"01M698YQ9Q3M4W78EWV2KSCSVW","tmux","Control tmux sessions\u002Fpanes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fskills\u002Ftmux\u002FSKILL.md",[],[152,78,157,158,71,159,160,161,162,163,164,165,79,166,167,168,169,170,171],"send","darwin","keys","paste","output","control","prompts","interactive","list","capture","panes","text","monitor","sessions","linux"]