CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/flaui-tests

Authors and runs FlaUI-based Windows UI tests - the .NET-native wrapper around Microsoft UI Automation (UIA2 + UIA3). Covers the `FlaUI.Core` / `FlaUI.UIA2` / `FlaUI.UIA3` NuGet packages, `Application.Launch` / `Application.Attach` lifecycles, `ConditionFactory` + `FindFirstDescendant` locator patterns, `Retry` waits, and xUnit / NUnit / MSTest harness integration. Use when the test stack is C# / .NET-first and the team wants idiomatic in-process UIA calls rather than the HTTP/JSON wire protocol of `winappdriver` (direct or Appium-wrapped).

75

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

Overview
Quality
Evals
Security
Files

Quality

Content

92%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 skill body: executable code throughout, a clear authoring-to-CI progression with an explicit verify-and-fix loop, and clean progressive disclosure into a single well-scoped reference file. The only notable weakness is mild redundancy — the winappdriver contrast and some version/date details could be consolidated to save context tokens.

DimensionReasoningScore

Conciseness

The body is largely efficient — code-forward sections, tables for package and UIA2/UIA3 selection, and an anti-patterns table instead of prose — with only minor trim opportunities: the winappdriver disambiguation is repeated across 'Overview', 'Disambiguation', and 'When to use', and time-sensitive version info ('v5.0.0 released February 2025') sits in the Overview rather than an old-patterns/deprecation section. It is above the level-3 anchor because the padding is localized repetition, not explanations of concepts Claude already knows.

4 / 5

Actionability

Every section provides copy-paste-ready, executable guidance: complete 'Application.Launch / Attach / AttachOrLaunch / LaunchStoreApp' code, 'FindFirstDescendant(cf => cf.ByAutomationId(...))' locators, 'Retry.WhileNull' with concrete timeout/interval/throwOnTimeout arguments, a full xUnit 'IClassFixture' class including Dispose ordering, 'dotnet test --logger "trx;LogFileName=results.trx"' commands, and STA attributes with the exact package ('install Xunit.StaFact'). This matches the top anchor — specific examples cover the common cases with nothing left as pseudocode.

5 / 5

Workflow Clarity

The skill is clearly sequenced — Authoring (packages → launch → find → interact → waits) → Running (harness, STA, dotnet test) → Parsing results → CI — and includes an explicit validation feedback loop: 'Verify: run the suite and confirm it launches the app and passes. If a test fails with a NullReference or Retry timeout... open FlaUInspect to recheck the AutomationId, fix the FindFirstDescendant / Retry call, then re-run before adding more cases.' That run → diagnose → fix → re-run loop with a named error signature satisfies the top anchor's 'explicit validation steps; feedback loops for error recovery'.

5 / 5

Progressive Disclosure

The body is a well-signaled overview that pushes bulk detail into exactly one real, one-level-deep bundle file: 'the full condition-constructor list are in [references/flaui-api.md](references/flaui-api.md)' and 'Full windows-latest workflow: [references/flaui-api.md](references/flaui-api.md)' — and references/flaui-api.md exists and contains precisely that (alternate locator forms, Find families, CI YAML) with a link back to SKILL.md. No inline walls of reference material, no nested references; this matches the top anchor.

5 / 5

Total

19

/

20

Passed

Description

92%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.

A strong description that names the tool, enumerates concrete capabilities (packages, lifecycles, locators, waits, harnesses), and gives an explicit 'Use when' clause that also disambiguates against the sibling winappdriver skill. The only gap is that a few natural trigger phrasings (WPF/WinForms automation) live in metadata keywords rather than the description text.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities — 'Authors and runs FlaUI-based Windows UI tests', the 'FlaUI.Core / FlaUI.UIA2 / FlaUI.UIA3 NuGet packages', 'Application.Launch / Application.Attach lifecycles', 'ConditionFactory + FindFirstDescendant locator patterns', 'Retry waits, and xUnit / NUnit / MSTest harness integration' — comprehensively covering the skill's surface with named APIs. It is not below level 5 because nothing in the anchor's 'comprehensive coverage' bar is missing; every clause names a specific, verifiable capability rather than generic domain language.

5 / 5

Completeness

It explicitly answers both questions: what ('Authors and runs FlaUI-based Windows UI tests... Covers the FlaUI.Core / FlaUI.UIA2 / FlaUI.UIA3 NuGet packages... Retry waits, and xUnit / NUnit / MSTest harness integration') and when ('Use when the test stack is C# / .NET-first and the team wants idiomatic in-process UIA calls rather than the HTTP/JSON wire protocol of winappdriver'). The 'Use when' clause is explicit with concrete trigger conditions, matching the top anchor; a level-4 score would require the 'when' to be less specific, which it is not.

5 / 5

Trigger Term Quality

Natural trigger terms are present: 'FlaUI', 'Windows UI tests', 'UI Automation (UIA2 + UIA3)', 'C# / .NET', 'xUnit / NUnit / MSTest', plus the contrasting 'winappdriver'. It falls short of the level-5 'comprehensive coverage including synonyms' anchor because commonly said phrases like 'WPF/WinForms test automation' or 'dotnet UI tests' appear only in the metadata keywords, not the description itself, so a few natural entry points are missing.

4 / 5

Distinctiveness Conflict Risk

The description claims a clear niche — FlaUI specifically — and actively differentiates it from the nearest competing skill ('rather than the HTTP/JSON wire protocol of winappdriver (direct or Appium-wrapped)'), which minimizes wrong-skill triggering. This matches the 'clear niche with distinct triggers; minimal conflict risk' anchor; level 4 would imply unresolved overlap with a closely related skill, but the winappdriver boundary is explicitly drawn.

5 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Reviewed

Table of Contents