コーディング支援AIエージェントに「このリポジトリ特有の作法」を教え込むSKILLファイル(コードと一緒にバージョン管理されるMarkdown形式の説明書)について、その最適化手法を検証した論文が公開されました。実際のプルリクエスト履歴から難しいタスクを掘り起こして評価したところ、最適化手法によって成果に大きな差が出ることが分かりました。
背景と文脈
近年、AIコーディングエージェントに対して、リポジトリ固有の設計方針やビルド手順、命名規則などを書き記したSKILLファイルを与える手法が広がっています。ただし、こうしたファイルがどれだけ実際の作業効率を高めるかを検証した先行研究の多くは、SKILLファイルなしでもエージェントが解けてしまう程度の簡単なベンチマークを使っていました。これでは、実務で本当に役立つ知識を書けているかどうかを判定できません。
今回の論文「Skill Issue: Optimizing Repository SKILLs for Coding Agents」を書いたMykhailo Kozyrev氏らの研究チームは、この問題に正面から取り組みました。9月11日に投稿されたこの論文は、既存のベンチマークが存在しない「素のリポジトリ」でも通用する評価方法を提案しています。
技術/ビジネス面

研究チームが採った方法はシンプルです。対象リポジトリの過去のプルリクエストを取り出し、それが取り込まれる前の時点までコードを巻き戻します。そのうえで、AIエージェントに同じ修正を再現させ、候補となるSKILLファイルを与えた場合と与えなかった場合で成績を比較するという仕組みです。実際に過去にマージされた修正を「課題」として使うため、簡単すぎず、しかも現実的なタスクが自然に集まります。
検証は3つのKotlin製リポジトリで行われ、SKILLファイルを自動生成・改善する2つの手法「GEPA」と「SkillOpt」を比較しました。結果、GEPAで最適化したSKILLファイルを使った場合、平均で4.9ポイントの成績向上が見られた一方、SkillOptによる改善はわずか0.1ポイントにとどまりました。ただしGEPAの結果についても、リポジトリ1つ分のデータ量では、AIエージェントの実行ごとのばらつきの範囲内に収まってしまう可能性があると研究チームは慎重な見方を示しています。
興味深いのは、あるリポジトリの実際のメンテナーがGEPA生成のSKILLファイルを読んで、「このプロジェクトで実際に働いてみないと分からないような知識が書かれている」と評価した点です。数値だけでなく、人が読んでも納得できる質の高さが確認された格好です。
GEPAとSkillOptの差が生まれた理由について論文は詳細には踏み込んでいませんが、SKILLファイルの改善を繰り返す過程で、実際に修正を試みた結果をどれだけ反映しながら文書を磨き込めるかが鍵になっているとみられます。単に「良さそうな説明文」を生成するのと、実際のタスク成功率を見ながら文書を書き直すのとでは、仕上がりに差が出るということでしょう。
これからどうなるか
SKILLファイルは、Claude Codeをはじめ複数のコーディングエージェントで採用が広がっている仕組みです。自分のリポジトリ向けにSKILLファイルを書いている、あるいはこれから書こうとしている開発者にとって、今回の研究は「何を書けば実際に効果があるのか」を考える手がかりになります。単にコーディング規約を並べるだけでなく、そのプロジェクト固有の落とし穴やビルドの癖を具体的に書くことが、成果につながりやすいと示唆されているためです。
一方で、研究チーム自身が認めているように、リポジトリ1つ分の検証データでは統計的な信頼性に限界があります。今後、複数のリポジトリをまたいだ大規模な評価の枠組みが整えば、どのSKILL最適化手法が本当に効果的かをより確実に判断できるようになりそうです。
手元のプロジェクトでSKILLファイルを整備する際、今回の評価手法自体もそのまま参考になります。自分のリポジトリの過去のプルリクエストを巻き戻し、SKILLファイルがある場合とない場合でAIエージェントに同じ修正をやらせて比べてみれば、書いた説明が本当に役立っているかを手元で簡単に検証できます。
まとめ
コーディングAI向けSKILLファイルの最適化手法を検証した論文が公開され、GEPAによる最適化が平均4.9ポイントの成績向上をもたらすことが分かりました。実務で使えるSKILLファイルの書き方を考えるうえで参考になる研究です。
参考リンク
アイキャッチ画像: Photo by Jantine Doornbos on Unsplash

