What is wrong
.github/prompts/component.prompt.md lists component keys in five more places than the two **Keys:** bullets that objectui#8929 corrected, and in those places the vocabulary has the same defect: it names keys that resolve to nothing renderable, or to the opt-in protocol placeholder panel only.
Measured on origin/main @ a92eef266, by partitioning the shared registry derivation (deriveRegistryKeys) into keys some non-placeholder site registers and keys only PROTOCOL_COMPONENTS registers. Every backticked namespaced token in the file, judged against that partition:
| section |
key |
verdict |
| F. Primitive Atoms — "Required Library" |
atom:icon, atom:button, atom:spinner, atom:empty, atom:error, atom:badge |
nothing registers any of the six |
| H. AI Interface — "Required Components" |
ai:chat_window |
nothing registers it, deliberately — the placeholder module's own comment records it as intentionally omitted so a page schema naming it produces the loud OBJUI-001 panel |
| H. AI Interface |
ai:input, ai:suggestion, ai:feedback |
placeholder-only |
| D. Page Components — "Standard Components Library" |
user:profile |
retired — @objectstack/spec 17.3.0 dropped it from PageComponentType, and objectui#7122 removed it across all three sites; it is no longer a page block any author can legitimately write |
| D. Page Components |
nav:breadcrumb |
placeholder-only |
Why this is not just more of objectui#8929
objectui#8929's bullets are labelled Keys, which is a claim about the registry, and the gate it landed (pnpm check:prompt-keys) judges exactly those bullets. These five are labelled Required Types / Required Components / Required Library / Standard Components Library, and what those labels claim is genuinely ambiguous:
- read as a ROADMAP ("these are the components that should exist"),
atom:* is correct and nothing needs fixing;
- read as a REGISTRY VOCABULARY, an AI generating a component reaches for
atom:button and gets the unknown-type panel.
The file gives an AI author no way to tell which reading applies, and user:profile shows the cost of guessing wrong: it is not aspirational, it is retired, and a document naming it is wrong in every reading.
⇒ this needs a decision about what those sections claim before the gate can be widened to cover them, which is why it is a separate card rather than a rider on objectui#8929.
Suggested shape
Decide per section whether it is a roadmap or a vocabulary. Where it is a vocabulary, correct it and widen check-prompt-component-keys.mjs to read that bullet label too — the gate already carries the partition, and adding a label to the set it scans is a one-line change. Where it is a roadmap, say so in the section so the distinction is readable, and leave it outside the gate.
user:profile is worth splitting out if the rest needs discussion: it is a retired key with no reading under which it is correct.
Provenance
Found while implementing objectui#8929 and reported here rather than fixed there: that card's ruling and its dispatch both scope to the view:* Keys bullets, and correcting these would have widened the PR past its ruling and past the judgement the dispatch recorded. Deliberately filed bare — no labels, no priority, no assignee — for the triage seat to route.
Filed by the os-dev seat on branch claude/issue-8929-prompt-retired-view-keys, session https://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr, with Claude Code.
Generated by Claude Code
What is wrong
.github/prompts/component.prompt.mdlists component keys in five more places than the two**Keys:**bullets that objectui#8929 corrected, and in those places the vocabulary has the same defect: it names keys that resolve to nothing renderable, or to the opt-in protocol placeholder panel only.Measured on
origin/main@a92eef266, by partitioning the shared registry derivation (deriveRegistryKeys) into keys some non-placeholder site registers and keys onlyPROTOCOL_COMPONENTSregisters. Every backticked namespaced token in the file, judged against that partition:atom:icon,atom:button,atom:spinner,atom:empty,atom:error,atom:badgeai:chat_windowai:input,ai:suggestion,ai:feedbackuser:profile@objectstack/spec17.3.0 dropped it fromPageComponentType, and objectui#7122 removed it across all three sites; it is no longer a page block any author can legitimately writenav:breadcrumbWhy this is not just more of objectui#8929
objectui#8929's bullets are labelled Keys, which is a claim about the registry, and the gate it landed (
pnpm check:prompt-keys) judges exactly those bullets. These five are labelled Required Types / Required Components / Required Library / Standard Components Library, and what those labels claim is genuinely ambiguous:atom:*is correct and nothing needs fixing;atom:buttonand gets the unknown-type panel.The file gives an AI author no way to tell which reading applies, and
user:profileshows the cost of guessing wrong: it is not aspirational, it is retired, and a document naming it is wrong in every reading.⇒ this needs a decision about what those sections claim before the gate can be widened to cover them, which is why it is a separate card rather than a rider on objectui#8929.
Suggested shape
Decide per section whether it is a roadmap or a vocabulary. Where it is a vocabulary, correct it and widen
check-prompt-component-keys.mjsto read that bullet label too — the gate already carries the partition, and adding a label to the set it scans is a one-line change. Where it is a roadmap, say so in the section so the distinction is readable, and leave it outside the gate.user:profileis worth splitting out if the rest needs discussion: it is a retired key with no reading under which it is correct.Provenance
Found while implementing objectui#8929 and reported here rather than fixed there: that card's ruling and its dispatch both scope to the
view:*Keys bullets, and correcting these would have widened the PR past its ruling and past the judgement the dispatch recorded. Deliberately filed bare — no labels, no priority, no assignee — for the triage seat to route.Filed by the
os-devseat on branchclaude/issue-8929-prompt-retired-view-keys, sessionhttps://claude.ai/code/session_01FhBNJcLRZLe8M87VcUgpKr, with Claude Code.Generated by Claude Code