ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

EcoPaste 的 Trellis Spec 编写指南:面向 AI Agent 的基于证据的编码规范实践

EcoPaste 的 Trellis Spec 编写指南:面向 AI Agent 的基于证据的编码规范实践 桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载本文讲解 EcoPaste 仓库中 Trellis Spec面向 AI Agent 的项目专属编码规范文档的编写方法论核心围绕基于证据写作Write From Evidence每条规范都要由真实源码、测试或文档支撑让规范树贴合仓库真实结构并以高信息量的章节形态交付。读完本文你将掌握从证据收集、文件结构规划、章节撰写到最终校验的一整套可复用的 Spec 编写流程能直接用于自己维护的开源项目。1. 认识 Trellis Spec写给未来 Agent 的仓库说明书Trellis Spec 是 Trellis 任务系统中的核心产物它是给未来 AI Agent 阅读的编码指导回答的不是一个通用项目应该如何组织而是如何在这个仓库里正确地工作。它与普通设计文档最大的区别在于服务对象与证据要求——每一个重要规则都必须能追溯到仓库里的具体文件、测试或重复模式。在 EcoPaste 仓库中Trellis 的落地形态清晰可见AGENTS.md 的TRELLIS:START / TRELLIS:END指令块明确声明本项目由 Trellis 管理工作知识存放在.trellis/下其中.trellis/spec/就是package- 和 layer-scoped 的编码指南在对应层写代码前先读。.agents/skills/trellis-spec-bootstrap/目录承载了完整的技能套件其 SKILL.md 定义了从仓库分析到规范编写的单 Agent 全流程并通过Reference Routing表格把四份参考文档按需路由仓库架构分析、Spec 任务分解、Spec 文件编写、MCP 工具配置。值得强调的定位区分这是文档开篇就点明的第一原则Spec 面向未来在这个仓库里工作的 Agent因此它必须描述本仓库的本地模式local patterns而不是通用框架建议或教科书式的最佳实践。比如 EcoPaste 的 AGENTS.md 中剪贴板监听与写回必须在 Rust 实现事件名用domain://action格式commands/保持薄层等约定就是典型的本地模式——它们只有结合 EcoPaste 的 Rust-First Tauri 架构才成立。2. 基于证据写作每条规则都必须有出处Spec 写作的第一要务是证据Evidence。文档规定每一条重要规则都应至少由以下四类证据之一支撑证据类型含义在 EcoPaste 中的典型示例源文件source file展示了推荐/偏好模式的实现文件src-tauri/src/commands/下各命令入口只做参数校验与转发的薄层实现测试文件test file展示了预期行为的测试cargo test覆盖的 Rust 模块测试项目文档project document定义了约定的文档AGENTS.md 中的快速原则Rust 约定前端约定多文件重复模式repeated pattern在多个文件中反复出现的一致写法clipboard://updated、settings://updated、window://visibility等domain://action事件命名在 Rust 与前端两端的重复出现关于代码片段的使用文档给出的取舍很明确只在代码片段能让规则更清晰时才使用短片段优先链接文件路径并指出具体的符号symbol或行为behavior。这与避免长拷贝代码块的内容标准互为表里——Spec 的价值在于指引读者去哪里看而不是把源码搬进规范。以 EcoPaste 的真实约定为例一条合格的证据化规则可以这样组织规则数据库访问统一使用 Tauri 的StateSqlitePool不要每次新建连接SQL 用sqlx::query/query_as不用query!宏见 AGENTS.md。证据src-tauri/src/db/下各仓储模块items.rs、groups.rs、apps.rs的实现即本地模式的直接展示。反模式每次调用新建连接、使用query!宏导致需要维护离线缓存。这种规则 证据路径 反模式的三段式正是文档在 Write From Evidence 一节想要的结果。3. 文件结构管理让 Spec 树贴合项目真实结构Spec 不是一堆孤立文件的堆叠其文件结构需要与项目的包和层对齐。文档给出四条操作准则index.md作为 Spec 目录的导航文件每个 spec 目录都要有 index负责汇总该目录下各主题文件的入口与组织关系。主题按开发者会不会独立查找拆分当开发者会独立检索某个主题时如数据库约定命令层约定就拆成独立文件。主题按是否会重复同一规则合并当多个独立文件会重复讲述同一条规则时合并它们避免规范自身的重复与漂移。删除不适用的模板文件模板只是起点而非契约不适用的模板章节应当删除。为模板遗漏的本地重要模式新增文件如果仓库存在模板没有覆盖的、具有项目特色的重要模式要主动新增 spec 文件。EcoPaste 的.agents/skills/trellis-spec-bootstrap/本身就示范了这一原则references/目录下四份文档按职责拆开repository-analysis、spec-task-planning、spec-writing、mcp-setup由 SKILL.md 中的路由表统一索引——这正是index 导航 主题拆分的落地实例。同时SKILL.md 的 Operating Rules 再次强化了这一精神Treat templates as starting points, not contracts把模板当起点而非契约Do not leave placeholder text, empty headings, or copied boilerplate in.trellis/spec/规范目录中不留占位文本、空标题或拷贝的样板内容。此外拆分与合并的判定背后还有一条隐藏标准——Spec 边界应反映真实的所有权边界。配套的 spec-task-planning.md 对此做了展开一个包拥有自己的约定时拆一个任务同一包内前端、后端、CLI、共享库规则不同时按层拆分模式横跨多包且不属于单一层时写一份横向指南小库通常一次 Spec 通过即可避免人为拆分。4. 内容标准高信息量的 Spec 章节由什么构成文档为好的 Spec 章节给出了明确的要素清单与回避清单这是整份文档最可操作的部分。一个合格的章节应包含规则何时适用When the rule applies给出适用边界让 Agent 能判断当前任务是否需要遵守该规则。要遵循的本地模式The local pattern to follow正面描述应该怎么写。证明该模式的源文件或测试文件把读者导向真实的代码证据。常见错误或反模式Common mistakes or anti-patterns反向界定边界这是防止 Agent 踩坑的关键。具体且可靠的验证命令Verification commands or checks仅当命令具体、可靠时才写避免泛泛的请运行测试。必须回避的内容占位散文placeholder prose通用框架建议generic framework advice如请遵循 React 最佳实践只在单一 Agent 宿主有效的工具指令tool instructions that only work in one agent host长拷贝代码块long copied code blocks与第 2 节优先链接文件路径呼应基于单个偶然实现细节得出的规则rules based on a single accidental implementation detail。对照 EcoPaste 的 AGENTS.md其中大量约定本身就是上述五要素的示范。以平台隔离约定为例何时适用新增平台能力时macOS 或 Windows。本地模式用#[cfg(target_os macos)]/#[cfg(target_os windows)]隔离平台代码新增能力两端同步实现或显式标注 TODO。证据src-tauri/src/keystroke/、src-tauri/src/keyboard/、src-tauri/src/mouse/等目录下均有macos.rs/windows.rs/mod.rs的分层实现。反模式在共享模块中不加条件编译地写平台特定 API。验证命令cargo clippy -- -D warnings与cargo test见 AGENTS.md 的常用命令清单。再比如错误处理约定——用thiserror定义错误类型、anyhow做内部传播、tauri-plugin-log记录上下文AppError序列化为{ kind, message }——同样具备何时适用写命令与仓储函数时 本地模式asyncResultT, AppError 证据core/error.rs 反模式message加xxx failed: {err}动作前缀的完整结构。这类约定在 AGENTS.md 中已有沉淀而 Trellis Spec 的价值正是把它们从文档条款进一步细化为带证据路径的可执行指引。5. 示例形态一个可复用的 Spec 章节骨架文档给出了一段完整的示例章节展示Command Handlers类主题的标准写法完整还原如下## Command Handlers Command handlers should keep argument parsing, validation, and side effects separate. The local pattern is: - Parse CLI flags at the command boundary. - Convert raw inputs into typed task options before invoking core logic. - Keep filesystem writes in the command or service layer, not in template helpers. Reference files: - packages/cli/src/commands/example.ts - packages/cli/test/commands/example.test.ts Avoid passing raw process.argv or unvalidated config objects into shared helpers.拆解这段骨架可以提炼出三个固定组成部分一句话主题声明开篇用一句断言讲清楚该章节规范的整体要求保持参数解析、校验与副作用分离。本地模式要点列表用无序号列表给出 24 条具体的本地做法每一条都是可直接照做的行为指令而不是抽象原则。参考文件 反模式收尾给出参考文件子列表指向源文件与测试文件构成证据链最后用一句 Avoid ... 点出反模式。把同一骨架迁移到 EcoPaste 场景一条真实可落地的 Spec 章节可以写成## 剪贴板监听与回环抑制 剪贴板监听、写回与监听回环抑制必须在 Rust 侧实现Rust-First 架构边界。本地模式是 - 监听逻辑集中在 clipboard/ 模块watcher、read、write、guard前端不直接接触系统剪贴板 API。 - 内容类型识别URL、email、color、path在 clipboard/detect.rs 中完成前端只消费识别结果。 - 监听回环抑制由 clipboard/guard.rs 负责避免本应用写入又触发监听的自我唤醒。 参考文件 - src-tauri/src/clipboard/watcher.rs - src-tauri/src/clipboard/write.rs - src-tauri/src/clipboard/guard.rs 避免在前端或 command 层直接读取/写入系统剪贴板或把回环抑制逻辑散落在多个模块中。需要说明的是上述示例中的模块职责detect.rs做内容识别、guard.rs做回环抑制、watcher.rs负责监听、write.rs负责写回来自 AGENTS.md 对clipboard/模块的职责描述与目录文件结构属于以项目文档为证据的写法如果实际落地 Spec还应进一步打开这些文件核对符号级细节这正是第 2 节命名符号或行为的要求。6. 最终校验交付前的一遍 grep 与自检Spec 写完后不能直接交付文档要求完成一次Final Pass——既面向占位符也面向规范与仓库的贴合度。首先运行仓库文档给出的占位符扫描命令grep -R To be filled\|TODO: fill\|placeholder .trellis/spec这条命令在 spec 目录中检索三类占位符文本To be filled、TODO: fill、placeholder确保没有未完成的章节混入交付物。运行环境前提是.trellis/spec/目录已存在本仓库通过 Trellis 管理spec 目录由 Trellis 初始化biome.json 中也将.trellis/.runtime列入忽略规则与 Trellis 运行时产物共存。除了 grep 占位符文档还要求检查三件事链接是否有效Spec 内引用的文件路径都应真实存在指向当前仓库如本文第 2、4 节示例所示优先给仓库相对路径。index 文件是否同步新增或删除 spec 文件后对应的index.md导航必须与最终文件集合一致。是否仍有描述模板而非描述本仓库的 Spec这是最容易被忽略的一点——如果一个 spec 章节换成任何其他项目都能成立说明它还在描述模板而非本仓库。这三点与 SKILL.md 的 Done Criteria 完全对应.trellis/spec/描述的是项目当下的现状每个相关包/层都有带真实示例的实用指南不适用的模板章节已删除index.md与最终文件集合匹配分析假设已记录在相关 spec 或任务备注中。7. 与同技能其他参考文档的协作闭环spec-writing.md不是孤立存在的它处于 trellis-spec-bootstrap 技能分析 → 规划 → 编写 → 验证的闭环中间环节。理解相邻文档的职责才能用好这份编写指南repository-analysis.md写作前的前置工作。其核心主张是不要从通用 spec 模板出发填空而是从代码出发让 spec 结构跟随代码。它规定了分析顺序先读既有.trellis/spec/树 → 检查包清单与构建脚本 → 用工具梳理执行流 → 读代表性源码与测试以及应该捕获的信息域包边界、运行时层、核心抽象、数据流、错误处理、配置、测试风格。spec-task-planning.md写作前的任务规划。它以真实所有权边界为单位拆分 spec 工作并提供了一份含 Goal / Scope / Architecture Context / Files To Create Or Update / Rules / Acceptance Criteria 的 PRD 模板——其中Acceptance Criteria规范含具体示例与反模式、无占位符、index 匹配、论断有证据与本文第 6 节的自检项一一对应。mcp-setup.md可选但推荐的证据收集工具链。它介绍了两类工具GitNexus构建代码知识图谱用于模块边界、执行流、影响范围查询如npx gitnexus analyze、npx -y gitnexus mcp与 ABCoder解析代码为 AST用于精确获取签名、类型与实现通过go install安装后以abcoder mcp提供 MCP 服务。文档同时提醒这些是工具选择而非平台要求分析结论必须回源码核对不能以图谱输出为最终权威——这与 spec-writing 的证据优先于工具输出精神一致。结语Trellis Spec 编写是一门让知识可追溯的工程核心不在文采而在证据。基于证据写作、文件结构与项目对齐、五要素章节形态、交付前 grep 校验构成了 EcoPaste 这类 Trellis 管理仓库中规范文档的完整生产链路。对维护者而言这套方法论的最大收益是——未来接入的每一个 AI Agent 都能通过.trellis/spec/快速对齐仓库的真实约束从 Rust-First 架构边界到domain://action事件命名而不必重新摸索或误读代码对 Agent 而言规范的证据路径也让遵守规则变成可核实的事实而非对文档的盲从。赞分享桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载相关推荐EcoPaste 仓库的 Trellis Spec Bootstrap 实践以单 Agent 工作流从真实代码库构建编码规范EcoPaste 仓库的 Trellis Spec Bootstrap 实践以单 Agent 工作流从真实代码库构建编码规范 导读 本文围绕 EcoPaste桌面应用Sandcastle 的 AGENTS.md 工程实践面向 AI 编码 Agent 的仓库协作规范Sandcastle 的 AGENTS.md 工程实践面向 AI 编码 Agent 的仓库协作规范 AGENTS.md 是 Sandcastle 仓库中面向Volatility3内存取证分析的终极指南从数字犯罪现场提取关键证据Volatility3内存取证分析的终极指南从数字犯罪现场提取关键证据 你是否曾想过当系统遭遇入侵或恶意软件攻击时那些看似消失的犯罪证据其实就隐藏在内存桌面应用上一篇pix2pix与U-Net网络编码器-解码器架构的深度理解下一篇GOCUI并发安全指南如何在运行时动态修改GUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表