mcpField
C
clonedeps

clonedeps

github.com/alvinunreal開発9.8k35 回インストール2 日前に更新
リポジトリ

clonedeps について

clonedepsは、選定した依存関係のソースリポジトリをOpenCodeからローカルで参照できるようにするワークフロースキルです。依存関係の調査と承認、クローンやプロジェクトメタデータの管理を行い、クローン先のスクリプト実行を避けます。

主な機能

  1. 01適切な既存の依存関係クローンを再利用
  2. 02@librarianにソース調査を委任
  3. 03クローン前に参照先を検証して承認を取得
  4. 04マニフェストとAGENTS.mdでクローンを記録
  5. 05クローンしたソースをGitの対象外にする

活用シーン

  1. 01開発中に主要な依存関係のソースを調査
  2. 02既存のローカル依存関係クローンを再利用
  3. 03承認済みの依存ソースを固定参照でクローン
  4. 04プロジェクトメタデータを残してクローンを整理

インストール

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

$npx skills add https://github.com/alvinunreal/oh-my-opencode-slim --skill clonedeps

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

同梱ファイルcodemap.mdREADME.md

詳細

Clonedeps スキル

重要な依存関係のソースリポジトリを少数だけ、OpenCode からローカルで参照できるようにします。

これはワークフロースキルであり、コマンドのラッパーではありません。依存関係の検出、ref の検証、クローン、ステータス確認、クリーンアップにヘルパースクリプトを使用しないでください。リポジトリ固有の検討はオーケストレーターと @librarian が行い、承認されたファイルシステム/git 操作はオーケストレーターが直接実行します。

ワークフロー

ステップ 1:既存の状態を確認する

まず、.slim/clonedeps.json が存在するか確認します。

存在する場合:

  1. 新しい計画を librarian に依頼する前に、内容を読みます。
  2. リストにある各 path が .slim/clonedeps/repos/ 以下に存在するか確認します。
  3. 既存のクローン済みリポジトリでユーザーのタスクを満たせる場合は、それを再利用します。
  4. 既存のマニフェストがない、古くなっている、または現在のタスクには不十分な場合に限り、新しい推奨を librarian に依頼します。

マニフェストに有用な項目がすでにある場合は、最初から再スキャン/再計画しないでください。

ステップ 2:Librarian にクローン計画を依頼する

依存関係の特定とソースの解決を @librarian に委任します。

次のプロンプトを使用します。

Understand this project first, then recommend remote source repos that would
help a developer work on it.

Read enough of the current repo to understand:
- what the project does
- its main architecture
- the important integration points
- what external systems or libraries it depends on in practice

Think like a developer trying to debug or extend this project.

Which remote repositories, if cloned locally, would actually help understand the
codebase or solve likely implementation/debugging tasks?

Do not make a dependency dump. Most dependencies are not worth cloning.
Recommend a repo only when its source code would be more useful than docs or the
current repo alone.

For each recommendation, include:
- repo name
- repo URL
- suggested ref/tag/commit if known
- why cloning this source would help
- when it would be useful
- caveats

Also include:
- current-repo files/folders to inspect first
- repos/dependencies you considered but would not clone

Keep it small. Prefer 0–3 strong recommendations over 5 weak ones. If nothing
clearly needs cloning, say so.

Librarian は、次の情報を含む小規模な計画を提示します。

  • 依存関係名
  • 見つかる場合は、現在のバージョン/範囲
  • 正式なソースリポジトリの URL
  • チェックアウトするタグ/コミット/ref
  • ソースがモノレポの場合は、パッケージのサブディレクトリ
  • ローカルソースが役立つ理由
  • 巨大なリポジトリ、タグの欠如、バージョン対応の不確実性などの注意事項

中心的な依存関係は、最大でも 3~5 個を目安にします。ユーザーが挙げた依存関係に加え、中心的なフレームワーク、SDK、ORM、ランタイム/プラグイン API、ビルド/ランタイムツールを含めます。現在のタスクに直接関係しない限り、小規模なユーティリティ、推移的依存関係、開発専用ツールはクローンしないでください。

ステップ 3:計画を検証して確認する

最終承認はオーケストレーターが行います。クローンする前に、次の手順を実行します。

  1. 可能な場合は git ls-remote を使って、ref を手動で検証します。
  2. ピン留めされたタグまたはコミット SHA を優先します。正確なタグが存在しない場合は、正しいモジュール固有のタグ/コミットを探すか、代替案を説明するよう librarian に依頼します。
  3. デフォルトでは、HTTPS の GitHub/GitLab 形式のリポジトリ URL のみを使用します。file://、SSH URL、ローカルパス、認証情報を埋め込んだ URL、非公開または認証が必要なリポジトリは、ユーザーが明示的に承認しない限り拒否します。
  4. 依存関係、リポジトリ URL、ref、理由、注意事項を含む計画をユーザーに提示します。
  5. ユーザーがすぐにクローンするよう明示的に依頼していない限り、ネットワーク経由でクローンする前に確認を求めます。
ステップ 4:Ignore ファイルを更新する

アーティファクトをクローンする前、またはクローン済みの依存関係をクリーンアップする前に、既存の .gitignore と .ignore を調べます。管理対象のブロックがある場合はその位置で更新し、ない場合は末尾に追加します。以下の不足している完全一致の行だけを追加し、項目の重複や無関係なルールの変更はしないでください。これらのブロックにより、クローンしたアーティファクトは git のローカル範囲に保たれ、.ignore の許可リストによって OpenCode から読み取れる状態になります。

.gitignore:

# BEGIN oh-my-opencode-slim clonedeps
.slim/clonedeps/repos/
# END oh-my-opencode-slim clonedeps

.ignore:

# BEGIN oh-my-opencode-slim clonedeps
!.slim/
!.slim/clonedeps.json
!.slim/clonedeps/
!.slim/clonedeps/repos/
!.slim/clonedeps/repos/**
.slim/clonedeps/repos/**/.git/
.slim/clonedeps/repos/**/.git/**
# END oh-my-opencode-slim clonedeps
ステップ 5: ソースを手動でクローンする

ソースリポジトリごとに 1 つのフォルダーを次の場所に作成します:

.slim/clonedeps/repos/<safe-repo-name>/

安全な名前は、パッケージ名ではなくリポジトリのオーナー名/リポジトリ名から導出します。 たとえば、https://github.com/opencode-ai/opencode.git は opencode-ai__opencode になります。/ を __ に置き換え、一般的な .git サフィックスを 取り除き、その他の安全でないパス文字を _ に置き換えます。

複数のパッケージが同じモノレポに由来する場合は、リポジトリを 1 回だけクローンし、 必要に応じて各マニフェストエントリを異なる packagePath 値で同じリポジトリパスに 向けてください。エコシステムフォルダー、パッケージごとのクローンフォルダー、バージョンごとの フォルダーは作成しないでください。2 つの異なるソースリポジトリが同じ安全な名前に 正規化される場合は、手動で区別し、選択したパスを .slim/clonedeps.json に記録してください。

通常の git コマンドでクローン/フェッチします。既存のクローンについては、まず git remote get-url origin が承認済みのリポジトリ URL と一致することを確認します。一致しない場合は、 停止して、クリーンアップ/再クローンを行うかどうかを尋ねてください。

安全な手動 git パターン:

  1. 可能な場合は git ls-remote <repoUrl> <ref> で ref を検証します。
  2. サブモジュール/再帰的な動作なしでクローンします。
  3. 可能な場合はシャローフェッチ/クローンを優先します。
  4. .slim/clonedeps/repos/ 配下の一時ディレクトリにクローンし、チェックアウトが 成功した後に最終的な安全な名前のパスへ移動します。
  5. 失敗した一時クローンを削除します。

クローンしたリポジトリから依存関係のインストール/ビルド/テストスクリプトを実行しないでください。

ステップ 6: ローカル状態を書き込む

将来のエージェントが何が存在するかを把握できるように .slim/clonedeps.json を書き込みます:

{
  "version": "1.0.0",
  "updatedAt": "2026-05-12T00:00:00.000Z",
  "dependencies": [
    {
      "name": "@opencode-ai/plugin",
      "resolvedVersion": "1.3.17",
      "repoUrl": "https://github.com/opencode-ai/opencode.git",
      "ref": "v1.3.17",
      "path": ".slim/clonedeps/repos/opencode-ai__opencode",
      "packagePath": "packages/plugin",
      "reason": "Plugin API source used by the project"
    },
    {
      "name": "@opencode-ai/sdk",
      "resolvedVersion": "1.3.17",
      "repoUrl": "https://github.com/opencode-ai/opencode.git",
      "ref": "v1.3.17",
      "path": ".slim/clonedeps/repos/opencode-ai__opencode",
      "packagePath": "packages/sdk/js",
      "reason": "Core SDK source used to inspect runtime behavior"
    }
  ]
}

以前のクローンが成功した後にクローンが失敗した場合でも、将来の検査が誤解を招かないように、 成功したクローンの状態は書き込んでください。

.slim/clonedeps.json を .gitignore に追加しないでください。これは小さく、 レビュー可能なプロジェクトメタデータであり、コミットできます。無視すべきなのは、 .slim/clonedeps/repos/ 配下のクローンされたリポジトリの内容だけです。

ステップ 7: AGENTS.md に依存関係ソースを登録する

クローンが成功したら、リポジトリルートの AGENTS.md を更新して、将来の エージェントが依存関係ソースが存在する理由と、どこを見ればよいかを把握できるようにします。

AGENTS.md にすでに ## Cloned Dependency Source セクションがある場合は、その セクションを更新します。そうでない場合は、このセクションを追加します:

この形式を使用し、実際のリポジトリを直接列挙してください。各項目を短い 1 文に保つことで、 将来のエージェントがそこに何があるかを知るためだけに余分な読み込みをする必要がなくなります:

## Cloned Dependency Source

Read-only dependency source repositories are available under
`.slim/clonedeps/repos/` for inspection. Do not edit these clones.

- `.slim/clonedeps/repos/<safe-name>/` - `<repo>` at `<ref>`; <one sentence on
  why this source is useful>.
- `.slim/clonedeps/repos/<safe-name-2>/` - `<repo>` at `<ref>`; <one sentence on
  why this source is useful>.

また、構造化マニフェストとして .slim/clonedeps.json を最新の状態に保ってください。ただし、 基本的なリポジトリ一覧のためにエージェントにこれを読ませないでください。

クリーンアップ

ユーザーがクローンした依存関係のクリーンアップを求めた場合は、次を削除します:

  • .slim/clonedeps/repos/
  • .gitignore および .ignore から管理対象の clonedeps マーカーブロック

.slim/clonedeps.json または AGENTS.md セクションを削除する前に確認してください。 これらは意図的なプロジェクトメタデータである可能性があります。

コメント