Skip to content

Bare-name phase 2: the namespace-prefix lint warns on every bare non-object name; first-party templates and examples adopt the prefix (ruling C on #30798) #30804

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 2 of 3 (lint, templates, examples). It can run in parallel with phase 1.

Problem

The existing naming/namespace-prefix rule (packages/cli/src/commands/lint.ts:319-326) flags only intra-package duplicates, and its message says "Distinct packages may reuse the same name freely; the namespace prefix is an optional convention, not a collision-avoidance requirement". That is now the opposite of the ruled contract. ADR-0048 §5's "[done] lint warns on non-prefixed app/page/dashboard/flow/action/report/dataset" is out of date.

Ask

  1. Re-widen the rule to warn on every bare package-authored top-level name: every type except names derived from a prefixed object (fields, object extensions, container views <object>.<key>) and names already namespaced (translations <ns>_<locale>). Rewrite the message to state the contract and the rename.
  2. Correct ADR-0048 §5's lint bullet in the same PR.
  3. Prefix the names in the first-party templates and examples (examples/*, create-objectstack templates), so a new project starts compliant. Record the before/after count of bare names; it is the migration baseline phase 3 needs.

Out of scope: the published AI-authoring skills (sibling card, domain:skills), refusing at defineStack (phase 3), and the scenario cards (#30795).

Reader: the domain:devx lane seat, from pm:queue.


Generated by Claude Code

Activity

  1. added
    priority:p1High: required for production / M2
    pm:queueReady for the PM dispatch loop
    domain:devxDomain lane — seat card indexed by label:pm:seat
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 6, 2026
  2. objectstack-fleet commented on Nov 6, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:devx#1 · os-elon-musk · session_016WV4cymvo9YoyLwKCXXBNw

    Claim: PM loop round 5
    Session: session_016WV4cymvo9YoyLwKCXXBNw
    Account: os-elon-musk
    Branch: claude/project-thread-uogs4i (the card thread's platform-assigned branch; a measured platform exception to claude/issue-<n>-<slug>) · card thread session session_016WV4cyadQ5Zhih2y1GNTQm
    Worktree: objectstack-issue-30804
    Domain: domain:devx
    Seat: domain:devx#1
    File surface: PR 1 covers packages/cli/src/commands/lint.ts (naming/namespace-prefix) with its tests, plus the one ADR-0048 §5 lint bullet in docs/adr/0048-cross-package-metadata-collision.md. PR 2 covers the metadata names in examples/* and packages/create-objectstack/src/templates/**, plus the tests and docs that spell those names. Not the published skills (#30805), not defineStack (#30806), not the scenario cards (#30795).
    Container & model: M, mode:thread, model: default tier, effort: xhigh (p1). Two PRs: the rule first, then the renames, so the rename PR lands on a rule that already says the contract.
    Clause-②: no — the rule stays severity: 'warning', and no door refuses anything new (refusal is phase 3, #30806).
    Metadata-protocol: none
    Responsibility: execution of maintainer ruling C on #30798 (「同意 c」), routed to the fleet (「能交给车队开发的你不要自己开发」).
    Thread-read: none
    Premise: holds — on origin/main, naming/namespace-prefix (packages/cli/src/commands/lint.ts ≈ L300–326) still warns only on intra-package duplicates, and its message still says "the namespace prefix is an optional convention".
    Serial constraints cleared: no open PR touches packages/cli/src/commands/lint.ts or ADR-0048. Two open PRs touch neighbouring files that PR 2 must not edit until they land or must merge around: #30792 (create-objectstack/src/templates/AGENTS.md, blank/README.md) and #30552 (examples/app-showcase/e2e/global-setup.ts). Checked 2026-11-06T04:25Z. Phase 1 (#30803, domain:engine) runs in parallel by the card's own word.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:devxDomain lane — seat card indexed by label:pm:seatpm:dispatchedDispatched to a dev agent by /pm-dispatchpriority: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