[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADVHWRAFCQJE78F535R80K":3,"skill-same:01M6ADVHWRAFCQJE78F535R80K":126},{"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":23,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6ADVHWRAFCQJE78F535R80K","microsoft-store-publisher",null,"Prepare, validate, submit, and monitor Windows desktop apps in Microsoft Partner Center. Use for MSIX packaging, Store identity, listings, WACK, Partner Center automation, certification, and publishing.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41046,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"microsoft","store","publisher","microsoft store publisher","for","automation","desktop apps","submit","apps","listings","publishing","use","packaging","certification","desktop","monitor","prepare","windows","msix","identity","validate","2026-11-10 10:12:30",false,"---\nname: \"microsoft-store-publisher\"\ndescription: \"Prepare, validate, submit, and monitor Windows desktop apps in Microsoft Partner Center. Use for MSIX packaging, Store identity, listings, WACK, Partner Center automation, certification, and publishing.\"\n---\n\n# Microsoft Store Publisher\n\nUse this skill when the user wants to publish a Windows application to the\nMicrosoft Store, create or validate an MSIX, complete a Partner Center\nsubmission, respond to certification findings, or monitor publishing status.\n\nThis skill is for Windows desktop applications, including packaged classic\nWin32 apps that use `runFullTrust`. It is based on a successful end-to-end\nsubmission using Partner Center, an unsigned Store MSIX, the Windows App\nCertification Kit, and browser automation against Partner Center's current web\ncomponents.\n\n## Required safeguards\n\nTreat Partner Center as a production publishing system.\n\n1. Never accept the Microsoft Application Developer Agreement or another\n   binding agreement without fresh, action-specific user confirmation.\n2. Never press **Submit for certification** without fresh, action-specific user\n   confirmation after every section is complete and the final package is\n   validated.\n3. Never cancel certification, delete a submission, change pricing, change\n   market availability, publish manually, or send Partner Center feedback\n   without confirmation for that exact action.\n4. Never enter, retrieve, print, save, or expose passwords, passkeys, tokens,\n   recovery codes, MFA codes, or payment information. Let the user complete\n   credential and operating-system authentication prompts.\n5. Do not use the user's everyday browser profile for automation. Use a\n   dedicated persistent profile and let the user authenticate interactively.\n6. Do not infer legal, trademark, patent, privacy, export-control, or\n   open-source compliance. Identify the concern and state when professional\n   review is prudent.\n7. Do not claim WACK passed from an exit code alone. Find and read the generated\n   report and verify its overall result.\n8. Do not upload a package until its identity, publisher, display name,\n   architecture, version, and signing state have been inspected.\n\n## Files in this skill\n\n- `references\u002Fsubmission-playbook.md` - complete submission sequence.\n- `references\u002Fmsix-checklist.md` - package and manifest requirements.\n- `references\u002Fpartner-center-dom.md` - known routes, text, roles, custom\n  elements, selectors, and automation quirks.\n- `references\u002Fworked-example.md` - concrete lessons from a successful\n  full-trust desktop app submission.\n- `scripts\u002Fpartner-center-control.mjs` - Playwright controller for a dedicated\n  Edge profile.\n- `scripts\u002Finspect-msix.ps1` - unpack and inspect an MSIX before upload.\n- `scripts\u002Finvoke-wack.ps1` - run WACK, then find, verify, and save its XML and\n  HTML reports.\n- `templates\u002Frun-full-trust-rationale.md` - restricted-capability explanation.\n- `templates\u002Fcertification-notes.md` - tester instructions.\n- `templates\u002Fstore-listing.md` - listing content worksheet.\n- `templates\u002Fsubmission-record.json` - durable identity, package, validation,\n  and certification handoff record.\n\nRead the relevant reference before performing that phase. Do not rely on\nremembered Partner Center labels because Microsoft changes the UI.\n\n## End-to-end workflow\n\n### 1. Establish scope and readiness\n\nCollect or determine:\n\n- Application name and reserved Store product name.\n- Repository and build command.\n- Application version and intended MSIX version.\n- Supported architectures and minimum Windows version.\n- Whether the app is WinUI, UWP, packaged Win32, Electron, Wails, Tauri, .NET,\n  or another desktop technology.\n- Native executables, helper processes, services, drivers, startup tasks,\n  protocol handlers, file associations, codecs, and restricted capabilities.\n- Privacy policy, support URL, website, licensing, notices, and corresponding\n  source obligations.\n- Real device and network requirements for certification.\n- The Microsoft account the user wants selected during sign-in.\n\nInspect the repository before proposing package changes. Search for existing\nmanifest templates, package scripts, signing scripts, app icons, version\nsources, privacy documents, third-party notices, and startup behavior.\n\n### 2. Reserve the product and capture identity\n\nIn Partner Center, reserve an available product name. Avoid trademarked terms\nin the product name unless the user has a documented right to use them.\n\nAfter reservation, capture the exact values under:\n\n**Product management > Product identity**\n\n- Store product ID\n- Package identity name\n- Publisher ID, usually a `CN=...` value\n- Publisher display name\n- Package family name\n- Reserved product display name\n- Public Store URL\n\nNever guess these values. The MSIX must use the Partner Center values exactly.\n\n### 3. Build the Store package\n\nFollow `references\u002Fmsix-checklist.md`.\n\nImportant defaults:\n\n- A Microsoft Store submission MSIX should be unsigned. Microsoft signs it\n  after certification.\n- A package distributed outside the Store must be signed with a certificate\n  whose subject exactly matches the manifest publisher.\n- The fourth version component must be `0` before Store submission because it\n  is reserved for Microsoft.\n- The first version component must be nonzero.\n- `Package\u002FProperties\u002FDisplayName` must exactly match a reserved product name.\n  Matching only the application's visual display name is not sufficient.\n\nPrefer a repeatable build script that:\n\n1. Validates input versions and identity values.\n2. Builds or receives the production executable.\n3. Stages the manifest, executable, assets, licenses, privacy information,\n   notices, and source links.\n4. Packs with `makeappx.exe`.\n5. Unpacks the generated MSIX into a verification directory.\n6. Verifies the unpacked executable hash.\n7. Emits a JSON receipt with identity values and SHA-256 hashes.\n\n### 4. Inspect and test the MSIX\n\nRun:\n\n```powershell\n.\\scripts\\inspect-msix.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ExpectedIdentityName '\u003CPartner Center identity name>' `\n  -ExpectedPublisher '\u003CPartner Center publisher ID>' `\n  -ExpectedDisplayName '\u003Creserved product name>'\n```\n\nThe script belongs to this skill directory, not necessarily the application\nrepository. Resolve its full path before invoking it.\n\nInstall and exercise the packaged app under real package identity when\npossible. Test:\n\n- First launch and upgrade.\n- Startup tasks and persisted settings.\n- Helper process launch.\n- Tray behavior and clean exit.\n- Network discovery and firewall behavior.\n- File and registry access under package identity.\n- Uninstall and data retention behavior.\n- Restricted capability behavior.\n\n### 5. Run WACK\n\nRun:\n\n```powershell\n# Run this command from an elevated PowerShell terminal.\n.\\scripts\\invoke-wack.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ReportPath '\u003Cartifact-directory>\\WACK-report.xml'\n```\n\nThe WACK command-line runner requires elevation. The model must not approve the\noperating-system authentication prompt for the user.\n\nWACK accepts a report path only when it ends in `.xml`. Any other extension\nfails with exit code -1 and `The report output file path should point to a XML\nfile.` Current kits write the XML report to the requested path and an HTML\nrendering of it to `%LOCALAPPDATA%\\Microsoft\\AppCertKit\\\u003Csame base name>.htm`.\nOne earlier run left only an HTML report in that folder and no XML report.\n\nThe script:\n\n- Always passes WACK an `.xml` path. A `-ReportPath` ending in `.htm` or\n  `.html` names the saved HTML report, and the XML report is saved beside it\n  with the same base name.\n- Uses the XML report from this run at the requested path, or else the newest\n  WACK report in `%LOCALAPPDATA%\\Microsoft\\AppCertKit`. It skips files from\n  earlier runs and the unrelated XML files WACK keeps in that folder, and keeps\n  waiting while the report is still an unfinished interim report.\n- Pairs the HTML report with the XML report by report time, then saves both\n  beside `-ReportPath`.\n- Reports the XML `OVERALL_RESULT` the way the HTML report shows it: `PASS` is\n  `PASSED`, `FAIL` is `FAILED`, `WARNING` is `PASSED WITH WARNINGS`, and an\n  interim report is `INCOMPLETE`. The HTML result is used only when there is\n  no XML report.\n- Fails when the result is not `PASSED`, not every test ran, the XML and HTML\n  reports disagree, `appcert.exe` exited with an error, or the report's\n  package identity name or version does not match the package. For a bundle,\n  it warns instead, so check the name and version by hand.\n- Lists every test that did not pass in `nonPassingTests`, with WACK's\n  messages for it. An HTML-only result leaves this list empty.\n\nWhen it finds a report, the script prints a JSON summary, then throws if\n`passed` is `false`. Do not continue to submission unless `passed` is `true`.\n`PASSED WITH WARNINGS` is not `PASSED`: fix the tests it names and rerun WACK.\nRead every entry in `warnings`. Optional test failures do not block Store\nonboarding, but investigate them.\n\nRecord the result in the submission record: `overallResult` as `wack.result`,\n`xmlReport` as `wack.reportPath`, `kitVersion` as `wack.kitVersion`, and\n`reportTime` as `wack.testedAt`. When `resultSource` is `html`, use\n`htmlReport` as the report path and copy the kit version and report time from\nthe HTML report's header.\n\nTo parse and verify an existing report without running WACK again:\n\n```powershell\n.\\scripts\\invoke-wack.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ReportPath '\u003Cartifact-directory>\\verified-WACK-report.xml' `\n  -ExistingReportPath '\u003Cexisting-WACK-report.xml>'\n```\n\nPass an `.htm` report only when no XML report exists. Given an XML report, the\nscript looks for the HTML report with the same base name, beside it or in\n`%LOCALAPPDATA%\\Microsoft\\AppCertKit`, and uses it when the report times\nmatch. Given an HTML report, it uses the XML report beside it when the two\nmatch.\n\n### 6. Automate Partner Center carefully\n\nPrefer app-native browser or computer-use tools when they can inspect and act\non the page reliably. Use `scripts\u002Fpartner-center-control.mjs` as a fallback\nwhen Partner Center web components or file uploads are unreliable.\n\nSetup:\n\n```powershell\nSet-Location '\u003Cskill-directory>\\scripts'\nnpm install\n$env:PARTNER_CENTER_PROFILE = '\u003Cdedicated-profile-directory>'\nnode .\\partner-center-control.mjs launch\n```\n\nRun `launch` as an attached background process. The user completes Microsoft\nauthentication in the dedicated Edge window. In a separate command process,\nuse read-only commands such as:\n\n```powershell\nnode .\\partner-center-control.mjs status\nnode .\\partner-center-control.mjs pages\nnode .\\partner-center-control.mjs text\nnode .\\partner-center-control.mjs anchors\nnode .\\partner-center-control.mjs overview-state\nnode .\\partner-center-control.mjs agreement-state\nnode .\\partner-center-control.mjs button-state \"Submit for certification\"\n```\n\nState-changing controller commands require:\n\n```powershell\n$env:PARTNER_CENTER_ALLOW_WRITE = '1'\n```\n\nSet it only after the user has authorized the exact action. Remove it after the\naction so later commands fail closed.\n\nRead `references\u002Fpartner-center-dom.md` before using selectors.\n\n### 7. Complete every submission section\n\nRead `references\u002Fsubmission-playbook.md`. Typical sections are:\n\n- Pricing and availability\n- Properties\n- Age ratings\n- Packages\n- Store listings\n- Submission options\n- Additional Testing Information\n\nAfter saving each section, reload it and verify persistence. Partner Center can\ntemporarily omit completion states while its APIs are still loading. Wait and\nreload before deciding a section is incomplete.\n\nDo not make unsupported marketing or accessibility claims. Use genuine app\nscreenshots. Describe network, hardware, account, and protected-content\nlimitations plainly.\n\nFor `runFullTrust`, explain the exact native functionality, helper processes,\nWindows APIs, startup integration, and why a sandboxed app model is\ninsufficient. State whether the app uses elevation, services, drivers,\nsystem-wide settings, or a cloud backend.\n\n### 8. Final readiness review\n\nBefore asking for submission approval, verify:\n\n- Every Partner Center section says **Complete**.\n- The package says **Validated**.\n- `invoke-wack.ps1` reported `passed: true` for the final package: the WACK\n  overall result is **PASSED**, and the report's identity name and version\n  match the package.\n- Package identity and display name match Partner Center.\n- Package is unsigned for Store submission.\n- Privacy, support, website, license, and notices are reachable.\n- Certification notes are saved and include reproducible test instructions.\n- Restricted capabilities have explanations.\n- Publishing timing is what the user intends.\n- No known blocker is being hidden.\n\n### 9. Agreement acceptance\n\nIf Partner Center displays an updated agreement:\n\n1. Open the agreements page and identify the exact agreement name and version.\n2. Tell the user it is a binding legal agreement governing the developer\n   account and Store submissions.\n3. Ask for explicit approval to accept that exact version.\n4. Reinspect the page after approval.\n5. Accept only the intended row once.\n6. Verify the status changed from `Not Accepted` to an acceptance date.\n\nDo not reuse approval from another agreement or earlier action.\n\n### 10. Submit for certification\n\nWhen the button is enabled:\n\n1. State that submission sends the product to Microsoft certification and\n   whether it will publish automatically if approved.\n2. Ask for explicit approval to press **Submit for certification**.\n3. Reinspect the button after approval.\n4. Click it once.\n5. Do not submit the optional feedback survey without separate approval.\n6. Verify the overview says **In certification** and shows the certification\n   pipeline.\n\n### 11. Monitor and respond\n\nCertification commonly completes within a few hours but can take several\nbusiness days. Monitor:\n\n- Submission\n- Pre-processing\n- Certification\n- Publishing\n\nIf certification fails, quote the finding exactly, map it to the package,\nlisting, policy, or test behavior, make the smallest complete correction,\nrebuild with a higher package version when required, rerun inspection and\nWACK, and obtain fresh submission approval.\n\nIf the product is approved, verify the public Store URL from an unauthenticated\ncontext. Do not claim it is live solely because Partner Center says\npublishing completed.\n\n## Output standard\n\nReport concrete state:\n\n- Product ID and reserved name.\n- Package path, package version, architecture, signing state, and SHA-256.\n- WACK result and report path.\n- Completed Partner Center sections.\n- Agreement name and acceptance state.\n- Certification pipeline stage.\n- Exact blockers and next action.\n\nNever report a mutation as complete unless the resulting state was read back\nfrom Partner Center or the generated artifact was inspected.\n\nFor long-running submissions, copy `templates\u002Fsubmission-record.json` into a\nsession artifact directory and update it after each meaningful state change.\nDo not commit account identifiers, private URLs, credentials, or browser\nprofile data into the application repository.\n","# Microsoft Store Publisher\n\nUse this skill when the user wants to publish a Windows application to the\nMicrosoft Store, create or validate an MSIX, complete a Partner Center\nsubmission, respond to certification findings, or monitor publishing status.\n\nThis skill is for Windows desktop applications, including packaged classic\nWin32 apps that use `runFullTrust`. It is based on a successful end-to-end\nsubmission using Partner Center, an unsigned Store MSIX, the Windows App\nCertification Kit, and browser automation against Partner Center's current web\ncomponents.\n\n## Required safeguards\n\nTreat Partner Center as a production publishing system.\n\n1. Never accept the Microsoft Application Developer Agreement or another\n   binding agreement without fresh, action-specific user confirmation.\n2. Never press **Submit for certification** without fresh, action-specific user\n   confirmation after every section is complete and the final package is\n   validated.\n3. Never cancel certification, delete a submission, change pricing, change\n   market availability, publish manually, or send Partner Center feedback\n   without confirmation for that exact action.\n4. Never enter, retrieve, print, save, or expose passwords, passkeys, tokens,\n   recovery codes, MFA codes, or payment information. Let the user complete\n   credential and operating-system authentication prompts.\n5. Do not use the user's everyday browser profile for automation. Use a\n   dedicated persistent profile and let the user authenticate interactively.\n6. Do not infer legal, trademark, patent, privacy, export-control, or\n   open-source compliance. Identify the concern and state when professional\n   review is prudent.\n7. Do not claim WACK passed from an exit code alone. Find and read the generated\n   report and verify its overall result.\n8. Do not upload a package until its identity, publisher, display name,\n   architecture, version, and signing state have been inspected.\n\n## Files in this skill\n\n- `references\u002Fsubmission-playbook.md` - complete submission sequence.\n- `references\u002Fmsix-checklist.md` - package and manifest requirements.\n- `references\u002Fpartner-center-dom.md` - known routes, text, roles, custom\n  elements, selectors, and automation quirks.\n- `references\u002Fworked-example.md` - concrete lessons from a successful\n  full-trust desktop app submission.\n- `scripts\u002Fpartner-center-control.mjs` - Playwright controller for a dedicated\n  Edge profile.\n- `scripts\u002Finspect-msix.ps1` - unpack and inspect an MSIX before upload.\n- `scripts\u002Finvoke-wack.ps1` - run WACK, then find, verify, and save its XML and\n  HTML reports.\n- `templates\u002Frun-full-trust-rationale.md` - restricted-capability explanation.\n- `templates\u002Fcertification-notes.md` - tester instructions.\n- `templates\u002Fstore-listing.md` - listing content worksheet.\n- `templates\u002Fsubmission-record.json` - durable identity, package, validation,\n  and certification handoff record.\n\nRead the relevant reference before performing that phase. Do not rely on\nremembered Partner Center labels because Microsoft changes the UI.\n\n## End-to-end workflow\n\n### 1. Establish scope and readiness\n\nCollect or determine:\n\n- Application name and reserved Store product name.\n- Repository and build command.\n- Application version and intended MSIX version.\n- Supported architectures and minimum Windows version.\n- Whether the app is WinUI, UWP, packaged Win32, Electron, Wails, Tauri, .NET,\n  or another desktop technology.\n- Native executables, helper processes, services, drivers, startup tasks,\n  protocol handlers, file associations, codecs, and restricted capabilities.\n- Privacy policy, support URL, website, licensing, notices, and corresponding\n  source obligations.\n- Real device and network requirements for certification.\n- The Microsoft account the user wants selected during sign-in.\n\nInspect the repository before proposing package changes. Search for existing\nmanifest templates, package scripts, signing scripts, app icons, version\nsources, privacy documents, third-party notices, and startup behavior.\n\n### 2. Reserve the product and capture identity\n\nIn Partner Center, reserve an available product name. Avoid trademarked terms\nin the product name unless the user has a documented right to use them.\n\nAfter reservation, capture the exact values under:\n\n**Product management > Product identity**\n\n- Store product ID\n- Package identity name\n- Publisher ID, usually a `CN=...` value\n- Publisher display name\n- Package family name\n- Reserved product display name\n- Public Store URL\n\nNever guess these values. The MSIX must use the Partner Center values exactly.\n\n### 3. Build the Store package\n\nFollow `references\u002Fmsix-checklist.md`.\n\nImportant defaults:\n\n- A Microsoft Store submission MSIX should be unsigned. Microsoft signs it\n  after certification.\n- A package distributed outside the Store must be signed with a certificate\n  whose subject exactly matches the manifest publisher.\n- The fourth version component must be `0` before Store submission because it\n  is reserved for Microsoft.\n- The first version component must be nonzero.\n- `Package\u002FProperties\u002FDisplayName` must exactly match a reserved product name.\n  Matching only the application's visual display name is not sufficient.\n\nPrefer a repeatable build script that:\n\n1. Validates input versions and identity values.\n2. Builds or receives the production executable.\n3. Stages the manifest, executable, assets, licenses, privacy information,\n   notices, and source links.\n4. Packs with `makeappx.exe`.\n5. Unpacks the generated MSIX into a verification directory.\n6. Verifies the unpacked executable hash.\n7. Emits a JSON receipt with identity values and SHA-256 hashes.\n\n### 4. Inspect and test the MSIX\n\nRun:\n\n```powershell\n.\\scripts\\inspect-msix.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ExpectedIdentityName '\u003CPartner Center identity name>' `\n  -ExpectedPublisher '\u003CPartner Center publisher ID>' `\n  -ExpectedDisplayName '\u003Creserved product name>'\n```\n\nThe script belongs to this skill directory, not necessarily the application\nrepository. Resolve its full path before invoking it.\n\nInstall and exercise the packaged app under real package identity when\npossible. Test:\n\n- First launch and upgrade.\n- Startup tasks and persisted settings.\n- Helper process launch.\n- Tray behavior and clean exit.\n- Network discovery and firewall behavior.\n- File and registry access under package identity.\n- Uninstall and data retention behavior.\n- Restricted capability behavior.\n\n### 5. Run WACK\n\nRun:\n\n```powershell\n# Run this command from an elevated PowerShell terminal.\n.\\scripts\\invoke-wack.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ReportPath '\u003Cartifact-directory>\\WACK-report.xml'\n```\n\nThe WACK command-line runner requires elevation. The model must not approve the\noperating-system authentication prompt for the user.\n\nWACK accepts a report path only when it ends in `.xml`. Any other extension\nfails with exit code -1 and `The report output file path should point to a XML\nfile.` Current kits write the XML report to the requested path and an HTML\nrendering of it to `%LOCALAPPDATA%\\Microsoft\\AppCertKit\\\u003Csame base name>.htm`.\nOne earlier run left only an HTML report in that folder and no XML report.\n\nThe script:\n\n- Always passes WACK an `.xml` path. A `-ReportPath` ending in `.htm` or\n  `.html` names the saved HTML report, and the XML report is saved beside it\n  with the same base name.\n- Uses the XML report from this run at the requested path, or else the newest\n  WACK report in `%LOCALAPPDATA%\\Microsoft\\AppCertKit`. It skips files from\n  earlier runs and the unrelated XML files WACK keeps in that folder, and keeps\n  waiting while the report is still an unfinished interim report.\n- Pairs the HTML report with the XML report by report time, then saves both\n  beside `-ReportPath`.\n- Reports the XML `OVERALL_RESULT` the way the HTML report shows it: `PASS` is\n  `PASSED`, `FAIL` is `FAILED`, `WARNING` is `PASSED WITH WARNINGS`, and an\n  interim report is `INCOMPLETE`. The HTML result is used only when there is\n  no XML report.\n- Fails when the result is not `PASSED`, not every test ran, the XML and HTML\n  reports disagree, `appcert.exe` exited with an error, or the report's\n  package identity name or version does not match the package. For a bundle,\n  it warns instead, so check the name and version by hand.\n- Lists every test that did not pass in `nonPassingTests`, with WACK's\n  messages for it. An HTML-only result leaves this list empty.\n\nWhen it finds a report, the script prints a JSON summary, then throws if\n`passed` is `false`. Do not continue to submission unless `passed` is `true`.\n`PASSED WITH WARNINGS` is not `PASSED`: fix the tests it names and rerun WACK.\nRead every entry in `warnings`. Optional test failures do not block Store\nonboarding, but investigate them.\n\nRecord the result in the submission record: `overallResult` as `wack.result`,\n`xmlReport` as `wack.reportPath`, `kitVersion` as `wack.kitVersion`, and\n`reportTime` as `wack.testedAt`. When `resultSource` is `html`, use\n`htmlReport` as the report path and copy the kit version and report time from\nthe HTML report's header.\n\nTo parse and verify an existing report without running WACK again:\n\n```powershell\n.\\scripts\\invoke-wack.ps1 `\n  -PackagePath '\u003Cpath-to-package.msix>' `\n  -ReportPath '\u003Cartifact-directory>\\verified-WACK-report.xml' `\n  -ExistingReportPath '\u003Cexisting-WACK-report.xml>'\n```\n\nPass an `.htm` report only when no XML report exists. Given an XML report, the\nscript looks for the HTML report with the same base name, beside it or in\n`%LOCALAPPDATA%\\Microsoft\\AppCertKit`, and uses it when the report times\nmatch. Given an HTML report, it uses the XML report beside it when the two\nmatch.\n\n### 6. Automate Partner Center carefully\n\nPrefer app-native browser or computer-use tools when they can inspect and act\non the page reliably. Use `scripts\u002Fpartner-center-control.mjs` as a fallback\nwhen Partner Center web components or file uploads are unreliable.\n\nSetup:\n\n```powershell\nSet-Location '\u003Cskill-directory>\\scripts'\nnpm install\n$env:PARTNER_CENTER_PROFILE = '\u003Cdedicated-profile-directory>'\nnode .\\partner-center-control.mjs launch\n```\n\nRun `launch` as an attached background process. The user completes Microsoft\nauthentication in the dedicated Edge window. In a separate command process,\nuse read-only commands such as:\n\n```powershell\nnode .\\partner-center-control.mjs status\nnode .\\partner-center-control.mjs pages\nnode .\\partner-center-control.mjs text\nnode .\\partner-center-control.mjs anchors\nnode .\\partner-center-control.mjs overview-state\nnode .\\partner-center-control.mjs agreement-state\nnode .\\partner-center-control.mjs button-state \"Submit for certification\"\n```\n\nState-changing controller commands require:\n\n```powershell\n$env:PARTNER_CENTER_ALLOW_WRITE = '1'\n```\n\nSet it only after the user has authorized the exact action. Remove it after the\naction so later commands fail closed.\n\nRead `references\u002Fpartner-center-dom.md` before using selectors.\n\n### 7. Complete every submission section\n\nRead `references\u002Fsubmission-playbook.md`. Typical sections are:\n\n- Pricing and availability\n- Properties\n- Age ratings\n- Packages\n- Store listings\n- Submission options\n- Additional Testing Information\n\nAfter saving each section, reload it and verify persistence. Partner Center can\ntemporarily omit completion states while its APIs are still loading. Wait and\nreload before deciding a section is incomplete.\n\nDo not make unsupported marketing or accessibility claims. Use genuine app\nscreenshots. Describe network, hardware, account, and protected-content\nlimitations plainly.\n\nFor `runFullTrust`, explain the exact native functionality, helper processes,\nWindows APIs, startup integration, and why a sandboxed app model is\ninsufficient. State whether the app uses elevation, services, drivers,\nsystem-wide settings, or a cloud backend.\n\n### 8. Final readiness review\n\nBefore asking for submission approval, verify:\n\n- Every Partner Center section says **Complete**.\n- The package says **Validated**.\n- `invoke-wack.ps1` reported `passed: true` for the final package: the WACK\n  overall result is **PASSED**, and the report's identity name and version\n  match the package.\n- Package identity and display name match Partner Center.\n- Package is unsigned for Store submission.\n- Privacy, support, website, license, and notices are reachable.\n- Certification notes are saved and include reproducible test instructions.\n- Restricted capabilities have explanations.\n- Publishing timing is what the user intends.\n- No known blocker is being hidden.\n\n### 9. Agreement acceptance\n\nIf Partner Center displays an updated agreement:\n\n1. Open the agreements page and identify the exact agreement name and version.\n2. Tell the user it is a binding legal agreement governing the developer\n   account and Store submissions.\n3. Ask for explicit approval to accept that exact version.\n4. Reinspect the page after approval.\n5. Accept only the intended row once.\n6. Verify the status changed from `Not Accepted` to an acceptance date.\n\nDo not reuse approval from another agreement or earlier action.\n\n### 10. Submit for certification\n\nWhen the button is enabled:\n\n1. State that submission sends the product to Microsoft certification and\n   whether it will publish automatically if approved.\n2. Ask for explicit approval to press **Submit for certification**.\n3. Reinspect the button after approval.\n4. Click it once.\n5. Do not submit the optional feedback survey without separate approval.\n6. Verify the overview says **In certification** and shows the certification\n   pipeline.\n\n### 11. Monitor and respond\n\nCertification commonly completes within a few hours but can take several\nbusiness days. Monitor:\n\n- Submission\n- Pre-processing\n- Certification\n- Publishing\n\nIf certification fails, quote the finding exactly, map it to the package,\nlisting, policy, or test behavior, make the smallest complete correction,\nrebuild with a higher package version when required, rerun inspection and\nWACK, and obtain fresh submission approval.\n\nIf the product is approved, verify the public Store URL from an unauthenticated\ncontext. Do not claim it is live solely because Partner Center says\npublishing completed.\n\n## Output standard\n\nReport concrete state:\n\n- Product ID and reserved name.\n- Package path, package version, architecture, signing state, and SHA-256.\n- WACK result and report path.\n- Completed Partner Center sections.\n- Agreement name and acceptance state.\n- Certification pipeline stage.\n- Exact blockers and next action.\n\nNever report a mutation as complete unless the resulting state was read back\nfrom Partner Center or the generated artifact was inspected.\n\nFor long-running submissions, copy `templates\u002Fsubmission-record.json` into a\nsession artifact directory and update it after each meaningful state change.\nDo not commit account identifiers, private URLs, credentials, or browser\nprofile data into the application repository.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fmicrosoft-store-publisher",5340,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-11 13:41:32",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add github\u002Fawesome-copilot --skill microsoft-store-publisher",{"tool":66,"command":67},"bunx","bunx skills add github\u002Fawesome-copilot --skill microsoft-store-publisher",{"tool":69,"command":70},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill microsoft-store-publisher","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002FSKILL.md",true,[74,80,84,88,92,98,102,106,110,114,118,122],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fmsix-checklist.md","REFERENCE","参考文档",3421,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Freferences\u002Fmsix-checklist.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fpartner-center-dom.md",10974,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Freferences\u002Fpartner-center-dom.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fsubmission-playbook.md",5071,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Freferences\u002Fsubmission-playbook.md",{"path":89,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fworked-example.md",8587,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Freferences\u002Fworked-example.md",{"path":93,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Finspect-msix.ps1","SCRIPT","脚本",6563,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Fscripts\u002Finspect-msix.ps1",{"path":99,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Finvoke-wack.ps1",19847,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Fscripts\u002Finvoke-wack.ps1",{"path":103,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":104,"sourceHtmlUrl":105},"scripts\u002Fpackage.json",144,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Fscripts\u002Fpackage.json",{"path":107,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Fpartner-center-control.mjs",19683,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Fscripts\u002Fpartner-center-control.mjs",{"path":111,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":112,"sourceHtmlUrl":113},"templates\u002Fcertification-notes.md",1381,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Ftemplates\u002Fcertification-notes.md",{"path":115,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":116,"sourceHtmlUrl":117},"templates\u002Frun-full-trust-rationale.md",1163,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Ftemplates\u002Frun-full-trust-rationale.md",{"path":119,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":120,"sourceHtmlUrl":121},"templates\u002Fstore-listing.md",1313,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Ftemplates\u002Fstore-listing.md",{"path":123,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":124,"sourceHtmlUrl":125},"templates\u002Fsubmission-record.json",1103,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft-store-publisher\u002Ftemplates\u002Fsubmission-record.json",[127,157,184,213,245,261],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":137,"publishedAt":45},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,35,154,155,156],"supabase","rls","supabase rls","supabase rls policies","project","when","review","change","read","write","security","isolation","tables","as","tests","prove","users","functions","with",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":45},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[163],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[165,166,167,168,169,170,28,171,172,173,174,175,176,177,178,179,180,181,182,183],"distribution","skill distribution audit","audit","SET","deterministic","installer","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":196,"publishedAt":45},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":194,"taxonomyTypeDesc":195},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[197,198,199,200,201,202,28,142,203,204,205,206,207,208,209,35,32,210,211,212],"custom","code","logicapps custom code net10 migration","migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","Legacy","debugging","workflows",{"skillNo":214,"name":215,"nameZh":6,"description":216,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":217,"sourceHtmlUrl":218,"categories":219,"keywords":224,"publishedAt":45},"01M6AEBN37RQMXJ3298PEY7PG1","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\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[220,223],{"categoryNo":221,"categoryName":222,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":192,"categoryName":193,"taxonomyType":194,"taxonomyTypeDesc":195},[225,226,227,41,38,228,229,230,231,232,233,234,235,236,237,143,238,239,240,241,242,28,243,244],"winmd api search","search","api","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":246,"name":247,"nameZh":6,"description":248,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":249,"licenseFileUrl":250,"sourceHtmlUrl":251,"categories":252,"keywords":258,"publishedAt":45},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[253,254,257],{"categoryNo":221,"categoryName":222,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":255,"categoryName":256,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[259,168,232,260,43],"resemble detect","https",{"skillNo":262,"name":263,"nameZh":6,"description":264,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":249,"licenseFileUrl":265,"sourceHtmlUrl":266,"categories":267,"keywords":272,"publishedAt":45},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[268,271],{"categoryNo":269,"categoryName":270,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[273,274,275,276,198,144,9,167,277,278,260,279,280,281,282,283,284,285,286,287,288,289,152,290,291,292,293],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]