Path: skills/objectstack-ui/rules/pages.md (authoring rule 2, :338–:341) | published skill — Tier H, CONTRACT_REVIEW_TIER (skills/** in MANDATORY_TIER_GLOBS) | graded by domain:skills#2
Filed by the domain:cli execution PM seat (#6024, session session_01QCdUBjM47SxioST9z5Zwdf) out of the #19248 round (PR #19352), where it arrived as a read-only prose sweep the seat commissioned after the docs-drift check disclaimed coverage. ⛔ Filed bare: finding only; domain:*, type and priority are triage's.
Dedupe words: skills/objectstack-ui pages.md · fail at install · instance-global doc names · ADR-0048 §3.4 retired · collide across packages.
The shape
skills/objectstack-ui/rules/pages.md, authoring rule 2 (Namespace-prefixed filename). Read verbatim from origin/main:
Names share one flat, instance-global space with the URL, so a bare user_guide would collide across packages and fail at install (ADR-0048).
⭐ It cites ADR-0048 as its authority for a claim ADR-0048 retired. §3.4, quoted verbatim:
The cross-package throw is retired; two distinct packages coexist on the same bare name by construction.
Three separable errors, each measured
| # |
the text says |
what is true |
| 1 |
doc names share "one flat, instance-global space" |
⛔ replaced by §3.1/§3.3 — routing keys on the package id, and packaged items are stored under a composite package-id-plus-name key |
| 2 |
a bare name "would collide across packages" |
⛔ the retired claim itself — §3.4: two distinct packages coexist on the same bare name by construction |
| 3 |
it "would fail at install" |
⛔ wrong door. The install gate (§3.2) refuses on manifest.namespace ownership — NamespaceConflictError is constructed with a namespace, not a doc name. A bare doc name is refused at BUILD, by docs/namespace-prefix |
⚠️ Why this placement is the worst of the three the sweep looked at
skills/** is the customer-published catalog an AI author reads while writing docs. A stale sentence in a docblock misleads a maintainer reading the source; this one is consumed by generators as authority. And because it cites the ADR, a reader who checks the citation finds a real document — just not one that says this.
⭐ Contrast, and it is the reason this card exists rather than a wider one: content/docs/ui/doc-pages.mdx:76-82 — the hand-written prose page that states the same rule — is already correct, and refutes the retired claim explicitly: "two installed packages may each ship a doc with the same bare name and coexist — neither silently overwrites the other." ⇒ ⛔ this is not a systemic documentation drift; it is one page that did not get the memo.
Scope
⛔ Not fixed in PR #19352, and not this lane's to fix. skills/** is a Tier H governed surface — the tier reserves the landing. The sweep that found it was explicitly read-only, and the #19248 order said to file such findings rather than fix them in place, which is the same instinct that opened #19248.
First act
Decide whether rule 2's reason should be restated (namespace prefixing is authoring hygiene plus a build-time docs/namespace-prefix refusal) or simply dropped to the enforceable fact (the stem must start with the package namespace, enforced at build). ⛔ Do not simply delete the ADR citation — the rule itself is live; only its stated consequence is retired.
Generated by Claude Code
Path:
skills/objectstack-ui/rules/pages.md(authoring rule 2, :338–:341) | published skill — Tier H,CONTRACT_REVIEW_TIER(skills/**inMANDATORY_TIER_GLOBS) | graded bydomain:skills#2Filed by the
domain:cliexecution PM seat (#6024, sessionsession_01QCdUBjM47SxioST9z5Zwdf) out of the #19248 round (PR #19352), where it arrived as a read-only prose sweep the seat commissioned after the docs-drift check disclaimed coverage. ⛔ Filed bare:findingonly;domain:*, type and priority are triage's.Dedupe words:
skills/objectstack-ui pages.md·fail at install·instance-global doc names·ADR-0048 §3.4 retired·collide across packages.The shape
skills/objectstack-ui/rules/pages.md, authoring rule 2 (Namespace-prefixed filename). Read verbatim fromorigin/main:⭐ It cites ADR-0048 as its authority for a claim ADR-0048 retired. §3.4, quoted verbatim:
Three separable errors, each measured
manifest.namespaceownership —NamespaceConflictErroris constructed with a namespace, not a doc name. A bare doc name is refused at BUILD, bydocs/namespace-prefixskills/**is the customer-published catalog an AI author reads while writing docs. A stale sentence in a docblock misleads a maintainer reading the source; this one is consumed by generators as authority. And because it cites the ADR, a reader who checks the citation finds a real document — just not one that says this.⭐ Contrast, and it is the reason this card exists rather than a wider one:
content/docs/ui/doc-pages.mdx:76-82— the hand-written prose page that states the same rule — is already correct, and refutes the retired claim explicitly: "two installed packages may each ship a doc with the same bare name and coexist — neither silently overwrites the other." ⇒ ⛔ this is not a systemic documentation drift; it is one page that did not get the memo.Scope
⛔ Not fixed in PR #19352, and not this lane's to fix.
skills/**is a Tier H governed surface — the tier reserves the landing. The sweep that found it was explicitly read-only, and the #19248 order said to file such findings rather than fix them in place, which is the same instinct that opened #19248.First act
Decide whether rule 2's reason should be restated (namespace prefixing is authoring hygiene plus a build-time
docs/namespace-prefixrefusal) or simply dropped to the enforceable fact (the stem must start with the package namespace, enforced at build). ⛔ Do not simply delete the ADR citation — the rule itself is live; only its stated consequence is retired.Generated by Claude Code