Filing gate: ① measured at a public door, with a named landing (and a decision question for triage). Filed by domain:engine seat 1 (seat post #6367) · session_01EUBvqtauTDmHi2ZgY759p2, from the dev report on #22135 (6053492929). ⛔ Not graded or routed here; ⛔ not a claim.
What was measured
On the #22135 build (PR #22197, head 8ad6385441) and on its ablated base, a showcase boot:
PUT /api/v1/meta/position/NAME naming a position a package declares answers 200, and the saved environment position then wins the by-name read — so every assignment of that name grants the environment's fork.
- The same save for a permission set (
PUT /api/v1/meta/permission/NAME, with or without ?package=) answers 403 NOT_OVERRIDABLE (the packaged permission-set lock, ruled 2026-08-24).
- Positions have no such lock.
Why it is not #22135's
The maintainer's Q4 = A on #15196 ("each [catalog type holds] one namespace per deployment … installing or registering a package whose … name [another holder] already holds is refused") covers package installs. Triage's grade of #22135 (6051220848) says: "an environment-catalog save over a package-held name is reported only (the ruling does not cover it)". This card is that report.
The question for triage (the dev's options, with its four-axis reading in 6053492929)
- A. Extend the packaged lock's shape to positions: an environment save over a package-declared position answers 403
NOT_OVERRIDABLE, as permission sets do. (Dev's recommendation: the ruled shape, no new vocabulary.)
- B. Leave it under ADR-0005 overlay precedence; report only.
- C. Refuse all three types with the one-holder envelope (422
NAMESPACE_CONFLICT) at the metadata write door.
Related, same family (a boundary, not a defect): at cold boot a package registers in Phase 1 and sys_metadata hydrates in Phase 2, so a package newly added to a deployment whose environment catalog already holds one of its catalog names is not refused at cold boot (the existing collision warning fires); a hot install of the same is refused. The dev's reading: accept the boundary for #22135; if wanted, a loud boot report (not a refusal) in #15196's S9 boot report.
Landing, by reading: the metadata write door in packages/metadata-protocol (the packaged lock's code path) and/or plugin-security's lock; triage names it.
Dedupe: MCP search_issues, repo-scoped, open and closed: 「environment save position over package-held position name NOT_OVERRIDABLE packaged lock permission set」 → 13 results. The nearest: #22135 (open, this card's source); #21789, #21860, #21861 (closed: the permission-set lock's provenance and fork defects, a different type); #21670 (closed: lock reporting for flows and actions). None is a position lock. Positive control: #22135 returns first.
Dedupe words: position packaged lock NOT_OVERRIDABLE · environment save over package position · security catalog environment holder
Generated by Claude Code
Filing gate: ① measured at a public door, with a named landing (and a decision question for triage). Filed by
domain:engineseat 1 (seat post #6367) ·session_01EUBvqtauTDmHi2ZgY759p2, from the dev report on #22135 (6053492929). ⛔ Not graded or routed here; ⛔ not a claim.What was measured
On the #22135 build (PR #22197, head
8ad6385441) and on its ablated base, a showcase boot:PUT /api/v1/meta/position/NAMEnaming a position a package declares answers 200, and the saved environment position then wins the by-name read — so every assignment of that name grants the environment's fork.PUT /api/v1/meta/permission/NAME, with or without?package=) answers 403NOT_OVERRIDABLE(the packaged permission-set lock, ruled 2026-08-24).Why it is not #22135's
The maintainer's Q4 = A on #15196 ("each [catalog type holds] one namespace per deployment … installing or registering a package whose … name [another holder] already holds is refused") covers package installs. Triage's grade of #22135 (6051220848) says: "an environment-catalog save over a package-held name is reported only (the ruling does not cover it)". This card is that report.
The question for triage (the dev's options, with its four-axis reading in 6053492929)
NOT_OVERRIDABLE, as permission sets do. (Dev's recommendation: the ruled shape, no new vocabulary.)NAMESPACE_CONFLICT) at the metadata write door.Related, same family (a boundary, not a defect): at cold boot a package registers in Phase 1 and
sys_metadatahydrates in Phase 2, so a package newly added to a deployment whose environment catalog already holds one of its catalog names is not refused at cold boot (the existing collision warning fires); a hot install of the same is refused. The dev's reading: accept the boundary for #22135; if wanted, a loud boot report (not a refusal) in #15196's S9 boot report.Landing, by reading: the metadata write door in
packages/metadata-protocol(the packaged lock's code path) and/orplugin-security's lock; triage names it.Dedupe: MCP
search_issues, repo-scoped, open and closed: 「environment save position over package-held position name NOT_OVERRIDABLE packaged lock permission set」 → 13 results. The nearest: #22135 (open, this card's source); #21789, #21860, #21861 (closed: the permission-set lock's provenance and fork defects, a different type); #21670 (closed: lock reporting for flows and actions). None is a position lock. Positive control: #22135 returns first.Dedupe words:
position packaged lock NOT_OVERRIDABLE·environment save over package position·security catalog environment holderGenerated by Claude Code