interactive-testinglisted
Install: claude install-skill SDSLeon/lightcode
# Interactive Testing — Lightcode
Drive the real running Electron app via Chrome DevTools Protocol (CDP) to verify changes after a refactor or feature edit. Complements unit/integration tests — catches the things vitest can't (real renderer rendering, real IPC, real Electron lifecycle, real provider menus, real chat layout).
## When to use
- User says **"smoke test"**, **"test the app"**, **"open the app and try X"**, **"verify the refactor"**.
- After a non-trivial UI refactor where unit tests pass but visual / interaction correctness is still in doubt.
- After IPC / contract changes — to confirm the renderer still talks to the supervisor.
## When NOT to use
- Pure logic bugs that have a failing unit test reproduction — fix the test instead.
- Backend-only changes (database, supervisor process internals) with no renderer-visible surface.
- When the user asks a quick question — don't spin up the whole app to answer "what does this function do".
## Prerequisites — one-time source patches
Two small env-gated escape hatches in `src/main/main.ts` make smoke testing hermetic. Both are opt-in (default behavior unchanged), safe to commit. Check whether they're already present:
```bash
grep -n "LIGHTCODE_CDP_PORT\|LIGHTCODE_BASE_DIR" src/main/main.ts
```
### Patch 1 — CDP port (required to attach `agent-browser`)
Add near the top of `main.ts`, after `import { app, BrowserWindow } from "electron";`:
```ts
if (process.env.LIGHTCODE_CDP_PORT) {
app.commandLine.appendSwitch(