跳转到主要内容
Trellis 是 Team-level Agent Harness with built-in LLM wiki 落到实现上,它是两套系统共用同一批项目文件:
  • Agent Harness:workflow state、hook、skill、sub-agent 和平台适配层,用来约束 AI coding 工作怎么推进。
  • Built-in LLM wiki:spec、task、research、journal 存在仓库里,让 AI session 从文件重新加载项目知识。
  • Team-level layer:workflow、spec、task 走 git 跟踪,workspace memory 按 developer 隔离,让多人和多 AI 工具使用同一套约定。
本文档把这个定位映射到当前 Trellis 的 feature、实现这些 feature 的模块,以及本地定制时应该检查哪些文件。使用流程见 How It Works
Trellis 采用 AGPL-3.0 协议。团队内部使用不需要额外授权;基于 Trellis 衍生产品或服务做商业化,需要提前联系:[email protected]

设计理念

Trellis 把 AI coding 当成工作流和知识管理问题,而不是一次聊天。

Feature 全景

Agent Harness

Built-in LLM wiki

Team-level behavior

Feature 到模块映射

Workflow module

.trellis/workflow.md 是 Trellis Plan -> Execute -> Finish 契约的事实源。
这个文件负责三件事:
  • phase 定义和编号步骤
  • 按平台能力区分的 skill / sub-agent 路由
  • 每轮 breadcrumb hook 读取的 [workflow-state:STATUS] blocks
改工作流行为先改这里。平台 command、skill、agent 文件如果也描述同一套流程,可能需要同步文字,但工作流契约本身归 .trellis/workflow.md

Workflow-state module

在支持 hook 的平台上,inject-workflow-state.py 或等价 plugin 会在每条用户 prompt 时运行。 运行时契约是:
  1. cwd 解析 Trellis 根目录。
  2. 解析当前 session 的 active task。
  3. 读取 task.json.status;没有 active task 时合成 no_task
  4. 解析 .trellis/workflow.md
  5. 把匹配的 [workflow-state:STATUS] 正文注入到 <workflow-state>...</workflow-state>
标记格式:
Hook 脚本只负责解析,不保存 breadcrumb 文案副本。缺少匹配 block 时,hook 输出 Refer to workflow.md for current step. 默认状态: task.py create 会尽量设置当前 session 的 active-task pointer,所以 brainstorm 和 JSONL 整理阶段可以看到 planning

Task store module

每个任务是一个目录:
关键文件: Task lifecycle hook 是命令事件,不是通用 status watcher:

Active-task runtime module

Current task 按 session 隔离:
这个文件把一个 AI session 或窗口指向一个任务。同一仓库里的不同窗口可以做不同任务。 .trellis/.current-task 是命令行场景的 fallback。平台能提供 session identity 时,session runtime pointer 优先。

Context-loading module

Trellis 通过三条路径加载上下文: JSONL 行是普通文件引用:
标准流程里,task artifact 和 JSONL manifest 分开读取。统一顺序是 jsonl entries -> prd.md -> design.md if present -> implement.md if presentimplement.jsonlcheck.jsonl 列 spec 和 research 文件。没有 file 字段的 seed row 会被 reader 跳过。源文件由实现和 review 时按需读取,不预先登记在 JSONL 里。

Platform adapter module

Trellis 使用每个平台可用的原语。真实项目以本地生成文件为准,默认能力分组如下: 如果本地 settings 文件跟这张表不一致,以本地 settings 为准。Trellis 项目本来就允许定制。

Agent and skill module

平台支持 sub-agent 时,Trellis 默认提供三个角色: Skill 覆盖主会话需要指导的阶段:brainstorm、before-dev、check、update-spec、finish-work 和 meta customization。没有 sub-agent 的平台上,skill 会承担更多主会话内执行逻辑。 已经移除的 0.4 机制:
  • dispatchplandebug sub-agent 由 skill routing 替代。
  • 基于 SubagentStop 的 Ralph Loop 由 trellis-check 自己的重试循环替代。
  • Trellis 不再自带 /parallel worktree 编排;多 worktree 并行用平台原生能力。

LLM wiki modules

Wiki 侧是一组 AI session 可以反复读取的仓库文件。 稳定团队规则放 .trellis/spec/。任务事实放任务目录。Session notes 放 .trellis/workspace/<developer>/

Finish module

Trellis 把实现、工作 commit、收尾记账分开:
  1. Implement/check agent 产出通过检查的 diff。
  2. 主会话做最终验证,并运行 trellis-update-spec
  3. Phase 3.4 生成分批 commit 计划,等待一次用户确认后 stage 指定文件并运行 git commit。不 amend,不 push。
  4. /trellis:finish-work 分类脏文件;如果当前任务改动仍未提交就停止,然后归档任务并写 workspace journal。
/trellis:finish-work 不是提交功能代码的命令。工作 commit 先发生;archive 和 journal 是之后的收尾记录。

生成文件和受保护文件

trellis inittrellis update 会生成本地文件,但本地改动本身很重要: 做本地定制时,用内置 trellis-meta skill 当地图。它会要求 AI 先读本地架构 references,检查项目实际文件,再修改项目副本,而不是去改 node_modules 或全局安装目录。

定制入口