ln-820-dependency-optimization-coordinator について
プロジェクトファイルからパッケージマネージャーを検出し、npm、NuGet、Python 向けのワーカーに依存関係の更新を委任するランタイム対応のコーディネーターです。委任前にセキュリティとリリース時期を確認し、ワーカーの要約を検証して集約レポートを作成します。
主な機能
- 01プロジェクトファイルからパッケージマネージャーを検出
- 02セキュリティとリリース時期を確認
- 03マネージャー別ワーカーに更新を委任
- 04ワーカー要約を検証して結果を集約
- 05更新、失敗、検証結果を報告
活用シーン
- 01複数の技術スタックにまたがる依存関係更新の調整
- 02ワーカーの結果と検証状況を一つのレポートで確認
MCP 対応
ホストのポリシーに従い、MCP 関連のドキュメントツールを利用します。README には MCP サーバーとして公開する機能の記載はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-820-dependency-optimization-coordinatorインストール後、Claude Code で/ln-820-dependency-optimization-coordinatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/breaking_changes_patterns.mdci_tool_detection.mdcoordinator_runtime_contract.mdcoordinator_summary_contract.mddependency_runtime_contract.mdmeta_analysis_protocol.mdsecurity_audit_guide.mdreferences/scripts/coordinator-runtime/lib/artifacts.mjscli-helpers.mjscore.mjsloop-health.mjsruntime-constants.mjsschemas.mjsvalidate.mjsreferences/scripts/dependency-runtime/cli.mjsreferences/scripts/dependency-runtime/lib/guards.mjsphases.mjsstore.mjsreferences/scripts/optimization-runtime/cli.mjsreferences/scripts/optimization-runtime/lib/guards.mjsphases.mjsstore.mjs詳細
パス: ファイルパス(
references/、../ln-*)は、このスキルディレクトリを基準としています。
ln-820-dependency-optimization-coordinator
タイプ: L2 ドメインコーディネーター カテゴリ: 8XX 最適化
複数のスタックにまたがる依存関係のアップグレードを、ランタイムで管理するコーディネーターです。パッケージマネージャーを検出し、マネージャーごとにワーカーを1つ委任して、機械可読なワーカーの要約を記録し、最後にコーディネーターの要約を出力します。
概要
| 項目 | 詳細 |
|---|---|
| 入力 | プロジェクトのパス、および任意のアップグレードポリシー |
| 出力 | ワーカーごとの結果を含む、依存関係アップグレードの集約レポート |
| ワーカー | ln-821(npm)、ln-822(nuget)、ln-823(pip) |
| ランタイム | .hex-skills/dependency/runtime/runs/{run_id}/ |
ワークフロー
フェーズ: 事前確認 -> パッケージマネージャーの検出 -> セキュリティ監査 -> アップグレードの委任 -> 結果の収集 -> 要約の検証 -> 報告
ランタイム契約
必須の読み込み: references/ci_tool_detection.md を読み込みます
必須の読み込み: references/coordinator_runtime_contract.md、references/dependency_runtime_contract.md、references/coordinator_summary_contract.md を読み込みます
ランタイム CLI:
node references/scripts/dependency-runtime/cli.mjs start --identifier repo-deps --manifest-file <file>
node references/scripts/dependency-runtime/cli.mjs status --identifier repo-deps
node references/scripts/dependency-runtime/cli.mjs checkpoint --phase PHASE_3_DELEGATE_UPGRADES --payload '{...}'
node references/scripts/dependency-runtime/cli.mjs record-worker-result --payload '{...}'
node references/scripts/dependency-runtime/cli.mjs record-summary --payload '{...}'
node references/scripts/dependency-runtime/cli.mjs advance --to PHASE_4_COLLECT_RESULTS
node references/scripts/dependency-runtime/cli.mjs complete
必須の状態フィールド:
worker_planworker_resultschild_runsverification_passedreport_readysummary_recorded
ドメインチェックポイント:
PHASE_1_DETECT_PACKAGE_MANAGERS: 検出されたマネージャー、識別ファイル、スキップされたマネージャーPHASE_2_SECURITY_AUDIT: マネージャーごとの監査判定、ブロック対象の検出事項、リリースからの経過期間に関するポリシーPHASE_3_DELEGATE_UPGRADES: 委任されたワーカーごとに、ワーカー名、識別子、runId、summaryArtifactPathを含むchild_runを1つ記録しますPHASE_4_COLLECT_RESULTS: 記録済みのワーカー要約と、未解決の失敗または警告PHASE_5_VERIFY_SUMMARY: 最終レポートのパス、検証判定、要約の準備状況
ガードルール:
- 予定されているすべてのワーカーが有効な
dependency-worker要約を出力するまで、PHASE_3_DELEGATE_UPGRADESから先に進まないでください - 最終レポートのチェックポイントが存在し、
dependency-coordinator要約が記録されるまで完了しないでください - ワーカーの状態は JSON 要約のみから判断してください。文章形式の出力から推測しないでください
フェーズ 0: 事前確認
ランタイムを開始する前に、プロジェクトが依存関係作業の対象として有効であることを確認します。
| 確認項目 | 方法 | ブロック条件 |
|---|---|---|
| マニフェストが存在する | ランタイムの start 検証 | 存在しない |
| プロジェクトのパスが存在する | ファイルの確認 | 存在しない |
| アップグレードポリシーが指定されている | マニフェストまたはデフォルト値 | いいえ |
| 識別子に対する既存のアクティブな実行 | ランタイムのアクティブポインター | 競合するアクティブな実行 |
デフォルトオプション:
| オプション | デフォルト | 意味 |
|---|---|---|
upgradeType | major | メジャー、マイナー、またはパッチ |
allowBreaking | true | メジャーバージョンへの移行を許可します |
minimumReleaseAge | 14 | セキュリティ上必要な場合を除き、ごく最近のリリースをスキップします |
testAfterUpgrade | true | ワーカーが変更後にビルド/テストを検証します |
フェーズ 1: パッケージマネージャーの検出
パッケージマネージャーファミリーごとに、ワーカーの対象を1つ検出します。
| パッケージマネージャー | 識別ファイル | ワーカー |
|---|---|---|
| npm | package.json + package-lock.json | ln-821 |
| yarn | package.json + yarn.lock | ln-821 |
| pnpm | package.json + pnpm-lock.yaml | ln-821 |
| nuget | *.csproj または *.sln | ln-822 |
| pip | requirements.txt | ln-823 |
| poetry | pyproject.toml + poetry.lock | ln-823 |
| pipenv | Pipfile + Pipfile.lock | ln-823 |
チェックポイントのペイロードには、次の項目を含める必要があります:
detected_managersindicator_pathsworker_planskipped_reasons
フェーズ 2:セキュリティ監査
負荷の高いアップグレード作業を委任する前に、簡易的な事前セキュリティチェックと最新性チェックを実行します。
| マネージャーファミリー | コマンド | ブロック条件 |
|---|---|---|
| Node.js | npm audit --audit-level=high またはマネージャーに相当するコマンド | 許可された例外がない重大な脆弱性 |
| NuGet | dotnet list package --vulnerable | 許可された例外がない重大な脆弱性 |
| Python | pip-audit --json またはマネージャーに相当するコマンド | 許可された例外がない重大な脆弱性 |
リリース経過期間の制限:
| オプション | デフォルト | 説明 |
|---|---|---|
minimumReleaseAge | 14 days | リリースからの経過期間が短すぎるパッケージをスキップします |
ignoreReleaseAge | false | 緊急のセキュリティパッチに対する例外です |
チェックポイントのペイロードには、次の項目を含める必要があります。
audit_resultsblocking_findingsrelease_age_policymanagers_cleared_for_delegation
フェーズ 3:アップグレードの委任
ワーカーファミリーごとに子実行を 1 つ委任します。子実行は決定論的で、アーティファクトを基準に動作する必要があります。
以下のルーティングテーブルで選択した具体的なワーカー ID を使って委任します。プロンプト内でファミリーのプレースホルダーを作成したり、推測したスキル ID を使ったりしないでください。
委任コンテキスト:
| フィールド | 型 | 説明 |
|---|---|---|
projectPath | string | 対象プロジェクトの絶対パス |
packageManager | enum | npm、yarn、pnpm、nuget、pip、poetry、pipenv |
identifier | string | 実行内での安定したワーカー識別子 |
runId | string | 決定論的な子実行 ID |
summaryArtifactPath | string | ワーカーサマリーの正確な JSON パス |
options | object | アップグレードポリシー、検証フラグ、安全性フラグ |
ワーカーの選択:
| マネージャーファミリー | ワーカー | 備考 |
|---|---|---|
| npm、yarn、pnpm | ln-821-npm-upgrader | 検出された Node マネージャーごとに子実行を 1 つ実行します |
| nuget | ln-822-nuget-upgrader | .NET 用に子実行を 1 つ実行します |
| pip、poetry、pipenv | ln-823-pip-upgrader | 検出された Python マネージャーごとに子実行を 1 つ実行します |
各ワーカーの起動後:
PHASE_3_DELEGATE_UPGRADESの下にchild_runをチェックポイントとして記録します。- 出力された
dependency-workerサマリーエンベロープを待ちます。 record-worker-resultでワーカーサマリーを記録します。
フェーズ 4:結果の収集
検証済みのワーカーサマリーのみを集約します。
コーディネーターが使用するワーカーサマリーのフィールド:
| フィールド | 説明 |
|---|---|
producer_skill | ワーカー ID(ln-821、ln-822、ln-823) |
summary_kind | dependency-worker である必要があります |
identifier | 安定したワーカー識別子 |
payload.status | 完了、一部完了、または失敗 |
payload.upgrades | 適用済みのアップグレードと変更前・変更後のバージョン |
payload.warnings | ブロック要因ではない問題 |
payload.verification | ビルド/テストの検証結果 |
payload.artifact_path | 該当する場合、ワーカーが管理する永続レポートのパス |
収集結果:
worker_resultssuccess_countpartial_countfailed_countblocking_failures
フェーズ 5:サマリーの検証
最終的な永続レポートを作成し、コーディネーターが決定論的に完了できることを検証します。
検証チェックリスト:
- 計画したすべてのワーカーが、有効なサマリーエンベロープを 1 つずつ出力している
- 集計数が記録済みのワーカー結果と一致している
- 最終レポートのパスが存在するか、書き込み可能な状態になっている
- 完了前に
report_readyとverification_passedが true になっている
失敗時の対応:
- 成功したワーカーの結果はそのまま保持します。
- 失敗したワーカーをコーディネーターレポートに明記します。
- ワーカーがすでに検証した内容を超えて、ロールバック操作を作り出さないでください。
フェーズ 6:レポート
コーディネーターのレポートスキーマ:
| フィールド | 説明 |
|---|---|
package_managers | この実行で処理した検出済みパッケージマネージャー |
workers_activated | 委任したワーカー |
total_packages | 全ワーカーで分析したパッケージ数 |
upgraded | アップグレードに成功したパッケージ |
skipped | すでに最新版、またはポリシーによりスキップされたパッケージ |
failed | 失敗したパッケージまたはワーカーの実行 |
breaking_changes | メジャーバージョンへのアップグレードまたは移行 |
verification_passed | 検証結果の総合判定 |
per_worker[] | 機械可読形式のワーカー結果の概要 |
warnings[] | ワーカー間の警告 |
完了手順:
- 永続レポートを書き込みます。
- レポートのパスと検証結果をチェックポイントに記録します。
record-summaryを使用してdependency-coordinatorの概要エンベロープを記録します。- レポートのチェックポイントとコーディネーターの概要が揃った後にのみ、ランタイムを完了します。
設定
Options:
upgradeType: major # major | minor | patch
allowBreaking: true
minimumReleaseAge: 14
auditLevel: high # none | low | moderate | high | critical
testAfterUpgrade: true
buildAfterUpgrade: true
rollbackOnFailure: true
skipDev: false
skipOptional: true
エラー処理
回復可能:
| エラー | 復旧方法 |
|---|---|
| ピア依存関係の競合 | ワーカーの結果を部分的な結果として保持し、収集を続けます |
| あるワーカーでのビルド失敗 | 失敗を保持し、他のワーカーの処理を続けます |
| ネットワークタイムアウト | ワーカーがローカルで再試行し、その後失敗を報告します |
致命的:
| エラー | アクション |
|---|---|
| パッケージマネージャーが見つからない | 空の結果レポートで終了します |
| ランタイム検証の失敗 | 実行を一時停止し、介入を求めます |
| 計画された子実行のワーカー概要がない | 収集段階から先に進みません |
参照資料
TodoWrite の形式(必須):
- Detect package managers (in_progress)
- Delegate ln-821-npm-upgrader child runs (pending)
- Delegate ln-822-nuget-upgrader child runs (pending)
- Delegate ln-823-pip-upgrader child runs (pending)
- Aggregate dependency-worker summaries (pending)
ワーカーの呼び出し(必須)
ホストスキルの呼び出し: Skill(skill: "...", args: "...") による委任が必須です。
- Claude:表示どおりに Skill ツールを呼び出します。
- Codex:Skill ツールがない場合は、利用可能なスキルから指定されたスキルを見つけて
SKILL.mdを読み、argsを$ARGUMENTSとして扱い、そのスキルのワークフローを実行してから、結果または成果物を持ってここに戻ります。 - ワーカーのロジックをインライン化したり、対象のスキルを実行せずにワーカーを完了扱いにしたりしないでください。
| フェーズ | ワーカー | コンテキスト |
|---|---|---|
| 3 | ln-821-npm-upgrader | packageManager、runId、正確な summaryArtifactPath を指定した分離された子実行 |
| 3 | ln-822-nuget-upgrader | packageManager、runId、正確な summaryArtifactPath を指定した分離された子実行 |
| 3 | ln-823-pip-upgrader | packageManager、runId、正確な summaryArtifactPath を指定した分離された子実行 |
すべてのワーカー:子ランタイムを開始し、child_run メタデータをチェックポイントに記録してから、ワーカースキルを明示的に呼び出し、record-worker-result を介して出力された dependency-worker の概要エンベロープを取り込みます。
# One invocation per detected package manager (sequential per family):
node references/scripts/dependency-runtime/cli.mjs start --skill {worker} --identifier {packageManager} --manifest-file {workerManifestPath} --run-id {childRunId} --summary-artifact-path {childSummaryArtifactPath}
node references/scripts/optimization-runtime/cli.mjs checkpoint --phase PHASE_3_DELEGATE --payload '{"child_run":{"worker":"{worker}","run_id":"{childRunId}","summary_artifact_path":"{childSummaryArtifactPath}","package_manager":"{packageManager}"}}'
Skill(skill: "{worker}", args: "{packageManager} --run-id {childRunId} --summary-artifact-path {childSummaryArtifactPath}")
Read {childSummaryArtifactPath}
node references/scripts/optimization-runtime/cli.mjs record-worker-result --payload-file {childSummaryArtifactPath}
ワーカートークンの置換:{worker} は ln-821-npm-upgrader、ln-822-nuget-upgrader、ln-823-pip-upgrader のいずれかです。
完了の定義
- 検証済みマニフェストと安定した識別子を使用してランタイムを開始した
- プロジェクトの指標からパッケージマネージャーを検出した
- 実行前のセキュリティチェックとリリース経過日数の確認を完了した
- 計画された各ワーカーファミリーに子実行を 1 つずつ委任した
- すべての子実行が有効な
dependency-workerの概要を出力した - コーディネーターのレポートに、ワーカーごとのアップグレード、警告、検証結果を集約した
- 完了前に最終的な
dependency-coordinatorの概要を記録した
フェーズ 7:メタ分析
任意の参照資料:ユーザーが実行後のメタ分析またはプロトコル形式での実行の振り返りを求めた場合に限り、references/meta_analysis_protocol.md を読み込みます。
スキルの種類:optimization-coordinator。要求された場合は、すべてのフェーズが完了した後に実行します。optimization-coordinator の形式でチャットに出力します。
バージョン: 1.1.0 最終更新日: 2026-01-10