最好的程式碼是沒寫的那一行:聊聊開源外掛 ponytail

現在大家都在用 AI 寫程式,但一個很現實的問題是:AI 寫得太多了。
同樣一個小需求,一不小心就變成幾十上百行,各種抽象、各種封裝,評審和維護成本反而被抬高了。
有沒有可能,讓 AI 像那個「公司裡最懶但最穩的老前輩」一樣,只寫剛剛夠用的最小實現?
ponytail 就是為此而生的一個開源規則集(skill/plugin)。它的 Slogan 非常簡單粗暴:
He says nothing. He writes one line. It works.
你給 50 行,它看一眼,默默刪到 1 行,還能跑通。
ponytail 是什麼?
用一句話總結:ponytail 把一個「極度懶惰的資深工程師」塞進你的 AI 程式碼助手裡。
它不是一個新的大模型,也不是一套框架,而是一組可以裝進各類 AI coding agent 的「規則 + 技能」:
以最小實現為目標,強制 AI 優先考慮標準庫、語言內建、已有依賴。
把「能不寫就不寫,能一行就不兩行」寫成明確的決策階梯。
提供一套命令(/ponytail、/ponytail-review、/ponytail-audit 等),幫你找出專案裡可以刪、可以簡化的部分。
在官方基準測試裡,開啟 ponytail 後,AI 在常見任務上的表現大概是這樣:
程式碼量減少 80–94%
生成速度提升 3–6 倍
Token 成本降低 47–77%
而安全、邊界檢查、可訪問性這些東西,是明確禁止「摳門」的,不會為了偷懶犧牲關鍵防線。
一個經典例子:日期選擇器
ponytail README 裡舉了一個非常典型的例子——「我要一個日期選擇器」。
預設情況下,很多 AI 的做法是:
安裝第三方日期庫(比如 flatpickr)
寫一個 React 包裝元件
引入一堆樣式和配置
順便開始討論時區、國際化……
而有了 ponytail 之後,它會先走一遍「懶惰階梯」(下面一節會講),然後得出一個極簡解法:
<!-- ponytail: browser has one -->
<input type="date">就這一行。
瀏覽器原生支援日期輸入
不需要多餘依賴
對大部分業務場景已經足夠好用
如果你未來真的需要換成自訂元件,這個 ponytail: 註解也幫你標好了升級路徑。
它是怎麼讓 AI 變「懶」的?
ponytail 的核心是一座 6 級「決策階梯」,在 AI 寫下任何一行程式碼之前,都必須按順序自問自答:
1. 這東西真的需要存在嗎?→ 不需要:直接跳過(YAGNI)
2. 標準庫已經提供了嗎?→ 有:用它
3. 語言 / 平台有原生特性嗎?→ 有:用它
4. 專案裡已經安裝的依賴能解決嗎?→ 能:用它
5. 能用一行解決嗎?→ 能:寫一行
6. 以上都不行 → 寫一份「剛好能用」的最小實現只要在某一層找到了夠用的方案,就停止往下走,不再繼續造輪子。
這背後其實是把我們平時嘴上經常說的幾條工程原則(YAGNI、KISS、優先用標準庫)寫成了硬規則,並且「注入」到 AI 的系統提示和外掛邏輯裡。
值得注意的是: 像信任邊界校驗、資料遺失風險、安全性、可訪問性這些事項,pony tail 明確標記為永遠不能偷懶的區域,不會為了少幾行程式碼把它們砍掉。
實際效果:更少的程式碼,更快的回饋
在作者給出的基準實驗裡,他們用三個不同模型(Haiku、Sonnet、Opus),做了五類日常任務(郵箱校驗、防抖、CSV 總和、倒數計時器、限流器),對比了三種模式:
無技能(普通 AI agent)
caveman 技能(另一套收斂規則)
ponytail 規則集
結論是:ponytail 在所有模型上都穩定實現了 80–94% 的程式碼行數削減,同時加快生成速度並降低成本,而且任務依然通過相同的安全與並發測試。
更重要的是,它不是簡單「少寫點」,而是盡可能保留:
可讀性:避免過度壓縮到難以維護
可演進性:每一處偷懶都會用
ponytail:註解寫明「以後要認真做的時候怎麼升級」
對有程式碼潔癖的開發者來說,這更像是一個「自動幫你刪冗餘」的搭檔,而不是一個只會胡亂刪程式碼的 minifier。
支援哪些 AI 工具?怎麼用?
目前 ponytail 已經適配了不少主流 AI coding agent 和工具鏈,你大概在用的幾個都能直接裝:
Claude Code(官方外掛)
Codex
GitHub Copilot CLI
Gemini / Antigravity CLI
OpenCode
Pi agent harness
以及透過規則檔案方式接入的:Cursor、Windsurf、Cline、GitHub Copilot(編輯器)、Kiro 等等
典型的安裝方式非常「懶」,比如在 Claude Code 裡只需要兩步(在命令輸入框裡執行):
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytailCopilot CLI 裡也有類似的 marketplace 命令;而像 Cursor / Windsurf 這類,則是把倉庫裡的規則檔案拷貝到對應位置即可。
安裝完成後,你可以透過命令調整「懶惰等級」:
/ponytail lite/ponytail full(預設)/ponytail ultra(對過度設計深惡痛絕時使用)/ponytail off(臨時關閉)
另外還有幾個很實用的命令:
/ponytail-review:只審查當前 diff,給出可以刪 / 簡化的清單/ponytail-audit:對整個倉庫做一次「過度工程」體檢/ponytail-debt:把程式碼裡的ponytail:註解匯總成一份「技術債清單」,避免「以後重構」永遠變成口頭禪
如果你想全域打開某個預設模式,也可以透過環境變數或設定檔設定 PONYTAIL_DEFAULT_MODE,例如設為 full 或 ultra。
適合誰?一些實踐建議
從 ponytail 的設計來看,它特別適合下面幾類場景:
你大量依賴 AI 寫樣板程式碼,但又不想讓專案變成「AI 產出的程式碼垃圾場」
你在維護一個中大型前後端專案,想透過
/ponytail-review、/ponytail-audit找出可以刪減的冗餘實現你在做教學 / Demo / 文章配套程式碼,希望範例盡可能短小、聚焦核心邏輯
結合我自己的經驗,比較推薦的使用方式是:
把 ponytail 作為 預設開啟 的規則集,讓 AI 從一開始就少寫點
對已有專案,用
/ponytail-review先從新增 PR 開刀,再視情況對整個倉庫做/ponytail-audit在評審時把
ponytail:註解當成一個「可升級錨點」,需要做更嚴謹實現時從這裡切入
如果你也在用 Claude Code、Cursor 之類的 AI IDE,不妨裝上 ponytail 在一個真實專案裡跑一週,你會非常直觀地感受到:AI 不囉嗦了,程式碼也瘦身了。
在 Google 上持續關注
把 HeyBinyang 加入 Google 首選來源
如果你希望之後在 Google 上更容易看到我的更新,可以把這個站點加入 preferred source,讓它在相關閱讀情境裡更容易被找到。
SHARE
分享
分享這篇文章。