From traxxall-delivery-qa
Executes the adversarially-reviewed Playwright suite against the Traxxall TEST environment via Playwright MCP tools. Records PASS, FAIL, or ERROR per test case — ERROR-not-hang on timeout — and shapes results for posting to the ADO QA child ticket.
How this skill is triggered — by the user, by Claude, or both
Slash command
/traxxall-delivery-qa:qa-executorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill's inputs are:
This skill's inputs are:
mcp__plugin_playwright_playwright__* tools.It must never use:
main/.ISOLATION GATE: If a forbidden input is detected: "ISOLATION GATE: I have detected [name it]. Executing from the authored test suite and TEST app only."
The Traxxall TEST environment is the ONLY permitted target. This is the slot validated by the PH QA team before traffic is redirected to production.
process.env.TEST_BASE_URL or the configured baseURL in playwright.config.ts.Verify that .auth/storageState.TEST.json exists and is fresh (not older than 24 hours). If it is stale or missing:
Setup User Login project dependency via mcp__plugin_playwright_playwright__browser_navigate to the login page.traxxall-ado-auth skill — call only for auth state setup, not for code artefact retrieval).storageState to .auth/storageState.TEST.json.For each test case in the suite, in order of id:
Result classification:
| Outcome | Result |
|---|---|
| Assertion passed — expected outcome observed | PASS |
| Assertion failed — application produced a different outcome | FAIL |
| Test could not complete: timeout, infrastructure error, navigation failure, unexpected exception | ERROR |
ERROR guard — no hangs permitted:
Wrap every async operation that could stall in a timeout guard:
const TIMEOUT_MS = 30_000; // 30 seconds — adjust per spec-implied SLA
const timeoutPromise = new Promise<never>((_, reject) =>
setTimeout(() => reject(new Error('TIMEOUT: operation exceeded SLA')), TIMEOUT_MS)
);
try {
await Promise.race([actualOperation(), timeoutPromise]);
} catch (err) {
// Record ERROR — do NOT let the test hang
result = 'ERROR';
note = String(err);
}
If a SignalR notification does not arrive within the spec-implied SLA, record ERROR with a note, capture a trace, and move on. Never stall the executor.
On FAIL or ERROR:
mcp__plugin_playwright_playwright__browser_take_screenshot.trace: 'retain-on-failure' in playwright.config.ts).After all test cases have run, compile the result summary:
Total: [N]
PASS: [P]
FAIL: [F]
ERROR: [E]
Update the JSON envelope: replace every test case's result field with PASS, FAIL, or ERROR.
Call traxxall-ado-auth skill to:
FAIL or ERROR: create a child failure ticket per failing test case, recording the failure message and a link to the trace/screenshot.publishTestResultsMode: 'testRun' pattern with attachmentsType: ['screenshot', 'video', 'trace'].Call traxxall-ado-auth ONLY for these operations. Do NOT use it to read the PR, diff, branch, or any code artefact.
Emit the final human-readable section followed by the updated JSON envelope:
Human-readable section:
## QA Execution Results — [Work Item ID] — [Date]
Surface: admin | 360
Environment: TEST
Auth: storageState loaded from .auth/storageState.TEST.json
| ID | Title | Type | Result |
|------|------------------------------------|--------------|--------|
| tc1 | Happy path: ... | happy | PASS |
| tc2 | Edge: zero quantity... | edge | FAIL |
| tc3 | Negative: missing required field | negative | PASS |
| ... | ... | ... | ... |
Summary: [P] PASS / [F] FAIL / [E] ERROR out of [N] total.
Failure notes:
- tc2: Expected validation error "Quantity must be greater than zero"; got silent save. Trace: [attachment link]
JSON envelope (complete updated envelope):
{
"isolation_ok": true,
"refused_inputs": [],
"surface": "admin|360|unknown",
"target_env": "TEST",
"acceptance_claims": [ "..." ],
"test_cases": [
{
"id": "tc1",
"title": "...",
"type": "happy",
"steps": [ "..." ],
"expected": "...",
"result": "PASS"
}
],
"notes": [
"tc2 FAIL: [failure message]. Trace attached."
]
}
page.waitForTimeout at any point.Read, Grep, or Glob against main/.traxxall-ado-auth to retrieve code artefacts, diffs, or PRs.UnitTests.Core, TransactionScope).ERROR and move on.eval/rubric.private.md or any path under eval/.npx claudepluginhub skobyn/upskill-me --plugin traxxall-delivery-qaGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.