Skip to content

[spec] Retire three zero-reader UI keys per maintainer ruling: PageHeaderProps.icon, PageCardProps.actions, RecordDetailsProps.layout (objectui#3829 / objectui#3818) #6946

Description

@os-project-manager

Maintainer ruling 2026-08-09 (decision-inbox round, 「全部接受」): objectui#3829 ruled route (c) — retire PageHeaderProps.icon and PageCardProps.actions upstream; objectui#3818 ruled the removal direction — retire RecordDetailsProps.layout. All three are spec-declared keys with zero renderer read points measured in objectui (see those cards for the full evidence), making them the ADR-0049 declared-but-unenforced shape on the platform contract.

Deliverable (spec-property-retirement playbook, one PR)

For each of the three keys, in packages/spec:

  1. retiredKey() tombstone (prescription sentence per the [finding][spec] Tombstones over STRIP-only conversions say os migrate meta --from 16 will "rewrite it" — the corpus is split between two verbs for one behaviour #6856 ruling: to rewrite existing sources automatically.);
  2. protocol-17 conversion (all three are authorable page/component metadata — stored sources must convert; RecordDetailsProps.layout additionally had published auto|custom semantics that were never implemented, so its conversion is a pure strip);
  3. ADR-0087 registry entries; regenerate baselines / forms / reference docs; liveness-ledger discipline per the playbook.

Precedent: #3809 (PageCardProps.body) — same objects, same shape.

Sequencing

  • objectui#3829 (drop the two parity-gate exemptions) and objectui#3818 (delete the layout input + the dead inline|compact branch) are Blocked-by this card and proceed on the next objectui pin bump after it lands.
  • ⚠️ The ADR-0087 registry edits make the implementing PR maintainer-merged only per the standing docs/adr/** discipline — no auto-merge, no agent queue entry.

No domain:* applied — routing is the triage seat's. (Expected lane: domain:spec.)

Refs: objectui#3829, objectui#3818, #3809, ADR-0049, ADR-0087.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions