画像のようなエンジニアっているよねー
Ponytailとはなにか
Ponytail は、AI Agent に「過剰な実装を嫌うベテランエンジニア」の思考ルールを導入し、無駄なコードを書かせないようにするプラグイン・ルールセットです。
「最高のコードとは、書かずに済んだコードである」をコンセプトに、AI Agent でコードを書かせている時に、以下の問題(過剰エンジニアリング)を防ぐようにします。
- AI が必要以上に複雑なコードを書いてしまう
- 不用で長ったらしいコメントアウトを書いてしまう
- 不必要なライブラリを追加してしまう
主な仕組み
Ponytail を導入した AI は、コードを書き始める前に、以下の優先順位で解決策を検討します。
- YAGNI : 本当に作る必要があるか?必要なければ作らない
- 既存コードの再利用:プロジェクトに同様のコードがないか。あれば使い回す
- 標準ライブラリの利用:言語の標準機能で解決できるか?
- プラットフォーム標準機能の利用:ブラウザや OS の標準機能で済むか?自作せずとも実装できないか?
- 導入済みのライブラリの利用:すでにインストールされている依存パッケージで解決できないか?
- 1行実装:1行でシンプルに書けるか?
- 最小限の実装:上記のどれにも当てはまらない場合、必要最小限のコードを書く
ポニーテールの導入方法
導入方法は古くなる場合が多いので、詳細は README を参照ください
Claude Code
以下のコマンドを 2 回のプロンプトに分けて順に送信・実行する。
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
Codex
ターミナルで以下のコマンドを実行してプラグインを追加する。
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
Codex を起動して、~/hooks を開き、2つのライフサイクルフックを確認・承認(trust)した上で、新しいスレッドを開始する。
どういったことができるか
具体的には、以下の機能が提供されます。
開発プロセスの最適化(自動コード削減)
コードを書き始める際、AI が自動的に判断基準に沿って検討を行います。
- 無駄な実装の削減(YAGNI):不要な機能の提案や作成を防止
-
既存コード・標準機能の優先利用:車輪の再発明を防ぎ、HTML 標準要素(例:
<input type="date">)やプロジェクト内既存コード、言語の標準ライブラリを優先して採用 - 最小限実装:安全性を損なわない範囲で最小行数の解決策を採用
コマンド・スキル機能(専用スラッシュコマンド)
導入により、開発環境や AI エージェント上で以下の専用コマンドを実行できるようになります。
-
/ponytail [lite | full | ultra | off]:AI の過剰実装防止ルール(強度)の調整・切替 -
/ponytail-review:現在の git diff(変更差分)をレビューし、過剰エンジニアリングされた箇所の削除候補リストを出力 -
/ponytail-audit:プロジェクト全体を監査し、リポジトリ内の過剰な実装を検出 -
/ponytail-debt:後回しにしたショートカットや課題を整理・記録する台帳を作成 -
/ponytail-gain:計測されたインパクト(コード削減率、コスト削減率、処理速度向上)のスコアボードを表示 -
/ponytail-help:利用可能なコマンドのヘルプ表示
使ってみての感想
まず、現在作成中 or draft 状態の pull request に対して/ponytail-review を実行しました。
不用なコードやコメントアウト、重複処理などを調査して必要に応じて短く実装したり、削除する対応を行いました。
結果、100行くらいの不要なコードを追加していたことが発覚し、削減することができました。
将来的には、実装したら/ponytail-reviewを自動実行してレビューする Hooks を作成したいと考えています。