From chrome-qa-loop
Reusable closed loop for exploratory QA over ANY live web app via the Chrome DevTools MCP. You trigger it → Claude navigates the app with full per-screen doc context → writes one markdown report per finding → you review → hand back for triage → fixes enter a Feature-Development loop. Product-agnostic: target URL, screen manifest and report paths come from chrome-qa-loop.config.json. Trigger with "/chrome-qa-loop", "qa loop", "explore the app", "test the live app", "chrome qa".
How this skill is triggered — by the user, by Claude, or both
Slash command
/chrome-qa-loop:chrome-qa-loopThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A reusable human-in-the-loop QA cycle, driven by Claude via the **Chrome DevTools MCP** (`chrome-devtools-mcp`). Generalized from a real implementation that QA'd VibingCash (see README) — nothing here is bound to a single product.
A reusable human-in-the-loop QA cycle, driven by Claude via the Chrome DevTools MCP (chrome-devtools-mcp). Generalized from a real implementation that QA'd VibingCash (see README) — nothing here is bound to a single product.
you trigger ─▶ EXPLORE (Chrome DevTools MCP) ─▶ REPORT (md per finding) ─▶ you REVIEW ─▶ TRIAGE ─▶ IMPLEMENT (feature-dev loop) ─▶ REFLECT ─▶ (back to you)
The loop reads chrome-qa-loop.config.json from the target repo root. If absent, ask the operator once and persist it:
{
"TARGET_BASE_URL": "https://example.com",
"SCREEN_MANIFEST": "docs/qa/PLAN.md",
"OWNER_DOCS_ROOT": "docs/features/",
"REPORTS_ROOT": "docs/qa/reports/",
"RUN_MODE": "core"
}
Scaffold the manifest + report contract from templates/ in this plugin:
PLAN.template.md, screen-manifest.template.md, report.template.md.
/chrome-qa-loop [mode=guest|guest-smoke|guest-full|smoke|core|full] # run an exploration pass (default: core)
/chrome-qa-loop triage run=<run-id> # turn reviewed reports into tasks + PLAN stubs
chrome-qa-loop.config.json exists (or create it from templates/).smoke/core/full: operator is logged into ${TARGET_BASE_URL} in the Chrome profile connected to the DevTools MCP. For guest* modes: no login required — only public routes explored.chrome-devtools MCP tools are available (chrome-devtools-mcp server, registered in this plugin's .mcp.json). Verify with list_pages. Fallback: claude-in-chrome.${REPORTS_ROOT} exists (create if missing).run-id: qa-<YYYYMMDD>-<mode> (read today's date via Bash date; the runtime forbids Date.now() in scripts).${REPORTS_ROOT}/<run-id>/.chrome-qa-explorer agent with: the run-id, the mode, the config, and a pointer to the PLAN (manifest + guardrails + report contract). It navigates, exercises scenarios, and writes one report file per finding immediately, plus _INDEX.md.The explorer is read-only on prod. It never writes real data, completes payments, or triggers blocking dialogs.
Tell the operator: open the reports folder, review each finding, and set status: triaged on the ones to act on (or rejected to drop). This is the human-in-the-loop checkpoint — do not auto-proceed.
On /chrome-qa-loop triage run=<run-id>: dispatch the qa-report-triage agent. It dedupes, prioritizes (P0–P3), locates likely code via /graphify, and emits triage/TASKS.md + per-fix PLAN.md stubs.
Each accepted PLAN stub enters a Feature-Development loop (e.g. the agentic-value-loops plugin): plan → implement → test → quality gate → ship. This loop does not re-implement that machinery.
Log the run: findings shipped, what the explorer missed, manifest gaps (new routes/screens to add). Update the manifest when the product changes. Re-run mode=smoke on fixed screens to verify (use /verify), closing the loop.
chrome-qa-explorer — browser-driving QA brain (per screen, per run).qa-report-triage — review→implement bridge.chrome-devtools (chrome-devtools-mcp, official Google Chrome DevTools MCP) — registered in .mcp.json. Verify with list_pages. Fallback: claude-in-chrome.rtk, context-mode, /caveman, /graphify — when available.Read-only on production · no blocking dialogs (use handle_dialog) · ground expectations in owner-docs before judging · secrets/PII = P0 (location only) · benign prompt-injection probe only · write a report per finding immediately (auto-saved to disk, no manual download).
npx claudepluginhub andersonlimahw/lemon-ai-hub --plugin chrome-qa-loopGeneric autonomous QA suite for any project — reads a test plan (markdown file or inline spec), runs all tests using Chrome CDP + iterate cycles, fixes bugs found, and produces a final QA report. Works with any web stack. Trigger with /full-qa [path-to-test-plan.md]. Use before releases, after significant changes, or whenever you want a full system health check.
Drives a real Chrome session against a running web app to find bugs, polish issues, a11y concerns, perf problems, and copy errors. Writes structured findings JSON for downstream triage.
Runs an autonomous QA loop that explores an app, derives user journeys, generates Playwright tests, executes them, self-heals broken locators, and reports coverage.