Files
vibe-coding-cn/docs/research/mindfold-ai-trellis/deep-dive.md
T

158 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# mindfold-ai/Trellis 深度研究
## 一句话判断
Trellis 的底层设计是:把 AI 编程从“聊天驱动”改造成“仓库控制面驱动”,让任务、规格、上下文、
会话、验证和平台适配都成为可版本化对象。
## 结构拆解
| 层级 | 关键对象 | 作用 |
|:---|:---|:---|
| 仓库控制面 | `.trellis/` | 承载 workflow、spec、tasks、workspace、scripts、config,是 Agent 行为的本地真相源。 |
| 任务层 | `.trellis/tasks/{MM-DD-name}/` | 每个任务保存 `task.json``prd.md``design.md``implement.md``implement.jsonl``check.jsonl`。 |
| 规格层 | `.trellis/spec/` | 按 package/layer 管理编码规范、质量规则、架构约束和思考指南。 |
| 状态层 | `.trellis/workflow.md` | 定义 Plan、Execute、Finish 相位和 per-turn workflow-state breadcrumb。 |
| 记忆层 | `.trellis/workspace/``mem` | 保存会话日志,并从 Claude、Codex、OpenCode、Pi 等历史会话中检索上下文。 |
| 适配层 | `.claude/``.codex/``.cursor/``.opencode/` 等 | 把同一套 Trellis 工作流渲染到不同 AI coding 平台。 |
| runtime 层 | `channel`、worker、supervisor、event log | 支撑多 Agent 协作、消息路由、上下文挂载、worker 生命周期和中断。 |
## 关键机制
### 1. 规格注入,而不是模型记忆
Trellis 的 `.trellis/spec/` 把团队规则拆成 package 和 layer,再通过任务的 `implement.jsonl``check.jsonl`
选择性注入给实现 Agent 与检查 Agent。这里的关键不是“多写文档”,而是让文档参与运行时:
- spec 是长期规则;
- task artifact 是短期目标;
- jsonl manifest 是本次任务需要加载的上下文清单;
- implement/check Agent 只读与本次任务相关的部分,避免上下文膨胀。
对本仓的启示:`AGENTS.md``README.md``llms.txt``assets/ai-citation/llms-full.txt` 和研究域索引必须保持一致。
它们不是说明书,而是 AI 进入仓库时的上下文入口。
### 2. 任务是执行单元,不是聊天片段
Trellis 的任务目录把“要做什么”拆成可恢复 artifact:
- `task.json` 保存 24 字段的规范任务记录,包含 status、priority、assignee、branch、commit、PR、parent/children 等。
- `prd.md` 保存需求、约束和验收。
- `design.md` 保存边界、契约、数据流和取舍。
- `implement.md` 保存执行顺序、验证命令、review gate 和回滚点。
- `implement.jsonl``check.jsonl` 保存进入实现/检查阶段的上下文文件和原因。
对本仓的启示:复杂研究和文档治理任务不能只靠聊天推进。至少要能在文件里回答:目标是什么、上下文在哪里、
验收是什么、验证命令是什么、未完成项是什么。
### 3. workflow breadcrumb 把状态注入每一轮
Trellis 在 `.trellis/workflow.md` 中维护 `[workflow-state:STATUS]` 块,并通过 hook 在每轮用户输入时注入当前状态。
这解决的是 Agent 常见失败:忘记先计划、忘记进入检查、忘记提交前验证、忘记收尾沉淀。
关键设计点:
- `no_task` 要求先判断是否创建任务。
- `planning` 要求轻量任务至少有 PRD,复杂任务补齐 `design.md``implement.md`
- `in_progress` 明确实现、检查、更新 spec、commit、finish-work 的顺序。
- Codex 可以走 inline 变体,适配平台子 Agent 隔离问题。
对本仓的启示:工作流规则不应该只写在长文档深处,而应出现在 Agent 每次开始任务时必读的位置。
### 4. 多平台适配不是复制多份规则
Trellis 的 `AI_TOOLS` registry 把 Claude Code、Cursor、OpenCode、Codex、Kilo、Kiro、Gemini、Antigravity、
Devin、Qoder、CodeBuddy、Copilot、Droid、Pi、Reasonix、ZCode、Trae 等平台统一成配置对象。
平台差异被压到 configurator、template 和 hook 能力矩阵中,核心工作流保持一致。
对本仓的启示:多 AI 工具支持应该有一个事实中心。根 `AGENTS.md``llms.txt``assets/ai-citation/llms-full.txt`
和工具目录不能各讲各的。
### 5. channel runtime 把多 Agent 协作变成事件系统
Trellis 的 `channel` API 暴露 channel、thread、message、context、worker、inbox、interrupt、watch、supervisor 等能力。
CLI 侧提供 `create``send``wait``interrupt``spawn``run``list``messages``kill``post` 等命令。
这说明 Trellis 对 Agent 协作的理解不是“开几个窗口”,而是:
- 共享事件日志;
- 明确 worker 身份;
- 消息有发送者、目标、线程和 delivery mode
- 上下文可以挂到 channel 或 thread
- supervisor 管理 worker 生命周期、空闲清理、超时和中断。
对本仓的启示:如果未来真的要做多 Agent 协同研究或 tmux worker 编排,应该优先采用“事件日志 + worker 状态 + 上下文挂载”
的模型,而不是只靠口头分工。
### 6. mem 把历史会话变成可检索材料
Trellis 的 `mem` 子系统从 Claude、Codex、OpenCode、Pi 等平台读取会话,提供 list、search、context、extract、projects。
它的重点不是把所有聊天永久塞回提示词,而是让 Agent 能检索过去发生过的事实、决策和问题。
对本仓的启示:聊天记录可以辅助检索,但稳定知识必须进入仓库文档。真正的长期记忆不是“记住一切”,
而是把有价值的经验晋升到可维护结构。
## 可迁移模式
### 模式一:任务 artifact 最小契约
本仓可以设计轻量版任务契约,不需要引入完整 Trellis runtime
| 字段 | 最小含义 |
|:---|:---|
| 目的 | 本次任务要改变什么结果。 |
| 对象 | 涉及哪些文件、目录、研究域或流程。 |
| 约束 | 哪些地方不能动、哪些事实必须核验。 |
| 上下文 | 当前任务必须读取的文件和原因。 |
| 验收 | 什么状态算完成。 |
| 验证 | 可复跑的命令、检查或人工审计动作。 |
| 沉淀 | 哪些结论要进入 README、AGENTS、llms、research 或 skills。 |
### 模式二:规格入口一致性
本仓已有多个 AI 入口。Trellis 的启示是:入口可以多,事实只能一个。
最低要求:
-`AGENTS.md` 说明仓库操作规则。
- `llms.txt` 提供短上下文入口。
- `assets/ai-citation/llms-full.txt` 提供完整 AI 引用入口。
- `docs/research/README.md``docs/README.md` 提供研究域索引。
- 新增研究域必须同步进入 metadata 和 llms。
### 模式三:验证后更新规格
Trellis 的 `trellis-update-spec` 思路可以转成本仓收尾规则:
1. 完成修改。
2. 运行质量门禁。
3. 如果发现新的稳定规则、坑、流程或边界,回写到对应 AGENTS、README、docs 或 skills。
4. 再提交。
这比“写完总结一下”更强,因为它要求下一次 Agent 能自动读到新规则。
## 不采用 Trellis 的边界
- AGPL-3.0 代码边界:本仓不能直接复制 Trellis 的实现、模板或 hook。
- 项目形态边界:本仓是中文 Vibe Coding 知识库,不是 Trellis runtime 分发包。
- 所有权边界:引入完整 CLI、多平台 configurator 和 channel runtime 会显著增加维护面。
- 需求边界:当前本仓主要需要研究域、文档治理和质量门禁,不需要立即运行 worker supervisor。
## 对本仓的下一步建议
1.`docs/research/harness/` 补一份“Agent Harness 控制面检查清单”。
2. 为复杂文档任务定义轻量任务 artifact 契约。
3. 建立“验证后沉淀规格”的收尾规则,把高频教训写回 AGENTS、README 或 skills。
4. 对多 AI 入口做一致性检查,确保 `AGENTS.md``llms.txt``llms-full.txt` 和研究索引不漂移。
5. 如果未来需要多 Agent 并发执行,再研究 channel runtime 或 `auto-tmux` 的事件化改造。
## 最小试用动作
下一轮可以选一个真实文档任务试用轻量 Trellis 模式:
1. 写一个任务 artifact,明确目的、对象、约束、上下文、验收和验证。
2. 执行修改。
3. 用独立检查视角审计结果。
4. 把新经验回写到稳定入口。
5. 提交前确认索引和 AI 入口同步。