Repository navigation
packages/components/metadata/*.component.yml is read by nothing — unpublished, ungated, and ObjectGrid's still claims a virtual_scroll feature that has no implementation #4659
Description
Activity
Findings triage + claim (grade, delegated adjudication, and dispatch in one round; veto window open — PM session
session_01RnQd8iMMUwXQEV1crFmQiQ). Branch:claude/issue-4659-component-yml-retirement.Adjudicated: Option 1 — delete the directory (all seven files). Basis is the established no-consumer retirement family (the CloudOperations ruling and its four-sibling extension under the family rule): these files are a strictly weaker case than that precedent — unread, unpublished (excluded by the package's
filesallowlist), ungated, and one is actively false (virtual_scroll: trueagainst a plugin-grid with zero virtualization references). Option 2 (give them a reader) is new product surface with no measured pull — the same expansion the family ruling declines by default; if a component catalog is ever wanted, designing it against a real consumer beats resurrecting drifted YAML. The dev re-verifies the zero-reference face (the card's own grep pointers), deletes, and records the false-claim evidence in the PR body as the urgency limb.packages/componentssrc/untouched ⇒ changeset per the presence gate's verdict. PR will beFixes #4659.
Generated by Claude Code
<!-- os-dev-report -->
{ "issue": 4659, "status": "done", "branch": "claude/issue-4659-component-yml-retirement", "pr": "https://github.com/objectstack-ai/objectui/pull/4732", "premise_still_valid": true, "summary": "Deleted packages/components/metadata/ (seven *.component.yml files: ObjectGrid, ObjectForm, Page, Chart, Menu, GridLayout, FilterBuilder) per the delegated adjudication on the issue. Confirmed all three mechanism assumptions before deleting: zero functional references anywhere in the repo (the card's own pointers plus an expanded sweep over apps/*/src, examples/, content/, READMEs, and tsconfig/eslint globs -- the sole broader hit was a prose mention of the filename inside an already-existing unreleased changeset documenting a past edit, not a functional dependency), unpublished (packages/components/package.json files allowlist excludes metadata/), and ObjectGrid.component.yml's virtual_scroll: true claim is false (zero virtualScroll/virtual_scroll references in packages/plugin-grid). Pushed a draft PR with the false-claim evidence recorded as the urgency limb; did not build a reader for these files.", "tests": "At final commit dfceccd96 (matches pushed HEAD, quoted via git rev-parse --short HEAD): pnpm --filter '@object-ui/components^...' build -> dependency closure clean; pnpm exec vitest run --maxWorkers=2 packages/components/ (root-relative invocation per AGENTS.md) -> Test Files 130 passed (130), Tests 1116 passed (1116); pnpm --filter @object-ui/components type-check -> clean (tsc --noEmit && tsc -p tsconfig.test.json); pnpm --filter @object-ui/components lint -> 0 errors, 920 pre-existing warnings in src/ui/** (Shadcn no-touch zone), none related to this change; node scripts/check-control-bytes.mjs -> OK (scanned 4248 tracked text files); node scripts/check-doc-links.mjs -> links valid across 13 scan roots; node scripts/check-changeset-presence.mjs -> '0 of them under the src/ of a package the release covers ... No source of a released package changed in this range, so no changeset is owed.' Re-ran the changeset-presence gate a second time after the final commit to confirm the verdict held at dfceccd96.", "open_questions": [], "out_of_scope_findings": [], "premise_verification": { "zero_references": "CONFIRMED - grep -rn component.yml|components/metadata scripts/ .github/workflows/ packages/*/src apps/*/src examples/ -> no hits. Expanded sweep over content/, READMEs, tsconfig/eslint configs -> no functional hits; only broader match was prose in .changeset/lucky-pumas-repeat.md (unreleased, documents the prior objectstack#7176/PR #4657 edit, not a live dependency).", "unpublished": "CONFIRMED - packages/components/package.json files: [dist, README.md, CHANGELOG.md, LICENSE] (metadata/ excluded).", "virtual_scroll_false_claim": "CONFIRMED - grep -rn virtualScroll|virtual_scroll packages/plugin-grid/ -> no hits, while ObjectGrid.component.yml declared virtual_scroll: true." }, "changeset": { "decision": "not added", "basis": "node scripts/check-changeset-presence.mjs verdict: 7 files changed, 0 under src/ of a released package -> no changeset owed. metadata/ sits outside src/." }, "head_sha": "dfceccd96", "changed_files": [ "packages/components/metadata/Chart.component.yml (deleted)", "packages/components/metadata/FilterBuilder.component.yml (deleted)", "packages/components/metadata/GridLayout.component.yml (deleted)", "packages/components/metadata/Menu.component.yml (deleted)", "packages/components/metadata/ObjectForm.component.yml (deleted)", "packages/components/metadata/ObjectGrid.component.yml (deleted)", "packages/components/metadata/Page.component.yml (deleted)" ] }Generated by Claude Code
Generated by Claude Code
os-dev-report (marker correction — the previous comment's
<!-- -->wrapper was HTML-entity-encoded by this tool path and may not read as the literal marker; no edit-comment tool is available to fix it in place, so posting the corrected version below. Same report, same content.){ "issue": 4659, "status": "done", "branch": "claude/issue-4659-component-yml-retirement", "pr": "https://github.com/objectstack-ai/objectui/pull/4732", "premise_still_valid": true, "summary": "Deleted packages/components/metadata/ (seven *.component.yml files: ObjectGrid, ObjectForm, Page, Chart, Menu, GridLayout, FilterBuilder) per the delegated adjudication on the issue. Confirmed all three mechanism assumptions before deleting: zero functional references anywhere in the repo (the card's own pointers plus an expanded sweep over apps/*/src, examples/, content/, READMEs, and tsconfig/eslint globs -- the sole broader hit was a prose mention of the filename inside an already-existing unreleased changeset documenting a past edit, not a functional dependency), unpublished (packages/components/package.json files allowlist excludes metadata/), and ObjectGrid.component.yml's virtual_scroll: true claim is false (zero virtualScroll/virtual_scroll references in packages/plugin-grid). Pushed a draft PR with the false-claim evidence recorded as the urgency limb; did not build a reader for these files.", "tests": "At final commit dfceccd96 (matches pushed HEAD, quoted via git rev-parse --short HEAD): pnpm --filter '@object-ui/components^...' build -> dependency closure clean; pnpm exec vitest run --maxWorkers=2 packages/components/ (root-relative invocation per AGENTS.md) -> Test Files 130 passed (130), Tests 1116 passed (1116); pnpm --filter @object-ui/components type-check -> clean (tsc --noEmit && tsc -p tsconfig.test.json); pnpm --filter @object-ui/components lint -> 0 errors, 920 pre-existing warnings in src/ui/** (Shadcn no-touch zone), none related to this change; node scripts/check-control-bytes.mjs -> OK (scanned 4248 tracked text files); node scripts/check-doc-links.mjs -> links valid across 13 scan roots; node scripts/check-changeset-presence.mjs -> '0 of them under the src/ of a package the release covers ... No source of a released package changed in this range, so no changeset is owed.' Re-ran the changeset-presence gate a second time after the final commit to confirm the verdict held at dfceccd96.", "open_questions": [], "out_of_scope_findings": [], "premise_verification": { "zero_references": "CONFIRMED - grep -rn component.yml|components/metadata scripts/ .github/workflows/ packages/*/src apps/*/src examples/ -> no hits. Expanded sweep over content/, READMEs, tsconfig/eslint configs -> no functional hits; only broader match was prose in .changeset/lucky-pumas-repeat.md (unreleased, documents the prior objectstack#7176/PR #4657 edit, not a live dependency).", "unpublished": "CONFIRMED - packages/components/package.json files: [dist, README.md, CHANGELOG.md, LICENSE] (metadata/ excluded).", "virtual_scroll_false_claim": "CONFIRMED - grep -rn virtualScroll|virtual_scroll packages/plugin-grid/ -> no hits, while ObjectGrid.component.yml declared virtual_scroll: true." }, "changeset": { "decision": "not added", "basis": "node scripts/check-changeset-presence.mjs verdict: 7 files changed, 0 under src/ of a released package -> no changeset owed. metadata/ sits outside src/." }, "head_sha": "dfceccd96", "changed_files": [ "packages/components/metadata/Chart.component.yml (deleted)", "packages/components/metadata/FilterBuilder.component.yml (deleted)", "packages/components/metadata/GridLayout.component.yml (deleted)", "packages/components/metadata/Menu.component.yml (deleted)", "packages/components/metadata/ObjectForm.component.yml (deleted)", "packages/components/metadata/ObjectGrid.component.yml (deleted)", "packages/components/metadata/Page.component.yml (deleted)" ] }Generated by Claude Code
Generated by Claude Code
- added a commit that references this issue
on Aug 17, 2026
Observation-class finding, recorded while unwinding the objectstack#7176 retirement chain (#4649 / PR #4657), which edited one of these files. Unassigned, no
pm:queue; grade it in triage.What was measured
packages/components/metadata/holds seven*.component.ymlfiles (ObjectGrid,ObjectForm,Page,Chart,Menu,GridLayout,FilterBuilder) describing each component's props, events and features. On currentmain:scripts/, no workflow referencescomponent.ymlor themetadata/directory.packages/components/package.jsonhas"files": ["dist", "README.md", "CHANGELOG.md", "LICENSE"], so the directory never leaves the repo.So they are hand-maintained documentation with no reader and no consistency guarantee — and the guarantee is the part that matters, because they drift silently.
The drift that is already there
ObjectGrid.component.ymlends with:packages/plugin-grid— the package that implementsobject-grid— contains zero references tovirtualScroll,virtual_scrollor any virtualization. The claim was already false before objectstack#7176 retired the upstreamlist.virtualScrollkey; the retirement just removed any prospect of it becoming true. PR #4657 deleted this file'sstriped/borderedprop declarations (the ADR-0049-style dead keys thedomain:specseat flagged) but deliberately left thefeatures:block alone: it is a different vocabulary, and a capability claim nobody reads is a different question from an authorable key.view_zod_aligned: trueis the same shape of claim — an alignment assertion with no gate behind it.Why this is worth a card rather than a shrug
Two honest dispositions, and they point opposite ways, which is exactly why it should be decided rather than drifted:
virtual_scroll: truelearns something false about the grid.What should not persist is the current state, where the files look authoritative and are neither. Startup-focus reading favours (1) unless a consumer is actually planned, since a declared surface with no pull is expansion nobody asked for.
Verification pointers
grep -rn "component.yml\|components/metadata" scripts/ .github/workflows/ packages/*/src— no hits.grep -rn "virtualScroll\|virtual_scroll" packages/plugin-grid/— no hits.