Quality Gates
These gates are the evidence checklist for AI-assisted Windows App SDK work. Passing them matters more than a polished completion message.
Required Gates
| Gate | Required evidence |
|---|---|
| Source freshness | Downloads, quickstart, packaging, and Store docs were checked during the work session |
| Build | Debug and Release builds pass on Windows |
| Launch | App launches from development path and packaged path when packaging is in scope |
| Non-XAML tests | Pure logic tests pass through dotnet test or Visual Studio Test Explorer |
| WinUI tests | XAML/UI-thread tests use WinUI Unit Test App and [UITestMethod], or the gap is documented |
| Packaging | MSIX, external-location, or unpackaged artifact path is explicitly chosen and produced or blocked |
| Runtime | Framework-dependent runtime installation or self-contained output is verified |
| Signing | Store signing, Azure Artifact Signing, OV/EV, or self-signed test path is documented |
| Store | WACK or Store package validation is run for Store-bound work, or marked as Windows-machine/manual blocker |
| Accessibility | Accessibility Insights or UI Automation smoke is run for meaningful UI changes |
| WebView2 | Evergreen or fixed runtime decision is documented when WebView2 is used |
| Notifications | Non-elevated notification test and activation handling are verified when notifications are used |
| Stale UWP review | No Windows.UI.Xaml, Window.Current, CoreDispatcher, ApplicationView, or UWP background task pattern remains |
| Secrets | No certificates, .pfx, passwords, Partner Center credentials, or signing secrets are committed |
Definition Of Done Note
Every implementation handoff should include:
Source freshness: <docs checked and dates>
Build: <commands and results>
Launch: <dev launch and packaged launch result>
Tests: <non-XAML and WinUI/XAML test results>
Package: <artifact path or blocker>
Runtime: <framework-dependent or self-contained proof>
Signing: <path and current status>
Store/WACK: <result or manual blocker>
Accessibility/UI automation: <result or blocker>
Stale UWP review: <result>
Known gaps: <what was not tested>
Store-Bound Minimum
For a Store MSIX release dry run, prove at least:
| Area | Proof |
|---|---|
| Identity | Package identity and manifest match the intended app |
| Package | .msix, .msixbundle, or .msixupload artifact exists as required by current docs |
| Certification | WACK run is clean or failures are triaged |
| Listing | Screenshots, logos, privacy policy, age ratings, and certification notes are ready |
| Restricted capabilities | Any restricted capability has a justification and review plan |
| Signing | Store MSIX re-signing path is understood; no local CA certificate is assumed necessary |
What Does Not Count
- A Linux-only documentation pass.
- A Visual Studio debug run as release evidence.
- A Store account as proof that a specific app can pass certification.
- A packaged build with no launch test.
- A notification API call tested while the app is elevated.
- A WebView2 page that renders once without runtime distribution and navigation policy decisions.
- A self-contained claim without checking Windows App SDK and .NET self-contained requirements.