Repository navigation
docs(skills): objectstack-upgrade's late-arrival example starts at the support floor - #22145
Conversation
…e support floor The "several majors late" paragraph examples `os migrate meta --from 10`, which the chain refuses below MIGRATION_SUPPORT_FLOOR = 16 with MigrationFloorError. Reword it: the example is now `--from 16`, the floor is stated in the same breath (16 today), and a project below the floor is told to upgrade to it by the older route first, then run the chain. Token ratchet (ceil(utf8 bytes / 4), ceiling 6193): 6187 -> 6184. The reword is paid by deleting two clauses the same file already states beside them — the `mkdir -p .upgrade` trailing comment (the paragraph under the block says it) and "which is exactly what the table above points at" (the table above is those two sources). No re-wrap. Claude-Session: https://claude.ai/code/session_01CXydFDyiQwNbGFkmwrcRQq Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewServed-tier: Reviewed in-seat by the skills seat 1 (dispatching seat; this session is served at the contract-review tier, read off ① Derived judgments
② Semver levelNone. Prose-only edit to a published skill file; no package ③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
维护者速读(终稿)席位:skills 席 1, 改了什么:只改对外发布的技能文件 为什么改:这份技能随 风险与代价(含回滚):纯文本改动,无代码、无 changeset( 席位意见:同意合入,席内契约复核 PASS。两点留给维护者,均未下令、不阻塞:① 同文件 你要做的:用授权账号( Generated by Claude Code |
Fixes #22123
Clause-②: no
The published upgrade skill's "several majors late" paragraph examples
os migrate meta --from 10. The chain refuses every--frombelowMIGRATION_SUPPORT_FLOOR = 16(packages/spec/src/migrations/registry.ts:79) withMigrationFloorError— exit 1,--jsonerror: unsupported_from_major— and the same file's failure-mode row already says so. This PR rewords the paragraph so its point (lateness is the designed-for case) is stated with an example the chain accepts and with the floor in the same breath, within the file's token ceiling. #22120 is landed (PR #22122, same file); this branch cuts fromorigin/mainafter it.What changed (one file:
skills/objectstack-upgrade/SKILL.md)The paragraph under §0 "Establish the FROM major", before:
after:
The example is now the floor itself (the chain's lowest accepted
--from, and the spelling every other example in the file already uses); the floor's value is stated where the reader decides--from; the below-floor case carries the same remedy the failure-mode row and the CLI's own refusal text give ("Upgrade to protocol 16 by another path first, then re-run"). "There is no penalty for lateness" is dropped as restating "the designed-for case". Nothing else in the file states a--frombelow 16:grep -rn -F -- '--from 10' skills/objectstack-upgrade/is now 0 hits (control:--from 1612 hits inSKILL.md), andreferences/examples-upgrade.mdandevals/protocol-major-upgrade.jsonnever carried the example.Token ratchet — paid in content, not wrapping
node scripts/check-skills-token-ratchet.mjs(tokens = ceil(utf8 bytes / 4); ceiling for this file 6193):ef1fcb26a2, the file as #22122 left it)3e842f9fd8)Whole package (the ten
skills/*/SKILL.md): 4407 → 4408 lines, 52575 → 52572 tokens; the ratchet's authored-bundle total 144050 → 144047 (shipped tree 154836 → 154833). Diff: +6 / −5 lines. Gate line at3e842f9fd8:✓ check-skills-token-ratchet: skills/objectstack-upgrade/SKILL.md is 6184 tokens (ceiling 6193; headroom 9).The paragraph grew by +94 bytes (197 → 291). That is paid by deleting two clauses the same file states beside them — no rule, failure-mode row or command among them, and no line re-wrapped:
mkdir -p .upgradein §0's "Make the work reviewable" block ("every artifact this skill produces lands here", −57 bytes) — the paragraph directly under the block opens "The.upgrade/directory is the deliverable's workspace" and lists the artifacts;spec-changes.jsonand the chain's--jsonoutput, which are two rows of that table.Net −12 bytes.
Scope held
packages/spec/**, nopackages/cli/**, nocontent/docs/**;references/examples-upgrade.mdandevals/protocol-major-upgrade.jsonuntouched (neither carries the example; the eval'smust_containisos migrate meta --from 16, which still holds). Frontmatter unchanged:check:skill-docsandcheck:skill-refsgreen ("Skill docs in sync", "9 generated files in sync").--from 16,^17and "The 16 → 17 crossing"; the frontmatter'scompatibilityline keeps the general statement ("the chain replays from the spec'sMIGRATION_SUPPORT_FLOOR"), and §2.1's reading printssupportFloorfrom the installed spec. When the floor moves, this sentence is one of the file's dated numbers, not the only one.Gates
Derived with
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackon this tree (24 families atef1fcb26a2and again at3e842f9fd8; identical to the PM's path-derived list). All 24 run, exit 0 each, recorded beside the printed command and reconciled with--ran("24 derived, 24 run, 0 NOT-MEASURED, 0 UNRUN", a derived zero).check:doc-formula-expressionsfirst exited 3 (prerequisite:@objectstack/formulaand@objectstack/lintnot built) and was re-run green after the prescribed build under the verify lock. Beyond the derived list, also green:check:skill-top-level-keys,check:skill-frame-freshness,check:skill-refs. NOT MEASURED:check:skill-examples(prerequisite: the client SDK dist is not built; outside the derived list, and this diff touches no SDK example).Acceptance notes
维护者速读(草稿)
改了什么:只改一份对外发布的技能文件
skills/objectstack-upgrade/SKILL.md的一个段落。原文以os migrate meta --from 10作为"晚几个大版本再升级也没关系"的示例,但迁移链的支持下限是 16(MIGRATION_SUPPORT_FLOOR = 16),--from 10会被 CLI 直接拒绝(MigrationFloorError,退出码 1)。现在示例改为链接受的--from 16,同一句话里说明下限(今天是 16),并告诉低于下限的项目先用旧路线升到 16 再跑链——与同一文件故障表里已有的那一行一致。为什么改:这份技能随每次
npx skills add整包进入客户项目的 agent 上下文;一句教人运行会被拒绝的命令的话,是发布面上的错误句子(NORTH-STAR「优先级」第 4 条)。CLI 的拒绝挡住了实际伤害,但文字不改就一直是错的。风险与代价(含回滚):纯文本改动,无代码、无 changeset、无生成物变化。token 棘轮:6187 → 6184(上限 6193),净减 12 字节,靠删除两处紧邻处已有陈述的重复子句支付(一处代码块尾注,一处收尾从句),未删任何规则、故障行或命令,未折行。回滚即 revert 本 PR 的一个提交。注意:下限值"16"写成了具体数字,与文件里其它写死的
--from 16、^17同样随下限移动而需要更新;frontmatter 与 §2.1 的读数保留了通用表述。席位意见:(留空,席位定稿)
你要做的:
skills/**为 Tier H 受管面:请以授权账号 APPROVE 一次,或亲手合入;本 PR 保持 draft,不由 agent 翻 ready。Generated by Claude Code