Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mtkinverse-native-qa-macos
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/native-qa-macos
What's inside
- Skill name
native-qa-macos- Description
- Complete macOS QA runbook. Handles Steps 4–11: app metadata, launch, AppleScript UI discovery, happy flow tracing, flow creation, credential acquisition, scenario generation, test case generation, HTML reporting, and update mode. All automation scripts are inlined — no external file dependencies. Invoked by root SKILL.md after platform selection.
- License
- MIT
- Instructions
- 826 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "native-qa-macos" does not match folder "macos"
- body: 826 lines (spec recommends under 500)
Files (6)
- SKILL.md
- macos-automation.md · references/
- test-patterns.md · references/
- flow.md · templates/
- scenarios.md · templates/
- test-case.md · templates/
SKILL.md (first lines)
# macOS Native QA Skill — Complete Runbook
**Platform**: macOS 12 Monterey+
**Automation**: AppleScript + screencapture + Accessibility API
**Invoked by**: Root `SKILL.md` after platform selection (Step 0) and workspace init (Steps 1–3)
This file is self-contained. All scripts are inlined. No external file dependencies.
---
## Shared Principles & Fallback Discipline
Before Step 4, you MUST have read the cross-platform base layer:
- [skills/_shared/principles.md](../_shared/principles.md) — how Claude thinks (screenshot protocol, selector hierarchy, session limits, runtime script evolution)
- [skills/_shared/fingerprint-questions.md](../_shared/fingerprint-questions.md) — the 5 questions answered in root SKILL.md Step 3.5; `qa/platform-fingerprint.md` drives strategy selection
- [skills/_shared/fallback-discipline.md](../_shared/fallback-discipline.md) — **non-negotiable rule**: every strategy, runtime script, and test step must declare a fallback. If primary approach stalls, fall back and continue — never break the flow.
macOS does not yet have a `strategies/` directory — the default exploration flow in this file IS the strategy. If future runs document alternatives, they land under `skills/macos/strategies/` and follow the same selection + decisions-log + fallback pattern as the web skill.
---
## Pre-Step: Load Prior Knowledge
Before doing anything else, check what the root skill extracted from `qa/context/` in Step 3.
```bash
# Check if prior knowledge was extracted
ls qa/knowledgebase/ui-inventory.md 2>/dev/null && echo "EXISTS" || echo "NONE"
ls qa/context/ 2>/dev/null
```
**If `qa/knowledgebase/ui-inventory.md` exists** — read it now. It contains the candidate flow list and known features extracted from any files the user dropped into `qa/context/`. Use this as your starting map for exploration:
- Prioritize flows named in the inventory — discover these first
- If Figma screens were provided, you already know the screen structure — confirm visually
- If a PRD was provided, you know the features and acceptance criteria — test against them
**If `qa/context/` has unread files** (PNGs, `.md`, `.txt` not yet processed) — read them now before launching the app.
**If nothing exists** — cold start. Discover everything visually from scratch.
---
## STOP / PAUSE / SAVE STATE
Follow the root SKILL.md **"STOP / PAUSE / SAVE STATE — Immediate Handler"** exactly. No macOS-specific differences — the root handler applies as-is.
---
## Step 4: App Metadata
### 4.1 Locate the App
```bash
APP_NAME="[user input from Step 2]"
if [ -d "/Applications/${APP_NAME}.app" ]; then
APP_PATH="/Applications/${APP_NAME}.app"
elif [ -d "$HOME/Applications/${APP_NAME}.app" ]; then
APP_PATH="$HOME/Applications/${APP_NAME}.app"
else
APP_PATH=$(mdfind "kMDItemKind == 'Application'" | grep -i "${APP_NAME}" | head -1)
fi
echo "Resolved: $APP_PATH"
```
If not found, ask the user to provide the full path or drag the `.app` bundle.
### 4.2 Read App Metadata
```bash
python3 - <<'PYEOF'
import plistlib, sys
app_path = "/Applications/APPNAME.app" # replace with resolved path
with open(app_path + "/Contents/Info.plist", "rb") as f:
p = plistlib.load(f)
print("Name: ", p.get("CFBundleName", p.get("CFBundleExecutable", "N/A")))
print("BundleID: ", p.get("CFBundleIdentifier", "N/A"))
print("Version: ", p.get("CFBundleShortVersionString", "N/A"))
print("Build: ", p.get("CFBundleVersion", "N/A"))
print("Min macOS: ", p.get("LSMinimumSystemVersion", "N/A"))
PYEOF
sw_vers -productVersion
uname -m
```
### 4.3 Update Config and Write Planning Files
Update `qa/.qa-config.json` with: `app_name`, `app_path`, `app_identifier` (bundle ID), `app_version`, `os_version`, `architecture`.
Write the following planning files using the templates at the end of this file:
- `qa/planning/platforms.md`
- `qa/guardrails/do-and-dont.md`
- `qa/credentials/access.md`
- `qa/scope/contract.md`
→ **Write checkpoint** to `qa/state.md`. Record: app name, bundle ID, version, macOS version, architecture.
---
## Step 5: Launch App and Take First Screenshot
### 5.1 Check Accessibility Permission
```bash
osascript -e 'tell application "System Events" to get name of every process' > /dev/null 2>&1 \
&& echo "✅ Accessibility OK" \
|| echo "❌ BLOCKED"
```
If blocked, **stop immediately** and tell the user:
> "I need Accessibility permission to explore [AppName]'s UI.
>
> Please go to: **System Settings → Privacy & Security → Accessibility**
> Enable access for **Terminal** (or your IDE if running from there).
>
> Then let me know when done — I'll continue from here."
Do not attempt any further automation until the user confirms permission is granted.From mtkinverse/claude-qa, MIT.
More from mtkinverse/claude-qa
- 0.405score
native-qa-ios
mtkinverse
Autonomous QA skill for iOS applications using XCUITest and xcrun simctl.
SkillDFreshness: DClaude Code +9 - 0.405score
native-qa-windows
mtkinverse
Autonomous QA skill for Windows native applications using WinAppDriver and UIA3.
SkillDFreshness: DClaude Code +9 - 0.405score
native-qa-android
mtkinverse
Autonomous QA skill for Android applications using UIAutomator2 and ADB.
SkillDFreshness: DClaude Code +9 - 0.402score
native-qa
mtkinverse
Generic QA skill for Claude Code covering any platform (macOS, iOS, Android, Windows, web).
SkillDFreshness: DClaude Code +9 - 0.395score
native-qa-web
mtkinverse
Autonomous QA skill for web applications using Playwright.
SkillDFreshness: DClaude Code +9 - 0.395score
native-qa-extension
mtkinverse
Autonomous QA skill for browser extensions using Playwright and Chrome Extension API.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Apr 20, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/mtkinverse/claude-qa
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mtkinverse
- 0.405score
native-qa-ios
mtkinverse
Autonomous QA skill for iOS applications using XCUITest and xcrun simctl.
SkillDFreshness: DClaude Code +9 - 0.405score
native-qa-windows
mtkinverse
Autonomous QA skill for Windows native applications using WinAppDriver and UIA3.
SkillDFreshness: DClaude Code +9 - 0.405score
native-qa-android
mtkinverse
Autonomous QA skill for Android applications using UIAutomator2 and ADB.
SkillDFreshness: DClaude Code +9 - 0.402score
native-qa
mtkinverse
Generic QA skill for Claude Code covering any platform (macOS, iOS, Android, Windows, web).
SkillDFreshness: DClaude Code +9 - 0.395score
native-qa-web
mtkinverse
Autonomous QA skill for web applications using Playwright.
SkillDFreshness: DClaude Code +9 - 0.395score
native-qa-extension
mtkinverse
Autonomous QA skill for browser extensions using Playwright and Chrome Extension API.
SkillDFreshness: DClaude Code +9
Cite this page
native-qa-macos skill. Agent Mart. https://agentmart.dev/skills/mtkinverse-native-qa-macos (last updated 2026-10-24)