plugins/lisa-cursor/skills/product-walkthrough/SKILL.md
Methodology for evaluating the live product via a real browser (Playwright MCP) 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. Invoke this skill 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 use a real browser (via Playwright MCP) to evaluate the live product before planning tickets, so the work is grounded in what actually exists today.
Always run a walkthrough when the work touches user-facing surfaces:
Skip when the work is purely backend with no user-visible surface, type-only, doc-only, or affects a screen that does not yet exist in production / dev.
Required inputs (ask if not set):
| Variable | Purpose | Example |
|----------|---------|---------|
| E2E_BASE_URL | Frontend base URL to walk through | https://dev.example.io/ |
| Sign-in account | Test user to sign in as for the affected flows | from PRD config / 1Password / env |
| Sign-in credentials | How to obtain (1Password item, env vars) | E2E_TEST_PHONE, E2E_TEST_OTP |
Walk through dev (or the env named in the PRD) — never prod for exploratory walkthroughs unless explicitly asked.
Before opening the browser, list the surfaces the change will touch:
Write this list down. If you can't, the PRD is too vague — note this as a coverage smell and surface it as an Open Question on the resulting ticket.
browser_navigate to E2E_BASE_URL.browser_resize to the primary viewport (default desktop 1512×768).browser_fill_form and browser_click. Capture the post-login screen with browser_snapshot or browser_take_screenshot.For each surface from step 1:
browser_snapshot (accessibility tree — better for reasoning) and a browser_take_screenshot (visual evidence).browser_resize to the secondary viewport (mobile 375×812) and re-capture.browser_console_messages and browser_network_requests after each interaction — surface any errors, 4xx/5xx, or unexpected calls.For every walkthrough, record:
browser_snapshot), and the states observed.lisa:tracker-source-artifacts §7).lisa:tracker-source-artifacts §3 (mocks define visual intent, not implementation shortcut).Capture screenshots/snapshots in a way that the originating ticket / Notion comment / PRD review can reference them.
## Current Product in the ticket description (Story or Epic). Reference the screenshots as remote links if hosted, or inline them as attachments.browser_close when done. Walkthroughs are short, focused, and one-shot — do not leave a session open across phases.
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**: <E2E_BASE_URL> as <account/role>
**Viewports exercised**: Desktop 1512×768, Mobile 375×812
### Surfaces walked
1. <route> — <one-line current behavior>
2. <route> — <one-line current behavior>
### What exists today
<2-4 sentence prose summary of the current flow and components 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 or screen> — could absorb <new behavior>
### Design-vs-current-product divergence
- <mock or prototype reference> diverges from <current screen> in: <specific dimension>
- Recommendation: <reuse / new build / discussion>
### Coverage smells & behavioral surprises
- <smell or surprise>
### Evidence
- <list of screenshots/snapshots, with captions>
prod for exploratory analysis. dev (or the env named in the PRD) only.## Open Questions on tickets, not silent assumptions. If the current product contradicts the PRD, surface it as a BLOCKER.documentation
Onboard a user to the project via its LLM Wiki. Interviews the user about themselves in relation to the project, captures that to project-scoped memory only, then gives a guided tour of what the project is and sample questions they can ask. Use when someone is new to the project or asks to be onboarded. Read-mostly — it does not open PRs or write PII into the wiki.
documentation
Migrate an existing, hand-rolled wiki implementation onto the lisa-wiki kernel — phased and compatibility-first, with a strict no-loss guarantee. Use when adopting lisa-wiki in a repo that already has its own wiki/, ingest skills, docs, or roles. Renaming things into the canonical shape is fine; losing functionality or data is not. Ends by running /doctor.
development
Health-check the LLM Wiki. Reports orphan pages, contradictions, stale claims, broken internal links, missing index/log coverage, structure-manifest violations, and secret/tenant leaks. Use periodically or before hardening a wiki. Read-only — it reports findings, it does not fix them.
testing
Ingest source material into the LLM Wiki. With an argument (URL, file path, or prompt) it ingests that one source; with no argument it runs a full ingest across every enabled non-external-write source. Routes to the right connector, then runs the ordered pipeline (source note → synthesis → index → log → verify → state → commit/PR). Use whenever new knowledge should enter the wiki.