跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.trytrellis.app/llms.txt

Use this file to discover all available pages before exploring further.

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 当成工作流和知识管理问题,而不是一次聊天。
理念实现规则
显式记录工作流状态Task status[workflow-state:STATUS] block 告诉主会话当前在哪个阶段。
把持久知识放进文件需求、spec、research、journal 存在 .trellis/ 下,不只存在对话历史里。
按职责拆分工作调研、实现、验收分别走不同 agent 或 skill,取决于平台能力。
控制上下文范围JSONL 只列当前任务需要的 spec/research 文件,不把整个仓库塞进上下文。
保留 review 边界Implement/check agent 产出干净 diff;主会话提出 commit 计划;/trellis:finish-work 只归档和写 journal。
支持团队和多工具同一套 .trellis/ 模型适配 Claude Code、Cursor、Codex、OpenCode、Kiro、Gemini、Qoder、Copilot、Droid、Pi、Kilo、Antigravity、Windsurf 等工具。

Feature 全景

Agent Harness

Feature作用
三阶段工作流.trellis/workflow.md 里定义 Plan、Execute、Finish。
每轮 workflow-state breadcrumb在支持 hook 的平台上,把当前 next-action 规则注入主会话。
Task lifecycle.trellis/tasks/<task>/ 中保存需求、状态、负责人、分支、PR 元数据和子任务关系。
Research / implement / check 角色分开调研、写代码、验收。
Read-before-write让 implement/check 路径在改文件前读取 PRD 和相关 spec。
Finish 边界分开最终验证、spec 更新、工作 commit、任务归档和 journal 写入。

Built-in LLM wiki

Feature存什么
Spec library.trellis/spec/ 下的项目约定和 thinking guide。
Task knowledge.trellis/tasks/ 下的 PRD、research、info 和 JSONL manifest。
Workspace memory.trellis/workspace/<developer>/ 下的开发者 journal。
Workflow documentation.trellis/workflow.md 里的可执行工作流契约。
Local customization map内置 trellis-meta references,说明每类行为由哪些生成文件负责。

Team-level behavior

Feature支持什么
Git-tracked workflow/spec/task files新成员 clone 仓库后拿到同一套工作流和约定。
Per-session active task pointer多个窗口可以在同一仓库里做不同任务。
Subtask treeParent task 承载共享需求,child task 各自跑完整 Plan -> Execute -> Finish。
Cross-platform adapters团队可以用不同 AI 工具,同时共享同一套 .trellis/ 事实源。
Spec distillation一个任务里的稳定经验可以提升到 .trellis/spec/,供未来任务复用。

Feature 到模块映射

Feature主要模块本地文件
工作流 phase 和路由Workflow module.trellis/workflow.md
每轮 next-action 注入Workflow-state module[workflow-state:STATUS] blocks、inject-workflow-state.py 或等价 plugin
任务创建、状态、归档Task store module.trellis/tasks/<task>/task.json.trellis/scripts/task.py.trellis/scripts/common/task_store.py
Session-scoped current taskActive-task runtime.trellis/.runtime/sessions/<session-key>.json.trellis/scripts/common/active_task.py
PRD/spec 注入Context-loading moduleimplement.jsonlcheck.jsonlinject-subagent-context.py、平台 agent prelude
Research / implement / check 角色Agent and skill module平台 agents/skills/、prompt、workflow
团队规范记忆Spec module.trellis/spec/**/index.md 和 guideline 文件
开发者记忆Workspace module.trellis/workspace/<developer>/journal-*.md
平台支持Platform adapter module.claude/.codex/.cursor/.opencode/.kiro/.gemini/.qoder/.github/.pi/
收尾和归档Finish module/trellis:finish-work.trellis/scripts/add_session.py、task archive scripts

Workflow module

.trellis/workflow.md 是 Trellis Plan -> Execute -> Finish 契约的事实源。
Phase 1: Plan    -> 创建任务,写 prd.md,整理 JSONL 上下文
Phase 2: Execute -> 实现、验收,直到检查通过
Phase 3: Finish  -> 最终验证、更新 spec、提交工作改动、归档
这个文件负责三件事:
  • 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>
标记格式:
[workflow-state:planning]
...
[/workflow-state:planning]
Hook 脚本只负责解析,不保存 breadcrumb 文案副本。缺少匹配 block 时,hook 输出 Refer to workflow.md for current step. 默认状态:
Status写入者说明
no_taskHook 合成当前 session 没有 active task pointer。
planningtask.py create需求、调研、JSONL 整理阶段。
in_progresstask.py start实现、验收、收尾阶段。
completedtask.py archive归档前瞬间写入;正常流程里不会作为 live breadcrumb 出现。
task.py create 会尽量设置当前 session 的 active-task pointer,所以 brainstorm 和 JSONL 整理阶段可以看到 planning

Task store module

每个任务是一个目录:
.trellis/tasks/<MM-DD-slug>/
├── task.json
├── prd.md
├── info.md
├── implement.jsonl
├── check.jsonl
└── research/
关键文件:
文件作用
task.json状态、优先级、负责人、分支、PR URL、父子任务关系和扩展元数据。
prd.md需求和验收标准。
info.md可选技术设计。
implement.jsonl实现路径必须先读的 spec 和 research 文件。
check.jsonl验收路径必须先读的 spec 和 research 文件。
research/trellis-research 或规划流程写入的调研产物。
Task lifecycle hook 是命令事件,不是通用 status watcher:
Lifecycle event触发时机含义
after_createtask.py create 结束任务目录已经存在。
after_starttask.py start 结束任务进入 in_progress
after_finishtask.py finish 清掉 session pointer当前 AI session 脱离该任务;任务可能还在其他 session 继续。
after_archivetask.py archive 结束任务已归档;外部系统的 done 同步应该用这个事件。

Active-task runtime module

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

Context-loading module

Trellis 通过三条路径加载上下文:
上下文类型来源使用者
启动上下文.trellis/scripts/get_context.py主会话启动报告。
每轮 workflow state.trellis/workflow.md blocks主会话 next-action 指引。
Sub-agent task/spec contextprd.mdinfo.mdimplement.jsonlcheck.jsonl、research filesResearch、implement、check 角色。
JSONL 行是普通文件引用:
{"file": ".trellis/spec/docs-site/docs/style-guide.md", "reason": "Docs writing style"}
标准流程里,implement.jsonlcheck.jsonl 列 spec 和 research 文件。没有 file 字段的 seed row 会被 reader 跳过。源文件由实现和 review 时按需读取,不预先登记在 JSONL 里。

Platform adapter module

Trellis 使用每个平台可用的原语。真实项目以本地生成文件为准,默认能力分组如下:
分组平台启动上下文每轮 workflow-state实现 / 验收上下文
Hook + hook-push sub-agentClaude Code、Cursor、OpenCode、CodeBuddy、Droid、PiHook、plugin 或 extensionHook 或等价机制Sub-agent 启动前由 hook 注入 PRD + JSONL 文件。
Hook + pull-prelude sub-agentGemini CLI、Qoder、CopilotHookHookSub-agent 启动后自己读取 PRD + JSONL。
CodexCodexAGENTS.md;开启 features.hooks = true 后有 SessionStart(旧版用 codex_hooks = true开启后有可选 hook(0.129+ 还需 /hooks 审批)Pull-based prelude 加共享 .agents/skills/
KiroKiro.kiro/ 下的 skill 文件默认没有 Trellis 每轮 hookAgent / skill 文件读取 Trellis 上下文。
主会话 workflow / skillKilo、Antigravity、Windsurf手动 workflow 或 skill 入口默认没有 Trellis 每轮 hook主会话内联读取 spec 和 task 文件。
如果本地 settings 文件跟这张表不一致,以本地 settings 为准。Trellis 项目本来就允许定制。

Agent and skill module

平台支持 sub-agent 时,Trellis 0.5 默认提供三个角色:
Sub-agent角色主要上下文
trellis-research调研代码、文档、API 和方案;把结论写到 research/调研 prompt 和可选 research context。
trellis-implement按 PRD 和相关 spec 写改动。prd.mdinfo.mdimplement.jsonl
trellis-checkReview、跑检查、能修则自修。prd.mdcheck.jsonl、改动文件。
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 可以反复读取的仓库文件。
Module路径内容
Spec library.trellis/spec/团队约定、package/layer 规则、thinking guide。
Task knowledge.trellis/tasks/PRD、research、技术说明、JSONL manifest、archive。
Workspace memory.trellis/workspace/<developer>/开发者 journal 和索引。
Workflow reference.trellis/workflow.md工作流契约和 next-action prompt blocks。
Trellis meta reference内置 trellis-meta skill生成文件的本地架构和定制地图。
稳定团队规则放 .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/workflow.md项目工作流事实源;需要有意识地改。
.trellis/spec/团队拥有;模板更新不会覆盖 package / layer spec。
.trellis/tasks/工作历史;避免手动删除 active task。
平台目录工具适配层;改行为前先看本地 settings。
.trellis/.template-hashes.json管理用 hash 索引;只在修复 update 状态时改。
.trellis/.runtime/Runtime 状态;通常不手改。
做本地定制时,用内置 trellis-meta skill 当地图。它会要求 AI 先读本地架构 references,检查项目实际文件,再修改项目副本,而不是去改 node_modules 或全局安装目录。

定制入口

目标先看哪个文件
改 phase 顺序、required step、next-action 文案.trellis/workflow.md
改任务创建、状态、归档、lifecycle sync.trellis/scripts/common/task_store.py.trellis/scripts/task.py.trellis/config.yaml
改 spec 加载或 JSONL 规则.trellis/workflow.md.trellis/scripts/common/task_context.py、平台 agent / prelude 文件
改 hook 行为平台 hook settings 加 .trellis/scripts/ 下的 hook 实现
改 implement / check agent 行为平台 agent 文件和任务 JSONL 上下文规则
增加团队自己的编码规则.trellis/spec/ 或项目本地 skill