Follow-up from the objectstack-ui optimization flight (#14298 / PR #14338), filed by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1) on the dev's open question; the flight could not take it (a plain REWRITE outside the card's verbs, and half of it lives in examples/**).
Measured
skills/objectstack-ui/SKILL.md — the ListView prose and the react-tier example teach objectName / viewType on <ListView>; this package's own generated contract (references/react-blocks.md / contracts/react-blocks.contract.json, from gen:react-blocks) marks both DEPRECATED in favour of the canonical spelling it lists.
examples/app-showcase — three example pages repeat the deprecated spelling (the flight's audit found them while measuring real usage; re-count at claim: git grep -n "objectName\|viewType" origin/main -- 'examples/**/*.page.ts' 'examples/**/pages/**' with a positive control on definePage).
Why one card, not two
Maintainer principle (2026-08-27, verbatim): 「项目在创业阶段,用户也很少,短期不考虑渐进。」 — retired spellings retire at once, no dual-spelling grace. Fixing only the skill leaves the shipped examples teaching the other spelling until someone else notices; fixing only the examples leaves the published skill teaching a deprecated form. Both sides move in one PR so a generator reading either sees one spelling.
Scope
skills/objectstack-ui/SKILL.md — the ListView prose + the react example: canonical spelling only; net tokens ≤ 0 (rename, not addition).
examples/app-showcase/src/ui/pages/* (the three pages) — mechanical rename to the canonical spelling; bounded in-place rider under the dev contract's four-condition exemption (same defect class; correct form pinned by the generated contract's DEPRECATED marker; no other claim on the files — verify at claim; same gate family). ⛔ No other example edits.
- Governed (
skills/** md) ⇒ draft + human merge; needs:contract-review not required (spelling, no semantic claim) unless the canonical form changes behaviour — verify against packages/spec/src/ui/page.zod.ts react-block props.
Serial: after PR #14338 merges (same file). Refs: #14292 (program) · #14298 · PR #14338.
Follow-up from the objectstack-ui optimization flight (#14298 / PR #14338), filed by the skills lane seat (session
session_01LraLgQVGq8egUwfYZpbYt1) on the dev's open question; the flight could not take it (a plain REWRITE outside the card's verbs, and half of it lives inexamples/**).Measured
skills/objectstack-ui/SKILL.md— the ListView prose and the react-tier example teachobjectName/viewTypeon<ListView>; this package's own generated contract (references/react-blocks.md/contracts/react-blocks.contract.json, fromgen:react-blocks) marks both DEPRECATED in favour of the canonical spelling it lists.examples/app-showcase— three example pages repeat the deprecated spelling (the flight's audit found them while measuring real usage; re-count at claim:git grep -n "objectName\|viewType" origin/main -- 'examples/**/*.page.ts' 'examples/**/pages/**'with a positive control ondefinePage).Why one card, not two
Maintainer principle (2026-08-27, verbatim): 「项目在创业阶段,用户也很少,短期不考虑渐进。」 — retired spellings retire at once, no dual-spelling grace. Fixing only the skill leaves the shipped examples teaching the other spelling until someone else notices; fixing only the examples leaves the published skill teaching a deprecated form. Both sides move in one PR so a generator reading either sees one spelling.
Scope
skills/objectstack-ui/SKILL.md— the ListView prose + the react example: canonical spelling only; net tokens ≤ 0 (rename, not addition).examples/app-showcase/src/ui/pages/*(the three pages) — mechanical rename to the canonical spelling; bounded in-place rider under the dev contract's four-condition exemption (same defect class; correct form pinned by the generated contract's DEPRECATED marker; no other claim on the files — verify at claim; same gate family). ⛔ No other example edits.skills/**md) ⇒ draft + human merge;needs:contract-reviewnot required (spelling, no semantic claim) unless the canonical form changes behaviour — verify againstpackages/spec/src/ui/page.zod.tsreact-block props.Serial: after PR #14338 merges (same file). Refs: #14292 (program) · #14298 · PR #14338.