跳到正文
cccskills
免费在 GitHub 公开中文介绍

npm-supply-chain-check

检查 JavaScript 或 TypeScript 项目的 npm 供应链风险,涵盖近期发布的版本、安装脚本、锁定文件、CI 权限和令牌管理,并按优先级列出配置改进建议。

原文查看原文说明

JavaScript / TypeScript のプロジェクトを、npm のサプライチェーン攻撃(乗っ取られたパッケージの悪性バージョン、インストール時に動くスクリプト、CI からの認証情報の窃取)への備えという観点で読むだけで点検し、直すべき設定を優先順に示す。

ロックファイルの全パッケージについて公開からの日数とインストールスクリプトを npm レジストリで調べる。「npm の依存は大丈夫?」「サプライチェーン攻撃の対策をしたい」「axios みたいな乗っ取りに備えたい」ときに使う。

Audits a JS project's npm supply-chain posture (release-age gates, install scripts, lockfiles, CI tokens).

cccskills/skills星标 0(GitHub 0 + cccskills 0)

实测评分 未实测

查看安装方法

适用场景

  • 检查 npm 依赖风险
  • 核对近期发布的版本
  • 检查 CI 权限和令牌
  • 确认锁定文件的管理情况

中文介绍

功能

此技能会读取 JavaScript 或 TypeScript 项目,检查其防范 npm 供应链攻击的配置。它会根据锁定文件识别包管理器,并检查版本发布等待设置、依赖包的安装脚本、CI 安装命令、GitHub Actions 的引用方式与权限,以及令牌的存放位置。它还会通过 npm 注册表核对锁定文件中所有包的发布时间和脚本定义,指出近期发布或已撤回的版本,以及安装时会运行脚本的包。检查结果按优先级排列,并附上可直接采用的配置示例。

适用场景

当您想检查 npm 依赖是否存在风险、重新审视 CI 的权限和凭据管理,或确定应先调整哪些配置时,可以使用此技能。

使用示例

  • “检查这个项目的 npm 依赖。”
  • “核对安装脚本和 CI 令牌设置。”
  • “按优先级列出防范供应链攻击的措施。”

注意事项

需要 Node.js 18 或更高版本。技能会连接 registry.npmjs.org 获取包的发布时间和脚本定义,不会发送项目文件或凭据。无法联网时,会跳过依赖注册表信息的检查。技能不会安装包、运行包脚本或更改配置;只有在您同意后才会编辑文件。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

文档检查

AI 根据 SKILL.md 的内容检查了需要注意的操作和使用前提。评分只依据实际运行的结果(实测对比)。

安全性发送数据、删除文件、执行命令等是否有说明
A良好仅获取注册表公开信息;不安装、不运行脚本,编辑前需获同意。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足需要 Node.js 18 及以上和注册表访问权限,并说明了离线处理方式。

不计入评分。 由 AI(OpenAI Codex)于 2026年10月27日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(2)

  • SKILL.md7.4 KB
  • scripts/lockfile-check.mjs6.1 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

npm-supply-chain-check

npm では、人気パッケージの開発者アカウントが乗っ取られ、悪性のバージョンが公開される事件が続いています(2025 年の自己増殖型ワーム Shai-Hulud、2026 年の axios の侵害など)。悪性バージョンの多くは、数時間から数日で見つかって取り下げられます。そのため、次の 3 つで被害の大半を防げます。

  • 公開されたばかりのバージョンを入れない
  • インストール時のスクリプトを勝手に動かさない
  • CI の認証情報を絞る

このスキルは、プロジェクトがこの 3 つをできているかを点検します。

守ること

  • 点検は 読むだけ。npm install などのインストール、パッケージのスクリプトの実行、設定ファイルの書き換えはしない。直すかどうかはユーザーが決める。
  • 外部への通信は、付属のスクリプトが https://registry.npmjs.org からパッケージの公開情報(公開日時・スクリプト定義)を取得するだけ。プロジェクトのファイルや認証情報は送らない。
  • .npmrc などにトークンが書かれていても、値は表示しない。「書かれている」ことだけを伝える。

前提

  • Node.js 18 以上(付属スクリプトが組み込みの fetch を使う)。
  • ネットワークに出られない環境では手順 3 を飛ばし、その旨を結果に書く。

手順

1. パッケージマネージャーとバージョンを確かめる

  • ロックファイルから判断する: package-lock.json(npm)・pnpm-lock.yaml(pnpm)・yarn.lock(Yarn)・bun.lock(Bun)。package.json の packageManager も見る。
  • バージョンを確かめる(npm -v・pnpm -v・yarn -v)。手順 2 の設定が使えるかどうかがバージョンで変わる。
  • ロックファイルがリポジトリに コミットされていない(.gitignore に入っている、存在しない)なら、それを最初の指摘にする。

2. 設定を点検する

#点検すること見る場所望ましい状態
1公開から日の浅いバージョンを避ける設定npm 11.10 以上: .npmrc の min-release-age(日数)/pnpm: pnpm-workspace.yaml の minimumReleaseAge(分。pnpm 11 は既定で 1440)/Yarn 4.10 以上: .yarnrc.yml の npmMinimalAgeGate1〜7 日の待ち時間がある。除外(minimumReleaseAgeExclude など)は最小限
2インストールスクリプトの扱いnpm: .npmrc の ignore-scripts/pnpm: onlyBuiltDependencies・strictDepBuilds(pnpm 10 以降は既定で依存のスクリプトを動かさない)/Yarn: enableScripts依存のスクリプトは既定で止め、必要なものだけ許可している
3CI のインストール方法.github/workflows/*.yml などnpm ci・pnpm install --frozen-lockfile・yarn install --immutable で、ロックファイルどおりに入れている
4GitHub Actions の固定uses: の行外部の Action はタグではなくコミット SHA で固定。pull_request_target で外部 PR のコードを checkout していない
5CI の権限とトークンワークフローの permissions:・secrets.*permissions を最小に絞っている。npm の公開には長期トークンではなく Trusted Publishing(OIDC)を使っている
6直接の依存の書き方package.json*・latest・Git の URL・知らないレジストリを使っていない
7認証情報の置き方.npmrc・.env がコミットされていないかトークンをリポジトリに置いていない

3. ロックファイルの全パッケージを調べる

node <このスキルのフォルダ>/scripts/lockfile-check.mjs <プロジェクトのフォルダ> --days 7
  • --days: これより新しいバージョンを「公開されたばかり」として挙げる(既定 7)。
  • --max: 調べる件数の上限(既定 5000)。大きいプロジェクトで時間がかかるときに使う。
  • 結果(JSON)の読み方:
    • recent: 公開から --days 日未満のバージョン。最優先で確かめる。 そのパッケージの GitHub のリリースや変更履歴にそのバージョンがあるか、npm のページで公開者がいつもと同じかを見る。乗っ取りの事件が報じられていれば、そのバージョンと照らし合わせる。
    • installScripts: インストール時にスクリプト(preinstall / install / postinstall)が動くパッケージ。手順 2 の #2 で許可しているものと照らし合わせ、知らないものがあれば挙げる。
    • missing: レジストリにもう無いバージョン(取り下げ済み)。悪性で取り下げられた可能性があるので、必ず挙げる。
    • deprecated: 非推奨。セキュリティ上の理由が書かれていれば挙げる。
    • errors: 取得に失敗したもの。社内レジストリのパッケージなどは対象外として扱う。

4. 結果を返す

## npm-supply-chain-check: <プロジェクト>

パッケージマネージャー: pnpm 10.18 / ロックファイル: あり(コミット済み) / 調べた依存: 612 件

### すぐ直す
1. **公開日数の待ちがない** — `pnpm-workspace.yaml` に次を足す(pnpm 10.16 以上)
   ```yaml
   minimumReleaseAge: 1440
  1. ...

確かめる

パッケージバージョン理由
foo3.2.1公開から 0.5 日。GitHub のリリースに 3.2.1 がない

できていること

  • CI は pnpm install --frozen-lockfile

- 「すぐ直す」は効果の大きい順に並べ、それぞれに貼れる設定の差分を付ける。設定名と単位(日・分)は、手順 1 で確かめたバージョンのものを使う。分からなければ公式ドキュメントで確かめるよう添える。
- 待ち時間の設定は、公開から日の浅い悪性バージョンには効くが、長く潜伏する攻撃は防げない。過信しないよう一言添える。
- 直すかどうかを聞き、ユーザーが了承したときだけ設定ファイルを編集する。

## このスキルについて

- 作者: cccskills(https://github.com/cccskills/skills)
- 外部への通信は `registry.npmjs.org` からの公開情報の取得だけ。インストール・スクリプトの実行はしない。

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

cccskills-find

免费有简介

通过 cccskills.com 公开 API 搜索适合特定任务的 Agent Skills,并比较执行评分、安全检查、安装条件、许可证、更新日期和价格,帮助筛选候选项并提供安装命令或技能页面。

  • 寻找会议纪要技能
  • 比较适合某项工作的技能
  • 查看安全检查和许可证
cccskills/skills02026年10月27日 更新

帮助日本企业整理个人信息泄露或疑似泄露后的初步应对,核对向个人信息保护委员会报告的条件和期限,并起草内部通报、本人通知、公开说明及咨询答复等文书。

  • 整理疑似泄露后的初步处置
  • 核对个人信息保护委员会报告期限
  • 起草受影响者通知
cccskills/skills02026年10月27日 更新

jp-business-mail

免费有简介

撰写或修改日语商务邮件,涵盖请求、致谢、道歉、催办、婉拒、日程协调和初次联系。根据收件人调整措辞,检查敬语与邮件结构,并说明修改理由,同时保留原有事实和承诺。

  • 给客户写请求邮件
  • 修改道歉或催办邮件
  • 撰写日程协调邮件
cccskills/skills02026年10月27日 更新

skill-md-review

免费有简介

按指令清晰度、步骤具体性、安全性和配置要求四项评审 Agent Skill 的 `SKILL.md`,检查格式及引用文件,给出 A/B/C 评级、依据和可直接采用的修改建议。

  • 发布前检查技能
  • 查看评级及其依据
  • 检查安全性和配置要求
cccskills/skills02026年10月27日 更新

skill-security-audit

免费有简介

安装技能或用智能体打开仓库前,可只读检查 `SKILL.md`、脚本及代理设置,查找隐藏指令、凭据外传、反向 Shell 和未确认运行的钩子,汇总风险以辅助判断。

  • 安装前检查陌生技能
  • 检查仓库代理设置
  • 查找隐藏指令和数据外传
cccskills/skills02026年10月27日 更新

查看 cccskills 的全部技能

报告此技能的问题