本文へ移動
cccskills
無料GitHub で公開日本語紹介

npm-supply-chain-check

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 へ通信しますが、プロジェクトのファイルや認証情報は送信しません。ネットワークが使えない場合、公開日時などの確認は省略します。パッケージのインストールやスクリプト実行、設定変更は行わず、編集は利用者が了承した場合に限ります。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

資料チェック

SKILL.md の記述から、注意が要る操作と導入の前提を AI が確認しました。点数は実際に動かした結果(実行検証)だけで付けています。

安全面送信・削除・コマンド実行などの扱いが明示されているか
A良好通信先を限定し、導入・実行・編集をせず、編集前に了承を得る。
導入のしやすさ必要なツールや API キーが少ないか、書かれているか
B一部不足Node.js 18以上が必要で、通信不可時はレジストリ確認を省略する。

点数には入れていません。 2026年10月27日 時点で AI(OpenAI Codex)が判定しました。目安なので、入れる前に原文も確認してください。

評価が違うと思ったら、見直しを依頼する

どの項目が、なぜ違うと思うかを書いてください。ログインは不要です。内容を SKILL.md と照らし合わせて評価を作り直し、この欄に反映します。

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

含まれるファイル(2)

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

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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

無料概要あり

やりたい作業に合う Agent Skills を cccskills.com の公開 API で探し、実行検証のスコア・安全面の判定・ライセンス・更新日で比べて、入れるコマンドまで案内する。「〇〇できるスキルある?」「議事録用のスキルを探して」「いいスキルを見つけて入れたい」ときに使う。Finds and compares Agent Skills for a task via the cccskills.com API (execution score, safety checks, license) and shows the install command.

  • 議事録用のスキルを探したいとき
  • 作業に合う候補を比較したいとき
  • 安全面やライセンスを確認したいとき
cccskills/skills02026年10月27日 更新

incident-first-response-jp

無料概要あり

ランサムウェア・不正アクセス・誤送信などで個人情報の漏えい(またはそのおそれ)が起きたとき、日本の企業がやるべき初動を整理し、時系列の記録、個人情報保護委員会への報告(速報 3〜5 日・確報 30 日/60 日)に要る項目、社内の第一報、本人への通知文、公表文(お詫びとお知らせ)、問い合わせ対応の想定問答の下書きを作る。「ランサムウェアにやられた」「情報漏えいしたかもしれない」「個情委への報告を準備したい」「お詫び文を作って」ときに使う。Drafts Japan-specific breach response: PPC reporting deadlines, notices and public statements.

  • 情報漏えい直後の初動を整理したいとき
  • 個情委への報告期限を確認したいとき
  • 本人通知や公表文を下書きしたいとき
cccskills/skills02026年10月27日 更新

jp-business-mail

無料概要あり

日本語のビジネスメールを、場面(依頼・お礼・お詫び・催促・断り・日程調整・初めての連絡)と相手(社外・社内・目上)に合わせて書く・直す。敬語の誤り(二重敬語・「させていただく」の多用・「了解しました」など)、件名、宛名、クッション言葉、結びまで点検し、直した理由を示す。「メールを書いて」「この文面を直して」「失礼のないメールにして」「お詫びメールを作って」ときに使う。Writes and corrects Japanese business emails with proper keigo.

  • 取引先への依頼メールを書きたいとき
  • お詫びや催促の文面を整えたいとき
  • 日程調整のメールを作りたいとき
cccskills/skills02026年10月27日 更新

skill-md-review

無料概要あり

Agent Skills の SKILL.md を、cccskills の客観評価と同じ4項目(指示の明確さ・手順の具体性・安全面・導入のしやすさ)で A/B/C 採点し、根拠と直し方を返す。「このスキルをレビューして」「SKILL.md を良くしたい」「公開前にスキルを点検して」「スキルの評価を上げたい」ときに使う。Reviews a SKILL.md against the cccskills.com rubric (clarity, specificity, safety, setup) and proposes concrete fixes.

  • 公開前にスキルをレビューしたいとき
  • SKILL.mdの評価と根拠を知りたいとき
  • 安全面や導入条件を点検したいとき
cccskills/skills02026年10月27日 更新

skill-security-audit

無料概要あり

Agent Skills(SKILL.md とスクリプト)や、リポジトリのエージェント設定(CLAUDE.md・AGENTS.md・.claude/settings.json のフック・.mcp.json)を、入れる前・開く前に読むだけで検査し、隠し命令・認証情報の持ち出し・リバースシェル・確認なしの実行などの危険を判定する。「このスキル入れて大丈夫?」「スキルの安全性をチェックして」「クローンしたリポジトリの設定が怪しくないか見て」ときに使う。Audits agent skills and agent config files for hidden instructions, exfiltration and unsafe hooks before you install or open them.

  • 導入前のスキルを点検したいとき
  • リポジトリ設定の安全性を調べたいとき
  • 隠し命令や情報送信を確認したいとき
cccskills/skills02026年10月27日 更新

cccskills のスキルをすべて見る

このスキルの問題を報告する