mcpField
D
deps

deps

github.com/boshu2セキュリティ45054 回インストール今日更新
リポジトリ

deps について

Deps Skillは、Go、Node、Python、Rust、Rubyのプロジェクトで依存関係の監査、脆弱性確認、ライセンス審査、更新を進める手順を示します。エコシステム別の検査、深刻度の分類、更新時のテスト確認、レポート作成を定めています。

主な機能

  1. 01対応する依存関係エコシステムを検出
  2. 02脆弱性と古いパッケージを監査
  3. 03依存関係のライセンスを確認
  4. 04深刻度別に検出結果を分類
  5. 05テストを確認しながら依存関係を更新
  6. 06依存関係レポートを作成

活用シーン

  1. 01プロジェクトの依存関係の健全性確認
  2. 02既知の脆弱性への対応優先度付け
  3. 03ライセンス準拠状況の審査
  4. 04テストを検証しながらパッケージを更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/boshu2/agentops --skill deps

インストール後、Claude Code で/depsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
deps.feature
library-update-ratchet.md
scripts/
validate.sh

詳細

Deps スキル

クイックリファレンス:/deps audit | /deps update [--major|--minor|--patch] | /deps vuln | /deps license

このワークフローを必ず実行してください。説明するだけではいけません。

モード

モードコマンド目的
監査/deps audit依存関係の健全性を全面的に確認します:脆弱性、更新遅れ、ライセンス
更新/deps update [--major|--minor|--patch]テストで検証しながら依存関係を更新します
脆弱性/deps vuln脆弱性に絞ってスキャンし、修正します
ライセンス/deps licenseライセンスのコンプライアンスを監査します

デフォルト(引数なしの/deps):監査モードを実行します。


ステップ 0:エコシステムを検出する

作業ディレクトリ内のマニフェストファイルをスキャンします。複数のエコシステムが共存している場合があります。

マニフェストエコシステムロックファイル
go.modGogo.sum
package.jsonNodepackage-lock.json / yarn.lock / pnpm-lock.yaml
pyproject.toml / requirements.txtPythonrequirements.txt / poetry.lock
Cargo.tomlRustCargo.lock
GemfileRubyGemfile.lock
# Detect all ecosystems present
for f in go.mod package.json pyproject.toml requirements.txt Cargo.toml Gemfile; do
  [[ -f "$f" ]] && echo "FOUND: $f"
done

マニフェストが見つからない場合は、停止して次のように報告します:「対応している依存関係マニフェストが見つかりません。」


ステップ 1:現在の状態を監査する

エコシステムに適したコマンドを実行します。分類のため、すべての出力を取得してください。

Go
go list -m -u all          # List all modules, flag available updates
govulncheck ./...           # Vulnerability scan against Go vuln DB
go mod tidy                 # Clean up unused deps (dry-run first)
Node
npm audit                   # Known vulnerabilities
npm outdated                # Available updates (current vs wanted vs latest)
npx license-checker-webpack-plugin --out /dev/stdout 2>/dev/null || npx license-checker --json
Python
pip-audit                   # Vulnerability scan (install: pip install pip-audit)
pip list --outdated         # Available updates
pip-licenses 2>/dev/null || echo "pip-licenses not installed"
Rust
cargo audit                 # Vulnerability scan (install: cargo install cargo-audit)
cargo outdated              # Available updates (install: cargo install cargo-outdated)
cargo license 2>/dev/null || echo "cargo-license not installed"
Ruby
bundle audit check          # Vulnerability scan (install: gem install bundler-audit)
bundle outdated             # Available updates

ステップ 2:検出事項を分類する

検出事項をすべて、次の重大度のいずれか1つに分類します。

重大度基準対応
重大悪用が確認されている既知のCVE、CVSS >= 9.0直ちに更新し、リリースをブロックします
高悪用が確認されていないセキュリティアドバイザリ、CVSS 7.0-8.9、セキュリティ上の影響を伴うメジャーバージョンの遅れ現在のセッション中に更新します
中マイナーバージョンの遅れ、非推奨パッケージ、古い推移的依存関係更新を計画し、可能であればまとめて対応します
低パッチレベルの更新、外観上のバージョン変更、情報提供のみのアドバイザリ随時更新します

次のサマリーテーブルを出力します:

SEVERITY   PACKAGE            CURRENT   AVAILABLE   REASON
Critical   example-lib        1.2.3     1.2.8       CVE-2025-XXXXX (RCE)
High       some-framework     3.1.0     4.2.0       Security advisory SA-2025-YYY
Medium     helper-pkg         2.0.1     2.3.0       3 minor versions behind
Low        util-lib           1.0.0     1.0.1       Patch release

ステップ 3:更新戦略

要求された更新範囲に基づいて戦略を選択します(指定がない場合は、分類に基づきます)。

ライブラリファミリー全体または依存関係の範囲全体を更新するよう要求された場合は、マニフェストを変更する前にreferences/library-update-ratchet.mdを読んでください。ここでは、パッケージごとのループ、ロールバックの証拠、リリースノートの確認方法を定めています。

パッチ更新(--patchまたは重大度「低」)
  • すべてのパッチ更新をまとめて行います。
  • まとめて更新した後、テストスイート全体を1回実行します。
  • 1つのコミットにまとめます:chore(deps): batch patch updates。
マイナー更新(--minorまたは重大度「中」)
  • 依存関係を1つずつ更新します。
  • 更新のたびにテストを実行します。
  • 個別にコミットします:chore(deps): update <pkg> to <version>。
メジャー更新(--majorまたは重大度「高」/「重大」)
  • まず、互換性を損なう変更を調査します(CHANGELOG、移行ガイド、リリースノートを確認)。
  • 依存関係を1つずつ更新します。
  • 更新のたびにテストスイート全体を実行します。
  • 互換性を損なう変更を本文に記載して、個別にコミットします:
    chore(deps): update <pkg> to <version>
    
    Breaking: <brief description of what changed>
    
判断マトリックス
フラグパッチマイナーメジャー
--patchはいいいえいいえ
--minorはいはいいいえ
--majorはいはいはい
(デフォルト)はいはいいいえ

ステップ 4:更新を実行する(更新モードのみ)

更新する依存関係ごとに、次のループを厳密に実行します。

1. Record current state (version, lock file hash)
2. Update the dependency
3. Run tests: `go test ./...` / `npm test` / `pytest` / `cargo test`
4. If PASS:
   - Stage changed manifest + lock file
   - Commit: chore(deps): update <pkg> from <old> to <new>
5. If FAIL:
   - Revert: restore manifest + lock file to pre-update state
   - Document the incompatibility in the report
   - Continue to next dependency
エコシステム固有の更新コマンド
エコシステムパッチ/マイナーメジャー
Gogo get <pkg>@latestgo get <pkg>@v<major>
Nodenpm update <pkg>npm install <pkg>@latest
Pythonpip install --upgrade <pkg>pip install <pkg>~=<version>
Rustcargo update -p <pkg>Cargo.tomlを編集してから、cargo updateを実行
Rubybundle update <pkg>Gemfileを編集してから、bundle installを実行

ステップ 5:レポートの出力

レポートを .agents/deps/ に書き込みます。必要に応じてディレクトリを作成してください。

mkdir -p .agents/deps

ファイル名の形式:YYYY-MM-DD-deps-<mode>.md

レポートテンプレート
# Dependency Report - <mode> - <date>

## Ecosystem: <detected>

## Summary
- Total dependencies: <N>
- Outdated: <N>
- Vulnerable: <N>
- License issues: <N>

## Findings

### Critical
<table or "None">

### High
<table or "None">

### Medium
<table or "None">

### Low
<table or "None">

## Updates Applied
<list of commits or "Audit only - no updates applied">

## Failed Updates
<list with reasons or "None">

## License Compliance
<summary or "Not checked - use /deps license">

ライセンスコンプライアンス(ライセンスモード)

互換性マトリックス
ライセンスプロプライエタリでの使用可コピーレフト配布時の義務
MITはいいいえライセンステキストを含める
Apache-2.0はいいいえライセンスと NOTICE ファイルを含める
BSD-2-Clauseはいいいえライセンステキストを含める
BSD-3-Clauseはいいいえライセンステキストを含める。推奨を表明しない
ISCはいいいえライセンステキストを含める
MPL-2.0はい(ファイル単位)弱い変更した MPL ファイルは MPL のままにする
LGPL-2.1条件付き弱い動的リンクは可。静的リンクでは開示が必要
GPL-2.0いいえ強い派生物全体を GPL にする必要がある
GPL-3.0いいえ強い派生物全体を GPL にする必要がある
AGPL-3.0いいえ強いネットワーク経由での利用により開示が必要になる
SSPLいいえ強いサービスプロバイダーはスタック全体をオープンソースにする必要がある
Unlicenseはいいいえ義務なし
ルール
  1. プロプライエタリなプロジェクトでは、すべてのコピーレフトライセンス(GPL、AGPL、SSPL)を Critical として警告します。
  2. 弱いコピーレフト(MPL、LGPL)を Medium として警告します。使用方法を確認してください。
  3. ライセンスがない場合は High として警告します。不明なライセンスは、すべての権利が留保されているものとして扱います。
  4. バージョン間でのライセンス変更を警告します。更新によってライセンスが変わる可能性があります。
プロジェクトの種類を判定する
  • LICENSE に GPL/AGPL が含まれる場合:プロジェクトはコピーレフトであり、すべてのライセンスに互換性があります。
  • LICENSE に MIT/Apache/BSD が含まれる場合、またはプロジェクトがプロプライエタリの場合:コピーレフトの依存関係を警告します。
  • LICENSE ファイルが存在しない場合:プロジェクトのライセンスが未定義であることを警告します。

エラー処理

状況対応
ツール(govulncheck、pip-audit など)がインストールされていない不足しているツールを報告し、インストールコマンドを提示して、利用可能なツールで続行します
ネットワークを利用できない利用可能であればキャッシュ済みの脆弱性データベースを使用し、データの古さを記載します
テストスイートが存在しない明確に警告し、テスト検証をスキップして、レポートに記載します
マニフェストの解析エラーエラーを報告し、そのエコシステムをスキップします

関連項目

  • skills/standards/SKILL.md — 言語固有の規約
  • skills/security/SKILL.md — より広範なセキュリティスキャン
  • skills/vibe/SKILL.md — コード品質の検証
  • references/library-update-ratchet.md

参考ドキュメント

  • references/deps.feature — 実行可能な仕様:マニフェストのスキャン、脆弱性/更新状況/ライセンスの監査、脆弱性+ライセンスモード、複数エコシステム、result.json(soc-qk4b)

コメント