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.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
dependency-sync.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
dependency-syncフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 を実行します |
手順
必須 - 以下のワークフローの手順を順番に実行してください。手順をスキップしないでください。
- git diff または実装コンテキストから変更されたファイルを検出します
- 変更されたファイルからインポート/require を解析します
- 現在のマニフェストの依存関係と比較します
- プロジェクトのパッケージマネージャーを特定します
- 不足している依存関係をインストールします
- オプションで、新しいライブラリに対して
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. 依存関係の比較
抽出された各インポートについて:
- インポート名をパッケージ名に正規化します (例:
from PIL import Image->pillow) - パッケージがマニフェストに存在するかどうかを確認します
- 存在しない場合は、インストールリストに追加します
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 で、新しい依存関係が追加された場合:
/ai-dev-kit:docs-audit --new-onlyを実行します- ドキュメントがない場合は、
/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 は以下によって呼び出されます:
- lane-executor: タスクでコードを実装した後
- test-engineer: 新しいテスト依存関係が必要なテストを作成した後
- 手動:
/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.
- Detect modified files from git diff or implementation context
- Parse imports/requires from modified files
- Compare against current manifest dependencies
- Identify package manager for the project
- Install missing dependencies
- 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:
- Normalize import name to package name (e.g.,
from PIL import Image->pillow) - Check if package exists in manifest
- 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:
- Run
/ai-dev-kit:docs-audit --new-only - Suggest
/ai-dev-kit:docs-add-stackif 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:
- By lane-executor: After implementing code in a task
- By test-engineer: After writing tests that need new test dependencies
- Manually: Via
/ai-dev-kit:dependency-synccommand
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
}