编程 Ponytail 深度解析:73K Stars 的 AI 编程极简主义插件如何用「懒惰阶梯」六步决策框架让代码量骤减 54%——从 YAGNI 原则到 16+ Agent 生态的完整实战指南

2026-07-07 06:11:41 +0800 CST views 6

Ponytail 深度解析:73K Stars 的 AI 编程极简主义插件如何用「懒惰阶梯」六步决策框架让代码量骤减 54%——从 YAGNI 原则到 16+ Agent 生态的完整实战指南

最好的代码,是你从未写过的代码。

一、引言:当 AI 编程走向「过度工程」的深渊

2026 年,AI 辅助编程已经从「尝鲜玩具」变成了开发者的日常工具。Claude Code、Cursor、GitHub Copilot、Codex——这些名字已经深深嵌入了我们的工作流。但一个令人不安的事实正在浮现:AI 写的代码太多了

你让他写一个日期选择器,他给你装了 flatpickr、写了个 wrapper 组件、加了样式表、还开始讨论时区处理。404 行代码,一个原生 <input type="date"> 就能搞定的事情。

你让他加个颜色选择器,他给你引了一个第三方库、写了自定义 hook、加了无障碍支持的 wrapper。287 行。浏览器原生支持 <input type="color">

这不是个例。这是 AI 编程的系统性问题——过度工程(Over-engineering)。AI 模型被训练成「尽可能完整地回答问题」,但在编程场景下,这种倾向变成了毒药。代码越多,bug 越多,维护成本越高,认知负荷越大。

2026 年 6 月,一个名为 Ponytail(马尾辫)的开源项目横空出世。它不做代码生成,不做模型微调,甚至不写一行业务代码。它只做一件事:让 AI 在写代码之前先想清楚,到底需不需要写

开源不到一个月,GitHub Star 突破 73,000,连续三周蝉联 GitHub Trending 周榜冠军。这个数字意味着什么?它意味着整个开发者社区都在说同一句话:够了,别再给我生成那些没用的代码了。

二、Ponytail 是什么?一个「行为约束插件」的精准定位

2.1 不是代码生成器,是决策审查器

Ponytail 的定位非常精准:它是一个行为约束插件(Behavior Constraint Plugin),而不是代码生成器、模型微调工具或 IDE 扩展。

它的核心理念可以用一句话概括:

在 AI 执行代码生成动作之前,强制启动一套标准化自我审查机制,遵循资深开发者的极简开发思维,逐层校验编码必要性,从源头规避无效开发。

换句话说,Ponytail 不教你 AI 怎么写代码,它教 AI 什么时候不该写代码

2.2 灵感来源:那个扎马尾辫的老程序员

项目 README 开头有一段精彩的描写:

You know him. Long ponytail. Oval glasses. Has been at the company longer than the version control. You show him fifty lines; he looks at them, says nothing, and replaces them with one.

翻译过来就是:你认识他。长长的马尾辫,椭圆眼镜。在公司待的时间比版本控制系统还长。你给他看五十行代码,他看了一眼,什么都没说,用一行替换了。

Ponytail 就是把这个「马尾辫老程序员」装进你的 AI Agent 里。他不炫技,不啰嗦,刀刀致命。

2.3 技术架构概览

Ponytail 的技术架构出奇地简洁:

ponytail/
├── .agents/          # Agent 技能文件
├── .claude-plugin/   # Claude Code 插件配置
├── .clinerules/      # Cline 规则
├── .codex-plugin/    # Codex 插件配置
├── .cursor/rules/    # Cursor 规则
├── .devin-plugin/    # Devin 插件配置
├── .kiro/steering/   # Kiro 引导配置
├── .openclaw/skills/ # OpenClaw 技能
├── .opencode/        # OpenCode 配置
├── .windsurf/rules/  # Windsurf 规则
├── benchmarks/       # 基准测试
├── commands/         # 命令定义
├── docs/             # 文档
├── examples/         # 示例
├── hooks/            # 钩子脚本
├── ponytail-mcp/     # MCP 协议集成
├── scripts/          # 工具脚本
├── skills/           # 技能定义
└── tests/            # 测试

它本质上是一组规则文件(Rules Files),通过各 AI 编程工具的插件机制注入到 Agent 的系统提示词中。不需要安装运行时,不需要配置环境变量,拷贝规则文件就能生效。

三、核心机制:「懒惰阶梯」六步决策框架

Ponytail 的核心是一个被称为**「懒惰阶梯」(Lazy Ladder)**的六级(或七级)决策框架。AI 在接到需求后,必须按顺序逐级判断,只有当前一级条件不满足时,才能进入下一级。

3.1 六步决策流程详解

Level 0: 需求校验(YAGNI Check)
  └─ 这个功能真的需要存在吗?用户真的需要它吗?
       │ 不需要 → 直接跳过,零代码
       ▼
Level 1: 代码库复用(Codebase Reuse)
  └─ 项目中是否已有类似实现?能否直接复用?
       │ 有 → 复用现有代码
       ▼
Level 2: 标准库能力(Standard Library)
  └─ 编程语言标准库能否解决?内置 API 是否支持?
       │ 能 → 使用标准库
       ▼
Level 3: 平台原生能力(Platform Native)
  └─ 浏览器/操作系统/框架是否原生支持?
       │ 支持 → 使用原生能力
       ▼
Level 4: 已有依赖复用(Existing Dependencies)
  └─ 项目已安装的依赖库能否实现?
       │ 能 → 使用已有依赖
       ▼
Level 5: 极简编码(Minimal Implementation)
  └─ 能否用一行代码解决?
       │ 能 → 一行实现
       ▼
Level 6: 最小可用实现(Minimum Viable Implementation)
  └─ 只有以上全部不满足时,才编写最小可用实现

3.2 Level 0 详解:YAGNI 原则的强制执行

YAGNI(You Aren't Gonna Need It)是软件工程中的经典原则,意思是「你不会需要它」。但在实际开发中,尤其是 AI 辅助开发中,这个原则被严重忽视。

Ponytail 在 Level 0 强制执行 YAGNI:

## Before writing ANY code, ask yourself:

1. Does the user actually need this feature, or am I assuming?
2. Is this a real requirement or a "nice to have"?
3. Would a senior dev implement this in a production codebase?
4. Am I solving the stated problem or inventing new ones?

If any answer is "no" or "not sure" → STOP. Ask the user.

这一层的精髓在于:AI 经常会「脑补」需求。你说「加个日期选择器」,AI 会自动脑补出「需要支持时区、需要支持日期范围、需要支持自定义格式、需要国际化……」。Level 0 强制 AI 回到需求本身,只做用户明确要求的事情。

3.3 Level 3 详解:平台原生能力的优先级

这是 Ponytail 最具实战价值的一层。现代浏览器和操作系统提供了大量原生 UI 组件,但 AI 模型的训练数据中充斥着第三方库的使用示例,导致 AI 几乎从不选择原生方案。

经典案例:日期选择器

没有 Ponytail 的 AI:
  → npm install flatpickr
  → 创建 DatePickerWrapper 组件(120行)
  → 添加样式配置(80行)
  → 处理时区逻辑(60行)
  → 添加无障碍支持(80行)
  → 编写类型定义(40行)
  → 测试文件(24行)
  → 总计:404行代码 + 1个外部依赖

有 Ponytail 的 AI:
  → <input type="date">
  → 总计:1行代码,零依赖

经典案例:颜色选择器

没有 Ponytail 的 AI:
  → npm install react-color
  → 创建 ColorPicker 组件(150行)
  → 添加自定义 hook(60行)
  → 样式和主题支持(50行)
  → 类型定义(27行)
  → 总计:287行代码 + 1个外部依赖

有 Ponytail 的 AI:
  → <input type="color">
  → 总计:1行代码,零依赖

3.4 安全红线:不可裁剪的边界

Ponytail 不是无脑砍代码。它明确定义了安全红线,以下内容在任何情况下都不可裁剪:

  • 信任边界验证:用户输入验证、API 参数校验、权限检查
  • 数据安全处理:密码哈希、加密、敏感数据脱敏
  • 错误处理:异常捕获、降级策略、重试机制
  • 可访问性(Accessibility):ARIA 属性、键盘导航、屏幕阅读器支持
  • 安全头和 CORS:CSP、XSS 防护、跨域策略

在专门设计的对抗性安全测试中,Ponytail 保持了 100% 的安全通过率,与无插件基线持平。而仅使用「YAGNI + 一行流」提示词的对照组,安全通过率降到了 95%。

这 5% 的差距意味着什么?意味着 Ponytail 的决策框架是有原则的极简,而不是无脑的极简

四、基准测试:真实数据说话

4.1 测试方法论

Ponytail 的基准测试方法论值得单独拿出来说。它没有用合成数据,没有用简单脚本,而是:

  1. 真实项目tiangolo/full-stack-fastapi-template——一个真实的 FastAPI + React 全栈项目
  2. 真实任务:12 个功能 ticket,覆盖常见的 Web 开发场景
  3. 真实 Agent:Claude Code 2.1.177 + Haiku 4.5 模型
  4. 可复现:n=4,每组任务运行 4 次取平均值
  5. 公平对比:同一个 Agent,有/无 Ponytail 技能

4.2 核心数据

指标PonytailCaveman(对照组)YAGNI+一行流(对照组)基线(无技能)
代码行数-54%-20%-33%基准
Token 消耗-22%+7%-14%基准
API 成本-20%+3%-21%基准
执行时间-27%+2%-30%基准
安全通过率100%100%95%100%

几个关键发现:

  1. Ponytail 是唯一在所有指标上都优于基线的方案。Caveman 在 Token 和成本上反而增加了(+7% 和 +3%),因为它只改变输出风格,不改变决策逻辑。
  2. 「YAGNI + 一行流」提示词在安全上翻车了。95% 的安全通过率意味着在 20 个安全测试点中,有 1 个被跳过了。在生产环境中,这可能是致命的。
  3. 代码减少幅度因任务而异。在日期选择器场景下,从 404 行减少到 23 行(减少 94%);在已经很简洁的代码上,减少幅度接近 0%。这正是 Ponytail 的设计哲学:该砍的砍,不该砍的绝不动

4.3 2026 年 7 月最新实测

根据 2026 年 7 月 6 日的最新实测数据:

  • 代码诊断任务中节省 52,277 个 Token
  • Token 剩余率从 6% 提升至 26%
  • 连续三周蝉联 GitHub Trending 周榜第一名
  • GitHub Star 数达到 73,792

五、支持的 Agent 生态:16+ 平台全覆盖

Ponytail 的另一个杀手级特性是其广泛的兼容性。截至 2026 年 7 月,它支持超过 16 种主流 AI 编程工具

5.1 完整支持列表

工具配置方式集成深度
Claude Code.claude-plugin/原生插件
Cursor.cursor/rules/规则文件
GitHub Copilot规则文件配置注入
Codex.codex-plugin/原生插件
OpenCode.opencode/配置文件
Windsurf.windsurf/rules/规则文件
Cline.clinerules/规则文件
Devin.devin-plugin/原生插件
Kiro.kiro/steering/引导配置
OpenClaw.openclaw/skills/技能文件
Gemini CLIgemini-extension.json扩展配置
Aider规则文件配置注入
Continue规则文件配置注入
Tabnine规则文件配置注入
Codeium规则文件配置注入
Amazon Q规则文件配置注入

5.2 安装方式

Claude Code(推荐):

# 方式一:通过插件命令安装
claude install-plugin DietrichGebert/ponytail

# 方式二:手动拷贝规则文件
git clone https://github.com/DietrichGebert/ponytail.git
cp -r ponytail/.claude-plugin ~/.claude/plugins/

Cursor:

# 将规则文件拷贝到项目根目录
git clone https://github.com/DietrichGebert/ponytail.git
cp -r ponytail/.cursor/rules .cursor/rules

通用方式(适用于所有支持规则文件的工具):

# 将 AGENTS.md 内容注入到你的系统提示词中
cat ponytail/AGENTS.md >> your-system-prompt.md

5.3 强度调节

Ponytail 支持通过环境变量或配置文件调节「懒惰」强度:

# 方式一:环境变量
export PONYTAIL_STRENGTH=medium  # low | medium | high | extreme

# 方式二:配置文件
# .ponytail.yaml
strength: medium
custom_rules:
  - "优先使用公司内部的 @company/utils 库"
  - "日期格式化必须使用 dayjs 而非 moment.js"
  - "不要引入新的 UI 框架,使用项目已有的 Ant Design 组件"

强度级别说明:

  • low:仅执行 Level 0(YAGNI 校验)和安全红线检查
  • medium:执行全部六级决策框架(默认推荐)
  • high:在 medium 基础上,强制要求一行代码解决方案
  • extreme:在 high 基础上,禁止引入任何新依赖

六、与 Caveman、Superpowers 的深度对比

在 AI 编程优化领域,Ponytail 并不是唯一的玩家。我们来做一个深度对比。

6.1 Caveman:Token 压缩 vs 行为约束

Caveman(82K Stars)通过修改 AI Agent 的输出风格来节省 Token——让 AI 用更简洁的语言回答,减少注释和解释。它解决的是「输出格式」问题。

Ponytail 解决的是「决策逻辑」问题——它不改变 AI 说话的方式,而是改变 AI 做决策的顺序。

维度CavemanPonytail
优化目标输出 Token 数量代码生成决策
作用阶段生成后压缩生成前审查
代码减少~20%~54%
安全性100%100%
核心机制输出风格修改六步决策框架
是否改变代码逻辑

关键区别:Caveman 让 AI 「说更少的话」,Ponytail 让 AI 「写更少的代码」。两者可以组合使用——先用 Ponytail 决定「写不写」,再用 Caveman 压缩「怎么说」。

6.2 Superpowers:方法论 vs 工具

Superpowers(240K Stars)是一套 AI 编程方法论,包含 14 个 Skills,涵盖 TDD、子智能体驱动开发等高级实践。它解决的是「AI 怎么写好代码」的问题。

Ponytail 解决的是「AI 怎么少写代码」的问题。

维度SuperpowersPonytail
定位编程方法论行为约束插件
复杂度高(14 个 Skills)低(一套规则)
学习曲线陡峭平缓
适用场景大型项目所有项目
核心价值代码质量代码精简

6.3 三者组合使用的最佳实践

工作流:
  1. Superpowers 定义开发方法论(TDD、代码审查、测试策略)
  2. Ponytail 约束代码生成决策(YAGNI、复用优先、极简编码)
  3. Caveman 压缩输出 Token(简洁注释、精简解释)

效果:代码质量 ↑ 代码数量 ↓ Token 消耗 ↓ 开发效率 ↑

七、MCP 协议集成:标准化的扩展能力

Ponytail 还提供了 MCP(Model Context Protocol)协议集成,这意味着它可以作为标准化的工具服务被任何支持 MCP 的 AI Agent 调用。

7.1 MCP 服务配置

{
  "mcpServers": {
    "ponytail": {
      "command": "node",
      "args": ["ponytail-mcp/server.js"],
      "env": {
        "PONYTAIL_STRENGTH": "medium"
      }
    }
  }
}

7.2 MCP 工具列表

Ponytail MCP 服务暴露了以下工具:

  • ponytail.check_necessity:检查代码生成的必要性
  • ponytail.suggest_alternative:建议更简洁的替代方案
  • ponytail.validate_safety:验证精简后的代码是否满足安全红线
  • ponytail.get_metrics:获取当前会话的优化指标

7.3 与 OpenClaw 集成

# .openclaw/skills/ponytail/SKILL.md
name: ponytail
description: AI 编程极简主义约束插件
triggers:
  - "写代码"
  - "实现功能"
  - "添加特性"
  - "创建组件"
rules:
  - "在写任何代码之前,先检查是否真的需要写"
  - "优先使用标准库和平台原生能力"
  - "一行代码能解决的,绝不多行实现"
  - "安全红线不可裁剪:验证、加密、错误处理、可访问性"

八、实战案例:从 404 行到 1 行的蜕变

8.1 案例一:日期选择器

需求:「在用户资料页面添加一个生日选择器」

没有 Ponytail 的 AI 输出

// components/DatePicker.tsx
import React, { useState, useCallback, useMemo } from 'react';
import Flatpickr from 'flatpickr';
import 'flatpickr/dist/flatpickr.min.css';
import { format, parse, isValid } from 'date-fns';
import { useTranslation } from 'react-i18next';

interface DatePickerProps {
  value?: Date;
  onChange: (date: Date | null) => void;
  minDate?: Date;
  maxDate?: Date;
  placeholder?: string;
  disabled?: boolean;
  dateFormat?: string;
  locale?: string;
}

export const DatePicker: React.FC<DatePickerProps> = ({
  value,
  onChange,
  minDate,
  maxDate,
  placeholder = 'Select date',
  disabled = false,
  dateFormat = 'Y-m-d',
  locale = 'en',
}) => {
  const [inputValue, setInputValue] = useState(
    value ? format(value, dateFormat) : ''
  );
  // ... 省略 300+ 行
};

有 Ponytail 的 AI 输出

<!-- 用户资料页面的生日选择器 -->
<label for="birthday">生日</label>
<input type="date" id="birthday" name="birthday" />

一行 HTML,零依赖,零 JavaScript,完全满足需求。

8.2 案例二:颜色选择器

需求:「给主题设置页面加一个主色调选择器」

没有 Ponytail 的 AI 输出:287 行,引入 react-color 库。

有 Ponytail 的 AI 输出

<label for="theme-color">主色调</label>
<input type="color" id="theme-color" name="theme-color" value="#3b82f6" />

8.3 案例三:表单验证

需求:「给注册表单添加邮箱验证」

没有 Ponytail 的 AI 输出

// 安装 yup, @hookform/resolvers
// 创建 validationSchema.ts(50行)
// 创建 useEmailValidation.ts(30行)
// 修改表单组件(+80行)
// 总计:160行代码 + 2个新依赖

有 Ponytail 的 AI 输出

<input type="email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$" />

浏览器原生的 type="email" + required + pattern 已经覆盖了 95% 的邮箱验证场景。

8.4 案例四:API 请求

需求:「调用用户信息 API 并显示」

没有 Ponytail 的 AI 输出

// 安装 axios
// 创建 apiClient.ts(40行)
// 创建 userService.ts(30行)
// 创建 useUser hook(50行)
// 创建 UserCard 组件(80行)
// 总计:200行代码 + 1个新依赖

有 Ponytail 的 AI 输出

// 使用原生 fetch,无需引入 axios
const user = await fetch('/api/user').then(r => r.json());

九、自定义规则:让 Ponytail 适应你的团队

9.1 团队级自定义规则

# .ponytail.yaml - 团队共享配置
strength: medium
custom_rules:
  # 优先使用公司内部库
  - "优先使用 @company/utils 而非第三方库"
  - "日期处理统一使用 dayjs"
  - "HTTP 请求统一使用项目已有的 request 模块"
  
  # UI 组件规范
  - "不要引入新的 UI 框架,使用项目已有的 Ant Design 组件"
  - "图标统一使用 @company/icons"
  - "样式方案统一使用 CSS Modules"
  
  # 代码规范
  - "不要创建 index.ts barrel exports"
  - "不要创建 utils.ts 万能工具文件"
  - "每个文件只做一件事"
  
  # 安全规范
  - "所有用户输入必须经过 sanitize"
  - "API 请求必须包含 CSRF token"
  - "敏感数据必须加密存储"

9.2 项目级自定义规则

<!-- .ponytail-rules.md -->
## 项目特定规则

### 前端
- 使用 React 18+ 的原生 hook,不要引入状态管理库除非确实需要
- 路由使用项目已有的 react-router-dom,不要引入新的路由方案
- 样式使用 Tailwind CSS,不要写自定义 CSS 除非 Tailwind 无法覆盖

### 后端
- 使用项目已有的 SQLAlchemy ORM,不要引入新的 ORM
- 数据库迁移使用 Alembic,不要手动写 SQL
- 日志使用项目已有的 structlog 配置

### 测试
- 测试框架使用 pytest,不要引入新的测试工具
- Mock 使用项目已有的 fixtures,不要引入 mock 库

十、踩坑指南:5 个常见问题及解决方案

10.1 Claude Code 版本冲突

问题:安装 Ponytail 插件后,Claude Code 提示版本不兼容。

解决方案

# 更新 Claude Code 到最新版本
claude update

# 如果仍然不兼容,手动指定插件版本
git clone --branch v1.2.0 https://github.com/DietrichGebert/ponytail.git

10.2 Cursor 路径陷阱

问题:Cursor 无法识别 .cursor/rules 目录下的规则文件。

解决方案

# 确保规则文件在项目根目录下
ls -la .cursor/rules/
# 应该看到 ponytail.mdc 或类似文件

# 如果目录不存在,手动创建
mkdir -p .cursor/rules
cp ponytail/.cursor/rules/* .cursor/rules/

10.3 过度精简导致功能缺失

问题:Ponytail 过于激进,砍掉了必要的功能代码。

解决方案

# 降低强度
export PONYTAIL_STRENGTH=low

# 或者在配置中添加例外
# .ponytail.yaml
exceptions:
  - "表单验证逻辑不可精简"
  - "错误处理代码不可精简"
  - "安全相关的代码不可精简"

10.4 多人协作时规则不一致

问题:团队成员的 Ponytail 配置不一致,导致代码风格混乱。

解决方案

# 将配置文件纳入版本控制
git add .ponytail.yaml
git add .cursor/rules/
git add .claude-plugin/

# 在 CI/CD 中验证配置一致性
# .github/workflows/ponytail-check.yml
- name: Verify Ponytail config
  run: |
    diff .ponytail.yaml ponytail/.ponytail.yaml.example

10.5 与现有规则文件冲突

问题:项目已有 .cursorrulesAGENTS.md,与 Ponytail 规则冲突。

解决方案

# 合并规则文件,而非覆盖
cat .cursorrules > .cursorrules.backup
cat ponytail/.cursor/rules/ponytail.mdc >> .cursorrules

# 或者使用优先级机制
# 在 .cursorrules 开头添加:
# <!-- ponytail:high-priority -->

十一、AI 编程的哲学反思:少即是多

11.1 代码是负债,不是资产

Ponytail 的爆火反映了一个深层的行业认知转变:代码是负债,不是资产

每多一行代码,就多一个需要维护的点,多一个可能出 bug 的地方,多一个新成员需要理解的认知负担。最好的代码是不存在的代码。

11.2 AI 编程的「第一性原理」

当我们在 AI 辅助编程时,应该回归第一性原理:

  1. 问题是什么?——不是「怎么实现这个功能」,而是「这个功能真的需要吗?」
  2. 最简方案是什么?——不是「怎么完整地实现」,而是「怎么用最少的代码实现」
  3. 已有方案是什么?——不是「怎么从零开始」,而是「项目中是否已有类似实现」

11.3 从「AI 写代码」到「AI 做决策」

Ponytail 的真正价值不在于减少了 54% 的代码,而在于它改变了 AI 的思维模式:

  • 之前:AI 收到需求 → 立即开始写代码
  • 之后:AI 收到需求 → 先判断是否需要写 → 再判断怎么写最简

这种从「执行者」到「决策者」的转变,才是 AI 编程工具进化的正确方向。

十二、未来展望

12.1 Ponytail 的进化方向

根据项目 Roadmap 和社区讨论,Ponytail 未来可能在以下方向进化:

  1. 智能学习:根据项目历史提交,自动学习团队的编码偏好
  2. 实时指标面板:在 IDE 中实时显示代码精简指标
  3. 团队协作模式:支持团队级别的规则同步和冲突检测
  4. 更多 Agent 支持:扩展到更多 AI 编程工具
  5. 代码审查集成:在 PR Review 中自动检测过度工程

12.2 AI 编程工具的进化趋势

Ponytail 的成功预示着 AI 编程工具的三个进化趋势:

  1. 从「能力增强」到「行为约束」:不再只关注 AI 能做什么,而是关注 AI 应该做什么
  2. 从「代码生成」到「决策辅助」:AI 的核心价值不在于写代码,而在于做决策
  3. 从「单点优化」到「系统优化」:不是优化某一个环节,而是优化整个开发流程

十三、总结

Ponytail 的爆火不是偶然。它精准地击中了 AI 编程的核心痛点:过度工程

通过「懒惰阶梯」六步决策框架,Ponytail 让 AI 从「表现欲爆棚的新手」变成了「懒得说话但刀刀致命的资深开发」。54% 的代码量减少不是通过压缩或混淆实现的,而是通过「不写不需要的代码」实现的。

核心价值总结

  • 精简代码体积:平均减少 54%,最高减少 94%
  • 降低调用成本:Token 消耗减少 22%,API 成本降低 20%
  • 提升执行效率:执行时间缩短 27%
  • 保障安全底线:100% 安全通过率,安全红线不可裁剪
  • 广泛兼容性:支持 16+ 主流 AI 编程工具

一句话总结:最好的代码,是你从未写过的代码。Ponytail 教会了 AI 这个道理。


项目信息

  • GitHub:https://github.com/DietrichGebert/ponytail
  • Stars:73,792+
  • License:MIT
  • 支持工具:Claude Code、Cursor、Codex、GitHub Copilot、OpenCode、Windsurf、Cline、Devin、Kiro、OpenClaw、Gemini CLI 等 16+

推荐文章

智慧加水系统
2024-11-19 06:33:36 +0800 CST
MySQL 日志详解
2024-11-19 02:17:30 +0800 CST
Vue中的异步更新是如何实现的?
2024-11-18 19:24:29 +0800 CST
乐观锁和悲观锁,如何区分?
2024-11-19 09:36:53 +0800 CST
Golang Select 的使用及基本实现
2024-11-18 13:48:21 +0800 CST
HTML和CSS创建的弹性菜单
2024-11-19 10:09:04 +0800 CST
18个实用的 JavaScript 函数
2024-11-17 18:10:35 +0800 CST
程序员茄子在线接单