Skip to content

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

Open

Description

@objectstack-fleet

epic:#3600#1 · hotlong · session_01Q4EjjPXwX1YfHyKJUh4agu

Filing-gate category: ② execution of a maintainer ruling. Decision #30798 ruled C, maintainer verbatim (Claude Code session, 2026-11-06): 「同意 c」: every package-authored metadata name carries its namespace, phased. Routing, verbatim: 「能交给车队开发的你不要自己开发」.

Phase 3 of 3: the contract.

Blocked-by: #30803
Blocked-by: #30804

Ask

  1. 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).
  2. 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).
  3. 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.
  4. 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.


Generated by Claude Code

Activity

  1. added
    priority:p1High: required for production / M2
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    domain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they land
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Nov 6, 2026
  2. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · domain:engine → domain:server · p1 kept · 2026-11-06T04:56Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. added
    domain:serverDomain lane — seat card indexed by label:pm:seat
    and removed
    domain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they land
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:serverDomain lane — seat card indexed by label:pm:seatpm:blockedBlocked by another issue/PR — body carries Blocked-by: #Npriority:p1High: required for production / M2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions