拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

EcoPaste 本地 Spec 系统:基于 .trellis/spec 的项目级工程规范注入机制

EcoPaste 本地 Spec 系统:基于 .trellis/spec 的项目级工程规范注入机制 桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载本指南围绕 Trellis 本地 Spec 系统.trellis/spec/展开系统讲解规范库的目录模型、包配置、规范注入任务链与自定义扩展点并对照 EcoPaste 仓库中已落地的.trellis/spec/、.trellis/config.yaml与任务 JSONL 上下文给出可验证的实例。读完本文你将掌握如何在 Tauri React 项目中为 AI 编码助手建立一套按包、按层、按需注入的项目专属工程规范并理解为何它区别于通用最佳实践模板。一、设计定位注入规范而非让 AI 记忆惯例.trellis/spec/是用户在项目内维护的工程规范库project-specific engineering spec library。Trellis 的理念不是让 AI 死记硬背约定而是在合适的时机注入相关规范或要求 AI 在动手前读取它们。因此规范文件不是静态文档而是面向执行上下文的分层条目随任务按需加载。在 EcoPaste 中这一系统已实际初始化仓库根目录存在 .trellis/spec/并由 AGENTS.md 中的!-- TRELLIS:START --区块向 AI 声明开发所需工作知识位于.trellis/下包括 workflow、spec、workspace、tasks 四个部分同时规定.trellis/spec/为包级与层级的编码规范见 AGENTS.md。二、目录模型index.md 作为每一层的入口规范库采用按包package→ 按层layer的两级组织方式常见形态有两种。单仓库single-repository结构按技术域切分顶层目录.trellis/spec/ ├── backend/ │ ├── index.md │ └── ... ├── frontend/ │ ├── index.md │ └── ... └── guides/ ├── index.md └── ...单仓库monorepo结构先按包、再按层切分.trellis/spec/ ├── cli/ │ ├── backend/ │ │ ├── index.md │ │ └── ... │ └── unit-test/ │ ├── index.md │ └── ... ├── docs-site/ │ └── docs/ │ ├── index.md │ └── ... └── guides/ ├── index.md └── ...index.md是每个层的入口文件职责是列出开发前检查清单Pre-Development Checklist与质量检查项Quality Check具体细则存放在同目录下的其他 Markdown 文件中。以 EcoPaste 为例backend/index.md 给出 Guides 路由表architecture、commands-and-events、clipboard-pipeline、database-and-storage、settings-window-platform、Layer Map 模块职责表以及默认规则新增持久化/内容分类/OS 交互能力时先设计 Rust 契约再暴露精简 command/event 给 React 渲染。顶层 spec/index.md 进一步确立了规范的权威层级当与AGENTS.md重叠时AGENTS.md是项目级权威spec 文件补充源码级细节同时给出编辑前检查判断层归属、先查常量与契约、前端业务数据保持为 command 结果而非本地数据库副本、仅允许 macOS/Windows#[cfg]与验证基线pnpm lint/pnpm tsc与cargo fmt/clippy/test见 spec/index.md。三、包配置config.yaml 声明包与默认包多包monorepo项目可在.trellis/config.yaml中声明包packages: cli: path: packages/cli docs-site: path: docs-site type: submodule default_package: cli字段含义字段作用packages.name.path包在仓库中的目录路径packages.name.type可选submodule声明该包为子模块git: true表示独立仓库polyrepo/meta-repo 布局default_package--package未指定时使用的默认包Trellis 在trellis init时会自动探测 workspace但.trellis/config.yaml允许手动声明。EcoPaste 并非 monorepo其 config.yaml 将packages相关配置保留为注释示例实际启用的配置是 session 自动提交、任务生命周期 hooksafter_create/after_start/after_finish/after_archive通过TASK_JSON_PATH环境变量接收 task.json 路径以及 channel worker 守护idle_timeout: 5m、max_live_workers: 6。四、用 get_context.py 枚举规范层声明好包之后AI 可运行内置脚本列出当前项目的包与规范层python3 ./.trellis/scripts/get_context.py --mode packages脚本支持两种输出形态文本与 JSON见 get_context.pypython3 .trellis/scripts/get_context.py # 文本格式输出 python3 .trellis/scripts/get_context.py --json # JSON 格式输出该命令的输出应作为配置上下文 JSONL 时的参考依据——即有哪些 spec 可用、各属于哪个包/层直接决定下文任务 JSONL 中该引用哪些文件。五、Spec 如何进入任务implement.jsonl / check.jsonl任务进入实现阶段前规划阶段可以在任务产物之外将需要的规范写入任务的上下文文件{file: .trellis/spec/cli/backend/index.md, reason: CLI backend conventions} {file: .trellis/spec/cli/unit-test/conventions.md, reason: Test expectations}每行一个 JSON 对象含两个字段file规范文件路径仅放 spec/research 文件不放代码路径reason加载该规范的原因。子代理sub-agents或平台 prelude 读取这些 JSONL 并加载对应规范在不支持子代理的平台上AI 应按工作流直接读取相关规范。EcoPaste 的存档任务目录完整保留了这一结构例如 .trellis/tasks/archive/2026-06/06-12-auto-updater/ 等任务目录内均同时存在implement.jsonl与check.jsonl两个文件分别控制实现前与检查时注入哪些 spec。get_context.py --mode packages输出的包/层清单正是填充这两个 JSONL 时的参照表。六、Spec 应包含什么可执行的工程惯例Spec 的价值在于可执行内容是面向当前仓库的工程惯例而非通用最佳实践。原文档给出的构成要素为文件应该放在哪里Where files should live错误处理如何表达How error handling should be expressedAPI、hooks、命令的输入/输出契约Input/output contracts for APIs, hooks, and commands被禁止的模式Patterns that are forbidden需要测试的场景Cases that require tests项目特有的坑与规避方法Project-specific pitfalls and how to avoid them。配套技能 trellis-spec-bootstrap 进一步强调从证据出发写作每条重要规则应由源码文件、测试文件、项目文档或跨文件重复模式支撑尽量链接文件路径并点名符号或行为避免占位文本、通用框架建议和仅适用于单一 Agent 宿主的使用说明见 spec-writing.md。EcoPaste 的 spec/index.md 即为这种风格的范例——它用 Layer Map 表把模块职责落到src-tauri/src/commands/、clipboard/、db/、settings/、window/等真实目录上而不是复述泛化建议。原文档还规定了一条元规则AI 在实现或调试中学到新规则时应更新.trellis/spec/而非只在对话中总结。这保证规范库随代码演进持续保鲜。七、本地自定义点速查表原文档以表格形式给出了全部本地自定义入口完整继承如下需求编辑位置新增一个 spec 层.trellis/spec/package/layer/index.md及对应细则文件修改 monorepo spec 映射.trellis/config.yaml中的packages/default_package/spec_scope修改实现前 AI 读取哪些 spec任务的implement.jsonl修改检查阶段 AI 读取哪些 spec任务的check.jsonl修改 spec 何时更新.trellis/workflow.md的 Phase 3.3 与trellis-update-spec技能配套技能树中trellis-spec-bootstrap 负责从真实代码库创建/刷新 spec核心流程确认 init 状态 → 分析仓库 → 按实际代码库拆分包/层 → 用真实路径与反例填充 → 验证无占位文本trellis-update-spec 负责按工作流阶段驱动更新。这两者与原文档的何时更新行一一对应。八、边界本地规范优先于内置模板.trellis/spec/是用户项目的规范不是 Trellis 内置模板的永久副本。AI 应鼓励用户依据项目真实代码持续更新它而不是把 Trellis 默认模板当作不可变文档。trellis-spec-bootstrap 的 Operating Rules 也强调同一原则模板只是起点而非契约可删除、重命名、拆分或新增 spec 文件只要规范如实描述仓库现状见 SKILL.md。在 EcoPaste 中这一边界已被实践验证其 backend/index.md、frontend/index.md 与 guides/index.md 均为针对该 Tauri v2 项目定制的内容如 Rust-First 边界、macOS/Windows#[cfg]双平台约束、Valtio 仅做 UI 状态与设置镜像等而非 Trellis 内置模板的照搬。九、完整落地路径从 init 到按需注入结合上述机制在 EcoPaste 这类项目中搭建与使用本地 Spec 系统的完整链路为初始化运行trellis init生成.trellis/目录骨架与平台接入文件.claude、.codex、.cursor 等目录中的 agents/hooks/skills/commands建库按仓库实际形态在.trellis/spec/下创建backend/、frontend/、guides/等层每层以index.md为入口并附细则文件声明白若为 monorepo在 .trellis/config.yaml 中配置packages/default_package/spec_scope枚举可用规范运行python3 .trellis/scripts/get_context.py --mode packages以输出结果作为填充任务上下文的参考按任务注入规划阶段把需要的 spec 与 reason 写入该任务的implement.jsonl/check.jsonl子代理或平台 prelude 据此加载持续保鲜AI 在实现与调试中发现的任何新约定回写.trellis/spec/并依据 workflow.md 与trellis-update-spec技能确定更新时机。这样规范系统便从AI 的静态记忆转变为项目驱动的动态注入实现工程惯例与任务执行上下文的精确对齐。赞分享桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载相关推荐Trellis 本地规范系统Local Spec System全解析以 EcoPaste 的 .trellis/spec/ 落地实践为例Trellis 本地规范系统Local Spec System全解析以 EcoPaste 的 .trellis/spec/ 落地实践为例 本文围绕 Tre桌面应用EcoPaste 工程实践Trellis Local Spec System 本地规范体系全解析EcoPaste 工程实践Trellis Local Spec System 本地规范体系全解析 导读 Trellis 的核心设计哲学是不让 AI 背规范桌面应用Trellis 项目本地约定注入指南用 .trellis/spec/ 与项目级 Skill 承载团队规范EcoPaste 仓库实战Trellis 项目本地约定注入指南用 .trellis/spec/ 与项目级 Skill 承载团队规范EcoPaste 仓库实战 本篇指南讲解在已通过桌面应用上一篇闪电网络路径查找算法Mastering the Lightning Network高级应用下一篇5分钟快速诊断与解决Citra模拟器黑屏闪退问题创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表