Install
$ agentstack add skill-codealive-ai-windows-qa-engineer-skill-windows-qa-engineer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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:
- Run:
python "/scripts/skill_installer.py" --project-dir "" - Parse the JSON output — if
successis true, tell user to restart Claude Code - If failed, show the error and direct user to [references/setup.md](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
get_app_window_controls_info(field_list=["label","control_text","control_type","automation_id","control_rect"]) - Anchor on
id+control_text/automation_id-- never hardcode coordinates unless control tree fails
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](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
| Tool | Server | Purpose | |------|--------|---------| | qa_refresh_and_list_windows | QA helper | Refresh + list all windows | | select_application_window | HostUIExecutor | Select SUT by id+name | | get_app_window_controls_info | UICollector | Get control tree | | capture_window_screenshot | UICollector | Screenshot selected window | | click_input | AppUIExecutor | Click control by id+name | | set_edit_text | AppUIExecutor | Type into control | | keyboard_input | AppUIExecutor | Send keystrokes | | texts | AppUIExecutor | Read control text | | qa_wait_for_text_contains | QA helper | Poll until text matches | | qa_refresh_controls | QA helper | Re-collect control tree |
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. get_app_window_controls_info(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).
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](#auto-setup-when-mcp-tools-are-missing) above). If auto-setup fails, direct the user to [references/setup.md](references/setup.md) and run doctor.ps1.
Detailed Workflows
See [references/qa-workflows.md](references/qa-workflows.md) for more examples, locator strategy, and common patterns.
Setup
See [references/setup.md](references/setup.md) for UFO installation, MCP configuration, and diagnostics.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: CodeAlive-AI
- Source: CodeAlive-AI/windows-qa-engineer-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.