Subagents
| Agent | Scope | Purpose | Tools |
|---|---|---|---|
| qa-my-app:route-discoverer | plugin | Static route discovery + rich metadata (auth, roles, guards, HTTP methods, dynamic params, layout chain, feature flags). | Read, Grep, Glob, Bash |
| qa-page-analyzer | project | Browser-driving deep element inventory per route — forms, validators, buttons, modals, tables — plus a sampleValid/sampleInvalid value per field so authored submissions use realistic data. Each spawn starts its own browser process — true isolation, no shared state between parallel runs. | inherits all except Write, Edit, MultiEdit, and destructive Bash patterns |
| qa-my-app:test-author | plugin | Pure markdown — converts page analysis into task files using the enforced template. Reads the route source directly for exact validation rules; happy paths fill every field and submit for real. Accepts ticket acceptance criteria and emits an ## Acceptance criteria block. | Read, Write, Edit, Glob |
| qa-test-runner | project | Browser-driving execution of one task → date-stamped result.md with embedded screenshots. Fills and submits every form/dialog for real and asserts the result; only destructive actions stay gated behind explicit task authorization. Designed for parallel fan-out, one isolated browser per runner. | inherits all except destructive Bash patterns |
| qa-my-app:catalog-reconciler | plugin | Plans add/update/delete for catalog.json from the drift report. | Read, Grep, Glob |
All agents are model: inherit — they use whatever model your session is on. No model is hardcoded.
Token efficiency (by design)
Section titled “Token efficiency (by design)”Heavy work is isolated so it never floods the main conversation:
- Each browser agent runs in its own context window and returns only a one-line JSON summary.
- Verbose verification is offloaded to the
verify-result.mjs/catalog-diff.mjsNode scripts — a hook, not the model, does the parsing. - The deterministic
qa-test-runneruseseffort: mediumso extended-thinking tokens aren’t spent re-deriving a pre-authored task — multiplied across every parallel runner. Reasoning-heavy analysis (qa-page-analyzer) keepseffort: high. - The five skills that rewrite the catalog or drive a browser use
disable-model-invocation: true, so their descriptions stay out of context entirely until you invoke them. Onlystatusandverifystay listed. - The plugin ships no session-level MCP server — the browser MCP is declared inline on the two project-scope agents, so its tool descriptions never load into your main conversation.