WooCommerce Code Review
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
ActivityPub protocol specification and federation concepts. An agent skill from Automattic/wordpress-activitypub.
$ npx skills add Automattic/wordpress-activitypub --skill federation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Automattic/wordpress-activitypub federation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/federation .claude/skills/federation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .claude/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Automattic/wordpress-activitypub --skill federation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Automattic/wordpress-activitypub federation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/federation .agents/skills/federation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .agents/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Automattic/wordpress-activitypub --skill federation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Automattic/wordpress-activitypub federation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/federation .cursor/skills/federation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .cursor/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Automattic/wordpress-activitypub.git --path .agents/skills/federation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Automattic/wordpress-activitypub --skill federation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Automattic/wordpress-activitypub federation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/federation .gemini/skills/federation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .gemini/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Automattic/wordpress-activitypub federationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Automattic/wordpress-activitypub --skill federation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/federation .github/skills/federation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .github/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Automattic/wordpress-activitypub --skill federation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Automattic/wordpress-activitypub federation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Automattic/wordpress-activitypub.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/federation .opencode/skills/federation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "federation" agent skill from https://github.com/Automattic/wordpress-activitypub/tree/trunk/.agents/skills/federation into .opencode/skills/federation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "federation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
federationActivityPub protocol specification and federation concepts. An agent skill from Automattic/wordpress-activitypub.
Federation is an agent skill from Automattic/wordpress-activitypub. ActivityPub protocol specification and federation concepts. Use when working with ActivityPub activities, understanding federation mechanics, implementing protocol features, or debugging federation issues.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Email management. It works with WordPress. The repository describes itself as: The ActivityPub plugin connects your WordPress site to the Fediverse. Your site becomes a profile people can follow from Mastodon, and every post you publish is automatically… The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 72d53bc. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
w3.orgAlso links to:
datatracker.ietf.orgcodeberg.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Federation loads about 2.5k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 891 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Automattic/wordpress-activitypub at commit 72d53bc, republished under its MIT licence (© Automattic). 891 words, ~2,479 tokens.
.claude/skills/federation/SKILL.md (or your agent's skills folder).This skill provides understanding of the ActivityPub protocol specification and how federation works.
For supported features and compatibility: See FEDERATION.md for the complete list of implemented FEPs, supported standards, and federation compatibility details.
For implementation details: See AGENTS.md for transformers, handlers, and PHP code patterns.
Actors - Users/accounts in the system
inbox, outboxfollowers, following, likedActivities - Actions taken by actors
Objects - Content being acted upon
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://example.com/@alice",
"inbox": "https://example.com/@alice/inbox",
"outbox": "https://example.com/@alice/outbox",
"followers": "https://example.com/@alice/followers",
"following": "https://example.com/@alice/following",
"preferredUsername": "alice",
"name": "Alice Example",
"summary": "Bio text here"
}Inbox - Receives incoming activities
Outbox - Publishes actor's activities
Followers - Actors following this actor
Following - Actors this actor follows
Special collection: https://www.w3.org/ns/activitystreams#Public
to, cc, bto, bcc fields for visibilityWraps newly published content:
{
"type": "Create",
"actor": "https://example.com/@alice",
"object": {
"type": "Note",
"content": "Hello, Fediverse!"
}
}Initiates subscription:
{
"type": "Follow",
"actor": "https://example.com/@alice",
"object": "https://other.example/@bob"
}Indicates appreciation:
{
"type": "Like",
"actor": "https://example.com/@alice",
"object": "https://other.example/@bob/post/123"
}Reshares/boosts content:
{
"type": "Announce",
"actor": "https://example.com/@alice",
"object": "https://other.example/@bob/post/123"
}Modifies existing content:
null values remove fieldsRemoves content:
Reverses previous activities:
{
"type": "Undo",
"actor": "https://example.com/@alice",
"object": {
"type": "Follow",
"id": "https://example.com/@alice/follow/123"
}
}Resolve Recipients
to, bto, cc, bcc, audience fieldsDiscover Inboxes
inbox propertysharedInbox if available for efficiencyDeliver via HTTP POST
application/ld+json; profile="https://www.w3.org/ns/activitystreams"Ghost Replies Problem: When Alice replies to Bob's post that Carol follows, Carol might not see the reply if she doesn't follow Alice.
Solution: Inbox forwarding
For public posts with many recipients on same server:
sharedInbox endpoint instead of individual inboxesto - Primary recipients (public in UI)cc - Secondary recipients (copied/mentioned)bto - Blind primary (hidden in delivery)bcc - Blind secondary (hidden in delivery)Important: Remove bto and bcc before delivery to preserve privacy
Public Post:
{
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://example.com/@alice/followers"]
}Followers-Only:
{
"to": ["https://example.com/@alice/followers"]
}Direct Message:
{
"to": ["https://other.example/@bob"],
"cc": []
}Verify Origins
Prevent Spoofing
Rate Limiting
Content Sanitization
See FEDERATION.md for the complete list of implemented standards and FEPs, including:
FEPs extend ActivityPub with additional features. Common FEP categories include:
For supported FEPs in this plugin: See FEDERATION.md for the authoritative list of implemented FEPs.
When the ActivityPub API option is enabled, third-party clients can authenticate via OAuth 2.0 under activitypub/1.0/oauth/. The plugin supports RFC 7591 dynamic registration, RFC 7636 PKCE (S256 only, required by default for public clients), and the CIMD draft (URL-form client_id, HTTPS required).
Native apps receive the OAuth callback on a loopback port they opened locally. Per RFC 8252 §7.3 / §8.3, redirect URIs of the form http://127.0.0.1:{port}/{path} and http://[::1]:{port}/{path} are accepted with port flexibility (any port may be used at request time). localhost is also accepted for compatibility, although §8.3 marks it "NOT RECOMMENDED".
The loopback allowance applies only to redirect URI matching. Reserved-but-not-loopback addresses — 0.0.0.0, link-local 169.254.0.0/16, RFC1918 private ranges (10/8, 172.16/12, 192.168/16), and similar — are not treated as loopback and never bypass wp_safe_remote_get(). CIMD metadata URLs must use https://, and the metadata host is resolved and validated against private/reserved ranges before any fetch — loopback CIMD origins are not supported, even on dev installs.
For implementation details: See includes/oauth/class-client.php (especially the class docblock and is_loopback()) and the OAuth section of FEDERATION.md.
This plugin implements:
For implementation details, see:
# Test actor endpoint
curl -H "Accept: application/activity+json" \
https://site.com/@username
# Test WebFinger
curl https://site.com/.well-known/webfinger?resource=acct:user@site.com
# Test NodeInfo
curl https://site.com/.well-known/nodeinfoinReplyTo properly set© Automattic, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/federation of Automattic/wordpress-activitypub.
Open the folder on GitHubat commit 72d53bc
Federation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Federation this skillAutomattic/wordpress-activitypub | 582 | — | ~2.5k | Automated safety check: Pass | MIT | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence | |
| Wp Interactivity APIAutomattic/agent-skills | 211 | 3 repos | ~1.5k | Automated safety check: Pass | None | |
| WooCommerce Dev Cyclewoocommerce/woocommerce | 11k | 3 repos | ~431 | Automated safety check: Pass | Custom licence | |
| Wp PlaygroundAutomattic/agent-skills | 211 | 2 repos | ~1.2k | Automated safety check: Pass | None | |
| ObservalObserval/Observal | 4.2k | — | ~2.2k | Automated safety check: Pass | Apache-2.0 |
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
Automattic/agent-skills
A skill your agent uses when building or debugging WordPress Interactivity API features (data-wp- directives, @wordpress/interactivity store/state/actions, block viewScriptModule integration…
woocommerce/woocommerce
Workflow for WooCommerce development: run PHP and JavaScript tests, lint and fix code style on the current branch, and follow guides for i18n and markdown.
Automattic/agent-skills
A skill your agent uses for WordPress Playground workflows: fast disposable WP instances in the browser or locally via @wp-playground/cli (server, run-blueprint, build-snapshot), auto-mounting…
Observal/Observal
A skill your agent uses when starting any task the organization may already have an approved skill, prompt, MCP server, or Agent for: reviewing code, a commit, a diff, or a pull request; writing…
WordPress/wordpress-playground
Debug PHP.wasm main module crashes including Asyncify errors (unreachable, memory access out of bounds), JSPI errors (SuspendError, trying to suspend JS frames), WASM memory growth bugs, and runtime…
Automattic/wordpress-activitypub
PHP coding standards and WordPress patterns for ActivityPub plugin.
Automattic/wordpress-activitypub
Development workflows for WordPress ActivityPub plugin including wp-env setup, testing commands, linting, and build processes.
Automattic/wordpress-activitypub
A skill your agent uses when auditing or updating .gitattributes export-ignore coverage so dev-only files (lint configs, CI, tests, docs, build tooling) don't ship in the WordPress.org plugin zip.
Automattic/wordpress-activitypub
Third-party WordPress plugin integration patterns. An agent skill from Automattic/wordpress-activitypub.
Automattic/wordpress-activitypub
Version management and release processes using Jetpack Changelogger.
Automattic/wordpress-activitypub
INVOKE THIS SKILL before creating any PR to ensure compliance with branch naming, changelog requirements, and reviewer assignment.
Works with
Categories
ActivityPub protocol specification and federation concepts. An agent skill from Automattic/wordpress-activitypub. Federation is an agent skill from Automattic/wordpress-activitypub. ActivityPub protocol specification and federation concepts.
Federation fits situations like: working with ActivityPub activities; understanding federation mechanics; implementing protocol features; debugging federation issues.
Run `npx skills add Automattic/wordpress-activitypub --skill federation -a claude-code`. Or copy the skill folder (.agents/skills/federation in Automattic/wordpress-activitypub) into .claude/skills/federation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Automattic/wordpress-activitypub --skill federation -a codex`. Or copy the skill folder (.agents/skills/federation in Automattic/wordpress-activitypub) into .agents/skills/federation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Automattic/wordpress-activitypub --skill federation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/federation, .gemini/skills/federation, .github/skills/federation and .opencode/skills/federation in your project.
Going by SKILL.md and its folder, Federation needs the command-line tools its instructions call (curl).
SKILL.md names 3 domains. In commands or code: w3.org; the agent is likely to contact it when it follows the instructions. As links in the text: datatracker.ietf.org and codeberg.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Federation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Federation: WooCommerce Code Review (woocommerce/woocommerce, 11k stars), Wp Interactivity API (Automattic/agent-skills, 211 stars), WooCommerce Dev Cycle (woocommerce/woocommerce, 11k stars) and Wp Playground (Automattic/agent-skills, 211 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Automattic (a GitHub organization) maintains it in Automattic/wordpress-activitypub, which has 582 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 7, 2026.
Source: Automattic/wordpress-activitypub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.