plugins/lisa-agy/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.development
Prepare a machine — a fresh laptop or a throwaway container — to run coding agents, before any repository exists. Detects which of Lisa's supported agents (Claude Code, Codex, Cursor, OpenCode, Antigravity, Copilot) are already installed, asks which credential manager the machine uses (Bitwarden, 1Password, Doppler, Vault, AWS, or none), and installs only what is missing, each by its vendor's own preferred method. Idempotent, headless by default, and emits a Dockerfile for a spin-up/spin-down environment. Run it on a new machine, in a container, or before cloning anything.
tools
Provision and verify a remote execution environment for a host project — Codex Cloud today, other remote surfaces as they are added. Generates a repository-owned setup script that installs the declared toolchain, materializes secrets through lisa-secrets-access, and runs the project's own hook. Provisions by API where one exists, by driving the vendor console where one does not, and by emitting exact config otherwise — then proves the result with the same read-back regardless of which tier did the work. Use before dispatching any work with executionEnv.
tools
Bring a developer's machine in line with the toolchain the project declares. Reports every tool in remoteEnv.tools that is missing, outdated, or unpinned for this platform, and installs the missing ones into ~/.local/bin from the same pinned, checksummed entries the remote surfaces use — but only when asked. Same manifest, same pins, same installers as lisa-setup-remote-env; what differs is consent and that the pin is a floor rather than an equality. Run it on a fresh checkout, after a manifest change, or when a tool fails at the moment of use.
tools
Route one unit of work to a remote execution surface. Reads the executionEnv parameter (local by default, codex-cloud or claude-web today), verifies the environment is provisioned and bound to this repository, submits a thin skill invocation, records the task identifier to .lisa/remote-dispatch.json, and exits without polling. Routing only — the remote runs the identical skill from the identical repository. Composable and inline: other skills invoke it via the Skill tool rather than users calling it directly.