[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69APGDTZXRGGPR88CVQWMY8":3,"skill-same:01M69APGDTZXRGGPR88CVQWMY8":62},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M69APGDTZXRGGPR88CVQWMY8","bump-version",null,"Bump WebUI to an input release version, run the full gate, and prepare a release PR with bucketed changes since the previous v-prefixed tag.","microsoft\u002Fwebui","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69APCAY31B400ERZA9BVA20",102,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbump-version\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"bump version","version","bump","prepare","pr","run","release","release version","gate","webui","full","input","with","changes","2026-11-10 10:12:30",false,"---\nname: bump-version\ndescription: Bump WebUI to an input release version, run the full gate, and prepare a release PR with bucketed changes since the previous v-prefixed tag.\n---\n\n# Bump Version Release PR\n\nUse this skill when preparing a WebUI release version bump PR.\n\n## Inputs\n\nAsk for the release version if the user did not provide one. The input must be the bare semver version, without a leading `v`:\n\n```text\n0.0.16\n```\n\nUse `v\u003Cversion>` only when comparing or creating Git tags.\n\nHotfix releases use the repository hotfix command instead of the stable release\nPR workflow:\n\n```bash\ncargo xtask hotfix \u003Ccommit> \u003Coldest-tag> [--dry-run] [--support-commit \u003Ccommit>]\n```\n\n`\u003Coldest-tag>` may be written with or without the leading `v`. The command\nincrements the `-hotfix.\u003Cnumber>` suffix independently for every stable release\ntag in range, creates each branch as `hotfix\u002Fv\u003Cversion>`, and pushes it to queue\nthe guarded Azure release pipeline. Run with `--dry-run` first when preparing\nmore than one release line. Use `--support-commit` when an older release line\nneeds a newer revision of the hotfix tooling than the commit that originally\nintroduced it.\n\n## Workflow\n\n1. Make sure the working branch is not `main`. If needed, create a release branch named `\u003Cuser>\u002Fbump-v\u003Cversion>`.\n2. Fetch tags so the release range is current:\n\n   ```bash\n   git fetch --tags --quiet\n   ```\n\n3. Run the version bump:\n\n   ```bash\n   cargo xtask version \u003Cversion>\n   ```\n\n4. Run the full quality gate and fix any failures:\n\n   ```bash\n   cargo xtask check\n   ```\n\n5. Find the previous release tag. WebUI release tags are prefixed with `v`:\n\n   ```bash\n   previous_tag=$(git tag --list 'v[0-9]*' --sort=-v:refname | grep -v \"^v\u003Cversion>$\" | head -n 1)\n   ```\n\n   Stop if no previous tag is found.\n\n6. Collect commits from the previous release through the current base commit. Do this before committing the version bump so release notes do not include the bump commit:\n\n   ```bash\n   git --no-pager log --reverse --format='%s%x09%H' \"${previous_tag}..HEAD\"\n   ```\n\n7. Build the PR release notes by grouping all commits into user-facing buckets and attributing every supporting PR to its contributor.\n8. Commit the version bump with an imperative message:\n\n   ```text\n   chore: bump version to \u003Cversion>\n\n   Co-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>\n   ```\n\n9. Open or update the release PR titled:\n\n   ```text\n   chore: bump version to \u003Cversion>\n   ```\n\n## Release notes bucketing\n\nUse these buckets, omitting empty buckets:\n\n| Bucket | Include |\n|--------|---------|\n| `Features` | `feat:` commits, feature PRs, new user-visible capabilities, demos that showcase new behavior |\n| `Fixes` | `fix:` commits, bug fixes, regressions, correctness fixes |\n| `Docs` | `docs:` commits, documentation-only PRs, policy\u002Fissue-template changes, and docs work from mixed PRs |\n| `Maintenance` | Release-relevant chores, refactors, dependency or CI changes that do not fit the other buckets |\n\nPrefer concise, user-facing summaries over raw commit subjects. Combine related commits into one bullet when they describe the same release-note item.\n\nFor each bullet, include the supporting PR title, number, and contributor handle in parentheses. Put the contributor immediately after the PR reference:\n\n```text\n- summary sentence (PR title #number by @contributor).\n```\n\nUse the PR author's GitHub login as the contributor, not the commit author or a co-author. When one bullet combines multiple PRs, repeat `#number by @contributor` for each supporting PR.\n\nDo not include commit SHAs in the PR release notes. If a commit subject already contains a PR number, use it, then use `gh` to retrieve the PR title and `author.login`. Otherwise, use `gh` to inspect the commit or associated PR when possible.\n\n## PR body template\n\n```markdown\n## Release\n\nBumps WebUI to `\u003Cversion>`.\n\nPrevious release tag: `\u003Cprevious_tag>`\n\n## Changes since `\u003Cprevious_tag>`\n\nFeatures:\n\n- \u003Cfeature summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nFixes:\n\n- \u003Cfix summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nDocs:\n\n- \u003Cdocs summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nMaintenance:\n\n- \u003Cmaintenance summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\n## Validation\n\n- `cargo xtask check`\n```\n\nRemove empty buckets before opening or updating the PR.\n\n## Example style\n\n```markdown\nFeatures:\n\n- parser comment policy strips template\u002Fstyle comments while preserving legal comments, with CLI, Node, docs, and benchmark coverage (feat: strip template and style comments in parser and support legal comments #326 by @mohamedmansour).\n- CSS module delivery now emits import-map data URI modules and the commerce demo defaults to module styles (Emit style modules via importmap + dataURI instead of \u003Cstyle type=\"module\"> #325 by @KurtCattiSchmidt, Switch default styles to module for commerce demo #327 by @KurtCattiSchmidt).\n\nFixes:\n\n- repeat-scope event arguments hydrate correctly for framework bindings, including strict argument handling (Fix event handler args in repeat scopes #317 by @jibin7jose, fix: hydrate strict event arguments in repeat scopes #322 by @mohamedmansour).\n- client binding lifecycle ordering preserves child updates across conditional and repeated DOM paths (fix: initialize child bindings before connection #329 by @mohamedmansour).\n- compiled templates preserve raw style text instead of altering author-provided CSS content (fix: preserve raw style text in compiled templates #330 by @mohamedmansour).\n\nDocs:\n\n- issue forms, contribution\u002Fsupport policy, framework rendering docs, CLI docs, and integration guides were refreshed (chore: clarify contribution and support policy #321 by @mohamedmansour, chore: add GitHub issue forms #328 by @mohamedmansour, plus docs in fix: hydrate strict event arguments in repeat scopes #322 by @mohamedmansour\u002FEmit style modules via importmap + dataURI instead of \u003Cstyle type=\"module\"> #325 by @KurtCattiSchmidt\u002Ffeat: strip template and style comments in parser and support legal comments #326 by @mohamedmansour\u002Ffix: initialize child bindings before connection #329 by @mohamedmansour).\n```\n","# Bump Version Release PR\n\nUse this skill when preparing a WebUI release version bump PR.\n\n## Inputs\n\nAsk for the release version if the user did not provide one. The input must be the bare semver version, without a leading `v`:\n\n```text\n0.0.16\n```\n\nUse `v\u003Cversion>` only when comparing or creating Git tags.\n\nHotfix releases use the repository hotfix command instead of the stable release\nPR workflow:\n\n```bash\ncargo xtask hotfix \u003Ccommit> \u003Coldest-tag> [--dry-run] [--support-commit \u003Ccommit>]\n```\n\n`\u003Coldest-tag>` may be written with or without the leading `v`. The command\nincrements the `-hotfix.\u003Cnumber>` suffix independently for every stable release\ntag in range, creates each branch as `hotfix\u002Fv\u003Cversion>`, and pushes it to queue\nthe guarded Azure release pipeline. Run with `--dry-run` first when preparing\nmore than one release line. Use `--support-commit` when an older release line\nneeds a newer revision of the hotfix tooling than the commit that originally\nintroduced it.\n\n## Workflow\n\n1. Make sure the working branch is not `main`. If needed, create a release branch named `\u003Cuser>\u002Fbump-v\u003Cversion>`.\n2. Fetch tags so the release range is current:\n\n   ```bash\n   git fetch --tags --quiet\n   ```\n\n3. Run the version bump:\n\n   ```bash\n   cargo xtask version \u003Cversion>\n   ```\n\n4. Run the full quality gate and fix any failures:\n\n   ```bash\n   cargo xtask check\n   ```\n\n5. Find the previous release tag. WebUI release tags are prefixed with `v`:\n\n   ```bash\n   previous_tag=$(git tag --list 'v[0-9]*' --sort=-v:refname | grep -v \"^v\u003Cversion>$\" | head -n 1)\n   ```\n\n   Stop if no previous tag is found.\n\n6. Collect commits from the previous release through the current base commit. Do this before committing the version bump so release notes do not include the bump commit:\n\n   ```bash\n   git --no-pager log --reverse --format='%s%x09%H' \"${previous_tag}..HEAD\"\n   ```\n\n7. Build the PR release notes by grouping all commits into user-facing buckets and attributing every supporting PR to its contributor.\n8. Commit the version bump with an imperative message:\n\n   ```text\n   chore: bump version to \u003Cversion>\n\n   Co-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>\n   ```\n\n9. Open or update the release PR titled:\n\n   ```text\n   chore: bump version to \u003Cversion>\n   ```\n\n## Release notes bucketing\n\nUse these buckets, omitting empty buckets:\n\n| Bucket | Include |\n|--------|---------|\n| `Features` | `feat:` commits, feature PRs, new user-visible capabilities, demos that showcase new behavior |\n| `Fixes` | `fix:` commits, bug fixes, regressions, correctness fixes |\n| `Docs` | `docs:` commits, documentation-only PRs, policy\u002Fissue-template changes, and docs work from mixed PRs |\n| `Maintenance` | Release-relevant chores, refactors, dependency or CI changes that do not fit the other buckets |\n\nPrefer concise, user-facing summaries over raw commit subjects. Combine related commits into one bullet when they describe the same release-note item.\n\nFor each bullet, include the supporting PR title, number, and contributor handle in parentheses. Put the contributor immediately after the PR reference:\n\n```text\n- summary sentence (PR title #number by @contributor).\n```\n\nUse the PR author's GitHub login as the contributor, not the commit author or a co-author. When one bullet combines multiple PRs, repeat `#number by @contributor` for each supporting PR.\n\nDo not include commit SHAs in the PR release notes. If a commit subject already contains a PR number, use it, then use `gh` to retrieve the PR title and `author.login`. Otherwise, use `gh` to inspect the commit or associated PR when possible.\n\n## PR body template\n\n```markdown\n## Release\n\nBumps WebUI to `\u003Cversion>`.\n\nPrevious release tag: `\u003Cprevious_tag>`\n\n## Changes since `\u003Cprevious_tag>`\n\nFeatures:\n\n- \u003Cfeature summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nFixes:\n\n- \u003Cfix summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nDocs:\n\n- \u003Cdocs summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\nMaintenance:\n\n- \u003Cmaintenance summary> (\u003CPR title> #\u003Cnumber> by @\u003Ccontributor>).\n\n## Validation\n\n- `cargo xtask check`\n```\n\nRemove empty buckets before opening or updating the PR.\n\n## Example style\n\n```markdown\nFeatures:\n\n- parser comment policy strips template\u002Fstyle comments while preserving legal comments, with CLI, Node, docs, and benchmark coverage (feat: strip template and style comments in parser and support legal comments #326 by @mohamedmansour).\n- CSS module delivery now emits import-map data URI modules and the commerce demo defaults to module styles (Emit style modules via importmap + dataURI instead of \u003Cstyle type=\"module\"> #325 by @KurtCattiSchmidt, Switch default styles to module for commerce demo #327 by @KurtCattiSchmidt).\n\nFixes:\n\n- repeat-scope event arguments hydrate correctly for framework bindings, including strict argument handling (Fix event handler args in repeat scopes #317 by @jibin7jose, fix: hydrate strict event arguments in repeat scopes #322 by @mohamedmansour).\n- client binding lifecycle ordering preserves child updates across conditional and repeated DOM paths (fix: initialize child bindings before connection #329 by @mohamedmansour).\n- compiled templates preserve raw style text instead of altering author-provided CSS content (fix: preserve raw style text in compiled templates #330 by @mohamedmansour).\n\nDocs:\n\n- issue forms, contribution\u002Fsupport policy, framework rendering docs, CLI docs, and integration guides were refreshed (chore: clarify contribution and support policy #321 by @mohamedmansour, chore: add GitHub issue forms #328 by @mohamedmansour, plus docs in fix: hydrate strict event arguments in repeat scopes #322 by @mohamedmansour\u002FEmit style modules via importmap + dataURI instead of \u003Cstyle type=\"module\"> #325 by @KurtCattiSchmidt\u002Ffeat: strip template and style comments in parser and support legal comments #326 by @mohamedmansour\u002Ffix: initialize child bindings before connection #329 by @mohamedmansour).\n```\n",{"name":5,"description":7},"main","fd2d75282e29638442f161e202bf109d38e3ceb3",".github\u002Fskills\u002Fbump-version",24,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui","https:\u002F\u002Fmicrosoft.github.io\u002Fwebui\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 13:21:27",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add microsoft\u002Fwebui --skill bump-version",{"tool":54,"command":55},"bunx","bunx skills add microsoft\u002Fwebui --skill bump-version",{"tool":57,"command":58},"pnpm","pnpm dlx skills add microsoft\u002Fwebui --skill bump-version","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbump-version\u002FSKILL.md",true,[],[63,82,100,121,136,148],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":33},"01M69AQ6PSR5AXD1W7K822EJEJ","webui-reference","Use when writing or reviewing WebUI application or framework code. Load the application's installed reference or the WebUI source checkout's canonical reference.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002Fai\u002FSKILL.md",[],[70,28,71,72,73,74,75,76,77,78,79,80,81],"webui reference","reference","writing","checkout","canonical","use","load","source","code","application","framework","when",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":33},"01M69AQ4B9AXF52SB3A0NVW4QT","webui-dev","Build interactive WebUI apps with compiled-template hydration, template syntax, component patterns, and CLI usage.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwebui-dev\u002FSKILL.md",[],[89,28,90,91,92,93,94,95,31,96,97,98,99],"dev","webui dev","component","cli","usage","apps","interactive","build","template","syntax","patterns",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":111,"publishedAt":33},"01M69AQ21S81FTXJF5716X3JPB","testing","Test patterns, fixture structure, and when to use E2E vs unit tests.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftesting\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[102,112,81,99,113,114,115,75,116,117,118,119,120],"structure","when to use","test patterns","fixture","test","unit tests","unit","tests","e2e",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":33},"01M69APZVHA8B3AM0S1WJ1T5BC","quality-gate","Run before every commit or push: formatting, linting, tests, dependency audits, builds, and docs.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fquality-gate\u002FSKILL.md",[],[128,27,129,130,131,132,133,134,24,119,135],"quality","quality gate","docs","commit","push","linting","dependency","formatting",{"skillNo":137,"name":23,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":33},"01M69APXXGESWZ75E8B5PKWC8H","Guidance for branch naming, commit messages, and PR titles.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpr\u002FSKILL.md",[],[23,142,131,143,144,145,146,147],"guidance","branch","for","messages","naming","commit messages",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":154,"publishedAt":33},"01M69APVKEAZD650TFNCT9WMN1","perf","Speed and memory performance rules for Rust crates, the Node addon, webui-framework, and webui-delivery.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fwebui\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fperf\u002FSKILL.md",[],[150,155,156,157,144,28,158,159,160,161,80],"memory","performance","rust","delivery","node","speed","Rules"]