trellis-hgl 0.6.0-beta.24 → 0.6.0-beta.26

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
@@ -58,14 +58,16 @@
58
58
  - 当前会话直做,还是 subagent
59
59
  - 当前分支直改,还是 worktree
60
60
  - 默认流程,还是 TDD
61
+ - 这次任务要不要启用 `trellis-spec-review`、`trellis-code-review`、`trellis-code-architecture-review`、`trellis-improve-codebase-architecture`、`trellis-merge-review`
61
62
 
62
63
  4. **把 AI 容易忽略的工程门禁变成显式节点**
63
- - `trellis-check`
64
- - `trellis-spec-review`
65
- - `trellis-code-review`
66
- - `trellis-code-architecture-review`
67
- - 按需触发 `trellis-improve-codebase-architecture`
68
- - merge review 与最终 build/test
64
+ - 固定保留:`trellis-check`
65
+ - 任务级可选:`trellis-spec-review`
66
+ - 任务级可选:`trellis-code-review`
67
+ - 任务级可选:`trellis-code-architecture-review`
68
+ - 任务级可选:`trellis-improve-codebase-architecture`
69
+ - 任务级可选:`trellis-merge-review`
70
+ - 最终 build/test 继续保留
69
71
 
70
72
  5. **随时可跳出Trellis流程**
71
73
  - 随时都可以直接对Claude说: "当前任务直接存档",即可跳出工作流直接结束任务
@@ -97,13 +99,16 @@
97
99
 
98
100
  这个分支把质量控制拆成几层:
99
101
 
100
- - 综合检查:`trellis-check`
101
- - 串行门禁:
102
+ - 固定检查:`trellis-check`
103
+ - 任务级可选 gate:
102
104
  - `trellis-spec-review`
103
105
  - `trellis-code-review`
104
106
  - `trellis-code-architecture-review`
105
- - 架构敏感任务额外深审:`trellis-improve-codebase-architecture`
106
- - 合并后再做:`trellis-merge-review` + `build/test`
107
+ - `trellis-improve-codebase-architecture`
108
+ - `trellis-merge-review`
109
+ - 其中 `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review` 一旦启用,仍保持这个顺序
110
+ - 对新任务,这 5 个可选 gate 默认全关;对老任务,若任务文档没有选择记录,则沿用旧行为
111
+ - 最终 `build/test` 继续保留
107
112
 
108
113
  ## 工作流总览
109
114
 
@@ -115,30 +120,32 @@
115
120
  → task.py create
116
121
  → trellis-brainstorm
117
122
  → trellis-grill-me
118
- 开发策略决策
123
+ 开发策略决策(同一选项块里确定 subagent/worktree/TDD/review gates)
119
124
  → (按需)trellis-improve-codebase-architecture guidance
120
125
  → task.py start
121
126
  → trellis-implement
122
127
  → trellis-check
123
- → trellis-spec-review
124
- → trellis-code-review
125
- → trellis-code-architecture-review
126
- (按需)trellis-improve-codebase-architecture deep-review
128
+ (按任务选择)trellis-spec-review
129
+ (按任务选择)trellis-code-review
130
+ (按任务选择)trellis-code-architecture-review
131
+ (按任务选择)trellis-improve-codebase-architecture deep-review
127
132
  → trellis-update-spec
128
133
  → 提交代码
129
134
  → 主 agent 合并
130
- → trellis-merge-review
135
+ (按任务选择)trellis-merge-review
131
136
  → build/test
132
137
  → /trellis:finish-work
133
138
  ```
134
139
 
135
140
  ### 开发策略决策包含什么
136
141
 
137
- 进入实现前,至少要明确三项:
142
+ 进入实现前,至少要明确五项:
138
143
 
139
144
  1. 当前会话持续开发,还是 subagent
140
145
  2. 当前分支直接开发,还是 worktree
141
146
  3. 走 Trellis 默认开发流程,还是 TDD
147
+ 4. 这次任务要启用哪些 review gate(5 个可选 gate 必须落盘为 `Review-gate contract: explicit-selection-v1` + `Optional review gates status: configured` + enabled/disabled 列表;就算 5 个都不启用,也要显式写进 disabled,`trellis-check` 固定保留)
148
+ 5. 是否在进入实现前运行 `trellis-improve-codebase-architecture guidance`(这不会隐式开启 deep-review;后者仍需在 review gate 里显式选择,而且 deep-review 依赖 `trellis-code-architecture-review`)
142
149
 
143
150
  如果选择 `subagent + worktree`,本分支约定所有代码开发子代理固定使用同一个路径:
144
151
 
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"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"}
@@ -216,6 +216,44 @@ export function wrapWithCommandFrontmatter(name, content) {
216
216
  }
217
217
  return `---\nname: ${name}\ndescription: ${description}\n---\n\n${content}`;
218
218
  }
219
+ const TRELLIS_SWITCH_GUARD_PATH = "./.trellis/scripts/assert_trellis_enabled.py";
220
+ const FRONTMATTER_RE = /^(---\r?\n[\s\S]*?\r?\n---)((?:\r?\n)*)/;
221
+ const TOP_LEVEL_HEADING_RE = /^(# [^\r\n]+)((?:\r?\n)+)/;
222
+ function buildTrellisSwitchGuard(kind, lineEnding = "\n") {
223
+ return [
224
+ "## Trellis Switch Gate",
225
+ "",
226
+ "Before doing anything else, run:",
227
+ "",
228
+ "```bash",
229
+ `${getPythonCommandForPlatform()} ${TRELLIS_SWITCH_GUARD_PATH}`,
230
+ "```",
231
+ "",
232
+ `If this command exits non-zero, stop immediately and respond with its output exactly. Do not continue with this Trellis ${kind}.`,
233
+ ]
234
+ .join("\n")
235
+ .replace(/\n/g, lineEnding);
236
+ }
237
+ function injectTrellisSwitchGuard(content, kind) {
238
+ if (content.includes(TRELLIS_SWITCH_GUARD_PATH)) {
239
+ return content;
240
+ }
241
+ const lineEnding = content.includes("\r\n") ? "\r\n" : "\n";
242
+ const spacing = `${lineEnding}${lineEnding}`;
243
+ const guard = buildTrellisSwitchGuard(kind, lineEnding);
244
+ if (content.startsWith("---")) {
245
+ return content.replace(FRONTMATTER_RE, (_match, frontmatter) => {
246
+ return `${frontmatter}${spacing}${guard}${spacing}`;
247
+ });
248
+ }
249
+ if (kind === "command") {
250
+ const match = content.match(TOP_LEVEL_HEADING_RE);
251
+ if (match) {
252
+ return content.replace(TOP_LEVEL_HEADING_RE, `$1$2${guard}${spacing}`);
253
+ }
254
+ }
255
+ return `${guard}${spacing}${content}`;
256
+ }
219
257
  // ---------------------------------------------------------------------------
220
258
  // Shared configurator helpers
221
259
  // ---------------------------------------------------------------------------
@@ -250,7 +288,7 @@ export function resolveAllAsSkills(ctx) {
250
288
  ];
251
289
  return templates.map((tmpl) => ({
252
290
  name: `trellis-${tmpl.name}`,
253
- content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)),
291
+ content: injectTrellisSwitchGuard(wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)), "skill"),
254
292
  }));
255
293
  }
256
294
  /**
@@ -262,7 +300,7 @@ export function resolveAllAsSkills(ctx) {
262
300
  export function resolveCommands(ctx) {
263
301
  return filterCommands(getCommandTemplates(), ctx).map((tmpl) => ({
264
302
  name: tmpl.name,
265
- content: resolvePlaceholders(tmpl.content, ctx),
303
+ content: injectTrellisSwitchGuard(resolvePlaceholders(tmpl.content, ctx), "command"),
266
304
  }));
267
305
  }
268
306
  /**
@@ -272,7 +310,7 @@ export function resolveCommands(ctx) {
272
310
  export function resolveSkills(ctx) {
273
311
  return getSkillTemplates().map((tmpl) => ({
274
312
  name: `trellis-${tmpl.name}`,
275
- content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)),
313
+ content: injectTrellisSwitchGuard(wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholders(tmpl.content, ctx)), "skill"),
276
314
  }));
277
315
  }
278
316
  /**
@@ -285,7 +323,7 @@ export function resolveSkills(ctx) {
285
323
  export function resolveSkillsNeutral(ctx) {
286
324
  return getSkillTemplates().map((tmpl) => ({
287
325
  name: `trellis-${tmpl.name}`,
288
- content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholdersNeutral(tmpl.content, ctx)),
326
+ content: injectTrellisSwitchGuard(wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholdersNeutral(tmpl.content, ctx)), "skill"),
289
327
  }));
290
328
  }
291
329
  /**
@@ -302,7 +340,7 @@ export function resolveAllAsSkillsNeutral(ctx) {
302
340
  ];
303
341
  return templates.map((tmpl) => ({
304
342
  name: `trellis-${tmpl.name}`,
305
- content: wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholdersNeutral(tmpl.content, ctx)),
343
+ content: injectTrellisSwitchGuard(wrapWithSkillFrontmatter(`trellis-${tmpl.name}`, resolvePlaceholdersNeutral(tmpl.content, ctx)), "skill"),
306
344
  }));
307
345
  }
308
346
  /**
@@ -329,7 +367,7 @@ export function resolveCodexTrellisStartSkill(ctx) {
329
367
  return null;
330
368
  return {
331
369
  name: "trellis-start",
332
- content: wrapWithSkillFrontmatter("trellis-start", resolvePlaceholdersNeutral(startTemplate.content, ctx)),
370
+ content: injectTrellisSwitchGuard(wrapWithSkillFrontmatter("trellis-start", resolvePlaceholdersNeutral(startTemplate.content, ctx)), "skill"),
333
371
  };
334
372
  }
335
373
  /**
@@ -342,7 +380,9 @@ export function resolveCodexTrellisStartSkill(ctx) {
342
380
  export function resolveBundledSkills(ctx) {
343
381
  return getBundledSkillTemplates().flatMap((skill) => skill.files.map((file) => ({
344
382
  relativePath: `${skill.name}/${file.relativePath}`,
345
- content: resolvePlaceholders(file.content, ctx),
383
+ content: file.relativePath === "SKILL.md"
384
+ ? injectTrellisSwitchGuard(resolvePlaceholders(file.content, ctx), "skill")
385
+ : resolvePlaceholders(file.content, ctx),
346
386
  })));
347
387
  }
348
388
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/configurators/shared.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "version": "0.6.0-beta.23",
3
- "description": "Beta patch: align release tests with current platform behavior and make Claude review gates read-only Opus reviewers.",
3
+ "description": "Beta patch: make Claude review gates read-only, align release checks with current platform behavior, and tighten fork release metadata plus publish-path validation.",
4
4
  "breaking": false,
5
5
  "recommendMigrate": false,
6
- "changelog": "**Enhancements:**\n- feat(workflow): Claude review gates now run as read-only Opus reviewers that report blocking issues without modifying code, while the main agent remains responsible for repairs and repeated-block escalation.\n\n**Bug Fixes:**\n- fix(release): release-related tests now align with current cross-platform behavior so publish-path validation matches the actual supported environments.",
6
+ "changelog": "**Enhancements:**\n- feat(workflow): Claude review gates now run as read-only Opus reviewers that report blocking issues without modifying code, while the main agent remains responsible for repairs and repeated-block escalation.\n\n**Bug Fixes:**\n- fix(release): release-related tests now align with current cross-platform behavior so publish-path validation matches the actual supported environments.\n- fix(release): fork publish metadata and packed CLI validation now stay aligned so published npm artifacts carry the fork repository metadata and synced README/LICENSE content expected by the release checks.",
7
7
  "migrations": [],
8
8
  "notes": "Run `npm install -g trellis-hgl@beta` and `trellis update` to refresh workflow and review gate templates. No file migration is required."
9
9
  }
@@ -30,7 +30,9 @@ Before checking, check whether the task artifacts recorded a development strateg
30
30
 
31
31
  - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
32
32
  - If the strategy is TDD, align your review expectations to `trellis-tdd`.
33
- - If the task artifacts include a planned review-gate order, preserve it for the main session instead of bypassing it.
33
+ - If the task artifacts carry `Review-gate contract: explicit-selection-v1`, preserve the configured selection for the main session. Require `Optional review gates status: configured` plus explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists, keep any enabled Claude review gates in this order: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`, treat `trellis-improve-codebase-architecture` and `trellis-merge-review` as opt-in gates controlled by the task strategy, and remember that `trellis-check` stays fixed outside this optional set. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; if deep-review is enabled without that prerequisite, stop and report the invalid strategy record to the main session.
34
+ - If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of silently applying the new-task default.
35
+ - If the contract marker exists but the configured enabled/disabled lists are missing, stop and report the incomplete strategy record to the main session.
34
36
 
35
37
  ## Context
36
38
 
@@ -31,7 +31,7 @@ Before reviewing, check whether the task artifacts recorded a development strate
31
31
 
32
32
  - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
33
33
  - If the strategy is TDD, align review expectations to `trellis-tdd`.
34
- - Do NOT approve the architecture-review gate if the task artifacts are missing the required strategy record or review-gate order.
34
+ - Do NOT approve the architecture-review gate if the task artifacts are missing the required strategy record. If the task artifacts carry `Review-gate contract: explicit-selection-v1`, verify that `trellis-code-architecture-review` is enabled there, verify `Optional review gates status: configured`, and verify explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists exist. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; if the strategy record enables deep-review without that prerequisite gate, fail the review for an invalid task-level gate contract. If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of failing solely for the missing selection record.
35
35
 
36
36
  ## Core Responsibilities
37
37
 
@@ -31,7 +31,7 @@ Before reviewing, check whether the task artifacts recorded a development strate
31
31
 
32
32
  - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
33
33
  - If the strategy is TDD, align review expectations to `trellis-tdd`.
34
- - Do NOT approve the code-review gate if the task artifacts are missing the required strategy record or review-gate order.
34
+ - Do NOT approve the code-review gate if the task artifacts are missing the required strategy record. If the task artifacts carry `Review-gate contract: explicit-selection-v1`, verify that `trellis-code-review` is enabled there, verify `Optional review gates status: configured`, and verify explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists exist. `trellis-improve-codebase-architecture` deep-review still requires `trellis-code-architecture-review`; if the strategy record enables deep-review without that prerequisite gate, fail the review for an invalid task-level gate contract. If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of failing solely for the missing selection record.
35
35
 
36
36
  ## Core Responsibilities
37
37
 
@@ -29,7 +29,9 @@ Before implementing, check whether the task artifacts recorded a development str
29
29
 
30
30
  - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
31
31
  - If the strategy is TDD, align your implementation flow to `trellis-tdd`.
32
- - If the task artifacts include a planned review-gate order, preserve it for the main session instead of bypassing it.
32
+ - If the task artifacts carry `Review-gate contract: explicit-selection-v1`, preserve the configured selection for the main session. Require `Optional review gates status: configured` plus explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists, keep any enabled Claude review gates in this order: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`, treat `trellis-improve-codebase-architecture` and `trellis-merge-review` as opt-in gates controlled by the task strategy, and remember that `trellis-check` stays fixed outside this optional set. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; if deep-review is enabled without that prerequisite, stop and report the invalid strategy record to the main session.
33
+ - If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of silently applying the new-task default.
34
+ - If the contract marker exists but the configured enabled/disabled lists are missing, stop and report the incomplete strategy record to the main session.
33
35
 
34
36
  ## Context
35
37
 
@@ -25,6 +25,14 @@ Look for the `<!-- trellis-hook-injected -->` marker in your input above.
25
25
  - **If the marker is present**: task artifacts have already been auto-loaded for you above. Proceed with the review directly and report findings to the main session.
26
26
  - **If the marker is absent**: hook injection didn't fire. Find the active task path from your dispatch prompt's first line `Active task: <path>`, then Read `<task-path>/prd.md`, `<task-path>/design.md` if present, and `<task-path>/implement.md` if present before doing the work.
27
27
 
28
+ ## Strategy Alignment
29
+
30
+ Before reviewing, check whether the task artifacts recorded a development strategy.
31
+
32
+ - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
33
+ - If the strategy is TDD, align review expectations to `trellis-tdd`.
34
+ - Do NOT approve the merge-review gate if the task artifacts are missing the required strategy record. If the task artifacts carry `Review-gate contract: explicit-selection-v1`, verify that `trellis-merge-review` is enabled there, verify `Optional review gates status: configured`, and verify explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists exist. `trellis-improve-codebase-architecture` deep-review still requires `trellis-code-architecture-review`; if the strategy record enables deep-review without that prerequisite gate, fail the review for an invalid task-level gate contract. If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of failing solely for the missing selection record.
35
+
28
36
  ## Core Responsibilities
29
37
 
30
38
  1. Verify no merge conflicts or conflict markers remain in the merged code.
@@ -31,7 +31,7 @@ Before reviewing, check whether the task artifacts recorded a development strate
31
31
 
32
32
  - If the strategy is `subagent + worktree`, stay on the shared `./.claude/worktree` path and do NOT create or switch to another worktree.
33
33
  - If the strategy is TDD, align review expectations to `trellis-tdd`.
34
- - Do NOT approve the spec-review gate if the task artifacts are missing the required strategy record or review-gate order.
34
+ - Do NOT approve the spec-review gate if the task artifacts are missing the required strategy record. If the task artifacts carry `Review-gate contract: explicit-selection-v1`, verify that `trellis-spec-review` is enabled there, verify `Optional review gates status: configured`, and verify explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists exist. `trellis-improve-codebase-architecture` deep-review still requires `trellis-code-architecture-review`; if the strategy record enables deep-review without that prerequisite gate, fail the review for an invalid task-level gate contract. If the contract marker is absent, treat the task as a legacy task and preserve the old review-gate behavior instead of failing solely for the missing selection record.
35
35
 
36
36
  ## Core Responsibilities
37
37
 
@@ -45,7 +45,7 @@ Before reviewing, check whether the task artifacts recorded a development strate
45
45
  - Required behavior matches the task artifacts.
46
46
  - Implementation follows the relevant spec files.
47
47
  - Worktree / TDD strategy recorded in the task artifacts is consistent with the current work.
48
- - Tests, validation commands, and documented review-gate order stay in sync with the task artifacts.
48
+ - Tests, validation commands, and documented review-gate selection stay in sync with the task artifacts, including the enabled/disabled gate set and the preserved order for any enabled Claude review gates.
49
49
 
50
50
  ## Verification
51
51
 
@@ -37,7 +37,7 @@ Index files list the specific guideline docs to read when you actually start cod
37
37
  From Step 1 you know the current task and status. Check the task directory:
38
38
 
39
39
  - **Active task status `planning` + no `prd.md`** → Phase 1.1. Load the `trellis-brainstorm` skill.
40
- - **Active task status `planning` + `prd.md` exists** → stay in Phase 1. Lightweight tasks can be PRD-only; complex tasks need `design.md` + `implement.md`. For the Claude Code path, keep requirement clarification in `prd.md`, continue repository-first follow-up questioning by entering `trellis-grill-me`, and treat it as a required planning gate. Before `trellis-grill-me` is complete, do not enter development strategy decisions, do not create or complete `design.md` / `implement.md`, and do not run `task.py start`. Before `task.py start`, record the decisions in the task documents: development mode, branch vs worktree, default flow vs TDD. Complex tasks should keep that record in `implement.md` together with the review-gate plan: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`. If the strategy is `subagent + worktree`, pin `./.claude/worktree`; if the strategy is TDD, record `D:\Trellis\matt-skills-main\skills\engineering\tdd` as the reference flow.
40
+ - **Active task status `planning` + `prd.md` exists** → stay in Phase 1. Lightweight tasks can be PRD-only; complex tasks need `design.md` + `implement.md`. For the Claude Code path, keep requirement clarification in `prd.md`, continue repository-first follow-up questioning by entering `trellis-grill-me`, and treat it as a required planning gate. Before `trellis-grill-me` is complete, do not enter development strategy decisions, do not create or complete `design.md` / `implement.md`, and do not run `task.py start`. Before `task.py start`, record the decisions in the task documents: development mode, branch vs worktree, default flow vs TDD, plus the task-level review-gate selection. Ask these in one `A.` / `B.` / `C.` style strategy block. New tasks must stamp that block with `Review-gate contract: explicit-selection-v1`. Complex tasks should keep that record in `implement.md` together with the enabled/disabled review gates and the preserved order for any enabled Claude review gates: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`. While the choice is still open, `Optional review gates status: pending` is allowed; before `task.py start`, replace it with `Optional review gates status: configured` plus explicit `Enabled optional review gates:` and `Disabled optional review gates:` lists for the selectable review gates (`trellis-spec-review`, `trellis-code-review`, `trellis-code-architecture-review`, `trellis-improve-codebase-architecture`, `trellis-merge-review`). If the user leaves all optional gates off, still record all five in the disabled list while keeping `trellis-check` fixed outside that set. Only tasks that entirely lack `Review-gate contract: explicit-selection-v1` count as legacy tasks and preserve the old behavior; if the marker exists but the configured enabled/disabled lists are missing, planning is incomplete and the task must not start. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; do not record or accept deep-review without that prerequisite gate. If the strategy is `subagent + worktree`, pin `./.claude/worktree`; if the strategy is TDD, record `trellis-tdd` as the reference flow. Also record whether to run pre-development architecture guidance in that same strategy block. If guidance is enabled, record `架构审查:enabled`, dispatch `trellis-improve-codebase-architecture` with `架构审查模式: guidance` before `task.py start`, and append its output to `design.md`, but do NOT implicitly enable `trellis-improve-codebase-architecture` deep-review; that gate still requires explicit selection in the task-level review-gate set.
41
41
  - **Active task status `in_progress`** → Phase 2 step 2.1. Load the step detail:
42
42
  ```bash
43
43
  {{PYTHON_CMD}} ./.trellis/scripts/get_context.py --mode phase --step 2.1 --platform {{CLI_FLAG}}
@@ -32,9 +32,9 @@ Execute these steps:
32
32
 
33
33
  7. If the task artifacts record a development strategy, follow it before writing code: keep `subagent + worktree` work on the shared `./.claude/worktree` path, and if the task selected TDD, align your development flow to `trellis-tdd`.
34
34
 
35
- 8. If the task artifacts identify the work as architecture-sensitive or explicitly call for structural cleanup, run the task through `trellis-improve-codebase-architecture` guidance before widening the refactor.
35
+ 8. If the task artifacts explicitly enable pre-development architecture guidance, run the task through `trellis-improve-codebase-architecture` guidance before widening the refactor. Architecture sensitivity or structural cleanup can justify recommending guidance during planning, but they do not implicitly enable it during execution.
36
36
 
37
- 9. If the task artifacts record a review-gate order, preserve it and assume the main session will run `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review` before leaving the review phase.
37
+ 9. If the task artifacts carry `Review-gate contract: explicit-selection-v1`, preserve the configured selection for the main session. Require `Optional review gates status: configured` plus explicit `Enabled optional review gates:` / `Disabled optional review gates:` lists, keep any enabled Claude review gates in this order: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`, treat `trellis-improve-codebase-architecture` and `trellis-merge-review` as opt-in gates controlled by the task strategy, and remember that `trellis-check` stays fixed outside this optional set. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; if deep-review is enabled without that prerequisite, stop and repair the task artifacts before continuing. If the marker is absent, treat it as a legacy task and preserve the old review-gate behavior instead of silently applying the new-task default. If the marker exists but the configured enabled/disabled lists are missing, stop and repair the task artifacts before continuing.
38
38
 
39
39
  10. Understand the coding standards and patterns you need to follow, then proceed with your development plan.
40
40
 
@@ -49,7 +49,7 @@ Use a concise title from the user's request. Use a slug without a date prefix. `
49
49
  6. After each user answer, update `prd.md` before continuing.
50
50
  7. Once repository-answerable questions are exhausted, enter `trellis-grill-me` and tighten the remaining requirement gaps one question at a time, each with a recommendation, while still updating `prd.md` after each answer.
51
51
  8. On the Claude Code path, `trellis-grill-me` is a required planning gate. Before it is complete, do not switch into development strategy decisions, do not create or complete `design.md` / `implement.md`, and do not run `task.py start`.
52
- 9. Before implementation starts on the Claude Code path, record the development strategy decisions in the task documents: development mode, branch vs worktree, default flow vs TDD. Lightweight tasks may keep that record in `prd.md`; complex tasks should keep it in `implement.md` together with the review-gate plan: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`. If the strategy is `subagent + worktree`, pin `./.claude/worktree`. If the strategy is TDD, record `trellis-tdd` as the reference flow. Also ask: "是否需要在开发前进行架构指导?" if yes, dispatch `trellis-improve-codebase-architecture` with `架构审查模式: guidance` before `task.py start`, append its output to `design.md`, and add `架构审查:enabled` plus `trellis-improve-codebase-architecture(深度)` to the review-gate order in `implement.md`.
52
+ 9. Before implementation starts on the Claude Code path, record the development strategy decisions in the task documents: development mode, branch vs worktree, default flow vs TDD, and the task-level review-gate selection. Ask these in a single `A.` / `B.` / `C.` style option block. New tasks must stamp that strategy block with `Review-gate contract: explicit-selection-v1`. Lightweight tasks may keep that record in `prd.md`; complex tasks should keep it in `implement.md` together with the enabled/disabled review gates and the preserved execution order for any enabled Claude review gates: `trellis-spec-review` → `trellis-code-review` → `trellis-code-architecture-review`. The selectable review gates are `trellis-spec-review`, `trellis-code-review`, `trellis-code-architecture-review`, `trellis-improve-codebase-architecture`, and `trellis-merge-review`. While the choice is still open, `Optional review gates status: pending` is allowed; before `task.py start`, replace it with `Optional review gates status: configured` plus explicit `Enabled optional review gates:` and `Disabled optional review gates:` lists. If the user leaves all optional gates off, still record all five in the disabled list; `trellis-check` stays fixed outside this set. Only tasks that entirely lack `Review-gate contract: explicit-selection-v1` count as legacy tasks and preserve the old behavior; if the marker exists but the configured enabled/disabled lists are missing, planning is incomplete and the task must not start. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`, so do not record or accept the deep-review gate without that prerequisite. If the strategy is `subagent + worktree`, pin `./.claude/worktree`. If the strategy is TDD, record `trellis-tdd` as the reference flow. Also record whether to run pre-development architecture guidance in that same strategy block. If guidance is enabled, record `架构审查:enabled`, dispatch `trellis-improve-codebase-architecture` with `架构审查模式: guidance` before `task.py start`, and append its output to `design.md`, but do NOT implicitly enable `trellis-improve-codebase-architecture` deep-review; that gate still requires explicit selection in the task-level review-gate set.
53
53
  10. For complex tasks, create or update `design.md` and `implement.md` only after `trellis-grill-me` is complete and implementation is about to start.
54
54
 
55
55
  Do not invent a project-specific product/spec hierarchy. If the repository already has product, domain, or spec docs, use them. If it does not, proceed with the evidence that exists.
@@ -89,7 +89,7 @@ Do not ask process questions such as whether to search, inspect files, or contin
89
89
  `implement.md` records execution planning for complex tasks:
90
90
 
91
91
  - development strategy decisions
92
- - review-gate order
92
+ - review-gate selection and enabled-gate order
93
93
  - ordered implementation checklist
94
94
  - validation commands
95
95
  - risky files or rollback points
@@ -38,6 +38,7 @@ export declare const commonWorkflowPhase: string;
38
38
  export declare const commonTrellisConfig: string;
39
39
  export declare const commonSafeCommit: string;
40
40
  export declare const trellisSwitch: string;
41
+ export declare const assertTrellisEnabled: string;
41
42
  export declare const getDeveloperScript: string;
42
43
  export declare const initDeveloperScript: string;
43
44
  export declare const taskScript: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,aAAa,QAA4C,CAAC;AAGvE,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAGvE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAsCnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,aAAa,QAA4C,CAAC;AACvE,eAAO,MAAM,oBAAoB,QAAoD,CAAC;AAGtF,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AAGvE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuCnD"}
@@ -48,6 +48,7 @@ export const commonWorkflowPhase = readTemplate("scripts/common/workflow_phase.p
48
48
  export const commonTrellisConfig = readTemplate("scripts/common/trellis_config.py");
49
49
  export const commonSafeCommit = readTemplate("scripts/common/safe_commit.py");
50
50
  export const trellisSwitch = readTemplate("scripts/trellis_switch.py");
51
+ export const assertTrellisEnabled = readTemplate("scripts/assert_trellis_enabled.py");
51
52
  // Python scripts - main
52
53
  export const getDeveloperScript = readTemplate("scripts/get_developer.py");
53
54
  export const initDeveloperScript = readTemplate("scripts/init_developer.py");
@@ -94,6 +95,7 @@ export function getAllScripts() {
94
95
  scripts.set("get_context.py", getContextScript);
95
96
  scripts.set("add_session.py", addSessionScript);
96
97
  scripts.set("trellis_switch.py", trellisSwitch);
98
+ scripts.set("assert_trellis_enabled.py", assertTrellisEnabled);
97
99
  return scripts;
98
100
  }
99
101
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env python3
2
+ """Block Trellis workflow entry when Claude trellis-switch is disabled."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import sys
7
+
8
+ from common.cli_adapter import detect_platform
9
+ from common.paths import get_repo_root, read_switch_enabled
10
+
11
+ DISABLED_MESSAGE = "Trellis 当前已关闭;如需恢复,请执行 /trellis-switch"
12
+
13
+
14
+ def main() -> int:
15
+ repo_root = get_repo_root()
16
+ if detect_platform(repo_root) != "claude":
17
+ return 0
18
+ if read_switch_enabled(repo_root):
19
+ return 0
20
+ print(DISABLED_MESSAGE)
21
+ return 1
22
+
23
+
24
+ if __name__ == "__main__":
25
+ sys.exit(main())
@@ -8,20 +8,24 @@ from datetime import datetime
8
8
  from pathlib import Path
9
9
 
10
10
  from common.paths import (
11
+ FILE_JOURNAL_PREFIX,
11
12
  get_active_journal_file,
12
13
  get_developer,
13
14
  get_repo_root,
14
15
  get_workspace_dir,
15
16
  read_switch_enabled,
16
17
  write_switch_enabled,
17
- FILE_JOURNAL_PREFIX,
18
18
  )
19
19
 
20
+ DISABLED_SUFFIX = ".disabled"
21
+ TRELLIS_SWITCH_COMMAND = "trellis-switch.md"
22
+ SKILL_FILE = "SKILL.md"
23
+ DISABLED_SKILL_FILE = f"{SKILL_FILE}{DISABLED_SUFFIX}"
24
+
20
25
 
21
26
  def _append_journal(workspace: Path, repo_root: Path, message: str) -> None:
22
27
  journal = get_active_journal_file(repo_root)
23
28
  if journal is None:
24
- # fallback: journal-1.md
25
29
  journal = workspace / f"{FILE_JOURNAL_PREFIX}1.md"
26
30
  try:
27
31
  entry = f"\n- {datetime.now().strftime('%Y-%m-%d %H:%M')} {message}\n"
@@ -31,6 +35,59 @@ def _append_journal(workspace: Path, repo_root: Path, message: str) -> None:
31
35
  pass
32
36
 
33
37
 
38
+ def _disabled_path(path: Path) -> Path:
39
+ return path.with_name(f"{path.name}{DISABLED_SUFFIX}")
40
+
41
+
42
+ def _enabled_path(path: Path) -> Path:
43
+ return path.with_name(path.name[: -len(DISABLED_SUFFIX)])
44
+
45
+
46
+ def _set_claude_command_visibility(repo_root: Path, enabled: bool) -> None:
47
+ commands_dir = repo_root / ".claude" / "commands" / "trellis"
48
+ if not commands_dir.is_dir():
49
+ return
50
+
51
+ if enabled:
52
+ for disabled_command in commands_dir.glob(f"*.md{DISABLED_SUFFIX}"):
53
+ enabled_command = _enabled_path(disabled_command)
54
+ if not enabled_command.exists():
55
+ disabled_command.rename(enabled_command)
56
+ return
57
+
58
+ for command_file in commands_dir.glob("*.md"):
59
+ if command_file.name == TRELLIS_SWITCH_COMMAND:
60
+ continue
61
+ disabled_command = _disabled_path(command_file)
62
+ if not disabled_command.exists():
63
+ command_file.rename(disabled_command)
64
+
65
+
66
+ def _set_claude_skill_visibility(repo_root: Path, enabled: bool) -> None:
67
+ skills_dir = repo_root / ".claude" / "skills"
68
+ if not skills_dir.is_dir():
69
+ return
70
+
71
+ for skill_dir in skills_dir.glob("trellis-*"):
72
+ if not skill_dir.is_dir():
73
+ continue
74
+
75
+ skill_file = skill_dir / SKILL_FILE
76
+ disabled_skill_file = skill_dir / DISABLED_SKILL_FILE
77
+ if enabled:
78
+ if disabled_skill_file.is_file() and not skill_file.exists():
79
+ disabled_skill_file.rename(skill_file)
80
+ continue
81
+
82
+ if skill_file.is_file() and not disabled_skill_file.exists():
83
+ skill_file.rename(disabled_skill_file)
84
+
85
+
86
+ def _set_claude_surface_visibility(repo_root: Path, enabled: bool) -> None:
87
+ _set_claude_command_visibility(repo_root, enabled)
88
+ _set_claude_skill_visibility(repo_root, enabled)
89
+
90
+
34
91
  def main() -> None:
35
92
  repo_root = get_repo_root()
36
93
  developer = get_developer(repo_root)
@@ -44,6 +101,7 @@ def main() -> None:
44
101
  current = read_switch_enabled(repo_root)
45
102
  new_state = not current
46
103
  write_switch_enabled(new_state, repo_root)
104
+ _set_claude_surface_visibility(repo_root, new_state)
47
105
 
48
106
  if new_state:
49
107
  msg = "已打开 Trellis, 执行clear或打开新会话后生效。"
@@ -116,7 +116,7 @@ python3 ./.trellis/scripts/get_context.py --mode phase --step <X.Y> # 读取某
116
116
  [workflow-state:no_task] → 没有活动任务;Phase 1 之前
117
117
  [workflow-state:planning] → Phase 1 全阶段(status='planning')
118
118
  [workflow-state:planning-inline] → Codex 的 Phase 1 内联变体
119
- [workflow-state:in_progress] → Phase 2 + Phase 3.1-3.4
119
+ [workflow-state:in_progress] → Phase 2 + Phase 3.1-3.5
120
120
  (从 task.py start 到 task.py archive 期间状态都保持 'in_progress')
121
121
  [workflow-state:in_progress-inline] → Codex 的 Phase 2/3 内联变体
122
122
  [workflow-state:completed] → 当前为 DEAD:cmd_archive 会在同一次调用里改状态并移动目录,
@@ -189,7 +189,7 @@ Planning order for this Claude Code path: `task.py create` → `trellis-brainsto
189
189
  `trellis-grill-me` is a required planning gate on this Claude Code path, not an optional suggestion.
190
190
  Before `trellis-grill-me` is complete, do not enter development strategy decisions, do not create or complete `design.md` / `implement.md`, and do not run `task.py start`.
191
191
  Do not enter development strategy decisions until `prd.md` has been tightened through repository-first clarification and one-question-at-a-time follow-up.
192
- Before `task.py start`, record the development strategy decisions in the task documents. Complex tasks should store them in `implement.md`: development mode (current session / subagent), branch vs worktree, default flow vs TDD, plus the planned review-gate order: `trellis-spec-review` `trellis-code-review` `trellis-code-architecture-review`. If the strategy is `subagent + worktree`, pin the shared path to `./.claude/worktree` and require every code-development subagent to use it. If the strategy is TDD, record `trellis-tdd` as the reference flow. If the task has `架构审查:enabled` in `implement.md`, dispatch `trellis-improve-codebase-architecture` with `架构审查模式: guidance` before `task.py start`, then append its output to `design.md`.
192
+ Before `task.py start`, record the development strategy decisions in the task documents. Complex tasks should store them in `implement.md`: development mode (current session / subagent), branch vs worktree, default flow vs TDD, plus a single `A.` / `B.` / `C.` style strategy block that records the task-level selection for `trellis-spec-review`, `trellis-code-review`, `trellis-code-architecture-review`, `trellis-improve-codebase-architecture`, and `trellis-merge-review`. New tasks must stamp that block with `Review-gate contract: explicit-selection-v1`. Use `Optional review gates status: pending` only while the choice is still open; before `task.py start`, replace it with `Optional review gates status: configured` plus explicit `Enabled optional review gates:` and `Disabled optional review gates:` lists. If the user does not select any optional gate, still record all five in the disabled list and keep `trellis-check` fixed outside the optional set. Only tasks that entirely lack `Review-gate contract: explicit-selection-v1` count as legacy tasks and preserve the old behavior; if the marker exists but the configured enabled/disabled lists are missing, planning is incomplete and the task must not start. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; do not record or accept deep-review without that prerequisite gate. If the strategy is `subagent + worktree`, pin the shared path to `./.claude/worktree` and require every code-development subagent to use it. If the strategy is TDD, record `trellis-tdd` as the reference flow. Record whether to run pre-development architecture guidance in that same strategy block. If guidance is enabled, record `架构审查:enabled` in `implement.md`, dispatch `trellis-improve-codebase-architecture` with `架构审查模式: guidance` before `task.py start`, and append its output to `design.md`, but do NOT implicitly enable `trellis-improve-codebase-architecture` deep-review; that gate still requires explicit selection in the same task-level review-gate set.
193
193
  [/workflow-state:planning]
194
194
 
195
195
  <!-- Per-turn breadcrumb: shown throughout Phase 1 when codex.dispatch_mode=inline.
@@ -211,27 +211,28 @@ Inline mode: skip jsonl curation; Phase 2 reads artifacts/specs via `trellis-bef
211
211
  - 2.3 Rollback `[on demand]`
212
212
 
213
213
  <!-- Per-turn breadcrumb: shown while status='in_progress'.
214
- Scope: all of Phase 2 + Phase 3.1-3.4 (status stays 'in_progress' from
214
+ Scope: all of Phase 2 + Phase 3.1-3.5 (status stays 'in_progress' from
215
215
  task.py start until task.py archive; only archive flips it). The body
216
216
  therefore must cover every required step from implementation through
217
- archive / optional commit, including Phase 3.3 spec update and any
218
- Phase 3.4 commit guidance when a commit is actually needed. -->
217
+ merge / final verification, including Phase 3.3 spec update, any
218
+ Phase 3.4 commit guidance when a commit is actually needed, and Phase 3.5
219
+ build/test plus optional `trellis-merge-review` when enabled. -->
219
220
 
220
221
  Sub-agent dispatch protocol applies to all platforms and all sub-agents, including class-2 Codex/Copilot/Gemini/Qoder and `trellis-research`: every dispatch prompt starts with `Active task: <task path from task.py current>` before role-specific instructions.
221
222
 
222
223
  [workflow-state:in_progress]
223
- Flow: `trellis-implement` -> `trellis-check` -> `trellis-update-spec` -> archive or commit as needed -> `/trellis:finish-work`.
224
- Claude Code review-gate order: `trellis-spec-review` -> `trellis-code-review` -> `trellis-code-architecture-review`.
224
+ Flow: `trellis-implement` -> `trellis-check` -> `trellis-update-spec` -> archive or commit as needed -> merge if needed -> optional `trellis-merge-review` -> build/test -> `/trellis:finish-work`.
225
+ Claude Code optional review gates: if the task artifacts carry `Review-gate contract: explicit-selection-v1`, preserve the configured selection. Keep any enabled `trellis-spec-review`, `trellis-code-review`, and `trellis-code-architecture-review` in that order, run `trellis-improve-codebase-architecture` and `trellis-merge-review` only when the task strategy explicitly enables them, and keep `trellis-check` fixed outside this optional set. New tasks that use this contract must record `Optional review gates status: configured` plus explicit enabled/disabled lists; if the user picks none, record all five optional gates as disabled. Only tasks that entirely lack the contract marker count as legacy tasks and preserve the old behavior.
225
226
  Main-session default: dispatch implement/check sub-agents. Sub-agent self-exemption: if already running as `trellis-implement`, do NOT spawn another `trellis-implement` or `trellis-check`; if already running as `trellis-check`, do NOT spawn another `trellis-check` or `trellis-implement`. Dispatch is main session only.
226
227
  Dispatch prompt starts with `Active task: <task path from task.py current>`. Read context: jsonl entries -> `prd.md` -> `design.md if present` -> `implement.md if present`.
227
228
 
228
229
  Claude review gates are read-only gates. They report PASS / FAIL, blocking issues, and suggested next actions; they do not modify code directly.
229
230
  If a Claude review gate fails, the main agent repairs the code, then re-runs the same gate before advancing.
230
- For `trellis-spec-review`, `trellis-code-review`, `trellis-code-architecture-review`, and `trellis-merge-review`, count repeated failures per gate and per task. If the same gate blocks the same task more than 3 times in a row, the main agent must briefly report that status to the user, re-check whether the requirements have drifted, and ask whether to skip the current review gate.
231
+ For any enabled `trellis-spec-review`, `trellis-code-review`, `trellis-code-architecture-review`, and `trellis-merge-review`, count repeated failures per gate and per task. If the same gate blocks the same task more than 3 times in a row, the main agent must briefly report that status to the user, re-check whether the requirements have drifted, and ask whether to skip the current review gate.
231
232
  If the chosen strategy is `subagent + worktree`, all code-development subagents must use the same `./.claude/worktree` path.
232
233
  If the chosen strategy is TDD, align implementation and review expectations to `trellis-tdd`.
233
- If the task is architecture-sensitive or enters structural refactoring, route the architecture pass through `trellis-improve-codebase-architecture` before widening the change.
234
- If `implement.md` records `架构审查:enabled`, after `trellis-code-architecture-review` passes dispatch `trellis-improve-codebase-architecture` with `架构审查模式: deep-review` plus the changed file list from `git diff --name-only <base_branch>...HEAD`. On failure, report blocking issues and return to `trellis-implement`; re-run the full review loop until deep-review passes.
234
+ If the task strategy enables `trellis-improve-codebase-architecture` and the work is architecture-sensitive or enters structural refactoring, route the architecture pass through `trellis-improve-codebase-architecture` before widening the change.
235
+ If the task strategy enables `trellis-improve-codebase-architecture`, after `trellis-code-architecture-review` passes dispatch `trellis-improve-codebase-architecture` with `架构审查模式: deep-review` plus the changed file list from `git diff --name-only <base_branch>...HEAD`. On failure, report blocking issues and return to `trellis-implement`; re-run the full review loop until deep-review passes. `trellis-improve-codebase-architecture` deep-review requires `trellis-code-architecture-review`; if the task artifacts enable deep-review without that prerequisite gate, treat the strategy record as invalid and repair the task artifacts before continuing. Guidance recorded in `implement.md` is independent and does not by itself enable or block deep-review.
235
236
  If the user asks to archive the current task, do not block on commit; archive is allowed even when code is not committed.
236
237
  [/workflow-state:in_progress]
237
238
 
@@ -357,11 +358,16 @@ brainstorm skill 会指导你:
357
358
 
358
359
  在 Claude Code 路径进入实现前,把开发策略决策写入任务文档。
359
360
  - 轻量任务可以把这些记录写在 `prd.md`。
360
- - 复杂任务应把这些策略与 review-gate 计划一起写在 `implement.md`。
361
- - 需要记录:当前会话 vs subagent、当前分支 vs worktree、默认流程 vs TDD
361
+ - 复杂任务应把这些策略、task-local review-gate 选择,以及任何已启用 Claude review gate 的保序执行顺序写在 `implement.md`。
362
+ - 需要在同一个 `A.` / `B.` / `C.` 风格策略块里记录:当前会话 vs subagent、当前分支 vs worktree、默认流程 vs TDD、是否启用 pre-development architecture guidance,以及 `trellis-spec-review`、`trellis-code-review`、`trellis-code-architecture-review`、`trellis-improve-codebase-architecture`、`trellis-merge-review` 的任务级选择。
363
+ - 新任务必须在这个策略块里写入 `Review-gate contract: explicit-selection-v1`。
364
+ - 当选择尚未完成时,可以临时写 `Optional review gates status: pending`;在 `task.py start` 前必须改成 `Optional review gates status: configured`,并显式写出 `Enabled optional review gates:` / `Disabled optional review gates:`。
365
+ - 如果用户没有选中任何可选 gate,也要把这 5 个 gate 全部写进 disabled 列表;`trellis-check` 固定保留在这组之外。
366
+ - 只有完全缺少 `Review-gate contract: explicit-selection-v1` 标记的任务才视为 legacy task,并沿用旧行为;如果标记已存在但缺少 configured 的 enabled/disabled 列表,说明 planning 未完成,不能启动任务。
367
+ - `trellis-improve-codebase-architecture` deep-review 依赖 `trellis-code-architecture-review`;不要记录或接受只开 deep-review、不开号 architecture-review 的组合。
362
368
  - 如果选择 `subagent + worktree`,将 `./.claude/worktree` 固定为所有代码开发子代理共享的路径。
363
369
  - 如果选择 TDD,记录 `trellis-tdd` 作为参考流程,并让后续实现与评审都对齐到它。
364
- - 如果任务涉及架构治理、重构收敛或避免结构劣化,进入 `trellis-improve-codebase-architecture` 作为显式入口与自动调用入口。
370
+ - 如果启用了 pre-development architecture guidance,在 `task.py start` 之前运行 `trellis-improve-codebase-architecture` guidance 并把结果追加到 `design.md`;但这不会隐式开启 `trellis-improve-codebase-architecture` deep-review,后者仍需在 review-gate 选择里显式启用。
365
371
 
366
372
  每当需求变化,就回到此步骤并修订相关产物。
367
373
 
@@ -455,7 +461,7 @@ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<path>" "<reas
455
461
  python3 ./.trellis/scripts/task.py start <task-dir>
456
462
  ```
457
463
 
458
- 对于轻量任务,`prd.md` 可以足够。对于复杂任务,必须先存在并 review 完成 `prd.md`、`design.md` 和 `implement.md`。在 Claude Code 路径下,只有当任务文档已经记录开发策略决策后才能 start;复杂任务应把这些记录以及计划中的 review-gate 顺序写在 `implement.md` 中,轻量任务则可写在 `prd.md` 中。对于支持子代理的平台,当任务需要额外 spec / research 上下文时,应整理 jsonl manifest;仅含种子行的 manifest 也会被消费者容忍,但不算真正完成该步。
464
+ 对于轻量任务,`prd.md` 可以足够。对于复杂任务,必须先存在并 review 完成 `prd.md`、`design.md` 和 `implement.md`。在 Claude Code 路径下,只有当任务文档已经记录开发策略决策后才能 start;复杂任务应把这些记录、enabled/disabled review-gate 选择,以及任何已启用 Claude review gate 的保序执行顺序写在 `implement.md` 中,轻量任务则可写在 `prd.md` 中。对于支持子代理的平台,当任务需要额外 spec / research 上下文时,应整理 jsonl manifest;仅含种子行的 manifest 也会被消费者容忍,但不算真正完成该步。
459
465
 
460
466
  命令成功后,breadcrumb 会自动切换到 `[workflow-state:in_progress]`,后续 Phase 2 / 3 将按此继续。
461
467
 
@@ -543,14 +549,22 @@ Codex 子代理定义会自动处理上下文加载。The Codex sub-agent defini
543
549
 
544
550
  [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi]
545
551
 
546
- 对于 Claude Code 路径,实现完成后按顺序运行三个明确的 review gate
552
+ 对于 Claude Code 路径,实现完成后按任务策略运行显式选中的 review gate
553
+
554
+ - 若启用了 `trellis-spec-review`、`trellis-code-review`、`trellis-code-architecture-review`,保持这个顺序:
547
555
 
548
556
  1. `trellis-spec-review`
549
557
  2. `trellis-code-review`
550
558
  3. `trellis-code-architecture-review`
551
559
 
552
- Do not advance to the next gate until the previous gate passes. Each gate must review the code against `prd.md`, `design.md` if present, `implement.md` if present, and the relevant specs; on FAIL, the main agent fixes the blocking issues and re-runs the same gate before continuing.
553
- If the same gate blocks the same task more than 3 times in a row, the main agent must briefly report that status to the user, re-check whether the requirements have drifted, and ask whether to skip the current review gate.
560
+ - 如果任务文档带有 `Review-gate contract: explicit-selection-v1`,则严格按 `Optional review gates status: configured`、`Enabled optional review gates:`、`Disabled optional review gates:` 执行。
561
+ - `trellis-improve-codebase-architecture` `trellis-merge-review` 只有在任务策略显式启用时才运行。
562
+ - 对新任务,如果用户没有选择任何可选 gate,也要把这 5 个 gate 全部显式写进 disabled 列表;`trellis-check` 继续固定保留。
563
+ - 只有完全缺少 `Review-gate contract: explicit-selection-v1` 标记的任务才视为 legacy task,并沿用旧行为。
564
+ - 如果标记已存在但缺少 configured 的 enabled/disabled 列表,或出现只开 `trellis-improve-codebase-architecture` deep-review、不启用 `trellis-code-architecture-review` 的组合,则任务策略无效,必须先修复任务文档再继续。
565
+
566
+ Do not advance to the next gate until the previous gate passes. Each enabled gate must review the code against `prd.md`, `design.md` if present, `implement.md` if present, and the relevant specs; on FAIL, the main agent fixes the blocking issues and re-runs the same gate before continuing.
567
+ If the same enabled gate blocks the same task more than 3 times in a row, the main agent must briefly report that status to the user, re-check whether the requirements have drifted, and ask whether to skip the current review gate.
554
568
 
555
569
  如果当前平台还没有专用的 review-gate agent,则继续使用 `trellis-check` 作为兼容回退:
556
570
 
@@ -676,14 +690,14 @@ AI 会驱动一次按批次组织的提交,让 `/finish-work` 后续能在干
676
690
  - 如果开发策略是 `subagent + worktree` 或 feature branch,执行合并(`git merge` 到主分支,或通过 PR 合并)。
677
691
  - 如果策略是"当前分支直接开发"(无独立分支),跳过合并,直接进入第 2 步。
678
692
 
679
- 2. **dispatch `trellis-merge-review` agent**,检查合并结果:
693
+ 2. **如果任务策略启用了 `trellis-merge-review`,dispatch `trellis-merge-review` agent**,检查合并结果:
680
694
  - 无合并冲突残留
681
695
  - 无遗漏文件
682
696
  - 合并目标分支状态与 `prd.md` 验收标准对齐
683
697
  - `trellis-merge-review` 只负责只读审查与阻塞报告,不直接修复合并结果。
684
698
  - 如果 `trellis-merge-review` 返回 FAIL,由主 agent 修复问题后重新执行此步骤;若同一 gate 在同一任务中连续阻塞超过 3 次,由主 agent 升级给用户重新核对需求并询问是否跳过当前 review。
685
699
 
686
- 3. **编译 + 测试**:`trellis-merge-review` 返回 PASS 后,在合并目标分支上执行项目的编译命令与完整测试套件。
700
+ 3. **编译 + 测试**:如果启用了 `trellis-merge-review`,则在该 gate 返回 PASS 后执行;如果未启用,则在合并完成后直接执行项目的编译命令与完整测试套件。
687
701
  - 编译 + 测试全部通过,才允许进入 3.6。
688
702
  - 如有失败,修复后重新从第 2 步开始。
689
703
 
@@ -702,7 +716,7 @@ AI 会驱动一次按批次组织的提交,让 `/finish-work` 后续能在干
702
716
  直接编辑上面 Phase 1 / 2 / 3 中对应步骤的 walkthrough 内容。关键不变量:
703
717
  - 没有活动任务时,必须先做请求分流,并在创建 Trellis 任务前征得 task-creation consent。
704
718
  - planning 必须区分:轻量 PRD-only 任务 vs 需要在 start 前补齐 `prd.md`、`design.md`、`implement.md` 的复杂任务。
705
- - 每条 required 的执行路径都必须保留通往 Phase 3.4 commit 提醒的可达性,不能在 `/trellis:finish-work` 前丢失。
719
+ - 每条 required 的执行路径都必须保留通往 Phase 3.4 commit 提醒与 Phase 3.5 merge/final verification 的可达性,不能在 `/trellis:finish-work` 前丢失。
706
720
 
707
721
  所有 tag block 都位于上方 `## Phase Index` 区域、紧跟在各阶段摘要之后:
708
722
 
@@ -711,8 +725,8 @@ AI 会驱动一次按批次组织的提交,让 `/finish-work` 后续能在干
711
725
  | 无活动任务(Phase 1 之前) | `[workflow-state:no_task]`(位于 Phase Index ASCII art 之后) |
712
726
  | Phase 1 全阶段(任务已创建 → 准备进入实现) | `[workflow-state:planning]`(位于 Phase 1 摘要之后) |
713
727
  | Codex inline 的 Phase 1 | `[workflow-state:planning-inline]` |
714
- | Phase 2 + Phase 3.1–3.4(实现 + 检查 + 收尾) | `[workflow-state:in_progress]`(位于 Phase 2 摘要之后) |
715
- | Codex inline 的 Phase 2 + Phase 3.1–3.4 | `[workflow-state:in_progress-inline]` |
728
+ | Phase 2 + Phase 3.1–3.5(实现 + 检查 + 收尾) | `[workflow-state:in_progress]`(位于 Phase 2 摘要之后) |
729
+ | Codex inline 的 Phase 2 + Phase 3.1–3.5 | `[workflow-state:in_progress-inline]` |
716
730
  | Phase 3.5 之后(已 archive) | `[workflow-state:completed]`(位于 Phase 3 摘要之后;**currently DEAD**) |
717
731
 
718
732
  ### Changing the per-turn prompt text
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trellis-hgl",
3
- "version": "0.6.0-beta.24",
3
+ "version": "0.6.0-beta.26",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,7 +34,7 @@
34
34
  "inquirer": "^9.3.7",
35
35
  "undici": "^6.21.0",
36
36
  "zod": "^4.4.2",
37
- "trellis-hgl-core": "0.6.0-beta.24"
37
+ "trellis-hgl-core": "0.6.0-beta.26"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^9.18.0",