automattic/annotate
Open a browser with visual annotation tools. The user clicks elements on their site and leaves feedback — the agent reads annotations and makes changes. Use this when the user wants to point at specific elements to fix, tweak, or redesign.
npx skills add https://github.com/Automattic/studio --skill annotate
Open a browser where the user can click elements on their WordPress site and annotate them with feedback. You read those annotations and make the requested changes.
When the user invokes this skill, introduce yourself:
> Visual Annotations — I'll open your site in a browser with an annotation toolbar. Click any element, type your feedback, and I'll fix it.
Then identify the target site. If there's an active site, use it. If there are multiple, ask which one.
Call site_info to get the site URL — do NOT guess the URL or port.
Use the open_annotation_browser tool with the site URL. This opens a headed browser with the Studio annotation inspector injected — a small dark pill in the bottom-right with "Annotate" and "Done" buttons.
Tell the user:
> The browser is open. Click Annotate in the bottom-right toolbar, click any element on the page, type your feedback, then click Done when you're finished.
Call wait_for_annotations. This blocks until the user clicks Done and returns the annotations they wrote, captured straight from the page.
Each annotation includes:
Address the annotations in the order they were submitted. When you reference one for the user, identify the element by what they can see — the tag name plus nearbyText — rather than by selector. Selectors are noisy and unreadable; use them only for implementation.
If the user wants to re-annotate, point them back to the open browser and call wait_for_annotations again — the inspector keeps working without re-opening the browser.
For each annotation:
wp_cli with post list --post_type=wp_template --format=json to check if it's in a template overridewp_cli with eval "echo wp_get_custom_css();" to check existing custom CSSwp-block-* classes) and modify accordinglyAfter all annotations are addressed, take a screenshot and confirm with the user.
The browser window auto-closes about 10 seconds after the user clicks Done, so by the time you finish making changes it's already gone. If they want another round, run the skill again from the top — /annotate opens a fresh browser. Don't try to "reattach" to the previous window.
Always prefer WordPress APIs over direct file edits or custom plugins.
Use Global Styles custom CSS — never create throwaway plugins:
wp eval 'echo wp_get_custom_css();' → read current custom CSS
wp eval 'wp_update_custom_css_post("CSS HERE");' → update custom CSS
Create template overrides via the database, not file edits:
wp post create --post_type=wp_template --post_name="theme-slug//template-name" --post_content="BLOCK MARKUP" --post_status=publish
Take automattic/annotate 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.