Skip to content

[CROSS-PROJECT] DECISION REQUIRED: npm namespace & registry strategy blocks all publishing (@coderooz vs @coderooz_org vs GitHub Packages) #46

Open

Description

@coderooz

Summary

Cross-project decision required: no approved npm namespace/registry strategy exists, blocking all publishing across the ecosystem (this repo's 16 @coderooz/* workspace packages + template, React-Code-Blocks, NextJs-Template).

Evidence

Impact

  • Severity: Critical (ecosystem-wide).
  • Blocks: Phase C (RCB distribution), Phase F (Next.js + RCB), Phase G (release hardening), any template CLI publishing. Without this decision no package can reach a consumer.

Root Cause

Namespace was never provisioned at creation time; GitHub Packages .npmrc routing masked the fact that npmjs @coderooz was never owned; token expired.

Proposed Resolution (decision needed � three options)

  1. Public npm under @coderooz_org/* (analysis recommendation): zero rename cost today (nothing published under old scope), best discoverability, no consumer auth friction. Requires renaming @coderooz/* ? @coderooz_org/* before first publish + refresh npm token + fix .npmrc.
  2. GitHub Packages under @coderooz/*: keeps current names, but consumers must authenticate and configure registry � high friction, poor discoverability.
  3. Hybrid: public npm for user-facing packages (template CLIs, RCB), GitHub Packages for internal workspace packages � higher maintenance, two registries to secure.
    Consumer impact, rename cost, and release-automation implications are evaluated in .reports/ecosystem/DISTRIBUTION_* reports (Phase 4 deliverables).

Acceptance Criteria

  • One strategy explicitly approved by the project owner (human decision gate).
  • Package-by-package rename/migration inventory produced (PACKAGE_INVENTORY).
  • npm credentials refreshed and npm whoami succeeds (or GitHub Packages auth verified).
  • .npmrc updated to match the chosen strategy.
  • First publish performed under the approved name with verification.

Dependencies

Risk and Rollback

Pre-first-publish rename is zero-cost. Publishing is irreversible per version � verify name ownership before any npm publish. Do not publish until this issue is resolved with explicit approval.

Execution Evidence

2026-10-12: registry checks (npmjs 404/200 responses), npm whoami ? 401, .npmrc inspection.

Activity

  1. coderooz commented on Oct 12, 2026

    @coderooz
    OwnerAuthor

    Evidence update (2026-10-12, later session) — premise correction

    Re-verification this session disproves the core premise recorded under Evidence above
    (「@coderooz scope: 404 on npm (not owned)」).

    What was wrong

    A 404 on @coderooz/code-blocks only means that package name was never published. It says
    nothing about who owns the scope. The scope-ownership conclusion was inferred from
    package-level 404s while the GitHub-Packages .npmrc routing masked npmjs state.

    New evidence

    1. Your npm username is coderooz — maintainer field on expo-template-coderooz@1.0.3,
      @uaif/core@0.1.0, @uaif/cli@0.1.0 (packages this owner published) = coderooz.
    2. GET https://registry.npmjs.org/-/org/coderooz/user → 200 {"coderooz":"owner"}
      (fabricated names return 404) → the npm account exists.
    3. npm official docs (docs.npmjs.com scope page, fetched today): "Each npm user/organization
      has their own scope, and only you can add packages in your scope"
      , with "Publishing to your
      user scope (@username/module)"
      as a standard path.
    4. scope:coderooz search → 0 hits; scope:coderooz_org → 0 hits → both scopes have zero
      packages published
      (rename cost remains zero under any option).
    5. Routing confirmed at two levels: global ~/.npmrc (@coderooz:registry=https://npm.pkg.github.com/)
      and this repo's untracked .npmrc (same line; npm config get @coderooz:registry confirms).

    Consequence for the three options

    A fourth option is now on the table and is the new analysis recommendation:

    • Option A — keep @coderooz/* on public npm: zero renames (all 35 package.json files
      already use @coderooz/*), no consumer friction. Requires: refresh npm token (still E401),
      remove both GitHub-Packages routing lines, then one authenticated confirmation
      (npm whoami must print coderooz).
    • Option B — rename to @coderooz_org/*: still fully viable (org exists, unused); becomes
      the fallback if the authenticated confirmation fails, or the choice if team-permission
      structure is desired.
    • Option C — GitHub Packages @coderooz/*: unchanged analysis (high consumer friction,
      registry split with the already-published npmjs packages).
    • Option D — hybrid: unchanged (blocked by EXT internal dependency closure).

    Unchanged

    Nothing here authorizes publishing, renaming, or credential changes. The approval gate stands:
    owner must pick A/B/C/D explicitly and refresh npm credentials.

    Full brief: .reports/ecosystem/EXT46_NAMESPACE_DECISION_BRIEF.md
    (also: DISTRIBUTION_DECISIONS.md § ADDENDUM preserves the original text with correction).

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions