Generate test report. Use when user says "test report", "results summary", "test status", "show results", "test dashboard", or "how did tests go".
Generate test reports that plug into the user's existing workflow. Zero new tools.
Check if recent test results exist:
ls -la test-results/ playwright-report/ 2>/dev/null
If no recent results, run tests:
npx playwright test --reporter=json,html,list 2>&1 | tee test-output.log
Read the JSON report:
npx playwright test --reporter=json 2> /dev/null
Extract:
Check what's configured and route automatically:
| Check | If found | Action |
|---|---|---|
| TESTRAIL_URL env var | TestRail configured | Push results via /pw:testrail push |
| SLACK_WEBHOOK_URL env var | Slack configured | Post summary to Slack |
| .github/workflows/ | GitHub Actions | Results go to PR comment via artifacts |
| playwright-report/ | HTML reporter | Open or serve the report |
| None of the above | Default | Generate markdown report |
# Test Results — {{date}}
## Summary
- ✅ Passed: {{passed}}
- ❌ Failed: {{failed}}
- ⏭️ Skipped: {{skipped}}
- 🔄 Flaky: {{flaky}}
- ⏱️ Duration: {{duration}}
## Failed Tests
| Test | Error | File |
|---|---|---|
| {{name}} | {{error}} | {{file}}:{{line}} |
## Flaky Tests
| Test | Retries | File |
|---|---|---|
| {{name}} | {{retries}} | {{file}} |
## By Project
| Browser | Passed | Failed | Duration |
|---|---|---|---|
| Chromium | X | Y | Zs |
| Firefox | X | Y | Zs |
| WebKit | X | Y | Zs |
Save to test-reports/{{date}}-report.md.
curl -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '{
"text": "🧪 Test Results: ✅ {{passed}} | ❌ {{failed}} | ⏱️ {{duration}}\n{{failed_details}}"
}'
Invoke /pw:testrail push with the JSON results.
npx playwright show-report
Or if in CI:
echo "HTML report available at: playwright-report/index.html"
If previous reports exist in test-reports/:
Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/report · pinned to the source commit
# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/report" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/.gemini/skills/report" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/report
Scanner static-checks@0.1.0 · commit 19392f7a0826. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Fetches remote content at runtime, which can change after review.
Evidence: curl· fingerprint 427e4b79b1f0fc90