plugins/lisa/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.tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and