Ikeraq

DietrichGebert/ponytail

AIに「書かずに済むか」を先に考えさせ、頼んでいないコードを増やさない

MIT · 商用可 JavaScript ★ 167,000 (今日 +802) 今日 更新
GitHub で見る DietrichGebert/ponytail
GitHub の説明(原文)
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.

どういうものか

コーディングエージェントに機能を頼むと、たいてい頼んだ以上のものが返ってくる。日付を選ぶ欄がほしいだけなのに、外部ライブラリを入れ、包むための部品を作り、見た目の調整まで足してくる。ponytail はこの「作りすぎ」を止めるための決まりごと一式で、エージェントがコードを書き始める前に、書かずに済む道を順番に確かめさせる。先の例なら、ブラウザに最初からある日付入力で終わる。

中心にあるのは7段の確認の順番だ。そもそも要るのか → すでにコードの中にあるか → 標準ライブラリにあるか → ブラウザなど実行環境の機能にあるか → もう入れてある依存パッケージにあるか → 1行で済むか、と上から問い、どれにも当たらなかったときにだけ最小限を書く。一方で、削ってはいけないものも決めてある。外から入ってくる値の検査、データを守るためのエラー処理、セキュリティ、アクセシビリティ、それに頼まれたものは、どの段でも省かない。見えている限界を承知のうえで簡略にした箇所には ponytail: という印のコメントを残させ、その上限と直し方を書かせるので、あとから探し出せる。報告のしかたも決まっていて、コードを先に出し、そのあと3行以内で「何を飛ばしたか、いつ足すか」を書かせる形。溜まった印をあとから一覧にするコマンドもあり、「あとで」が「ずっとやらない」にならないようにしてある。

中身の本体は文章の決まりなので、形を変えて多くの道具に配られている。Claude Code・Codex・Gemini CLI・OpenCode などにはプラグインとして入り、プラグインを入れた場合にかぎり強さを lite/full/ultra/off の4段で切り替えられる。ほかに、いまの差分から作りすぎを探す、リポジトリ全体を点検する、といったコマンドが付く。Cursor・Windsurf・Cline・Aider などには、常に効く決まりのファイルとして置く形になる。作者は効果の計測結果も公開しており、いま載っている Claude Haiku 4.5 での試験(FastAPI の雛形を実際に編集させる12の課題)では、書かれる行数が半分以下になったとしている。

書く前に、書かずに済むかを上から確かめる 依頼 (例) 日付を選ぶ欄がほしい 1 そもそも要るか 2 もうコードの中にあるか 3 標準ライブラリにあるか 4 実行環境の機能にあるか 5 入れてある依存にあるか 6 1行で済むか どれでもなければ、最小限を書く いちばん短い答え (例) ブラウザ標準の日付入力 どの段でも削らない:入力の検査・エラー処理・セキュリティ・アクセシビリティ 手を抜いた箇所には印を残させるので、あとで直すべき場所が埋もれない
減らしているのは書く量であって、守りではない。最初に当たった段で止まるので、上の段で済むものほど短くなる。

どんなときに使うか

AIが頼んだ以上のものを作ってきて、読むのに疲れているとき

小さな修正のたびに新しいファイルや依存パッケージが増え、差分を確かめるだけで時間が溶ける。書く前に「既存のもので済まないか」を確かめさせるので、レビューする量そのものが減る。何を作らなかったかも説明させるため、足りないと思えば自分で頼み直せる。

すでに育ったリポジトリの「作りすぎ」を洗い出したいとき

プラグインとして入れた場合は、いまの差分やリポジトリ全体を点検させるコマンドがある。新しく書く分を抑えるだけでなく、すでにある過剰な部分を見つける側にも使える。

注意点

「短いほど良い」が合わない場面もある。 将来の拡張を見越してあらかじめ骨組みを作っておきたい、チームの決まった書き方に揃えたい、といった方針とはぶつかりやすい。そうした場合は強さを lite に下げるか、頼むときに意図を明示する必要がある。

公表されている効果は作者自身の計測である。 Claude のモデルを使い、題材を決めて測った数字で、削減幅は作りすぎの罠がある課題ほど大きく、もともと短く済む課題ではほとんど差が出ないと作者自身も書いている。自分の案件で同じだけ減るとは限らない。

Claude Code と Codex で自動の仕掛けまで使うには Node.js が要る。 起動時に決まりを差し込む仕組みなどが Node.js で動くため。決まりのファイルとして置くだけなら不要。外したあとに設定ファイルなどが少し残る点も README に書かれている。

ライセンスは MIT。

開発の様子

4 か月
公開してからの期間。2026-06-12 が最初のコミットです
15 回
リリースの回数です
65 人
開発に参加した人数です
0 日前
最後のコミットです
28 件
未解決の Issue とプルリクエストの合計です(GitHub はこの2つを同じ数に含めます)

ほかの候補

affaan-m/ECC
計画・テスト・レビューの進め方を、頼み直さずにAIエージェントへ持たせる
paperclipai/paperclip
AIエージェントを「会社」として組織し、目標と予算で動かす
tt-a1i/archify
配置までAIに決めさせて、絵にする工程だけ機械で固める
X で共有 この記事がよかったら

この記事の更新日は 2026-09-11 です。 内容は公開されている README と GitHub のデータに基づいています。 数値は GitHub から取得したもの、警告は判定の基準にある条件での自動判定です。事実誤認を見つけた場合はお知らせください。