diff --git a/.well-known/agent-skills/index.json b/.well-known/agent-skills/index.json index 3005c0d..a08e26c 100644 --- a/.well-known/agent-skills/index.json +++ b/.well-known/agent-skills/index.json @@ -34,7 +34,7 @@ "type": "archive", "description": "Phase-based WordPress project setup workflow with dry-run planning and confirmed apply for predictable scaffolding/standardization.", "url": "https://soderlind.no/.well-known/agent-skills/prepare-wordpress.tar.gz", - "digest": "sha256:c0c7545687f6f8e7cb6e322b2ffde7ea87eface20008592031e7ba47f06d7b1a" + "digest": "sha256:dd7e7b2774f0fe5bf635e39c799840ed1262800dad35a9bdc5a3eeb3bf5c714d" }, { "name": "wp-bump", diff --git a/.well-known/agent-skills/prepare-wordpress.tar.gz b/.well-known/agent-skills/prepare-wordpress.tar.gz index 12f6662..f063b47 100644 Binary files a/.well-known/agent-skills/prepare-wordpress.tar.gz and b/.well-known/agent-skills/prepare-wordpress.tar.gz differ diff --git a/plugins/wordpress-skills/CHANGELOG.md b/plugins/wordpress-skills/CHANGELOG.md index 43cbf3d..57f0f70 100644 --- a/plugins/wordpress-skills/CHANGELOG.md +++ b/plugins/wordpress-skills/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to `wordpress-skills` are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.2.0] - 2026-08-08 + +### Changed + +- prepare-wordpress: installs agent skills from WordPress/agent-skills (the former automattic/agent-skills repo is archived). +- prepare-wordpress: default skill install trimmed to essentials (wp-plugin-development, wp-wpcli-and-ops); wp-block-development, wp-performance, and wordpress-router are now optional. + ## [1.1.0] - 2026-08-08 ### Added diff --git a/plugins/wordpress-skills/plugin.json b/plugins/wordpress-skills/plugin.json index 61d225a..7b01687 100644 --- a/plugins/wordpress-skills/plugin.json +++ b/plugins/wordpress-skills/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "wordpress-skills", - "version": "1.1.0", + "version": "1.2.0", "description": "WordPress development, testing, and release skills.", "author": { "name": "Per Soderlind", diff --git a/plugins/wordpress-skills/skills/prepare-wordpress/SKILL.md b/plugins/wordpress-skills/skills/prepare-wordpress/SKILL.md index a1bb011..ec093ec 100644 --- a/plugins/wordpress-skills/skills/prepare-wordpress/SKILL.md +++ b/plugins/wordpress-skills/skills/prepare-wordpress/SKILL.md @@ -2,7 +2,7 @@ name: prepare-wordpress description: "Phase-based WordPress project setup workflow with dry-run planning and confirmed apply for predictable scaffolding/standardization." compatibility: "macOS/Linux with Node.js 18+, Composer 2+, PHP 8.3+, git. Optional: WP-CLI for i18n commands, curl for downloading coding instructions." -version: "1.3.0" +version: "1.4.0" --- # Prepare WordPress Project @@ -240,17 +240,32 @@ Completion criterion: Required init artifacts exist (`package.json`, `composer.j ### 2) Install agent skills -Install the following skills. Skip any that already exist under `~/.copilot/skills/` or `~/.agents/skills/`. +Install the **essential** WordPress development skills from +[WordPress/agent-skills](https://github.com/WordPress/agent-skills). Skip any +that already exist under `~/.copilot/skills/` or `~/.agents/skills/`. ```sh -npx skills add https://github.com/automattic/agent-skills --skill wp-plugin-development -npx skills add https://github.com/automattic/agent-skills --skill wp-block-development -npx skills add https://github.com/automattic/agent-skills --skill wordpress-router -npx skills add https://github.com/automattic/agent-skills --skill wp-performance -npx skills add https://github.com/automattic/agent-skills --skill wp-wpcli-and-ops +npx skills add https://github.com/WordPress/agent-skills --skill wp-plugin-development +npx skills add https://github.com/WordPress/agent-skills --skill wp-wpcli-and-ops ``` -Completion criterion: Each listed skill is installed or explicitly skipped because it already exists. +**Optional** — offer these and install only the ones relevant to the project +(do not install by default): + +```sh +# Gutenberg blocks (only if the plugin ships blocks) +npx skills add https://github.com/WordPress/agent-skills --skill wp-block-development +# Profiling / caching / query optimization +npx skills add https://github.com/WordPress/agent-skills --skill wp-performance +# Repo classification / routing to other skills +npx skills add https://github.com/WordPress/agent-skills --skill wordpress-router +``` + +> **Source moved:** these skills are maintained at `WordPress/agent-skills`. The +> former `automattic/agent-skills` repo is archived (read-only), so it no longer +> receives fixes. + +Completion criterion: The essential skills are installed or skipped (already present); optional skills were offered and installed only if the user opted in. ### 3) Composer dependencies and scripts diff --git a/plugins/wordpress-skills/skills/prepare-wordpress/scripts/plan_setup.mjs b/plugins/wordpress-skills/skills/prepare-wordpress/scripts/plan_setup.mjs index 6183070..0ad0be9 100644 --- a/plugins/wordpress-skills/skills/prepare-wordpress/scripts/plan_setup.mjs +++ b/plugins/wordpress-skills/skills/prepare-wordpress/scripts/plan_setup.mjs @@ -3,6 +3,10 @@ import { detectProjectState } from "./detect_project.mjs"; const ALL_PHASES = ["plugin", "readme", "init", "skills", "composer", "config", "vitest", "eslint", "i18n", "instructions", "cleanup"]; +const SKILL_SOURCE = "https://github.com/WordPress/agent-skills"; +const ESSENTIAL_SKILLS = ["wp-plugin-development", "wp-wpcli-and-ops"]; +const OPTIONAL_SKILLS = ["wp-block-development", "wp-performance", "wordpress-router"]; + function parseArgs(argv) { const opts = { dryRun: true, @@ -45,7 +49,8 @@ function parseArgs(argv) { function buildPlan(state, phases) { const items = []; - const skillsToInstall = Object.entries(state.skills).filter(([, installed]) => !installed).map(([name]) => name); + const essentialMissing = ESSENTIAL_SKILLS.filter((name) => !state.skills[name]); + const optionalMissing = OPTIONAL_SKILLS.filter((name) => !state.skills[name]); const missingComposer = Object.values(state.composer).some((installed) => !installed); const add = (phase, title, commands = [], notes = []) => { @@ -82,11 +87,12 @@ function buildPlan(state, phases) { if (state.git && !state.gitRemoteOrigin) initNotes.push("Manual: ask user for git remote URL, then run git remote add origin ."); add("init", initCommands.length > 0 ? "Initialize project files" : "Init phase already satisfied", initCommands, initNotes); - const skillCommands = skillsToInstall.map((name) => { - - return `npx skills add https://github.com/automattic/agent-skills --skill ${name}`; - }); - add("skills", skillCommands.length > 0 ? "Install missing agent skills" : "All agent skills already present", skillCommands, []); + const skillCommands = essentialMissing.map((name) => `npx skills add ${SKILL_SOURCE} --skill ${name}`); + const skillNotes = []; + if (optionalMissing.length > 0) { + skillNotes.push(`Optional (install only if relevant): ${optionalMissing.map((name) => `npx skills add ${SKILL_SOURCE} --skill ${name}`).join(" | ")}`); + } + add("skills", skillCommands.length > 0 || skillNotes.length > 0 ? "Install agent skills" : "All agent skills already present", skillCommands, skillNotes); const composerCommands = []; const composerNotes = []; diff --git a/scripts/build-agent-plugin.mjs b/scripts/build-agent-plugin.mjs index c48ef69..b48da0e 100644 --- a/scripts/build-agent-plugin.mjs +++ b/scripts/build-agent-plugin.mjs @@ -24,7 +24,7 @@ const PLUGINS = [ distRepo: 'https://github.com/soderlind/wordpress-agent-plugin', manifest: { name: 'wordpress-skills', - version: '1.1.0', + version: '1.2.0', description: 'WordPress development, testing, and release skills.', author: { name: 'Per Soderlind', url: 'https://soderlind.no' }, homepage: 'https://github.com/soderlind/wordpress-agent-plugin', @@ -34,6 +34,14 @@ const PLUGINS = [ }, // Newest first. Each entry becomes a section in CHANGELOG.md. changelog: [ + { + version: '1.2.0', + date: '2026-08-08', + changed: [ + 'prepare-wordpress: installs agent skills from WordPress/agent-skills (the former automattic/agent-skills repo is archived).', + 'prepare-wordpress: default skill install trimmed to essentials (wp-plugin-development, wp-wpcli-and-ops); wp-block-development, wp-performance, and wordpress-router are now optional.', + ], + }, { version: '1.1.0', date: '2026-08-08', diff --git a/skills/prepare-wordpress/SKILL.md b/skills/prepare-wordpress/SKILL.md index a1bb011..ec093ec 100644 --- a/skills/prepare-wordpress/SKILL.md +++ b/skills/prepare-wordpress/SKILL.md @@ -2,7 +2,7 @@ name: prepare-wordpress description: "Phase-based WordPress project setup workflow with dry-run planning and confirmed apply for predictable scaffolding/standardization." compatibility: "macOS/Linux with Node.js 18+, Composer 2+, PHP 8.3+, git. Optional: WP-CLI for i18n commands, curl for downloading coding instructions." -version: "1.3.0" +version: "1.4.0" --- # Prepare WordPress Project @@ -240,17 +240,32 @@ Completion criterion: Required init artifacts exist (`package.json`, `composer.j ### 2) Install agent skills -Install the following skills. Skip any that already exist under `~/.copilot/skills/` or `~/.agents/skills/`. +Install the **essential** WordPress development skills from +[WordPress/agent-skills](https://github.com/WordPress/agent-skills). Skip any +that already exist under `~/.copilot/skills/` or `~/.agents/skills/`. ```sh -npx skills add https://github.com/automattic/agent-skills --skill wp-plugin-development -npx skills add https://github.com/automattic/agent-skills --skill wp-block-development -npx skills add https://github.com/automattic/agent-skills --skill wordpress-router -npx skills add https://github.com/automattic/agent-skills --skill wp-performance -npx skills add https://github.com/automattic/agent-skills --skill wp-wpcli-and-ops +npx skills add https://github.com/WordPress/agent-skills --skill wp-plugin-development +npx skills add https://github.com/WordPress/agent-skills --skill wp-wpcli-and-ops ``` -Completion criterion: Each listed skill is installed or explicitly skipped because it already exists. +**Optional** — offer these and install only the ones relevant to the project +(do not install by default): + +```sh +# Gutenberg blocks (only if the plugin ships blocks) +npx skills add https://github.com/WordPress/agent-skills --skill wp-block-development +# Profiling / caching / query optimization +npx skills add https://github.com/WordPress/agent-skills --skill wp-performance +# Repo classification / routing to other skills +npx skills add https://github.com/WordPress/agent-skills --skill wordpress-router +``` + +> **Source moved:** these skills are maintained at `WordPress/agent-skills`. The +> former `automattic/agent-skills` repo is archived (read-only), so it no longer +> receives fixes. + +Completion criterion: The essential skills are installed or skipped (already present); optional skills were offered and installed only if the user opted in. ### 3) Composer dependencies and scripts diff --git a/skills/prepare-wordpress/scripts/plan_setup.mjs b/skills/prepare-wordpress/scripts/plan_setup.mjs index 6183070..0ad0be9 100644 --- a/skills/prepare-wordpress/scripts/plan_setup.mjs +++ b/skills/prepare-wordpress/scripts/plan_setup.mjs @@ -3,6 +3,10 @@ import { detectProjectState } from "./detect_project.mjs"; const ALL_PHASES = ["plugin", "readme", "init", "skills", "composer", "config", "vitest", "eslint", "i18n", "instructions", "cleanup"]; +const SKILL_SOURCE = "https://github.com/WordPress/agent-skills"; +const ESSENTIAL_SKILLS = ["wp-plugin-development", "wp-wpcli-and-ops"]; +const OPTIONAL_SKILLS = ["wp-block-development", "wp-performance", "wordpress-router"]; + function parseArgs(argv) { const opts = { dryRun: true, @@ -45,7 +49,8 @@ function parseArgs(argv) { function buildPlan(state, phases) { const items = []; - const skillsToInstall = Object.entries(state.skills).filter(([, installed]) => !installed).map(([name]) => name); + const essentialMissing = ESSENTIAL_SKILLS.filter((name) => !state.skills[name]); + const optionalMissing = OPTIONAL_SKILLS.filter((name) => !state.skills[name]); const missingComposer = Object.values(state.composer).some((installed) => !installed); const add = (phase, title, commands = [], notes = []) => { @@ -82,11 +87,12 @@ function buildPlan(state, phases) { if (state.git && !state.gitRemoteOrigin) initNotes.push("Manual: ask user for git remote URL, then run git remote add origin ."); add("init", initCommands.length > 0 ? "Initialize project files" : "Init phase already satisfied", initCommands, initNotes); - const skillCommands = skillsToInstall.map((name) => { - - return `npx skills add https://github.com/automattic/agent-skills --skill ${name}`; - }); - add("skills", skillCommands.length > 0 ? "Install missing agent skills" : "All agent skills already present", skillCommands, []); + const skillCommands = essentialMissing.map((name) => `npx skills add ${SKILL_SOURCE} --skill ${name}`); + const skillNotes = []; + if (optionalMissing.length > 0) { + skillNotes.push(`Optional (install only if relevant): ${optionalMissing.map((name) => `npx skills add ${SKILL_SOURCE} --skill ${name}`).join(" | ")}`); + } + add("skills", skillCommands.length > 0 || skillNotes.length > 0 ? "Install agent skills" : "All agent skills already present", skillCommands, skillNotes); const composerCommands = []; const composerNotes = [];