Skip to content

docs(skills): give the @objectstack/skills install line for the project's own package manager - #25023

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-24974-skills-install-line-pm
Oct 21, 2026
Merged

os-zhuang merged 1 commit into
mainfrom
claude/issue-24974-skills-install-line-pm

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Fixes #24974
Clause-②: no

What changed

The published @objectstack/skills README (the npm page and tarball text), the catalog's front page (skills/README.md, shipped as dist/skills/README.md) and the objectstack-upgrade skill's re-install step each printed npm install --save-dev "@objectstack/skills@$(node -p …)" as the only install line. In a pnpm-installed project that line exits 1 with npm error Cannot read properties of null (reading 'edgesOut') and writes nothing, and create-objectstack installs with pnpm when it is available. Each site now carries the shape PR #24973 gave content/docs/** (merged as 3a7a60af8): 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".

site old → new notes
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 the npm page; patch changeset .changeset/24974-skills-install-line.md (README.md is in the package's files)
packages/skills/README.md, "Keep the version in step 1" (was L40) the bare spelling it warns about is now pnpm add -D @objectstack/skills, the manager step 1 prints same sentence, same warning
packages/skills/README.md, "Which versions exist" (was L49) ETARGET → ERR_PNPM_NO_MATCHING_VERSION (npm: ETARGET; both print No matching version found) step 1 is pnpm now, so the npm-only code would have become a false statement this PR introduced; the docs' exact wording (PR #24973, M5)
packages/skills/README.md, scaffolded projects (was L54) npx skills list first, because npx skills remove --all removes every installed skill without asking the card's second "Wanted" line; H2's only shipped hit
skills/README.md (was L11) pnpm line plus the comment line; the rule sentence opens the next paragraph in its short form, without the error text, because the page already defers every detail to the Skills reference governed, Tier H; net +3 lines
skills/objectstack-upgrade/SKILL.md, re-install step (was L129) pnpm line plus the comment line; the step's own sentence carries the rule ("with the manager that installed the project"); the --all shortcut leaves the prose governed, Tier H; net −1 line; the token ratchet is paid in the same file (H3)

No other shipped page prints the npm-only line: git grep -n "npm install --save-dev" origin/main hits the three sites above, the content/docs/** pages PR #24973 and PR #24922 already changed, and two release-owned CHANGELOG.md files a code PR never edits.

H1 to H4, measured

  • H1 holds. On origin/main 62bc12930: packages/skills/README.md:28 and :40, skills/README.md:11, skills/objectstack-upgrade/SKILL.md:129 all carried the npm-only line.
  • H2 holds, one site. git grep -n "skills remove --all" origin/main -- skills/ packages/skills/ hits packages/skills/README.md:54 and the release-owned packages/skills/CHANGELOG.md only. The upgrade skill named --all as a prose alternative beside its by-name command, never as a printed npx skills remove --all (see H4).
  • H3: every skills gate green; the ratchet had 16 tokens of headroom, not zero. check-skills-token-ratchet reads skills/objectstack-upgrade/SKILL.md at 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 --all clause (−52) and one deleted sentence in § 2.1 (−96): "Their consumer-facing projection is spec-changes.json and the chain's own --json output", which restated the table two paragraphs above it (its "Chain result" and "D4 projection" rows). skills/README.md is 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-text all exit 0 on f0b0ddc2d.
  • H4: the docs' shape, with the rule in the step's own sentence. The sentence an agent reads before it copies the block now ends "add @objectstack/skills at 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 running pnpm add in 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 --all shortcut leaves the prose because the by-name command the block prints is always safe (a missing name is skipped), while --all needs the judgment the docs now guard with npx skills list: one command, no branch.

Line budget: skills/**, +4 allowed

file + / − net
skills/README.md +11 / −8 +3
skills/objectstack-upgrade/SKILL.md +6 / −7 −1
total +2

git diff --numstat 62bc1293080968f0ec8c3d31dc1f9ed8da4077df -- skills/. The lines were paid for by deleting content (the § 2.1 sentence and the --all clause), 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' (what check:skill-docs reads): VERDICT command-exit 0 · held the lock 94s · waited 0s.
  • pnpm --filter @objectstack/skills build (sync-catalog, byte-equality against skills/**): exit 0. The package declares no test or typecheck script.
  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths, change set from the merge base): 71 commands; every one run; --ran verdict: 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 -naP for control characters over the four files: none.
  • No ablation: the diff changes prose and a changeset, no tested behaviour.

Acceptance notes

  • Base 62bc12930; origin/main moved to 05b28c199 (4 commits) during the run, none touching packages/skills/, skills/ or .changeset/; not merged (no conflict, no main-red; the merge base is unchanged).
  • Three derived gates are NOT MEASURED locally (exit 3, PREREQUISITE NOT MET: unbuilt packages this diff never touches, @objectstack/formula, @objectstack/objectql, and the apps/adapters dist/): check:doc-formula-expressions, check:dual-build-cjs-loads, check:lean-entry-closure. None reads the four files here; CI's Lint & Repo Gates is their reading.
  • check-plugin-teardown-shape --self-test refused once on the shallow clone (its fixture is pinned to 621a48760); deepened to that commit and re-run: 48 cases pass, exit 0.
  • Out of scope, noted and not filed: packages/skills/CHANGELOG.md and packages/create-objectstack/CHANGELOG.md print 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

…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>
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation tooling labels Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

⚠️ 1 changed file(s) yielded no anchor (packages/skills/README.md), so the pages documenting them are NOT COVERED by this run — this is not a clean bill of health for those files. Nothing else in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 1 changed package(s)).

What this run could not see
  • 1 changed file(s) yielded no anchor (packages/skills/README.md) — pages documenting those are invisible to this run
  • a page that states a rule by its inputs shares no identifier with the emitter that implements the rule, so an emitter-only diff cannot list it — not on this run and not on any run. Measured on fix(driver-sql): emit varchar(maxLength) for a text field a declared index keys on #11430: content/docs/protocol/objectql/types.mdx documents the text-family column mapping by the ObjectQL type names it maps FROM (text / textarea / html) while the diff changed createColumn; it went unlisted, and it was the page that diff falsified, in four places. No shared token exists to detect this on, so a rule your change carries has to be re-read by hand in the pages that restate it.
  • a key NAME is not a key, so the hand re-read the line above prescribes can land on the wrong schema. The same spelling is authorable on one governed type and a [REMOVED] tombstone on another for each of active, aria, joins, objects, template, tools and version (censused on [finding] tools is a key on BOTH AgentSchema (tombstoned, dead) and SkillSchema (live, cloud-attested), so a name-based search attributes skill examples to the agent key — it produced a false stop-the-line alarm on PR #19059 #19093 over the liveness ledger's governed types, top-level keys); nothing in a search result distinguishes the two, so a grep hit on a LIVE example reads as evidence about the DEAD key. Measured on fix(spec): the agent.tools liveness row says dead — it claimed live on a key the schema tombstoned #19059: content/docs/ai/agents.mdx was reported as contradicting the agent.tools tombstone over its tools: example at :161, which is inside the defineSkill({ block opened at :155 — the page was already correct. Settle ownership by PARSING the value against both schemas, never by the name: that literal PASSES SkillSchema, and as an AgentSchema it FAILS at tools with the tombstone prescription. ⛔ These names are not the whole class — a key retired through a .strict() guidance map leaves no tombstone in the walked shape and none of them here (tool.category, live as AIToolDefinition.category).

Coarse fallback — 7 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 05b28c199b7408da7ca4bc3988635fa9342cd6de → packageMentionDocs.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: f0b0ddc2de357c1cf9b049b356eb7266a4be90e1
Local-runs: none
Scope: skills/README.md, skills/objectstack-upgrade/SKILL.md + content/docs/ai/skills.mdx, content/docs/ai/skills-reference.mdx, content/docs/upgrading.mdx, packages/skills/package.json, packages/skills/scripts/sync-catalog.mjs, scripts/check-skills-token-ratchet.mjs, .github/workflows/lint.yml

Inputs: card #24974 (body and both comments: the dispatch claim and the os-dev-report), PR #25023 (body, four-file list, net diff against main at the head), the head's check-runs; the governed files read at the head and at origin/main with git show, the cited docs pages at origin/main. The remainder of the diff, packages/skills/README.md and .changeset/24974-skills-install-line.md, is the lane seat's ACCEPT at TIER_DEFAULT; it is read here only where a governed hunk makes a claim about it. Judged from the seat of the customer agent that loads skills/** whole with npx skills add: the accept set is what that agent does when it follows these pages.

① Derived judgments

J1 · skills/objectstack-upgrade/SKILL.md, re-install step: the pnpm add -D … runnable line, npm and yarn on a comment line — RIGHT.

  • Accept set. In a pnpm project (the scaffolded population: create-objectstack installs with pnpm when it is available, card table) the block run as-is does the right thing. In an npm or yarn project the runnable line is the one silent path: pnpm add exits 0 and converts the project (a pnpm-lock.yaml beside the project's own lockfile, node_modules rebuilt in pnpm's layout). The old line had the mirror defect, loud (exit 1, edgesOut), on the larger population.
  • Where the rule sits. The sentence the agent reads before it copies the block now ends "add @objectstack/skills at the installed spec's version with the manager that installed the project, copy it:" (L121-123 at the head); the comment line gives the swap as a prefix change on an identical argument; a literal copy of the comment's @… fails loud (No matching version found), never silently. No prose block is one an agent cannot get wrong mechanically, and the card forbids the only mechanical closure (⛔ No new gate; a lockfile-detection line would be a rule the docs do not carry). The rule in the step's own sentence is the closest placement a procedure allows.
  • Against the card's "same shape as the docs": the bash block is byte-identical to content/docs/upgrading.mdx L108-113 (the docs' own version of this step) and to content/docs/ai/skills.mdx L32-34 (PR docs: give the @objectstack/skills install line for the project's own package manager #24973, merged). The docs carry the rule as a paragraph after the block; the skill carries it in the step sentence before it. Equal accept set, fewer tokens, paid under the ratchet.
  • Against the PR body's reasoning: the rejected three-line form (one runnable line per manager) is rightly rejected. An agent executing step by step runs all three; a placeholder line is not runnable.
  • Residual, not blocking: the skill's sentence names the rule without its failure mode (both READMEs and both docs pages say "exits 1"). The charter's "每条经验自含失效模式与边界" is the standard; the ratchet's 17 tokens of headroom is the reason. The block's comment line is the boundary; the seat may spend a later ratchet-paying edit on the failure mode.

J2 · The § 2.1 cut ("Their consumer-facing projection is spec-changes.json and the chain's own --json output") — RIGHT, the content survives.
Both named objects have a home in the same § 2.1 ("Harvest the instruction sources — all of them ship"), above the callout: the table rows Chain result (os migrate meta --from N --json → .specChanges, marked "Start here") and D4 projection (node_modules/@objectstack/spec/spec-changes.json, "the same data for every major, offline"), and the bash block under them that reads spec-changes.json. An agent reading the "Not reachable" callout learns "not there"; the redirect is the table the callout sits under, and the row name "D4 projection" keeps the thread. What is lost is one explicit back-link, not a rule: the callout's rule ("do not send anyone there") stands whole. Charter: "砍点逐条核幸存,被砍内容若在别处无家,砍掉就是丢规则" — checked, it has a home.

J3 · The dropped --all branch in the re-install prose — RIGHT.
The old prose offered --all "when they are the project's only skills", a judgment with no listing step before it. The card's second Wanted line binds "where a site prints npx skills remove --all"; this site printed the by-name command and named --all only in prose, so the card's literal remedy (npx skills list before it) does not bind here. Dropping the branch leaves one command that is always safe (a missing name is skipped), the same by-name command content/docs/upgrading.mdx L108-110 prints with no --all; it is stricter than list-first at −52 bytes. No --all survives in skills/** at the head other than --allow-destructive (git grep). Equal or safer accept set.

J4 · skills/README.md (ships as dist/skills/README.md: sync-catalog.mjs copies skills/** byte-identical) — RIGHT. The pnpm line, the comment line, and the rule in its short form ("in a pnpm project, npm install --save-dev exits 1") opening the paragraph after the block. The page defers detail to the Skills reference, and that target carries it: content/docs/ai/skills-reference.mdx L28 names the edgesOut error, L34 the npx skills list guard before npx skills remove --all for scaffolded projects. Same accept set as the docs page it mirrors.

Budget and surface readings (the gates' readings, not mine). skills/** net +2 against the dispatch's +4 (git diff --numstat from the merge base 62bc12930: README +11/−8, SKILL.md +6/−7), paid by the two deletions J2 and J3 name, not by re-wrap. The token ratchet and check:skill-docs run in Type Check · source gates: success. No npm-only runnable line survives under skills/ or packages/skills/ at the head outside comment lines and the prose naming the failure.

② Semver level

.changeset/24974-skills-install-line.md: '@objectstack/skills': patch, Clause-②: no. Matches what the diff publishes: prose only, all of it inside @objectstack/skills — README.md is in the package's files[], and skills/README.md and skills/objectstack-upgrade/SKILL.md ship under dist/ through sync-catalog.mjs. No schema, export or authorable key moves, so Clause-②: no with no arm is right; the PR body carries the same line. skip-changeset would have been wrong (it publishes), and patch is the level a docs fix in a released package takes. The changeset's three claims (both pages' line; ERR_PNPM_NO_MATCHING_VERSION beside ETARGET; npx skills list before npx skills remove --all) each match the diff. Check Changeset: success.

③ Boundary flags

open_questions: empty. Dev deviations, each answered:

  1. --all clause dropped — J3, right.
  2. ETARGET → ERR_PNPM_NO_MATCHING_VERSION on packages/skills/README.md — the remainder (lane ACCEPT), noted: the wording is content/docs/ai/skills-reference.mdx L34's and the code is pnpm's; consistent.
  3. § 2.1 sentence deleted — J2, right.
  4. skills/README.md rule in short form — J4, the link target carries the text; right.
  5. Three derived gates NOT MEASURED locally (check:doc-formula-expressions, check:dual-build-cjs-loads, check:lean-entry-closure) — their reading is CI's; the check-runs below are the verdicts.
  6. origin/main moved during the run, not merged — right: no conflict (mergeable: true), the merge base is unchanged.
  7. No label writes — the PR's documentation, size/s, tooling are Auto Label's (its check-run: success); consistent.
  8. Commit trailer pair — verified on the head: Claude-Session plus the model-free Co-authored-by trailer, no model identifier; right per AGENTS.md, and the harness reminder's own precedence sentence yields to it.
  9. dogfood not run — docs-only diff, nothing to boot; right.

Out-of-scope finding, ESCALATED to the seat as a filing decision: packages/skills/CHANGELOG.md (two released entries, L40 and L199 at origin/main) print the npm-only line as "the same two-step install the docs give", and packages/create-objectstack/CHANGELOG.md (L28, L140) offers npx skills remove --all without a listing step. Both ship in the tarballs as the text an upgrading agent greps (AGENTS.md Documentation Guardrails). The dev's "not class a" reading is contestable — the card itself was filed as class a, a documented command that fails, measured — and the guardrail names the remedy (a dedicated docs-only PR amending the entry), which this PR rightly does not carry. Not a FAIL here; the dev's dedupe words are in the os-dev-report.

Tier: skills/** is Tier H. This record is the contract-tier review the dispatch claim owes; the landing still waits on the maintainer's APPROVED review, and the PR stands as it must — draft, no auto-merge, no reviewers, head repo equal to base.

Check-runs on the head, read at 2026-10-21T01:38Z: 32 completed/success, among them Lint & Repo Gates, TypeScript Type Check, Build Core, Governed Surface Queue Guard, Check Changeset, Type Check · source gates and Test Core (2/6) to (6/6); 7 completed/skipped (opt-in and path-filtered: 18.x upgrade harness, Packed-tarball smoke, Build Docs, Console Pin Gate, the dogfood shards, Dogfood Verify CLI, Temporal Conformance); 1 in_progress, NOT MEASURED: Test Core (1/6). Its conclusion is the gate's, to be read before any landing act; nothing in this diff is a test input.

Implemented-by: claude/issue-24974-skills-install-line-pm
Reviewed-by: session_01M82feuetLzrCiBz41BJb7L

VERDICT: PASS


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

维护者速读

改了什么:三处面向客户的安装说明原本只给一行 npm install --save-dev …,现在改给 pnpm 的那一行,旁边一行注释写出 npm 和 yarn 的拼法,并写明规则「用安装这个项目的包管理器来加包」。三处是:

  • npm 包页 README;
  • 技能目录首页 README;
  • 升级技能(objectstack-upgrade)里的重装步骤。

npm 包页还补了两点:17.x 项目报错时 pnpm 给的错误码;执行 npx skills remove --all 之前先跑 npx skills list。附一条 @objectstack/skills 的 patch changeset。

为什么改:create-objectstack 装项目时有 pnpm 就用 pnpm,所以脚手架出来的项目大多是 pnpm 项目。在这种项目里照抄原来那一行,会直接报错退出(实测 exit 1),什么也装不上。文档站的三页已在 PR #24973 改好,这三处是同一问题剩下的、跟着包发出去的部分。

风险与代价(含回滚):

  • 纯文字改动,不碰代码、不加门禁。
  • skills/** 两个文件合计净增 2 行,在 +4 的预算内。为付升级技能的 token 棘轮,删了一句与上方表格重复的话,复核确认信息仍在表里。
  • 已知边界:升级技能的块里,可直接运行的那行是 pnpm。agent 若在 npm 项目里照块原样执行,会用 pnpm 去装。所以把规则写进了块前面那句步骤说明里,这也是文档站的同一做法。
  • 回滚:revert 这一个提交。

席位意见:建议批准。达档契约复核(评论 6305865486)从「加载这些技能的客户 agent」的视角逐段判过,结论 PASS:

  • 安装块与文档站两页逐字一致;
  • 删掉的那句,内容仍在同一节的表格里;
  • 去掉 --all 的简写,只留按名删除这一条总是安全的命令,比原来更稳。

复核另提到两条旧版本 CHANGELOG 条目也印着 npm 那一行。席位判断不立卡:那些条目如实记录了当时发出去的内容,不是事实错误。

你要做的:在 PR #25023 上点 Approve,席位随后落地。

席位核对

ACCEPT · domain:skills seat 1 (seat post #7623) · session_01M82feuetLzrCiBz41BJb7L · head f0b0ddc2de357c1cf9b049b356eb7266a4be90e1 · 2026-10-21T01:45Z

  1. Form. The PR is a draft against main, and the body's first line is Fixes #24974. Assignee huangyiirene equals the card's. Files: packages/skills/README.md, skills/README.md, skills/objectstack-upgrade/SKILL.md and .changeset/24974-skills-install-line.md. check-governed-merges.mjs --pr 25023: Tier H, +43/−21. The changeset is right: '@objectstack/skills': patch, Clause-②: no. The package's README.md is in its files[], and the two skills/** files ship under dist/.
  2. Premises measured. The seat read the whole diff. skills/** is net +2 against the dispatch's +4 budget. The token ratchet on the upgrade skill reads 6171/6188.
  3. Gate check-runs, pinned to this head (2026-10-21T01:44Z): 41 complete, 0 pending, 0 failures. check-expected-skips.mjs --pr 25023, from a checkout pinned to origin/main 73432299c: OK — 7 skipped check-run(s), every one in main's roster (exit 0). The contract review of record is comment 6305865486 (Served-tier: CONTRACT_REVIEW_TIER, this head, Local-runs: none, PASS), rendered by an isolated subagent at that tier and adopted by this seat.
  4. Accepted deviations.
    • The --all branch is dropped from the upgrade prose (review J3).
    • The § 2.1 sentence is cut to pay the ratchet, and its content survives in the same section's table (review J2).
    • ETARGET gains its pnpm sibling.
    • skills/README.md carries the rule in its short form, with the link target carrying the detail (review J4).
    • The model-free commit trailers follow AGENTS.md.
  5. Out-of-scope findings. The released packages/skills/CHANGELOG.md entries (L40, L199) and packages/create-objectstack/CHANGELOG.md entries (L28, L140) were escalated by the review as a filing decision. The seat's decision is dropped, for these reasons:
    • The skills entries accurately record the two-step install the READMEs shipped at that release.
    • The create-objectstack entries say "run your package manager's install", and guard remove --all with "if you installed no others".
    • AGENTS.md's released-entry remedy covers a factual error in the entry, and neither entry states one.
  6. Landing. Tier H, so this PR stays draft. Review is requested from both authorised approvers, and the card moves to needs-user-decision. On an authorised APPROVED review the seat clears the label, flips the PR ready, arms auto-merge, follows it to MERGED and closes out skills: the published @objectstack/skills README and two skills/** pages still print npm install --save-dev "@objectstack/skills@…" as the only install line, which exits 1 in a pnpm-installed project (#24926's governed and published rows) #24974.

Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review October 21, 2026 01:47
@os-zhuang
os-zhuang enabled auto-merge October 21, 2026 01:47
@os-zhuang
os-zhuang added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit c0cde8b Oct 21, 2026
42 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-24974-skills-install-line-pm branch October 21, 2026 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s tooling

Projects

None yet

3 participants