.agents/skills/debug-frontend-with-browser/SKILL.md
Find the first boundary where correct data becomes incorrect. This skill extends
acceptance; it does not define a separate test workflow.
Before any browser, Electron, network, cache, or application interaction:
../acceptance/SKILL.md and the project's
PROCESS.md in full.acceptance has established the
approved execution surface. If its environment or auth gate is blocked, stop
there instead of inventing another execution path.If acceptance is unavailable, say so and stop before touching a live surface.
acceptance owns | This skill adds |
|---|---|
| Environment isolation and service lifecycle | Falsifiable symptom and event timeline |
| Authentication and fixture seeding | Boundary-by-boundary state comparison |
| Browser/Electron driver setup | Safe minimal fixture extraction |
| Approval and mutation authority | Pure-function replay and commit A/B |
| Evidence, report, publication, teardown | Earliest-boundary fix guidance |
Do not duplicate or weaken acceptance rules here. When the two skills appear
to conflict, acceptance and the project layer control execution.
Write one expected invariant and one observed violation. Record:
For timing or ordering defects, define the expected and observed event timelines before reading implementation code.
Use the surface and capture method chosen by acceptance; do not relaunch or
reattach to the user's resident application.
Compare the same entity IDs at each layer and mark each boundary correct or
incorrect.
| Boundary | Inspect | What it distinguishes |
|---|---|---|
| DOM / visible row | Text, order, recording | Symptom only |
| Renderer input | Component props, virtual-list data | Renderer vs upstream input |
| Derived state | Selectors, parsed/display items | Derivation vs raw state |
| Raw client state | Store records, SWR state, persisted cache | Cache vs transformation |
| Network / server | Structural response and persisted row | Client vs server |
| Pure transformation | Exact parser/normalizer input | Runtime vs deterministic logic |
Important:
Create the fixture through the isolated environment's supported seed path. Keep only fields required by the suspected boundary, such as:
id, type or role, parent linkage, and timestamps;Store reusable inputs through the project's fixture layout. Do not copy private production content into fixtures or tracked files.
Do not infer causality from PR timing or filenames.
After diagnosis or a fix, resume the parent acceptance workflow. It owns the
focused checks, isolated visual replay, evidence inspection, structured report,
publication, and cleanup. Do not publish a separate browser-debugging verdict.
Read references/pitfalls.md when the suspected boundary involves retained React roots, virtualized data, optimistic reconciliation, stale client caches, pure replay, or regression attribution.