plugins/lisa-cursor/skills/product-walkthrough/SKILL.md
Methodology for evaluating the live product when planning work or evaluating a PRD. Reading a PRD or a mock without seeing the current product produces tickets that misjudge the change — this skill grounds the analysis in what actually exists today. Driving the product is owned by the `use-the-product` core (which detects the product type — DOM web, HTTP/API, canvas game, CLI, IaC — resolves the per-environment mutation policy from .lisa.config.json so production is never mutated by accident, and explores through the project's personas when defined); this skill adds the planning lens. Invoke from notion-to-tracker (Phase 2b live-product walkthrough), jira-create, and any PRD intake flow whose work touches existing user-facing surfaces.
npx skillsauth add codyswanngt/lisa product-walkthroughInstall 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.
Reading a PRD or a mock without seeing the current product produces tickets that misjudge the change. This skill defines how to evaluate the live product before planning tickets, so the work is grounded in what actually exists today.
How you drive the product is owned by the use-the-product core skill — it detects the product type (web / API / game / CLI / IaC), resolves the target environment and its mutation policy from .lisa.config.json, and discovers the project's personas. A walkthrough is read-leaning: prefer the policy's read-only actions, and only mutate when both the policy allows it (full) and a flow genuinely can't be understood without it. This skill adds the planning lens below.
Always run a walkthrough when the work touches user-facing surfaces:
Skip when the work is purely internal (type-only, doc-only) or affects a surface that does not yet exist in production / dev.
Before driving anything, list the surfaces the change will touch:
Write this list down. If you can't, the PRD is too vague — note it as a coverage smell and surface it as an Open Question on the resulting ticket.
Invoke use-the-product to detect the type, resolve the environment + mutation policy, and discover personas — then drive the surfaces from step 1 through its per-type playbook (browser for DOM, curl for an API, canvas+input for a game, cdk synth/diff for IaC). Capture evidence as you go: for a DOM app, a browser_snapshot (accessibility tree — best for reasoning) and a browser_take_screenshot (visual) per surface and per state, plus browser_console_messages / browser_network_requests after interactions; for an API, representative request/response pairs; for a game, screenshots of each state. If the project defines personas, walk the surfaces as the relevant archetype(s).
Honor the mutation gate: on a read-only env, observe without submitting; never walk a forbidden env (production defaults to forbidden). Treat console errors, 4xx/5xx, and unexpected calls as findings.
For every walkthrough, record:
lisa:tracker-source-artifacts §7).lisa:tracker-source-artifacts §3).Capture evidence so the originating ticket / Notion comment / PRD review can reference it. Close the session when done (browser_close for a browser) — walkthroughs are short, focused, and one-shot.
## Current Product in the ticket description (Story or Epic). Reference screenshots as remote links or attachments.Use this structure when emitting walkthrough findings, so consuming skills can splice them into tickets / comments unchanged. The ## Current Product heading matches what lisa:jira-write-ticket Phase 4e expects to inherit — keep the heading exact.
## Current Product
**Environment**: <target> as <account/role> (<mutation level>)
**Explored as**: <persona(s) or "generic representative user">
**Viewports exercised**: Desktop 1512×768, Mobile 375×812 (DOM web only)
### Surfaces walked
1. <route/endpoint/screen> — <one-line current behavior>
2. <route/endpoint/screen> — <one-line current behavior>
### What exists today
<2-4 sentence prose summary of the current flow and components/endpoints in use>
### Delta vs. PRD
- ADDED: <new surface/state from PRD>
- MODIFIED: <existing surface, with the change>
- REMOVED: <existing surface PRD removes>
- UNCHANGED-BUT-IMPACTED: <existing surface PRD doesn't mention but will be affected>
### Existing-component reuse candidates
- <component / endpoint / screen> — could absorb <new behavior>
### Design-vs-current-product divergence
- <mock or prototype reference> diverges from <current surface> in: <specific dimension>
- Recommendation: <reuse / new build / discussion>
### Coverage smells & behavioral surprises
- <smell or surprise>
### Evidence
- <list of screenshots/snapshots/request-response pairs, with captions>
forbidden environment (production is forbidden by default). Use dev/staging per the exploration config, and default to read-only for a planning walkthrough.## Open Questions on tickets, not silent assumptions. If the current product contradicts the PRD, surface it as a BLOCKER.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.