Repository navigation
Commit f7188b5
docs(skills): objectui guides stop teaching the retired @object-ui/plugin-ai and vscode-extension; the project-setup eval refuses the retired package (#27470)
Fixes #27048
Clause-②: no
Metadata-protocol: none
## 维护者速读
- 改了什么:objectui 技能包的三处文档不再教已退役的 `@object-ui/plugin-ai`(示例
package.json、插件目录表、README 插件清单),README 工具行去掉已移出仓库的
`vscode-extension`;project-setup 评测新增一条拒收断言。
- 为什么改:AI 作者照抄 objectui 安装指南时,会装上一个已退役、不再发布新版本的包,或被引向一个已不存在的 VS Code
扩展;这是技能包该挡住的漂移,评测现在能给这种回答扣分。
- 风险与回滚:只改文档与评测数据、不动任何运行时代码;每个文件的 token 数都下降,无上限变更;回滚即 revert 本 PR。
- 先看:`skills/objectui/evals/project-setup.json`(新增
`must_not_contain`,并由同文件内删去的一句 `apps/console`
指引付账)、`skills/objectui/README.md`(插件数 19 改
18)、`skills/objectui/guides/page-builder.md`(AI 行只留 `plugin-chatbot`)。
- 两分钟验证:`node scripts/check-skills-token-ratchet.mjs`,预期见
`project-setup.md 2718 / 2727 (-9)`、`page-builder.md 3407 / 3411 (-4)`
且末行为绿勾。
- 需要你做的:作为 Tier H 技能面,席位复核通过后由维护者批准(APPROVED)落地。
## What changes
- `skills/objectui/guides/project-setup.md`: the sample `package.json`
no longer lists `"@object-ui/plugin-ai": "latest",`. The block stays
valid JSON: the line it sat in was a middle entry, and `plugin-chatbot`
stays last without a trailing comma.
- `skills/objectui/guides/page-builder.md`: the AI row of the plugin
catalog is `| AI | plugin-chatbot |`. `ui/packages/plugin-chatbot` is in
the workspace and published (`@object-ui/plugin-chatbot` 18.2.0, not
private), so the row stays and no successor is invented.
- `skills/objectui/README.md`: the package snapshot's plugin list drops
`ai` (18 plugins, not 19). That matches the 18 `ui/packages/plugin-*`
directories on `origin/main` 968925c name for name. The tooling line
drops `vscode-extension`. PR #27275 removed
`ui/packages/vscode-extension` and added no package (58 files: 26
removed, 32 modified, 0 added), so nothing replaces it.
- `skills/objectui/evals/project-setup.json`: case 1 (the full Vite +
React setup, whose expected output names `package.json` dependencies)
gains `must_not_contain: "@object-ui/plugin-ai"`. That case's prompt and
expected output do not spell the refused string. The added bytes are
paid inside this file: case 3's rubric drops the trailing clause ", the
way apps/console/src/index.css does". That is a workspace-only pointer,
and `skills/objectui/rules/styling.md` L306 still teaches it.
- `.changeset/27048-objectui-guides-drop-plugin-ai.md`:
`'@objectstack/skills': patch`, which carries both declaration lines.
The three retired AI node types (`ai-form-assist`, `ai-recommendations`,
`nl-query`) are refused by name in
`ui/packages/types/src/zod/ai.zod.ts`. `git grep` finds 0 hits for them
under `skills/` before and after this change, so no guide teaches them.
## Tests
Token budget (the ratchet's `ceil(bytes / 4)`, per file; ceilings
unchanged):
| File | Tokens before / after (ceiling) | Lines before / after |
|:---|:---|:---|
| `skills/objectui/guides/project-setup.md` | 2727 / 2718 (2727) | 350 /
349 |
| `skills/objectui/guides/page-builder.md` | 3411 / 3407 (3411) | 349 /
349 |
| `skills/objectui/README.md` | 735 / 729 (735) | 64 / 64 |
| `skills/objectui/evals/project-setup.json` | 786 / 784 (786) | 58 / 59
|
| `skills/objectui/evals/page-builder.json` | 560 / 560 (untouched: no
case covers the plugin table) | 56 / 56 |
- The eval string costs 34 bytes (comma, newline, 10-space indent, the
22-byte quoted string). Case 3's dropped clause frees 41 bytes, so the
file nets -7 bytes and -2 tokens.
- Whole-package reading: the sum of every `SKILL.md` under `skills/` is
4614 lines before and 4614 after (none touched). The `skills/objectui`
bundle is 202387 bytes before and 202307 after, and 5427 lines before
and after.
- `ui/scripts/check-skill-eval-tokens.mjs` exits 0. It only checks the
shape of a `must_not_contain` entry and never scores it against the
guides, so it neither reads nor refuses the new string.
- `check:skill-identifier-liveness` exits 0 before (`origin/main`
968925c) and after. Its citation list holds 0 `plugin-ai` sites, so the
gate could not see this drift in either direction.
## Acceptance notes
- The README plugin-list line (`Plugins (19)` to `Plugins (18)`,
dropping `ai`) is a fourth stale line beyond the card's three. It is in
the claimed file and is the card's exact subject (the README teaching
`plugin-ai`), so it rides here.
- `check:dual-build-cjs-loads` exits 3 (PREREQUISITE NOT MET: 34 unbuilt
packages) and is NOT MEASURED locally. This diff touches no built
package, so a whole-workspace build was not worth it. CI's Lint and Repo
Gates run it on a built tree.
## Verification
Head `2bcd9573` (merge of `origin/main` 968925c at `c07ee4c8`). The
derived families were run from `node scripts/pm/dispatch-gates.mjs
--commands --repo objectstack-ai/objectstack` (45 commands).
<details><summary>Derived gates: 44 exit 0, 1 exit 3</summary>
- 44 of 45 exit 0. They include `check-skills-token-ratchet` (84
authored bundle files within their ceilings),
`check:skill-compatibility`, `check:skill-identifier-liveness`,
`check:nul-bytes`, `check-adr-0087-registration --base origin/main`,
`check-changeset-no-major`, `check-empty-changeset`,
`check:published-files`, `check:doc-authoring` and
`check:skill-frame-sync`.
- The changeset gates were re-run on `2bcd9573` after the quote-style
commit, and all exit 0.
- `pnpm --dir ui exec vitest run --maxWorkers=2 scripts/` ran under the
verify lock: Test Files 169 passed, 2 skipped (171); Tests 4901 passed,
2 skipped (4903); `VERDICT command-exit 0`.
- `check:dual-build-cjs-loads` exits 3, PREREQUISITE NOT MET (see
Acceptance notes).
- `dispatch-gates --ran`, with each exit code recorded: 45 derived
families accounted for, 44 run and 1 NOT-MEASURED (derived from the
recorded exit 3).
</details>
---
_Generated by [Claude
Code](https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg)_
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 501bfc6 commit f7188b5
5 files changed
Lines changed: 20 additions & 6 deletions
File tree
- .changeset
- skills/objectui
- evals
- guides
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
| 58 | + | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
| |||
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
43 | | - | |
| 44 | + | |
44 | 45 | | |
45 | 46 | | |
46 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
328 | | - | |
| 328 | + | |
329 | 329 | | |
330 | 330 | | |
331 | 331 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
76 | 75 | | |
77 | 76 | | |
78 | 77 | | |
| |||
0 commit comments