跳转到主要内容

快速开始

安装

# 全局安装
npm install -g @mindfoldhq/trellis@beta

# 进入你的项目目录
cd your-project
系统要求:Mac、Linux、Windows 全部支持。需要 Node.js 18+ 和 Python 3.10+。
trellis init 会自动检测已安装的平台,也可以用 flag 显式指定。随意组合:
# 交互式:检测已安装的平台并询问要配置哪些
trellis init -u your-name

# 显式:配置一个或多个平台
trellis init -u your-name --claude
trellis init -u your-name --claude --cursor --opencode
trellis init -u your-name --codex --gemini
your-name 会成为你的开发者身份,在 .trellis/workspace/your-name/ 创建个人工作区。 支持的 flag:--claude--cursor--opencode--codex--kiro--gemini--qoder--codebuddy--copilot--droid--antigravity--windsurf--kilo 除了这 13 个已配置平台,任何读取 .agents/skills/ 规范的 AI 编码 agent(Amp、Cline、Deep Agents、Firebender、Kimi Code CLI、Warp 等)也能直接消费 Trellis:Codex 的 skill 就写在这个目录下,这些文件能被该生态的其他 agent 直接读取。

平台配置

trellis init 为每个平台写入各自的配置目录。.trellis/ 下的核心概念跨平台一致,差异在于 command、skill、sub-agent、hook 的交付方式。
平台配置目录
Claude Code.claude/commands/trellis/agents/skills/hooks/
Cursor.cursor/commands/agents/skills/hooks/
OpenCode.opencode/commands/trellis/agents/skills/plugins/
Codex.codex/agents/skills/hooks/ + 仓库根 AGENTS.md
Kiro.kiro/agents/skills/hooks/
Gemini CLI.gemini/commands/trellis/agents/skills/hooks/
Qoder.qoder/agents/skills/hooks/
CodeBuddy.codebuddy/commands/trellis/agents/skills/hooks/
Copilot.github/copilot/prompts/agents/skills/hooks/
Droid.factory/commands/trellis/droids/skills/hooks/
Kilo.kilocode/workflows/skills/
Antigravity.agent/workflows/skills/
Windsurf.windsurf/workflows/skills/
.agents/skills/ 是一份跨平台共享层(agentskills.io 规范),trellis init 会把所有 skill 都写一份到这里,供 Amp、Cline、Deep Agents、Firebender、Kimi Code CLI、Warp 等遵循 .agents/skills/ 规范的 agent 直接读取。

上手

最小 happy path,剩下的 AI 自己推:
# 1. 描述你要做什么
"新增用户登录功能"

# 2. AI 按 workflow.md 走 Plan → Execute → Finish
#    (完整流程看第 3 章)

# 3. 你测试 + commit,然后
/trellis:finish-work
两个逃生舱:
  • /trellis:start — 平台没 SessionStart hook 时(Kilo / Antigravity / Windsurf)手动跑;或者想让 AI 重读 workflow.md 并报一次完整上下文时跑。
  • /trellis:continue — AI 停下来、或看起来在跳步骤时,任何时候跑。AI 读 .current-task + status,按 workflow.md 判断下一步做什么并继续。
第 3 章把 Plan / Execute / Finish 的每个子步骤都走一遍。

远程 Spec 模板

不用从零写 spec,在 init 时拉取预置的 spec 模板:

官方 Marketplace

# 交互式:浏览可用模板并挑一个
trellis init -u your-name

# 非交互式:按 ID 指定模板
trellis init -u your-name --template electron-fullstack
交互选择器会列出 官方 marketplace 的所有模板,选一个或者直接从空 spec 开始。

自定义 Registry(--registry

从你自己的 GitHub / GitLab / Bitbucket 仓库拉取 spec:
# 直接下载:仓库目录变成 .trellis/spec/
trellis init --registry gh:myorg/myrepo/my-team-spec

# Marketplace 模式:仓库里有 index.json 定义多模板
trellis init --registry gh:myorg/myrepo/marketplace

# 从自定义 marketplace 选特定模板
trellis init --registry gh:myorg/myrepo/marketplace --template my-template

# 指定分支
trellis init --registry gh:myorg/myrepo/specs#develop

# GitLab 或 Bitbucket
trellis init --registry gitlab:myorg/myrepo/specs
trellis init --registry bitbucket:myorg/myrepo/specs
Source 格式provider:user/repo[/subdir][#ref]
Provider前缀
GitHubgh:github:
GitLabgitlab:
Bitbucketbitbucket:
不写 ref(branch/tag)时默认 main

已有 spec 的处理

.trellis/spec/ 已存在时,用 strategy flag:
Flag行为
--overwrite删除现有 spec 目录再下载
--append只拷贝不存在的文件
(都不传)交互式询问怎么处理

构建自定义 Marketplace

在仓库根目录创建 index.json
{
  "version": 1,
  "templates": [
    {
      "id": "my-backend-spec",
      "type": "spec",
      "name": "My Backend Spec",
      "description": "团队后端约定",
      "path": "marketplace/specs/my-backend-spec",
      "tags": ["backend", "node"]
    }
  ]
}
path 相对仓库根目录。目前只支持 type: "spec"

私有仓库

私有仓库要设置 GIGET_AUTH 环境变量,值是 personal access token:
GIGET_AUTH=ghp_xxxxx trellis init --registry gh:myorg/private-repo/specs
GitHub fine-grained token 需要 ContentsMetadata 的读权限。

目录结构

下面是用 Claude Code 跑完 trellis init 后的目录。其他平台会写到各自的子目录,但 .trellis/ 核心一致。
your-project/
├── .trellis/                          # Trellis 核心(跨平台一致)
│   ├── .developer                     # 开发者身份(gitignored)
│   ├── .current-task                  # 当前任务指针
│   ├── .version                       # Trellis 版本号
│   ├── .template-hashes.json          # 模板文件 hash(update 用)
│   ├── workflow.md                    # 开发工作流指南
│   ├── config.yaml                    # 项目配置(packages、update.skip、hooks)
│   │
│   ├── spec/                          # 项目 spec 库
│   │   ├── frontend/                  #   前端 spec(monorepo 可按 package 分层)
│   │   ├── backend/                   #   后端 spec
│   │   └── guides/                    #   思考指南
│   │
│   ├── workspace/                     # 开发者工作区
│   │   ├── index.md
│   │   └── {developer-name}/
│   │       ├── index.md
│   │       └── journal-N.md
│   │
│   ├── tasks/                         # 任务目录
│   │   ├── {MM-DD-task-name}/         #   活跃任务
│   │   │   ├── task.json              #     任务元信息
│   │   │   ├── prd.md                 #     需求文档
│   │   │   ├── info.md                #     技术设计(可选)
│   │   │   ├── implement.jsonl        #     trellis-implement 上下文
│   │   │   ├── check.jsonl            #     trellis-check 上下文
│   │   │   └── research.jsonl         #     trellis-research 上下文
│   │   └── archive/                   #   归档任务
│   │       └── {YYYY-MM}/
│   │
│   └── scripts/                       # 自动化脚本(Python)
│       ├── task.py                    #   任务管理
│       ├── get_context.py             #   会话上下文
│       ├── add_session.py             #   记录会话
│       ├── create_bootstrap.py        #   首次 spec bootstrap
│       └── common/                    #   共享库

├── .claude/                           # Claude Code 配置
│   ├── settings.json                  #   hook 和权限配置
│   ├── commands/trellis/              #   显式命令
│   │   ├── start.md
│   │   ├── finish-work.md
│   │   └── continue.md
│   ├── agents/                        #   Sub-agent 定义
│   │   ├── trellis-implement.md
│   │   ├── trellis-check.md
│   │   └── trellis-research.md
│   ├── skills/                        #   Auto-trigger skills
│   │   ├── trellis-brainstorm/
│   │   ├── trellis-before-dev/
│   │   ├── trellis-check/
│   │   ├── trellis-update-spec/
│   │   └── trellis-break-loop/
│   └── hooks/                         #   Hook 脚本
│       ├── session-start.py
│       ├── inject-subagent-context.py
│       └── inject-workflow-state.py

├── .cursor/           # Cursor:commands/ + rules/
├── .opencode/         # OpenCode:commands/trellis/、agents/、skills/、plugins/
├── .codex/            # Codex:prompts/、skills/ + 仓库根 AGENTS.md
├── .kiro/             # Kiro:steering/、prompts/、skills/
├── .gemini/           # Gemini CLI:commands/trellis/
├── .qoder/            # Qoder:skills/、rules/
├── .codebuddy/        # CodeBuddy:commands/trellis/
├── .factory/          # Droid:commands/trellis/、skills/、hooks/
└── .github/           # Copilot:copilot-instructions.md、prompts/

你的第一个任务

启动会话

打开终端,SessionStart hook 自动触发,Trellis 上下文已经在 AI 的上下文里了:
  • workflow.md 的 TOC + Phase 1/2/3 step 详情
  • 身份、git 状态、活跃任务列表
  • spec 索引
直接描述任务即可显式跑 /trellis:start 的场景:想看完整上下文报告、让 AI 明确走一遍检查流程、或者怀疑自动注入没跑。跑了之后 AI 会重读一遍 workflow.md、再跑一次 get_context.py 刷新状态,然后问你 “想干什么?”

AI 建任务并开发

你说:“新增用户登录功能”。AI 按 workflow.md 的三阶段走:
Phase 1 — Plan(和你互动)
 1.0 task.py create 创建任务目录(.trellis/tasks/MM-DD-user-login/)
 1.1 激活 trellis-brainstorm skill,和你一问一答澄清需求,迭代 prd.md
 1.2 需要调研时 spawn trellis-research sub-agent,产物写到 research/
 1.3 task.py init-context 生成 implement.jsonl / check.jsonl
 1.4 task.py start 把任务置为 .current-task

Phase 2 — Execute
 2.1 spawn trellis-implement sub-agent(class-1 平台 hook 自动注入 implement.jsonl)
     → 按 prd.md 写代码,不 git commit
 2.2 spawn trellis-check sub-agent(hook 自动注入 check.jsonl)
     → 对照 spec 审 diff + 跑 lint / typecheck / test,自修复违规

Phase 3 — Finish
 3.1 激活 trellis-check skill,做最终验证
 3.2(按需)激活 trellis-break-loop skill 做 debug 复盘
 3.3 激活 trellis-update-spec skill,把新知识写回 .trellis/spec/
 3.4 提醒你跑 /trellis:finish-work
AI 停下或跳步骤时:跑 /trellis:continue,AI 读 .current-task + status,按 workflow.md 判断下一步该做什么(before-dev / check / update-spec 等)继续推进。

结束会话

/trellis:finish-work
finish-workadd_session.py 追加一条 journal,更新个人索引。任务真正完成(代码已合入、验收条件满足)时,通过 task.py archive 归档。

跨会话记忆

下次打开会话,SessionStart hook(或平台 prelude)会读你的 workspace journal 和活跃任务列表,AI 能回忆起上次做了什么:
AI:"Alice 好,你上次完成了用户登录功能(commit abc1234),
     包含 LoginForm 组件、JWT 中间件、users 表。
     接下来想干什么?"
Journal 存在 .trellis/workspace/{name}/journal-N.md;每次 /trellis:finish-work 都会追加一条。.trellis/.current-task 指向当前未归档的任务。