Frontend Browser Review
Use this skill when a change affects what users see or do in the browser.
Start Here
- Read
../../../web/AGENTS.md for web-specific
entry points and test commands.
- In Cursor Cloud, use built-in computer use. In local agent environments, use
the workspace
playwright MCP server from the shared agent setup.
When To Use It
Drive a browser when the outcome is uncertain:
- Changes to navigation or page flows, or anything carrying state across steps
- Layout or responsive behavior that could reflow in a way you cannot predict
- Bug fixes where the failure mode is visible in the browser
- Final signoff for a substantial piece of user-visible work
When To Offer Instead
A small, self-contained visual change you are confident in does not need an
automated pass. Spacing, a colour token, a label, an icon swap: say what you
changed, hand over the exact URL — a local port or the pull request's
pr-<N>.preview.langfuse.com — and let the developer take the two-second look.
It is faster for them than waiting while you confirm something you already know,
and a screenshot in the pull request still carries the proof.
Two conditions. Be explicit — name what you did not check and why, so the
choice is visible and they can overrule it. And do it while they are there:
offering is a handoff, not a way of ending your turn. If nobody is around to
look, and the change is user-visible, check it yourself.
Prefill Test Data First
Most flows are only reviewable against meaningful data. Before opening the
browser, seed what the flow needs with the seed CLI (see the
seed-test-data skill for the need→command table):
pnpm run seed -- trace-tree --observations 5000 --v4 — complex
observation trees (v3 + v4 events)
pnpm run seed -- long-session --traces 300 — heavy session views
pnpm run seed -- many-traces --count 100000 — list/filter performance
pnpm run seed -- doctor — when the stack misbehaves
Every run prints UI deep links — open those instead of navigating manually.
Do not hand-write seed scripts or raw ClickHouse inserts.
Review Loop
- Use the existing Cursor Cloud Compose app when available. Otherwise start
the app with
pnpm run dev:web unless a local server is already running.
- Install Chromium with
pnpm run playwright:install if Playwright has not
been set up on the machine yet.
- Open the primary changed flow with Cursor computer use or the Playwright MCP
server, using seed-CLI deep links when the flow needs seeded data.
- Exercise the main happy path affected by the change.
- Check for obvious visual regressions:
- broken layout or spacing
- banner overlap or viewport anchoring issues
- missing loading, empty, or error states
- broken responsive behavior on narrow widths
- If the page changed materially, inspect the resulting UI state and compare
it against the intended behavior from the task or existing patterns.
- If a Playwright MCP session fails, inspect
/tmp/playwright-mcp. In Cursor
Cloud, inspect the run's browser artifacts and Compose logs.
Output Expectations
Report:
- What flow you reviewed
- Whether the primary flow worked
- Any visible regressions or follow-up risks
- If review was blocked, exactly what prevented browser verification
- For a human handoff, the preview or sandbox URL plus exact click-path
steps, and proof of the fix posted on the GitHub PR (screenshot, short
video, or before/after) — not a long agent-only writeup and not only
in chat
Scope Notes
- This skill complements, not replaces, targeted tests and linting.
- For implementation details, stay in
web/AGENTS.md and package-local skills.
- Use this as the browser-signoff workflow, not as a generic frontend coding
guide.
1---2name: frontend-browser-review3description: Shared workflow for browser-based review of user-visible frontend changes in Langfuse. Use when a change affects UI behavior, layout, styling, navigation, or browser-visible regressions and should be checked with available browser automation before signoff.4---5
6# Frontend Browser Review
7
8Use this skill when a change affects what users see or do in the browser.
9
10## Start Here
11
12- Read [`../../../web/AGENTS.md`](../../../web/AGENTS.md) for web-specific
13 entry points and test commands.
14- In Cursor Cloud, use built-in computer use. In local agent environments, use
15 the workspace `playwright` MCP server from the shared agent setup.
16
17## When To Use It
18
19Drive a browser when the outcome is uncertain:
20
21- Changes to navigation or page flows, or anything carrying state across steps
22- Layout or responsive behavior that could reflow in a way you cannot predict
23- Bug fixes where the failure mode is visible in the browser
24- Final signoff for a substantial piece of user-visible work
25
26## When To Offer Instead
27
28A small, self-contained visual change you are confident in does not need an
29automated pass. Spacing, a colour token, a label, an icon swap: say what you
30changed, hand over the exact URL — a local port or the pull request's
31`pr-<N>.preview.langfuse.com` — and let the developer take the two-second look.
32It is faster for them than waiting while you confirm something you already know,
33and a screenshot in the pull request still carries the proof.
34
35Two conditions. **Be explicit** — name what you did not check and why, so the
36choice is visible and they can overrule it. And **do it while they are there**:
37offering is a handoff, not a way of ending your turn. If nobody is around to
38look, and the change is user-visible, check it yourself.
39
40## Prefill Test Data First
41
42Most flows are only reviewable against meaningful data. Before opening the
43browser, seed what the flow needs with the seed CLI (see the
44`seed-test-data` skill for the need→command table):
45
46- `pnpm run seed -- trace-tree --observations 5000 --v4` — complex
47 observation trees (v3 + v4 events)
48- `pnpm run seed -- long-session --traces 300` — heavy session views
49- `pnpm run seed -- many-traces --count 100000` — list/filter performance
50- `pnpm run seed -- doctor` — when the stack misbehaves
51
52Every run prints UI deep links — open those instead of navigating manually.
53Do not hand-write seed scripts or raw ClickHouse inserts.
54
55## Review Loop
56
571. Use the existing Cursor Cloud Compose app when available. Otherwise start
58 the app with `pnpm run dev:web` unless a local server is already running.
592. Install Chromium with `pnpm run playwright:install` if Playwright has not
60 been set up on the machine yet.
613. Open the primary changed flow with Cursor computer use or the Playwright MCP
62 server, using seed-CLI deep links when the flow needs seeded data.
634. Exercise the main happy path affected by the change.
645. Check for obvious visual regressions:
65 - broken layout or spacing
66 - banner overlap or viewport anchoring issues
67 - missing loading, empty, or error states
68 - broken responsive behavior on narrow widths
696. If the page changed materially, inspect the resulting UI state and compare
70 it against the intended behavior from the task or existing patterns.
717. If a Playwright MCP session fails, inspect `/tmp/playwright-mcp`. In Cursor
72 Cloud, inspect the run's browser artifacts and Compose logs.
73
74## Output Expectations
75
76Report:
77
781. What flow you reviewed
792. Whether the primary flow worked
803. Any visible regressions or follow-up risks
814. If review was blocked, exactly what prevented browser verification
825. For a human handoff, the preview or sandbox URL plus exact click-path
83 steps, and proof of the fix posted on the GitHub PR (screenshot, short
84 video, or before/after) — not a long agent-only writeup and not only
85 in chat
86
87## Scope Notes
88
89- This skill complements, not replaces, targeted tests and linting.
90- For implementation details, stay in `web/AGENTS.md` and package-local skills.
91- Use this as the browser-signoff workflow, not as a generic frontend coding
92 guide.