ASADASHI
バイブコーディング
バイブコーディング2026.08.28·読了 2·難易度: ふつう

AIに「余計なコードを書かせない」ツールが登場

朝の出汁版(通勤2分)

  • ポイント1: 「ponytail」は、AIコーディングエージェントに対して『最も怠惰なシニア開発者』の思考回路を持たせるライブラリで、不要なコードを生成させないための制約ルールをまとめたもの。
  • ポイント2: バイブコーディングで陥りがちな「AIが余計なファイルや関数を量産してしまう」問題を、エージェントの行動指針レベルで抑制できる点が注目されている。
  • ポイント3: GitHubのリポジトリからルールセットを取得し、CursorやClineなどのAIコーディング環境の設定ファイルに組み込む形で試してみるのがおすすめ。

出汁の素(深読みモード)

「最も怠惰なシニア開発者」を憑依させるとはどういうことか

GitHubで11万スターを集めている「ponytail」は、AIコーディングエージェントに対して行動規範を与えるルールセットのライブラリです。キャッチコピーは「最高のコードは、書かれなかったコードだ」。

背景にある問題意識はシンプルです。CursorやClineなどのAIコーディング環境でバイブコーディングを使っていると、AIは頼んでもいない関数を作り、必要以上のファイルを分割し、抽象化レイヤーを重ねてコードベースを肥大化させる傾向があります。これは「書ける」AIが「考えない」まま動いている状態です。

ponytailが行うのは、そのAIエージェントの思考フレームを「まずやらない方法を探せ」という方向に引き寄せること。技術的には、エージェントがコードを生成する際の判断基準として機能するルールファイルを提供する形を取っています。ライブラリというよりも「エージェントへの行動指針を記述したプロンプト集」と捉えると近いです。

なぜAIは「余計なコードを書きすぎる」のか

AIコーディングエージェントの訓練データには、膨大な量のOSSコードが含まれています。それらは往々にして「拡張性を考慮した設計」「再利用を前提としたモジュール分割」が施されたコードです。結果として、AIは小さな問題に対しても大きな構造で応えようとする癖を持ちます。

たとえば「ボタンを押したらAPIを叩く処理を書いて」と頼んだだけで、カスタムフックを作り、エラーハンドリング用のユーティリティを生やし、型定義ファイルを新設して返ってくる——バイブコーディングに慣れた人なら一度は経験していると思います。

これはAIが「悪い」わけではなく、「考えるべき制約を与えられていない」状態です。経験あるエンジニアが脇に座っていれば「それ今回いらない」と一言入るところを、AIには誰もそう言わない。ponytailはその「一言」をルールとして体系化した試みです。

リポジトリのスター数(113,885)は、この問題意識が広く共有されていることを示しています。同じ文脈で言えば、JetBrainsが公開している「go-modern-guidelines」(AIコーディングエージェントにモダンなGoを書かせるためのガイドライン)も同方向の動きで、「AIに書かせる前に、書き方を教える」という流れが業界全体で出てきています。

CursorやClineへの組み込み方:最初の一手

ponytailの使い方は、リポジトリからルールセットを取得して、使っているAIコーディング環境の設定ファイルに記述するだけです。コードのインストールは不要です。

Cursorの場合 プロジェクトルートに .cursor/rules ディレクトリを作成し、ponytailのルールファイルを配置します。Cursorはこのディレクトリ内のファイルをエージェントの行動ルールとして自動で読み込みます。

Clineの場合 .clinerules ファイルをプロジェクトルートに作成し、同様にルール内容を記述します。

まず試すなら、GitHubのリポジトリ(https://github.com/DietrichGebert/ponytail)のREADMEを開き、推奨ルールセットをそのままコピーして自分の環境に貼り付けるところから始めるのが現実的です。

注意点として、すべてのルールを一括適用するよりも、自分のプロジェクトの文脈に合うものを選んで追加する方が精度は上がります。「ファイル分割を最小化する」「既存の標準ライブラリを優先する」など、自分が普段AIに口頭で注意していることをルールとして明文化する、その出発点として使うのが現実的な活用です。

なお、AIエージェントに安全な「作業部屋」を量産する技術が登場で触れたサンドボックス環境と組み合わせると、「暴走するAI」と「肥大化するコード」の両方を抑制できる構成になります。

自分用のルールセットを育てていく使い方

ponytailをそのまま使うことよりも、「ルールセットを自分でカスタマイズしていく」ことに本来の価値があります。

発想としては、プロジェクトに .clinerules.cursor/rules を置くことで「このプロジェクトではAIにこう動いてほしい」という仕様書を書く行為と同じです。ponytailはその仕様書のテンプレートとして機能します。

実用的な応用として、「絶対にやってほしくないこと」リストをプロジェクトごとに育てていくアプローチがあります。たとえば:

  • 「グローバルstateの新設は禁止」
  • 「新しいnpmパッケージの追加前に必ずコメントで理由を提示する」
  • 「テストファイルを自動生成しない」

こういった制約を自然言語で書いておくだけで、AIの出力が大きく変わります。AIエージェントを自分で組み立てる時代へでも触れていますが、エージェントに「何をするか」だけでなく「何をしないか」を教えることが、今のAIコーディングの精度を上げる上での核心です。

参照ソース