[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69BC5HS0CEXMPMHXNC8AMPX":3,"skill-same:01M69BC5HS0CEXMPMHXNC8AMPX":67},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M69BC5HS0CEXMPMHXNC8AMPX","add-dock-band",null,"Add dock band support to your Command Palette extension for persistent toolbar widgets. Use when asked to add dock support, toolbar buttons, persistent UI widgets, taskbar integration, live-updating status displays, quick-access buttons, or always-visible controls. Supports single buttons, multi-button strips, and live-updating content.","microsoft\u002FPowerToys","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69BB0G8W7E0BMJRDE4NW1BD",140873,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fcmdpal\u002FExtensionTemplate\u002FTemplateCmdPalExtension\u002F.github\u002Fskills\u002Fadd-dock-band\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"add dock band","add","extension","buttons","when","single","for","quick","multi","palette","controls","support","live","widgets","use","command","access","integration","command palette","status","2026-11-10 10:12:30",false,"---\nname: add-dock-band\ndescription: >-\n  Add dock band support to your Command Palette extension for persistent toolbar widgets.\n  Use when asked to add dock support, toolbar buttons, persistent UI widgets,\n  taskbar integration, live-updating status displays, quick-access buttons,\n  or always-visible controls. Supports single buttons, multi-button strips,\n  and live-updating content.\n---\n\n# Add Dock Band Support\n\nThe Command Palette Dock is a persistent toolbar at the edge of the user's screen. Your extension can provide **dock bands** — strips of items that appear in the Dock — giving users quick access to commands without opening the full Command Palette.\n\n## When to Use This Skill\n\n- Adding a quick-access button to the persistent toolbar\n- Creating a multi-button toolbar strip\n- Displaying live-updating information (clock, CPU usage, etc.)\n- Providing frequently-used commands without opening the full palette\n\n## Prerequisites\n\n- Command Palette Extension SDK version 0.9 or later (`Microsoft.CommandPalette.Extensions` ≥ 0.9.260303001)\n\n## Quick Start: Single Button Dock Band\n\nOverride `GetDockBands()` in your `CommandProvider`:\n\n```csharp\npublic partial class MyCommandsProvider : CommandProvider\n{\n    private readonly ICommandItem[] _commands;\n    private readonly ICommandItem _dockBand;\n\n    public MyCommandsProvider()\n    {\n        DisplayName = \"My Extension\";\n        Id = \"com.mycompany.myextension\"; \u002F\u002F Unique ID required for dock\n\n        var mainPage = new MyPage();\n        _dockBand = new CommandItem(mainPage) { Title = DisplayName };\n        _commands = [new CommandItem(mainPage) { Title = DisplayName }];\n    }\n\n    public override ICommandItem[] TopLevelCommands() => _commands;\n\n    public override ICommandItem[]? GetDockBands() => [_dockBand];\n}\n```\n\n## Multi-Button Dock Band\n\nUse `WrappedDockItem` to create a band with multiple buttons:\n\n```csharp\npublic override ICommandItem[]? GetDockBands()\n{\n    var button1 = new ListItem(new OpenUrlCommand(\"https:\u002F\u002Fgithub.com\"))\n    {\n        Title = \"GitHub\",\n        Icon = new IconInfo(\"\\uE774\"),\n    };\n    var button2 = new ListItem(new OpenUrlCommand(\"https:\u002F\u002Flearn.microsoft.com\"))\n    {\n        Title = \"Learn\",\n        Icon = new IconInfo(\"\\uE82D\"),\n    };\n\n    var band = new WrappedDockItem(\n        [button1, button2],\n        \"com.mycompany.myextension.quicklinks\", \u002F\u002F Unique band ID\n        \"Quick Links\");\n\n    return [band];\n}\n```\n\n## Live-Updating Dock Band\n\nCreate a dock band that updates its content periodically (like a clock):\n\n```csharp\ninternal sealed partial class LiveStatusBand : ListItem\n{\n    private readonly System.Timers.Timer _timer;\n\n    public LiveStatusBand()\n        : base(new NoOpCommand() { Result = CommandResult.KeepOpen() })\n    {\n        Title = DateTime.Now.ToString(\"HH:mm\");\n        Icon = new IconInfo(\"\\uE823\"); \u002F\u002F Clock icon\n\n        _timer = new System.Timers.Timer(60_000); \u002F\u002F Update every minute\n        _timer.Elapsed += (s, e) =>\n        {\n            Title = DateTime.Now.ToString(\"HH:mm\");\n            Subtitle = DateTime.Now.ToString(\"dddd, MMMM d\");\n        };\n        _timer.Start();\n    }\n}\n\n\u002F\u002F In CommandProvider:\npublic override ICommandItem[]? GetDockBands()\n{\n    var band = new WrappedDockItem(\n        [new LiveStatusBand()],\n        \"com.mycompany.myextension.status\",\n        \"Live Status\");\n    return [band];\n}\n```\n\n## How Dock Bands Render\n\n| Command Type on ICommandItem | Dock Behavior |\n|------------------------------|---------------|\n| `IInvokableCommand` | Single button that executes the command |\n| `IListPage` | Each list item renders as a separate button in one band |\n| `IContentPage` | Single expandable button with a flyout |\n\n## Support Pinning Nested Commands\n\nBy default, only top-level commands and dock bands can be pinned. To allow pinning nested commands:\n\n```csharp\npublic override ICommandItem? GetCommandItem(string id)\n{\n    \u002F\u002F Look up commands by their Id\n    foreach (var item in GetAllCommands())\n    {\n        if (item?.Command is ICommand cmd && cmd.Id == id)\n            return item;\n    }\n    return null;\n}\n```\n\n## Important Notes\n\n- All dock band `ICommandItem` objects must have a `Command` with a **non-empty `Id`** — items without an ID are ignored\n- Set `Id` on your `CommandProvider` (e.g., `Id = \"com.mycompany.myextension\"`)\n- Use `WrappedDockItem` for multi-button bands backed by a `ListPage`\n- Keep dock band updates lightweight — they run frequently\n\n## Documentation\n\n- [Adding Dock support](https:\u002F\u002Flearn.microsoft.com\u002Fwindows\u002Fpowertoys\u002Fcommand-palette\u002Fadding-dock-support)\n","# Add Dock Band Support\n\nThe Command Palette Dock is a persistent toolbar at the edge of the user's screen. Your extension can provide **dock bands** — strips of items that appear in the Dock — giving users quick access to commands without opening the full Command Palette.\n\n## When to Use This Skill\n\n- Adding a quick-access button to the persistent toolbar\n- Creating a multi-button toolbar strip\n- Displaying live-updating information (clock, CPU usage, etc.)\n- Providing frequently-used commands without opening the full palette\n\n## Prerequisites\n\n- Command Palette Extension SDK version 0.9 or later (`Microsoft.CommandPalette.Extensions` ≥ 0.9.260303001)\n\n## Quick Start: Single Button Dock Band\n\nOverride `GetDockBands()` in your `CommandProvider`:\n\n```csharp\npublic partial class MyCommandsProvider : CommandProvider\n{\n    private readonly ICommandItem[] _commands;\n    private readonly ICommandItem _dockBand;\n\n    public MyCommandsProvider()\n    {\n        DisplayName = \"My Extension\";\n        Id = \"com.mycompany.myextension\"; \u002F\u002F Unique ID required for dock\n\n        var mainPage = new MyPage();\n        _dockBand = new CommandItem(mainPage) { Title = DisplayName };\n        _commands = [new CommandItem(mainPage) { Title = DisplayName }];\n    }\n\n    public override ICommandItem[] TopLevelCommands() => _commands;\n\n    public override ICommandItem[]? GetDockBands() => [_dockBand];\n}\n```\n\n## Multi-Button Dock Band\n\nUse `WrappedDockItem` to create a band with multiple buttons:\n\n```csharp\npublic override ICommandItem[]? GetDockBands()\n{\n    var button1 = new ListItem(new OpenUrlCommand(\"https:\u002F\u002Fgithub.com\"))\n    {\n        Title = \"GitHub\",\n        Icon = new IconInfo(\"\\uE774\"),\n    };\n    var button2 = new ListItem(new OpenUrlCommand(\"https:\u002F\u002Flearn.microsoft.com\"))\n    {\n        Title = \"Learn\",\n        Icon = new IconInfo(\"\\uE82D\"),\n    };\n\n    var band = new WrappedDockItem(\n        [button1, button2],\n        \"com.mycompany.myextension.quicklinks\", \u002F\u002F Unique band ID\n        \"Quick Links\");\n\n    return [band];\n}\n```\n\n## Live-Updating Dock Band\n\nCreate a dock band that updates its content periodically (like a clock):\n\n```csharp\ninternal sealed partial class LiveStatusBand : ListItem\n{\n    private readonly System.Timers.Timer _timer;\n\n    public LiveStatusBand()\n        : base(new NoOpCommand() { Result = CommandResult.KeepOpen() })\n    {\n        Title = DateTime.Now.ToString(\"HH:mm\");\n        Icon = new IconInfo(\"\\uE823\"); \u002F\u002F Clock icon\n\n        _timer = new System.Timers.Timer(60_000); \u002F\u002F Update every minute\n        _timer.Elapsed += (s, e) =>\n        {\n            Title = DateTime.Now.ToString(\"HH:mm\");\n            Subtitle = DateTime.Now.ToString(\"dddd, MMMM d\");\n        };\n        _timer.Start();\n    }\n}\n\n\u002F\u002F In CommandProvider:\npublic override ICommandItem[]? GetDockBands()\n{\n    var band = new WrappedDockItem(\n        [new LiveStatusBand()],\n        \"com.mycompany.myextension.status\",\n        \"Live Status\");\n    return [band];\n}\n```\n\n## How Dock Bands Render\n\n| Command Type on ICommandItem | Dock Behavior |\n|------------------------------|---------------|\n| `IInvokableCommand` | Single button that executes the command |\n| `IListPage` | Each list item renders as a separate button in one band |\n| `IContentPage` | Single expandable button with a flyout |\n\n## Support Pinning Nested Commands\n\nBy default, only top-level commands and dock bands can be pinned. To allow pinning nested commands:\n\n```csharp\npublic override ICommandItem? GetCommandItem(string id)\n{\n    \u002F\u002F Look up commands by their Id\n    foreach (var item in GetAllCommands())\n    {\n        if (item?.Command is ICommand cmd && cmd.Id == id)\n            return item;\n    }\n    return null;\n}\n```\n\n## Important Notes\n\n- All dock band `ICommandItem` objects must have a `Command` with a **non-empty `Id`** — items without an ID are ignored\n- Set `Id` on your `CommandProvider` (e.g., `Id = \"com.mycompany.myextension\"`)\n- Use `WrappedDockItem` for multi-button bands backed by a `ListPage`\n- Keep dock band updates lightweight — they run frequently\n\n## Documentation\n\n- [Adding Dock support](https:\u002F\u002Flearn.microsoft.com\u002Fwindows\u002Fpowertoys\u002Fcommand-palette\u002Fadding-dock-support)\n",{"name":5,"description":7},"main","5ce7acee5356814f1fbd8e8b8fd27b95c11a6def","src\u002Fmodules\u002Fcmdpal\u002FExtensionTemplate\u002FTemplateCmdPalExtension\u002F.github\u002Fskills\u002Fadd-dock-band",8729,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 02:45:55",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add microsoft\u002FPowerToys --skill add-dock-band",{"tool":59,"command":60},"bunx","bunx skills add microsoft\u002FPowerToys --skill add-dock-band",{"tool":62,"command":63},"pnpm","pnpm dlx skills add microsoft\u002FPowerToys --skill add-dock-band","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fcmdpal\u002FExtensionTemplate\u002FTemplateCmdPalExtension\u002F.github\u002Fskills\u002Fadd-dock-band\u002FSKILL.md",true,[],[68,104,140,173,200,224],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":72,"sourceHtmlUrl":73,"categories":74,"keywords":85,"publishedAt":39},"01M69BBVFWFXVP5T0QRVHVC764","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[75,80],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[86,87,88,89,90,91,92,93,94,95,96,97,35,98,99,100,101,102,29,25,103,23],"winmd api search","search","api","file access","windows","ml","desktop","networking","capabilities","ui","notifications","explore","camera","methods","full","platform","events","features",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":109,"sourceHtmlUrl":110,"categories":111,"keywords":115,"publishedAt":39},"01M69BBM5F427YJB53DV40WFEV","ui-tests-migration","Create, migrate, and stabilize PowerToys UI tests with Microsoft.PowerToys.UITest.Next and winappcli, through local VM success, commit\u002Fpush, and CI validation. Use for ports, new UITest projects, flaky CI tests, persistent Hyper-V validation, Settings IPC authentication\u002Ftest signing, Explorer\u002FShell selection, preview handlers, thumbnail providers, hotkey activation, stateful process lifecycle, composed WinUI\u002FWebView visual baselines, or foreground failures. Covers APIs, scaffolding, test design, diagnostics, and the required handoff to ui-tests-pipeline-ci. Keywords: UI test, UITests, UITestAutomation.Next, winappcli, WinAppDriver, Selenium, Settings IPC, not-microsoft-signed, Authenticode, local VM, Hyper-V, checkpoint, migrate, flaky, CI stability, Explorer, Shell extension, WebView2.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fui-tests-migration\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fui-tests-migration\u002FSKILL.md",[112],{"categoryNo":113,"categoryName":114,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000032","设计师",[116,95,117,118,119,120,121,122,9,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],"ui tests migration","migration","tests","design","handoff","stability","test","commit","diagnostics","create","powertoys","authentication","selenium","ci","pipeline","migrate","projects","ports","selection","scaffolding","preview","local","stateful","new",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":144,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":39},"01M69BBAKBN3RB0YF8CDV5TTAS","release-note-generation","Toolkit for generating PowerToys stable or preview release notes from GitHub milestones, commit ranges, or Azure DevOps release-candidate builds. Prepare draft preview releases with three-component GitHub tags while preserving four-component build and asset versions. Use when asked to create release notes, summarize milestone PRs, generate changelog, prepare a draft preview release, calculate PR deltas across main and stable, update release documentation, manage PR milestones, or prepare and validate release assets.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease-note-generation\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frelease-note-generation\u002FSKILL.md",[],[148,149,150,151,152,153,154,155,123,156,157,158,159,160,161,162,163,164,165,125,166,167,126,168,44,169,136,170,171,172,23],"release note generation","release","release note","generation","note","summarize","github","component","validate","azure devops","prepare","documentation","create release","notes","azure","pr","release notes","toolkit","generate","update","deltas","milestone","across","milestones","candidate",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":108,"licenseFileUrl":177,"sourceHtmlUrl":178,"categories":179,"keywords":183,"publishedAt":39},"01M69BB4235609E12GSMJTZWPT","powertoys-verification","Verify PowerToys behavior end-to-end with the winapp CLI across two scenarios: (A) a module's release checklist against the installed build; (B) PR validation — derive each PR's checklist from its description + diff, then drive it against the installed build (a merged\u002Fshipped PR, or a whole release\u002Fhotfix set) or by building + sideloading the module when the PR isn't in the build yet (unmerged or not-yet-released). Drive each item via UIA invoke \u002F Named Events \u002F settings.json edits \u002F clipboard \u002F GPO \u002F SendInput, and emit a structured PASS \u002F FAIL \u002F BLOCKED verdict per item with evidence (FAIL distinguishes product defects from stale\u002Fambiguous checklist items). Use when asked to verify a module checklist, validate a PR, sign off a release\u002Fhotfix's PRs, or QA installed\u002Fsideloaded PowerToys bits. Combines generic winapp ui mechanics (references\u002Fwinapp-ui-testing.md) with PT-specific recipes, per-scenario playbooks (references\u002Fscenarios\u002F), and the helper .ps1 files shipped with this skill.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpowertoys-verification\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpowertoys-verification\u002FSKILL.md",[180],{"categoryNo":181,"categoryName":182,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000008","测试与质量",[126,184,185,186,187,156,163,149,95,33,188,189,190,191,192,193,194,102,195,196,197,198,199],"powertoys verification","verification","testing","cli","clipboard","files","build","scenario","module","recipes","verdict","release checklist","winapp cli","pt","prs","invoke",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":209,"publishedAt":39},"01M69BCCP7VKNARGZP6VSSW1PV","publish-extension","Publish your Command Palette extension to the Microsoft Store or WinGet. Use when asked to publish, distribute, release, deploy to store, create MSIX packages, submit to WinGet, set up CI\u002FCD for releases, or automate builds with GitHub Actions.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fcmdpal\u002FExtensionTemplate\u002FTemplateCmdPalExtension\u002F.github\u002Fskills\u002Fpublish-extension\u002FSKILL.md",[206],{"categoryNo":207,"categoryName":208,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000011","运维与部署",[210,211,21,154,9,212,213,214,125,37,149,215,129,216,217,218,34,219,220,221,222,28,223,23],"publish extension","publish","msix","deploy","packages","actions","github actions","SET","automate","up","releases","distribute","submit","CI\u002FCD",{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":230,"publishedAt":39},"01M69BCAEPE3W6QZF2RTZ9Q28C","add-fallback-commands","Add fallback commands to your Command Palette extension for catch-all search behavior. Use when asked to add search functionality, query matching, direct input handling, calculator-style evaluation, URL opening, command execution, or results that appear when no other extension matches. Used by 14 of 20 built-in extensions.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FPowerToys\u002Fblob\u002Fmain\u002Fsrc\u002Fmodules\u002Fcmdpal\u002FExtensionTemplate\u002FTemplateCmdPalExtension\u002F.github\u002Fskills\u002Fadd-fallback-commands\u002FSKILL.md",[],[231,232,233,20,37,87,234,235,236,237,34,33,238,239,28,240,241,25,242,243,23],"add fallback commands","fallback","commands","Evaluation","execution","calculator","direct","query","input","URL","extensions","catch","input handling"]