Repository navigation
docs(skills): give the @objectstack/skills install line for the project's own package manager - #25023
Conversation
…ct's own package manager The npm page, the catalog's front page and the upgrade skill's re-install step printed the npm-only line, which exits 1 in a pnpm-installed project. Each now prints the pnpm line with the npm and yarn spellings beside it and the rule: add the package with the manager that installed the project. Claude-Session: https://claude.ai/code/session_01M82feuetLzrCiBz41BJb7L Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift Check
What this run could not see
Coarse fallback — 7 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
Contract reviewServed-tier: Inputs: card #24974 (body and both comments: the dispatch claim and the os-dev-report), PR #25023 (body, four-file list, net diff against ① Derived judgmentsJ1 ·
J2 · The § 2.1 cut ("Their consumer-facing projection is J3 · The dropped J4 · Budget and surface readings (the gates' readings, not mine). ② Semver level
③ Boundary flags
Out-of-scope finding, ESCALATED to the seat as a filing decision: Tier: Check-runs on the head, read at 2026-10-21T01:38Z: 32 completed/success, among them Implemented-by: VERDICT: PASS Generated by Claude Code |
维护者速读改了什么:三处面向客户的安装说明原本只给一行
npm 包页还补了两点:17.x 项目报错时 pnpm 给的错误码;执行 为什么改: 风险与代价(含回滚):
席位意见:建议批准。达档契约复核(评论 6305865486)从「加载这些技能的客户 agent」的视角逐段判过,结论 PASS:
复核另提到两条旧版本 CHANGELOG 条目也印着 npm 那一行。席位判断不立卡:那些条目如实记录了当时发出去的内容,不是事实错误。 你要做的:在 PR #25023 上点 Approve,席位随后落地。 席位核对ACCEPT ·
Generated by Claude Code |
Fixes #24974
Clause-②: no
What changed
The published
@objectstack/skillsREADME (the npm page and tarball text), the catalog's front page (skills/README.md, shipped asdist/skills/README.md) and theobjectstack-upgradeskill's re-install step each printednpm install --save-dev "@objectstack/skills@$(node -p …)"as the only install line. In a pnpm-installed project that line exits 1 withnpm error Cannot read properties of null (reading 'edgesOut')and writes nothing, andcreate-objectstackinstalls with pnpm when it is available. Each site now carries the shape PR #24973 gavecontent/docs/**(merged as3a7a60af8): the pnpm line in the block, one comment line with the npm and yarn spellings, and the rule "add the package with the manager that installed the project".packages/skills/README.md, step 1 (was L28)npm install --save-dev "…"→pnpm add -D "…", plus the npm/yarn comment line, plus the rule paragraph with the measured npm error.changeset/24974-skills-install-line.md(README.mdis in the package'sfiles)packages/skills/README.md, "Keep the version in step 1" (was L40)pnpm add -D @objectstack/skills, the manager step 1 printspackages/skills/README.md, "Which versions exist" (was L49)ETARGET→ERR_PNPM_NO_MATCHING_VERSION(npm:ETARGET; both printNo matching version found)packages/skills/README.md, scaffolded projects (was L54)npx skills listfirst, becausenpx skills remove --allremoves every installed skill without askingskills/README.md(was L11)skills/objectstack-upgrade/SKILL.md, re-install step (was L129)--allshortcut leaves the proseNo other shipped page prints the npm-only line:
git grep -n "npm install --save-dev" origin/mainhits the three sites above, thecontent/docs/**pages PR #24973 and PR #24922 already changed, and two release-ownedCHANGELOG.mdfiles a code PR never edits.H1 to H4, measured
origin/main62bc12930:packages/skills/README.md:28and:40,skills/README.md:11,skills/objectstack-upgrade/SKILL.md:129all carried the npm-only line.git grep -n "skills remove --all" origin/main -- skills/ packages/skills/hitspackages/skills/README.md:54and the release-ownedpackages/skills/CHANGELOG.mdonly. The upgrade skill named--allas a prose alternative beside its by-name command, never as a printednpx skills remove --all(see H4).check-skills-token-ratchetreadsskills/objectstack-upgrade/SKILL.mdat 6172 / 6188 before and 6171 / 6188 after. The ledger: the comment line (+109 bytes) and the rule clause (+44), less the shorter prefix (−11), the dropped--allclause (−52) and one deleted sentence in § 2.1 (−96): "Their consumer-facing projection isspec-changes.jsonand the chain's own--jsonoutput", which restated the table two paragraphs above it (its "Chain result" and "D4 projection" rows).skills/README.mdis outside the ratchet's population by construction (population 3 in its header).check:skill-docs,check:skill-compatibility,check:skill-identifier-liveness,check:skill-frame-sync,check:published-files,check:doc-authoring,check:pm-skill-id-lint,check:closed-ceremony-textall exit 0 onf0b0ddc2d.@objectstack/skillsat the installed spec's version with the manager that installed the project, copy it:", and the block's comment line gives the npm and yarn spellings as a prefix swap on an identical argument. The one silent wrong path is runningpnpm addin an npm or yarn project, and the sentence closes it; a literal copy of the comment's@…fails loudly (No matching version found), never silently. A three-line form (one full line per manager) was weighed and dropped: two more lines and about 50 more tokens than the file has headroom for, bought for a substitution an agent already makes. The--allshortcut leaves the prose because the by-name command the block prints is always safe (a missing name is skipped), while--allneeds the judgment the docs now guard withnpx skills list: one command, no branch.Line budget:
skills/**, +4 allowedskills/README.mdskills/objectstack-upgrade/SKILL.mdgit diff --numstat 62bc1293080968f0ec8c3d31dc1f9ed8da4077df -- skills/. The lines were paid for by deleting content (the § 2.1 sentence and the--allclause), not by re-wrapping.Tests and gates
All readings on
f0b0ddc2d, this PR's only commit; exit codes captured before any pipe.bash scripts/pm/os-verify-lock.sh -c 'NODE_OPTIONS=--max-old-space-size=4096 pnpm --filter @objectstack/spec build'(whatcheck:skill-docsreads):VERDICT command-exit 0 · held the lock 94s · waited 0s.pnpm --filter @objectstack/skills build(sync-catalog, byte-equality againstskills/**): exit 0. The package declares notestortypecheckscript.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(no paths, change set from the merge base): 71 commands; every one run;--ranverdict:71 derived famil(ies) accounted for — 68 run, 3 NOT-MEASURED (3 DERIVED from a recorded exit 3).node scripts/check-skills-token-ratchet.mjs:skills/objectstack-upgrade/SKILL.md is 6171 tokens (ceiling 6188; headroom 17);54 authored bundle file(s) within their ceilings.pnpm --filter @objectstack/spec run check:skill-docs:✓ skills/README.md, exit 0.pnpm check:doc-authoring:53 published skill files clean, exit 0.pnpm check:published-files: exit 0.pnpm check:skill-identifier-liveness:457 citation(s) over 53 published file(s), exit 0.grep -naPfor control characters over the four files: none.Acceptance notes
62bc12930;origin/mainmoved to05b28c199(4 commits) during the run, none touchingpackages/skills/,skills/or.changeset/; not merged (no conflict, no main-red; the merge base is unchanged).PREREQUISITE NOT MET: unbuilt packages this diff never touches,@objectstack/formula,@objectstack/objectql, and the apps/adaptersdist/):check:doc-formula-expressions,check:dual-build-cjs-loads,check:lean-entry-closure. None reads the four files here; CI'sLint & Repo Gatesis their reading.check-plugin-teardown-shape --self-testrefused once on the shallow clone (its fixture is pinned to621a48760); deepened to that commit and re-run:48 cases pass, exit 0.packages/skills/CHANGELOG.mdandpackages/create-objectstack/CHANGELOG.mdprint the npm-only line inside released entries; both are release-owned, so a correction would be a dedicated docs-only PR. Carrier: none.维护者速读(草稿)
改了什么。 三处面向客户的安装说明(npm 包页 README、技能目录首页 README、升级技能里的重装步骤)原本只给
npm install --save-dev …这一行;现在改为给 pnpm 的那一行,旁边一行注释列出 npm 与 yarn 的拼法,并写明规则「用安装这个项目的包管理器来加包」。npm 包页另外把 17.x 项目的报错码补上 pnpm 的那个,并在npx skills remove --all之前加上npx skills list。附一条@objectstack/skills的 patch changeset。为什么改。
create-objectstack有 pnpm 就用 pnpm 装项目,所以脚手架出来的项目大多是 pnpm 项目;在这种项目里照抄原来那一行会直接报错退出(实测 exit 1,edgesOut),什么也装不上。文档站的三页上一轮已改(PR #24973),这三处是同一问题剩下的、归本车道(受管面与 npm 包页)的行。风险与代价(含回滚)。 纯文字改动,不碰代码、不加门禁。代价:
skills/**两个文件合计净 +2 行(预算 +4);升级技能文件的 token 棘轮 6171/6188,靠删掉 §2.1 一句与上方表格重复的话付账,无信息损失。风险:注释行里的@…若被逐字照抄会报「找不到版本」,是响亮失败不是静默错装。回滚:revert 本 PR 唯一的一个 commit 即可,无状态、无生成物。席位意见。
你要做的。 一个动作:在本 PR 上给出 APPROVED review(
skills/**是 Tier H 受管面),席位随后落地。Generated by Claude Code