Skip to content

Commit f7188b5

Browse files
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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
'@objectstack/skills': patch
3+
---
4+
5+
Clause-②: no
6+
Metadata-protocol: none
7+
8+
objectui: the guides teach only what ships. `guides/project-setup.md`'s sample
9+
`package.json` no longer installs `@object-ui/plugin-ai` (retired; `18.2.0` was its
10+
last release), the AI row of `guides/page-builder.md`'s plugin catalog lists
11+
`plugin-chatbot` alone, and the README's package snapshot drops `plugin-ai` from the
12+
plugin list (18, not 19) and `vscode-extension` from the tooling line (the extension
13+
left the workspace). `evals/project-setup.json` case 1 (the full Vite + React setup)
14+
now fails an answer that installs the retired package.

‎skills/objectui/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ The published packages this skill covers. Nothing checks this list against the
5555
- **Parsing & runtime:** `@objectstack/sdui-parser`, `react-runtime`
5656
- **Integration:** `@object-ui/app-shell`, `providers`, `data-objectstack`
5757
- **Platform features:** `@object-ui/auth`, `permissions`, `i18n`, `mobile`, `collaboration`
58-
- **Plugins (19):** `plugin-{grid, list, detail, form, kanban, calendar, timeline, gantt, dashboard, report, charts, map, editor, markdown, view, tree, designer, ai, chatbot}`
59-
- **Tooling:** `@object-ui/cli`, `create-plugin`, `vscode-extension`
58+
- **Plugins (18):** `plugin-{grid, list, detail, form, kanban, calendar, timeline, gantt, dashboard, report, charts, map, editor, markdown, view, tree, designer, chatbot}`
59+
- **Tooling:** `@object-ui/cli`, `create-plugin`
6060

6161
## Reference
6262

‎skills/objectui/evals/project-setup.json‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
],
1717
"must_not_contain": [
1818
"create-react-app",
19-
"node_modules/@object-ui"
19+
"node_modules/@object-ui",
20+
"@object-ui/plugin-ai"
2021
]
2122
}
2223
},
@@ -40,7 +41,7 @@
4041
{
4142
"id": 3,
4243
"prompt": "How do I add the grid and kanban plugins to my existing ObjectUI project and make sure they're available in my schemas?",
43-
"expected_output": "Shows installing @object-ui/plugin-grid and @object-ui/plugin-kanban, the side-effect import at the app entry that registers each plugin's renderers in ComponentRegistry (without it SchemaRenderer resolves the node to 'Unknown component type'), and the schema type to use afterwards. On styling: the plugin packages publish no stylesheet of their own — only @object-ui/components and @object-ui/fields export a ./style.css — so there is no third sheet to import and nothing to point Tailwind at inside node_modules. Inside the ObjectUI workspace the app owns the Tailwind entry and adds one @source line per plugin package's src, the way apps/console/src/index.css does.",
44+
"expected_output": "Shows installing @object-ui/plugin-grid and @object-ui/plugin-kanban, the side-effect import at the app entry that registers each plugin's renderers in ComponentRegistry (without it SchemaRenderer resolves the node to 'Unknown component type'), and the schema type to use afterwards. On styling: the plugin packages publish no stylesheet of their own — only @object-ui/components and @object-ui/fields export a ./style.css — so there is no third sheet to import and nothing to point Tailwind at inside node_modules. Inside the ObjectUI workspace the app owns the Tailwind entry and adds one @source line per plugin package's src.",
4445
"files": [],
4546
"assertions": {
4647
"must_contain": [

‎skills/objectui/guides/page-builder.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ Pick plugins by domain — each registers its own `type` strings in the Componen
325325
| Visualization | `plugin-charts`, `plugin-map` |
326326
| Editors | `plugin-editor`, `plugin-markdown` |
327327
| Views & Design | `plugin-view`, `plugin-tree`, `plugin-designer` |
328-
| AI | `plugin-ai`, `plugin-chatbot` |
328+
| AI | `plugin-chatbot` |
329329

330330
For lazy loading, use `LazyPluginLoader` from `@object-ui/react` rather than top-level imports.
331331

‎skills/objectui/guides/project-setup.md‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ Add plugins as needed (full plugin catalog):
7272
"@object-ui/plugin-view": "latest",
7373
"@object-ui/plugin-tree": "latest",
7474
"@object-ui/plugin-designer": "latest",
75-
"@object-ui/plugin-ai": "latest",
7675
"@object-ui/plugin-chatbot": "latest"
7776
}
7877
```

0 commit comments

Comments
 (0)