agentsclimarketplace

Windows qa engineer

Skill CodeAlive-AI/ai-driven-development/skills/windows-qa-engineer

Use when testing Windows 11 desktop apps (WinForms/WPF/UWP) via UFO UIA/Win32 automation MCP. Triggers on "test this Windows app", "QA the app", "run smoke test", "click the button", "fill the form", "check the UI", "Windows automation", "UFO QA", "verify the dialog", or any Windows desktop UI testing task. Not for web/browser testing (use Playwright), mobile testing, or non-Windows platforms.From its SKILL.md

Install
npx -y skills add CodeAlive-AI/ai-driven-development --skill windows-qa-engineer

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • runs commandsInstructs the agent to run 1 command, including `python "<skill-dir>/scripts/skill_installer.py" --project-dir "<project-root>"`.

SKILL.md

5.2 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it

Windows QA Engineer (UFO-powered)

You are an AI-QA operator on the SAME Windows 11 desktop as the SUT. All automation uses UFO's real MCP tools (UICollector, HostUIExecutor, AppUIExecutor) -- no mocks.

Auto-Setup (when MCP tools are missing)

If UFO tools are NOT available as MCP tools, run setup before QA work:

  1. Run: python "<skill-dir>/scripts/skill_installer.py" --project-dir "<project-root>"
  2. Parse the JSON output — if success is true, tell user to restart Claude Code
  3. If failed, show the error and direct user to references/setup.md for manual install

Mandatory Workflow

Follow this sequence for every test run. Do not skip steps.

1. Discover windows

  • Call qa_refresh_and_list_windows()
  • Identify the SUT window by title hint from the user

2. Select window

  • Call select_application_window(id, name) (HostUIExecutor)
  • Call capture_window_screenshot() (UICollector) -- baseline screenshot

3. Collect controls

  • Call qa_refresh_controls(field_list=["label","control_text","control_type","automation_id","control_rect"])
  • Anchor on id + control_text / automation_id when the returned tree is usable
  • If control collection returns an error or an empty tree for a large/legacy WinForms window, continue with screenshot inspection and coordinate actions; do not repeatedly force full UIA subtree scans

4. Interact

  • Use click_input(id, name), set_edit_text(id, name, text), keyboard_input(id, name, keys)
  • Coordinate actions only as last resort (document why)
  • Re-collect controls after navigation or dialog open

5. Assert

  • Read with texts(id, name) and compare against expected
  • Prefer qa_wait_for_text_contains(id, name, expected, timeout_s=10) over sleeps
  • Screenshot after each major checkpoint

6. Report

  • Fill assets/test-case.md template
  • Numbered execution log (step -> tool call -> result)
  • Final PASS/FAIL with exact failing assertion if applicable
  • Attach screenshot base64 strings from capture_window_screenshot()

Tool Reference

ToolServerPurpose
qa_refresh_and_list_windowsQA helperRefresh + list all windows
select_application_windowHostUIExecutorSelect SUT by id+name
get_app_window_controls_infoUICollectorRaw control tree; use only when helper output is insufficient
capture_window_screenshotUICollectorScreenshot selected window
click_inputAppUIExecutorClick control by id+name
set_edit_textAppUIExecutorType into control
keyboard_inputAppUIExecutorSend keystrokes
textsAppUIExecutorRead control text
qa_wait_for_text_containsQA helperPoll until text matches
qa_refresh_controlsQA helperRe-collect control tree with fail-soft parsing

Example: Login Smoke Test

User says: "Test the login flow on MyApp"

1. qa_refresh_and_list_windows() → find "MyApp - Login"
2. select_application_window(id="3", name="MyApp - Login")
3. capture_window_screenshot() → baseline
4. qa_refresh_controls(field_list=["label","control_text","control_type","automation_id","control_rect"])
   → find username (id=12), password (id=14), login button (id=16)
5. set_edit_text(id="12", name="Username", text="testuser")
6. set_edit_text(id="14", name="Password", text="pass123")
7. click_input(id="16", name="Login")
8. qa_wait_for_text_contains(id="20", name="WelcomeLabel", expected_substring="Welcome", timeout_s=10)
   → {"ok": true, "text": "Welcome, testuser"}
9. capture_window_screenshot() → post-login
10. Report: PASS

Error Handling

No windows found: Re-check the SUT is running. Call qa_refresh_and_list_windows() again. If still empty, ask the user to confirm the app is open.

Empty control tree: The window may not have finished loading. Wait 2-3 seconds, then qa_refresh_controls(field_list=[...]). If still empty, try CONTROL_BACKEND=win32 (see setup.md). For large or legacy WinForms apps, avoid repeated full UIA subtree scans and use screenshot plus targeted coordinates.

Control not clickable / action fails: Re-collect controls (the tree may have changed after navigation). If the control lacks a usable id, fall back to coordinate-based action and document why.

MCP tools not found: Run auto-setup first (see Auto-Setup above). If auto-setup fails, direct the user to references/setup.md and run doctor.ps1.

Detailed Workflows

See references/qa-workflows.md for more examples, locator strategy, and common patterns.

Setup

See references/setup.md for UFO installation, MCP configuration, and diagnostics.

What ships with it: 8 files

34.3 KB alongside SKILL.md, 3 of them executable

assets/

references/

scripts/

Gives 0 of the 12 instructions most quality gates skills give in ~1.2k tokens

Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06

  • Read full output and check exit codein 45 of 1524, across 40 files
  • Verify output confirms the claimin 44 of 1524, across 39 files
  • Identify the command that proves the claimin 43 of 1524, across 39 files
  • Execute the full verification commandin 36 of 1524, across 30 files
  • Produce a verification reportin 34 of 1524, across 18 files
  • Review git diff changesin 30 of 1524, across 16 files
  • Fix build failures immediatelyin 29 of 1524, across 9 files
  • Group findings by severityin 28 of 1524
  • State claim only with evidencein 27 of 1524, across 22 files
  • Verify regression tests with red-green cyclein 26 of 1524, across 22 files
  • Run the full test suitein 26 of 1524, across 25 files
  • Run test suite with coveragein 25 of 1524, across 10 files

Said here and by no other author read

  • Run setup script if UFO tools are missing
  • Refresh and list windows to identify the target
  • Select the application window before testing
  • Capture a baseline screenshot of the window
  • Refresh controls to identify UI elements
  • Re-collect controls after navigation or dialogs

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.