[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698RA114JR9S1TQFX18199Q":3,"skill-same:01M698RA114JR9S1TQFX18199Q":119},{"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":22,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":48,"ownerDescription":50,"updatedAt":51,"install":52,"resources":64},"01M698RA114JR9S1TQFX18199Q","openclaw-release-validation",null,"Guide human release testing on an isolated OCM copy or approved in-place gateway, collect feedback, or refresh the release campaign.","openclaw\u002Fopenclaw","openclaw","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252820863?v=4","01M698P3FSAZ6B4R928ZF19KPT","01M698PDMDRVH56MV30D253NFP",394406,"MIT","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[9,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"openclaw release validation","release","validation","release validation","testing","gateway","collect","feedback","refresh","guide","campaign","human","copy","true","2026-11-10 10:12:30",false,"---\nname: openclaw-release-validation\ndescription: \"Guide human release testing on an isolated OCM copy or approved in-place gateway, collect feedback, or refresh the release campaign.\"\nuser-invocable: true\ndisable-model-invocation: true\n---\n\n# OpenClaw Release Validation\n\nHelp a human test an immutable latest-main build against a selected real\nGateway's state. Automate preparation, triage, and reporting; the human drives\ninteractive surfaces and judges quality. This skill collects feedback, not a\nrelease go\u002Fno-go decision.\n\n## Choose the mode\n\n- **Campaign artifact:** only when `RELEASE_VALIDATION_ARTIFACT_PATH` is present. Read [artifact generation](references\u002Fcampaign-artifact.md), write that artifact, and stop. GitHub is read-only; no skill-update request or interactive setup.\n- **Update campaign:** for an explicit refresh request, read [installed skill check](references\u002Fskill-update.md), then [campaign lookup\u002Fdispatch](references\u002Fcampaign.md). Dispatch the isolated runner for the selected explicit tag, verify its issue, and stop. Never analyze or edit the canonical issue yourself.\n- **Validate release:** default human-testing workflow below. It joins the campaign; it never creates or rewrites the issue body directly.\n\n## Human validation\n\n1. Read [installed skill check](references\u002Fskill-update.md). Introduce the run briefly: choose a Gateway, protect it with a disposable OCM copy or approve an in-place update, prepare the pinned main build, then test and review feedback.\n2. Read [campaign lookup\u002Fdispatch](references\u002Fcampaign.md). Require a current campaign and record its stable train and current beta. Gateway preparation pins the main test target separately.\n3. Read [Gateway preparation](references\u002Fgateway-preparation.md). Discover without mutation, let the tester choose source and mode, then prepare the selected target. Never use the caller's active checkout.\n4. Only after readiness succeeds, offer [local diagnostics](references\u002Flocal-diagnostics.md) for an isolated target, then read [human testing](references\u002Fhuman-testing.md) to create the worksheet and guide one chosen surface at a time.\n5. On `finish validation`, read [cleanup and report approval](references\u002Freport-closeout.md). It handles blocked upgrades too. Review the complete batch before any post and preserve the exact structured-report contract.\n\nBefore readiness is terminal, show only campaign\u002Fbeta identity, source\u002Fmode\nchoice, and upgrade progress or errors. Do not expose testing instructions or\ncreate a worksheet for a Gateway that never became ready.\n\n## Boundaries\n\nAn isolated OCM copy must prove all candidate-writable paths remain contained.\nDo not bypass a failed containment check with manual copying. Copied channel\ncredentials require explicit authorization to stop their current owner and a\nrestoration plan. In-place mode changes real state: present verified\nbackup\u002Fsnapshot and dry-run evidence before obtaining update approval. Rollback\nrequires separate approval because newer migrations can make code-only\nreversion unsafe.\n\nKeep one worksheet for a ready candidate; only tester-authored results count\nas tested. A blocked candidate uses its final upgrade-report draft instead.\nFor setup, OCM, backup, build or cleanup failures, use the private\n[tooling-feedback packet](references\u002Ftooling-feedback.md); do not turn these\ninto candidate findings. With no candidate evaluation, clean up and report that\nfact without producing a candidate vote or posting batch.\n\nDiagnostics are opt-in, disposable-target-only, loopback-only and content-off.\nPublic feedback excludes raw logs, telemetry, paths, Gateway names, identifiers,\ncredentials and setup\u002Fcleanup details. Apply the report's narrow environment\nallowlist and sanitization before showing the complete draft. `finish\nvalidation` does not authorize posts; existing explicit batch approval does.\nThe Discord summary is a copy-ready handoff, never an automatic send.\n","# OpenClaw Release Validation\n\nHelp a human test an immutable latest-main build against a selected real\nGateway's state. Automate preparation, triage, and reporting; the human drives\ninteractive surfaces and judges quality. This skill collects feedback, not a\nrelease go\u002Fno-go decision.\n\n## Choose the mode\n\n- **Campaign artifact:** only when `RELEASE_VALIDATION_ARTIFACT_PATH` is present. Read [artifact generation](references\u002Fcampaign-artifact.md), write that artifact, and stop. GitHub is read-only; no skill-update request or interactive setup.\n- **Update campaign:** for an explicit refresh request, read [installed skill check](references\u002Fskill-update.md), then [campaign lookup\u002Fdispatch](references\u002Fcampaign.md). Dispatch the isolated runner for the selected explicit tag, verify its issue, and stop. Never analyze or edit the canonical issue yourself.\n- **Validate release:** default human-testing workflow below. It joins the campaign; it never creates or rewrites the issue body directly.\n\n## Human validation\n\n1. Read [installed skill check](references\u002Fskill-update.md). Introduce the run briefly: choose a Gateway, protect it with a disposable OCM copy or approve an in-place update, prepare the pinned main build, then test and review feedback.\n2. Read [campaign lookup\u002Fdispatch](references\u002Fcampaign.md). Require a current campaign and record its stable train and current beta. Gateway preparation pins the main test target separately.\n3. Read [Gateway preparation](references\u002Fgateway-preparation.md). Discover without mutation, let the tester choose source and mode, then prepare the selected target. Never use the caller's active checkout.\n4. Only after readiness succeeds, offer [local diagnostics](references\u002Flocal-diagnostics.md) for an isolated target, then read [human testing](references\u002Fhuman-testing.md) to create the worksheet and guide one chosen surface at a time.\n5. On `finish validation`, read [cleanup and report approval](references\u002Freport-closeout.md). It handles blocked upgrades too. Review the complete batch before any post and preserve the exact structured-report contract.\n\nBefore readiness is terminal, show only campaign\u002Fbeta identity, source\u002Fmode\nchoice, and upgrade progress or errors. Do not expose testing instructions or\ncreate a worksheet for a Gateway that never became ready.\n\n## Boundaries\n\nAn isolated OCM copy must prove all candidate-writable paths remain contained.\nDo not bypass a failed containment check with manual copying. Copied channel\ncredentials require explicit authorization to stop their current owner and a\nrestoration plan. In-place mode changes real state: present verified\nbackup\u002Fsnapshot and dry-run evidence before obtaining update approval. Rollback\nrequires separate approval because newer migrations can make code-only\nreversion unsafe.\n\nKeep one worksheet for a ready candidate; only tester-authored results count\nas tested. A blocked candidate uses its final upgrade-report draft instead.\nFor setup, OCM, backup, build or cleanup failures, use the private\n[tooling-feedback packet](references\u002Ftooling-feedback.md); do not turn these\ninto candidate findings. With no candidate evaluation, clean up and report that\nfact without producing a candidate vote or posting batch.\n\nDiagnostics are opt-in, disposable-target-only, loopback-only and content-off.\nPublic feedback excludes raw logs, telemetry, paths, Gateway names, identifiers,\ncredentials and setup\u002Fcleanup details. Apply the report's narrow environment\nallowlist and sanitization before showing the complete draft. `finish\nvalidation` does not authorize posts; existing explicit batch approval does.\nThe Discord summary is a copy-ready handoff, never an automatic send.\n",{"name":5,"description":7,"user-invocable":42,"disable-model-invocation":42},true,"main","f1c93577085244aa96aa87b53a2df9b59d293bd7",".agents\u002Fskills\u002Fopenclaw-release-validation",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":53,"prompt":63,"zipAvailable":42},[54,57,60],{"tool":55,"command":56},"npx","npx skills add openclaw\u002Fopenclaw --skill openclaw-release-validation",{"tool":58,"command":59},"bunx","bunx skills add openclaw\u002Fopenclaw --skill openclaw-release-validation",{"tool":61,"command":62},"pnpm","pnpm dlx skills add openclaw\u002Fopenclaw --skill openclaw-release-validation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002FSKILL.md",[65,71,75,81,85,89,93,97,101,105,109,113],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002Ftooling-feedback.md","ASSET","资产文件",982,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Fassets\u002Ftooling-feedback.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"assets\u002Fvalidation-worksheet.md",939,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Fassets\u002Fvalidation-worksheet.md",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fcampaign-artifact.md","REFERENCE","参考文档",4665,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fcampaign-artifact.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fcampaign.md",3558,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fcampaign.md",{"path":86,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fgateway-preparation.md",9890,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fgateway-preparation.md",{"path":90,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fhuman-testing.md",5660,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fhuman-testing.md",{"path":94,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Flocal-diagnostics.md",5064,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Flocal-diagnostics.md",{"path":98,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Freport-closeout.md",8902,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Freport-closeout.md",{"path":102,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fskill-update.md",2176,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fskill-update.md",{"path":106,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fstructured-report.md",4941,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Fstructured-report.md",{"path":110,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":111,"sourceHtmlUrl":112},"references\u002Ftooling-feedback.md",2152,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Freferences\u002Ftooling-feedback.md",{"path":114,"resourceType":115,"resourceTypeDesc":116,"sizeBytes":117,"sourceHtmlUrl":118},"scripts\u002Fcheck-update.mjs","SCRIPT","脚本",13451,"https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenclaw-release-validation\u002Fscripts\u002Fcheck-update.mjs",[120,126,149,167,189,211],{"skillNo":121,"name":122,"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":123,"categories":124,"keywords":125,"publishedAt":37},"01M698VP84FNM6G9MR1HPX7MF7","lobster","https:\u002F\u002Fgithub.com\u002Fopenclaw\u002Fopenclaw\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FSKILL.md",[],[122],{"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":132,"publishedAt":37},"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",[],[128,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148],"for","api","calls","replies","posts","upload","tap","install","brew","node","Media","search","npm","status","auth","cli",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":37},"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",[],[151,156,157,140,158,141,159,160,161,162,163,164,133,165,166],"travel planning","travel","fetch","curl","https","help","planning","web","back","temperature","with",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":178,"publishedAt":37},"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",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[169,179,180,181,182,133,166,183,184,185,186,187,9,188],"widgets","openclaw dashboard","author","inline","show","code","create","visuals","dashboard","widget",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":201,"publishedAt":37},"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",[195,198],{"categoryNo":196,"categoryName":197,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":199,"categoryName":200,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000030","开发工程师",[191,160,202,203,204,205,206,207,140,141,208,159,134,209,210],"cloud","manage","via","rest api","token","atlassian","jq","REST","developer",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":217,"publishedAt":37},"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",[],[213,140,218,219,133,220,221,222,223,224,225,226,141,227,228,229,230,231,232],"send","darwin","keys","paste","output","control","prompts","interactive","list","capture","panes","text","monitor","sessions","linux"]