.claude/skills/lisa-integration-test/SKILL.md
This skill should be used when integration testing Lisa against a downstream project. It applies Lisa templates, verifies the project still builds, and if anything breaks, fixes the templates upstream in Lisa and retries until the project passes all checks.
npx skillsauth add codyswanngt/lisa lisa-integration-testInstall 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.
Apply Lisa templates to a downstream project and verify it works end-to-end. If anything breaks, fix the upstream templates in Lisa and retry until the project passes all checks.
This must be run FROM the Lisa repository directory.
src/core/lisa.ts)src/core/lisa.ts$ARGUMENTS. If not provided, ask the user.package.json (Node/Bun/TypeScript projects)Gemfile or config/application.rb (Rails projects)git -C <project-path> status --porcelain
Before applying Lisa, record the project's current state:
git -C <project-path> log --oneline -1 to note the current HEADgit -C <project-path> branch --show-currentRun from the Lisa directory:
bun run dev <project-path>
If Lisa fails, report the error and stop.
Run git -C <project-path> status --short to see what Lisa modified.
If nothing changed, report "Lisa applied cleanly with no changes" and stop.
Run the project's verification commands in order. Stop at the first failure:
cd <project-path> && bun run typecheck (or npm run typecheck based on package manager)cd <project-path> && bun run lint (or equivalent)cd <project-path> && bun run test (or equivalent)Determine the package manager by checking which lockfile exists:
bun.lockb → bunpnpm-lock.yaml → pnpmyarn.lock → yarnpackage-lock.json → npmIf any verification step fails:
*.local.* files (project-specific override needed), fix it in the project and go to Step 6bbun run typecheck && bun run lint && bun run testtsconfig.local.json, eslint.config.local.ts, vitest.config.local.ts, jest.config.local.ts)Once all verification passes:
git -C <project-path> add <changed-files>chore: apply Lisa <version> templatesOutput a summary:
## Lisa Integration Test: PASSED
**Project:** <project-path>
**Lisa version:** <version>
**Branch:** <branch>
### Changes Applied
- <list of changed files>
### Verification
- Typecheck: PASSED
- Lint: PASSED
- Tests: PASSED
### Upstream Fixes (if any)
- <list of Lisa template fixes made>
### Commits
- <project-commit-hash> chore: apply Lisa <version> templates
- <lisa-commit-hash> fix: <description> (if upstream fixes were needed)
tsconfig.local.json, eslint.config.local.ts, etc.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.