agentleFS
bbvch-aibbvch-ai/aihub-core/.claude/skills/debug-frontend/SKILL.md

debug-frontend

Skill16 starsChanged 3 days agoApache-2.0View on GitHub

Debug the Nuxt 3 admin UI using Playwright MCP for visual inspection, console error analysis, and network request tracing. Use when user says 'UI is broken', 'page not loading', 'frontend bug', 'console errors', 'API call failing in UI', 'component not rendering', 'blank page', 'verify my UI changes', or 'check the admin interface'. Do NOT use for static code quality audits (use audit-frontend), backend agent debugging (use debug-agent), or bot platform issues (use bot-framework).

We split this skill into the rules it gives an agent

23 rules. About 0 are common, 7 are distinctive, and 16 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 16

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the Playwright MCP browser_navigate tool to open the page.

    line 21
  2. Distinctive:

    Use these Playwright MCP tools to gather diagnostic information:

    line 34
  3. Very specific:

    Check browser_network_requests for failed API calls

    line 45
  4. Distinctive:

    Look at the request URL and response status

    line 46
  5. Very specific:

    Check if the API server is running (curl http://localhost:8000/api/v1/active/docs)

    line 48
  6. Very specific:

    Use browser_snapshot to check the DOM structure

    line 53
  7. Distinctive:

    Look for missing data (composable not returning data)

    line 54
  8. Very specific:

    Check if StructuralColumn has loading: true (blocks child rendering)

    line 55
  9. Very specific:

    Check if redirected to /auth/login

    line 59
  10. Very specific:

    Verify the OIDC plugin is configured: packages/web/plugins/oidc-client.ts

    line 60
  11. Very specific:

    Check middleware/auth.global.ts for route guard logic

    line 61
  12. Very specific:

    Look for raw key paths displayed instead of translated text (e.g., agent.title shown literally)

    line 66
  13. Very specific:

    Check locale files: packages/web/i18n/locales/en.yaml

    line 67
  14. Distinctive:

    Verify the key exists at the expected path

    line 68
  15. Distinctive:

    Check Pinia-Colada query keys — mismatched keys prevent cache hits

    line 72
  16. Very specific:

    Verify enabled flag on queries (must be true or a reactive ref)

    line 73
  17. Very specific:

    Check if mutation calls queryCache.invalidateQueries() after success

    line 74
  18. Very specific:

    Use browser_evaluate to inspect Vue component state if needed

    line 75
  19. Distinctive:

    Use Playwright MCP to interact with the UI:

    line 79
  20. Very specific:

    Check SDK types: packages/web/sdk/client/

    line 96
  21. Distinctive:

    After applying the suggested fix, re-run Steps 1-2 to confirm:

    line 108
  22. Very specific:

    Check browser_console_messages for remaining errors

    line 112
  23. Very specific:

    Verify browser_network_requests shows successful API calls

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Frontend Debugging Assistant

Debug the Nuxt 3 admin interface visually. Issue description or page URL via $ARGUMENTS.

Prerequisites

The admin UI must be running at http://localhost:3333. If not running:

cd packages/web && pnpm dev

Step 1: Navigate to the Page

Use the Playwright MCP browser_navigate tool to open the page. Common entry points:

  • Dashboard: http://localhost:3333/en (redirects into the user's tenant; admin pages live under /<locale>/<tenant>/service/...)
  • Agents: http://localhost:3333/en/<tenant>/service/agents
  • Processes: http://localhost:3333/en/<tenant>/service/processes
  • Threads: http://localhost:3333/en/<tenant>/service/threads
  • Knowledge: http://localhost:3333/en/<tenant>/service/knowledge
  • Users: http://localhost:3333/en/<tenant>/service/users
  • Roles: http://localhost:3333/en/<tenant>/service/roles

Step 2: Capture Page State

Use these Playwright MCP tools to gather diagnostic information:

  1. browser_snapshot: Get the accessibility tree (DOM structure, interactive elements)
  2. browser_take_screenshot: Visual capture of the current state
  3. browser_console_messages with level: "error": Check for JavaScript errors
  4. browser_network_requests: Inspect API calls (failed requests, wrong payloads)

Step 3: Diagnose Common Issues

API Errors (4xx/5xx)

  1. Check browser_network_requests for failed API calls
  2. Look at the request URL and response status
  3. Cross-reference with SDK functions in packages/web/sdk/client/
  4. Check if the API server is running (curl http://localhost:8000/api/v1/active/docs)

Rendering Issues

  1. Take a screenshot to see the visual state
  2. Use browser_snapshot to check the DOM structure
  3. Look for missing data (composable not returning data)
  4. Check if StructuralColumn has loading: true (blocks child rendering)

Auth/Redirect Issues

  1. Check if redirected to /auth/login
  2. Verify the OIDC plugin is configured: packages/web/plugins/oidc-client.ts
  3. Check middleware/auth.global.ts for route guard logic
  4. In dev mode, fake auth should bypass OIDC

i18n Missing Keys

  1. Look for raw key paths displayed instead of translated text (e.g., agent.title shown literally)
  2. Check locale files: packages/web/i18n/locales/en.yaml
  3. Verify the key exists at the expected path

Component Not Updating

  1. Check Pinia-Colada query keys — mismatched keys prevent cache hits
  2. Verify enabled flag on queries (must be true or a reactive ref)
  3. Check if mutation calls queryCache.invalidateQueries() after success
  4. Use browser_evaluate to inspect Vue component state if needed

Step 4: Interact and Reproduce

Use Playwright MCP to interact with the UI:

  • browser_click: Click buttons, links, menu items
  • browser_type: Fill form fields
  • browser_fill_form: Fill multiple form fields at once
  • browser_select_option: Select dropdown values
  • browser_press_key: Keyboard shortcuts (Escape, Enter, Tab)

Reproduce the issue step by step and capture screenshots at each stage.

Step 5: Trace to Source Code

Once the issue is identified:

  1. Find the page component: packages/web/pages/[tenant]/service/{resource}/
  2. Find composables: packages/web/composables/{resource}/
  3. Find child components: packages/web/components/{Resource}/
  4. Check SDK types: packages/web/sdk/client/

Step 6: Report

Provide a structured report with:

  • What was observed: Screenshot + console errors + failed network requests
  • Root cause: Which file and line is responsible
  • Suggested fix: Specific code change to resolve the issue

Step 7: Verify Fix

After applying the suggested fix, re-run Steps 1-2 to confirm:

  1. Navigate to the same page with browser_navigate
  2. Take a new screenshot with browser_take_screenshot
  3. Check browser_console_messages for remaining errors
  4. Verify browser_network_requests shows successful API calls

Examples

  • /debug-frontend the agents page shows a blank table -- Navigate to agents page, check network requests for API failures, inspect DOM for missing data bindings
  • /debug-frontend console errors on the dashboard -- Open dashboard, capture console errors, trace to source component
  • /debug-frontend verify my changes to the roles page -- Navigate to roles page, take screenshot, check for regressions

Troubleshooting Quick Reference

SymptomLikely CauseWhere to Look
Blank pageJavaScript error blocking renderbrowser_console_messages with level "error"
Spinner never stopsAPI call hanging or query enabled flag is falsebrowser_network_requests + composable enabled prop
401 on API callsAuth not configured for devplugins/oidc-client.ts, check dev mode fake auth
Missing translationsi18n key not in locale filei18n/locales/en.yaml, search for the raw key
Stale data after mutationMissing queryCache.invalidateQueries()Composable mutation onSuccess callback
Component not foundAuto-import name mismatchVerify component file path matches Nuxt auto-import convention

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.