🍝

Vibe CodingのヒントはOSS開発にある

に公開

要約

Vibe CodingにOSS開発の枠組みを取り入れる(※OSSかどうかに関わらず)

  • OSSドキュメントを整備する
  • 「OSSコントリビュータ」としてコーディングさせる
  • 「OSS管理者」としてレビューさせる

はじめに:Vibe CodingのヒントはOSS開発にある

Vibe Codingを実践する上で、私たちが直面する大きな課題は、いかにAIに「思い通りに動いてもらうか」、つまり いかに「ビジョンを共有できるか」 という点に集約されます。

単なる機能要求のプロンプトだけでは、AIは「なぜこのコードが必要なのか」「どのような品質基準を満たすべきか」「既存のコードベースとどう調和すべきか」といった深いコンテキストを理解できません。

目指す方向性、ミッション、根底にある思想、コーディングルール、さらには開発活動の指針といった、プロジェクトを形作る重要な要素をAIにいかに深く理解させるかが鍵となります。

これは、OSS開発が長年取り組んできた課題と本質的に同じではないですか?

OSS開発は他者(コントリビュータ)に対してビジョンを共有する枠組みが成熟しています。

つまり、 OSSのベストプラクティスとされている開発手法に則ることで、VibeCodingの質も向上させられるのでは? というのが本記事の主題です。

OSS開発風Vibe Coding

OSS開発風Vibe Codingにおける重要なテクニックを3つご紹介します。

その1:OSSドキュメントを整備する

人気のOSSプロジェクトでは、必ずこんなファイルがあります:

  • README.md - プロジェクトの説明書
  • CONTRIBUTING.md - コントリビューション(貢献)のルール
  • CODE_OF_CONDUCT.md - コードの書き方ルール
  • .github/PULL_REQUEST_TEMPLATE.md - プルリクエストのテンプレート

これらを全て作っちゃいましょう。
一見面倒そうですが、OSSに関してはAIも詳しいので、ほとんど自動で作ってくれます!

プロンプト例
OSS開発のベストプラクティスに従って、GitHubリポジトリに必要なドキュメントを生成してください。

ここからは推測ですが、AIは大量のOSSコードで学習しているので、このような代表的なOSSの構造を見ると「あ、これは品質の高いプロジェクトのパターンだ」と認識するのではないかという気がしています。

つまり、OSSの構造を真似するだけで、AIのアウトプットの品質が向上するのではないかというエビデンス皆無の妄想をしたりしています。

その2:「OSSコントリビュータ」としてコーディングさせる

普通に「XXX機能作って」と頼むのではなく、こんな風に頼んでみてください。
OSSドキュメントがしっかり整備されていれば、通常より高品質なコードが出来上がるはずです。

プロンプト例
あなたは経験豊富なOSSコントリビュータです。
このプロジェクトに、XXX機能を追加してください。

要件:
- xxxxxx
- yyyyyy

OSS管理者によるレビューで指摘されないような高品質なコードでお願いします。

Claude Codeだとこんなアウトプットになります。
堅安全性やテストカバレッジに注意してコーディングしてくれていることが分かります。

その3:「OSS管理者」としてレビューさせる

コードレビューで品質向上

コードを書いた後は、今度はAIに「OSS管理者」になってもらいましょう:

プロンプト例
あなたは厳格なOSS管理者です。コードをレビューしてください。
技術的負債となりうるような変更は受け付けないでください。

すると、AIが厳しくレビューしてくれます。
セキュリティや堅安全性やテストカバレッジなどの品質に重きを置いて指摘してくれるので、品質を保ちやすく、スパゲッティコードになりにくいです。

Claude Codeのアウトプットの一部です。
(内容は無視してください。品質を重視してレビューしてくれているなということが伝わればと)

↓拒否されたとき

↓条件付き承認されたとき

もちろんレビュー指摘事項の修正もAIにやってもらいます。

おわりに

OSS開発風Vibe Codingを提案しましたが、私自身まだ模索中の部分もあり、まだまだ改善の余地があると思います。
(GitHub上でのPullRequest作成やレビューの自動化までは試せていないのでその辺りとか)

もっと良い方法などあればぜひコメントください!

Discussion