chore(ci): switch npm to unscoped plumb-cli + enable in cargo-dist installers - #246
Conversation
…st installers The `@plumb` npm scope was never reserved. Switch to publishing the unscoped `plumb-cli` package to the npm account associated with the repo's `NPM_TOKEN` secret. cargo-dist 0.28.0 emits an unscoped package when `npm` is in `installers` and `npm-scope` is left unset. - dist-workspace.toml: add `npm` to `installers`; drop the @plumb prerequisite block from the comment. - install-smoke.yml: ungate npm rows on ubuntu/macos/windows; install command becomes `npm install -g plumb-cli`. - tests/install-smoke-validate.sh: assert `npm_gated == 0`, install string is `plumb-cli` (unscoped), and the workflow header docs describe cargo/curl/npm as non-manual paths with brew gated. - tests/release-security-validate.sh: replace gating asserts with wiring asserts (`installers` includes `npm`, `npm-scope` unset, install-smoke installs `plumb-cli`). - tests/release-readiness-matrix-validate.sh + runbook: record cargo/curl/brew/npm as the active non-manual channels and the first tag-driven publish as the remaining verification gate. - docs/src/{install,introduction}.md + README.md: add the `npm i -g plumb-cli` install path. - docs/src/ci/release-prep.md: replace the "@plumb scope must be reserved" prerequisite block with the maintenance steps for the unscoped publish. - .github/workflows/release.yml: header comment updated to reflect the unscoped publish. `dist plan --tag v0.0.1` now lists `plumb-cli-npm-package.tar.gz` alongside the existing platform archives, installer scripts, and Homebrew formula. Closes #52.
|
I have all the context needed. Here is the full review: Code review summaryPR: #246 — chore(release): switch npm to unscoped plumb-cli + enable in cargo-dist installers Blockers
No Rust source files changed. Zero blocker-class findings apply. Warnings
Architecture compliance
No Rust code changed. All architecture invariants are vacuously satisfied. Anti-pattern scan
Internal consistency auditAll changed files were cross-checked for mutual consistency:
Quality assessmentThis is a CI/docs-only PR. No library or binary Rust code was touched. The change correctly promotes npm from a prep-only/gated channel to an active (non-gated) channel backed by cargo-dist's unscoped package emission, with The one genuine risk is that the npm publish path is untested until the first tagged release. This is acknowledged in Scope check
Verdict: APPROVE |
Pre-V0 (0.0.2) docs sweep: align every public doc surface with the actual binary behavior, drop pre-alpha hedging now that the four install channels are wired, and remove the duplicated install copy that drifted between README, install, and introduction. - README.md: drop the aram-ai-global tagline, "walking skeleton" status, "coming soon"/"placeholder" hedges, and the pre-release install caveat. Install section is now four lines (curl, cargo, brew, npm) plus a link to the canonical install page. - docs/src/install.md: drop the pre-release notice block and the "Status" column. Keep per-channel notes; bump the cargo pin example to 0.0.2; add the npm channel. - docs/src/introduction.md: drop the pre-alpha Status section, add the npm install link, point "build from source" at the hacking-on-Plumb path instead of "the only path available today". - docs/src/configuration.md: drop "walking skeleton" framing on the default-viewport note. - docs/src/cli.md: add `--auto-fetch-chromium` to the lint flag table; remove the hidden `--once` from the watch flag table. - docs/src/blog/launch-v0.6.md: drop the "supported path is still build from source" claim now that brew/npm/curl/cargo are wired; trim the install duplication and link to install.md. - docs/src/ci/github-code-scanning.md, ci/reviewdog.md: replace `cargo install --git ... plumb` with the canonical `cargo install plumb-cli`. - docs/src/mcp/compare-viewports.md: fix the broken `lint_url.md` link and the `local/prd.md` link (PRD is gitignored). - docs/src/mcp/claude.md: drop the long "Verified locally" JSON blob and the "walking-skeleton URL" framing — the canonical example already lives in mcp.md. - docs/src/rules/baseline-rhythm.md: fix `PRD SS11.3 -- ` typo to `PRD §11.3 — `. Note: docs/src/ci/release-prep.md is intentionally untouched. The install-smoke validator (`tests/install-smoke-validate.sh`) on origin/main pins the exact "#51 wired / #52 prep-only" wording in that page; the unscoped-npm switch (PR #246) updates both files together and will replace the prep-only block.
Summary
@plumbnpm scope was never reserved. Switch to publishing the unscopedplumb-clipackage to the npm account associated with the repo'sNPM_TOKENsecret. cargo-dist 0.28.0 emits an unscoped npm package whennpmis ininstallersandnpm-scopeis left unset — the package name comes from the cargo package name (plumb-cli).dist-workspace.toml: addnpmtoinstallers; rewrite the npm comment block to describe the unscoped path and drop the @plumb prerequisite text..github/workflows/install-smoke.yml: ungate the npm rows on ubuntu/macOS/windows; install command becomesnpm install -g plumb-cli.README.md,docs/src/install.md,docs/src/introduction.md,docs/src/ci/release-prep.md): document thenpm i -g plumb-cliinstall path; rewrite the release-prep "npm activation" section to record npm as wired (no scope reservation needed).tests/install-smoke-validate.sh,tests/release-security-validate.sh,tests/release-readiness-matrix-validate.sh) and the v0 release-readiness runbook: assert the new shape — npm ungated, install stringplumb-cli,installersincludesnpm,npm-scopeunset, and brew is the only remaining gated channel..github/workflows/release.yml: header comment updated to describe the unscoped npm publish.dist plan --tag v0.0.1now listsplumb-cli-npm-package.tar.gzalongside the existing platform archives, installer scripts, and Homebrew formula.just checkand the full nextest suite (510 tests) pass locally.Closes #52.
Test plan
just check(all validators green, including the updated install-smoke / release-security / release-readiness asserts).cargo nextest run --workspace --all-features— 510 passed.dist plan --tag v0.0.1 --output-format=jsonincludesplumb-cli-npm-package.tar.gzinartifacts.npmlegs on ubuntu/macOS/windows.npm i -g plumb-cliagainst the published package.🤖 Generated with Claude Code