plugins/qa/skills/qa/SKILL.md
Use when the user asks Codex to set up the QA plugin pipeline, verify completed work, review code, run tests, debug Next.js or Convex behavior, use Browser Use for real browser QA, fix issues, update documentation, create narrated proof videos, explain QA/plugin behavior, commit changes, or verify one or more completed sprint folders.
npx skillsauth add ansarullahanasz360/cc-guide 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.
Run end-to-end QA as a small verification team. The goal is not to inspect code and guess. The goal is to prove that completed work behaves correctly, repair bounded failures, document what happened, and leave the founder with a report. A proof video is produced only as the final founder-facing artifact after every required gate is PASS or MERGE.
Read only the references needed for the run:
../../references/browser-use-proof.md../../references/qa-operating-model.md../../references/evidence-contract.md../../references/review-rubric.md../../references/stack-profiles.md../../references/tool-selection.md../../references/companion-plugins.md../../references/codex-review-and-github.mdIf the work involves Next.js, initialize Next.js DevTools MCP and follow its documentation requirements before using Next.js runtime diagnostics. If the work involves Convex, load the available Convex rules skill before reviewing Convex changes.
Use when the user asks QA to inspect a task, sprint, multiple sprint folders, branch, PR, feature, or completed work package and produce the execution blueprint before verification starts. Planning mode reads the available sprint reports, README files, completion reports, changed files, branch status, acceptance criteria, and project instructions. It produces a detailed plan and task list, but does not assign a final QA verdict and does not produce a proof video.
Use when the user asks to install, doctor, prepare, or repair the QA pipeline. Confirm companion capabilities, expected local commands, artifact directories, video prerequisites, and ignored generated outputs. For video setup, use setup-qa-video-pipeline.mjs when the project provides it. Setup mode checks Node/npm/pnpm/bun, Playwright module/CLI/browsers, ffmpeg/ffprobe, Remotion template dependencies, Deepgram key handling, artifact directories, Browser Use/Computer Use availability expectations, and an optional segmented smoke video. Setup mode does not assign product QA verdicts.
Use when the user asks to verify a branch, diff, PR, feature, completed task, or sprint. Build the definition of done from the user request, changed files, project docs, and tests. Browser Use is the source of truth for browser-facing verification.
Use only after QA has already passed or merged. The default proof-video path is: create a walkthrough plan, record a real browser walkthrough with Playwright recording, validate the recording, generate narration when available, render Remotion intro/outro segments, assemble the final MP4 with ffmpeg, then validate the final artifact. Use these script names when present:
create-proof-walkthrough-plan.mjsrecord-playwright-proof-walkthrough.mjsvalidate-proof-video.mjsgenerate-deepgram-narration.mjsrender-remotion-proof-segment.mjsassemble-proof-video-segments.mjsrun-proof-video-pipeline.mjsrender-remotion-proof-video.mjs is legacy/report-style packaging only. Prefer the segmented path where Remotion renders intro/outro and ffmpeg stitches the full-screen Playwright walkthrough between them.
Proof-video mode can append artifact paths, logs, validation metadata, recording status, duration, and narration status. It must never set or mutate the QA verdict, final verdict, required gates, test gates, runtime gates, merge status, pass status, or report outcome.
Use when the user asks how QA works, what the plugin will do, which tools it uses, what artifacts mean, or why a run passed, failed, skipped video, or used a fallback. Explain mode reads local docs and run artifacts, but does not change verdicts or run destructive actions.
Use when the user provides one or more sprint folders. Process the folders in order. For each sprint, read:
README.mdstories/STORY-*.mdprogress.mdsprint-completion.mdverification-checklist.mdverification-report.md, if presentDo not move to the next sprint until the current sprint has a verdict, report, evidence manifest, video/no-video decision, and commit/no-change decision.
PASS, FAIL, BLOCKED, PARTIAL, or N/A with evidence and rationale.PASS or MERGE.FAIL, BLOCKED, or PARTIAL, keep iterating on bounded in-scope fixes and rerun the affected gates. If credible attempts cannot resolve the issue or user input is required, stop, write the report, mark the blocker, and do not render the founder video.finalVerdict, verdict, required gates, test gates, runtime gates, merge/pass status, or report outcome.Intake and scope
Set up evidence
node plugins/qa/scripts/create-qa-run.mjs.sprints/<name>/evidence/<run-id>/ for sprint verification when a sprint folder is provided.artifacts/qa/<run-id>/ for branch, PR, or generic feature verification.Launch verification lanes
qa_planner: plan refinement, acceptance criteria, task list, agent ownership map.qa_code_review: read-only diff and acceptance review.qa_test_runner: targeted tests, then final gate when ready.qa_convex_reviewer: Convex schema/function/auth/index review when Convex changed.qa_next_diagnostics: Next.js DevTools MCP, logs, routes, page metadata, errors.qa_browser_use: Browser Use workflow verification and evidence capture.qa_computer_use: fallback for native GUI or Browser Use blockers when explicitly needed.qa_fixer: bounded fixes accepted by the lead.qa_docs: verification report, docs updates, checklist status.qa_video_director: proof-video plan, script, segment timing, and validation checklist after QA passes.qa_proof_producer: narration, Remotion bookends, ffmpeg assembly, validation, and artifact report.Review and browser QA
Fix loop
FAIL, BLOCKED, or PARTIAL.Final gates
MERGE or PASS verdicts, unless the project docs define a lighter accepted gate.PASS or MERGE before assigning proof production.Report, video, and commit
verification-report.md.manifest.json.node plugins/qa/scripts/validate-qa-artifacts.mjs <run-dir>.PASS or MERGE, produce the proof video with the project-provided video pipeline scripts, normally node plugins/qa/scripts/run-proof-video-pipeline.mjs <run-dir>.FAIL, BLOCKED, or PARTIAL, record the no-video decision in the report and manifest and stop after the report/artifact validation step.Browser Use is the primary surface for driving web verification. It supplies the interaction trail, screenshots, DOM snapshots, console logs, and visible-state checks that prove what happened. Computer Use is fallback only for native GUI, system dialogs, extensions, simulators, real-profile, desktop, multi-app, or Browser Use blocker scenarios after the supported Browser Use setup path has been attempted. Agent Browser CLI is a last fallback only when both the normal Browser Use path and the appropriate Computer Use fallback cannot complete the needed capture or diagnostic path.
The Browser Use QA subagent must save:
screenshots/step-###-<label>.pnglogs/browser-console.jsonlogs/dom-snapshot-###.txt when usefullogs/nextjs-mcp.json when availablelogs/test-output-*.txtmanifest.jsonThe proof video is a founder walkthrough, not the verification itself. It is allowed only after the QA lead has a PASS or MERGE verdict across review, automated tests, runtime diagnostics, and Browser Use verification.
The default recorder is Playwright via record-playwright-proof-walkthrough.mjs, driven by a walkthrough plan from create-proof-walkthrough-plan.mjs. The middle of the proof video must be an actual recorded browser walkthrough of the verified workflow. Screenshots may appear as supporting callouts, evidence cards, or report inserts, but they must not replace the walkthrough recording. If no real walkthrough recording artifact can be produced, the run must ship the report with a no-video decision instead of rendering a screenshot slideshow.
Remotion should generate standalone intro/outro segments, title cards, captions, and overlays. The final MP4 should normally be assembled by assemble-proof-video-segments.mjs, which uses ffmpeg to stitch intro, the full-screen Playwright walkthrough, narration, and optional outro. validate-proof-video.mjs validates video existence, duration, recording linkage, and metadata only; it does not decide whether QA passed. For meaningful sprint or feature verification, target 5-10 minutes. For a tiny scoped change, a shorter video is acceptable only when the report explains why the shorter duration still proves the work.
The proof producer uses DEEPGRAM_API_KEY first, then the QA plugin’s macOS Keychain helper. Configure once with:
node plugins/qa/scripts/deepgram-key.mjs set
The script reads from DEEPGRAM_API_KEY or stdin. Never write the key into a repo file.
Report in founder-facing terms:
development
Decide HOW to run a coding task — interactive, goal mode, or a workflow — then author the launch-ready prompt or goal package for Claude Code, Codex, or Antigravity. Use when the user says "launchpad", "start a goal", "set up a goal/sprint", "should this be a goal or interactive", "plan an autonomous run", "I want to brain-dump a task", "help me write a goal prompt", or is about to kick off a long autonomous run and wants it scoped, delegated, and verifiable first.
development
Use when turning founder requirements, research packets, plans, specs, and system designs into one or more independently executable Claude Code, Cloud Code, or Codex implementation sprints with story writing, review, execution, optional verification, and sprint-level commits.
tools
Interactive Claude Code repository setup and optimization. Configures the complete ecosystem - skills, commands, subagents, hooks, rules, MCPs, and plugins. Invoke with /setup-claude init or /setup-claude audit.
testing
Pre-flight check for Ralph TUI loops. Validates config, templates, prd.json, and environment before starting a loop. Run after /prd to verify everything is ready. Detects global CLAUDE.md conflicts, validates template variables, and provides launch commands.