<?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/tags/ponytail/</link>
        <description>Recent content in Ponytail on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 24 Jun 2026 21:02:49 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/ponytail/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Ponytail 安装教程：Codex、Claude Code 和 Gemini CLI 怎么用</title>
        <link>https://knightli.com/2026/06/24/ponytail-ai-agent-coding-plugin-guide/</link>
        <pubDate>Wed, 24 Jun 2026 21:02:49 +0800</pubDate>
        
        <guid>https://knightli.com/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;这不是代码高尔夫，也不是盲目追求短。它强调的是少做无效工作：能删就删，能复用就复用，能用原生能力就别造轮子。&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>
