Skip to content

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.

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.mjs Node scripts — a hook, not the model, does the parsing.
  • The deterministic qa-test-runner uses effort: medium so extended-thinking tokens aren’t spent re-deriving a pre-authored task — multiplied across every parallel runner. Reasoning-heavy analysis (qa-page-analyzer) keeps effort: 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. Only status and verify stay 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.