Your first npm release now has room for a deliberate review. Before approving it, pin down three things: the exact package identity, the files inside the staged archive, and the version readers should eventually receive.

GitHub's October 2, 2026 announcement extends npm stage publish to creating new packages through a local session or granular access token, including a stage-only token. It covers public scoped and unscoped packages and private scoped packages. The proposed first version needs maintainer promotion before installation. Package settings and trusted publishing can be configured after creation.

This guide focuses on a new public package. The review worksheet below is an original proposed procedure based on documentation checked October 7, 2026 (KST); no package was published or installed to prepare it.

A software package waits in a review tray, separated by a gate from a shelf marked Available.
AI-generated editorial illustration: a review holding area and an availability shelf represent separate publishing states.

Recognize the public placeholder

The current npm staged-publishing guide describes a 0.0.0-stage placeholder when a new package is created. That placeholder is publicly available, while the staged candidate and its contents remain unavailable publicly until approval. Seeing a package page therefore does not establish that your intended first version is live.

Use separate status lines in your release notes:

Leave the last line pending until you have its evidence. For a first public release, avoid announcing availability from a successful staging job alone.

A public placeholder card shows 0.0.0-stage beside a sealed candidate package labelled 1.0.0.
AI-generated conceptual illustration of a public 0.0.0-stage placeholder beside a proposed version awaiting approval; 1.0.0 is an example.

Write the target before preparing the upload

Put these fields on one release card. Fill them from the intended release and the actual package metadata, then ask a second person to compare them if one is available.

FieldWhat to recordReason to pause
DestinationRegistry, package name and scopeAn unexpected account, registry or namespace
CandidateExact version and source commitA changed working tree or ambiguous build
AudienceIntended public access and distribution tagA preview accidentally aimed at the stable audience
ReviewMaintainer and release decision ownerNo one available to inspect the staged result

Read publishConfig too: npm's package.json reference explains that it can set publish-time registry, tag and access values. A familiar directory name is insufficient evidence of the destination.

Check tool versions and account prerequisites against the current staged-publishing guide before scheduling a release. It lists npm CLI 11.15.0 or later, Node.js 22.14.0 or later, publish access and account 2FA. Use a Node version supported by your chosen npm release.

Review the archive inventory

Start in the actual package directory. The npm publish reference recommends npm pack --dry-run to see the proposed file set. Inspect package scripts before running packaging commands. For an initial inventory with package scripts disabled, the npm pack reference documents --ignore-scripts.

A script-disabled inventory can miss generated build output. Repeat the review against the release artifact produced by your approved build process. Keep the result beside the source commit so another reviewer knows what the list describes.

An open package archive sits beside example README, LICENSE and CODE sheets and a magnifying glass.
AI-generated editorial illustration of inspecting archive contents. The pictured files are examples, not a universal required-file list.

The files field and ignore rules influence packing, with special inclusions and exclusions described in the package.json reference. Treat configuration as something to verify against the resulting inventory. A tidy repository view alone cannot establish the archive's contents.

Match the review to one stage ID

Staging uploads a real candidate. After an authorized release workflow stages it, npm's guide documents these inspection commands. Replace each placeholder with the actual package or returned stage ID; do not invent an ID from the version number.

Match name, version and tag to the release card, then inspect the downloaded artifact. Keep its checksum with the stage ID and review notes. A checksum helps identify the reviewed bytes; it does not certify their safety or behavior. Open files for inspection without executing unfamiliar scripts.

A review card and waiting package both show sample-kit 1.0.0 beside a closed approval gate and empty availability shelf.
AI-generated conceptual illustration of comparing package identity and the stage identifier before deliberate approval. The package name and version are illustrative.

There are two consequential details in the npm stage reference: staged and published versions share version uniqueness, and a staged entry's tag is immutable. Changing that tag requires rejecting the existing staged entry and staging again. Approval and rejection both require 2FA.

Keep any replacement candidate attached to a new review record. After an uncertain upload response, inspect the queue for the intended package and version before repeating the upload. Record what you found rather than assuming either success or failure.

Walk through a missing-file decision

Imagine a fictional first release, version 1.0.0, whose README promises an import from dist/index.js. The local source tests pass, but the downloaded staged archive contains only source files. That candidate fails the archive review: the advertised entry file is absent.

Record the stage ID, missing path and expected build output, and keep approval pending. The release owner can then resolve the candidate through the documented rejection and staging process, repair the build or packing rules, and inspect the replacement artifact. Fixing the local directory does not establish that the already uploaded candidate contains the fix.

Also review automation permissions separately. GitHub's September 18 stage-only token announcement says such tokens cannot directly publish versions, but retain other package write powers, including moving distribution tags and deprecating versions. Keep them protected; their name does not imply read-only access.

Close with an exact-version receipt

A blank verification receipt separates Staged, Reviewed and Live observations beside a sample-kit 1.0.0 package on a shelf.
AI-generated editorial illustration of recording staging, review and live-version observations separately. Blank fields do not establish publication success.

Only the designated maintainer should make the release decision for the reviewed stage ID. npm stage approve <stage-id> publishes that candidate; it is a consequential release action, not another inspection step.

After approval, use the npm view reference to inspect the exact package/version and its registry metadata. For example, npm view <name>@<exact-version> version asks about that version, while npm view <name> dist-tags checks tag mappings. Keep the destination registry consistent throughout.

Registry metadata confirms what was observed there. Consumer installation and runtime checks need their own evidence. This small separation makes a first-release announcement precise and gives the next maintainer a useful starting point.