[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X0K7MEZ6HMHGENJS5F4HRH":3,"skill-same:01M6X0K7MEZ6HMHGENJS5F4HRH":107},{"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":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":30,"commitSha":67,"skillDirectory":68,"forksCount":14,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":86},"01M6X0K7MEZ6HMHGENJS5F4HRH","release",null,"Manages releases for multiclouddb-sdk-for-java modules. Validates release readiness, updates POM versions and changelogs, prepares a release branch for a PR against upstream\u002Fmain, and after merge creates and pushes per-module version tags that trigger the automated release pipeline.","microsoft\u002Fmulticlouddb-sdk-for-java","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6X0JWXE9VM36VP4ZCDEJ07G",7,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"for","pr","pom","updates","true","mm","trigger","false","cosmos","module","upstream","main","provider","modules","version","branch","gh","pipeline","beta","2026-11-10 10:12:30",false,"---\nname: release\ndescription: >\n  Manages releases for multiclouddb-sdk-for-java modules. Validates release\n  readiness, updates POM versions and changelogs, prepares a release branch\n  for a PR against upstream\u002Fmain, and after merge creates and pushes\n  per-module version tags that trigger the automated release pipeline.\nallowed-tools: bash git gh read_file edit\narguments:\n  module:\n    type: string\n    required: true\n    description: >\n      Module to release. One of: multiclouddb-api, multiclouddb-provider-cosmos,\n      multiclouddb-provider-dynamo, multiclouddb-provider-spanner.\n  version:\n    type: string\n    required: true\n    description: >\n      Version to release following semver (e.g. 0.1.0-beta.1, 1.0.0).\n  date:\n    type: string\n    required: false\n    default: today\n    description: >\n      Release date in YYYY-MM-DD format. Defaults to today.\nargument-hints:\n  module:\n    - multiclouddb-api\n    - multiclouddb-provider-cosmos\n    - multiclouddb-provider-dynamo\n    - multiclouddb-provider-spanner\n  version:\n    - 0.1.0-beta.1\n    - 0.1.0\n    - 1.0.0\n  date:\n    - \"2026-04-02\"\n---\n\n# Release\n\nOrchestrates the release of multiclouddb-sdk-for-java modules through a\nPR-based workflow: prepare a release branch with version bumps and changelog\nupdates, merge via PR, then create tags to trigger the release pipeline.\n\nCore scripts are in `\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002F` for deterministic behavior.\nReference material is in `\u003CTHIS_SKILL_DIRECTORY>\u002Freferences\u002Frelease-process.md`.\n\nPath note: All script paths are relative to this skill directory (this SKILL.md\nfile), not the repository root.\n\n## Prerequisites\n\n- `git` configured with push access to the fork (origin) and upstream repository\n- Working directory is the repository root\n- On the `main` branch with a clean working tree, up to date with origin\u002Fmain\n\n## Workflow\n\nExecute these phases in order. Stop and report if any phase fails.\n\n### Phase 1: List Modules\n\nRun the list-modules script to show current state:\n\n```bash\n\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Flist-modules.sh\n```\n\nPresent the output to the user. If the user hasn't specified a module or version,\nuse this information to help them decide.\n\n### Phase 2: Validate Release Readiness\n\nRun the validation script for the target module:\n\n```bash\n\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Fvalidate-release.sh --module \u003CMODULE> --version \u003CVERSION>\n```\n\nIf validation fails (non-zero exit), show all failures and stop. Provide the fix\ninstructions from the output. Do NOT proceed to Phase 3 until all checks pass.\n\n### Phase 3: Create Release Branch and PR\n\nCreate a feature branch on the fork with all release preparation changes:\n\n1. Create and switch to a new branch:\n   ```bash\n   git checkout -b release\u002F\u003CVERSION>\n   ```\n\n2. **Update POM versions** — If the version in root `pom.xml` properties differs\n   from the target release version, update the module-specific property in root\n   `pom.xml` using the `\u003Cmodule-name>.version` naming scheme (for example,\n   `\u003Cmulticlouddb-api.version>` or `\u003Cmulticlouddb-provider-cosmos.version>`).\n   The module POMs inherit via `${property}`.\n\n3. **Update changelogs** — For each module being released:\n   a. Read `\u003CMODULE>\u002FCHANGELOG.md`\n   b. Find the `## [Unreleased]` header line\n   c. Replace it with `## [\u003CVERSION>] — \u003CDATE>` (use the provided date or today)\n   d. Insert a new `## [Unreleased]` section above the renamed section with an\n      empty line after it\n\n4. **Commit** all changes with message:\n   `release: prepare \u003CVERSION> — update POM versions and changelogs`\n\n5. **Push** the branch to origin (fork):\n   ```bash\n   git push origin release\u002F\u003CVERSION>\n   ```\n\n6. **Generate PR description** and copy to clipboard. The user will create the\n   PR manually against `upstream\u002Fmain`.\n\n7. **Wait for PR merge** — Do NOT proceed to Phase 4 until the user confirms\n   the PR has been merged. The release tags must point to a commit on\n   upstream\u002Fmain that includes the version and changelog updates.\n\n### Phase 4: Create and Push Tags\n\nAfter the release PR is merged into upstream\u002Fmain:\n\n1. Switch to main and sync:\n   ```bash\n   git checkout main && git fetch upstream && git rebase upstream\u002Fmain\n   ```\n\n2. Create and push tags **one at a time** for each module being released.\n   Push to upstream, not origin:\n   ```bash\n   \u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Fcreate-release-tag.sh --module \u003CMODULE> --version \u003CVERSION>\n   ```\n   Or manually:\n   ```bash\n   git tag -a \"\u003CMODULE>-v\u003CVERSION>\" -m \"Release \u003CMODULE> v\u003CVERSION>\"\n   git push upstream \"\u003CMODULE>-v\u003CVERSION>\"\n   ```\n\n   **Critical:** Push each tag with a separate `git push` command. Pushing\n   multiple tags in a single command silently fails to trigger GitHub Actions.\n\n3. **Wait** for the workflow run to appear in the Actions tab before pushing\n   the next tag.\n\n### Phase 5: Monitor and Report\n\nAfter each tag is pushed:\n\n1. Report:\n   - The tag name and commit SHA\n   - Link to the Actions workflow run\n   - Remind the user that the `production` environment requires manual approval:\n     **Actions → Release → (the run) → Review deployments → Approve**\n\n## Multi-Module Release\n\nWhen releasing multiple modules, enforce dependency order:\n\n1. Release `multiclouddb-api` FIRST if it is in the release set\n2. Then release providers in any order (they are independent of each other)\n3. All modules can share a single release branch and PR (Phase 3)\n4. In Phase 4, push tags one at a time in dependency order\n\n**Critical:** Push each tag individually with a separate `git push upstream \u003Ctag>`\ncommand. Pushing multiple tags in a single `git push` silently fails to trigger\nGitHub Actions workflows. Wait for each workflow run to appear in the Actions tab\nbefore pushing the next tag.\n\nIf the API version changed and providers depend on the new version, the provider\nPOM properties must be updated in the same release PR before merging.\n\n## Troubleshooting\n\nRead `\u003CTHIS_SKILL_DIRECTORY>\u002Freferences\u002Frelease-process.md` for detailed\ntroubleshooting guidance covering version mismatches, dependency versions,\npipeline trigger failures, and approval issues.\n","# Release\n\nOrchestrates the release of multiclouddb-sdk-for-java modules through a\nPR-based workflow: prepare a release branch with version bumps and changelog\nupdates, merge via PR, then create tags to trigger the release pipeline.\n\nCore scripts are in `\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002F` for deterministic behavior.\nReference material is in `\u003CTHIS_SKILL_DIRECTORY>\u002Freferences\u002Frelease-process.md`.\n\nPath note: All script paths are relative to this skill directory (this SKILL.md\nfile), not the repository root.\n\n## Prerequisites\n\n- `git` configured with push access to the fork (origin) and upstream repository\n- Working directory is the repository root\n- On the `main` branch with a clean working tree, up to date with origin\u002Fmain\n\n## Workflow\n\nExecute these phases in order. Stop and report if any phase fails.\n\n### Phase 1: List Modules\n\nRun the list-modules script to show current state:\n\n```bash\n\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Flist-modules.sh\n```\n\nPresent the output to the user. If the user hasn't specified a module or version,\nuse this information to help them decide.\n\n### Phase 2: Validate Release Readiness\n\nRun the validation script for the target module:\n\n```bash\n\u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Fvalidate-release.sh --module \u003CMODULE> --version \u003CVERSION>\n```\n\nIf validation fails (non-zero exit), show all failures and stop. Provide the fix\ninstructions from the output. Do NOT proceed to Phase 3 until all checks pass.\n\n### Phase 3: Create Release Branch and PR\n\nCreate a feature branch on the fork with all release preparation changes:\n\n1. Create and switch to a new branch:\n   ```bash\n   git checkout -b release\u002F\u003CVERSION>\n   ```\n\n2. **Update POM versions** — If the version in root `pom.xml` properties differs\n   from the target release version, update the module-specific property in root\n   `pom.xml` using the `\u003Cmodule-name>.version` naming scheme (for example,\n   `\u003Cmulticlouddb-api.version>` or `\u003Cmulticlouddb-provider-cosmos.version>`).\n   The module POMs inherit via `${property}`.\n\n3. **Update changelogs** — For each module being released:\n   a. Read `\u003CMODULE>\u002FCHANGELOG.md`\n   b. Find the `## [Unreleased]` header line\n   c. Replace it with `## [\u003CVERSION>] — \u003CDATE>` (use the provided date or today)\n   d. Insert a new `## [Unreleased]` section above the renamed section with an\n      empty line after it\n\n4. **Commit** all changes with message:\n   `release: prepare \u003CVERSION> — update POM versions and changelogs`\n\n5. **Push** the branch to origin (fork):\n   ```bash\n   git push origin release\u002F\u003CVERSION>\n   ```\n\n6. **Generate PR description** and copy to clipboard. The user will create the\n   PR manually against `upstream\u002Fmain`.\n\n7. **Wait for PR merge** — Do NOT proceed to Phase 4 until the user confirms\n   the PR has been merged. The release tags must point to a commit on\n   upstream\u002Fmain that includes the version and changelog updates.\n\n### Phase 4: Create and Push Tags\n\nAfter the release PR is merged into upstream\u002Fmain:\n\n1. Switch to main and sync:\n   ```bash\n   git checkout main && git fetch upstream && git rebase upstream\u002Fmain\n   ```\n\n2. Create and push tags **one at a time** for each module being released.\n   Push to upstream, not origin:\n   ```bash\n   \u003CTHIS_SKILL_DIRECTORY>\u002Fscripts\u002Fcreate-release-tag.sh --module \u003CMODULE> --version \u003CVERSION>\n   ```\n   Or manually:\n   ```bash\n   git tag -a \"\u003CMODULE>-v\u003CVERSION>\" -m \"Release \u003CMODULE> v\u003CVERSION>\"\n   git push upstream \"\u003CMODULE>-v\u003CVERSION>\"\n   ```\n\n   **Critical:** Push each tag with a separate `git push` command. Pushing\n   multiple tags in a single command silently fails to trigger GitHub Actions.\n\n3. **Wait** for the workflow run to appear in the Actions tab before pushing\n   the next tag.\n\n### Phase 5: Monitor and Report\n\nAfter each tag is pushed:\n\n1. Report:\n   - The tag name and commit SHA\n   - Link to the Actions workflow run\n   - Remind the user that the `production` environment requires manual approval:\n     **Actions → Release → (the run) → Review deployments → Approve**\n\n## Multi-Module Release\n\nWhen releasing multiple modules, enforce dependency order:\n\n1. Release `multiclouddb-api` FIRST if it is in the release set\n2. Then release providers in any order (they are independent of each other)\n3. All modules can share a single release branch and PR (Phase 3)\n4. In Phase 4, push tags one at a time in dependency order\n\n**Critical:** Push each tag individually with a separate `git push upstream \u003Ctag>`\ncommand. Pushing multiple tags in a single `git push` silently fails to trigger\nGitHub Actions workflows. Wait for each workflow run to appear in the Actions tab\nbefore pushing the next tag.\n\nIf the API version changed and providers depend on the new version, the provider\nPOM properties must be updated in the same release PR before merging.\n\n## Troubleshooting\n\nRead `\u003CTHIS_SKILL_DIRECTORY>\u002Freferences\u002Frelease-process.md` for detailed\ntroubleshooting guidance covering version mismatches, dependency versions,\npipeline trigger failures, and approval issues.\n",{"name":5,"arguments":43,"description":53,"allowed-tools":54,"argument-hints":55},{"date":44,"module":48,"version":51},{"type":45,"default":46,"required":39,"description":47},"string","today","Release date in YYYY-MM-DD format. Defaults to today.\n",{"type":45,"required":49,"description":50},true,"Module to release. One of: multiclouddb-api, multiclouddb-provider-cosmos, multiclouddb-provider-dynamo, multiclouddb-provider-spanner.\n",{"type":45,"required":49,"description":52},"Version to release following semver (e.g. 0.1.0-beta.1, 1.0.0).\n","Manages releases for multiclouddb-sdk-for-java modules. Validates release readiness, updates POM versions and changelogs, prepares a release branch for a PR against upstream\u002Fmain, and after merge creates and pushes per-module version tags that trigger the automated release pipeline.\n","bash git gh read_file edit",{"date":56,"module":58,"version":63},[57],"2026-04-02",[59,60,61,62],"multiclouddb-api","multiclouddb-provider-cosmos","multiclouddb-provider-dynamo","multiclouddb-provider-spanner",[64,65,66],"0.1.0-beta.1","0.1.0","1.0.0","1fb90980ee7593a599b5ae049366d3b48274ff6a",".github\u002Fskills\u002Frelease","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-10-31 07:44:30",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":49},[76,79,82],{"tool":77,"command":78},"npx","npx skills add microsoft\u002Fmulticlouddb-sdk-for-java --skill release",{"tool":80,"command":81},"bunx","bunx skills add microsoft\u002Fmulticlouddb-sdk-for-java --skill release",{"tool":83,"command":84},"pnpm","pnpm dlx skills add microsoft\u002Fmulticlouddb-sdk-for-java --skill release","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002FSKILL.md",[87,93,99,103],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Frelease-process.md","REFERENCE","参考文档",5628,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002Freferences\u002Frelease-process.md",{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fcreate-release-tag.sh","SCRIPT","脚本",2084,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002Fscripts\u002Fcreate-release-tag.sh",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"scripts\u002Flist-modules.sh",1377,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002Fscripts\u002Flist-modules.sh",{"path":104,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Fvalidate-release.sh",6976,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease\u002Fscripts\u002Fvalidate-release.sh",[108],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":119,"publishedAt":38},"01M6X0K05A0XN8MJARQK9JRZNJ","portability-review","Cross-provider portability and documentation-alignment review skill for multiclouddb-sdk-for-java. Houses the canonical checklist (provider symmetry, conformance coverage, capability declarations, error normalization, cost-efficiency parity, doc\u002Fchangelog\u002Fspec alignment), the safe-publication state machine, cross-provider parity matrix template, and PowerShell diff loader. Invoked by the `portability-review` agent (and its subagents) when reviewing a diff, a branch, or a PR.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmulticlouddb-sdk-for-java\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fportability-review\u002FSKILL.md",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[120,121,122,123,124,19,125,126,127,31,128,129,34,35,130,131,132,133,20,134],"portability review","portability","review","diff","when","machine","error","efficiency","alignment","coverage","normalization","powershell","file","java","documentation"]