Repository navigation
skills(ui-merge): move the objectui skill bundle into the root skills/ catalog (decision C) - #26097
Merged
Merged
Conversation
…patch 19 re-applied on main) Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
…e objectui bundle Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
…rkspace Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
…oved bundle Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XB8hLKWX18hti3qKrQAJfm Co-authored-by: Claude <noreply@anthropic.com>
Contributor
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
os-zhuang
approved these changes
Oct 26, 2026
This was referenced Oct 26, 2026
This was referenced Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Tesla · project thread
Fixes #25832
Part of #25677 (decision C aftercare).
Clause-②: no
Metadata-protocol: none
Tier H (
skills/**). This PR stays a draft until an authorized GOVERNED_APPROVERS review. It also carries two maintainer-only ratchet entries, listed under 维护者速读 below.维护者速读(草稿)
改了什么:objectui 的技能包从
ui/skills/objectui搬进仓根skills/objectui,去掉metadata.internal: true,@objectstack/skills从此带上objectui这个技能(共 11 个)。切换 PR 里因为撞门禁被回退的 J 系列 19 号补丁在main上重新落地,读这个包的 ui 测试和脚本跟着改路径。为什么改:你裁的 C 是一个技能目录服务两个产品。切换时用
internal: true把包藏起来,现在从合并后的仓装技能的 agent 拿不到任何 objectui 技能。风险与代价(含回滚):
scripts/check-skills-token-ratchet.mjs新增 27 行CEILINGS,每行按落地计数定价、零余量,发布目录多出 50,614 token;不抬任何已有的上限。scripts/role-word-baseline.json新增 1 行skills/objectui/guides/auth-permissions.md: 13。「role」保留词 38 处里改写 24 处,1 处放进 better-auth 线格式围栏,剩下 13 处是@object-ui/permissions真实 API 的roles键和 D3 改名的历史说明。ui/skills并重新隐藏。席位意见:
你要做的:批准本 PR,就等于同意上面两项入账(27 行定价、角色词基线 1 行 13 处)。如果不同意其中一项,在评论里说明,我按你的意见改。
What changed
main).git mv ui/skills/objectui skills/objectui(27 renames).ui/scripts/skill-bundle-root.mjsdecides where the bundle lives (the ui root in fixtures, else the monorepo root above it), and the ui gates (check-skills-paths,check-skill-examples,check-skill-eval-tokens,check-doc-json-fences,check-shell-escape-residue), their tests,markdown-test-inputs,doc-version-claims,layered-read-declared-path-4016and four package tests read it through the helper.@objectstack/spec'scheck-skill-examplesleavesskills/objectuito the ui gate, which judges it against the built@object-ui/*types.scripts/check-skill-identifier-liveness.mjsindexesui/packages, where the two identifiers the bundle cites are implemented. The one rejected hunk (doc-version-claims.test.tsimport) was re-applied by hand, becausemainhad gained aroot-ciimport there since the patch was cut.skills/objectui/SKILL.md.metadata.internal: trueis removed.compatibility:now readsRequires @objectstack/spec 18.x; …, andmetadata.versionis stamped bycheck-skill-compatibility-version.mjs --fix(2.0→18.1.0).data.status,user.emailor a position instead of arolefield. The testing guide's evaluator example readsuser.position. Prose says "positions", "grant key" or "permission checks". The@object-ui/permissionsexample renames its local array todefinitions(therolesprop and keys are the package's real API and stay).UserMenu's comment no longer claims it shows a role, because the component renders none. The better-auth display fields move into a fenced block markedos:vendor-wire better-auth.ui/packages/permissions/src/__tests__/skill-guide-permission-config.test.tsxpins the guide example verbatim, so it carries the same edits.visibleOn.guides/schema-expressions.md's "Combined conditions" example usesvisibleWhen, the canonical key in@object-ui/typesBaseSchema(visibleOnthere is@deprecated ADR-0089 — use visibleWhen).plugin-development.md. The color input passesvalue ?? ''instead of a hard-coded black hex fallback.check:pm-skill-id-lintread the all-decimal hex as an issue id. This keeps the epic PM's ruling on patch 19, option (a).CEILINGSrows, each pinned at its landed count with zero headroom, under a comment block that cites decision C. No existing row moves."skills/objectui/guides/auth-permissions.md": 13. The--updatediff touches no other row.skills/README.mdpoints to./objectui/SKILL.mdinstead of the objectui repository.ui/skills-lock.jsonpoints to../skills/objectui.@objectstack/skillspatch (.changeset/25832-objectui-skill-in-catalog.md).The five gates on the card, before → after
"Move" is the raw move commit
0c57048f(patch 19 plus the flag removal, nothing else). "Head" is this PR's head.mainbbf706140c57048fnode scripts/check-skills-token-ratchet.mjsskills/)… --self-testpnpm check:role-word@objectstack/specrepo testsrc/ui/visibility-alias-keys-retirement.test.tsskills/objectui/guides/schema-expressions.md authors "visibleOn")node scripts/check-ci-filter-parity.mjs(+--self-test)skills/**is a@objectstack/skills#buildinput covered bycoreonmainpnpm --filter create-objectstack test(template-consistency "skills catalog boundary")internal: true)The visibility row's "before" was measured on head with only
schema-expressions.mdrestored from0c57048f. The restore leg was checked withgit diff HEAD(empty) and blob9b97e3c4a6.Role-word split: 38 → 24 rewritten, 1 fenced (
os:vendor-wire better-auth), 13 baselined. The 13 areauth-permissions.md's@object-ui/permissionsAPI (ObjectPermissionConfig.roles, therolesprop and keys, about 9 uses) and the paragraph recording the D3roles→positionsretirement (4 uses).skills/**readings (lines are the measure; token counts from the ratchet's convention)auth-permissions.md409 → 416 (the vendor-wire fence).SKILL.md143 → 142 (theinternalline). The other 25 files are unchanged in length. Raw bytes/4 50582 → 50619.SKILL.md,guides/architecture.md,guides/auth-permissions.md,guides/page-builder.md,guides/plugin-development.md,guides/schema-expressions.md,guides/testing.mdandrules/protocol.md. All except the two above keep their line count.skills/README.mdstays at 133 → 133.SKILL.md).@objectstack/skillsbuild copies 92 files across 11 skills.Verification (head 12e779c)
skillsCLI:npx skills@1.7.2 add ./skills --list→ "Found 11 skills",objectuilisted.pnpm --filter @objectstack/skills build→ 92 files across 11 skills, read back byte-identical.check:skill-compatibility,check:skill-identifier-liveness,check:skill-frame-sync,check:skill-top-level-keys,check:pm-skill-id-lint0.@objectstack/speccheck:skill-refs,check:skill-docs,check:skill-examples0 (after@objectstack/specand theclient-react/clientclosures were built).ui/scripts):check-skills-paths,check-skill-examples(after the scoped build its--build-filternames),check-skill-eval-tokens,check-doc-json-fences,check-shell-escape-residueall 0.ui/scripts/__tests__/180 files passed, 2 skipped / 5273 tests passed. The 14 package test files that read the bundle: 159/159.Derived gates (head
12e779cd):node scripts/pm/dispatch-gates.mjs --commandsderives 107 families (100 commands at67d25683plus 7 changeset-family commands after the changeset commit). 106 exit 0.--ranreconciliation: 107 of 107 accounted, 0 unrun.check-plugin-teardown-shape --self-testfirst exited 3 because its pinned commit621a4876was missing from the shallow clone. Aftergit fetch origin 621a4876… --depth=1it exits 0 (48 cases). NOT MEASURED:pnpm check:dual-build-cjs-loads, exit 3 (prerequisite: every published package needs adist/, so it needs a full workspace build). The diff changes no package's build output except@objectstack/skills' copied catalog, so it is left to CI's Lint & Repo Gates.Push-environment battery (head
12e779cd):GITHUB_ACTIONS=true GITHUB_EVENT_NAME=push node scripts/pm/check-dispatch-gates.mjs: 2182 cases pass (1901 fast + 265 slow = 2166 partitioned, plus the census), 0 failed, exit 0.Acceptance notes
objectui.packages/spec/scripts/build-skill-docs.tsadmits onlyobjectstack-*directories, so theskills/README.mdindex table and the skills-reference page list 10 skills. The CLI, the package and the README's hand-written routing line all see 11. Admitting a non-objectstack-skill there is a generator change, outside this card. Carrier: the epic PM.skills/objectui/**-only PR does not trigger the ui lanes. The ci.ymlfilterjob'suiglob isui/**, so the ui skill gates ported into Lint UI no longer see the bundle's own edits. This is bill item 35. Its owner is the 4b ci.yml work (tooling(ui-merge): governance in-repo — liveness evidence and spec tests stop citing objectui by commit, one sdui-parser, AGENTS.md / pm scripts dropobjectui#,ui/AGENTS.mdnests, 18 governance workflows merged or retired (parent #25677, 4b/6) #25712, Tier H). This PR does not touch.github/workflows/**.ui/skills/**register row is now empty.GOVERNED_SURFACES, the CODEOWNERS/ui/skills/line and AGENTS.md Prime Directive feat: Comprehensive CRM example demonstrating all ObjectStack protocol features #14 still nameui/skills/**. The rootskills/**row governs the bundle now. Dropping the row is an AGENTS.md / pm-dispatch SKILL.md edit at zero line headroom, so it is left to the 4b governance rewrite.@object-ui/permissionsstill spells its grant keysroles. That is objectui's own API, older than ADR-0090 D3. Renaming it is a code change, not a guide change, and the 13 baselined uses go away with it.Generated by Claude Code