From 15f095b016a22919f470da9b6d2dd55ff72d4a93 Mon Sep 17 00:00:00 2001 From: pluginslab <57633278+pluginslab@users.noreply.github.com> Date: Mon, 21 Sep 2026 17:52:22 +0100 Subject: [PATCH] release(cli): publish create-wp-ai-plugin 1.1.0 npm has been serving 0.1.0 since 2026-05-16. Every `npm create wp-ai-plugin` since then handed out a scaffolder four months stale, missing the main-file rename from v1.0.0 and the PL_Example substitution fix from v1.0.4. cli/package.json said 1.0.0 but that version was never published. Going out as 1.1.0 rather than 1.0.0 so the published artifact cannot be confused with the code carrying the v1.0.0 git tag -- they are not the same tree. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 2 ++ cli/package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d35b7ce..21a2c6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ The kit's evolution, kept for humans. Per-feature progress lives in `.claude/pla - **Scaffolded plugins no longer ship a class named `PL_Example_Plugin`.** The CLI's replacement keys are case-sensitive and mutually disjoint, and `PL_Example` — underscore-separated PascalCase, WordPress's convention for global class names — matched none of the four existing entries. Every plugin generated by the kit carried the template's bootstrap class name verbatim, which fatals with `Cannot declare class PL_Example_Plugin` the moment two kit-scaffolded plugins are active on the same site. `cli/index.js` now derives a `classPrefix` (`acme-order-tracker` → `Acme_Order_Tracker`) and substitutes it. + **`create-wp-ai-plugin` is published as 1.1.0**, carrying this fix. npm had been serving `0.1.0` from 2026-05-16 — every `npm create wp-ai-plugin` since then handed out a scaffolder four months stale, missing both this and the main-file rename from v1.0.0. The version in `cli/package.json` said `1.0.0` and had never actually been pushed; it goes out as `1.1.0` instead so the published artifact can't be confused with the code carrying the `v1.0.0` git tag. + `tests/cli/test-substitutions.sh` (10 assertions) generalises the bug rather than just fixing it: it scans every file the CLI will rewrite, collects each casing of the example identity present, and asserts each has a replacement entry. A sixth casing introduced by a future template edit fails there instead of in someone else's plugin. - **`playground-verifier`'s own playbook**, corrected against a second live run: `WP_DEBUG_DISPLAY` is false by default in Playground, which made the "notices in the page body" check structurally incapable of failing; the `wp-admin/includes/` caveat was written as a quirk of `is_plugin_active()` when it applies to `activate_plugin()` and `get_plugins()` equally; there was no recipe for *authenticated* admin loads (the inverse of the anonymous one — omit the suppression cookie and let auto-login work); and the deactivation criterion put transients at High, which flags correct conventional behaviour on nearly every plugin. The fresh-clone reproduction now uses `git archive HEAD` rather than a hand-derived exclusion list that drifts from `.gitignore`. diff --git a/cli/package.json b/cli/package.json index af4d25a..5667e1e 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "create-wp-ai-plugin", - "version": "1.0.0", + "version": "1.1.0", "description": "Scaffold a new WordPress plugin from wp-agentic-kit, configured for agentic engineering with Claude Code. Run via `npm create wp-ai-plugin `.", "type": "module", "bin": {