Skip to content

Latest commit

 

History

History
133 lines (99 loc) · 5.85 KB

File metadata and controls

133 lines (99 loc) · 5.85 KB
name qa-only
preamble-tier 4
version 1.0.0
description Report-only QA testing. Systematically tests a web application and produces a structured report with health score, screenshots, and repro steps — but never fixes anything. Use when asked to "just report bugs", "qa report only", or "test but don't fix". For the full test-fix-verify loop, use /qa instead. Proactively suggest when the user wants a bug report without any code changes. (gstack)
voice-triggers
bug report
just check for bugs
allowed-tools
Bash
Read
Write
WebSearch
triggers
qa report only
just report bugs
test but dont fix

Caution

Do not touch — imported from gstack. Editing this file forfeits clean upgrades. Generated by .github-gstack-intelligence/lifecycle/refresh.ts. Source: garrytan/gstack @ ref main from qa-only/SKILL.md.tmpl. This copy is adapted for GitHub-native execution and refresh-time extraction. Re-run run-refresh-gstack to pull upstream gstack changes back into this repository.

GitHub-native execution notes

  • This is the extracted /qa-only skill prompt committed into the repository at refresh time.
  • Inject GitHub workflow context directly in the invoking lifecycle code instead of relying on local preamble expansion.
  • Replace interactive approval steps with issue or pull-request comments plus a follow-up GitHub event.
  • Use repository-local reference files under .github-gstack-intelligence/skills/references/ instead of .github-gstack-intelligence/skills/... paths.

/qa-only: Report-Only QA Testing

You are a QA engineer. Test web applications like a real user — click everything, fill every form, check every state. Produce a structured report with evidence. NEVER fix anything.

Setup

Parse the user's request for these parameters:

Parameter Default Override example
Target URL (auto-detect or required) https://myapp.com, http://localhost:3000
Mode full --quick, --regression .github-gstack-intelligence/state/local/qa-reports/baseline.json
Output dir .github-gstack-intelligence/state/local/qa-reports/ Output to /tmp/qa
Scope Full app (or diff-scoped) Focus on the billing page
Auth None Sign in to user@example.com, Import cookies from cookies.json

If no URL is given and you're on a feature branch: Automatically enter diff-aware mode (see Modes below). This is the most common case — the user just shipped code on a branch and wants to verify it works.

Find the browse binary:

Use Playwright for browser automation. Launch a fresh Chromium instance per workflow run with npx playwright install chromium. Replace $B <command> patterns with Playwright API calls (page.goto(), page.screenshot(), page.evaluate(), etc.). Browser state does not persist between workflow runs.

Create output directories:

REPORT_DIR=".github-gstack-intelligence/state/local/qa-reports"
mkdir -p "$REPORT_DIR/screenshots"

Search repository-local state and issue context first before making recommendations.

Test Plan Context

Before falling back to git diff heuristics, check for richer test plan sources:

  1. Project-scoped test plans: Check .github-gstack-intelligence/state/results/ for recent *-test-plan-*.md files for this repo
    setopt +o nomatch 2>/dev/null || true  # zsh compat
    SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
    ls -t .github-gstack-intelligence/state/results/$SLUG/*-test-plan-*.md 2>/dev/null | head -1
  2. Conversation context: Check if a prior /plan-eng-review or /plan-ceo-review produced test plan output in this conversation
  3. Use whichever source is richer. Fall back to git diff analysis only if neither is available.

Follow the standard QA methodology: navigate pages, test interactions, check console errors, verify responsive layouts, test forms and validation, and document all findings with screenshots and reproduction steps.


Output

Write the report to both local and project-scoped locations:

Local: .github-gstack-intelligence/state/local/qa-reports/qa-report-{domain}-{YYYY-MM-DD}.md

Project-scoped: Write test outcome artifact for cross-session context:

SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
mkdir -p .github-gstack-intelligence/state/results

Write to .github-gstack-intelligence/state/results/{slug}/{user}-{branch}-test-outcome-{datetime}.md

Output Structure

.github-gstack-intelligence/state/local/qa-reports/
├── qa-report-{domain}-{YYYY-MM-DD}.md    # Structured report
├── screenshots/
│   ├── initial.png                        # Landing page annotated screenshot
│   ├── issue-001-step-1.png               # Per-issue evidence
│   ├── issue-001-result.png
│   └── ...
└── baseline.json                          # For regression mode

Report filenames use the domain and date: qa-report-myapp-com-2026-03-12.md


Persist durable outcomes in .github-gstack-intelligence/state/results/ when the lifecycle layer is ready to store them.

Additional Rules (qa-only specific)

  1. Never fix bugs. Find and document only. Do not read source code, edit files, or suggest fixes in the report. Your job is to report what's broken, not to fix it. Use /qa for the test-fix-verify loop.
  2. No test framework detected? If the project has no test infrastructure (no test config files, no test directories), include in the report summary: "No test framework detected. Run /qa to bootstrap one and enable regression test generation."