Agent Native

annotate

This skill opens a browser with annotation tools that let users click page elements and leave feedback, then the agent reads those annotations and applies the…

by AutomatticOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (Automattic)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
LGPL-2.1 (copyleft)
Pin
870948cpinned Oct 9, 2026
Context cost
about 1,000 tokenswhen the skill loads
GitHub stars
533on automattic/studio
Scripts
None found

What it does

“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.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill opens a browser with annotation tools that let users click page elements and leave feedback, then the agent reads those annotations and applies the requested changes to the WordPress site using Global Styles, templates, or content edits.

When to use it

  • User wants to point at specific page elements to fix or redesign
  • Gathering visual feedback on exact site components before making changes
  • Iterative design refinement where user annotates multiple elements
  • User prefers clicking elements over describing changes in text

When not to

  • Bulk content changes across many pages without visual review
  • Making changes from text descriptions alone without annotation
  • Modifying WordPress theme or core files directly

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add automattic/studio --skill annotate

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install automattic/studio annotate@870948cd5cbdba4d05a432c38fa5e8e1e796b3b1

Installs the commit we checked (870948c).

Copy by hand

Download the folder at 870948c and put it in .claude/skills/annotate for Claude Code and in .agents/skills/annotate for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 870948c

Claude Code plugin

/plugin install build-with-wordpress@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "annotate" by Automattic.

Source, pinned to commit 870948cd5cbdba4d05a432c38fa5e8e1e796b3b1:
https://github.com/automattic/studio/tree/870948cd5cbdba4d05a432c38fa5e8e1e796b3b1/apps/cli/ai/skills/annotate

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/annotate/ for Claude Code and .agents/skills/annotate/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/automattic/annotate

SKILL.md at the pin

---
name: annotate
description: 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.
user-invokable: true
---

# Visual Annotations

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.

## On Startup

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.

## Workflow

### 1. Open the browser

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.

### 2. Wait for the user to submit

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:
- **CSS selector / elementPath** — use to find the element in the theme or via WP-CLI
- **Computed styles** — current CSS values (colors, sizes, spacing)
- **nearbyText** — visible text content of the element
- **User feedback (comment)** — what the user wants changed
- **pathname** — which page of the site the annotation was made on

### 3. Review the annotations

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.

### 4. Make changes

For each annotation:
1. **Identify what to change:**
   - Use the CSS selector to find the element in theme templates or stylesheets
   - Use `wp_cli` with `post list --post_type=wp_template --format=json` to check if it's in a template override
   - Use `wp_cli` with `eval "echo wp_get_custom_css();"` to check existing custom CSS
2. **Apply the change using the right approach:**
   - For style changes (colors, sizes, spacing): use Global Styles custom CSS with the selector from the annotation
   - For content changes (text, headings, block structure): edit the template or post content via WP-CLI
   - For block-level changes: identify the WordPress block type from the HTML structure (look for `wp-block-*` classes) and modify accordingly
3. Take a screenshot to verify the change looks correct

### 5. Verify

After 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.

## Making changes the WordPress way

Always prefer WordPress APIs over direct file edits or custom plugins.

### CSS / design changes

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
```

### Template changes

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
```

### When to use what

- **Tweaking an existing site**: Prefer Global Styles custom CSS and template overrides in the database — these are non-destructive and easy to revert
- **Building a theme or new site**: Edit theme files directly — that's the job. Follow Studio's existing guidelines for block themes (theme.json, templates/, style.css)
- **Never**: Modify WordPress core files

From automattic/studio at 870948c, shown as plain text under its license: LGPL-2.1 (copyleft). The license text is in apps/cli/LICENSE.md.

View SKILL.md on GitHub at 870948c

Files

1 file, 4.5 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 870948c
All 31 skills from Automattic

More from Automattic

  • block-content

    This skill instructs agents to write editable WordPress block markup for block themes, enforcing use of core blocks over HTML, managing layout cascades, and…

    Claude Code, Codex, Cursor +3 · about 4.4K tokens · pinned 6 days ago

  • hosting-plans-helper

    This skill fetches current WordPress.com plan names, pricing, and feature details from live APIs, then answers questions about which plan tier includes…

    Claude Code, Codex, Cursor +3 · about 840 tokens · pinned 6 days ago

  • imagery

    This skill guides generating AI images for WordPress sites using the generate_images tool, or alternative image generation tools.

    Claude Code, Codex, Cursor +3 · about 2.6K tokens · pinned 6 days ago

  • liberate

    This skill helps agents migrate websites into WordPress by copying the site from a URL or local files using the Studio CLI, then comparing the imported…

    Claude Code, Codex, Cursor +4 · about 830 tokens · pinned 6 days ago

  • need-for-speed

    Measures Core Web Vitals and page composition metrics for WordPress sites using synthetic testing, then suggests targeted optimization actions based on…

    Claude Code, Codex, Cursor +3 · about 650 tokens · pinned 6 days ago

  • plugin-recommendations

    This skill guides the agent to recommend and install WordPress plugins for features that core blocks don't provide, including WooCommerce for ecommerce…

    Claude Code, Codex, Cursor +3 · about 4.6K tokens · pinned 6 days ago

  • wpcom-remote-management

    This skill enables agents to manage live WordPress.com sites through the wpcom_request tool, handling plan-based feature limitations, content and design…

    by AutomatticOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1.7K tokens · pinned 6 days ago

  • wp-block-development

    This skill guides agents through WordPress block development workflows, including creating new blocks, updating block.json metadata, implementing save/render…

    by AutomatticOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 1.5K tokens · pinned 6 days ago

  • wp-block-themes

    This skill enables agents to develop and debug WordPress block themes by editing theme.json for global settings and styles, managing templates and template…

    by AutomatticOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 890 tokens · pinned 6 days ago

  • wp-interactivity-api

    This skill helps build and debug WordPress Interactivity API features, including data-wp-* directives, store management, and block view script modules.

    by AutomatticOfficial publisher

    Claude Code, Codex, Cursor +4 · about 1.4K tokens · pinned 6 days ago

  • wpds

    This skill helps agents build and review UIs using the WordPress Design System, including components, tokens, and patterns.

    by AutomatticOfficial publisher

    Claude Code, Codex, Cursor +4 · about 640 tokens · pinned 6 days ago

  • wordpress-block-theming

    This skill provides guidance for building WordPress block themes using Full Site Editing architecture.

    by AutomatticOfficial publisher

    Claude Code, Codex, Cursor +4 · about 4.7K tokens · pinned 6 days ago

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use