现在很多人用 Claude Code、Cursor、Codex 写代码,刚开始会觉得效率很高:让 AI 写接口、修 bug、补测试、改文档,确实很快。

但用久了以后,会遇到一个更深的问题:

AI 会写代码,但它不一定懂你的项目。

它可能知道 Spring Boot、MyBatis、Redis、JWT,但它不知道你的项目里:

项目约定

AI 容易出错的地方

Controller 只负责接收参数和返回结果

AI 把业务逻辑写进 Controller

Service 负责业务编排和事务

AI 随便加事务或漏掉事务

接口统一返回 ApiResponse<T>

AI 直接返回 VO、Map、String

业务异常统一走 BusinessException

AI 到处 try-catch

DTO、Entity、VO 要分开

AI 直接用 Entity 接收请求或返回前端

Mapper 只做数据访问

AI 把业务判断写进 SQL 层

这些问题本质上不是 AI 不会 Java Web,而是它没有项目上下文。

Trellis 要解决的正是这个问题。

一句话概括:

Trellis 是一个面向 AI 编程助手的项目级规范、任务和记忆系统。

它不是新的 AI 模型,也不是新的开发框架,而是给 Claude Code、Cursor、Codex 等 AI 编程工具准备的一套“项目脚手架”。它把项目规范、任务上下文、开发记录保存到仓库里,让 AI 每次工作前都能重新读取这些信息。Trellis 文档

一、Trellis 解决的核心问题

没有 Trellis 时,AI 编程很依赖当前会话。

你在这次聊天里告诉它项目规范,它这次可能会遵守。但下次开新会话,很多信息就没了。你又要重新解释:

你反复解释的内容

示例

架构规则

Controller、Service、Mapper 怎么分层

代码风格

命名、注释、异常、日志怎么写

业务约定

错误码、权限校验、分页格式

当前任务

这次到底要做什么,哪些不做

历史决策

为什么之前选择这种实现方式

Trellis 的思路不是让 AI “记住一切”,而是把这些知识写成项目文件。

也就是说:

AI 不需要靠脑子记住项目,而是每次工作前读取项目里的 Trellis 上下文。

二、Trellis 的三个核心模块

Trellis 最核心的是三个东西:Spec、Task、Workspace。

模块

位置

作用

Spec

.trellis/spec/

项目规范,告诉 AI 这个项目应该怎么写

Task

.trellis/tasks/

任务上下文,告诉 AI 这次具体要做什么

Workspace

.trellis/workspace/

会话记录,告诉 AI 之前做过什么

官方文档也把 Specs、Tasks、Workspace 作为 Trellis 的核心结构。Trellis 概览

换成 Java Web 项目来理解:

Trellis 模块

Java Web 里的例子

Spec

接口返回规范、异常规范、事务规范、分层规范

Task

新增用户注册接口、重构订单状态流转、修复支付回调 bug

Workspace

上次为什么改了订单状态机、哪个接口还没补测试

三、Spec:把项目规范写给 AI 看

Spec 是 Trellis 最重要的部分。

它不是普通文档,而是 AI 每次开发前应该读取的项目规则。

比如 Java Web 项目里,可以把规范拆成这样:

文件

内容

.trellis/spec/backend/index.md

后端总规范

.trellis/spec/backend/api.md

API 路径、请求、响应、分页规范

.trellis/spec/backend/service.md

Service 层职责、事务边界

.trellis/spec/backend/database.md

Mapper、SQL、分页、查询规范

.trellis/spec/backend/exception.md

异常、错误码、全局异常处理

.trellis/spec/backend/security.md

登录态、权限注解、接口鉴权

.trellis/spec/backend/testing.md

单元测试、集成测试、Mock 规则

关键是,Spec 不能写得太虚。

不好的规范:

不推荐写法

请写高质量代码

注意异常处理

保持代码整洁

遵循项目风格

好的规范应该具体:

规范项

推荐写法

Controller

Controller 不写业务逻辑,只做参数接收、参数校验、调用 Service、返回统一响应

Service

Service 负责业务编排和事务控制,涉及多次数据库写入的方法必须声明事务

Entity

Entity 只表示数据库结构,不允许直接作为接口请求或响应对象

Exception

业务异常统一抛出 BusinessException,由全局异常处理器转换为统一响应

Response

所有 HTTP 接口必须返回 ApiResponse<T>,分页接口返回 PageResult<T>

官方也强调,好的 Spec 应该具体、可执行,最好包含路径、格式、正确例子和错误例子。写规范

四、Task:让 AI 知道这次任务的边界

Spec 解决的是长期规范,Task 解决的是当前任务。

比如你让 AI 做:

模糊需求

帮我加一个用户注册功能

AI 可能会顺手做很多东西:注册、登录、JWT、短信验证码、用户表结构、权限系统,甚至重构现有模块。

Trellis 的 Task 会把需求整理成更明确的任务文件,比如:

内容

示例

Goal

新增手机号注册接口

Requirements

校验手机号、验证码、密码强度;手机号不能重复

Acceptance Criteria

重复手机号返回指定错误码;验证码错误时注册失败

Out of Scope

不做登录接口,不改权限系统,不做第三方登录

Technical Notes

复用现有 UserServiceSmsCodeServiceUserMapper

Related Specs

读取 API 规范、异常规范、Service 规范、数据库规范

这样 AI 执行任务时,就不会凭感觉扩大范围。

它知道这次只做“手机号注册”,不是顺便把整个认证系统都写一遍。

五、Workspace:项目内的会话记忆

Workspace 保存的是当前项目里的开发记录。

它不是全局记忆,而是项目级记忆。

这点很重要。

记忆类型

适合放哪里

个人偏好

Codex / ChatGPT 全局记忆

项目规范

.trellis/spec/

当前任务

.trellis/tasks/

项目开发记录

.trellis/workspace/

比如你的个人偏好是:

个人偏好

写博客不要用代码块包列表

流程图用 Mermaid

讲技术时先讲本质,再讲细节

这些适合全局记忆。

但下面这些应该放到 Trellis:

项目记忆

本项目接口统一返回 ApiResponse<T>

用户模块不能直接返回 Entity

订单状态流转必须经过状态机

支付回调必须保证幂等

Redis key 必须带业务前缀和版本号

一句话:

全局记忆记住“你这个人怎么工作”,Trellis 记住“这个项目应该怎么写”。

六、Trellis 的标准工作流

Trellis 不只是存文档,它还有一套围绕任务推进的工作流。

flowchart TD A[用户提出需求] --> B[trellis-brainstorm 梳理需求] B --> C[生成 Task 和 prd.md] C --> D[trellis-before-dev 读取相关 Spec] D --> E[AI 实现代码] E --> F[trellis-check 检查实现] F --> G[trellis-update-spec 沉淀经验] G --> H[finish-work 归档任务和写 Journal]

Trellis 0.5 之后偏向 skill-first,很多能力会通过 skill 触发,比如 trellis-brainstormtrellis-before-devtrellis-checktrellis-update-spectrellis-break-loop命令、任务与规范

结合 Java Web 项目看:

阶段

作用

brainstorm

把接口需求、业务规则、边界条件问清楚

before-dev

先读取 API、异常、事务、分层规范

implement

修改 Controller、Service、Mapper、DTO、VO

check

检查是否违反项目规范

update-spec

把踩坑经验沉淀到 Spec

finish-work

归档任务,写入开发记录

七、Trellis 和 Superpowers 的区别

Trellis 和 Superpowers 有重叠,但重点不一样。

对比

Trellis

Superpowers

核心定位

项目级上下文系统

AI 开发方法论和 skill 集合

重点

Spec、Task、Workspace

Brainstorm、TDD、Debug、Review

记忆方式

写入项目 .trellis/

更多依赖 skill、plan、当前流程

多人协作

更适合团队共享项目规范

可以多人用,但不是主打项目记忆

防迷路能力

有任务状态和项目文件承接

更依赖模型自动触发或手动调用

适合场景

长期项目、团队项目、规范复杂项目

强流程开发、TDD、系统调试

更准确地说:

Superpowers 更像是“教 AI 怎么干活”。

Trellis 更像是“告诉 AI 在这个项目里应该怎么干活”。

如果你只想让 AI 更有纪律,Superpowers 很有价值。
如果你想让 AI 长期理解一个项目,Trellis 更适合做底座。

八、Java Web 项目如何落地 Trellis

不要一开始就写一堆规范。Trellis 更适合逐步沉淀。

推荐从三个最容易出问题的地方开始:

优先级

Spec 内容

原因

API 返回结构

AI 很容易乱返回

分层职责

AI 很容易把逻辑写错层

异常处理

AI 很容易到处 try-catch

事务规范

涉及写操作时容易漏事务或乱加事务

DTO / VO / Entity 规范

Java Web 项目很常见

测试规范

后续让 AI 补测试更稳定

日志、注释、提交信息

可以后面慢慢补

初期只需要让 AI 明确几条规则:

初始规则

Controller 不写业务逻辑

Service 负责业务编排和事务

Mapper 只负责数据访问

请求使用 DTO,响应使用 VO

不允许接口直接返回 Entity

业务异常统一使用 BusinessException

接口统一返回 ApiResponse<T>

分页统一返回 PageResult<T>

然后让 AI 做一个小任务,比如“新增根据手机号查询用户信息接口”。
观察它有没有遵守规范。
如果没有,就把失败经验继续补进 Spec。

这才是 Trellis 的正确打开方式:

不是一次性写完所有规则,而是在真实开发中不断把经验沉淀成项目规范。

总结

Trellis 的本质不是让 AI 更聪明,而是让 AI 更懂你的项目。

它通过 .trellis/spec/ 保存项目规范,通过 .trellis/tasks/ 管理任务上下文,通过 .trellis/workspace/ 保存项目内会话记录。

对于 Java Web 项目来说,它尤其适合解决这些问题:

问题

Trellis 的解决方式

AI 不遵守分层

写入 Controller、Service、Mapper 规范

AI 返回格式不统一

写入 API 响应规范

AI 异常处理混乱

写入异常和错误码规范

AI 任务容易跑偏

用 Task 和 PRD 限定范围

AI 跨会话断片

用 Workspace 保存项目记录

团队提示词不统一

用 Git 共享 .trellis/spec/