Skip to content
This repository was archived by the owner on Jul 29, 2026. It is now read-only.
This repository was archived by the owner on Jul 29, 2026. It is now read-only.

DECISION: should @brmbh/cli continue to exist? #8

Description

@Schmandarine

Open question, blocking most other work in this repo: should @brmbh/cli continue to exist?

What prompted it

Auditing the theme repo turned up that none of the ten in-theme AGENTS/*.md skills invoke this CLI. They call:

  • tools/*.sh in the theme — deploy.sh, db-pull.sh, db-push.sh, sync-plugins.sh, uploads-*.sh, version-check.sh, sync-tokens.mjs
  • wp brmbh … — the theme's own WP-CLI subcommand (inc/cli.php)
  • npm run build / npm run watch

Meanwhile npx skills add brmbh/wordpress — the one install path verified working — resolves against the theme repo, not this one. So the theme is already both the runtime and the distribution hub. This CLI sits beside that arrangement rather than inside it.

What this CLI uniquely provides

Command Unique?
create Yes — genesis. Before a theme exists, no theme tooling exists.
doctor Partly — spans node/theme/wp/SCF, and must work when wp-cli is absent (which it checks for), so it cannot be a wp brmbh command.
add block / add cpt No — deterministic file generation; could be wp brmbh make-block in PHP, or a script in tools/.
dev No — wraps npm run build / watch.
deploy, db, uploads No — wrap tools/*.sh, which the skills already call directly.

Roughly: one genuinely CLI-shaped command, one arguable, and five wrappers.

And create decomposes further. It is git clone → rename → npm installnpm run build → wire wrappers → wp theme activate. Every step after the clone happens inside a directory that now contains the theme's own tooling. A tools/init.sh <name> shipped in the theme could do all of it. The agent's instructions become: clone, then run init. Both deterministic. No npm package required.

The case for retiring it

The case for keeping it

  • Cross-platform. Node runs on Windows; tools/*.sh does not. Though deploy/db/uploads are already bash-only, so the theme is effectively Unix-only today — retiring exposes that rather than causing it.
  • --json envelopes and brmbh schema. The L1/L2/L3 envelope design is the sharpest agent-legibility work in the project. Shell scripts can emit JSON, but the introspection (brmbh schema listing every command, flag, and level) would be lost unless reimplemented.
  • Future scope. If brmbh ever ships more than one starter, or needs to manage sites it did not create, a standalone CLI becomes justified again.
  • Sunk work. ~1,400 lines, already published, already smoke-tested.

Recommendation

Retire it. Fold create into a theme-side tools/init.sh, keep doctor as a theme-side script that emits the same JSON envelope, move add block/add cpt into wp brmbh. Collapse to one repo.

The strongest argument is not effort saved — it is that the theme is already the product, and every cross-repo seam so far has produced a bug: the env-loading bug, the duplicated skill files, the stale THEME_REPO URL, the drifting wrappers. Removing the seam removes the class.

Retiring should not mean deleting: archive this repo, and publish a final @brmbh/cli with a deprecation notice pointing at npx skills add brmbh/wordpress.

If it stays instead

Shrink it to create + doctor only, and delete dev, deploy, db, uploads, since the skills bypass them anyway. A two-command CLI is defensible; a seven-command one where five are unused wrappers is not.

This blocks

#1, #3, #5, #6, #7 all assume this repo continues. Decide this first — several of them disappear either way.

Related: brmbh/wordpress#6 · vault: Automatic-Brain/Projects/brmbh-agentic-wp-suite/Development/Alignment-Plan.md item 1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions