スキル

opensrc:コーディング助手にキャッシュ可能な依存ソースパスを渡す

コーディング助手に依存パッケージのソースを先に渡してから分析させたい人向け。opensrc をグローバルインストールし、初回は取得してキャッシュ、以降はローカルパスを返します。

公式ソース · opensrc

インストール

npm install -g opensrc

誰向けか

opensrc は、コーディング助手に依存パッケージのソースを読ませたい人向けです。npm、PyPI、crates.io、GitHub 上のあるパッケージ実装を調べたいが、リポジトリを手でクローンしたくない場合です。提供する能力は、任意パッケージのソースへ助手がアクセスできるようにし、コマンドラインでソースを取得してキャッシュすることです。

より具体的には、主経路は 1 本の CLI です。インストール後、opensrc path でパッケージ名を指します。初回は取得し、以降はキャッシュ済みのローカルパスを直ちに返します。そのパスを後続の読み取り専用コマンドに渡せます。たとえば PyPI パッケージディレクトリ内をファイル名で探す、などです。

パッケージマネージャや公開ツールとしては向きません。リポジトリの説明は「ソースを取得してキャッシュし、パスを返す」で止まっており、パッケージの改変方法、公開方法、プロジェクトファイルを自動で変えることまでは書いていません。今のプロジェクトへ依存を入れるだけなら、従来のパッケージマネージャを使い続け、opensrc をインストーラーにしないでください。

3 分で最初の試行まで

公式のインストールコマンドはこの 1 本だけです: npm install -g opensrc。リポジトリは https://github.com/vercel-labs/opensrc です。このページだけに従ってください。説明に他のインストーラーやマーケットコマンドはなく、自分で足さないでください。

前提条件: 本機に使える npm があり、CLI をグローバルインストールしてよいこと。インストール場所はグローバル CLI で、コマンド名は opensrc です。入れたら先に端末で opensrc を実行するかヘルプを見て、コマンドが見つかることを確認してください。この段階ではプロジェクトディレクトリへファイルを書きません。

低リスクな最初の作業: もともと読み取り専用で見る公開パッケージを選び、非公開または無許可のリポジトリを指さないでください。端末で opensrc path にそのパッケージ名を付けて実行します。リポジトリ説明どおり、初回はソースを取得してキャッシュし、続けてローカルパスを返します。成功の合図は、コマンドがローカルディレクトリパスを印刷し、すぐ同じコマンドをもう一度走らせたとき、初回のような取得待ちがなく同じパスをすぐ返すことです。

返したパスで次の作業をするなら、先にパスを表示し、読み取り専用の検索を実行するか決めてください。リポジトリの書き方は find $(opensrc path pypi:requests) -name "*.py" です。先に pypi:requests のキャッシュパスを解決し、その中の Python ファイルを列挙します。find を実行する前に、ファイル名を見ているだけであり、削除や書き換えではないことを確認してください。説明はキャッシュディレクトリの既定位置も、キャッシュ削除コマンドも書いていないので、最初の試行は「パスを得てファイルを列挙できる」までで十分です。

利用ケース

ケース 1: コーディング助手に再利用できるローカルソースディレクトリを渡す。流れは opensrc path です。初回取得、以降はキャッシュパスを返します。依存の実装を読んでいて、同じディレクトリを繰り返し開きたいときに向きます。説明は対応するパッケージ名の書き方をすべて列挙しておらず、初回取得とその後すぐパスを返すことだけを強調しています。コマンドが失敗したら https://github.com/vercel-labs/opensrc に戻り、インストールが完了したかを確認し、未記載の導入方法に切り替えないでください。

ケース 2: レジストリをまたいでソースファイルを見る。CLI は npm、PyPI、crates.io、GitHub からソースを取得してキャッシュできると書いています。リポジトリの具体例は pypi:requests に対する find ... -name "*.py" で、そのパッケージ下の Python ファイルを列挙します。レジストリ接頭辞をすでに知っていて、ソースツリーにどのファイルがあるかだけ確認したい人向けです。説明は GitHub や crates.io の同等コマンド形式を展開しておらず、非公開パッケージの認証も書いていません。そこは「CLI がこれらのソースを支援すると称している」までです。接頭辞を自分で発明しないでください。

利用上の境界

導入の境界: 公式は npm install -g opensrc だけを書いており、記載のないインストーラーは使わないでください。能力の境界: 説明はコーディング助手に任意パッケージのソースへアクセスさせ、npm、PyPI、crates.io、GitHub のソースをキャッシュすることです。これらのパッケージを改変するとも、言語のパッケージマネージャの代わりになるとも書いていません。操作の境界: 照合できる具体コマンドは opensrc path と find $(opensrc path pypi:requests) -name "*.py" です。キャッシュ動作は「初回取得、以降は直ちにパスを返す」までで、期限切れ方針や掃除方法はありません。ソース範囲に 4 つのレジストリが出ますが、それだけとは書いておらず、非公開リポジトリの資格情報手順もありません。