はじめに
この記事は みすてむずアドベントカレンダー 1枚目 の18日目の記事です(現在12/19 13:30)
おハム(はやらせてたまるか)
塩ハム(d)です
ちょっと前に、バイブコーディングでOSSを作った話を投稿しました
その時に得た、バイブコーディングをちょっとだけうまくさせるコツを備忘録的に書いていこうと思います
(ネタがないだけともいう)
というわけで、さっそく書きますね
バイブコーディングのちょいテク
・仕様を決めてから作らせよう
仕様が決まらないうちに走り出しても迷走するのは人間と同じようです、しょうがないね
きちんと仕様を決めてから作り始めた方が滞りなく進められることでしょう
もちろん、LLMと壁打ちして仕様を決めていくのがとても楽です
疑問に思ったことや相談などを遠慮なく投げて作り上げてもらいましょう
なお、ここで決めた仕様をいつでも参照できるようにプロジェクトの中に配置するのもおすすめさせていただきます(形式は何でもいいけど、私はマークダウンで置いています)
・エージェントに渡す資料を整備しよう
Cloude Code、Codex、Gemini Cliなど、バイブコーディング用のツールはたくさんありますが、どのツールにもエージェントへ指示や仕様を渡す仕組みがあります
(例としてAGENTS.mdをあげておきます)
指示する内容は人によりさまざまですが
- 使用する言語、ライブラリ
- 仕様
- コーディング規約
- リポジトリ構造
- テスト指針
- PR、コミット指針
などが多いです
これらを記載し、エージェントに情報を与えましょう!
ちなみにこのファイルもLLMに例と指示をあたえて壁打ちすると楽に作れます
・プロジェクトの構造を理解してもらおう
エージェントの扱えるコンテキストには限りがあります
そのため効率よくコンテキストを使うためにも、最初にプロジェクトの構造を理解してもらうのはなかなか効果的でした
自動で行ってくれるものもありますが、明示することで事故は起きづらいかもしれません
・先に実装計画を立ててもらおう
行き当たりばったりはLLMも苦手なようで、先に全体の構成を考えてからタスクを分けて実装してもらう方がうまくいきやすいように感じました
なので必ず先に計画を立ててもらい、添削を終えてから実装を進めてもらいましょう
・やってほしいことの粒度に応じてチャットを分けよう
先ほどと同様にコンテキストには限りがあります
また、コンテキストはたまっていくことで出力される回答が不正確になっていく傾向があるように感じました(モデルにもよりますが、コンテキスト半分を過ぎると急激に精度が悪くなるように感じました)
まずは全体の構造をシンプルに記載してもらい、詳細機能についてはチャットを分けることで実装するものに適した知識をコンテキストとして蓄積することができると思います
チャットはいくらでも使っていい、それが結果として手戻りや実装ミスを減らすことができると思います
・ブランチを分け、細かくコミットを行おう
これについてはバイブコーディングでというか、いつでも適用できるコツですね
皆さんの方が詳しいと思われますので教えてください←
バイブコーディングも普通のコーディングでもここは一緒です
・都度レビュー、クリーンアップを行おう
レビューを行うことで、無駄な記載や重複コード、アルゴリズムなどを改善することができます
が、この項目については私もまだ調整中ですので、いいやり方があったら教えてください
・計画はなるべく高性能なLLMに頼もう
計画を高性能なLLMに頼むことで、コーディングは廉価版のLLMに任せても破綻しづらくなります
料金を節約したい場合に使えるちょいテクです(まあ私はお金かけたことないんですけどね)
おわりに
最後に一つだけ言わせてもらうと
LLMは超優秀な人間の新人エンジニアとして扱うと、意外とうまいこと行く気がします
なので、皆さまもうまく新人を使うためにいろいろ手をまわしてやりましょう
彼らは下準備をすればするほど力を発揮します
おまけ
これって僕らが苦手だったマネジメントだよね……?