- Home
- Skills
- DevOps & Cloud
- Microsoft Store Submit: Publish Apps, Then Ship by Git Tag
Works with the AI Agents you already use
Microsoft Store Submit: Publish Apps, Then Ship by Git Tag
Your agent walks you through the Microsoft Store's first submission field by field, then makes every later release one git tag.
$19
Microsoft Store Submit: Publish Apps, Then Ship by Git Tag
Example session with this skill installed
I built a WinUI 3 desktop utility (packaged MSIX, uses runFullTrust, no telemetry, everything stays on the PC). It's free with a $4.99 durable 'Pro' add-on. I want English and German listings. Give me the step-by-step checklist for my first Microsoft Store submission in Partner Center, page by page, with what to pick or type in each field.
- Read your context and instructions
- Compiled the microsoft store submit
- Generated the data export
First Microsoft Store submission: checklist (WinUI 3, free + $4.99 Pro, en-us + de-de)
These notes come from submissions in October 2026. Partner Center changes without notice, so where a screen differs from this list, follow the screen and the linked Microsoft docs. If your repo has docs/store/partner-center-notes.md, its entries win over this list. You can save this as docs/store/SUBMISSION-CHECKLIST.md.
Answers I still need from you
Send these and I'll fill in every <placeholder> below:
- App display name (the reserved name), plus the website, privacy page and support URLs.
- What the app does in one sentence, and which Windows APIs need desktop access. This goes into the runFullTrust justification.
- Everything the app reads (files, folders, clipboard, input, registry, processes…). This goes into the privacy policy.
- Pro add-on product ID in your
StoreContextcode (e.g.pro), what Pro unlocks, and how a tester can try Pro without buying. - Account type (Individual or Company), and whether Payout and tax are both Complete.
- Category: is Utilities + tools right?
0. Before you open the submission
- Account settings > Payout and tax: both Complete. This is required, because Pro is paid.
- Name reserved: Apps and games > New product > MSIX or PWA app. Submit within about 3 months.
- Product identity values (Name, Publisher CN, PublisherDisplayName, Store ID) are in the manifest. Keep the raw values in a local file that you don't commit.
- Manifest
<Resources>declaresen-usandde-de. - Build the
.msixupload(x64 + Arm64 bundle is fine). - Run the Windows App Certification Kit. The overall result must be
PASS. A "Blocked executables" warning is OK.
-
docs/store/i18n/listing.en.jsonandlisting.de.jsonare written from the listing template. - Screenshots: 1920x1080 PNG, 1 to 10 per language, in
docs/store/screenshots/en/andde/. - App tile:
docs/store/art/app-tile-300.png, 300x300. - Super hero art:
docs/store/art/super-hero-3840x2160.png. No text, no UI, nothing important in the bottom third. - Privacy page is live. Contents are in the "Privacy policy points" section below.
- [ ]
Pro add-on draft created under the app > Add-ons: Durable, product ID <pro>, matching your code exactly. Don't submit it yet.
- The app handles "add-on not found" with a "Pro is not on sale yet" message, not a generic error. The add-on can only be submitted after the app is live, so there will be a gap.
1. Packages (do this first)
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/upload-app-packages
Doing Packages first matters: uploading changes the Properties privacy question, so you avoid filling Properties twice.
- Drag the
.msixuploadonto the page and wait for Validated. - Device families:
- Windows 10/11 Desktop: tick.
- Mobile, Xbox, Team and Mixed Reality: untick.
- "Let Microsoft decide whether to make this app available to any future device families": untick.
- After the upload this box reappears above the package table, ticked again. Untick it there too.
- Architecture shows Neutral. That's normal for a bundle; Show details lists x64 and Arm64.
- Warning "restricted capabilities require approval… runFullTrust" is expected. The justification in step 6 clears it.
- Save.
2. Pricing and availability
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/price-and-availability
| Field | Set |
|---|---|
| Markets | All worldwide markets (Recommended). Keep "available in any future market" ticked |
| Audience | Public audience |
| Discoverability | Make this product available and discoverable in the Microsoft Store |
| Base schedule | Release: as soon as possible. Stop acquisition: never |
| Pricing > Default (240 markets) | Currency USD, Retail price 0 (there is no "Free" label; 0 means free) |
| Free trial | No free trial configured |
| Sale pricing | None |
| Organizational licensing | Leave the default |
- Save draft.
3. Properties
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/enter-app-properties
- Category: Utilities + tools.
- Subcategory: leave "Pick a subcategory" unless the app is a backup or file manager tool.
- Secondary category: leave empty.
- Privacy: after the package upload this is forced to
"Yes, my product uses personal information" because of runFullTrust. You can't switch it to No.
- Provide privacy policy URL:
https://<your-site>/privacy.html - Support info:
- Website:
https://<your-site>/ - Support contact:
https://<your-site>/support - Phone and address: leave empty. On an Individual account the address would be public.
- Website:
- Display mode (Mixed Reality / HoloLens): both unticked.
- Product declarations:
- Purchases outside Store commerce: ☐
- Tested for accessibility guidelines: ☐ (unless you actually tested)
- Install to alternate drives: ☑
- Include data in OneDrive backups: ☑
- Record and broadcast clips: ☐ (only for games)
- Pen and ink input: ☐
- Generative AI features: ☐
- System requirements: nothing ticked, every dropdown "Not specified". A ticked minimum blocks install on hardware without it.
- Save.
4. Age ratings (IARC)
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/age-ratings
- Choose "I'm ready to complete the IARC questionnaire".
- App Type: All Other App Types.
- Ratings from a ratings board or physical media: No.
- Questionnaire answers:
- Downloaded App: ratings-relevant content? No
- User Content Sharing? No
- Online Content? No
- Promotion or Sale of Age-Restricted Products? No
- Precise location shared? No
- Allows users to purchase digital goods? Yes
- Random items or loot boxes? No
- Cash rewards, gift cards, crypto or NFTs? No
- Web browser or search engine? No
- Primarily news or educational? No
- Save draft. Expect about 3+ everywhere except
Brazil DJCTQ 14 for "In-App Purchases". That is normal for any app with paid add-ons; nothing to change.
- Tick the IARC Terms of Use, then Save.
5. Store listings (English and German)
- Add/remove languages: English (United States)
en-usand German (Germany)de-de. - Open the en-us page. Type Developed by and Copyright, then Save. These carry into the export.
- Click Export listings to download
listingData-*.csv. - Run the builder:
python scripts/build_listing_import.py \ --csv <listingData-*.csv> --listings docs/store/i18n \ --screenshots docs/store/screenshots --tile docs/store/art/app-tile-300.png \ --hero docs/store/art/super-hero-3840x2160.png \ --languages en=en-us,de=de-de --developer "<PublisherDisplayName>" \ --out out/store-copy/<app>-listing --markdown out/store-copy/LISTING-COPY.md - Import listings >
Upload folder > pick out/store-copy/<app>-listing. Check any problems under "View errors".
- Fallback: copy and paste from
LISTING-COPY.md.
Limits for each language (the builder checks these, but they apply if you type by hand):
| Field | Rule |
|---|---|
| Description | Required, up to 10,000 chars, no URLs, no claims against other apps |
| What's new | Blank on the first submission |
| Product features | Up to 20 |
| Screenshots | 1 to 10, ≥1366x768 PNG; captions up to 200 chars; upload them for each language |
| App tile icon | 300x300 |
| Super hero art | 16:9 |
| Store logos (poster/box art), Xbox images, Voice title | Skip (games or Xbox only) |
| Short description | Best kept under 270 chars |
| Keywords | Up to 7, 40 chars each, 21 words total |
| Additional license terms | Blank (the standard terms apply) |
- Save each language.
6. Submission options
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/manage-submission-options
- Publishing hold: "Publish this submission as soon as it passes certification".
- runFullTrust justification. Hard limit
500 characters; longer text is cut off without warning, so count it after filling in.
- The fixed text is about 310 chars, which leaves about 180 for the name, APIs and task.
<AppName> is a Win32 desktop app (WinUI 3, Windows App SDK) packaged as MSIX. It runs as a full-trust desktop process and calls Windows desktop APIs not available to AppContainer apps: <API names> to <task>. Everything stays on the user's PC; there is no telemetry. It does not need administrator rights and installs no drivers or services.
- Submission notification audience: optional.
- Save.
7. Supplemental info > Additional Testing Information
The certification notes box is here, not under Submission options. Save it with the
"Save description" link next to the page title; there's no Save button at the bottom. Leave Credentials empty.
<AppName> is a local desktop utility. No account or sign-in is needed. No special hardware is required.
How to test the main feature: <step 1>, <step 2>, <expected result>.
Pro add-on (<pro>, durable): it will be submitted after this app is published, so in this build the Pro button shows "Pro is not on sale yet". To see the Pro features without buying: <how, e.g. the free features shown, or the Pro screens visible with a lock>.
runFullTrust is used for <APIs/task>. The app does not need administrator rights and sends no telemetry; the only network use is the Microsoft Store license and purchase check.
8. Submit
Docs: https://learn.microsoft.com/windows/apps/publish/publish-your-app/msix/app-certification-process
- All six sections show Complete, and Packages shows "Validated".
- Open the en-us and de-de listings once each to check the imported text and screenshots.
- Press Submit for certification yourself.
- Timing: about 13 h last time; Microsoft allows up to 3 business days. The IARC rating email follows. Keep the Global Rating ID.
9. After the app is live
- Submit the Pro add-on:
- Properties: lifetime Forever, privacy answer No.
- Pricing: USD 4.99. Keep the converted prices for other markets.
- Listing for each language: title, description up to 200 chars, 300x300 icon.
- Submission options: publish when certified.
- Expect about 7 h.
- Share the link:
https://apps.microsoft.com/detail/<Store ID>. - Set up the GitHub Actions release automation. Ask me when you're ready.
Privacy policy points
The policy must match the app exactly
- What the app reads:
<list from your answers>. All of it is processed and stored only on the PC. - No telemetry, analytics, ads or accounts.
Microsoft Store connection: the app contacts the Microsoft Store to check the Pro license and to make purchases. Microsoft handles this under its own privacy statement. Don't write "no internet connection", because that would be false with an add-on.
- Where local data or settings are stored, and how to delete them (uninstalling removes them).
- Contact:
<support URL/email>.
app-tile-300.png
CSV · data export
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
About this skill
Your agent walks you through the Microsoft Store's first submission field by field, then makes every later release one git tag.
Publishing a Windows app on the Microsoft Store is two jobs. The first submission happens in Partner Center by hand (Microsoft doesn't let the API create it): six sections, an IARC questionnaire, a privacy answer that changes after you upload the package, a 500-character runFullTrust box that cuts longer text without warning, and certification notes that moved to a different menu. After that, every release can go through the Store submission API, but setting that up means an Entra app, a client secret, four GitHub secrets, and API quirks the docs don't warn about.
This skill covers both, from real submissions:
- First submission without guessing. The agent reads your repository, then opens a short questionnaire as a local web form: answers it found are already filled in, and every question with a usual answer shows a recommendation and why, one click to use. Save, and the agent reads your answers and builds a local checklist page: every Partner Center page in the order to fill it, every field with exactly what to tick or pick, and a Copy button on every value to paste. Long texts show a character meter against the field's limit (the runFullTrust box cuts at 500), finished pages fold away, and progress is saved. You work through it; no screenshots needed unless a screen doesn't match. Prefer not to type at all? With a browser tool such as Playwright MCP, the agent fills Partner Center page by page while you watch: it finds every field by its label, reads each value back after saving, screenshots each page and ticks it off on your checklist. You sign in, accept agreements and press Submit yourself.
- App icons done right. Upload one square image, pick from eight generated options, or describe what you want and the agent draws options. You see it at 16 to 48 px on light and dark before choosing. Then one command writes all 77 icon files Windows looks for (every scale, target size and theme variant, so the icon isn't shrunk onto a plate), the .ico, the Store tile and a starting hero image, and checks your manifest points at them.
- Every listing language at once. A script fills Partner Center's exported listing CSV for every language, with screenshots, captions, tile icon and hero art, ready for "Import listings".
- Paid add-ons. Durable unlocks (Pro) end to end: draft before launch, submit after the app is live, and handle the gap in the app.
- Releases from a git tag. GitHub Actions workflows and PowerShell scripts: build the MSIX bundle, upload it, set "What's new" per language, replace listing text and images through the submission API, mark old packages for removal, commit for certification. A dry-run mode checks everything locally without credentials.
- Secrets done safely. Creating the Entra client secret with a throwaway Azure CLI profile, never printed or saved, with the traps that cost hours (a missing
--appenddeletes your other secrets; piping from Windows PowerShell 5.1 adds a newline that breaks sign-in). - Keeps up when the Store changes. Every step links its Microsoft docs page and the agent checks it before trusting the notes. Differences get recorded in your repo (
docs/store/partner-center-notes.md) and read first next time.
Tested. Three real requests (a first submission with a paid add-on, release automation, an Electron app with crash reports), each answered with and without the skill, then graded against a checklist of 40 gotchas that tripped up real submissions:
- Claude Opus 5.5: 40 of 40 with the skill, 11 of 40 without.
- Claude Haiku 5.5: 37 of 40 with the skill, 10 of 40 without.
- The grader found no wrong statements in any answer that used the skill; without it, it flagged 4 (Opus) and 11 (Haiku), such as submitting the add-on together with the first app submission (Partner Center refuses that) and putting certification notes on a page where they no longer live.
- The checklist comes from the skill's own notes, so this measures whether that knowledge reaches the answer, not overall writing quality.
Works with any app you can package as MSIX: WinUI 3, WPF, WinForms, Electron, Python and others.
What's inside
- SKILL.md: the three guiding modes, the order of the first submission, add-ons, automation in short, how it keeps up with Store changes
- references/partner-center-fields.md: every Partner Center page, field by field, with the answers that passed certification and a docs link per section
- references/browser-mode.md: the agent fills Partner Center in your browser, with read-back and hand-over points
- references/automation.md: the release pipeline, secrets, Entra client secret, pitfalls, timelines, what to do when the API changes
- templates/submission-questions.json + scripts/answers_form.py: the questionnaire as a local form, with recommendations
- templates/submission-checklist.example.json + scripts/make_checklist_html.py: the copy-and-tick checklist page
- templates/partner-center-notes.template.md: your project's record of Store changes
- templates/listing.template.json: listing text per language
- templates/workflows: release, store, store-listing, store-status (GitHub Actions)
- templates/scripts: build-package, write-store-notes, update-store-listing (+ StoreApi, StoreListing helpers), PowerShell 5.1 and 7
- scripts/make_app_icons.py: the full icon set from one image (needs Pillow)
- scripts/build_listing_import.py: the listing import builder (Python 3.8+, standard library)
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed today
Requires