librarian について
librarianは、リモートGitリポジトリの再利用可能なローカルチェックアウトを管理するスキルです。リポジトリ参照を解析してキャッシュを再利用し、定期取得と安全な場合の早送り更新を行います。
主な機能
- 01一般的なGitリポジトリ参照の解析
- 02固定パスへのチェックアウト保存
- 03blobフィルターを使った部分クローン
- 045分間隔で古いリポジトリを更新
- 05可能な場合にクリーンなチェックアウトを早送り更新
活用シーン
- 01リモートリポジトリのローカル検索と分析
- 02既存チェックアウトの再利用
- 03調査前の即時更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mitsuhiko/ agent-stuff --skill librarianインストール後、Claude Code で/librarianを入力して読み込まれたか確認します。
同梱ファイルcheckout.sh
詳細
ユーザーがリモート Git リポジトリ(GitHub/GitLab/Bitbucket の URL、git@...、または owner/repo の省略表記)を指定したときに、このスキルを使用します。
目標は、次の条件を満たす再利用可能なローカルチェックアウトを維持することです。
- 安定している(パスを予測できる)
- 最新の状態を保つ(定期的にフェッチし、安全な場合はファストフォワードする)
- 効率的である(
--filter=blob:noneを使った部分クローンにより、フルクローンの繰り返しを避ける)
キャッシュの場所
リポジトリは次の場所に保存されます。
~/.cache/checkouts/<host>/<org>/<repo>
例:
github.com/mitsuhiko/minijinja → ~/.cache/checkouts/github.com/mitsuhiko/minijinja
コマンド
bash checkout.sh <repo> --path-only
例:
bash checkout.sh mitsuhiko/minijinja --path-only
bash checkout.sh github.com/mitsuhiko/minijinja --path-only
bash checkout.sh https://github.com/mitsuhiko/minijinja --path-only
スクリプトは次の処理を行います。
- リポジトリの参照をホスト/組織/リポジトリに解析します。
- チェックアウトがなければクローンします。
- 既存のチェックアウトがあれば再利用します。
- 古くなっている場合は
originからフェッチします(デフォルトの間隔:300 秒)。 - チェックアウトに変更がなく、アップストリームがある場合は、ファストフォワードマージを試みます。
更新方法
- デフォルトの動作は更新間隔の制限(5 分ごと)で、不要なネットワーク呼び出しを避けます。
- すぐに更新するには、次を実行します。
bash checkout.sh <repo> --force-update --path-only
推奨ワークフロー
checkout.sh --path-onlyでリポジトリのパスを解決します。- そのパスを検索、読み取り、分析に使用します。
- 後で同じリポジトリを参照するときは、再度
checkout.shを呼び出します。キャッシュされたチェックアウトが見つかり、更新されます。
編集が必要な場合
共有キャッシュを直接編集することは避けてください。タスク固有の変更には、別のワークツリーを作成するか、キャッシュされたチェックアウトをコピーしてください。
注意事項
owner/repoのホストは、デフォルトでgithub.comになります。
コメント
Markdown 対応