从避免ai把事情搞得一团糟的 coding 辅助框架堂堂开源继续讨论:
发现有不少佬友对框架使用有些问题,顺手开个qa贴,这样我给朋友解释的时候也可以直接甩个链接不用重复解释了 ^-^
Q: AI 怎么知道之前的对话内容?
A: 每次结束对话时用 /record-session ,AI 会把会话摘要写入 .trellis/workspace/{name}/journal-N.md ,并在 index.md 建立索引。下次 /start 时,AI 会自动读取最近的 journal 和 git 信息,恢复上下文。所以理论上直接扒每天的 journal 文件就能当你的工作日报提交了^-^。
Q: 我自己项目本身没有spec,还能用吗
A: 在 trellis init 之后会自动创建一个 00-bootstrap 的task,里面就是引导ai帮你完善对应当前项目的开发规范的,我们对于前端,后端都预设了一些空的模板文件,会引导ai读取你自己的项目规范进行填充,当然有时间有条件还是推荐自己去完善填充spec,毕竟当你有 AI 自己想不到的架构洞察时,能把团队踩过的坑教给 AI 并且拉高团队开发水平,这就是你不会被 AI 取代的原因。

Q: 看着很好用但理念听起来很复杂,怎么快速上手使用?
A: npm install -g @mindfoldhq/trellis@latest, 在你的项目下面 用 tl init 进行初始化, 然后就可以直接开始使用了,
- 如果是 claude code 用户,
打开一个新的cc 窗口就可以直接开始使用(可以先手动执行 /start 一遍了解下流程),说需求ai就会自动创建task, 然后创建对应需要的 feature 信息文档,以及 spec 文件文档(spec 文件里面会存放各个对应开发规范的实际文件路径,然后通过claude code的hook 注入给后续干活的ai), 然后让你进行review 需求,确认之后就会调用对应的一个 implement agent(被注入了上一步获取的所有spec 规范)去实际干活, 最后你验收通过之后使用 /record-session ,ai 会自动记录本次的工作日志
以及后续连 /start 都不用使用,我们已经用了claude code 的session start hook, 把每次ai初始化需要的各种信息(trellis 本身工作流程,你最近的git提交信息,最近你跟ai对话的jounrl记录,项目本身信息)都会自动注入给ai,直接开始对话即可
如果是 cursor/codex 用户 (codex 使用 $ 而不是 /
使用流程大概是 /start 启动会话并说出需求, 使用 /before-*-dev (backend/frontend) 让ai了解本次需求需要了解的相关开发规范, 开发结束之后使用 /check-* 去让ai重新获取本次涉及的开发规范,并进行自检,最后用 /record-session 记录对话
其它用户(trae,opencode,windsurf…)
跟cursor 类似,可以根据自己用的ide/cli 手动创建对应的slash command 然后按流程使用
Q: worktree 那套怎么用?
A: 目前只对 cc 有比较好的支持,想并行开发多任务可以在会话开始的时候使用 /parallel, 然后跟cc 讨论需求,它会自动创建对应的task, 然后调用我们封装好的脚本(.trellis/scripts/multi-agent/start.sh)在对应目录创建worktree, 然后用 claude -p --agent dispatch 的方式启动后台进程,dispatch agent会读取task 里面的说明,自行调用implement agent去干活,再调用check agent去自检,最后调用 .trellis/scripts/multi-agent/create-pr.sh 去提pr, 然后可以通过.trellis/scripts/multi-agent/status.sh 实时获取后台任务的状态,如果阻塞了会打印 cd xxx && claude --resume xxxx 的命令方便你直接继续跟它对话解决问题
Q: 这个流程看起来很复杂, ai 会不会不遵守? 就像不遵守skill,不遵守cursor rules那样
A: 大部分的流程我们都封装成脚本让ai直接调用,会尽可能的遵守这套工作流的规范(比如每次 /start 获取工作流,git,journal 信息; 记录journal ,创建worktree并运行等等)
,另外我们内部最佳实践是,除了 /parallel 的流程以外,其它情况在一次ai chat 中,都尽可能只让它干一件事,避免上下文过长的情况
比如有一个很复杂的需求,你可以 /start 一次,然后跟它讨论确认需求, 然后创建一个task,然后就可以 /record-session 直接记录journal ,然后开一个新的会话窗口, 输入 /start 让ai自动了解上次的情况, 然后帮你开始具体实施干活