Produce, save, and file the end-of-session QA summary for a WAY 1 (browser) or WAY 2 (API) run — execution counts, failed test cases, accessibility table (WAY 1), schema/performance flags (WAY 2), bugs filed. Replaces the former session-reporter agent.
Installs into .claude/skills of the current project.
Are you the author of Session Report?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ghassenazzouz-session-report)
---
name: session-report
description: Produce, save, and file the end-of-session QA summary for a WAY 1 (browser) or WAY 2 (API) run — execution counts, failed test cases, accessibility table (WAY 1), schema/performance flags (WAY 2), bugs filed. Replaces the former session-reporter agent.
---
# session-report
Apply in the main session at the end of WAY 1 (Phase 5) or WAY 2 (Phase 4).
Everything it needs is already in context, so it runs inline:
- Environment URL (WAY 1) or API base URL + spec source (WAY 2)
- `test-execution-agent`'s results YAML. Each entry has `status`, `page`, `a11y: { checked, violations }`, and for API scenarios the `api-responses/` capture
- Bugs filed in this session: ref, title, labels (from the `bug-report` skill + `tracker`)
## Where it goes
1. Save to `./qa-artifacts/sessions/session-<YYYY-MM-DD-HH-MM>.md` (WAY 1) or `./qa-artifacts/sessions/api-<YYYY-MM-DD-HH-MM>.md` (WAY 2)
2. Print it to chat
3. WAY 1: file it as an issue labeled `qa-session-report` (`issue.create`, per `tracker`), with the same body
## WAY 1 template
Build the Accessibility Report by grouping results on their `page` field and
counting violations by `impact`.
```markdown
# QA Session Report
**Date:** [ISO date]
**Environment:** [URL]
**Triggered by:** [Feature name or issue ref]
---
## Test Execution Summary
| Status | Count |
|---|---|
| ✅ Passed | N |
| ❌ Failed | N |
| ⚠️ Blocked | N |
| ⏭️ Skipped | N |
| **Total** | **N** |
---
## Failed / Blocked Test Cases
| Test | Title | Status | Failure point | Artifact |
|---|---|---|---|---|
| Test#02 | Login rejects invalid password | ❌ fail | Step 3 — no error message shown | runs/<id>/artifacts/… |
---
## Not Filed as Bugs
| Test | Why | Follow-up |
|---|---|---|
| Test#04 | 🩹 healed: button "Submit" → "Send" | confirm the rename is intended |
| Test#05 | 📸 visual baseline created | compared from the next run |
| Test#06 | 🧊 quarantined (flaky) | tracked in <flaky-test ref> |
(or "none")
---
## Accessibility Report
| Page | Critical | Serious | Moderate | Minor |
|---|---|---|---|---|
| /login | 0 | 1 | 2 | 0 |
**A11y bugs filed:** #N (sev-2), … (or "none")
---
## Bugs Filed
| Issue | Title | Severity | Labels |
|---|---|---|---|
| #42 | [Login] Error message not shown on invalid password | Sev-3 | bug, sev-3, p2, e2e |
---
## Artifacts Location
- Test cases: `./qa-artifacts/test-cases/<feature>-<date>/`
- Run report: `./qa-artifacts/runs/<run-id>/results.json`
- Failure artifacts: `./qa-artifacts/runs/<run-id>/artifacts/`
- This report: `./qa-artifacts/sessions/session-<timestamp>.md`
---
🤖 _Generated by DevOps QA Agent — review before acting on this._
```
## WAY 2 template
```markdown
# API Session Report
**Date:** [ISO date]
**API base URL:** [URL]
**Spec source:** [URL | file | "manual"]
---
## Results
Endpoints tested: N · Test cases: N · ✅ Passed: N · ❌ Failed: N · ⚠️ Blocked: N
## Failed Test Cases
| Test | Endpoint | Expected | Actual | Capture |
|---|---|---|---|---|
| Test#03 | POST /v1/users | 400 | 500 | api-responses/POST-v1-users-….json |
## Schema Violations
| Endpoint | Field | Problem |
|---|---|---|
(or "none")
## Performance Flags (> API_PERF_THRESHOLD_MS)
| Endpoint | Time (ms) | Threshold |
|---|---|---|
(or "none")
## Bugs Filed
| Issue | Title | Severity | Labels |
|---|---|---|---|
---
🤖 _Generated by DevOps QA Agent — review before acting on this._
```
## Rules
- Always include the Accessibility section in WAY 1 reports, even when it shows 0 violations, and the Schema/Performance sections in WAY 2 reports, even when empty ("none")
- Counts must add up: Passed + Failed + Blocked + Skipped = Total
- Always list artifact paths
- Always end with the watermark footer (CLAUDE.md's Output Watermark). It is part of both the saved file and the filed issue body