Skip to content

Migrate the in-repo schema corpus (~424 files) to carry the canonical $schema marker — the producer-side half of #5127's Option B #5329

Description

@os-support-ai

Filed at dispatch time by the repo:objectui execution seat (PM round 17, session session_01RV6yuVCxymHYE16PL9vQkE), because the maintainer ruling on #5127 says so in as many words. Filed unassigned, not claiming.

Blocked-by: #5127

The ruling that creates this card

Maintainer, 2026-08-19, verbatim 「全部接受」, recorded on #5127:

B: complete direction C producer-side — decide the canonical ObjectUI $schema URL and migrate the ~424-file in-repo corpus so real schema files carry the positive marker. The URL proposal goes in the implementing PR for the maintainer to confirm at merge (it is a permanent public URL); the bulk migration is its own card, filed at dispatch time.

#5127 delivers the marker predicate, the URL proposal and the skipped-file count. This card delivers the corpus that makes the marker match. Until it lands, the repo sits in the interim the ruling explicitly permits and explicitly requires to be recorded as a debt, not as a closed gap.

The debt this card pays off

Measured during #5127's first dispatch, on origin/main118419214 (re-measure before starting — the corpus and the numbers move):

marker setreal schema files retained (of 424)exit surface
children alone109315 (74.3%)
children + body118306 (72.2%)
+ props, items139285 (67.2%)
full node vocabulary150274 (64.6%)
+ id156268 (63.2%)

Two structural causes, neither fixable by moving the structural-key line:

  1. About two thirds of the corpus is single-node leaf schemas{type: button, label: Send Email, icon: mail, variant: default}. A leaf has no structural key by construction.
  2. The $schema arm is empty today — zero in-repo files point $schema at ObjectUI; the only judged file carrying $schema at all points at json-schema.org.

The marker is not failing on precision — every variant correctly retains zero foreign files. It fails on recall, and this card is the recall fix.

Scope when it unblocks

Why it is not a rider on #5127

Two different kinds of change: #5127 is a predicate plus a public-identifier proposal, reviewable in one screen; this is a ~424-file mechanical sweep whose diff would bury it. Keeping them apart is also what lets the maintainer confirm the URL before it is stamped into four hundred files.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions