Ponytail の要点
- 中身は 1 本のプロンプトです。skills/ponytail/SKILL.md がルールのすべてで、Claude Code プラグインはそれを毎セッション自動で読み込ませるための入れ物にすぎません。
- 導入は順番どおりの 2 つの別プロンプト:/plugin marketplace add DietrichGebert/ponytail、そのあと /plugin install ponytail@ponytail。
- レベルは lite・full(既定)・ultra の 3 段階。/ponytail lite、/ponytail ultra で切り替え、/ponytail off で解除します。
- 「コードを書かせない」だけではありません。/ponytail-review は差分を、/ponytail-audit はリポジトリ全体を優先度付きで、/ponytail-debt は後回しにした近道を台帳にまとめます。
DietrichGebert/ponytail — README
出典GitHubchecked 2026-11-12
skills/ponytail/SKILL.md — the prompt itself
出典GitHubchecked 2026-11-12
INSTALL.md — per-agent install steps
出典GitHubchecked 2026-11-12
skills/ponytail-help/SKILL.md — levels, band, defaults
出典GitHubchecked 2026-11-12
benchmarks/results/2026-10-07-agentic.md
出典GitHubchecked 2026-11-12
dsh-ponytail — DeepSeek Harness port (unofficial)
出典deepseekharnessplugins.comchecked 2026-11-12
本ページのコマンド、レベル名、設定キー、数値はすべて 2026-11-12 に上流リポジトリから読み取ったものです。スラッシュコマンドは意図的に翻訳していません。翻訳したコマンドは動きません。
リポジトリの情報は 2026-11-12 時点の GitHub API より:スター 189,276、フォーク 10,531、作成 2026-06-12、最新リリース v5.3.3(公開 2026-10-29)。スター数は毎日動くので、定数ではなくスナップショットとして扱ってください。
Ponytail を順番に導入して使う
- 1
何を入れるのかを先に知る
Ponytail は Dietrich Gebert が MIT ライセンスで github.com/DietrichGebert/ponytail に公開しているコーディングエージェント向けのルールセットです。中心はプロンプト 1 本、skills/ponytail/SKILL.md だけ。リポジトリの他のものは、そのプロンプトを特定のエージェントに読み込ませるための仕組みです。Claude Code プラグインは常時有効ルートで、導入すると毎セッション効き、ステータスラインのバッジと /ponytail-* コマンド群が加わります。
README ははっきり書いています。はしごは問題を理解した後に使うもので、理解の代わりではない。解は怠けてよく、コードを読むことは怠けない。
- 2
前提条件を確認する
/plugin コマンドのある Claude Code と、PATH 上の Node.js が必要です。プラグインは小さな Node.js のライフサイクルフックを 2 つ動かします。node が無くてもスキル自体は動きますが、フック呼び出しのたびに無害な node: command not found が出ます。Nix や nvm を使っている場合、node は対話シェルだけでなく非対話シェルの PATH にも必要です。
コマンド
node --version/plugin が認識されないなら Claude Code が古いだけです。先に更新して再起動してください。
- 3
マーケットプレイスを追加する(1 本目)
Claude Code 内でこれを送ります。リポジトリが ponytail という名前のプラグインマーケットプレイスとして登録されるだけで、まだ何もインストールされません。
コマンド
/plugin marketplace add DietrichGebert/ponytailリポジトリに .claude-plugin/marketplace.json が同梱されているので、owner/repo を書くだけで足ります。URL もローカルパスも不要です。
- 4
プラグインをインストールする(2 本目)
これは別のプロンプトとして送ります。形式は plugin@marketplace なので、ponytail@ponytail は「ponytail というマーケットプレイスから ponytail というプラグインを入れる」という意味です。INSTALL.md は、インストールを効かせるには 2 回に分けて送る必要があるとはっきり書いています。1 通にまとめるのが、この導入が失敗する一番よくある原因です。
コマンド
/plugin install ponytail@ponytailClaude Code デスクトップアプリの Code タブでも、同じ 2 つのコマンドを入力欄に打つか、入力欄横の + → Plugins → Add plugin から設定済みマーケットプレイスを閲覧できます。
- 5
本当に有効か確認する
引数なしで /ponytail を実行します。オフだった場合は既定レベルでオンになり、すでにオンなら現在のレベルを報告します。起動時とレベル変更時のテキストにも現在のモードが出て、ステータスラインのバッジがセッション中ずっと表示します。
コマンド
/ponytail手早い動作確認:明らかに過剰設計になりそうなもの、たとえば日付ピッカーを頼んでみてください。既存の Input コンポーネントとブラウザ標準のピッカーを先に探すかどうかで判断できます。
- 6
レベルを選ぶ
lite は頼まれたものだけを作り、より小さい選択肢を 1 行で示して判断を委ねます。full が既定で、はしごを使い、ロジックに必要な場所には小さなテストを残し、回答でスキップした点を明示します。ultra は着手前に要求そのものへ異議を唱えます。レベルは変更するかセッションが終わるまで続きます。
コマンド
/ponytail lite/ponytail full/ponytail ultra/ponytail off抜け道はほかに 2 つ。stop ponytail または normal mode と普通に言うか、/ponytail off を実行します。
- 7
同じルールで差分をレビューする
/ponytail-review は linter ではありません。差分だけでなく、変更が触れるコードを読み、この順で報告します:正しいか、安全か、実負荷に耐えるか、テストがあるか、速いか、無駄がないか。各指摘は、そのコードが何をし、何が壊れ、どう直し、直さないとどうなるかまで書く必要があります。範囲を狭めたり広げたりしたいときは、目標を普通の言葉で指定します。
コマンド
/ponytail-review/ponytail-review staged/ponytail-review branch目標を指定しない場合は未コミットの変更、無ければ最後のコミットをレビューします。
- 8
リポジトリ全体を監査し、借金を回収する
/ponytail-audit は同じ検査をリポジトリ全体に走らせます。まず入口とデータの流れを把握し、想定負荷を仮定してそれを明示し、指摘を優先度順に並べます。/ponytail-debt は、エージェントが意図的に残した shortcut: コメントを台帳に集めます。「あとで」が静かに「永久にやらない」へ変わらないようにするためです。
コマンド
/ponytail-audit/ponytail-debtコメントの書式は固定です:shortcut: <制限は何か>, <いつ更新するか>。固定だからこそ回収できるのです。
- 9
既定値を決めて、更新を続ける
新しいセッションの開始レベルを変える方法は 2 つ。環境変数 PONYTAIL_DEFAULT_MODE か、~/.config/ponytail/config.json の defaultMode フィールドです。解決順は環境変数、設定ファイル、full。更新は /plugin → Marketplaces → ponytail で自動更新を一度有効にするか、手動で更新してリロードします。
コマンド
export PONYTAIL_DEFAULT_MODE=ultra/plugin marketplace update ponytail/reload-plugins削除するときは、プラグイン同梱の node scripts/uninstall.js を先に実行し、そのあと /plugin remove ponytail。スクリプト自体がプラグイン内のファイルなので、先にプラグインを消すと走らせられません。
はしご:Ponytail が実際に変えるもの
挙動の変化はすべて 1 本の意思決定のはしごです。コードを書く前に、完全に成立する最初の段で止まります。
- 1そもそも存在する必要があるか。誰も頼んでいない機能・オプション・柔軟性は飛ばし、1 行で明示します。曖昧な「X を作って」には、中核だけを満たす最小版を返します。
- 2このコードベースにすでにあるか。ヘルパー、コンポーネント、サービス、既存の書き方。周囲のコードと同じ使い方をします。
- 3標準ライブラリやプラットフォーム機能で足りるか。使います。ただしプロジェクト独自のコンポーネントがネイティブ部品より適切ならそちらを優先します。
- 4導入済みの依存に入っているか。使います。数行のために依存を追加することはありません。
- 5一目で読める 1 行にできるか。1 行にします。
- 6どれも当てはまらないとき:動く最小のコード。分岐・ループ・パーサ・お金・セキュリティを含むなら、小さなテストか assert ベースの自己チェックを 1 つ残します。
決して削らないもの
ルールは「できるだけ少なく書く」ではなく「タスクに必要な分だけ書く」です。プロンプトはレベルに関係なく残す 5 つを名指ししています。
- 信頼境界での検証。
- データ損失を防ぐエラー処理。
- セキュリティ。
- アクセシビリティ。
- ユーザーが明示的に求めたもの、および実機が必要とするキャリブレーション。
変化の残り半分は回答です。どの回答も最後に 1〜2 行で、何をスキップしたか、何を確認していないか、知っておくべきリスクを書きます。だからこそ小さい差分は疑わしくではなく、レビュー可能に見えるのです。
コマンド一覧とそれぞれの役割
Ponytail はコマンドを 8 つ追加します。「書き方の好みだけ」と思って入れた人が見落とすのは後半の 4 つです。
/ponytail [lite | full | ultra | off]強度の設定、または解除。引数なしでは、オフなら既定レベルでオンにし、オンなら現在のレベルを報告します。/ponytail band [on | off]Claude Code 専用:プロンプト上のバンドを隠す/表示する。引数なしはトグルで、レベルは変わりません。/ponytail band importClaude Code 専用:過去の Claude Code セッションを、コスト・エージェント時間・トークン数とともにローカルのボードへ追加します。/ponytail-review壊れたら呼び出される先輩のように現在の差分をレビュー:バグ、セキュリティ、実負荷、テストの無い危険なコード、遅い経路、削れるところ。uncommitted、staged、branch、PR リンクなど普通の言葉で対象を指定できます。/ponytail-audit同じ検査をリポジトリ全体に、重要度順で。/ponytail-debt後回しにした shortcut: コメントを台帳に回収し、「あとで」を「永久にやらない」にしない。/ponytail-gain作者のベンチマークにある実測インパクトのスコアボードを表示。/ponytail-helpレベル・スキル・コマンドの 1 回限りの早見表。モードは変えず、何も保存しません。
他のエージェントと DeepSeek Harness 移植版
プロンプトは移植可能で、リポジトリには多数のホスト向けアダプタが入っています。特に重要な 3 つ:
- 1Codex:codex plugin marketplace add DietrichGebert/ponytail、続いて codex plugin add ponytail@ponytail。そのあと Codex で /hooks を開き、2 つのライフサイクルフックを信頼し、新しいスレッドを開始します。Codex ではコマンドは名前空間付きスキルで、$ponytail:ponytail-review のように呼びます。
- 2Cursor:リポジトリを git clone し、node ponytail/scripts/cursor-hooks.js install を実行。2 つのネイティブフックを ~/.cursor/hooks.json に統合し、既存のフックはそのまま残します。レベルは /ponytail lite のような普通のメッセージで切り替えます。Cursor の subagentStart はコンテキストを注入できないため、サブエージェントにはルールが渡りません。
- 3それ以外のエージェント:npx skills add DietrichGebert/ponytail で 6 つのスキルをそのエージェントのスキルフォルダへコピーできます。AGENTS.md をプロジェクトに置けば、プラグイン機構なしで常時ルールだけを得られます。
- 4DeepSeek Harness 向けには非公式移植の dsh-ponytail があり、そのスキルもこのリポジトリから MIT で改変したものです。第三者の改変であって Dietrich Gebert の配布物ではないため、挙動の責任は移植者にあります。
公開されている数字と、その読み方
README は冒頭から大きな削減率を出しています。すべてリポジトリ内の 1 ファイル、benchmarks/results/2026-10-07-agentic.md が出典で、同一の条件を指します:ヘッドレスの Claude Code、Opus 5.5、既定 effort、Claude Code CLI 2.1.288、39 タスク、各タスク各アーム 5 回、計 585 セッション。ここでは独立した再現を主張しません。
- 1コード行数:スキル無しに対して -53%、95% ブートストラップ区間は -63% から -41%。出力トークン -45%、コスト -26%、時間 -41%。
- 2正しさは動いていません。隠しチェックのある 18 タスクで、Ponytail 5 は 90 回中 87 回合格、スキル無しは 86 回。6 つのセキュリティタスクでは 3 アームすべて 30 回中 30 回合格。
- 3テストは減らず増えました。テストが必要な箇所にテストを残した割合は 98%(スキル無し 68%)、エージェント自身のテストが注入バグを捕まえた割合は 66%(スキル無し 46%)。
- 4回答はブラインド比較で好まれ、前バージョンに対して 110 対 67。レビュアーが知るべきことを伝えられているかで判定しています。
- 5タスク構成が効きます。実在の FastAPI + React リポジトリの機能チケット 12、隠しチェック付きの外科的タスク 18、「小さなアプリを作って」6、「例を見せて」3。全アームで Bash を無効化しているため、測っているのはエージェントが書くもの、デバッグ能力ではありません。
これらの数字は「作者が自分のタスクセットで自分のツールを測った結果」として読んでください。タスク別の表、信頼区間、初期ハーネスの隔離不具合に関する注記まで揃った丁寧なベンチマークですが、第三者の監査ではなく、あなたのリポジトリで同じ割合が出る保証もありません。
導入前に知っておくべき限界
Ponytail はプロンプトです。強制するものは何もなく、チームのリポジトリに入れる前に把握しておきたい点がいくつかあります。
- 1Anthropic の製品ではなく第三者プロジェクトです。MIT ライセンスで個人が維持しており、README は .exe や .dll を同梱しない、同梱している複製は本人の配布物ではないと警告しています。
- 2ガイドであってゲートではありません。モデルは今も過剰設計し得ますし、最小解が最初から明らかなタスクでは差はほぼゼロです。はしごが効くのは、エージェントが本来なら自前で構造を作ってしまう場面です。
- 3バンドとボードは Claude Code 専用で、Claude Code 2.1.290 以降が必要です。VS Code のチャットパネル、クラウドセッション、claude -p では表示されません。セッションデータは既定で ~/.config/ponytail/band/ にローカル保存され、任意の webhook を設定しない限り外へ出ません。
- 4ホストによっては機能が落ちます。ライフサイクルフックの無いホスト(Gemini CLI、Qwen、Antigravity、Goose)ではレベルがセッションをまたいで残らず、Cursor のサブエージェントにはルールが渡らず、ルールファイルのみのアダプタにはコマンドがありません。
- 5プラグインフォルダの外に状態を残します。モードフラグ、~/.config/ponytail/config.json、ステータスラインスクリプトのコピー、そして場合によっては ~/.claude/settings.json の statusLine エントリ。プラグインだけ消すと、バッジは最後のモードを表示したままになります。
だからといって入れない理由にはなりません。自分のリポジトリの実タスクで一度試し、最初の数回は差分を自分で読み、どれくらい削っているかを掴んでからチームへ広げるべき、というだけのことです。
