<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Ponytail on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/ponytail/</link>
        <description>Recent content in Ponytail on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Wed, 24 Jun 2026 21:02:49 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/ponytail/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Ponytail 安裝教學：Codex、Claude Code 和 Gemini CLI 怎麼用</title>
        <link>https://knightli.com/zh-tw/2026/06/24/ponytail-ai-agent-coding-plugin-guide/</link>
        <pubDate>Wed, 24 Jun 2026 21:02:49 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/24/ponytail-ai-agent-coding-plugin-guide/</guid>
        <description>&lt;p&gt;Ponytail 是一個很有意思的 AI 編碼外掛。&lt;/p&gt;
&lt;p&gt;它不是讓 AI 更會「炫技」，而是反過來提醒 AI：先別急著寫程式，先看看這件事能不能不寫、能不能複用、能不能用標準函式庫、能不能用瀏覽器或平台自帶能力解決。&lt;/p&gt;
&lt;p&gt;專案地址：&lt;a class=&#34;link&#34; href=&#34;https://github.com/DietrichGebert/ponytail&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DietrichGebert/ponytail&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你經常遇到這種情況：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;只是想要一個日期選擇器，AI 卻裝了元件庫、寫了封裝、加了樣式，還開始討論時區。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;只是想改一個小邏輯，AI 卻順手抽象出三層 helper。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;只是想修一個 bug，AI 卻重構了半個檔案。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;那 Ponytail 的思路就很對味：讓 AI 像一個懶但可靠的資深開發者一樣，先找最小改動。&lt;/p&gt;
&lt;h2 id=&#34;ponytail-是什麼&#34;&gt;Ponytail 是什麼
&lt;/h2&gt;&lt;p&gt;Ponytail 可以理解成一組給 AI 編碼代理看的工作規則。&lt;/p&gt;
&lt;p&gt;它會提醒代理在寫程式前先按一條「階梯」判斷：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;1. 這個東西真的需要存在嗎？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;2. 程式庫裡是不是已經有了？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;3. 標準函式庫能不能做？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;4. 平台原生能力能不能做？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;5. 已安裝依賴能不能做？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;6. 一行程式碼能不能解決？
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;7. 最後才寫剛好夠用的新程式碼。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這不是 code golf，也不是盲目追求短。它強調的是少做無效工作：能刪就刪，能複用就複用，能用原生能力就別造輪子。&lt;/p&gt;
&lt;p&gt;README 裡有一個很典型的例子：日期選擇器。&lt;/p&gt;
&lt;p&gt;普通 AI 可能會裝 &lt;code&gt;flatpickr&lt;/code&gt;，寫 wrapper，補樣式，再解釋一堆邊界情況。&lt;/p&gt;
&lt;p&gt;Ponytail 風格會先想到：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;input&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;type&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;date&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這就是它想訓練 AI 做的判斷。&lt;/p&gt;
&lt;h2 id=&#34;它解決的不是程式碼短而是別過度設計&#34;&gt;它解決的不是「程式碼短」，而是「別過度設計」
&lt;/h2&gt;&lt;p&gt;Ponytail 最容易被誤解成「讓 AI 寫一行程式碼」。&lt;/p&gt;
&lt;p&gt;其實更準確的說法是：讓 AI 少做沒必要的設計。&lt;/p&gt;
&lt;p&gt;它保留安全邊界，不鼓勵刪掉必要的校驗、錯誤處理、安全處理和可訪問性。該做的仍然要做，只是不要為了一個很小的需求引入一堆額外複雜度。&lt;/p&gt;
&lt;p&gt;適合它處理的場景包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前端小功能；&lt;/li&gt;
&lt;li&gt;表單控制項；&lt;/li&gt;
&lt;li&gt;簡單工具函式；&lt;/li&gt;
&lt;li&gt;設定檔調整；&lt;/li&gt;
&lt;li&gt;小型 bug 修復；&lt;/li&gt;
&lt;li&gt;程式碼審查時發現過度實作；&lt;/li&gt;
&lt;li&gt;AI 改程式前的約束提醒；&lt;/li&gt;
&lt;li&gt;讓代理優先查找現有實作。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不適合把它理解成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;永遠只寫一行；&lt;/li&gt;
&lt;li&gt;永遠不加依賴；&lt;/li&gt;
&lt;li&gt;永遠不重構；&lt;/li&gt;
&lt;li&gt;為了少程式碼犧牲可維護性；&lt;/li&gt;
&lt;li&gt;為了速度跳過閱讀程式碼。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ponytail 的重點是「懶於實作，不懶於閱讀」。&lt;/p&gt;
&lt;h2 id=&#34;支援哪些-ai-編碼工具&#34;&gt;支援哪些 AI 編碼工具
&lt;/h2&gt;&lt;p&gt;從 README 看，Ponytail 覆蓋的工具很多，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Code；&lt;/li&gt;
&lt;li&gt;Codex；&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI；&lt;/li&gt;
&lt;li&gt;Pi agent harness；&lt;/li&gt;
&lt;li&gt;OpenCode；&lt;/li&gt;
&lt;li&gt;Gemini CLI；&lt;/li&gt;
&lt;li&gt;Antigravity CLI；&lt;/li&gt;
&lt;li&gt;CodeWhale；&lt;/li&gt;
&lt;li&gt;Swival；&lt;/li&gt;
&lt;li&gt;OpenClaw；&lt;/li&gt;
&lt;li&gt;Cursor、Windsurf、Cline、Aider、Kiro、Zed 等規則檔方式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這類專案的好處是：你不一定非要換主力 AI 工具。&lt;/p&gt;
&lt;p&gt;如果你現在用的是 Codex，就按 Codex 外掛方式裝；如果你用 Claude Code，就走 Claude Code 外掛市場；如果只是想把規則放進編輯器，也可以複製對應的規則檔。&lt;/p&gt;
&lt;h2 id=&#34;codex-裡怎麼安裝-ponytail&#34;&gt;Codex 裡怎麼安裝 Ponytail
&lt;/h2&gt;&lt;p&gt;如果你使用的是 Codex CLI，README 給出的入口是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;codex
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後在 Codex 裡：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打開 &lt;code&gt;/plugins&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;選擇 Ponytail marketplace；&lt;/li&gt;
&lt;li&gt;安裝 Ponytail；&lt;/li&gt;
&lt;li&gt;打開 &lt;code&gt;/hooks&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;檢查並信任它的兩個 lifecycle hooks；&lt;/li&gt;
&lt;li&gt;開一個新對話開始使用。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果你用的是 Codex 桌面版，README 也提到：安裝完成後重新啟動應用程式，外掛會被識別。&lt;/p&gt;
&lt;p&gt;注意一點：Ponytail 的 Claude Code 和 Codex 外掛會執行兩個很小的 Node.js lifecycle hooks，所以 &lt;code&gt;node&lt;/code&gt; 需要在 PATH 裡。README 也說明，如果沒有 &lt;code&gt;node&lt;/code&gt;，skills 仍然可以工作，只是 always-on 啟用不會自動生效。&lt;/p&gt;
&lt;p&gt;可以先檢查：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果命令找不到，先安裝 Node.js，或者確認目前非互動 shell 的 PATH 能找到 &lt;code&gt;node&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;claude-code-怎麼安裝&#34;&gt;Claude Code 怎麼安裝
&lt;/h2&gt;&lt;p&gt;Claude Code 的安裝命令是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然後再發一條：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README 特別提醒，這兩條需要分兩次傳送。&lt;/p&gt;
&lt;p&gt;如果你用的是 Claude 桌面應用程式，沒有 &lt;code&gt;/plugin&lt;/code&gt; 命令，需要從 UI 裡新增個人外掛市場：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打開 Customize；&lt;/li&gt;
&lt;li&gt;點擊 personal plugins 旁邊的加號；&lt;/li&gt;
&lt;li&gt;建立外掛並新增 marketplace；&lt;/li&gt;
&lt;li&gt;選擇 Add from repository；&lt;/li&gt;
&lt;li&gt;輸入 Ponytail 的 GitHub 倉庫地址。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;github-copilot-cli-怎麼安裝&#34;&gt;GitHub Copilot CLI 怎麼安裝
&lt;/h2&gt;&lt;p&gt;Copilot CLI 可以用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;copilot plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;copilot plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在互動式 Copilot CLI 會話裡，也可以用 slash 命令：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin marketplace add DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/plugin install ponytail@ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;安裝後，Copilot CLI 裡可以透過 Ponytail 命令使用不同能力，例如 README 中提到的：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/ponytail:ponytail ultra
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/ponytail:ponytail-review
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;gemini-cli-和-antigravity-cli&#34;&gt;Gemini CLI 和 Antigravity CLI
&lt;/h2&gt;&lt;p&gt;Gemini CLI 的安裝方式是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gemini extensions install https://github.com/DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;它會把規則集作為每次會話的上下文載入，並註冊 &lt;code&gt;/ponytail&lt;/code&gt; 相關命令。&lt;/p&gt;
&lt;p&gt;Antigravity CLI 可以用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;agy plugin install https://github.com/DietrichGebert/ponytail
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;README 裡還提到，Google 正在把 Gemini CLI 改名為 Antigravity CLI，所以一段時間內兩種路徑可能會並存。實際使用時，按你目前安裝的 CLI 名稱來。&lt;/p&gt;
&lt;h2 id=&#34;opencode-怎麼用&#34;&gt;OpenCode 怎麼用
&lt;/h2&gt;&lt;p&gt;OpenCode 可以在 &lt;code&gt;opencode.json&lt;/code&gt; 中加入：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;@dietrichgebert/ponytail&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你從本地 checkout 執行，也可以指向本地外掛檔：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugin&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;./.opencode/plugins/ponytail.mjs&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這種方式適合已經在 OpenCode 裡管理專案設定的人。&lt;/p&gt;
&lt;h2 id=&#34;只想用規則不想裝外掛怎麼辦&#34;&gt;只想用規則，不想裝外掛怎麼辦
&lt;/h2&gt;&lt;p&gt;Ponytail 倉庫裡還放了很多不同工具的規則檔。&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.cursor/rules/&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.windsurf/rules/&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.clinerules&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.kiro/steering/&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你的工具支援讀取專案級規則，可以直接複製對應檔案。&lt;/p&gt;
&lt;p&gt;比如 VS Code 的 Codex 擴充會讀取 &lt;code&gt;AGENTS.md&lt;/code&gt;。如果你把 Ponytail 的 &lt;code&gt;AGENTS.md&lt;/code&gt; 放到專案根目錄，或者放到全域 Codex 設定位置，就可以用規則方式讓 Codex 遵循這套思路。&lt;/p&gt;
&lt;p&gt;外掛方式更完整，規則檔方式更輕。&lt;/p&gt;
&lt;h2 id=&#34;ponytail-適合怎麼提示&#34;&gt;Ponytail 適合怎麼提示
&lt;/h2&gt;&lt;p&gt;裝完以後，不要只期待它「自動變聰明」。你也可以在任務裡主動配合它。&lt;/p&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;請先檢查現有程式碼裡是否已經有類似實作，優先複用；只有確實沒有時再新增最小實作。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或者：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;這個需求不要過度設計。先判斷是否可以用標準函式庫、原生 HTML 控制項或已有依賴解決。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再比如做 code review：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;請按 Ponytail 思路審查這次改動，重點找過度抽象、重複實作、不必要依賴和可以用原生能力替代的地方。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這類提示和 Ponytail 的規則方向一致，效果會更穩定。&lt;/p&gt;
&lt;h2 id=&#34;適合用-ponytail-的典型任務&#34;&gt;適合用 Ponytail 的典型任務
&lt;/h2&gt;&lt;h3 id=&#34;1-前端控制項&#34;&gt;1. 前端控制項
&lt;/h3&gt;&lt;p&gt;比如日期、顏色、檔案上傳、數字輸入、開關、下拉選擇。&lt;/p&gt;
&lt;p&gt;AI 很容易一上來裝元件庫，但很多場景原生 HTML 控制項已經夠用。&lt;/p&gt;
&lt;h3 id=&#34;2-工具函式&#34;&gt;2. 工具函式
&lt;/h3&gt;&lt;p&gt;比如去重、排序、格式化、路徑處理、日期處理。&lt;/p&gt;
&lt;p&gt;先看語言標準函式庫和專案已有 helper，再決定要不要寫新函式。&lt;/p&gt;
&lt;h3 id=&#34;3-設定改動&#34;&gt;3. 設定改動
&lt;/h3&gt;&lt;p&gt;比如 ESLint、TypeScript、Hugo、Vite、Docker、CI 設定。&lt;/p&gt;
&lt;p&gt;很多設定問題只需要改一行，不需要寫腳本或新增工具鏈。&lt;/p&gt;
&lt;h3 id=&#34;4-小-bug-修復&#34;&gt;4. 小 bug 修復
&lt;/h3&gt;&lt;p&gt;Ponytail 思路適合先找最小修復點，避免 AI 為了修一個 bug 引出大重構。&lt;/p&gt;
&lt;h3 id=&#34;5-程式碼審查&#34;&gt;5. 程式碼審查
&lt;/h3&gt;&lt;p&gt;它很適合當作「過度設計檢查器」。&lt;/p&gt;
&lt;p&gt;你可以讓 AI 看 diff，專門回答：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;有沒有重複造輪子；&lt;/li&gt;
&lt;li&gt;有沒有沒必要的新依賴；&lt;/li&gt;
&lt;li&gt;有沒有可以直接刪除的程式碼；&lt;/li&gt;
&lt;li&gt;有沒有複雜度超過需求的實作；&lt;/li&gt;
&lt;li&gt;有沒有可以複用現有模組的地方。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;使用時要注意什麼&#34;&gt;使用時要注意什麼
&lt;/h2&gt;&lt;p&gt;Ponytail 的方向很好，但不要把它變成新的教條。&lt;/p&gt;
&lt;p&gt;下面這些場景不能為了少程式碼而硬省：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;輸入校驗；&lt;/li&gt;
&lt;li&gt;權限檢查；&lt;/li&gt;
&lt;li&gt;資料丟失保護；&lt;/li&gt;
&lt;li&gt;並發和交易安全；&lt;/li&gt;
&lt;li&gt;使用者隱私；&lt;/li&gt;
&lt;li&gt;可訪問性；&lt;/li&gt;
&lt;li&gt;錯誤處理；&lt;/li&gt;
&lt;li&gt;關鍵日誌；&lt;/li&gt;
&lt;li&gt;測試覆蓋。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;簡單不是粗糙。&lt;/p&gt;
&lt;p&gt;如果一個功能涉及安全邊界、資金、使用者資料、生產環境操作，最小實作也必須把邊界處理清楚。&lt;/p&gt;
&lt;h2 id=&#34;我的建議用法&#34;&gt;我的建議用法
&lt;/h2&gt;&lt;p&gt;如果你第一次用 Ponytail，可以按這個順序試：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先在一個小專案裡安裝；&lt;/li&gt;
&lt;li&gt;用一個很容易過度實作的需求測試，比如日期選擇器或顏色選擇器；&lt;/li&gt;
&lt;li&gt;對比沒有 Ponytail 時 AI 會寫什麼；&lt;/li&gt;
&lt;li&gt;再讓它審查一次已有 diff；&lt;/li&gt;
&lt;li&gt;最後再放到日常專案裡。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不要一上來就拿大重構測試。&lt;/p&gt;
&lt;p&gt;Ponytail 最能體現價值的場景，是那些「本來很小，但 AI 特別容易寫大」的任務。&lt;/p&gt;
&lt;h2 id=&#34;一句話總結&#34;&gt;一句話總結
&lt;/h2&gt;&lt;p&gt;Ponytail 不是讓 AI 變成只會寫短程式碼的工具，而是讓 AI 在動手前多問一句：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;這段程式碼真的需要寫嗎？
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果你用 Codex、Claude Code、Copilot CLI、Gemini CLI 這類 AI 編碼代理，經常被它們的過度實作煩到，可以試試 Ponytail。它不能替你判斷所有架構問題，但很適合給 AI 加上一層「少造輪子、少繞路、先複用」的約束。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
