More than one way to prepare a release

GitHub announced three generally available npm publishing changes on September 3: multiple trusted-publisher configurations for one package, approval gated on completion of malware scanning, and a history of staged versions. These extend existing publishing mechanisms. [September release notice](https://github.blog/changelog/2026-09-03-multiple-trusted-publishing-configurations-for-npm/).

A package is a unit of software that other developers can install and reuse. For an AI application, that might be a library connecting the assistant to a database or displaying its responses. The package's release process therefore matters beyond the person who wrote it. A mistake distributed as a reusable component can reach applications whose owners never examined the original change.

Automation makes this boundary worth designing carefully. An AI coding assistant can prepare a proposed improvement while a build service turns the code into something installable. Deciding to distribute that result is another action, with different consequences. The useful ambition is to make the preparatory work faster and easier to inspect, so maintainers can spend their attention on what the release will change for other people.

Identity replaces a stored publishing secret

npm's documentation describes trusted publishing as authentication through OpenID Connect, or OIDC. The build provider supplies a signed identity that npm checks against an authorized workflow. This avoids keeping a long-lived npm publishing token in the build environment. The documented supported services include hosted GitHub Actions, GitLab.com shared runners and CircleCI cloud; self-hosted runners are excluded. [Trusted-publisher documentation](https://docs.npmjs.com/trusted-publishers/).

That changes the maintenance problem. A reusable secret must be stored, protected and eventually replaced. A workflow identity connects permission to the system doing the job. The maintainer can reason about which release process is authorized instead of passing the same publishing credential among several processes. It is an advantage for automation because the authorization can follow a defined workload rather than a model's interpretation of a written instruction.

The Open Source Security Foundation's design guidance describes checking an identity token's signature and claims against a previously configured trust policy. It also warns that short-lived tokens remain sensitive: disclosure can permit abuse before expiry, and the trusted external system must remain outside an attacker's control. Tokenless configuration does not mean that credentials cease to exist during execution. [OpenSSF design and security model](https://repos.openssf.org/trusted-publishers-for-all-package-repositories).

Additional configurations are alternative permissions

Configurations match independently. The release says one matching OIDC configuration can authorize a request. Other configurations add no restriction, and evaluation order is unspecified. Adding another entry therefore cannot impose an extra condition on an existing one.

Consider a hypothetical project with a stable-release workflow and another that prepares experimental versions. Separate identities let the team describe those routes without forcing both into a single release job. But a tightly restricted stable route cannot compensate for an overly permissive experimental route. Each permitted route needs to make sense by itself. This example follows the documented matching rule; it does not describe a tested package or a discovered vulnerability.

That point matters when an assistant proposes a configuration change. Adding an entry is an authorization decision, even if the edit looks like routine maintenance. A useful assistant would explain which additional workflow becomes eligible and what action it may take. A reviewer then has a concrete change to assess. An explanation that merely says the configuration is more flexible would omit the permission being granted.

Existing permissions also deserve attention. npm's guidance says previous workflows retain their behavior. New configurations allow staging automatically, while direct publication is an additional permission. The September release does not automatically convert every existing publisher to staging-only operation. Traditional token and manual publishing can also coexist with trusted publishing unless separately restricted. [Configuration and migration guidance](https://docs.npmjs.com/trusted-publishers/).

Review the package that will reach users

The staged-publishing documentation describes an intermediate area where a maintainer can inspect a package before making it public. Approval requires two-factor authentication. Maintainers can inspect stage details and download the package archive; staging itself does not require that approval factor. The flow applies to an existing registry package, not a brand-new package's first appearance. [Staged-publishing guidance](https://docs.npmjs.com/staged-publishing/).

The distinction between source code and the built package gives this review a purpose. A repository may contain tests and development files that are not intended for consumers. A build may generate additional code. Reviewing a proposed source change and inspecting the resulting archive answer related but different questions. A release owner needs to know which output is being approved, rather than assuming that anything produced from an acceptable-looking change is ready for distribution.

An AI assistant can help compare the expected contents with the staged archive and organize discrepancies for review. If a file is unexpectedly present or missing, the assistant should identify it and explain the available evidence. It should not invent a reason to approve the package or treat its own successful summary as authorization. This is a proposed use of the workflow, not an npm feature that automatically performs such an inspection.

The update prevents approval while malware scanning is unfinished and adds staged-version history. A completed scan is not a general proof of harmlessness. Maintainers still need to distinguish the prepared candidate from the version they decided to release.

Provenance answers a different question from correctness

npm's provenance documentation describes attestations linking a published package to its source and build instructions, with signing and a public transparency record. It explicitly says provenance does not guarantee the absence of malicious code. Knowing where software came from gives a reviewer evidence to examine; it does not establish that the software behaves as the reviewer wants. [Provenance and its limits](https://docs.npmjs.com/generating-provenance-statements/).

The same distinction applies to AI-assisted code. A clear origin record can connect a release to the change a team reviewed. It cannot decide whether the change implements the right behavior. The people responsible for an application still need to understand its contract with users, including what information it sends and what it is allowed to alter. Reliable automation makes those decisions traceable instead of claiming to remove them.

The Expectancy inspected the announcement and primary documentation without publishing a package, changing an account or testing the registry. Within that limit, the update offers a practical improvement: teams can support more release paths while preserving an inspectable handoff. AI-assisted development benefits when preparing software and authorizing its distribution are both easy to understand. A good release process lets useful work move forward with a clear account of what was approved.