Skip to content
Back to skills

Npm Release Age Gate

ASecurity

Configure and review npm min-release-age controls for JavaScript projects, including 7-day default gates, 10-day high-sensitivity profiles, npm version requirements, and safe override handling.

  • 207 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
data-aijavascriptrustjavabashnode

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned May 27, 2026

npx -y skills add jmagly/aiwg --skill npm-release-age-gate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Npm Release Age Gate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Npm Release Age Gate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jmagly-npm-release-age-gate/badge)](https://www.skillsdirectory.com/skills/jmagly-npm-release-age-gate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
namespace: aiwg
name: npm-release-age-gate
platforms: [all]
description: Configure and review npm min-release-age controls for JavaScript projects, including 7-day default gates, 10-day high-sensitivity profiles, npm version requirements, and safe override handling.
---

# npm-release-age-gate

Use this skill when a user wants to slow dependency adoption after a
fresh npm publish, configure `min-release-age`, decide whether to use
npm or pnpm for the gate, or troubleshoot install failures caused by
newly published package versions.

## Triggers

- "release age gate"
- "min-release-age"
- "minimumReleaseAge"
- "7 day npm gate" / "10 day npm gate"
- "new package version blocked"
- "npm supply chain hardening"

## Suggested default

For npm projects, commit this at the repo root:

```ini
min-release-age=7
```

Require npm 11.5+ on contributor machines and in any CI job that can
change the lockfile:

```bash
npm install -g npm@^11.5
npm --version
```

For release-prep dependency churn, major version bumps, or highly
sensitive projects, use a one-command high-sensitivity profile:

```bash
npm install --min-release-age=10
```

## Decision tree

1. Does the project already use npm with a committed `package-lock.json`?
   Keep npm and add `.npmrc`. Migration to pnpm is not required for the
   threat model.
2. Does the project already use pnpm?
   Use pnpm's `minimumReleaseAge` setting in `pnpm-workspace.yaml` or
   `.npmrc` equivalent per pnpm's current docs.
3. Does CI use Node 20 or Node 22 images?
   Install npm 11.5+ before lockfile-changing commands. Older bundled
   npm versions may ignore the gate.
4. Is the job a publish workflow using npm trusted publishing?
   Prefer Node 24 so the workflow has a current npm 11.x and satisfies
   trusted-publishing runtime requirements.

## Override policy

Avoid permanent bypasses. If a dependency must be adopted before the
gate expires:

```bash
npm install --min-release-age=0 <package>
```

Require the commit message or PR body to state:

- package name and version,
- why waiting is not acceptable,
- who approved the override,
- what additional verification was run.

## What to inspect

- `.npmrc` at repo root.
- CI jobs that run `npm install`, `npm update`, or lockfile
  regeneration.
- Developer docs and onboarding docs for npm 11.5+.
- Release runbooks for the 10-day high-sensitivity option.
- Any scripts that pass `--before`; npm cannot use `before` and
  `min-release-age` together.

## Common mistakes

| Mistake | Fix |
|---|---|
| Setting the gate but leaving contributors on npm 10 | Document and enforce npm 11.5+ |
| Assuming `npm ci` updates the lockfile | The gate matters most when the lockfile is regenerated |
| Using `--min-release-age=0` in CI permanently | Remove the bypass and document one-off exceptions |
| Migrating npm projects to pnpm just for this control | Keep npm unless pnpm has independent project value |

## References

- npm config `min-release-age`: <https://docs.npmjs.com/cli/v11/using-npm/config#min-release-age>
- npm trusted publishing: <https://docs.npmjs.com/trusted-publishers>

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.