.claude/skills/browser-qa/SKILL.md
Manual browser QA via Chrome DevTools MCP. Use when acceptance criteria include manual verification or UI changes need visual confirmation.
npx skillsauth add ms2sato/agent-console browser-qaInstall 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.
Manual browser verification procedure for UI changes using Chrome DevTools MCP.
manual verificationpackages/client/src/components/cd <repository-root>
bun run dev
Check the startup log for the actual port — Vite may auto-increment if the default port (5173) is in use:
Port 5173 is in use, trying another one...
➜ Local: http://localhost:5174/
Also check .env for custom port configuration (CLIENT_PORT, PORT).
mcp: navigate_page → http://localhost:<port>
mcp: take_screenshot → confirm page loaded
For specific pages, navigate directly via client route (SPA routing works):
mcp: navigate_page → http://localhost:<port>/sessions/<id>
Use Chrome DevTools MCP tools:
| Action | Tool | Tips |
|--------|------|------|
| Click element | click | Use take_snapshot first to get element UIDs |
| Type text | type_text | Click the input first to focus |
| Fill form field | fill | Target by UID from snapshot |
| Wait for async | wait_for | Wait for selector to appear |
| Check errors | list_console_messages | Look for JS errors |
| Screenshot | take_screenshot | Capture before/after states |
For each manual verification criterion:
list_console_messages for unexpected errorsStop the dev server when done (kill the background process or Ctrl+C).
All screenshots should be saved to disk for later upload to the PR.
Before starting QA, prepare the screenshot directory:
rm -rf .qa-screenshots && mkdir -p .qa-screenshots
Always use filePath to save to .qa-screenshots/:
take_screenshot with filePath: ".qa-screenshots/{descriptive-name}.png"
Use descriptive, hyphenated names:
restart-all-button.png, restart-result-toast.pngerror-{description}.png (for error states)Only take screenshots for areas relevant to the PR's change scope:
After QA, upload screenshots to the PR:
./scripts/upload-qa-screenshots.sh <PR_NUMBER>
This script:
git remote (override with GITHUB_REPOSITORY env var)qa-screenshots GitHub Release if it doesn't exist (one-time, used as image hosting).png files from .qa-screenshots/ with unique names<details>Note: GitHub Release assets are served with Content-Disposition: attachment, so <a href> links trigger downloads instead of displaying images. The script uses <details><summary> to work around this.
If the PR number is not known, detect it:
gh pr view --json number -q '.number'
When re-taking screenshots (e.g., after implementation changes), minimize the previous screenshot comment on the PR before uploading new ones. This prevents reviewers from seeing outdated screenshots.
# 1. Find the previous screenshot comment's node ID
gh api graphql -f query='query { repository(owner: "OWNER", name: "REPO") { pullRequest(number: PR_NUM) { comments(first: 50) { nodes { id body createdAt } } } } }' \
--jq '.data.repository.pullRequest.comments.nodes[] | select(.body | test("qa-screenshots")) | .id'
# 2. Minimize it as OUTDATED
gh api graphql -f query='mutation { minimizeComment(input: {subjectId: "NODE_ID", classifier: OUTDATED}) { minimizedComment { isMinimized } } }'
# 3. Upload new screenshots
./scripts/upload-qa-screenshots.sh <PR_NUMBER>
bun run --filter '@agent-console/shared' build first — client depends on shared types.testing
UX design principles for agent-console. Use when designing features, evaluating acceptance criteria, or reviewing user-facing interactions in a multi-agent management UI.
development
Detailed test patterns and code examples. Use when you need step-by-step testing guidance, Server Bridge Pattern, or concrete code patterns beyond what the auto-loaded testing rules provide.
development
Orchestrator role for strategic decision-making, task prioritization, parallel task coordination via worktree delegation, and first-responder for dev agent questions. Use when managing multiple development agents or making prioritization decisions.
development
Detailed React patterns and code examples for frontend implementation. Use when you need step-by-step guidance or concrete code patterns beyond what the auto-loaded frontend rules provide.