You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bare-name phase 3: defineStack and the save door refuse a bare package-authored name; ADR-0129 and ADR-0048 amended; migration of stored and external references (ruling C on #30798) #30806
Rule. Extend validateNamespacePrefix (packages/spec/src/stack.zod.ts, the shared rule in packages/spec/src/kernel/namespace-prefix.ts) and the save door (protocol-save-door-refusals.ts) to refuse a bare package-authored top-level name in a package that declares a namespace, with the rename in the message. Same exceptions as phase 2. Clause-②: yes (contract surface).
ADRs. Amend ADR-0129 (the literal prefix covers every type) and ADR-0048 §3.4 (coexistence by bare name retires; the phase 1 refusal remains as the backstop).
Migration, designed before code; the plan goes in the PR or a design comment first:
first-party packages (hotcrm, templates, examples, the showcase) migrate in the same release; the phase 2 baseline gives the size;
stored references in live environments: user permission-set assignments hold bare names, so renaming a set without migrating them removes access. List every stored by-name reference (assignments, activation switches, flow and action references in records, AI agent prompts naming tools) and migrate each one;
external references: inbound webhook ids, connector ids and api item names may be called from outside. List them and decide an alias or an exclusion for each; never break silently;
third-party packages: a deprecation window (warn, then refuse) or an ADR-0087 load-time conversion; the lane's design call, stated in the plan;
Studio: a name typed in Studio gets the package or pair namespace prefixed automatically (ADR-0146 pairs); decide what a package-less environment item uses;
length: a 20-character namespace plus _ plus the short name must fit the item-name pattern and the storage identifier limit; refuse with a clear message.
Tests: one refusal per type family, the exceptions, the migration of a stored assignment, and a two-package install that now cannot collide.
Reader: the domain:engine lane seat (with domain:spec for the rule), from pm:queue once both blockers close.
Activity
objectstack-fleet commentedon Nov 6, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: audit ·
domain:engine→domain:server· p1 kept · 2026-11-06T04:56Z⛔ Not a claim.
domain:engineis a retired alias ofdomain:server. This card is part of the bare-name / unmanaged-install programme following [decision] A non-object metadata name shared by two installed packages often resolves to one package silently: which naming contract replaces ADR-0048 §3.4? #30798, and keeps the p1 it was filed with. Any ADR text it touches is Tier H.Generated by Claude Code