Skip to content

docs(skills): objectui guides stop teaching the retired @object-ui/plugin-ai and vscode-extension; the project-setup eval refuses the retired package - #27470

Merged
os-zhuang merged 3 commits into
mainfrom
claude/issue-27048-objectui-guides-drop-plugin-ai
Oct 29, 2026
Merged

os-zhuang merged 3 commits into
mainfrom
claude/issue-27048-objectui-guides-drop-plugin-ai

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

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 chore(ui): remove the vscode-extension package from the monorepo #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).

Derived gates: 44 exit 0, 1 exit 3
  • 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).

Generated by Claude Code

…ugin-ai and vscode-extension

The sample package.json in guides/project-setup.md no longer installs
@object-ui/plugin-ai (retired; 18.2.0 was its last release). The AI row of the
plugin catalog in guides/page-builder.md lists plugin-chatbot alone. The README's
package snapshot drops `ai` from the plugin list (18, not 19) and
`vscode-extension` from the tooling line, the extension having left the
workspace. evals/project-setup.json case 1 refuses an answer that installs the
retired package; its own file pays the added bytes by dropping the workspace-only
apps/console pointer from case 3's rubric, which rules/styling.md still teaches.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg
…e house single-quote form

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation tooling labels Oct 29, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg

Contract-review-handoff: triage — CONTRACT_REVIEW_TIER unavailable (HTTP 429 rate_limit: the account's ceiling-tier quota is exhausted, 2026-10-29T07:37Z) · head 2bcd957

The dispatching seat holds no claim and no record on this head and will not review it below tier (contract-review.md 〈复核归属与资格〉: 「派发席达档调用被配额拒(HTTP 429)⇒ ⛔ 不降档审;PR 落交接行、留等复核标记,交分诊席」). The maintainer's words this session: 「没有fable了,用 opus 完成开发,然后等分诊契约复审」. needs:contract-review hangs on this PR in the same stroke.

For the reviewer (inputs, not conclusions): the card is #27048 (Tier H skills/**, the Skills-docs: leg owed by PR #27042's retirement of @object-ui/plugin-ai; the README's vscode-extension line rides it per devx seat 2's note 6471473734, PR #27275 having removed that package); the order's constraints were deletions within each file's token ceiling, the eval's new must_not_contain paid inside its own file, no ceiling raise. The dev report is 6490825595 on the card (it names one line beyond the order's three: the README plugin list's ai and its count 19 → 18). After a PASS the seat writes its ## 席位核对 ACCEPT on this head, then the hand-off to GOVERNED_APPROVERS (pr_request_reviewers + needs-user-decision on the PR); nobody is asked before that.

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

Contract-review-claim: session_01AavokzJ5DndAwitDXvKy4U · head 2bcd95735e1a295adb1a2156b8567d378bf396e4 · 2026-10-29T07:53Z

Triage seat, taking the hand-off and needs:contract-review on this head (#27062 (a)). The review runs at CONTRACT_REVIEW_TIER. If the lane claims or posts a record on this head first, triage withdraws.


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 2bcd95735e1a295adb1a2156b8567d378bf396e4
Local-runs: none
Scope: skills/objectui/README.md, skills/objectui/evals/project-setup.json, skills/objectui/guides/page-builder.md, skills/objectui/guides/project-setup.md + ui/packages/ (the workspace directory list on origin/main), ui/packages/plugin-chatbot/package.json, ui/packages/plugin-chatbot/src (the ComponentRegistry.register('chatbot' site), ui/packages/cli/package.json, ui/packages/create-plugin/package.json, ui/packages/plugin-*/package.json (all 18), ui/packages/types/src/zod/ai.zod.ts, skills/objectui/rules/styling.md, ui/scripts/check-skill-eval-tokens.mjs, scripts/check-skills-token-ratchet.mjs, scripts/check-skill-identifier-liveness.mjs, packages/skills/package.json, packages/skills/scripts/sync-catalog.mjs, .changeset/27048-objectui-guides-drop-plugin-ai.md (read for ②; the lane seat's ACCEPT at TIER_DEFAULT covers it as a remainder)

Inputs read in full: card #27048 body and its 7 comments (triage 6460232529, devx note 6471473734, unblock 6487386573, claim 6488827763 and its amendment, dev report 6490825595), PR #27470 body, file list (5 paths; git diff --name-only 968925c8..2bcd9573 returns the same 5), the 83-line net diff, the 61 check-runs on the head, and the rulings the card cites: 6439038287 (PR #26365, letter A, "the two skills/objectui/guides/* mentions stay in their own governed follow-up") and 6471432493 (PR #27275's dev report, whose out-of-scope finding is the README vscode-extension line). The dispatch order and the dispatching seat's hand-off comment were read as inputs, not conclusions.

Check-runs on 2bcd9573: 61, all completed; 0 failure, 0 pending. Green: Lint & Repo Gates, Check Changeset (twice), Governed Surface Queue Guard, PR-body guards, Type Check (source, consumer, workspace, debt ledger), Lint (ESLint, docs & code guards, repo & tooling gates, PM dispatch-gates, CI/release/engine gates, three scoped lints), Test Core (8 shards), Test UI (16 shards), Build Core, Build UI Deps, Build & E2E UI, Live E2E UI, Dogfood Regression Gate, Check PR Size, Auto Label, filter. Skipped (opt-in or not triggered): Packed-tarball smoke, 18.x upgrade harness, Dogfood Verify CLI, UI Published Artifacts, Temporal Conformance, Build Docs, the Dogfood shard matrix, the schedule gate. These conclusions are the gate verdicts; nothing was run locally.

① Derived judgments

  • Accept set, skills/objectui/guides/project-setup.md: the sample package.json under "Add plugins as needed (full plugin catalog)" lists 18 @object-ui/plugin-* entries and no plugin-ai. Judged against origin/main ui/packages/: exactly 18 plugin-* directories, name for name (calendar, charts, chatbot, dashboard, designer, detail, editor, form, gantt, grid, kanban, list, map, markdown, report, timeline, tree, view); ui/packages/plugin-ai is absent. The block parses as JSON (plugin-chatbot is last, no trailing comma). Right.
  • Accept set, skills/objectui/guides/page-builder.md: the AI row of the "Full plugin catalog" table is plugin-chatbot alone. The table's premise ("each registers its own type strings in the ComponentRegistry on import") holds for it: ui/packages/plugin-chatbot/src carries ComponentRegistry.register('chatbot', ...); @object-ui/plugin-chatbot is 18.2.0 and not private. The card's "say so in the row" is met by the row naming only what ships. Right.
  • Accept set, skills/objectui/README.md: "Plugins (18)" with ai dropped matches the 18 directories above; every one of the 18 is private: false at 18.2.0, so the "published packages" framing holds for each name. "Tooling: @object-ui/cli, create-plugin": both exist on origin/main and are published (18.2.0, not private); ui/packages/vscode-extension is absent (PR chore(ui): remove the vscode-extension package from the monorepo #27275, ruling B). Right. The count change 19 → 18 is a derived edit beyond the card's three lines; it is in the claimed file and is the card's subject (the README teaching plugin-ai), so riding here is right.
  • Accept set, skills/objectui/evals/project-setup.json: case 1 (full Vite + React setup; its expected_output names package.json dependencies) gains must_not_contain: "@object-ui/plugin-ai". Judged against the gate that reads it, ui/scripts/check-skill-eval-tokens.mjs: must_not_contain is shape-checked (non-empty string) and deliberately never scored against the guides (header section "must_not_contain is NOT validated against the guides", L125-133; code L408-411), so the entry is well-formed and cannot red that gate. Against the skill it grades: git grep plugin-ai prr-27470 -- skills/ returns only this eval line, so no guide gives a correct answer any cause to spell the refused string. The string is not a substring of any shipping plugin name. Right. Case 3's rubric drops ", the way apps/console/src/index.css does": a prose clause with no assertion behind it (case 3's must_contain and must_not_contain are unchanged), and the pointer is still taught at skills/objectui/rules/styling.md L304-306 ("apps/console/src/index.css is the maintained reference for that case"), so the bundle loses no teaching. Right as the in-file payment the ratchet convention asks for.
  • Public surface: skills/** ships in @objectstack/skills (packages/skills/scripts/sync-catalog.mjs copies skills/** into dist/skills/), so all four files are published prose. No code, schema, type or runtime surface changes. The three retired node types (ai-form-assist, ai-recommendations, nl-query, refused by name in ui/packages/types/src/zod/ai.zod.ts L58-65) have 0 hits under skills/ on the head, so the skill teaches none of them, as the card asks. Right.
  • Token ratchet: read off the tree, not run. Ceilings in scripts/check-skills-token-ratchet.mjs L1171/L1180/L1190/L1192 are 735 / 786 / 3411 / 2727. Head byte counts: README 2915 → 729; evals/project-setup.json 3135 → 784; page-builder.md 13628 → 3407; project-setup.md 10872 → 2718 (ceil(bytes/4)). Every file shrinks, no ceiling touched. Lint & Repo Gates (which runs the ratchet) is green. The PR body's table is right.

② Semver level

.changeset/27048-objectui-guides-drop-plugin-ai.md: '@objectstack/skills': patch, with Clause-②: no and Metadata-protocol: none. The diff publishes only prose inside @objectstack/skills (18.2.0, public, dist synced from skills/**); no API, schema or metadata key is added, removed or narrowed by this PR. The retirement of @object-ui/plugin-ai was PR #27042's narrowing (Clause-②: no (narrowing), Metadata-protocol: narrowed); this card is its Skills-docs: leg, so Metadata-protocol: none here is correct and patch is the right level. Check Changeset and check-adr-0087-registration (inside Lint & Repo Gates) are green on the head. Clause-②: no — matches the PR body, the changeset and the diff.

③ Boundary flags

Dev report 6490825595: open_questions: []. Each flag it does raise, answered:

  • Deviation 1 (fourth README line, Plugins (19) → (18) dropping ai): verified right in ①; inside the claimed file surface of claim 6488827763; no escalation.
  • Deviation 2 (changeset frontmatter re-spelled to single quotes in a separate commit 2bcd9573, no amend): cosmetic; Check Changeset green; no escalation.
  • Deviation 3 (--maxWorkers=2 on the derived vitest spelling): a local resource choice; the head's Test UI shards are the gate verdict; no escalation.
  • Deviation 4 (commit trailers are the repo's model-free Co-authored-by: Claude + Claude-Session: pair, not the harness's model-named trailer): matches AGENTS.md L444-446, which names that pair and exempts the harness trailer; read off git log 968925c8..prr-27470; no escalation.
  • Deviation 5 (seat signature on line 1 before os-dev-report): a comment-format conflict between os-dev.md and post-stamped.mjs; does not touch the tree; noted for the lane, not this record.
  • PR body "Acceptance notes": check:dual-build-cjs-loads NOT MEASURED locally (exit 3, unbuilt packages). The diff touches no built package; Lint & Repo Gates ran it on the built tree and is green. Closed.
  • Out-of-scope finding ("check:skill-identifier-liveness has no citation for @object-ui/* package names in skills/objectui"): confirmed by reading scripts/check-skill-identifier-liveness.mjs on origin/main (0 occurrences of @object-ui or plugin-), and the README's own disclaimer ("Nothing checks this list against the packages/ tree") already says so. A real gate-reach gap, not a defect in this PR; the dev chose "noted, not filed". Escalated here as a note for the skills lane's census, not as a condition on this verdict.
  • Dispatch-tier flag (claim amendment: dev ran on opus after the mandated tier was exhausted; contract review handed to triage at CONTRACT_REVIEW_TIER): this record is that review. The hand-off chain is intact (6490825595 → PR hand-off 07:37Z → triage claim 07:53Z).

④ Design judgment

  • skills/objectui/guides/project-setup.md against the card's eval prompt (case 1: "start a new project using ObjectUI with Vite and React ... full setup") and the workspace on main: an author copying the sample package.json now installs 18 plugins that all exist and are all published; the retired package is gone from the only place this guide named it. Tried to break it: looked for a second plugin-ai mention, a count, or a prose reference elsewhere in the guide or bundle — none (0 hits). The code block stays valid JSON. Holds. No finding.
  • skills/objectui/guides/page-builder.md against the catalog's own premise and the tree: every plugin named in the table is a workspace directory that registers type strings; plugin-chatbot registers chatbot. Tried to break it: does plugin-chatbot depend on plugin-ai (so the row would point at something that no longer builds)? Its dependencies list @object-ui/{components,core,i18n,react,types} and @objectstack/spec; no plugin-ai. Does the guide elsewhere teach the retired node types? 0 hits. Alternative the card allows ("or nothing") was not needed since a shipping AI plugin exists. Holds. No finding.
  • skills/objectui/README.md against the tree: all 18 plugin names, cli and create-plugin resolve to published, non-private packages at 18.2.0; vscode-extension and plugin-ai are absent from ui/packages/. The line is a self-declared snapshot, and after this change it is an accurate one. Holds. No finding.
  • skills/objectui/evals/project-setup.json against the spec it grades and the gate that reads it: the new refusal sits in the one case whose rubric names package.json dependencies, so a grader has a reason to look for it there. A correct answer that follows the bundle cannot spell @object-ui/plugin-ai (no guide teaches it or its retirement), so the polarity trap the eval-token gate's header warns about (a bare word failing an answer that names the rule while following it) does not apply. The rubric trim in case 3 removes no assertion and no teaching (styling.md L306 keeps the reference). Tried to break it: must_not_contain is scored by substring in the lane's own eval convention; @object-ui/plugin-ai is a prefix of no shipping package name, so no false red. Holds. No finding.

No must-fix. No should-fix. One note (not a finding on this diff): the README snapshot and the plugin catalog now agree with the tree by hand, and no gate will tell the lane when they next drift; the dev's out-of-scope reading is the right one to carry into the lane's census.

Implemented-by: claude/issue-27048-objectui-guides-drop-plugin-ai
Reviewed-by: session_01AavokzJ5DndAwitDXvKy4U

VERDICT: PASS


Generated by Claude Code

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

domain:skills#2 · os-justin · session_01QSeKYmhU5KEj1nukYhp1Tg

维护者速读

  • 改了什么:objectui 的两份 skill 指南删掉已退役的 @object-ui/plugin-ai(项目搭建示例 package.json 删一行;页面构建插件表的 AI 行只剩 plugin-chatbot);README 的工具行删掉已移出工作区的 vscode-extension,插件清单删 ai、计数 19 → 18;项目搭建 eval 的第 1 条加一条拒收 @object-ui/plugin-ai。
  • 为什么改:AI 作者先读 skills。指南还在教装一个已退役的包,照抄就会装到旧版残包;这是 PR refactor(ui)!: retire @object-ui/plugin-ai and its three node types #27042 退役 plugin-ai 时欠下的 Skills-docs: 后续(refactor(ui)!: retire @object-ui/plugin-ai and its three node types #26365 裁决把这两处留给本卡),README 那行随 devx 席 2 的提示(6471473734)一并带上。
  • 风险与回滚:只改 skills/** 四个文件的散文与一条 eval 断言,每个文件 token 数都变小,无天花板变动;@objectstack/skills patch changeset。回滚 = revert 本 PR。
  • 先看:skills/objectui/README.md L58–59(插件清单与工具行),skills/objectui/evals/project-setup.json 第 1 条的 must_not_contain。
  • 两分钟验证:git grep -n "plugin-ai\|vscode-extension" -- skills/ 只剩 eval 那一条拒收;ls ui/packages | grep -c '^plugin-' = 18,与 README 计数一致。
  • 需要你做的:批准本 PR(Tier H,skills/**)。契约复核 PASS 在案:分诊记录 6491296465,Head-sha 2bcd95735e1a295adb1a2156b8567d378bf396e4;批准后席位按您的落地授权 ready → 入队。
  • 席位意见:ACCEPT。开发因 fable 额度用尽改在 opus 上完成(配额豁免,认领补正 6490279440),契约复核按规则交分诊在 CONTRACT_REVIEW_TIER 达档完成,无 must-fix、无 should-fix。

席位核对

  1. 形态:5 个文件 +20/−6(26 ≤ 3000);commit b7f9ebdf(首个 dev,429 中断前)+ merge c07ee4c8 + 2bcd9573(changeset 引号);draft,作者 objectstack-fleet[bot](经中继),assignees []、requested_reviewers [] —— 交棒之前无人被请;mergeable_state: clean。
  2. 前提实测:PR refactor(ui)!: retire @object-ui/plugin-ai and its three node types #27042 已合入(c59b1bfa),ui/packages/plugin-ai 不存在;PR chore(ui): remove the vscode-extension package from the monorepo #27275 已合入,ui/packages/vscode-extension 不存在;复核记录逐条核了 18 个 plugin-* 目录、plugin-chatbot 在 ComponentRegistry 注册 chatbot 且已发布;三个已退役 AI 节点类型在 skills/ 下 0 命中。
  3. 门禁 check-runs(head 2bcd957):全部完成、0 失败;check-expected-skips.mjs --pr 27470(roster 取自 origin/main)→ exit 0,12 个 skip 皆在名册。
  4. 接受的偏差:README 第四处陈旧行(插件清单 ai 与计数)在认领文件面内、正是本卡主题;case 3 删去一处无断言支撑的工作区指针(skills/objectui/rules/styling.md L304–306 仍教),作为同文件内的 token 付账;changeset 引号改单引号为独立 commit;os-dev 报告首行签名与 os-dev.md 的格式冲突仅关报告评论,不触树。
  5. 范围外去向 + Skills-docs::check:skill-identifier-liveness 不读 @object-ui/* 包名(dev 与复核均记为门禁覆盖面读数,非三类缺陷)— Acceptance notes,不立卡(「新增门禁默认否」)。Skills-docs: updated here(本 PR 即 Skills-docs: 腿)。
  6. 落地条款:Tier H(check-governed-merges --pr 27470:skills/**,人工合并即审核记录);契约复核 PASS 6491296465 钉现 head;本笔交棒 = 中继 pr_request_reviewers 请 os-zhuang、hotlong(作者非审批人,请全员)+ PR 挂 needs-user-decision、摘 needs:contract-review;获授权批准后席位 ready → 入队;⛔ 席位不批准、不合并。

ACCEPT · head 2bcd95735e1a295adb1a2156b8567d378bf396e4 · 2026-10-29T08:03Z

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

Development

Successfully merging this pull request may close these issues.

skills/objectui guides still teach @object-ui/plugin-ai, a package retired by #25921 (PR #27042)

2 participants