Skip to content

Skills optimization flight — skills/objectui: RESTRUCTURE (≈ −21,600 tok of 64,022, −34%) — ~19% of the package is addressed at a contributor to this repo (console-development.md, no-touch-zones.md, half of architecture.md), one rule stated up to four times, 11 vestigial guide frontmatters, and three evals that fail correct answers #7251

Description

@os-litant

Member card of the skills catalog optimization program objectstack-ai/objectstack#14292 (maintainer mandate 2026-09-02, verbatim: 「审核所有的 skills,进行全面的优化。」). Filed by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1). Read-only audit at objectui origin/main 67dadd6. Full findings table = audit record: the dev posts audit/objectui/findings.md (seat scratchpad) verbatim as the first comment at claim time. Published skills/** is a governed surface in this repo (maintainer ruling 批 #7, ui#6866): .md content ⇒ maintainer review, draft PR, human merge.

Audit summary

29 files, 64,022 tokens (guides 45,065 · rules 8,602 · SKILL.md 2,272 · README.md 1,113 · evals 6,079); largest file guides/console-development.md 7,600 tok (11.9%). Enforcement here: exactly one skills gate, check:skills-paths (paths in prose code spans exist on disk — green, 92/93), and nothing else: no token ratchet, no os:check fence gate (grep -rc "os:check" skills/objectui/ = 0), doc-link/component-type/snippet gates all exclude skills/**. Real usage (437 schema-catalog JSONs + apps + examples), true authoring frequencies: text 702, flex 248, stack 153, button 126, card 93, box 84, form 81 … against 230 registered types the package names ~98. Every @object-ui/* import in a TS fence resolves at 67dadd6 (@object-ui/mobile exists). Verdict RESTRUCTURE: ~12,000 tok addressed at a contributor to THIS repo (customer installs have no apps/console/, no packages/components/src/ui/**, no pnpm-workspace.yaml); ~8% in-package duplication; ~5% restating objectstack anchors; 11 vestigial standalone-skill frontmatters; the router (the file's only decision-changing construct) buried under 90 lines of preamble.

Top findings

# id · span proposal Δtok
1 OUI-B-01 · guides/console-development.md:1-510 — addressed at a maintainer of this repo MOVE-TO repo-internal .claude/skills/ (separate commit) −7,600
2 OUI-I-02 · stylesheets ×4 (styling.md:260-316 + page-builder.md:252-304 + project-setup.md:124-164 + SKILL.md:139-140), expression table ×3, data-table trap ×3, columns/2xl ×3 MERGE-INTO the rules/* anchor + pointers −3,850
3 OUI-D-01 · guides/page-builder.md:356-458 — 1 plugin of 19 takes 33% of the guide MOVE-TO packages/plugin-gantt/README.md (separate commit), keep a 10-line minimal −2,075
4 OUI-I-03 · guides/*.md:1-4 ×11 + :8 openers ×12 — vestigial frontmatter no runtime reads DELETE −1,773
5 OUI-B-03 · guides/architecture.md:14-90, 171-189 — monorepo package placement REWRITE-AS-CONSTRUCT, keep :84-89 + :91-126 −1,374
6 OUI-C-01 · app-composition.md:13-110 vs objectstack-ui :857-893, 634-648 — verbatim duplicate DELETE + pointer to objectstack-ui; keep the route table −1,314
7 OUI-C-03 · schema-expressions.md:304-401 — CEL list-view tier owned by objectstack-formula (:309-313 says so) DELETE + pointer −1,139
8 OUI-B-02 · rules/no-touch-zones.md:1-136 + SKILL.md:89-93 — forbids editing a path no customer has MOVE-TO repo-internal (separate commit) −1,030
9 OUI-B-04 · project-setup.md:252-339, 437-444 — workspace/Turbo/vitest guard/vercel DELETE −838
10 OUI-D-03 · console-development.md:117-134 — deleted-symbols table DELETE (inside #1) −741
11 OUI-B-07 · page-builder.md:6-39, 502-530 — preamble + restatement of SKILL.md:131-151 + eval prompts DELETE −647
12 OUI-C-02 · schema-expressions.md:258-302 vs objectstack-data :250-296visibleWhen/readonlyWhen/requiredWhen taught twice with divergent spellings DELETE + pointer to objectstack-data −606
13 OUI-B-08 · README.md:45-97 — eval-authoring instructions shipped to every customer session DELETE −602
14 OUI-B-05 · testing.md:10-61 — this repo's vitest projects, coverage thresholds DELETE −551
15 OUI-B-06 · SKILL.md:15-19, 37-39, 49-55 — router buried under positioning/style/doc-driven prose REWRITE-AS-CONSTRUCT + reorder (router first) −259

Correctness (zero delta, HIGH, fix in this flight)

  • OUI-H-01 evals/mobile.json:36-44 requires useSwipe/useLongPress — zero hits repo-wide; the API is useGesture (packages/mobile/src/index.ts:25): the eval fails a correct answer.
  • OUI-H-03 evals/page-builder.json eval 2 requires the literal token props — inverting the package's most-repeated rule (rules/protocol.md:94-147).
  • OUI-H-04 all four app-composition evals require "type": "object" while the guide writes {type:'object', …}.
  • OUI-G-03 schema-expressions.md:649 "a ${...} on title/label/value/description is never evaluated" — false on declaring types (EXPRESSION_BINDABLE_TEXT_KEYS_BY_COMPONENT; pinned in SchemaRenderer.bindableTextKeys.test.tsx) and contradicted by :47.
  • OUI-G-02 page-builder.md:415-416 "gantt field config may also be hoisted to top-level props" — getGanttConfig reads schema.gantt or flat schema.*, never schema.props; the word is node (:427-428 says so).
  • OUI-G-01 ~25 lines of Chinese in page-builder.md / project-setup.md violate the package's own Core Principle 0, incl. a copy-pasteable fence with "label": "状态" (:379).
  • README.md:79 "stays in sync with the packages/ tree" — @object-ui/sdui-parser (14 importers) and @object-ui/react-runtime (5) appear nowhere; architecture.md:36 "@object-ui/data-* … REST, ObjectQL, GraphQL" — only packages/data-objectstack/ exists.

Three funded additions

  1. Layout-primitive table (flex/stack/box/container/grid — type string, key props, when to pick which), +250, paid by OUI-B-03 — the Add automated testing infrastructure and CI/CD workflows #2/Add public roadmap, VitePress documentation site, and GitHub Pages deployment #3/Fix documentation deployment for www.objectui.org #6 most-authored types get zero mentions package-wide.
  2. evals/protocol.json — three prompts on the node-vs-props-vs-properties decision, +450, paid by OUI-B-08 (the eval set covers 11 of 12 guides and 0 of 4 rules files; no token ratchet in this repo, so a new fixture file is allowed here).
  3. (Tooling, separate follow-up card — not this flight) the os:check fence-marker convention + a port of objectstack's check-skill-examples.ts: 123 TypeScript fences are checked by nothing.

Flight scope

IMPLEMENT, split-by-file allowed with a report, as separate commits so the maintainer can drop any one: (a) contributor-only content OUT of the customer bundle — guides/console-development.md and rules/no-touch-zones.md move to a repo-internal skill under .claude/skills/ (new directory, user-invocable: false, a one-line pointer where the router listed them; also governed, same PR), the monorepo halves of architecture.md / project-setup.md / testing.md / README.md:45-97 deleted; (b) the gantt kitchen-sink moved to packages/plugin-gantt/README.md; (c) the four duplicate clusters merged into their rules/* anchor with pointers; (d) the 11 vestigial frontmatters deleted; (e) cross-package duplicates (C-01 → objectstack-ui, C-02 → objectstack-data, C-03 → objectstack-formula) deleted with one-line pointers; (f) the router first in SKILL.md with accurate trigger phrasing for the two under-described guides; (g) every correctness item above; (h) additions 1–2. Update scripts/skills-path-baseline.json only if check:skills-paths demands it.

DEFER: OUI-E-01 (gate port → a follow-up domain:skills card in this repo, filed by the dev as out-of-scope); OUI-A-01/A-02 (cross-repo routing with objectstack-ui → "follow-up" note); OUI-F-03 (@object-ui/runner / collaboration retire-surface → one row each, never the last mention).

Flight constraints (binding)

  • Draft PR(s) against objectui main, first line Fixes #<this card> on the closing one (Part of #<this card> on earlier splits); governed ⇒ stays draft; ⛔ never mark ready; review requests are the seat's step.
  • ⛔ Never edit objectstack files; a missing/weaker anchor there goes in the PR body under "follow-up for ".
  • No token ratchet here — the discipline is the value gate: every ADD paid by a deletion in the same package; report per-file token delta (ceil(utf8 bytes/4)) before/after.
  • Gates: pnpm check:skills-paths, pnpm lint, pnpm type-check (this repo's spelling), the doc gates the changed paths trigger, plus the repo's check:governed-queue-guard --test <paths> (its exit 3 is the governed verdict, not a red); record the head sha. Changeset: objectui has no skip-changeset label — an empty-frontmatter changeset if the repo's rule asks for one on a skills/** change, ⛔ never request a label.
  • PR body: per-item 落点 | before | after keyed by finding id; per-file token delta; moved-file map; needs:contract-review on both carriers (G-02/G-03 are renderer-contract claims).

Refs: objectstack#14292 (anchor) · objectstack#14296 (batch-1 decisions) · objectstack#13658 / #7094 (truth sweep) · #7097 (breakpoint gate candidate).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions