新しい開発者のように Claude Code をオンボーディングする: 17年の開発から得た教訓
Skyline は、ワシントン大学 MacCoss Lab の主任開発者 Brendan MacLean が中心となって維持しているオープンソースのタンパク質解析ソフトウェアで、2008年から活発に開発が続けられています。Skyline は、血漿や組織などに含まれるタンパク質の検出・定量化を支援するツールであり、バイオマーカーの発見、疾患研究、創薬において欠かせない存在です。MacCoss Lab のコードベースは70万行以上の C# で構成され、毎晩20万件以上の自動テストを走らせる小さなチームによって17年間メンテナンスされてきました。

Blender で制作されたシアトルの街並みの3Dイラストレーション。Brendan MacLean とそのチームが2008年から Skyline を開発・維持してきた、ワシントン大学 MacCoss Lab の本拠地を表しています。Brendan は Claude の助けを借りて背景に Claude のロゴを追加しました。画像提供: MacCoss lab。
Brendan は約30年にわたり Skyline の中核として、何十人もの学部生、大学院生、ポスドクをこの研究室にオンボーディングしてきました。*
開発者が入っては去り、コードベースは彼らの貢献を吸収していきました。2024年までには、長年続くプロジェクトにありがちな負債を抱えていました。担当者の入れ替わりとともに、特定の領域は触れがたい存在になっていったのです。
数十年にわたって研究室メンバーを訓練してきた Brendan は、巨大なコードベースに研究者を慣れさせる方法を知っていました。しかし彼が予想していなかったのは、その同じ方法論を AI ツールに適用することで、Skyline のコードベースが再び扱いやすくなることでした。
同じオンボーディング問題、違う種類の開発者
Brendan は、まさにこの言語と環境のために作られた既存のツールが理解しているのと同じように、現代の AI コーディングツールが C# のコードを理解できるのか、当初は懐疑的でした。
ブラウザ版 Claude.ai での初期の実験は、そのパターンを裏付けるものでした。問題を説明し、回答を受け取り、C# ファイル全体をプロジェクトにコピーして戻す。プロジェクトのコードを参照せずに説明できる、限定的な問題にスコープを絞らざるを得ませんでした。
「変更が段階的になればなるほど、非常に手間がかかるようになりました」と Brendan は語ります。
Claude.ai とのセッションは毎回ゼロからのやり直しのように感じられました。Skyline が何であるか、その構成要素がどう関連しているか、17年の開発で何が積み上がってきたか、それらを Claude は何ひとつ理解していなかったからです。
それは Brendan が新しい開発者をオンボーディングするときに直面していたのと同じ経験であり、ここから一つのアイデアが生まれました。
「Claude Code を通して Claude を私の大規模プロジェクトに導入することができる、研修中の開発者にそうするように——成功する限定的なプロジェクトを達成できる程度に説明し、次のイテレーションのためにより良いコンテキストを生成する形で」と Brendan は語ります。
彼はすべての AI コンテキストを独自のリポジトリ pwiz-ai に移し、コードベースから切り離して保管しました。これにより、すべてのブランチと時点をまたいで適用できるようになります。ルートにある CLAUDE.md ファイルは環境セットアップを担い、関連ドキュメントへ Claude を誘導します——専門知識そのものではなく、「土地勘」のようなものだと考えてください。
専門知識は skills という、エージェントに能力と専門性を与えるためのオープンフォーマットの中に存在します。たとえば彼の debugging スキルは、Claude を彼が言うところの「推測してテストする」モードから引き出し、修正を試みる前にまず根本原因の分析へと向かわせるよう設計されています。スキルは手動でも自動でも起動できます。Brendan は最も重要なスキルについては明示的な条件でチューニングしており、debugging スキルの説明には「ALWAYS load when investigating bugs, failures, or unexpected behavior(バグ、障害、予期しない動作を調査する際は必ず読み込むこと)」と記されています。

pwiz-ai リポジトリの構造。コンテキスト、スキル、MCP インテグレーションが Skyline のコードベースとどのように接続されるかを示しています。画像提供: MacCoss lab。
コンテキストが整備されることで、コードベースをデバッグする際の機微を Claude に教えるオーバーヘッドは大幅に下がります。Claude はすでにコードが何をしているかを知っています。やり取りは理解からスタートし、ゼロからではないのです。
「『Claude は私の大規模プロジェクトについて本当には学習できない』という大きな懸念に見えていたものが、ますます明確になってきました——コンテキストもまた、維持し、育てていくべきもう一つのアーティファクトに過ぎないのです」と Brendan は語ります。
技術的負債を減らし、開発を加速する
Skyline に Files View パネル——ドキュメント関連のすべてのファイルを表示し、ファイルシステム監視やドラッグ&ドロップでの整理機能を備えた新しいインターフェース——を構築する1年がかりのプロジェクトは、担当開発者の離脱後に未完のまま残されていました。Brendan はそれを Claude Code とともに引き取りました。
2週間後には完成し、最終コミットはすべて Claude との共著でした。
「これまで、こうした状態で残された取り組みは、結局打ち捨てられるのが普通でした」と Brendan は語ります。学術系研究室では開発者の入れ替わりが激しく、大学院生は学位を取って去り、ポスドクは別の場所へ移り、インターンは夏の終わりに帰っていきます。これまで、進行中の作業は永遠に棚上げされたままでした。
3年前、Brendan は Skyline の夜間テスト管理モジュールに新機能を追加するのをやめていました。それを保守していた開発者を失ったからです。このモジュールは LabKey Server 科学データウェブポータルの一部として Java で書かれていました。最近、熟練した LabKey 開発者に Claude Code を使ってセットアップドキュメントを作成してもらった後、Brendan は1日もかけずに、長年欲しかった機能を追加し、これまでデザイナーを雇って作ってもらうしかなかった CSS でページレイアウトを刷新しました。
新しいインフラがそれに続きました。
Skyline の2,000枚以上のチュートリアル画像のスクリーンショット再生成は、現在は完全に自動化され、ほぼ100%再現可能になっています。Claude Code により diff のみのビューやピクセル変化の増幅機能が追加され、Claude が書いた C# 製の MCP サーバーによってこれらの diff を「見る」ことができるようになりました。Claude Code は毎朝、Skyline の夜間テストインフラから取得したテスト失敗、例外、未解決のサポートスレッドを示す日次サマリーを生成し、Brendan が仕事を始める前にメールボックスに届きます。
Claude はこの機能を可能にするための MCP サーバーも Python で書きました。LabKey Server 上の3つの異なるリレーショナルデータストリーム、チームのメール、GitHub 上のリリースタグ付きコードを参照しています。

Claude Code が自動生成する日次サマリーメール。Skyline の夜間テストインフラから情報を取得しています。画像提供: MacCoss lab。
Brendan の開発者たちは、いまや自分でコードを書くことはほとんどなく、もっぱら Claude Code に指示を出し、自動化スクリプトや MCP 実装を自律的に生成させるためにこのツールを使っています。たとえば、エージェント型コーディングツールに懐疑的だった研究室の開発者は、新しいプロット拡張機能——イオンモビリティデータを可視化するためのモビログラムペイン——を構築・リリースし、その功績を Claude Code に帰しています。

Claude Code で構築されたモビログラムペイン。質量分析の結果と並べてイオンモビリティデータを可視化しています。画像提供: MacCoss lab。
「他の業務に追われて手を出せなかったような、楽しい新機能にほぼ全員が取り組み始めているのを目にしています」と Brendan は語ります。
レガシーコードベースで働く開発者へのアドバイス
開発者を17年間オンボーディングしてきた経験と、同じ方法論を1年以上にわたって Claude Code に適用してきた経験を踏まえ、Brendan がレガシーコードベースで働く開発者に伝えたいことを以下にまとめます。
コンテキストはあなたの最良の味方
Claude が生成する ToDo リストやプランは、セッションをまたいで保持されません。保持されるのはコンテキストであり、それは意識的に維持していかなければなりません。ここをほとんどの開発者は飛ばしてしまい、それゆえに開発者の成功は頭打ちになるのです。
「『コンテキスト』を記録しなければ、Claude は学習できないということを理解してください。魔法を期待してはいけません」と Brendan は語ります。「コンテキストレイヤーの構築と維持に投資してください。そして、他のプロジェクトアーティファクトと同じように扱う——バージョン管理し、育て、維持するのです。」
Brendan が AI コンテキストを別のリポジトリに置いているのは、それがコードとは異なる速度で成長し、すべてのブランチと時点に適用されるためです——コードリポジトリの内部に置いていると制約が生じるようになっていました。同じリポジトリにコンテキストを置いておくことも有効な選択肢です。重要なのは、それがバージョン管理され、維持され、必要なときに利用可能であることです。
スキルライブラリの構築に投資する
skills を使って、どの Claude インスタンスでもロードできる形でドメイン知識をエンコードしましょう。Brendan のスキルは「参照する、埋め込まない(reference do not embed)」という原則に従っています。各スキルは内容を複製するのではなく、中央のドキュメント知識ベースを指し示すようになっており、軽量で維持しやすく保たれています。
最もよく使われているのは次のスキルです。プロジェクトとそのドキュメントに Claude を慣れさせる skyline-development スキル、プロジェクト固有のコミットおよび PR 規約をエンコードする version-control スキル、そして Claude を「推測してテストする」モードから引き出し、修正を試みる前に根本原因分析へと向かわせる debugging スキルです。
データアクセスが鍵となる場面では MCP インテグレーションを使う Claude が実データへのアクセスを必要とする場所——テスト結果、例外レポート、サポートスレッドなど——では MCP インテグレーションを構築しましょう。
オープンソースプロジェクトにおいては、コンテキストレイヤーを構築・維持することには特別な重みがあります。オンボーディング予算は存在せず、書き残されたもの以外の組織的記憶もなく、どの貢献者が来年も残っているかも保証されません。コンテキストは一度構築されれば、すべての貢献者が利用でき、人間の組織的知識ではあり得ない形でプロジェクトのライフタイムを通じて存続します。pwiz-ai リポジトリそれ自体がオープンソースのアーティファクトであり——どの貢献者にも属さず、プロジェクトに属するコンテキストとして、それを構築した全員より長く生き残ります。
17年のオンボーディングが導く、ひとつの結論
70万行のコードベースを新入社員に渡して、初日から成果を期待することはないでしょう。あなたなら限定的なプロジェクトを見繕い、一緒に進め、理解が深まるにつれてスコープを広げていくはずです。
Brendan が学んだように、Claude とともに築くコンテキストも同じように働きます。
コードベースについて十分に知識を得たエンジニアは、ブランチや時点を越えて作業できるようになります。Claude もまた、十分なコンテキストと方向付けが与えられれば、同じことができるのです。
*Anthropic の共同創業者である Dario Amodei は、かつて MacCoss Lab のメンバーでした。