インストール
uv tool install shikhu対象読者
読みきれないコードベースを引き継いだ、あるいはチームの中で「この領域,到底誰が使っていますか」という質問が絶えない場合に向いています。AI コーディングエージェントに自分のコードで何度も練習させ、「自分はどれだけ理解できているか」を追跡できる数値に変えたいなら、Shikhu の考え方は一度きりの質問と回答より適しています。学習を出題と回答という形に変え、ツールがリポジトリから問題を作ってあなたの正誤を記録し、付属のスキルが指定したファイルの要点を一緒に確認していきます。実際のコードで何度も練習させ、「モデルが自分のコードを読む」ことを受け入れる人に合います。
3 分で最初の試行
公式のルートは 1 つだけで、最初にコマンドラインツールをインストールします。
uv tool install shikhu
インストール後、shikhu は PATH に追加され、分離された環境で動くので、プロジェクトの依存関係と衝突しません。
前提条件は 2 つです。1 つ目は環境に uv があること。2 つ目は OpenRouter の API キーで、リポジトリ直下の .env に置く(自動ロードされます)か、シェルで OPENROUTER_API_KEY をエクスポートします。すべてのモデル呼び出しは OpenRouter を経由するためです。
次に、学びたいコードのルートで実行します。
shikhu init
このステップは実際にファイルを書きます。実行前に確認してください。ローカルのデータベース coverage.db を作成して(自動的に .gitignore に追加されます)、.quizignore を生成し(.gitignore と同様の使い方で、設定やドキュメント系のファイルを出題対象から外します)、2 つのスキルをエージェントのスキルディレクトリにインストールします。
インストール先:スキルはリポジトリに既存の .claude/skills/ および .agents/skills/ に配置されます(使うエージェントがどちらの体系かによる)。どちらも存在しない場合は、両方に作成されます。後から再インストールしたり全体領域に入れたりする場合は shikhu install-skill を使い、--global を付けると全体領域になります。
最初のトリガーは読み取り専用で元に戻せるものを選んでください。スキルに対応したコーディングエージェントで /shikhu-study に小さいファイルを指定するか、/shikhu-inquiry で単一の関数だけに関わる質問をします。質問する前に、その質問が外部モデル呼び出しを伴うこと(OpenRouter 経由、枠を消費)を確認し、確かめてから送ってください。
観察できる成功サインは 3 つあります。エージェントの回答に汎用的なチュートリアルではなく、あなたのリポジトリに実在するファイル名・関数名・呼び出し関係が現れること。質問した内容がクイズの種になり、後から出題時にもう一度出会えること。プロジェクト直下に coverage.db と .quizignore が現れることです。
ユースケース
ケース 1:特定モジュールを集中して自習する。
まずインデックスを作ります。
shikhu summarize
追跡対象のファイルごとに、モデルが生成したキャッシュ済みの要約を書き出します。ファイルごとにモデル呼び出しは 1 回で、内容が変わっていないファイルは再実行されません。スキルと shikhu map はこれらの要約をもとに「ある質問にはどのファイルを見るべきか」を判断します。インデックスができたら、エージェントで /shikhu-study に学びたいファイルやディレクトリを指定し、エージェントが要約が示す場所に従って 1 つずつ案内してくれます。
ケース 2:日々の質問をクイズの種に変える。
エージェントで /shikhu-inquiry を使い、自分のコードに関する質問をします。たとえば、あるエンドポイントの引数はどこから来るのか、あるロジックがなぜこう書かれているのか、ということです。回答し、同時にその質問をクイズの種として記録し、以降ツールがコードからクイズを作る際にその種が参加し、正誤が知識カバレッジとして追跡されます。出題を実際のコードに集中させたい場合は、.quizignore を使って設定ファイルやドキュメント系のファイルを除外してください。
使用上の制限
- OpenRouter の API キーを自分で用意する必要があります。ないと、モデル生成を伴うステップは一切実行できません。
shikhu summarizeはファイル単位で課金されるため、リポジトリが大きいほど初回のインデックスは遅く、高額になります。再実行されるのはファイルの内容が変わったときだけです。- スキルの配置先は、リポジトリにすでに存在するスキルディレクトリ次第です。どちらも無い場合は両方が同時に作成されます。
coverage.dbはプロジェクト内に作られますが自動的に.gitignoreに入るため、バージョン管理には同期されず、カバレッジや解答履歴はチーム間で共有されません。- 出典はコマンドラインツールと 2 つのスキルの使い方、コマンド、インストール先について説明していますが、対応しているプログラミング言語、カバレッジの具体的な計算方法、難易度階級の判定基準は書かれていません。一般的なテストツールの挙動から推測しないでください。