Run a browser-based UI review of the WordPress.com Help Center across multiple surfaces, looking for visual and behavioral issues. Use when asked to test the Help Center UI.
npx skills add https://github.com/Automattic/wp-calypso --skill help-center-ui-test
Performs a systematic browser-based UI review of the Help Center using Chrome automation (Claude in Chrome extension).
/chrome in Claude Code if not connected.ToolSearch to load Chrome tools: select:mcp__claude-in-chrome__tabs_context_mcp.mcp__claude-in-chrome__tabs_context_mcp to get current tabs.mcp__claude-in-chrome__tabs_create_mcp.After opening the Help Center on each surface, and after key interactions, check for errors:
mcp__claude-in-chrome__read_console_messages with pattern: "(error|Error|ERROR)" to capture JS errors.mcp__claude-in-chrome__read_network_requests and check for any requests with HTTP status >= 400.Check for errors at these points:
Log any errors found as issues in the test results, categorized as "Console Error" or "Network Error".
Test the Help Center on both surfaces, one at a time:
https://my.wordpress.com/siteshttps://en.support.wordpress.com/wp-admin/https://en.support.wordpress.com/wp-admin/post-new.phpFor each surface:
mcp__claude-in-chrome__find to locate the ? help icon. If not found, wait 3 seconds with mcp__claude-in-chrome__computer (action: wait) and retry.? icon to open the Help Center.mcp__claude-in-chrome__find to confirm the search bar or home screen content has appeared. If not found, wait 3 seconds and retry.For each surface, verify all of the following:
mcp__claude-in-chrome__find to confirm search results have appeared. If not found, wait 3 seconds and retry. Verify results show titles and descriptions.mcp__claude-in-chrome__find to confirm the empty state has appeared. Verify a fallback action appears (e.g., "Ask AI assistant" button).mcp__claude-in-chrome__find to confirm the article heading has rendered. If not found, wait 3 seconds and retry.mcp__claude-in-chrome__find to confirm the AI response has appeared. If not found, wait 5 seconds and retry (AI responses may take longer).After completing the full test checklist at desktop size on each surface, test responsive layouts at additional viewports.
| Name | Width | Height |
|---------|-------|--------|
| Desktop | 1280 | 800 |
| Mobile | 375 | 812 |
For each surface, after the desktop checklist is complete:
mcp__claude-in-chrome__resize_window to switch to Mobile (375x812).mcp__claude-in-chrome__resize_window to restore Desktop (1280x800) before moving to the next surface.Every test run must produce a structured summary using this format:
## Test Results Summary
### Surface: [Calypso Dashboard / WP Admin]
| # | Check | Viewport | Status | Issue | Evidence |
|---|-------|----------|--------|-------|----------|
| 1 | Home Screen — layout | Desktop | PASS/FAIL | Description | screenshot.png |
| 2 | Home Screen — guides | Desktop | PASS/FAIL | Description | |
| ... | ... | ... | ... | ... | ... |
### Console & Network Errors
| Surface | Type | Message/URL | HTTP Status |
|---------|------|-------------|-------------|
| Calypso | Network | /wpcom/v2/help/search | 500 |
| WP Admin | Console | TypeError: ... | — |
### Overall: X passed, Y failed, Z errors
Only FAIL rows and errors should be filed as Linear issues.
For every issue found during testing, record a GIF using mcp__claude-in-chrome__gif_creator:
gif_creator with action: start_recording on the Help Center tab.gif_creator with action: stop_recording.Name GIFs descriptively (e.g., "search-clear-button-bug.gif"). For static visual issues, a single-frame GIF (start → screenshot → stop) is sufficient.
After completing all tests, if issues were found:
ToolSearch to load Linear tools: +linear save issue.mcp__linear-server__save_issue including: ## Bug Report
### Steps to Reproduce
1. ...
### Expected Behavior
...
### Actual Behavior
...
### Surface
- [X] Calypso Dashboard
- [ ] WP Admin
If the user wants to attempt fixes:
git checkout -b DOTSUP-448).After creating each Linear issue, attach the GIF to the description via drag-and-drop. GIF recordings are scoped to the tab group, so they can be exported directly onto the Linear tab.
https://linear.app/a8c/issue/<ISSUE-ID>
Use mcp__claude-in-chrome__find to confirm the issue description is visible. If not found, wait 3 seconds and retry.
mcp__claude-in-chrome__gif_creator using action: export, setting tabId to the Linear tab and coordinate to a point inside the issue description area. The GIF will be embedded in the description (exact placement within the description may vary).mcp__claude-in-chrome__read_page with filter: interactive to find clickable elements.mcp__claude-in-chrome__find for natural language element search (e.g., "Help Center close button").mcp__claude-in-chrome__computer with action: left_click and ref parameter to click elements by reference ID.mcp__claude-in-chrome__find to confirm elements have appeared after actions instead of fixed-delay sleeps. If an element isn't found, wait 3 seconds with mcp__claude-in-chrome__computer (action: wait, duration: 3) and retry up to 3 times.? icon again to reopen it.Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Run Playwright tests at scale with cloud-hosted browsers and integrated Azure portal reporting.
Browser debugging, performance profiling, and automation via Chrome DevTools MCP. Use when user says "debug this page", "take a screenshot", "check network requests", "profile performance", "inspect console errors", or "analyze page load". Do NOT use for full E2E test suites (use playwright-skill) or non-browser debugging.
QA-test a website or web app and return a 1-5 quality score (5 = flawless, 1 = broken) with evidence. Use when the user wants to test, QA, evaluate, score, or "check how good" a site, page, flow, or app — including a local dev server (e.g. "qa test localhost:5173", "does the checkout work?", "rate this landing page"). Drives a real Browser Use cloud browser, tunneling localhost automatically.
Set up component testing with Playwright using a story gallery — scaffold stories and a gallery dev page driven by the built-in mount fixture, no dedicated component-testing runtime. Use when asked to test React or Vue components in isolation with Playwright, or to migrate off @playwright/experimental-ct-react / -vue.
Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.
Always use browser-harness for any web interaction: automation, scraping, testing, or site/app work.
Use when writing E2E tests with Playwright, setting up test infrastructure, or debugging flaky browser tests. Invoke to write test scripts, create page objects, configure test fixtures, set up reporters, add CI integration, implement API mocking, or perform visual regression testing. Trigger terms: Playwright, E2E test, end-to-end, browser testing, automation, UI testing, visual testing, Page Object Model, test flakiness.
Take automattic/help-center-ui-test from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.