jpskill.com
🛠️ 開発・MCP コミュニティ

dependency-sync

Detect new imports in modified files and auto-install missing dependencies. Works with npm, uv, pip, cargo, go mod, and other package managers. Triggers after code implementation to keep manifests in sync.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o dependency-sync.zip https://jpskill.com/download/18028.zip && unzip -o dependency-sync.zip && rm dependency-sync.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18028.zip -OutFile "$d\dependency-sync.zip"; Expand-Archive "$d\dependency-sync.zip" -DestinationPath $d -Force; ri "$d\dependency-sync.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して dependency-sync.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → dependency-sync フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Dependency Sync Skill

変更されたコードファイル内の新しいインポートを自動的に検出し、パッケージマニフェストを更新します。この Skill は、新しい依存関係を使用するコードが記述されたときに、適切なマニフェストファイル (package.json, pyproject.toml, requirements.txt など) が自動的に更新されるようにします。

変数

変数 デフォルト 説明
AUTO_INSTALL true 検出された依存関係を自動的にインストールします
PROMPT_BEFORE_INSTALL false インストール前にユーザーに確認します (AUTO_INSTALL を上書きします)
INCLUDE_DEV_DEPS true 開発依存関係 (テストフレームワーク、リンター) を検出します
COMMIT_CHANGES true タスクの一部としてマニフェストの変更をコミットします
TRIGGER_DOCS_AUDIT true 依存関係の追加後に docs-audit --new-only を実行します

手順

必須 - 以下のワークフローの手順を順番に実行してください。手順をスキップしないでください。

  1. git diff または実装コンテキストから変更されたファイルを検出します
  2. 変更されたファイルからインポート/require を解析します
  3. 現在のマニフェストの依存関係と比較します
  4. プロジェクトのパッケージマネージャーを特定します
  5. 不足している依存関係をインストールします
  6. オプションで、新しいライブラリに対して docs-audit をトリガーします

危険信号 - 停止して再検討

以下のような状況になろうとしている場合:

  • インポートが実際に使用されていることを確認せずにパッケージをインストールする
  • マニフェストの検出をスキップする (パッケージマネージャーを想定する)
  • 間違ったマニフェストにインストールする (例: devDependencies と dependencies)
  • パッケージがレジストリに存在するかどうかを確認せずにインストールする

停止 -> インポートが本物であることを確認 -> マニフェストを確認 -> それからインストール

ワークフロー

1. 変更されたファイルの収集

現在の実装で変更されたファイルを特定します:

# git コンテキストの場合
git diff --name-only HEAD~1 HEAD -- "*.py" "*.ts" "*.js" "*.tsx" "*.jsx" "*.go" "*.rs"

# またはタスクコンテキストから - 書き込み/編集されたファイル

2. インポートの抽出

言語に基づいて、変更された各ファイルからインポートを解析します:

言語 インポートパターン
Python import X, from X import Y
TypeScript/JavaScript import X from 'Y', require('Y')
Go import "X"
Rust use X::Y, extern crate X

3. パッケージマネージャーの検出

マニフェストファイルをチェックして、パッケージマネージャーを決定します:

マニフェスト パッケージマネージャー インストールコマンド
pyproject.toml (with uv) uv uv add <package>
pyproject.toml (poetry) poetry poetry add <package>
requirements.txt pip pip install <package>
package.json npm/yarn/pnpm npm install <package>
Cargo.toml cargo cargo add <package>
go.mod go go get <package>
pubspec.yaml pub flutter pub add <package>

4. 依存関係の比較

抽出された各インポートについて:

  1. インポート名をパッケージ名に正規化します (例: from PIL import Image -> pillow)
  2. パッケージがマニフェストに存在するかどうかを確認します
  3. 存在しない場合は、インストールリストに追加します

5. 依存関係のインストール

不足している依存関係のインストールコマンドを実行します:

# Python with uv
uv add <package1> <package2>

# Node.js
npm install <package1> <package2>

# Rust
cargo add <package1> <package2>

# Go
go get <package1> <package2>

6. インストール後のアクション

TRIGGER_DOCS_AUDIT が true で、新しい依存関係が追加された場合:

  1. /ai-dev-kit:docs-audit --new-only を実行します
  2. ドキュメントがない場合は、/ai-dev-kit:docs-add-stack を提案します

Cookbook

Python インポートマッピング

  • IF: Python のインポートを解析する場合
  • THEN: cookbook/python-imports.md を読みます
  • RESULT: 正規化されたパッケージ名

Node インポートマッピング

  • IF: JavaScript/TypeScript のインポートを解析する場合
  • THEN: cookbook/node-imports.md を読みます
  • RESULT: 正規化されたパッケージ名

分類ルール

  • IF: 依存関係が開発用か本番用かを判断する場合
  • THEN: cookbook/dependency-classification.md を読みます
  • RESULT: マニフェスト内の正しいターゲット

クイックリファレンス

インポートからパッケージへのマッピング

インポート パッケージ名
PIL pillow Python イメージング
cv2 opencv-python OpenCV
yaml pyyaml YAML パーサー
sklearn scikit-learn ML ライブラリ
bs4 beautifulsoup4 HTML 解析
pg pg (npm) / asyncpg (py) PostgreSQL
@tanstack/react-query @tanstack/react-query 直接一致

開発依存関係の指標

パターン 分類
pytest, vitest, jest テストフレームワーク (開発)
eslint, ruff, black リンター (開発)
@types/* 型定義 (開発)
*-dev, *-debug 開発ツール (開発)

統合ポイント

この Skill は以下によって呼び出されます:

  1. lane-executor: タスクでコードを実装した後
  2. test-engineer: 新しいテスト依存関係が必要なテストを作成した後
  3. 手動: /ai-dev-kit:dependency-sync コマンド経由

Lane Executor での統合例

## 実装後の手順

実装完了後:
1. `dependency-sync` Skill を実行してマニフェストを更新します
2. `post-impl-docs` Skill を実行してドキュメントを更新します
3. ビルド/テストがまだパスすることを確認します

出力

成功レポート

{
  "status": "success",
  "dependencies_added": [
    {"name": "asyncpg", "version": "^0.29.0", "manifest": "pyproject.toml", "type": "production"},
    {"name": "pytest-asyncio", "version": "^0.23.0", "manifest": "pyproject.toml", "type": "development"}
  ],
  "manifest_updated": "pyproject.toml",
  "commit_sha": "abc123",
  "docs_audit_triggered": true
}

変更なしレポート

{
  "status": "no_changes",
  "message": "All imports already present in manifest",
  "files_scanned": 5,
  "imports_found": 12,
  "imports_matched": 12
}
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Dependency Sync Skill

Automatically detect new imports in modified code files and update package manifests. This skill ensures that when code is written that uses new dependencies, the appropriate manifest files (package.json, pyproject.toml, requirements.txt, etc.) are updated automatically.

Variables

Variable Default Description
AUTO_INSTALL true Automatically install detected dependencies
PROMPT_BEFORE_INSTALL false Ask user before installing (overrides AUTO_INSTALL)
INCLUDE_DEV_DEPS true Detect dev dependencies (test frameworks, linters)
COMMIT_CHANGES true Commit manifest changes as part of the task
TRIGGER_DOCS_AUDIT true Run docs-audit --new-only after adding deps

Instructions

MANDATORY - Follow the Workflow steps below in order. Do not skip steps.

  1. Detect modified files from git diff or implementation context
  2. Parse imports/requires from modified files
  3. Compare against current manifest dependencies
  4. Identify package manager for the project
  5. Install missing dependencies
  6. Optionally trigger docs-audit for new libraries

Red Flags - STOP and Reconsider

If you're about to:

  • Install a package without verifying the import is actually used
  • Skip manifest detection (assuming package manager)
  • Install to wrong manifest (e.g., devDependencies vs dependencies)
  • Install without checking if package exists in registry

STOP -> Verify the import is real -> Check manifest -> Then install

Workflow

1. Gather Modified Files

Identify files that were modified in the current implementation:

# If in git context
git diff --name-only HEAD~1 HEAD -- "*.py" "*.ts" "*.js" "*.tsx" "*.jsx" "*.go" "*.rs"

# Or from task context - files that were written/edited

2. Extract Imports

Parse imports from each modified file based on language:

Language Import Pattern
Python import X, from X import Y
TypeScript/JavaScript import X from 'Y', require('Y')
Go import "X"
Rust use X::Y, extern crate X

3. Detect Package Manager

Check for manifest files to determine the package manager:

Manifest Package Manager Install Command
pyproject.toml (with uv) uv uv add <package>
pyproject.toml (poetry) poetry poetry add <package>
requirements.txt pip pip install <package>
package.json npm/yarn/pnpm npm install <package>
Cargo.toml cargo cargo add <package>
go.mod go go get <package>
pubspec.yaml pub flutter pub add <package>

4. Compare Dependencies

For each extracted import:

  1. Normalize import name to package name (e.g., from PIL import Image -> pillow)
  2. Check if package exists in manifest
  3. If missing, add to installation list

5. Install Dependencies

Execute installation commands for missing dependencies:

# Python with uv
uv add <package1> <package2>

# Node.js
npm install <package1> <package2>

# Rust
cargo add <package1> <package2>

# Go
go get <package1> <package2>

6. Post-Install Actions

If TRIGGER_DOCS_AUDIT is true and new dependencies were added:

  1. Run /ai-dev-kit:docs-audit --new-only
  2. Suggest /ai-dev-kit:docs-add-stack if documentation is missing

Cookbook

Python Import Mapping

  • IF: Parsing Python imports
  • THEN: Read cookbook/python-imports.md
  • RESULT: Normalized package names

Node Import Mapping

  • IF: Parsing JavaScript/TypeScript imports
  • THEN: Read cookbook/node-imports.md
  • RESULT: Normalized package names

Classification Rules

  • IF: Determining if dependency is dev or prod
  • THEN: Read cookbook/dependency-classification.md
  • RESULT: Correct target in manifest

Quick Reference

Import-to-Package Mappings

Import Package Name Notes
PIL pillow Python imaging
cv2 opencv-python OpenCV
yaml pyyaml YAML parser
sklearn scikit-learn ML library
bs4 beautifulsoup4 HTML parsing
pg pg (npm) / asyncpg (py) PostgreSQL
@tanstack/react-query @tanstack/react-query Direct match

Dev Dependency Indicators

Pattern Classification
pytest, vitest, jest Test framework (dev)
eslint, ruff, black Linter (dev)
@types/* Type definitions (dev)
*-dev, *-debug Development tools (dev)

Integration Points

This skill is invoked:

  1. By lane-executor: After implementing code in a task
  2. By test-engineer: After writing tests that need new test dependencies
  3. Manually: Via /ai-dev-kit:dependency-sync command

Example Integration in Lane Executor

## Post-Implementation Steps

After completing implementation:
1. Run `dependency-sync` skill to update manifests
2. Run `post-impl-docs` skill to update documentation
3. Verify build/tests still pass

Output

Success Report

{
  "status": "success",
  "dependencies_added": [
    {"name": "asyncpg", "version": "^0.29.0", "manifest": "pyproject.toml", "type": "production"},
    {"name": "pytest-asyncio", "version": "^0.23.0", "manifest": "pyproject.toml", "type": "development"}
  ],
  "manifest_updated": "pyproject.toml",
  "commit_sha": "abc123",
  "docs_audit_triggered": true
}

No Changes Report

{
  "status": "no_changes",
  "message": "All imports already present in manifest",
  "files_scanned": 5,
  "imports_found": 12,
  "imports_matched": 12
}