brmbh has two distinct kinds of agent skill. The distinction is already implemented and already documented — but only inside one file, in the wrong repo, in a copy that exists twice. Writing it down as an architectural rule resolves #5, sharpens #3, and gives us a test for where future work belongs.
The two layers
Layer 1 — pre-scaffold (global, one skill). Runs on a machine where no brmbh theme exists yet. Its job: know brmbh exists, check prerequisites (Node 18+, git, wp-cli, SCF), run create in the right directory, interpret doctor --json, hand off. Has no project to read, so it must be installed user-level (~/.claude/skills/, or as a plugin), not into a project.
Today this is skills/wordpress/SKILL.md + skills.sh.json.
Layer 2 — in-project (ships with the theme, currently 10 skills). create-block, edit-block, list-blocks, delete-block, sync-tokens, deploy, sync-db, sync-plugins, sync-uploads, check-versions. Every one of them operates on an existing theme — useless without a project. Canonical source is the theme's AGENTS/*.md; generateSkillWrappers() (src/commands/add.js:199) emits the per-agent wrappers.
The handoff between layers is already written: skills/wordpress/SKILL.md has a "Handoff to in-theme skills" section that says in-theme skills take over once doctor reports ready. The model is sound. It's the ownership that was never settled.
The rule to adopt
The CLI owns Layer 1. The theme owns Layer 2. Neither layer is duplicated across repos.
Rationale: Layer 1 documents how to install and drive the CLI — its skills.sh.json manifest even declares "name": "@brmbh/cli". Layer 2 describes operations on theme files and must travel with the theme it targets.
What follows from it
Tasks
Open question
Does Layer 1 stay a single skill? It currently covers scaffold + doctor + troubleshooting + a full CLI reference in one file. That is fine while it is one document, but if it grows, splitting by task (install / diagnose) is likely better than one long file the agent reads in full every time.
Related: #1, #3, #4, #5 · brmbh/wordpress#2
brmbh has two distinct kinds of agent skill. The distinction is already implemented and already documented — but only inside one file, in the wrong repo, in a copy that exists twice. Writing it down as an architectural rule resolves #5, sharpens #3, and gives us a test for where future work belongs.
The two layers
Layer 1 — pre-scaffold (global, one skill). Runs on a machine where no brmbh theme exists yet. Its job: know brmbh exists, check prerequisites (Node 18+, git, wp-cli, SCF), run
createin the right directory, interpretdoctor --json, hand off. Has no project to read, so it must be installed user-level (~/.claude/skills/, or as a plugin), not into a project.Today this is
skills/wordpress/SKILL.md+skills.sh.json.Layer 2 — in-project (ships with the theme, currently 10 skills).
create-block,edit-block,list-blocks,delete-block,sync-tokens,deploy,sync-db,sync-plugins,sync-uploads,check-versions. Every one of them operates on an existing theme — useless without a project. Canonical source is the theme'sAGENTS/*.md;generateSkillWrappers()(src/commands/add.js:199) emits the per-agent wrappers.The handoff between layers is already written:
skills/wordpress/SKILL.mdhas a "Handoff to in-theme skills" section that says in-theme skills take over oncedoctorreportsready. The model is sound. It's the ownership that was never settled.The rule to adopt
Rationale: Layer 1 documents how to install and drive the CLI — its
skills.sh.jsonmanifest even declares"name": "@brmbh/cli". Layer 2 describes operations on theme files and must travel with the theme it targets.What follows from it
skills.sh.jsonandskills/wordpress/SKILL.mdlive in this repo only. brmbh/wordpress deletes its copies and links here instead. (Tracked on the theme side at Remove the duplicated pre-scaffold skill files (CLI owns Layer 1) wordpress#2.)AGENTS/*.mdfrom the theme repo into an existing site. Layer 1 updates by updating the CLI, which npm already handles. No new mechanism needed there.Tasks
AGENTS.md, which already documents Layer 2 but never names Layer 1Open question
Does Layer 1 stay a single skill? It currently covers scaffold + doctor + troubleshooting + a full CLI reference in one file. That is fine while it is one document, but if it grows, splitting by task (install / diagnose) is likely better than one long file the agent reads in full every time.
Related: #1, #3, #4, #5 · brmbh/wordpress#2