verifylisted
Install: claude install-skill elwizard33/qa-my-app
# /qa-my-app:verify — Test what changed (or what a ticket asks for)
## Project context
- Catalog present: !`test -f QA-tests/catalog.json && echo YES || echo NO`
- Change scope: !`node "${CLAUDE_PLUGIN_ROOT}/scripts/change-scope.mjs" 2>/dev/null || echo '{"error":"no-catalog"}'`
- Current branch: !`git rev-parse --abbrev-ref HEAD 2>/dev/null`
- Connected MCP servers: !`claude mcp list 2>/dev/null || true`
- Filter argument: `$ARGUMENTS`
## Runtime settings
| Setting | Value |
|---|---|
| Dev URL | `${user_config.dev_url}` |
| Parallel test runners | `${user_config.parallel_test_runners}` |
| Browser engine | `${user_config.browser_engine}` |
| Browser channel / headless | `${user_config.browser_channel}` / `${user_config.browser_headless}` |
| Settle ms | `${user_config.settle_ms}` |
| Auth mode | `${user_config.auth_mode}` |
| Task depth | `${user_config.task_depth}` |
---
## Instructions
If `Catalog present` is `NO`, stop and tell the user to run `/qa-my-app:init` first.
**Browser-agent pre-check.** Before spawning any browser agents, verify `.claude/agents/qa-page-analyzer.md` and `.claude/agents/qa-test-runner.md` exist. If either is missing, `mkdir -p .claude/agents`, then read the matching template from `${CLAUDE_PLUGIN_ROOT}/agents/` and write it, applying the `${user_config.browser_engine}` `mcpServers` block exactly as `/qa-my-app:init` Phase 0 documents. Leave existing files untouched.
When spawning `test-author`, use the plugin-namespaced name (`qa-my-app:te