plugins/lisa-cursor/skills/lisa-qa-checklist/SKILL.md
Serve the current manual regression checklist to a human QA tester. Reads the project's curated journey list, cross-references it against what the automated suites (Playwright web E2E, Maestro native E2E) actually cover by scanning the spec files, and serves only the journeys that still need human eyes — each as plain-language steps. Keeps a single source of truth so testers never work from a stale personal copy, and shrinks automatically as automated coverage grows.
npx skillsauth add codyswanngt/lisa lisa-qa-checklistInstall 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.
The manual regression sweep exists to catch what automation does not. Its checklist must therefore be computed, not remembered: curated journeys minus automated coverage, at the moment the tester asks.
qa.checklistFile in .lisa.config.json, default
.lisa/qa-checklist.md. Format: one ## Journey: <name> section per user journey,
with plain-language steps and an optional automation: line naming the covering spec
file(s) once one exists. If the file does not exist, offer to bootstrap it: derive
candidate journeys from the app's route map and the existing E2E suites' describe
blocks, write the draft, and ask the operator to curate it once. Never invent
journeys silently.automation: line must name BOTH
the spec file and the specific test within it (the Playwright describe/test title
or Maestro flow name): automation: <spec-path> :: <test-or-flow-name>. A journey
counts as covered only when that spec file exists, the named test/flow is present in
it, and it is not skipped (test.skip, commented-out flow, or excluded from CI). A
file-only line, a named test that no longer matches, or any ambiguous mapping is
treated as uncovered — a live filename proves nothing about what the spec
exercises. A deleted, renamed, or skipped test silently un-covers its journey — the
very regression this check exists to catch; call it out loudly.Present two lists, human-first:
## Manual sweep — <n> journeys need your eyes
1. <Journey name> — <plain-language steps>
Why manual: <no automation | automation skipped/stale: <spec>>
...
## Covered by automation — <n> journeys (skim, don't re-test)
- <Journey name> — <spec file> (<playwright|maestro>)
Rules for the served text: steps an intern can follow, no spec-file jargon in the manual section beyond the "why manual" line, and stable journey ordering (file order) so testers can resume mid-sweep.
lisa-codify-verification lands a spec), add its
automation: <spec-path> :: <test-or-flow-name> line — on request this skill locates
the covering spec and test, confirms the named test actually drives the journey's
steps, and writes the line itself.tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.
tools
Configure the official SonarQube plugin + MCP as Lisa's single Sonar substrate across every supported coding agent. Installs/updates the SonarQube CLI, authenticates (browser login on a dev machine, or SONARQUBE_CLI_TOKEN headless), selects the Test Manager target, runs `sonar integrate <agent>` for each supported agent (Claude, Codex, Cursor, Copilot, Antigravity) and wires the MCP for OpenCode, then writes only non-secret policy to .lisa.config.json. Separate from the CI SonarCloud scan gate, which is unchanged.