tools/sage-claude-plugin/skills/qa/SKILL.md
QA report with bugs, severity, and fix classification
npx skillsauth add xoai/sage qaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Browser-based functional testing. Finds integration failures that live in the gap between "code is correct" and "product works."
Report only — /qa does NOT fix bugs. /fix fixes.
Check Lightpanda MCP availability. Attempt to call a Lightpanda
MCP tool (e.g., goto with about:blank).
If available: Ask for URL:
Sage → qa workflow. Lightpanda browser connected.
What URL is the application running on?
(e.g., http://localhost:3000, https://staging.myapp.com)
Verify URL is reachable via goto. If not, report and offer to
wait or proceed with code-only.
If not available:
Sage: Lightpanda MCP is not connected. /qa needs a browser to test
your application.
Setup: See sage/core/references/lightpanda-setup.md for install guide.
[B] Set up browser — I'll install Lightpanda
[C] Continue without browser — code-only QA
[X] Cancel
Pick B/C/X, or tell me what you need.
Code-only fallback (no browser): Analyze the diff, identify affected routes, review code for common integration issues:
Report notes: "Browser testing: not available — code-analysis only."
If invoked after /build (cycle context exists): Read the cycle's spec.md and plan.md. Identify affected routes, user flows, and acceptance criteria to verify.
If invoked standalone (no cycle context):
Sage: What should I test?
[1] Everything — full app smoke test (I'll discover routes)
[2] Specific flow — describe what to test
[3] Specific URL — point me at a page
Pick 1-3, type / for commands, or describe what you need.
Produce and present a test scope:
TEST SCOPE:
Routes to test:
- /dashboard (modified: added new widget)
- /settings/notifications (new page)
Flows to test:
- Dashboard loads with new widget visible
- Navigate to notification settings
- Toggle preference → verify API → verify UI update
Acceptance criteria to verify:
- [from spec] Toggle persists across page reload
- [from spec] Widget shows unread count
Ask: "Does this scope look right, or should I add/remove anything?"
For each route in scope:
goto) to the routeevaluate: check for JS console errorsmarkdown: verify page renders content (not blank/error)semantic_tree: verify expected structural elementsFor each flow in scope:
interactiveElements)click buttons, links, togglesfill form fieldsevaluate), verify state (semantic_tree)Save report to .sage/work/[cycle-id]/qa-report.md (if cycle context)
or .sage/docs/qa-report-[topic].md (if standalone).
Use the report template from develop/templates/qa-report-template.md.
🔒 QA REPORT CHECKPOINT:
Sage: QA complete.
Tested: {N} routes, {M} flows
Results: {pass} pass, {fail} fail, {warn} warning
Verdict: {PASS | FAIL | PASS WITH WARNINGS}
Bugs found: {count}
Critical: {count} — [brief descriptions]
Major: {count}
Minor: {count}
Report: .sage/[path]/qa-report.md
[A] Approve report [R] Revise — retest something
[F] → /fix to address bugs [N] New session
Pick A/R/F/N, or tell me what to change.
Next steps (Zone 3):
Next steps:
/fix — diagnose → scope → fix → verify (reads qa-report)
/design-review — design quality audit
/reflect — review the cycle, extract learnings
Type a command, or describe what you want to do next.
Good QA output:
No fake browser testing: If Lightpanda is not available, do NOT fabricate browser test results. Code-only analysis is honest about what it can and cannot verify.
Report completeness: Untested routes must be listed as "not tested" in the report. Do NOT claim a route passes if you didn't load it.
Advisory only: /qa reports. It does NOT fix bugs. If the agent catches itself thinking "I'll just fix this real quick" — STOP. Save the finding to the report and let /fix handle it.
No fixing in /qa: The separation between find and fix is deliberate. An agent that finds AND fixes has incentive to minimize findings. /qa's only job is thoroughness.
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).
development
Typed knowledge graph stored in sage-memory. Use when creating or querying structured entities (Person, Project, Task, Event, Document), linking related objects, checking dependencies, planning multi-step actions as graph transformations, or when skills need to share structured state. Trigger on "remember that X is Y", "what do I know about", "link X to Y", "show dependencies", "what blocks X", entity CRUD, cross-skill data access, or any request involving structured relationships between things.
tools
Integrates sage-memory into Sage workflows. Teaches the agent when to remember (store findings during work), when to recall (search memory at session start and task start), and how to learn (structured knowledge capture via sage learn). Use when the user mentions memory, remember, recall, learn, capture knowledge, onboard to codebase, or when starting any session where sage-memory MCP tools are available.
tools
Captures agent mistakes, corrections, and discovered gotchas so they are not repeated. Use when: (1) a command or operation fails unexpectedly, (2) the user corrects the agent, (3) the agent discovers non-obvious behavior through debugging, (4) an API or tool behaves differently than expected, (5) a better approach is found for a recurring task. Also searches past learnings before starting tasks to avoid known pitfalls. Activate alongside the sage-memory skill — they share the same MCP backend but serve different purposes (sage-memory = codebase knowledge, sage-self-learning = agent mistakes and gotchas).