Trellis

此处引用官方文档中的一句话:AI 的能力像藤蔓一样生长——充满活力但四处蔓延。Trellis 是 AI 的脚手架,引导它沿着规范的路径前进。

仅以此贴记录学习Trellis框架的过程~

我的理念一直是:没有最好的框架,框架只是工具,最重要的是其中蕴涵的设计思想。

首先,我贴上我与框架开发大佬的一次简单的Q&A:

73abc9ae0e74eb9760f5df12e9f02b9a09e30a13_2_480x500.png

从我的问题可以了解到,我已经被网上各种技能包、框架等等强大的工具,信息轰炸到无从入手,也是从L站偶然发现Trellis这个框架,在帖子的下方收获了用户的一致好评,我便继续深入研究,发现确实是一个值得一用的框架,无论是企业团队还是个人,现将学习过程中整理的一些思路笔记分享与大家,不聊底层,只聊干货~

一、Trellis解决了什么,以及怎么解决的?

  • Lost in the middle(AI忽略规范):编写了Claude.md,5轮会话后就忘

    Hook自动注入,每次对话都包含规范

  • 修A坏B:修一个bug引入另一个

    Ralph Loop:先思考→行动→验证

  • 代码风格不一致:AI代码能跑但风格混乱

    Spec系统:编码标准写一次,全员遵守

  • 需求膨胀:要一个按钮,AI写9000行

    Plan Agent:拒绝并拆分过大的需求

  • 团队质量不均:每人AI写出不同风格

    共享Spec库:一人优化,全员受益

  • 跨会话失忆:新会话要重新解释上下文

    会话持久化:AI跨会话记住项目

二、Hook三驾马车

相信使用过Claude Code的小伙伴们应该对这个概念不陌生。hook-钩子,我不由得联想到前端的生命周期钩子函数,讲的是一个“触发时机“的概念,而在Trellis中就有着三个”触发时机“

  • session-start

    会话启动时注入上下文

    读取内容

    来源

    用途

    .trellis/.developer

    开发者身份

    知道"你是谁"

    .trellis/workflow.md

    工作流指南

    知道"怎么工作"

    workspace/{name}/index.md

    会话历史

    知道"上次做了什么"

    git log

    Git提交记录

    知道"最近改了什么"

    .trellis/tasks/

    活跃任务列表

    知道"当前任务是什么"

  • inject-subagent-context

    Agent调用时注入精确Spec。

    Agent

    注入内容

    触发条件

    implement

    implement.jsonl + prd.md + info.md

    实现功能时

    check

    check.jsonl + prd.md

    代码检查时

    check [finish]

    finish-work.md + prd.md

    完成检查时(轻量)

    debug

    debug.jsonl + codex-review-output.txt

    调试bug时

    research

    项目结构概览 + research.jsonl

    信息搜索时

  • ralph-loop

    Check完成后自动质量验证

image-cWnA.png

这三个”时机“触发保证了已经初始化好的spec文档能够真正的被使用上

三、实操清单

  1. 首次使用(AI自动扫描项目生成spec文档)

    npm install -g @mindfoldhq/trellis@latest
    
    cd your-project
    
    trellis init --claude -u your-name
    
    /start
    
  2. 日常使用

    /start
    
    /finish-work  #检查完工清单
    
    /record-session  #会话持久化存储
    
  3. Bug修复,以及SPEC规范沉淀

    # 修复bug后
    /break-loop
    # 分析完成 → 手动编辑 .trellis/spec/ 文件
    git add .trellis/spec/
    git commit -m "docs: add prevention from break-loop"
    git push