CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ui-tests-migration

Create, migrate, and stabilize PowerToys UI tests with Microsoft.PowerToys.UITest.Next and winappcli, through local VM success, commit/push, and CI validation. Use for ports, new UITest projects, flaky CI tests, persistent Hyper-V validation, Settings IPC authentication/test signing, Explorer/Shell selection, preview handlers, thumbnail providers, hotkey activation, stateful process lifecycle, composed WinUI/WebView 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.

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

88%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A high-quality operational skill body: executable build/run/diagnose commands, an explicitly sequenced workflow with validation checkpoints and feedback loops, and well-signaled one-level-deep references. The weaknesses are minor: anecdotal narration and repeated checklist content that could be tightened, and a templates/ directory referenced but missing from the bundle.

Suggestions

Trim the narrative asides (the File Locksmith iteration-count anecdote, the twice-repeated "one CI iteration instead of six") to single mentions — the underlying guidance stands without them, freeing tokens in the always-loaded body.

Surface references/nuget-runtime-pack-cache.md in the SKILL.md reads list (or link it from ci-stability.md where NU1102 CI failures are diagnosed); it is currently only reachable via a second-level link inside project-setup.md.

Include the templates/ starter files (Module.UITests.Next.csproj, app.manifest, TestHelper.cs, ModuleEndToEndTests.cs) in the bundle or state their canonical location; SKILL.md line 92 and project-setup.md link to a directory that does not exist as bundled.

DimensionReasoningScore

Conciseness

The body is dense and operational with no explanations of concepts Claude already knows, but includes trimmable narration: "skipping it cost ~8 iterations and a confident but entirely wrong product-defect report on File Locksmith", the phrase "spend one CI iteration instead of six" repeated verbatim in two places, and the CI-stability checklist enumerated both in workflow step 7 and again in "Build & validate". Not 3 because nearly every sentence is actionable and domain-specific; not 5 because these redundancies and anecdotes exceed "every token earns its place".

4 / 5

Actionability

Fully executable guidance throughout: a copy-paste pwsh block ("dotnet restore ... -p:Platform=x64", "tools\\build\\build.cmd -Path ... -Platform x64 -Configuration Debug", the produced exe with "--filter \"TestCategory=<Cat>\" --report-trx"), exact artifact paths ("artifacts\\logs\\...build.<Configuration>.<Platform>.errors.log"), naming/placement rules, and a concrete csproj requirement ("<Import Project=\"$(RepoRoot)src\\Common.Dotnet.CsWinRT.props\" />"). Not 4 because commands, exit-code semantics, failure-log locations, and pipeline template/variable names leave no execution gaps.

5 / 5

Workflow Clarity

A 14-step TODO list where each step names its driving reference, with explicit validation checkpoints ("Build the new project to exit code 0", "Run one deterministic test... and diagnose the first failure", "Rerun the focused test after each fix, then widen", "Complete the full default and Constrained suites... preserve counts, payload hashes, and evidence") and a stated feedback loop ("write → build → run → diagnose → repeat") plus a decision tree for scenario selection. Not 4 because checkpoints, retry ceilings ("three-run ceiling"), and terminal success criteria are all explicit rather than implied.

5 / 5

Progressive Disclosure

Good structure: a numbered "Required reads (in order)" section signals all 8 reference files with their purpose, all of which exist in the bundle, and the overview stays an overview. Not 5 because SKILL.md links a [templates/](templates/) directory that is absent from the bundle (a dangling link also made from three reference files), and references/nuget-runtime-pack-cache.md is only discoverable through a second-level link inside project-setup.md rather than being surfaced in the SKILL.md navigation.

4 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete capability verbs, an explicit "Use for" trigger clause, and a keyword list covering synonyms and exact error strings for both the legacy and new harnesses. Its only critique is length (~130 words), but every clause carries capability or trigger information, so there is no padding to penalize.

DimensionReasoningScore

Specificity

"Create, migrate, and stabilize PowerToys UI tests with Microsoft.PowerToys.UITest.Next and winappcli, through local VM success, commit/push, and CI validation" names multiple concrete actions plus scope ("Covers APIs, scaffolding, test design, diagnostics"), matching the comprehensive-coverage anchor. Not 4 because there are no coverage gaps: authoring, porting, stabilizing, and the full delivery loop are all explicitly listed.

5 / 5

Completeness

The "what" is explicit ("Create, migrate, and stabilize PowerToys UI tests... Covers APIs, scaffolding, test design, diagnostics, and the required handoff to ui-tests-pipeline-ci") and the "when" is an explicit "Use for ports, new UITest projects, flaky CI tests, persistent Hyper-V validation, Settings IPC authentication..." clause with concrete trigger phrases. Not 4 because neither half requires inference; both are stated verbatim.

5 / 5

Trigger Term Quality

The explicit keyword list — "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" — covers natural phrasings, synonyms for both the legacy and new harnesses, and exact error strings. Not 4 because even uncommon user phrasings ("flaky", "checkpoint", "not-microsoft-signed") are present.

5 / 5

Distinctiveness Conflict Risk

The niche is unmistakable (PowerToys UI tests, the .Next harness, winappcli) and no trigger term is generic enough to route a non-UI-test request here. Not 4: the only overlap is with the deliberately coordinated sibling skills (ui-tests-local-vm, ui-tests-pipeline-ci), whose relationship this description itself disambiguates by naming the handoff.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 missing, 10 suspicious

Warning

Total

15

/

16

Passed

Repository

microsoft/PowerToys

Path

.github/skills/ui-tests-migration/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.