首页/新闻资讯/正文详情

Ponytail 项目落地指南

发布时间:2026/11/3 18:53:41 来源:云帆数科 栏目:资讯中心
Ponytail 项目落地指南
本文是一份可复制到其它项目的 agent 协作规范。目标不是让 agent 少做事而是让 agent 少写不必要的代码先理解真实问题再优先复用、删除和最小改动。适用场景Ponytail 适合放进项目级规则文件例如AGENTS.mdCLAUDE.md.codex/或团队自定义 agent 规则目录项目治理文档中的 “Agent Working Rules” 章节它适用于需求开发、缺陷修复、代码评审、重构和测试补强。它不替代项目已有的安全、发布、OpenSpec、测试或代码规范而是作为“如何选择最小正确实现”的决策层。核心原则Ponytail 的原则可以概括为一句话高效不是跳过理解而是在理解之后只做必要的事。在项目里使用时应要求 agent 先读相关代码路径再做实现选择。小 diff 只有落在正确位置才有价值不理解链路就做出的“小改动”通常只是把 bug 挪到另一个地方。决策阶梯每次准备新增代码前按下面顺序停一下。第一个能解决问题的层级就是优先方案这个东西真的需要做吗如果需求可以通过配置、文档、现有流程或澄清边界解决就不要写代码。代码库里是否已经有现成能力先找 helper、util、service、assembler、codec、parser、test fixture、已有模式。同一个语义尽量收口到一个地方不要复制第二套。标准库是否已经能解决Java 项目优先考虑 JDK、Spring、Jackson/Fastjson、Apache Commons 等当前栈内能力。平台或框架原生能力是否覆盖Spring 配置、Bean 生命周期、校验注解、已有中间件能力优先于手写框架。现有依赖是否已经能解决只使用已经引入且适合当前模块边界的依赖。不为了少写几行代码新增依赖。是否可以是一个小的本地改动能用局部判断解决就不新增抽象。能改共享根因就不在每个调用方补丁。最后才写新的最小实现。只覆盖当前需求和明确的兼容边界。不顺手做无关重构。项目级规则模板下面这段可以直接放进项目根目录的AGENTS.md或CLAUDE.md## Ponytail Rules Use Ponytail as an efficiency discipline, not as a shortcut around understanding. Before adding code, use the first rung that works: 1. Does this need to be built at all? 2. Does the codebase already have a helper, pattern, or service for it? 3. Can the standard library or existing framework APIs do it? 4. Can an existing project dependency do it without adding a new dependency? 5. Can this be a small local change instead of a new abstraction? 6. Only then write the minimum code that solves the real flow. Project guidance: - Prefer deletion, reuse, and boring local fixes over new layers. - Do not add dependencies unless the existing stack cannot reasonably solve the problem. - Do not introduce abstractions for one caller unless the surrounding code already has that pattern. - Fix shared root causes once instead of patching only the reported path. - Keep changes scoped to the requested behavior and the touched module boundary. - Mark intentional simplifications with a ponytail: comment only when there is a known ceiling and a clear upgrade path. Not optional: - Read the relevant code path before deciding the smallest change. - Preserve validation, error handling, security,>在日常开发中怎么用需求开发需求进入实现前先把 Ponytail 决策阶梯当作方案评估清单是否已有相同链路或邻近 lane 可以复用是否已有 DTO / codec / assembler / parser 可以扩展是否应该改共享边界而不是在 controller、service、test 里各补一段是否需要新字段、新表、新接口还是已有协议字段能表达如果需求有 OpenSpec 或 PRDPonytail 不能删掉 SHALL 规则。它只能帮助选择更小、更稳的实现路径。缺陷修复缺陷报告通常描述的是症状不一定是根因。使用 Ponytail 时应默认复现或定位症状。grep 相关函数、字段、事件名和调用方。找共享根因。在共享边界修一次。增加最小回归测试或验证命令。不要只修用户刚好点到的路径。如果同一个 parser、normalizer、route、codec 被多个入口使用优先修共享函数。代码评审评审时可以用 Ponytail 问这些问题这个新类是否只有一个调用方这个 helper 是否只是把一行代码换了个名字这个配置项是否真的需要暴露这个异常包装是否让错误更清楚还是只增加层级这个测试是否需要完整 Spring 上下文还是普通单测足够是否有重复逻辑可以收口到已有函数评审输出应优先指出可删除、可复用、可局部化的改动。重构Ponytail 不鼓励“大扫除式重构”。推荐顺序是先围绕当前需求修最小路径。如果重复逻辑阻碍修复再抽共享函数。如果抽象已经有两个以上真实使用点再考虑提升层级。如果只是看起来更整齐但不降低风险、不减少重复、不改善测试就先不做。什么不能被 Ponytail 省掉这些内容不属于“可偷懒范围”信任边界的输入校验防止数据丢失的错误处理鉴权、权限、脱敏和安全约束金融、法务、医疗等高风险语义的准确性必要的兼容逻辑用户或 spec 明确要求的行为非平凡逻辑的测试或可运行验证发布、回滚、迁移、灰度相关安全动作一句话Ponytail 可以减少代码量不能减少责任。ponytail:注释怎么写只有在有意选择一个简化方案并且知道它的上限时才写ponytail:注释。好例子// ponytail: linear scan is enough for the current 50 item payload; replace with a map if this becomes hot.不好的例子// ponytail: simple implementation注释必须说明为什么当前简化足够上限在哪里未来什么时候升级推荐落地方式在项目根目录新增或更新AGENTS.md。只放“规则入口”和 Ponytail 决策层不复制所有团队流程。如果项目已有 OpenSpec、ADR、playbook、技能目录在AGENTS.md里导航到它们。新需求开始前让 agent 先读相关 spec 和触达代码再应用 Ponytail 决策阶梯。提交前要求 agent 汇报复用了什么没有新增什么为什么这是最小正确改动跑了什么验证提交前检查清单可以把下面清单贴到 PR 模板或 agent 收尾要求里我读过被修改链路的主要调用方。我确认没有已有 helper / service / codec 可以直接复用。我没有新增不必要依赖。我没有为了一个调用点新增抽象。我没有顺手做无关重构。我保留了必要的校验、错误处理和安全边界。非平凡逻辑有测试或可运行验证命令。我能说明这次改动为什么是最小正确改动。给其它项目的最小复制版如果只想快速落地复制下面这段即可## Ponytail Before writing code, first ask: 1. Is this needed? 2. Does this already exist in the codebase? 3. Can the standard library or framework do it? 4. Can an existing dependency do it? 5. Can this be a local change instead of a new abstraction? 6. Only then write the smallest correct implementation. Rules: - Reuse before writing. - Delete before adding. - Shared root cause before per-caller patches. - No new dependency unless necessary. - No abstraction for one caller. - Keep validation, error handling, security,>

相关推荐

SVN 独立服务端部署与客户端使用指南(CentOS/Rocky 9.5 + Windows)
SVN 独立服务端部署与客户端使用指南(CentOS/Rocky 9.5 + Windows)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:52:40

LinkedList与链表
LinkedList与链表

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:51:36

【OpenSpec 实操】把模糊需求一步步细化成可执行规范
【OpenSpec 实操】把模糊需求一步步细化成可执行规范

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 18:50:34

RBS6601开站全流程:从硬件检查到启局包加载的实战指南
RBS6601开站全流程:从硬件检查到启局包加载的实战指南

简介:面向通信工程技术人员与基站调测督导的RBS6601开站实操文档,聚焦WCDMA基站从硬件检查到系统调测的完整集成测试流程,适合具备一定无线设备基础、需要独立完成单DU或双DU站点开通的读者参考。资源包共1个doc文件,约2.63MB&… · 2026/11/3 19:44:28

PAT考试算法解析:拓扑排序与动态规划实战
PAT考试算法解析:拓扑排序与动态规划实战

1. 攀拓(PAT)程序设计考试概述攀拓(PAT)程序设计考试是由浙江大学计算机科学与技术学院主办的权威性编程能力认证,尤其以顶级考试的难度和深度著称。2024年春季的顶级考试延续了其一贯的命题风格——聚焦算法核心思想在… · 2026/11/3 19:44:28

ExcelVBA转WordVBA:对象模型对照与避坑指南
ExcelVBA转WordVBA:对象模型对照与避坑指南

简介:这份PDF教程面向已具备VBA基础、希望深入掌握Office自动化的办公人员与开发者,聚焦ExcelVBA与WordVBA第4季内容,系统讲解对象、集合、属性与方法等核心概念,帮助读者从零散语法走向对文档内容的精细操控。资源包仅含1个PDF文… · 2026/11/3 19:44:28

极狐阿尔法S5:AI高性能纯电轿跑核心技术解析
极狐阿尔法S5:AI高性能纯电轿跑核心技术解析

1. 极狐阿尔法S5产品定位解析作为北汽新能源旗下高端品牌极狐的最新力作,阿尔法S5以"AI高性能宽体轿跑"的差异化定位切入20万级纯电市场。这款基于IMC智能模块化架构打造的车型,在预售阶段就打出11.28万元的补贴后起售价(较官方指导… · 2026/11/3 19:44:28

SpringBoot连接Docker中MySQL的常见问题与解决方案
SpringBoot连接Docker中MySQL的常见问题与解决方案

1. 问题现象与初步排查最近在本地开发SpringBoot项目时,尝试连接Docker容器中的MySQL数据库遇到了连接失败的问题。具体表现为启动应用后控制台持续报错"Communications link failure",经过多次重试后最终抛出连接超时异常。这种情况在开发环境… · 2026/11/3 19:44:28

2026年软件测试趋势:AI与云原生测试实践指南
2026年软件测试趋势:AI与云原生测试实践指南

1. 2026年软件测试行业趋势前瞻 2026年的软件测试领域正在经历一场由技术变革驱动的深刻转型。作为从业15年的测试架构师,我观察到几个关键趋势正在重塑行业格局:首先是AI赋能的测试自动化工具正在从简单的脚本录制回放,进化到具备自主生成测… · 2026/11/3 19:43:28

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码