Repository navigation
docs: give the @objectstack/skills install line for the project's own package manager - #24973
Conversation
… package manager The three content/docs sites printed `npm install --save-dev` as the only command; in a pnpm-installed project it exits 1 with `npm error Cannot read properties of null (reading 'edgesOut')`. Each site now carries the pnpm line, a comment with the npm and yarn spellings, and the rule to add the package with the manager that installed the project. The 17.x refusal names the pnpm code beside npm's, and skills-reference runs `npx skills list` before `npx skills remove --all`. Claude-Session: https://claude.ai/code/session_01FM29ZqLTrnPNXxijioZwMp Co-authored-by: Claude <noreply@anthropic.com>
Seat reviewACCEPT ·
This seat readies the PR and queues it with auto-merge. Generated by Claude Code |
Fixes #24926
Clause-②: no
What changed
Three
content/docs/**pages printednpm install --save-dev "@objectstack/skills@$(node -p …)"as the only install command. Each one now gives the install line for the project's own package manager, in the same shape as PR #24922 (content/docs/releases/v18/18-0.mdxstep 1):content/docs/upgrading.mdx, step 4, the "From 17.x to 18" blocknpm install --save-dev "@objectstack/skills@$(node -p …)"→pnpm add -D "@objectstack/skills@$(node -p …)", plus the line# npm: npm install --save-dev "@objectstack/skills@…" · yarn: yarn add -D "@objectstack/skills@…", plus the rule sentencecontent/docs/ai/skills.mdx, § Installing skillscontent/docs/ai/skills-reference.mdx, § Installing skills, step 1ERR_PNPM_NO_MATCHING_VERSIONbeside npm'sETARGET, and the 18.0.0-next.0 note runsnpx skills listbeforenpx skills remove --allskills/README.md(≈:11)domain:skills). Thedomain:devxseat moves it to adomain:skillscard when this one landsskills/objectstack-upgrade/SKILL.md(≈:129)upgrading.mdxalready said to runnpx skills listbefore--all("Runnpx skills listfirst"), so that sentence is unchanged.skills.mdxdoes not print--all.Measured
Node 22.22.0. Each scaffold was created in its own new, empty directory under the session scratchpad. The command was copied from the page: the pnpm line, or a spelling from the comment with its
@…filled in with the same version expression.@objectstack/skillsline inpackage.jsonafterwardscreate-objectstack@18.0.0scaffold, pnpm-installedpnpm add -D "@objectstack/skills@$(node -p …)", the line every site now keeps0"18.0.0", written in place of the template's"^18.0.0"create-objectstack@18.0.0scaffold, pnpm-installednpm install --save-dev "@objectstack/skills@$(node -p …)", the line every site kept1npm error Cannot read properties of null (reading 'edgesOut');package.jsonunchanged ("^18.0.0")create-objectstack@18.0.0scaffold, npm-installed. pnpm was taken offPATH, so the scaffolder chose npm and wrotepackage-lock.jsonnpm install --save-dev "@objectstack/skills@$(node -p …)", the comment's npm spelling0, it succeeds"^18.0.0": npm saves with its default^prefix, so the value is the template'screate-objectstack@18.0.0 --skip-install, thenyarn install(exit0,yarn.lock)yarn add -D "@objectstack/skills@$(node -p …)", the comment's yarn spelling0"18.0.0"create-objectstack@17.7.0 --skip-skills, pnpm-installed (@objectstack/spec17.7.0)pnpm add -D "@objectstack/skills@$(node -p …)"1ERR_PNPM_NO_MATCHING_VERSION No matching version found for @objectstack/skills@17.7.0; unchanged17.7.0npm install --save-dev "@objectstack/skills@17.7.0"1npm error code ETARGET,No matching version found for @objectstack/skills@17.7.0.; unchangedNotes on the readings:
create-objectstack@17.7.0's ownnpm installexited1with the sameedgesOuterror, and again on a retry. So npm's 17.x refusal was measured with the version written out.error Couldn't find any versions for "@objectstack/skills" that matches "17.7.0", exit1. The page does not name it.dependenciesalphabetically in M1, M3 and M4. No other value changed.Gates
Local, at head
bd085862fc. These are the 44 commands thatnode scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderives from this diff, with each exit code captured before any pipe.All 44 exited
0.Five needed a build first. They answered exit
3(prerequisite not met) on the first pass, which is not a measurement:check:doc-formula-expressions,check:doc-security-postureandcheck:docs-transcript-driftneeded@objectstack/lintbuilt;@objectstack/spec check:docsneeded its generated tree;@objectstack/spec check:skill-examplesneeded@objectstack/client-reactbuilt.I built
@objectstack/lint...and@objectstack/client-react...under the verify lock (VERDICT command-exit 0both times) and re-ran the five. Each exited0.The builds left the worktree clean.
git status --porcelainprinted nothing afterwards.--ranreconciliation:44 derived, 44 run, 0 NOT-MEASURED, 0 UNRUN(it calls this "a DERIVED zero").Selected verdict lines:
check:doc-anchors: 563 internal fragment links, each reaching a real heading;check:docs-single-h1: 418 pages, no body-level heading-one;check:docs-image-tag: OK, 9 concrete pins against 18.0.0;check:skill-docs:✓ content/docs/ai/skills-reference.mdx, "Skill docs in sync";check:nul-bytes: OK, no raw control bytes.No package code changed, so there is no package build,
pnpm testortypecheckto run.test:repois left to CI.Merge check:
git merge-tree --write-tree origin/main HEADexited0againstorigin/main693352e4c2. That is three commits past the base, none of them undercontent/docs/.Changeset
This PR is labelled
skip-changeset, becausecontent/docs/**ships in no package. Measured:contentordocspath in itsfiles[];@objectstack/specships (dist,json-schema,liveness,prompts,llms.txt,README.md,api-surface) for five strings from the edited passages. Each matched 0 files. The positive controldefineStackmatched 93 files.Acceptance notes
npx skills list. Inskills-reference.mdx, the 17.x refusal sentence now names the code that step 1 prints. Left alone, the page would put npm'sETARGETunder a pnpm command, which printsERR_PNPM_NO_MATCHING_VERSION(M5).skills-reference.mdxstill says that a barenpm install --save-dev @objectstack/skillsinstalls whichever version the registry tagslatest. That is true as stated, and equally true of a barepnpm add -D. The card rules out other prose changes, so it stays. Carrier: none.packages/skills/README.md:28, the published@objectstack/skillsREADME, prints the samenpm install --save-devline as its only step 1. That is the M2 command. The README is in the package'sfiles[], so this text is on the npm page and in the tarball. It is outside this PR's file surface, and changing it publishes (apatchchangeset for@objectstack/skills). It is reported to the seat to join the follow-up card with the twoskills/**rows.create-objectstack@17.7.0cannot install with npm here. Its ownnpm install(npm 10.9.4, no lockfile) exits1withedgesOut. 17.7.0 is a superseded release, and 18.0.0's npm path succeeds (M3). Carrier: none."18.0.0"and npm writes"^18.0.0". None of the three pages says which. The sentence inreleases/v18/18-0.mdx, "The command writes the exact version", is about its pnpm line, and M1 agrees with it.Generated by Claude Code