From 193bf476e315ad8eab449cbd6c3a3c7fe9d6318a Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 14 Sep 2026 12:07:02 +0000 Subject: [PATCH] fix(docs): plugin-spec's package.json example pins `@objectstack/*` at `^2.0.0`, a range today's 17.4.0 cannot satisfy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `content/docs/protocol/kernel/plugin-spec.mdx`'s published plugin `package.json` example declared `"@objectstack/core": "^2.0.0"` and `"@objectstack/cli": "^2.0.0"`. Both packages publish at `17.4.0`, and `^2.0.0` pins the major, so an author copying the block resolves `2.0.7` — the last 2.x on npm, fifteen majors behind — and then runs the page's own `os plugin build` on a 2.x CLI. Both lines now read `^17.0.0`, matching the repo's two other hand-written carriers (`packages/create-objectstack/src/templates/blank/package.json`, `skills/objectstack-platform/SKILL.md`). The prose under the block already named `SCAFFOLD_TYPESCRIPT_RANGE` as the authority for the `typescript` floor; it now names `getCliVersion()` in the same file as the authority for the `@objectstack/*` ranges, so the page teaches one range style rather than two. Claude-Session: https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk Co-authored-by: Claude --- content/docs/protocol/kernel/plugin-spec.mdx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/content/docs/protocol/kernel/plugin-spec.mdx b/content/docs/protocol/kernel/plugin-spec.mdx index b3e4d763cc7..011daa47f67 100644 --- a/content/docs/protocol/kernel/plugin-spec.mdx +++ b/content/docs/protocol/kernel/plugin-spec.mdx @@ -700,11 +700,11 @@ Plugins are distributed as **NPM packages** for easy versioning and distribution ], "dependencies": { - "@objectstack/core": "^2.0.0" + "@objectstack/core": "^17.0.0" }, "devDependencies": { - "@objectstack/cli": "^2.0.0", + "@objectstack/cli": "^17.0.0", "typescript": "^5.3.0" }, @@ -723,7 +723,12 @@ Plugins are distributed as **NPM packages** for easy versioning and distribution The `typescript` floor above mirrors `SCAFFOLD_TYPESCRIPT_RANGE` in `packages/cli/src/commands/init.ts` — that constant, not this snippet, is the -authority the scaffolders emit from. +authority the scaffolders emit from. The two `@objectstack/*` ranges have an +authority in the same file: every `@objectstack/*` package in this monorepo is +published on one shared release version, and the scaffolders caret-pin each +dependency to the version of the CLI that generated the project +(`getCliVersion()`). A hand-written example cannot carry that live value, so it +carries the **current major's floor** — track it when the major moves. ### Publishing to NPM