[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C28EYT514D8D06SDFE1515":3,"skill-same:01M6C28EYT514D8D06SDFE1515":108},{"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":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6C28EYT514D8D06SDFE1515","sdk-release",null,"This skill should be used when the user asks to \"release the SDK\", \"prepare a release\", \"publish a new version\", \"cut a release\", \"do a release\", or mentions the SDK release checklist or release process. Guides through the full software-agent-sdk release workflow from version bump to PyPI publication, emphasizing human checkpoints.","OpenHands\u002Fsoftware-agent-sdk","OpenHands","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F225919603?v=4","01M6C27VE6SQ4X635GVG804BRN","01M6C27VJK3R57C2Z3AVJ03NQS",1396,"MIT","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsdk-release\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"release","sdk release","sdk","do","new","Publication","when","agent-sdk","checkpoints","release checklist","guides","software","cut","full","human","bump","version","process","user","publish","pypi","prepare","workflow","release process","2026-11-10 10:12:30",false,"---\nname: sdk-release\ndescription: >-\n  This skill should be used when the user asks to \"release the SDK\",\n  \"prepare a release\", \"publish a new version\", \"cut a release\",\n  \"do a release\", or mentions the SDK release checklist or release process.\n  Guides through the full software-agent-sdk release workflow\n  from version bump to PyPI publication, emphasizing human checkpoints.\n---\n\n# SDK Release Guide\n\nThis skill walks through the software-agent-sdk release process step by step.\n\n> **? CRITICAL**: NEVER merge the release PR or create\u002Fpublish a GitHub\n> release without the human's explicit approval. Release is the last line\n> of human defense. Always present the current status and ask for\n> confirmation before performing any irreversible action.\n\n## Phase 1: Trigger the Prepare-Release Workflow\n\nDetermine the target version (SemVer `X.Y.Z`). Then trigger the\n`prepare-release.yml` workflow, which creates a release branch and PR\nautomatically.\n\n### Via GitHub UI\n\nNavigate to\n\u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Fprepare-release.yml>,\nclick **Run workflow**, enter the version (e.g. `1.16.0`), and run it.\n\n### Via GitHub API\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github+json\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Fprepare-release.yml\u002Fdispatches\" \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"version\": \"1.16.0\"\n    }\n  }'\n```\n\nThe workflow will:\n1. Validate version format\n2. Create branch `rel-\u003Cversion>`\n3. Run `make set-package-version version=\u003Cversion>` across all packages\n4. Update the `sdk_ref` default in the eval workflow\n5. Open a PR titled **\"Release v\\\u003Cversion\\>\"** with labels\n   `integration-test`, `behavior-test`, `test-examples`, and `security-scan`\n6. Notify `#proj-agent` with the release PR link and workflow actor\n\n### ⏸ Checkpoint — Confirm PR Created\n\nVerify the PR exists and the version changes look correct before continuing.\n\n```bash\ngh pr list --repo OpenHands\u002Fsoftware-agent-sdk \\\n  --head \"rel-\u003Cversion>\" --json number,title,url\n```\n\n## Phase 2: Address Deprecation Deadlines\n\nThe `deprecation-check` CI job runs on every PR. If the release version\ncrosses any deprecation deadline declared in the codebase, the check will\nfail.\n\nReview the failing check output and either:\n- Remove the deprecated code if the deadline has passed, **or**\n- Extend the deadline with justification.\n\nPush fixes to the release branch. The check must pass before merging.\n\n## Phase 3: Wait for CI — Checks Must Pass\n\nThe release PR triggers three labeled test suites and a security scan.\n**All four must pass.**\n\n| Label | Suite | What it covers |\n|-------|-------|----------------|\n| `integration-test` | Integration tests | End-to-end agent scenarios |\n| `behavior-test` | Behavior tests | Agent behavioral guardrails |\n| `test-examples` | Example tests | All runnable examples in `examples\u002F` |\n| `security-scan` | Release security scan | Approval drift and dependency diff checks |\n\nMonitor status:\n\n```bash\ngh pr checks \u003CPR_NUMBER> --repo OpenHands\u002Fsoftware-agent-sdk\n```\n\n### ⏸ Checkpoint — Human Judgment on Failures\n\nSome test failures may be pre-existing or flaky. Decide with the team\nwhether each failure is:\n- **Blocking** — must fix before release\n- **Known \u002F pre-existing** — acceptable to release with a follow-up issue\n- **Flaky** — re-run the workflow\n\nRe-run failed jobs:\n\n```bash\n# Find the run ID\ngh run list --repo OpenHands\u002Fsoftware-agent-sdk \\\n  --branch \"rel-\u003Cversion>\" --limit 5\n\n# Re-run failed jobs\ngh run rerun \u003CRUN_ID> --repo OpenHands\u002Fsoftware-agent-sdk --failed\n```\n\n## Phase 4: Run Evaluation (Optional but Recommended)\n\nTrigger an evaluation run on SWE-bench (or another benchmark) against the\nrelease branch to catch regressions. See the `run-eval` skill for full\ndetails.\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github+json\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Frun-eval.yml\u002Fdispatches\" \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"benchmark\": \"swebench\",\n      \"sdk_ref\": \"v\u003Cversion>\",\n      \"eval_limit\": \"50\",\n      \"reason\": \"Pre-release eval for v\u003Cversion>\",\n      \"allow_unreleased_branches\": \"true\"\n    }\n  }'\n```\n\n### ⏸ Checkpoint — Evaluate Results\n\nCompare the eval results against the previous release. Significant score\ndrops should block the release.\n\n## Phase 5: Merge the Release PR\n\n> **? STOP — Do NOT merge without explicit human approval.**\n> Present the CI status summary and ask the human to confirm before merging.\n> Merging is effectively irreversible — it automatically triggers the full\n> release pipeline (GitHub release → PyPI publish → downstream version bumps).\n\nOnce the human approves:\n\n```bash\ngh pr merge \u003CPR_NUMBER> --repo OpenHands\u002Fsoftware-agent-sdk --merge\n```\n\n## Phase 6: Automated Release Pipeline (no action needed)\n\nWhen the release PR is merged, the following happens automatically:\n\n1. **`create-release.yml`** detects the merged `rel-*` branch, creates a\n   GitHub release with tag `v\u003Cversion>` and auto-generated release notes.\n2. **`pypi-release.yml`** triggers on the published release and publishes\n   all four packages to PyPI:\n   - `openhands-sdk`\n   - `openhands-tools`\n   - `openhands-workspace`\n   - `openhands-agent-server`\n3. **`version-bump-prs.yml`** triggers after successful PyPI publish and\n   creates downstream version bump PRs.\n\n### ⏸ Checkpoint — Verify PyPI Publication\n\n```bash\n# Check each package is available (allow a few minutes for indexing)\nfor pkg in openhands-sdk openhands-tools openhands-workspace openhands-agent-server; do\n  curl -s -o \u002Fdev\u002Fnull -w \"$pkg: %{http_code}\\n\" \\\n    \"https:\u002F\u002Fpypi.org\u002Fpypi\u002F$pkg\u002F\u003Cversion>\u002Fjson\"\ndone\n```\n\nAll should return `200`.\n\n## Phase 7: Post-Release Announcements\n\nAfter the automated pipeline completes, compose a Slack message for the\nhuman to post, including links to the downstream version bump PRs:\n\n```\n? *SDK v\u003Cversion> published to PyPI!*\n\nVersion bump PRs:\n• \u003Chttps:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands\u002Fpulls?q=is%3Apr+bump-sdk-\u003Cversion>|OpenHands>\n• \u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fopenhands-cli\u002Fpulls?q=is%3Apr+bump-sdk-\u003Cversion>|OpenHands-CLI>\n\nRelease: \u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Freleases\u002Ftag\u002Fv\u003Cversion>|v\u003Cversion>>\n```\n\nSee `references\u002Fpost-release-checklist.md` for details on reviewing\ndownstream PRs and handling any issues.\n\n## Quick Reference — Full Checklist\n\n- [ ] Trigger `prepare-release.yml` with target version\n- [ ] Verify release PR is created\n- [ ] Fix deprecation deadline failures (if any)\n- [ ] Integration tests pass\n- [ ] Behavior tests pass\n- [ ] Example tests pass\n- [ ] Security scan passes\n- [ ] (Optional) Evaluation run shows no regressions\n- [ ] **? Get human approval**, then merge the release PR\n- [ ] _(Automated)_ GitHub release created with auto-generated notes\n- [ ] _(Automated)_ Packages published to PyPI\n- [ ] _(Automated)_ Downstream version bump PRs created\n- [ ] Verify packages appear on PyPI\n- [ ] Send Slack message with downstream version bump PR links\n","# SDK Release Guide\n\nThis skill walks through the software-agent-sdk release process step by step.\n\n> **? CRITICAL**: NEVER merge the release PR or create\u002Fpublish a GitHub\n> release without the human's explicit approval. Release is the last line\n> of human defense. Always present the current status and ask for\n> confirmation before performing any irreversible action.\n\n## Phase 1: Trigger the Prepare-Release Workflow\n\nDetermine the target version (SemVer `X.Y.Z`). Then trigger the\n`prepare-release.yml` workflow, which creates a release branch and PR\nautomatically.\n\n### Via GitHub UI\n\nNavigate to\n\u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Fprepare-release.yml>,\nclick **Run workflow**, enter the version (e.g. `1.16.0`), and run it.\n\n### Via GitHub API\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github+json\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Fprepare-release.yml\u002Fdispatches\" \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"version\": \"1.16.0\"\n    }\n  }'\n```\n\nThe workflow will:\n1. Validate version format\n2. Create branch `rel-\u003Cversion>`\n3. Run `make set-package-version version=\u003Cversion>` across all packages\n4. Update the `sdk_ref` default in the eval workflow\n5. Open a PR titled **\"Release v\\\u003Cversion\\>\"** with labels\n   `integration-test`, `behavior-test`, `test-examples`, and `security-scan`\n6. Notify `#proj-agent` with the release PR link and workflow actor\n\n### ⏸ Checkpoint — Confirm PR Created\n\nVerify the PR exists and the version changes look correct before continuing.\n\n```bash\ngh pr list --repo OpenHands\u002Fsoftware-agent-sdk \\\n  --head \"rel-\u003Cversion>\" --json number,title,url\n```\n\n## Phase 2: Address Deprecation Deadlines\n\nThe `deprecation-check` CI job runs on every PR. If the release version\ncrosses any deprecation deadline declared in the codebase, the check will\nfail.\n\nReview the failing check output and either:\n- Remove the deprecated code if the deadline has passed, **or**\n- Extend the deadline with justification.\n\nPush fixes to the release branch. The check must pass before merging.\n\n## Phase 3: Wait for CI — Checks Must Pass\n\nThe release PR triggers three labeled test suites and a security scan.\n**All four must pass.**\n\n| Label | Suite | What it covers |\n|-------|-------|----------------|\n| `integration-test` | Integration tests | End-to-end agent scenarios |\n| `behavior-test` | Behavior tests | Agent behavioral guardrails |\n| `test-examples` | Example tests | All runnable examples in `examples\u002F` |\n| `security-scan` | Release security scan | Approval drift and dependency diff checks |\n\nMonitor status:\n\n```bash\ngh pr checks \u003CPR_NUMBER> --repo OpenHands\u002Fsoftware-agent-sdk\n```\n\n### ⏸ Checkpoint — Human Judgment on Failures\n\nSome test failures may be pre-existing or flaky. Decide with the team\nwhether each failure is:\n- **Blocking** — must fix before release\n- **Known \u002F pre-existing** — acceptable to release with a follow-up issue\n- **Flaky** — re-run the workflow\n\nRe-run failed jobs:\n\n```bash\n# Find the run ID\ngh run list --repo OpenHands\u002Fsoftware-agent-sdk \\\n  --branch \"rel-\u003Cversion>\" --limit 5\n\n# Re-run failed jobs\ngh run rerun \u003CRUN_ID> --repo OpenHands\u002Fsoftware-agent-sdk --failed\n```\n\n## Phase 4: Run Evaluation (Optional but Recommended)\n\nTrigger an evaluation run on SWE-bench (or another benchmark) against the\nrelease branch to catch regressions. See the `run-eval` skill for full\ndetails.\n\n```bash\ncurl -X POST \\\n  -H \"Authorization: token $GITHUB_TOKEN\" \\\n  -H \"Accept: application\u002Fvnd.github+json\" \\\n  \"https:\u002F\u002Fapi.github.com\u002Frepos\u002FOpenHands\u002Fsoftware-agent-sdk\u002Factions\u002Fworkflows\u002Frun-eval.yml\u002Fdispatches\" \\\n  -d '{\n    \"ref\": \"main\",\n    \"inputs\": {\n      \"benchmark\": \"swebench\",\n      \"sdk_ref\": \"v\u003Cversion>\",\n      \"eval_limit\": \"50\",\n      \"reason\": \"Pre-release eval for v\u003Cversion>\",\n      \"allow_unreleased_branches\": \"true\"\n    }\n  }'\n```\n\n### ⏸ Checkpoint — Evaluate Results\n\nCompare the eval results against the previous release. Significant score\ndrops should block the release.\n\n## Phase 5: Merge the Release PR\n\n> **? STOP — Do NOT merge without explicit human approval.**\n> Present the CI status summary and ask the human to confirm before merging.\n> Merging is effectively irreversible — it automatically triggers the full\n> release pipeline (GitHub release → PyPI publish → downstream version bumps).\n\nOnce the human approves:\n\n```bash\ngh pr merge \u003CPR_NUMBER> --repo OpenHands\u002Fsoftware-agent-sdk --merge\n```\n\n## Phase 6: Automated Release Pipeline (no action needed)\n\nWhen the release PR is merged, the following happens automatically:\n\n1. **`create-release.yml`** detects the merged `rel-*` branch, creates a\n   GitHub release with tag `v\u003Cversion>` and auto-generated release notes.\n2. **`pypi-release.yml`** triggers on the published release and publishes\n   all four packages to PyPI:\n   - `openhands-sdk`\n   - `openhands-tools`\n   - `openhands-workspace`\n   - `openhands-agent-server`\n3. **`version-bump-prs.yml`** triggers after successful PyPI publish and\n   creates downstream version bump PRs.\n\n### ⏸ Checkpoint — Verify PyPI Publication\n\n```bash\n# Check each package is available (allow a few minutes for indexing)\nfor pkg in openhands-sdk openhands-tools openhands-workspace openhands-agent-server; do\n  curl -s -o \u002Fdev\u002Fnull -w \"$pkg: %{http_code}\\n\" \\\n    \"https:\u002F\u002Fpypi.org\u002Fpypi\u002F$pkg\u002F\u003Cversion>\u002Fjson\"\ndone\n```\n\nAll should return `200`.\n\n## Phase 7: Post-Release Announcements\n\nAfter the automated pipeline completes, compose a Slack message for the\nhuman to post, including links to the downstream version bump PRs:\n\n```\n? *SDK v\u003Cversion> published to PyPI!*\n\nVersion bump PRs:\n• \u003Chttps:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands\u002Fpulls?q=is%3Apr+bump-sdk-\u003Cversion>|OpenHands>\n• \u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fopenhands-cli\u002Fpulls?q=is%3Apr+bump-sdk-\u003Cversion>|OpenHands-CLI>\n\nRelease: \u003Chttps:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Freleases\u002Ftag\u002Fv\u003Cversion>|v\u003Cversion>>\n```\n\nSee `references\u002Fpost-release-checklist.md` for details on reviewing\ndownstream PRs and handling any issues.\n\n## Quick Reference — Full Checklist\n\n- [ ] Trigger `prepare-release.yml` with target version\n- [ ] Verify release PR is created\n- [ ] Fix deprecation deadline failures (if any)\n- [ ] Integration tests pass\n- [ ] Behavior tests pass\n- [ ] Example tests pass\n- [ ] Security scan passes\n- [ ] (Optional) Evaluation run shows no regressions\n- [ ] **? Get human approval**, then merge the release PR\n- [ ] _(Automated)_ GitHub release created with auto-generated notes\n- [ ] _(Automated)_ Packages published to PyPI\n- [ ] _(Automated)_ Downstream version bump PRs created\n- [ ] Verify packages appear on PyPI\n- [ ] Send Slack message with downstream version bump PR links\n",{"name":5,"description":7},"main","98849457621881ae2414719b82b8bc1cf535b4ab",".agents\u002Fskills\u002Fsdk-release",781,"https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk","https:\u002F\u002Fgithub.com\u002FOpenHands","https:\u002F\u002Fopenhands.dev","2026-11-15 01:41:08",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add OpenHands\u002Fsoftware-agent-sdk --skill sdk-release",{"tool":66,"command":67},"bunx","bunx skills add OpenHands\u002Fsoftware-agent-sdk --skill sdk-release",{"tool":69,"command":70},"pnpm","pnpm dlx skills add OpenHands\u002Fsoftware-agent-sdk --skill sdk-release","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsdk-release\u002FSKILL.md",true,[74,80,84,88,92,96,100,104],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fautomatic-cost-controls.md","REFERENCE","参考文档",2941,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Fautomatic-cost-controls.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fbudget-alerts.md",2890,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Fbudget-alerts.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fbudget-tracking.md",2805,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Fbudget-tracking.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fcost-dashboard.md",1277,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Fcost-dashboard.md",{"path":93,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Ferrors.md",323,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Ferrors.md",{"path":97,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Fexamples.md",87,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Fexamples.md",{"path":101,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fpost-release-checklist.md",3016,"https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsdk-release\u002Freferences\u002Fpost-release-checklist.md",{"path":105,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Frequest-level-controls.md",2255,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fplugins-community\u002Fplugins\u002Fsaas-packs\u002Fopenrouter-pack\u002Fskills\u002Fopenrouter-cost-controls\u002Freferences\u002Frequest-level-controls.md",[109,136,146,155,164,169],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":47},"01M70N7TM3VRT2YVJWMFJB93R4","verify-sdk","This skill should be used to \"verify SDK behavior\", \"check an SDK change against the feature map\", \"run the SDK feature map\", \"maintain the SDK feature map\", or \"run the daily SDK map pass\". It holds the maintained map of what the OpenHands SDK does in-process (agent loop, LLMs, conversations, events, condensers, skills, plugins, MCP, hooks, sub-agents, critic, security, tools, workspaces, settings, observability, ACP), the control-sdk driver its recipes use, and sdk-map (check, owners, baseline, run, report).","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fverify-sdk\u002FSKILL.md",[115],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[117,118,25,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135],"verify sdk","verify","critic","conversations","feature","control","map","maintain","workspaces","daily","hooks","use","check","openhands","loop","observability","change","llms","MCP",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":47},"01M6C29EG7KM3YYQK1TX747Q0X","only","The one component in a fixed location this format discovers.","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fplugins\u002Fagent_plugins\u002Fwrong-locations\u002Fskills\u002Fonly\u002FSKILL.md",[],[138,143,144,145],"location","format","component",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":47},"01M6C29D0ZE9EAD0B72S5C7TYC","never","Must never be discovered; the manifest is rejected first.","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fplugins\u002Fagent_plugins\u002Funsupported-schema\u002Fskills\u002Fnever\u002FSKILL.md",[],[148,153,154],"first","manifest",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":47},"01M6C29BSP5CJZ6T7A2HM18C35","good","Loads while its broken sibling is skipped.","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fplugins\u002Fagent_plugins\u002Fpartial-failures\u002Fskills\u002Fgood\u002FSKILL.md",[],[157,162,163],"loads","broken",{"skillNo":165,"name":163,"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":166,"categories":167,"keywords":168,"publishedAt":47},"01M6C29ADJKMKDVYG57TSAZV7J","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fplugins\u002Fagent_plugins\u002Fpartial-failures\u002Fskills\u002Fbroken\u002FSKILL.md",[],[163],{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":47},"01M6C2996Q7PX47VFV5P4KJ5F8","ok","Loads despite the two non-fatal manifest violations.","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fplugins\u002Fagent_plugins\u002Fnon-fatal-manifest\u002Fskills\u002Fok\u002FSKILL.md",[],[171,154,162]]