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": {