@ibotor/smart-trellis 0.5.22 → 0.5.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,152 +1,192 @@
1
1
  # Smart Trellis
2
2
 
3
- `smart-trellis` 是基于 Trellis 原始能力扩展出来的智能初始化入口。
3
+ `smart-trellis` Trellis 的智能初始化入口。它不替换 Trellis 的核心能力,而是在 `trellis init` 之前帮你做默认选择,减少初始化时的重复确认。
4
4
 
5
- 它不会替换 `trellis init` 的核心逻辑,而是在执行前自动推断项目配置,并把原本需要反复确认的大量问题转换为默认行为。你通常只需要确认要配置哪些 AI 工具,例如 Codex、Cursor、Claude Code 等。
5
+ 这个 npm 包同时提供三个命令:
6
6
 
7
- ## 新增命令
8
-
9
- ```bash
10
- smart-trellis init
7
+ ```text
8
+ smart-trellis # 智能初始化入口
9
+ trellis # 原 Trellis CLI
10
+ tl # trellis 的短别名
11
11
  ```
12
12
 
13
- 这个命令等价于一个更省心的 `trellis init`:
13
+ 当前 npm latest:`0.5.22`。
14
14
 
15
- - 自动调用原始 Trellis 初始化流程。
16
- - 自动开启非交互初始化,跳过 monorepo 和 spec source 的大量选择。
17
- - 自动检测 monorepo 项目结构。
18
- - 自动检测开发者名称,优先使用 `--user`,其次使用 `git config user.name`,最后使用系统用户名。
19
- - 默认工具为 `codex,cursor`。
20
- - 如果没有传 `--tools`、没有传具体工具参数、也没有传 `--yes`,只会弹出一次工具选择。
15
+ ## 0.5.20 以来的功能迭代
21
16
 
22
- ## `trellis init` 的区别
17
+ | 版本 | 新增能力 | 解决的问题 | 怎么使用 |
18
+ | --- | --- | --- | --- |
19
+ | `0.5.20` | `trellis.activation_mode` | 有些团队希望 Trellis 不要自动接管普通开发对话,只在明确要求时启动 | 新项目用 `--trellis-activation explicit`;旧项目运行 `trellis update` 后在 `.trellis/config.yaml` 设置 |
20
+ | `0.5.21` | `trellis-joint-debugger` 联调入口 | 前后端联调时,只给 Apifox 链接就能进入接口分析流程 | Cursor 用 `/trellis-joint-debugger`,Codex / `.agents/skills` 用 `$trellis-joint-debugger` |
21
+ | `0.5.22` | Apifox Web API 联调流程 + 用户级 token 存储 | 自动解析 Apifox 接口详情、schema、入参/出参,并避免每个项目重复配置 token | 运行 `python3 ./.trellis/scripts/apifox_token.py save` 保存 token |
22
+ | 当前工作区 | `smart-trellis init` 生成目录写入 `.gitignore` 的多选项 | 初始化后可选择把 `.trellis/` 和 AI 工具配置目录加入 `.gitignore`,默认全选且不重复添加 | 交互初始化时选择目录;脚本模式用 `--gitignore-config` 或 `--no-gitignore-config` |
23
23
 
24
- | 命令 | 适合场景 | 交互量 |
25
- | --- | --- | --- |
26
- | `trellis init` | 需要完整手动控制 Trellis 初始化选项 | 会询问 monorepo、每个包的 spec source、工具等 |
27
- | `smart-trellis init` | 希望快速初始化一个项目,并保留 Trellis 原完整结构 | 通常只确认工具,或完全无交互 |
24
+ 上面这些都是补丁级增强,没有破坏性迁移。已初始化项目通常只需要:
28
25
 
29
- `smart-trellis init` 仍然会生成 Trellis 的完整结构,包括 `.trellis/`、`.agents/skills/`、平台配置目录和 `AGENTS.md`。
26
+ ```bash
27
+ npm install -g @ibotor/smart-trellis@latest
28
+ trellis update
29
+ ```
30
30
 
31
- ## 新设备安装
31
+ ## 快速开始
32
32
 
33
- 新设备只需要安装一次 npm 包:
33
+ 新设备安装:
34
34
 
35
35
  ```bash
36
- npm install -g @ibotor/smart-trellis
36
+ npm install -g @ibotor/smart-trellis@latest
37
37
  ```
38
38
 
39
- 安装后,在任意新项目根目录执行:
39
+ 进入项目根目录:
40
40
 
41
41
  ```bash
42
42
  smart-trellis init
43
43
  ```
44
44
 
45
- 如果你暂时不想全局安装,也可以用 npm exec:
45
+ 默认交互流程:
46
46
 
47
- ```bash
48
- npm exec --package @ibotor/smart-trellis -- smart-trellis init
49
- ```
47
+ 1. 选择要配置的 AI 工具。
48
+ 2. 选择要加入 `.gitignore` 的生成目录,默认全选。
49
+ 3. 选择 Trellis activation mode。
50
+ 4. 调用原始 `trellis init`,生成 `.trellis/`、平台配置目录和 `AGENTS.md`。
50
51
 
51
- 也可以在 CI 或临时环境里使用 `npx`:
52
+ 如果你希望完全无交互,并使用默认工具 `codex,cursor`:
52
53
 
53
54
  ```bash
54
- npx -p @ibotor/smart-trellis smart-trellis init
55
+ smart-trellis init --yes
55
56
  ```
56
57
 
57
- ## 基础用法
58
+ `--yes` 会使用默认工具,并把 `.trellis/` 和默认工具生成的配置目录写入 `.gitignore`。
58
59
 
59
- 进入项目根目录后执行:
60
+ ## 常用命令
61
+
62
+ ### 指定工具
63
+
64
+ 逗号形式:
60
65
 
61
66
  ```bash
62
- smart-trellis init
67
+ smart-trellis init --tools codex,cursor,claude
63
68
  ```
64
69
 
65
- 如果你希望完全不出现交互,并使用默认工具 `codex,cursor`:
70
+ 独立参数形式:
66
71
 
67
72
  ```bash
68
- smart-trellis init --yes
73
+ smart-trellis init --codex --cursor --claude
69
74
  ```
70
75
 
71
- 不加 `--yes` 时,初始化过程会提示你选择 AI 工具,并选择 Trellis activation mode:
76
+ 当前支持的工具名:
72
77
 
73
- - `auto`:默认行为,Trellis 可以为开发/重构需求自动启动任务流程。
74
- - `explicit`:Trellis 只在你明确使用 `/trellis start` / `$trellis-start` / “走 Trellis” 时启动。
78
+ ```text
79
+ claude
80
+ cursor
81
+ opencode
82
+ codex
83
+ kilo
84
+ kiro
85
+ gemini
86
+ antigravity
87
+ windsurf
88
+ qoder
89
+ codebuddy
90
+ copilot
91
+ droid
92
+ pi
93
+ ```
75
94
 
76
- 如果你希望直接指定工具:
95
+ ### 指定开发者名称
77
96
 
78
97
  ```bash
79
- smart-trellis init --tools codex,cursor
98
+ smart-trellis init --tools codex,cursor --user adong
80
99
  ```
81
100
 
82
- 如果你希望指定开发者名称:
101
+ 如果不传 `--user`,会优先读取 `git config user.name`,再回退到系统用户名。
102
+
103
+ ### 完全脚本化初始化
83
104
 
84
105
  ```bash
85
- smart-trellis init --tools codex,cursor --user adong
106
+ smart-trellis init \
107
+ --yes \
108
+ --user adong \
109
+ --trellis-activation explicit \
110
+ --gitignore-config
86
111
  ```
87
112
 
88
- 如果你希望 Trellis 不主动接管普通开发需求,而是必须显式使用 `/trellis start` / `$trellis-start` / “走 Trellis” 才启动:
113
+ `smart-trellis init` 内部会把 Trellis 初始化切到非交互模式,相当于帮你执行一个带默认值的 `trellis init --yes ...`。
114
+
115
+ ## Activation Mode
116
+
117
+ `0.5.20` 新增了 Trellis activation mode,用来控制“没有 active task 时,Trellis 是否主动接管”。
118
+
119
+ | 模式 | 行为 | 适合场景 |
120
+ | --- | --- | --- |
121
+ | `auto` | 默认行为。Trellis 会判断当前请求是否需要创建任务流程 | 希望 AI 自动进入 Trellis 工作流 |
122
+ | `explicit` | Trellis 保持空闲,除非用户明确说 `/trellis start`、`$trellis-start`、`走 Trellis` 等 | 希望普通问答和小改动不被流程接管 |
123
+
124
+ 新项目直接指定:
89
125
 
90
126
  ```bash
91
127
  smart-trellis init --tools codex,cursor --trellis-activation explicit
92
128
  ```
93
129
 
94
- 上面的命令大致等价于:
130
+ 旧项目先更新模板:
95
131
 
96
132
  ```bash
97
- trellis init --yes --codex --cursor --user adong
133
+ trellis update
98
134
  ```
99
135
 
100
- ## 工具选择
136
+ 然后在 `.trellis/config.yaml` 中设置:
101
137
 
102
- 支持两种写法。
138
+ ```yaml
139
+ trellis:
140
+ activation_mode: explicit
141
+ ```
103
142
 
104
- 第一种,使用 `--tools` 传逗号分隔的工具名:
143
+ ## `.gitignore` 生成目录选择
105
144
 
106
- ```bash
107
- smart-trellis init --tools codex,cursor,claude
145
+ 当前 `smart-trellis init` 会在选择工具之后,提示是否把生成目录加入 `.gitignore`。默认全选。
146
+
147
+ 以 `codex,cursor` 为例,候选项通常是:
148
+
149
+ ```text
150
+ .trellis/
151
+ .codex/
152
+ .agents/skills/
153
+ .cursor/
108
154
  ```
109
155
 
110
- 第二种,使用独立工具参数:
156
+ 规则:
157
+
158
+ - 没有 `.gitignore` 时会创建。
159
+ - 已有 `.codex` 或 `.codex/` 时不会重复添加 `.codex/`。
160
+ - 已有 `.agents/` 时,不会再重复添加 `.agents/skills/`。
161
+ - 候选目录来自 Trellis 的 AI 工具注册表,不手写平台清单。
162
+
163
+ 脚本模式下直接全选:
111
164
 
112
165
  ```bash
113
- smart-trellis init --codex --cursor --claude
166
+ smart-trellis init --tools codex,cursor --gitignore-config
114
167
  ```
115
168
 
116
- 当前支持的工具名:
169
+ 完全不修改 `.gitignore`:
117
170
 
118
- ```text
119
- claude
120
- cursor
121
- opencode
122
- codex
123
- kilo
124
- kiro
125
- gemini
126
- antigravity
127
- windsurf
128
- qoder
129
- codebuddy
130
- copilot
131
- droid
132
- pi
171
+ ```bash
172
+ smart-trellis init --tools codex,cursor --no-gitignore-config
133
173
  ```
134
174
 
135
- ## Registry 用法
175
+ 注意:如果你把 `.trellis/` 加入 `.gitignore`,Trellis 的 spec、tasks、workspace 等状态默认不会被 Git 跟踪。适合把 Trellis 配置当本地工作区的团队;如果你的团队希望提交 `.trellis/spec/` 或任务记录,请在多选时取消 `.trellis/`。
136
176
 
137
- `smart-trellis init` 兼容原 `trellis init --registry` 能力,可以从自定义 GitHub、GitLab、Bitbucket 仓库拉取 spec。
177
+ ## Registry 和模板
138
178
 
139
- ### 直接下载 spec 目录
179
+ `smart-trellis init` 兼容原 `trellis init --registry` 能力,可以从自定义 GitHub、GitLab、Bitbucket 仓库拉取 spec
140
180
 
141
- 仓库目录会被下载到当前项目的 `.trellis/spec/`:
181
+ 直接下载 spec 目录:
142
182
 
143
183
  ```bash
144
- smart-trellis init --tools codex,cursor --registry gh:myorg/myrepo/my-team-spec
184
+ smart-trellis init \
185
+ --tools codex,cursor \
186
+ --registry gh:myorg/myrepo/my-team-spec
145
187
  ```
146
188
 
147
- ### Marketplace 模式指定模板
148
-
149
- 如果 registry 目录里有 `index.json`,并且里面定义了多个模板,非交互模式下必须指定 `--template`:
189
+ Marketplace 模式指定模板:
150
190
 
151
191
  ```bash
152
192
  smart-trellis init \
@@ -155,9 +195,7 @@ smart-trellis init \
155
195
  --template my-template
156
196
  ```
157
197
 
158
- 如果不指定 `--template`,Trellis 无法在非交互模式下自动判断要使用哪个模板。
159
-
160
- ### 指定分支
198
+ 指定分支:
161
199
 
162
200
  ```bash
163
201
  smart-trellis init \
@@ -165,153 +203,208 @@ smart-trellis init \
165
203
  --registry gh:myorg/myrepo/specs#develop
166
204
  ```
167
205
 
168
- ### GitLab 和 Bitbucket
206
+ GitLab 和 Bitbucket
169
207
 
170
208
  ```bash
171
209
  smart-trellis init --tools codex,cursor --registry gitlab:myorg/myrepo/specs
172
210
  smart-trellis init --tools codex,cursor --registry bitbucket:myorg/myrepo/specs
173
211
  ```
174
212
 
175
- ## 文件覆盖策略
176
-
177
- `smart-trellis init` 默认会以安全方式写入文件。因为它内部会启用非交互模式,所以遇到已经存在的文件时默认跳过,避免覆盖已有配置。
178
-
179
- 如果你要强制覆盖已有文件:
213
+ 远程模板写入策略:
180
214
 
181
215
  ```bash
182
- smart-trellis init --tools codex,cursor --force
216
+ smart-trellis init --tools codex,cursor --registry gh:myorg/myrepo/specs --overwrite
217
+ smart-trellis init --tools codex,cursor --registry gh:myorg/myrepo/specs --append
183
218
  ```
184
219
 
185
- 如果你希望明确跳过已有文件:
220
+ ## 文件覆盖和 Monorepo
186
221
 
187
- ```bash
188
- smart-trellis init --tools codex,cursor --skip-existing
189
- ```
222
+ 默认写入策略偏安全:遇到已有文件会跳过,避免覆盖本地配置。
190
223
 
191
- 使用远程模板时,也可以控制 spec 目录写入方式:
224
+ 强制覆盖:
192
225
 
193
226
  ```bash
194
- smart-trellis init --tools codex,cursor --registry gh:myorg/myrepo/specs --overwrite
195
- smart-trellis init --tools codex,cursor --registry gh:myorg/myrepo/specs --append
227
+ smart-trellis init --tools codex,cursor --force
196
228
  ```
197
229
 
198
- ## Monorepo 控制
199
-
200
- 默认情况下,`smart-trellis init` 会让 Trellis 自动检测当前项目是否为 monorepo。
201
-
202
- 强制启用 monorepo:
230
+ 明确跳过已有文件:
203
231
 
204
232
  ```bash
205
- smart-trellis init --tools codex,cursor --monorepo
233
+ smart-trellis init --tools codex,cursor --skip-existing
206
234
  ```
207
235
 
208
- 跳过 monorepo 检测:
236
+ Monorepo 默认自动检测。也可以手动指定:
209
237
 
210
238
  ```bash
239
+ smart-trellis init --tools codex,cursor --monorepo
211
240
  smart-trellis init --tools codex,cursor --no-monorepo
212
241
  ```
213
242
 
214
243
  ## 初始化后会生成什么
215
244
 
216
- 根据选择的工具不同,生成内容会略有差异。常见输出包括:
245
+ 根据工具不同,生成内容会略有差异。常见输出包括:
217
246
 
218
- - `.trellis/`:Trellis workflow、spec、tasks、workspace 等核心目录。
219
- - `.agents/skills/`:跨工具复用的 Trellis skills。
220
- - `.codex/`:Codex 专用配置、skillsagentshooks。
221
- - `.cursor/`:Cursor 专用配置、commands、skills、agents、hooks。
222
- - `AGENTS.md`:项目级 AI 助手协作说明。
247
+ | 路径 | 作用 |
248
+ | --- | --- |
249
+ | `.trellis/` | Trellis workflowspectasks、workspace、脚本等核心目录 |
250
+ | `.agents/skills/` | 跨工具复用的 Trellis skills,Codex/Gemini/Copilot 等可读取 |
251
+ | `.codex/` | Codex 专用配置、agents、hooks、skills |
252
+ | `.cursor/` | Cursor 专用 commands、skills、agents、hooks |
253
+ | `.github/` | GitHub Copilot prompts、agents、hooks 等 |
254
+ | `AGENTS.md` | 项目级 AI 助手协作说明 |
223
255
 
224
- 所以,`smart-trellis init` 的目标不是只生成一个轻量配置,而是用更少确认步骤生成原 Trellis 初始化应有的完整结果。
256
+ `smart-trellis init` 的目标不是生成一个轻量配置,而是用更少确认步骤生成完整 Trellis 项目结构。
225
257
 
226
- ## Apifox 前后端联调入口
258
+ ## Apifox 前后端联调
227
259
 
228
- 初始化 Cursor / Codex 等平台后,会生成 `trellis-joint-debugger` 入口,用于根据 Apifox 接口链接自动解析接口详情并辅助前后端联调。
260
+ `0.5.21` 新增了 `trellis-joint-debugger`,`0.5.22` 将它扩展为 Apifox Web API 驱动的联调流程。
229
261
 
230
- 常见触发方式:
262
+ ### 什么时候用
231
263
 
232
- - Cursor:`/trellis-joint-debugger`
233
- - Codex / `.agents/skills`:`$trellis-joint-debugger`
264
+ 当用户提供 Apifox 接口链接,并提到“联调”“接口”“参数”“详情”“完成它”等开发意图时使用。
234
265
 
235
- 当用户提供以下 Apifox 链接,并提到“联调”“接口”“参数”“详情”“完成它”等开发意图时,入口会优先走 Apifox Web API,而不是默认打开浏览器页面:
266
+ 支持的 Apifox 链接:
236
267
 
237
268
  ```text
238
269
  app.apifox.com/link/project/{projectId}/apis/api-{apiId}
239
270
  app.apifox.com/project/{projectId}/apis/api-{apiId}
240
271
  ```
241
272
 
242
- 第一次使用前,需要配置 Apifox access token:
273
+ ### 怎么触发
274
+
275
+ Cursor:
276
+
277
+ ```text
278
+ /trellis-joint-debugger
279
+ ```
280
+
281
+ Codex / `.agents/skills`:
282
+
283
+ ```text
284
+ $trellis-joint-debugger
285
+ ```
286
+
287
+ 如果你是旧项目,先运行:
288
+
289
+ ```bash
290
+ trellis update
291
+ ```
292
+
293
+ ### 第一次配置 Apifox Token
294
+
295
+ 检查是否已配置:
243
296
 
244
297
  ```bash
245
298
  python3 ./.trellis/scripts/apifox_token.py check
299
+ ```
300
+
301
+ 保存 token:
302
+
303
+ ```bash
246
304
  python3 ./.trellis/scripts/apifox_token.py save
247
305
  ```
248
306
 
249
- `save` 会使用隐藏输入,并把 token 保存到用户级配置:
307
+ `save` 使用隐藏输入,并保存到用户级配置:
250
308
 
251
309
  ```text
252
310
  ~/.trellis/apifox.env
253
311
  ```
254
312
 
255
- 因此同一台机器上只需要配置一次,后续所有 Trellis 项目都可以复用。运行时读取优先级为:
313
+ 读取优先级:
256
314
 
257
315
  1. `APIFOX_ACCESS_TOKEN` 环境变量
258
316
  2. `~/.trellis/apifox.env`
259
- 3. 旧项目内 `.trellis/.runtime/apifox.env`(仅兼容读取)
317
+ 3. 旧项目内 `.trellis/.runtime/apifox.env`
260
318
 
261
- token 只用于请求 header,不会被命令打印。接口详情会通过:
319
+ token 只用于请求 header,不会被命令打印。
262
320
 
263
- ```text
264
- GET https://api.apifox.com/api/v1/projects/{projectId}/http-apis/{apiId}
265
- ```
321
+ ### 联调流程会做什么
266
322
 
267
- 如请求体或响应中出现 `$ref: #/definitions/{schemaId}`,会继续根据接口详情里的 `moduleId` 请求 data-schemas 并解析入参/出参字段。随后 Trellis 会将 method、path、入参、出参与当前项目中的 API 封装核对;如果要联调真实后端,再根据项目代理和环境配置请求业务后端。若缺少业务登录态,应明确报告 `401` / 未登录,不猜测数据。
323
+ 1. Apifox 链接解析 `projectId` `apiId`。
324
+ 2. 请求 Apifox Web API:
268
325
 
269
- ## 本地开发验证
326
+ ```text
327
+ GET https://api.apifox.com/api/v1/projects/{projectId}/http-apis/{apiId}
328
+ ```
270
329
 
271
- 在本仓库开发时,可以先构建 CLI:
330
+ 3. 提取 method、path、query/path/header/body、responses。
331
+ 4. 如果请求体或响应体里有 `$ref: #/definitions/{schemaId}`,继续请求 data-schemas 并展开字段。
332
+ 5. 在当前项目里搜索已有 API 封装、请求客户端、代理配置和环境配置。
333
+ 6. 对比 Apifox 的 method/path/字段与本地 API wrapper。
334
+ 7. 如果要真实请求业务后端,根据项目代理和环境配置发请求;如果返回 `401` 或缺少登录态,明确报告未登录,不猜测数据。
272
335
 
273
- ```bash
274
- pnpm --filter @ibotor/smart-trellis build
275
- ```
276
-
277
- 然后直接用本地 bin 测试:
278
-
279
- ```bash
280
- node packages/cli/bin/smart-trellis.js init --tools codex,cursor --user adong
281
- ```
336
+ ## 推荐团队用法
282
337
 
283
- 也可以在一个临时项目里验证:
338
+ 新项目默认推荐:
284
339
 
285
340
  ```bash
286
- mkdir /tmp/smart-trellis-demo
287
- cd /tmp/smart-trellis-demo
288
- echo '{"name":"smart-trellis-demo"}' > package.json
289
- node /path/to/smart-trellis/packages/cli/bin/smart-trellis.js init --tools codex,cursor --user adong
341
+ smart-trellis init \
342
+ --tools codex,cursor \
343
+ --user <developer-name> \
344
+ --gitignore-config
290
345
  ```
291
346
 
292
- ## 推荐团队用法
293
-
294
- 团队成员在新项目里只需要执行:
347
+ 如果团队希望 Trellis 只在明确调用时启动:
295
348
 
296
349
  ```bash
297
- smart-trellis init --tools codex,cursor --user <developer-name>
350
+ smart-trellis init \
351
+ --tools codex,cursor \
352
+ --user <developer-name> \
353
+ --trellis-activation explicit \
354
+ --gitignore-config
298
355
  ```
299
356
 
300
- 如果你维护了团队统一 spec registry,则推荐:
357
+ 如果团队维护了统一 spec registry
301
358
 
302
359
  ```bash
303
360
  smart-trellis init \
304
361
  --tools codex,cursor \
305
362
  --user <developer-name> \
306
- --registry gh:<org>/<repo>/<spec-path>
363
+ --registry gh:<org>/<repo>/<spec-path> \
364
+ --trellis-activation explicit \
365
+ --gitignore-config
307
366
  ```
308
367
 
309
- 如果 registry 是 marketplace
368
+ Marketplace registry:
310
369
 
311
370
  ```bash
312
371
  smart-trellis init \
313
372
  --tools codex,cursor \
314
373
  --user <developer-name> \
315
374
  --registry gh:<org>/<repo>/<marketplace-path> \
316
- --template <template-id>
375
+ --template <template-id> \
376
+ --trellis-activation explicit \
377
+ --gitignore-config
378
+ ```
379
+
380
+ ## 本地开发验证
381
+
382
+ 在本仓库开发时,先构建 CLI:
383
+
384
+ ```bash
385
+ pnpm --filter @ibotor/smart-trellis build
386
+ ```
387
+
388
+ 直接用本地 bin 测试:
389
+
390
+ ```bash
391
+ node packages/cli/bin/smart-trellis.js init --tools codex,cursor --user adong
392
+ ```
393
+
394
+ 也可以在临时项目里验证:
395
+
396
+ ```bash
397
+ mkdir /tmp/smart-trellis-demo
398
+ cd /tmp/smart-trellis-demo
399
+ echo '{"name":"smart-trellis-demo"}' > package.json
400
+ node /path/to/smart-trellis/packages/cli/bin/smart-trellis.js init --tools codex,cursor --user adong
401
+ ```
402
+
403
+ 发布前建议至少运行:
404
+
405
+ ```bash
406
+ pnpm --filter @ibotor/smart-trellis test
407
+ pnpm --filter @ibotor/smart-trellis build
408
+ pnpm --filter @ibotor/smart-trellis lint
409
+ pnpm --filter @ibotor/smart-trellis typecheck
317
410
  ```
package/dist/cli/smart.js CHANGED
@@ -22,7 +22,9 @@ const initCommand = program
22
22
  .option("--overwrite", "Overwrite existing spec directory when using template")
23
23
  .option("--append", "Only add missing files when using template")
24
24
  .option("-r, --registry <source>", "Use a custom template registry (e.g., gh:myorg/myrepo/specs)")
25
- .option("--trellis-activation <mode>", "Set no-task Trellis activation mode: auto or explicit");
25
+ .option("--trellis-activation <mode>", "Set no-task Trellis activation mode: auto or explicit")
26
+ .option("--gitignore-config", "Add generated config directories to .gitignore without prompting")
27
+ .option("--no-gitignore-config", "Do not add generated config directories to .gitignore");
26
28
  for (const tool of getInitToolChoices()) {
27
29
  initCommand.option(`--${tool.key}`, `Include ${tool.name}`);
28
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"smart.js","sourceRoot":"","sources":["../../src/cli/smart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAyB,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAElE,MAAM,WAAW,GAAG,OAAO;KACxB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;KAClE,MAAM,CACL,mBAAmB,EACnB,mDAAmD,CACpD;KACA,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KACnE,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;KAC3C,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;KAClD,MAAM,CACL,uBAAuB,EACvB,uDAAuD,CACxD;KACA,MAAM,CACL,aAAa,EACb,uDAAuD,CACxD;KACA,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CACL,yBAAyB,EACzB,8DAA8D,CAC/D;KACA,MAAM,CACL,6BAA6B,EAC7B,uDAAuD,CACxD,CAAC;AAEJ,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACxC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"smart.js","sourceRoot":"","sources":["../../src/cli/smart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAyB,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC,CAAC;AAElE,MAAM,WAAW,GAAG,OAAO;KACxB,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,6CAA6C,CAAC;KAClE,MAAM,CACL,mBAAmB,EACnB,mDAAmD,CACpD;KACA,MAAM,CAAC,aAAa,EAAE,yCAAyC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,oCAAoC,CAAC;KACnE,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;KAC3C,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;KAClD,MAAM,CACL,uBAAuB,EACvB,uDAAuD,CACxD;KACA,MAAM,CACL,aAAa,EACb,uDAAuD,CACxD;KACA,MAAM,CAAC,UAAU,EAAE,4CAA4C,CAAC;KAChE,MAAM,CACL,yBAAyB,EACzB,8DAA8D,CAC/D;KACA,MAAM,CACL,6BAA6B,EAC7B,uDAAuD,CACxD;KACA,MAAM,CACL,oBAAoB,EACpB,kEAAkE,CACnE;KACA,MAAM,CACL,uBAAuB,EACvB,uDAAuD,CACxD,CAAC;AAEJ,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACxC,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { type InitOptions } from "./init.js";
2
- import type { CliFlag } from "../types/ai-tools.js";
2
+ import { type CliFlag } from "../types/ai-tools.js";
3
3
  type SmartToolFlagOptions = Partial<Record<CliFlag, boolean>>;
4
4
  export type TrellisActivationMode = "auto" | "explicit";
5
5
  export type SmartInitOptions = SmartToolFlagOptions & {
6
6
  append?: boolean;
7
7
  force?: boolean;
8
+ gitignoreConfig?: boolean;
8
9
  monorepo?: boolean;
9
10
  overwrite?: boolean;
10
11
  registry?: string;
@@ -19,6 +20,8 @@ export declare const SMART_DEFAULT_TOOLS: CliFlag[];
19
20
  export declare function parseSmartToolsOption(value: string): CliFlag[];
20
21
  export declare function parseSmartTrellisActivationMode(value: string | undefined): TrellisActivationMode | undefined;
21
22
  export declare function patchTrellisActivationConfig(content: string, mode: TrellisActivationMode): string;
23
+ export declare function getSmartGitignoreCandidates(tools: CliFlag[]): string[];
24
+ export declare function patchGitignoreConfigDirs(content: string, entries: string[]): string;
22
25
  export declare function createSmartInitOptions(options: SmartInitOptions, tools: CliFlag[], detectedUser?: string): InitOptions;
23
26
  export declare function detectDeveloperName(cwd?: string): string | undefined;
24
27
  export declare function smartInit(options: SmartInitOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"smart-init.d.ts","sourceRoot":"","sources":["../../src/commands/smart-init.ts"],"names":[],"mappings":"AAMA,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,KAAK,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAAO,EAAwB,CAAC;AAgBlE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAkB9D;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,qBAAqB,GAAG,SAAS,CAWnC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,GAC1B,MAAM,CAwCR;AAmDD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,CA6Bb;AAED,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAsB,GAC1B,MAAM,GAAG,SAAS,CAoBpB;AAuED,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxE"}
1
+ {"version":3,"file":"smart-init.d.ts","sourceRoot":"","sources":["../../src/commands/smart-init.ts"],"names":[],"mappings":"AASA,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAmB,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAErE,KAAK,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAAO,EAAwB,CAAC;AAiBlE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAAE,CAkB9D;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,qBAAqB,GAAG,SAAS,CAWnC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,GAC1B,MAAM,CAwCR;AA2CD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUtE;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EAAE,GAChB,MAAM,CAmBR;AAiED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,OAAO,EAAE,EAChB,YAAY,CAAC,EAAE,MAAM,GACpB,WAAW,CA6Bb;AAED,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,MAAsB,GAC1B,MAAM,GAAG,SAAS,CAoBpB;AAmGD,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBxE"}
@@ -3,9 +3,11 @@ import fs from "node:fs";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import inquirer from "inquirer";
6
- import { getInitToolChoices } from "../configurators/index.js";
6
+ import { getInitToolChoices, resolveCliFlag, } from "../configurators/index.js";
7
7
  import { init } from "./init.js";
8
+ import { getManagedPaths } from "../types/ai-tools.js";
8
9
  export const SMART_DEFAULT_TOOLS = ["codex", "cursor"];
10
+ const TRELLIS_GITIGNORE_ENTRY = ".trellis/";
9
11
  function supportedToolFlags() {
10
12
  return getInitToolChoices().map((tool) => tool.key);
11
13
  }
@@ -71,6 +73,75 @@ export function patchTrellisActivationConfig(content, mode) {
71
73
  const separator = content.endsWith("\n") ? "\n" : "\n\n";
72
74
  return `${content}${separator}trellis:\n activation_mode: ${mode}\n`;
73
75
  }
76
+ function normalizeGitignoreDirEntry(value) {
77
+ const trimmed = value.trim();
78
+ if (!trimmed || trimmed.startsWith("#") || trimmed.startsWith("!")) {
79
+ return undefined;
80
+ }
81
+ const normalized = trimmed
82
+ .replace(/\\/g, "/")
83
+ .replace(/^\/+/, "")
84
+ .replace(/\/+$/g, "");
85
+ if (!normalized) {
86
+ return undefined;
87
+ }
88
+ return `${normalized}/`;
89
+ }
90
+ function uniqueDirEntries(entries) {
91
+ const seen = new Set();
92
+ const unique = [];
93
+ for (const entry of entries) {
94
+ const normalized = normalizeGitignoreDirEntry(entry);
95
+ if (!normalized || seen.has(normalized)) {
96
+ continue;
97
+ }
98
+ seen.add(normalized);
99
+ unique.push(normalized);
100
+ }
101
+ return unique;
102
+ }
103
+ function gitignoreEntryCoversCandidate(gitignoreEntry, candidate) {
104
+ const normalized = normalizeGitignoreDirEntry(gitignoreEntry);
105
+ return (normalized === candidate ||
106
+ Boolean(normalized && candidate.startsWith(normalized)));
107
+ }
108
+ export function getSmartGitignoreCandidates(tools) {
109
+ const entries = [TRELLIS_GITIGNORE_ENTRY];
110
+ for (const tool of tools) {
111
+ const platformId = resolveCliFlag(tool);
112
+ if (!platformId) {
113
+ throw new Error(`Unknown tool "${tool}".`);
114
+ }
115
+ entries.push(...getManagedPaths(platformId));
116
+ }
117
+ return uniqueDirEntries(entries);
118
+ }
119
+ export function patchGitignoreConfigDirs(content, entries) {
120
+ const candidates = uniqueDirEntries(entries);
121
+ if (candidates.length === 0) {
122
+ return content;
123
+ }
124
+ const existingLines = content.split(/\r?\n/);
125
+ const missing = candidates.filter((candidate) => !existingLines.some((line) => gitignoreEntryCoversCandidate(line, candidate)));
126
+ if (missing.length === 0) {
127
+ return content;
128
+ }
129
+ const prefix = content && !content.endsWith("\n") ? `${content}\n` : content;
130
+ return `${prefix}${missing.join("\n")}\n`;
131
+ }
132
+ function applyGitignoreConfigDirs(cwd, entries) {
133
+ if (entries.length === 0) {
134
+ return;
135
+ }
136
+ const gitignorePath = path.join(cwd, ".gitignore");
137
+ const content = fs.existsSync(gitignorePath)
138
+ ? fs.readFileSync(gitignorePath, "utf-8")
139
+ : "";
140
+ const patched = patchGitignoreConfigDirs(content, entries);
141
+ if (patched !== content) {
142
+ fs.writeFileSync(gitignorePath, patched, "utf-8");
143
+ }
144
+ }
74
145
  function applyTrellisActivationConfig(cwd, mode) {
75
146
  if (!mode) {
76
147
  return;
@@ -169,6 +240,28 @@ async function resolveSmartTools(options) {
169
240
  ]);
170
241
  return answers.tools;
171
242
  }
243
+ async function resolveSmartGitignoreConfigDirs(options, tools) {
244
+ const candidates = getSmartGitignoreCandidates(tools);
245
+ if (options.gitignoreConfig === false || candidates.length === 0) {
246
+ return [];
247
+ }
248
+ if (options.gitignoreConfig === true || options.yes) {
249
+ return candidates;
250
+ }
251
+ const answers = await inquirer.prompt([
252
+ {
253
+ type: "checkbox",
254
+ name: "gitignoreConfigDirs",
255
+ message: "Select generated config directories to add to .gitignore:",
256
+ choices: candidates.map((entry) => ({
257
+ checked: true,
258
+ name: entry,
259
+ value: entry,
260
+ })),
261
+ },
262
+ ]);
263
+ return answers.gitignoreConfigDirs ?? [];
264
+ }
172
265
  async function resolveSmartTrellisActivation(options) {
173
266
  const parsed = parseSmartTrellisActivationMode(options.trellisActivation);
174
267
  const hasExplicitTools = !!options.tools ||
@@ -198,9 +291,11 @@ async function resolveSmartTrellisActivation(options) {
198
291
  }
199
292
  export async function smartInit(options) {
200
293
  const tools = await resolveSmartTools(options);
294
+ const gitignoreConfigDirs = await resolveSmartGitignoreConfigDirs(options, tools);
201
295
  const activationMode = await resolveSmartTrellisActivation(options);
202
296
  const initOptions = createSmartInitOptions(options, tools, detectDeveloperName());
203
297
  await init(initOptions);
204
298
  applyTrellisActivationConfig(process.cwd(), activationMode);
299
+ applyGitignoreConfigDirs(process.cwd(), gitignoreConfigDirs);
205
300
  }
206
301
  //# sourceMappingURL=smart-init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-init.js","sourceRoot":"","sources":["../../src/commands/smart-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-init.js","sourceRoot":"","sources":["../../src/commands/smart-init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibotor/smart-trellis",
3
- "version": "0.5.22",
3
+ "version": "0.5.23",
4
4
  "description": "Smart Trellis CLI with project-aware initialization defaults",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",