这是日常使用流程。模块边界、定制入口、实现细节看 架构全景。
流程总览

1. 会话启动
一个 Trellis 项目是带.trellis/ 的仓库,再加上 .claude/、.codex/、
.cursor/、.opencode/、.kiro/、.pi/ 等平台目录。
在有 SessionStart 路径的平台上,Trellis 会注入紧凑的启动 payload。它是
索引和状态报告,不会全量塞入每个 workflow、spec 或 task artifact。
常见启动上下文包括:
不同平台的交付方式不同:
这一步结束后,AI 应该知道 Trellis 上下文在哪里。具体 phase 细节通过
workflow-state breadcrumb、skill 或
get_context.py 按需加载。
2. 每条消息带当前工作流状态
在支持 hook 的平台上,每条用户消息都会触发一次轻量的 workflow-state 注入。 这是让主会话跟当前任务状态对齐的 per-turn guardrail。 Hook 会解析当前 session 的 active task:.trellis/workflow.md 里找匹配的 block:
<workflow-state>...</workflow-state> 注入当前 turn。
SessionStart 的 workflow 摘要使用 <trellis-workflow> 标签。
关键细节:
- Hook 只负责解析。Breadcrumb 文案写在
.trellis/workflow.md。 - Python 和 JavaScript hook 不保存重复的 fallback 字典。
- 没有 active task 时,pseudo-status 是
no_task。 - 缺少匹配 block 时,hook 输出
Refer to workflow.md for current step. - Codex 的
codex.dispatch_mode影响实现路径时,还会注入<codex-mode>banner。
.trellis/workflow.md,不是 hook 脚本。
3. Trellis 先判断当前 turn
没有 active task 时,AI 会先判断当前 turn 的大小,并在创建.trellis/tasks/ 下的任何内容前取得 task-creation consent。
用户同意创建任务,不等于同意开始实现。进入实现前还有单独的 planning review gate。
4. 创建任务写入 planning 状态
用户同意后,主会话创建任务:prd.md 总是从默认模板创建。支持 sub-agent 的平台可能会 seed
implement.jsonl 和 check.jsonl。design.md 和 implement.md 不由脚本
创建;任务足够复杂时,AI 在 planning 阶段写这两个文件。
初始 task.json status 是 planning。task.py create 还会尽量设置当前
session 的 active-task pointer,所以不用等 task.py start,下一轮就可以
收到 [workflow-state:planning]。
5. Planning 写正确的 artifact
Planning 把用户请求转换成 implementation 和 review 可以信任的文件。implement.md 不替代 implement.jsonl。Markdown 文件是人可读的计划;JSONL
文件是稳定上下文文件的 manifest。
轻量任务可以只有 PRD。复杂任务在开始前需要 prd.md、design.md、
implement.md。
6. Context manifest 保持窄范围
implement.jsonl 和 check.jsonl 列出 implementation 或 review 前要读取
的稳定上下文文件。
- 放 spec 文件和 task research 文件。
- 不放马上要修改的源文件。
- Sub-agent 需要上下文时,不只留下 seed
_example行。 implement.jsonl放写实现需要的上下文。check.jsonl放验证和质量检查需要的上下文。
7. 激活任务进入实现阶段
Artifact review 之后,Trellis 激活任务:task.json.status 从 planning 改成 in_progress。
下一轮 prompt 里,workflow-state hook 会注入匹配的
[workflow-state:in_progress] block。这个 block 覆盖实现、check、spec
update、commit planning 和 finish-work routing。
8. 实现阶段读取 task artifact 和 spec
执行一定从 active task 目录开始。不同平台只是在“上下文怎么交给执行者” 这件事上不同。
统一上下文顺序是:
9. Check 复核并自修
实现之后,Trellis 运行trellis-check。
Check 路径读取:
prd.md- 存在时的
design.md - 存在时的
implement.md - 存在时的
check.jsonl条目 - 相关 spec 和 research
- 改动文件
- 本地 test、lint、type-check 或 format 命令
trellis-check 可以直接修 finding,然后重跑检查。
10. 收尾阶段更新持久知识
检查通过后,主会话做最终验证,并加载trellis-update-spec。
这一步判断任务有没有产生可复用规则。如果有,就写进 .trellis/spec/,让
未来任务可以通过 JSONL 或 skill 直接上下文读取。
Task-local facts 留在 .trellis/tasks/<task>/;稳定团队规则提升到
.trellis/spec/。
11. 主会话驱动工作 commit
Commit 边界独立于实现阶段,也独立于/trellis:finish-work。
Phase 3.4 里,主会话会:
- 读取
git status --porcelain。 - 区分本任务改动和无关脏文件。
- 把任务文件分成逻辑 commit。
- 打印 commit plan。
- 等一次用户确认。
- 对确认的批次运行
git add和git commit。
- 先在
docs-site/里提交。 - 回到父仓库。
- 提交更新后的
docs-sitesubmodule pointer。
12. /trellis:finish-work 归档和写 journal
只有工作 commit 已经存在后,才应该运行 /trellis:finish-work。
/trellis:finish-work 做收尾记账:
- 分类脏文件;如果当前任务改动还没提交就停止
- 把任务归档到
.trellis/tasks/archive/YYYY-MM/ - 把 session 总结追加到
.trellis/workspace/<developer>/journal-N.md - 更新 workspace 索引
会话结束后留下什么
整套流程完成后,持久状态都在文件里:
下一次 AI 会话会重新读取仓库状态。它不需要上一段聊天记录,也能知道任务是什么、
哪些 spec 适用、下一步该执行哪个 workflow step。