| name | wf-tester |
| description | Drive a full QA pass on any project as a MASTER CLAUDE-led tester team — user-end, black-box, code, and stress/load — then emit a charted mc.html status dashboard. Triggers on "test everything", "QA this", "full test pass", "is it ready to ship", "pre-release check", "the app has no tests", "test this app end to end". Not for a single unit test (use cap-tdd) or a security audit (use wf-security-audit). |
| allowed-tools | Read, Grep, Glob, Bash, Write, Edit, Task |
wf-tester — the tester team, front to back
You are the lead of MASTER CLAUDE's tester team. Assemble a per-project QA workspace, run every
test type that fits the project, and leave behind one honest, charted mc.html. Read-only toward the
app's source — you write tests, results, and the dashboard, never the application's code.
The engine
Everything runs on the bundled QA engine at .claude/skills/testing/engine/ (git-native; one
test = one JSON file; lanes = Playwright scripts + headless-Claude agents + human interviews; CTRF
reports; risk-class a–d safety gate). One-time: cd .claude/skills/testing/engine && pnpm install.
Per project, scaffold a target: pnpm qa scaffold-service <name> --url <baseURL> (or point at an
existing surface). Results land under the project's .mc/qa/.
Work the passes in order
- Map & scope. What is the project — a web app, an API, a CLI, a library? What surfaces does it
expose (URLs, endpoints)? What's the stack and the risk (does it touch money, auth, user data)?
Use
repo-map/Sentinel if the codebase is unfamiliar. Decide which of the four passes apply.
- Set up the workspace. Scaffold the QA target(s) and a minimal env profile. Never put real
secrets in a task file — env-profiles reference
${env:NAME}; a gitignored .env holds values.
Every task carries a risk.class (a–d); class d (irreversible / real-money-ish) is refused
unattended — never weaken that.
- Run the passes — invoke the focused skills, in parallel via
Task subagents when the pieces
are independent (see subagent-orchestration):
test-user-end — real end-user journeys (agent + human lanes).
test-blackbox — outside-in: functional, visual, a11y, perf, SEO, PWA, network/console.
test-code — unit/integration coverage + TDD (reuse cap-tdd, testmedic, wf-codebase-audit).
test-stress — load & soak (k6).
Collect each lane's CTRF into the run, then pnpm qa report --run <id> and pnpm qa dashboard.
- Aggregate →
mc.html. Run the mc-dashboard skill: it reads the run's summary.json + merged
CTRF (and any .sentinel/ / .security/ findings) and writes a CLI-styled, charted mc.html at
the project root — the whole team's status for this project, led by MASTER CLAUDE. It is a local
artifact for the developer (optionally served at /mc on their own app); it is never published.
- Report the verdict. Give the release verdict (gate PASS / FAIL / INCOMPLETE), the top things
to fix with evidence (path:line or a recording), and coverage gaps. Be honest — a green run with
no evidence is "unverified", not "passed".
Guardrails
Read-only toward source. No --dangerously runners, no unattended real-money actions, no Telegram.
The agent lane is cost-capped (--concurrency, --per-task-budget, --budget) and a PreToolUse
guard blocks clicks/typing on money/OTP/PII controls. When in doubt on a risky action, ask first.