flower-trellis 0.1.0

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.
Files changed (94) hide show
  1. package/README.md +113 -0
  2. package/bin/flower-trellis.js +4 -0
  3. package/enhancements/0.5/.agents/skills/trellis-analyze-task/SKILL.md +142 -0
  4. package/enhancements/0.5/.agents/skills/trellis-check-all/SKILL.md +324 -0
  5. package/enhancements/0.5/.agents/skills/trellis-create-command/SKILL.md +258 -0
  6. package/enhancements/0.5/.agents/skills/trellis-create-prd/SKILL.md +197 -0
  7. package/enhancements/0.5/.agents/skills/trellis-draw-uml/SKILL.md +148 -0
  8. package/enhancements/0.5/.agents/skills/trellis-migrate-skill/SKILL.md +216 -0
  9. package/enhancements/0.5/.agents/skills/trellis-plan-version/SKILL.md +140 -0
  10. package/enhancements/0.5/.agents/skills/trellis-push/SKILL.md +240 -0
  11. package/enhancements/0.5/.agents/skills/trellis-re-implement/SKILL.md +166 -0
  12. package/enhancements/0.5/.agents/skills/trellis-route/SKILL.md +159 -0
  13. package/enhancements/0.5/.agents/skills/trellis-run-full-chain/SKILL.md +402 -0
  14. package/enhancements/0.5/.agents/skills/trellis-sync-prd/SKILL.md +150 -0
  15. package/enhancements/0.5/.agents/skills/trellis-verify-prd/SKILL.md +217 -0
  16. package/enhancements/0.5/.claude/skills/trellis-analyze-task/SKILL.md +142 -0
  17. package/enhancements/0.5/.claude/skills/trellis-check-all/SKILL.md +324 -0
  18. package/enhancements/0.5/.claude/skills/trellis-create-command/SKILL.md +258 -0
  19. package/enhancements/0.5/.claude/skills/trellis-create-prd/SKILL.md +197 -0
  20. package/enhancements/0.5/.claude/skills/trellis-draw-uml/SKILL.md +148 -0
  21. package/enhancements/0.5/.claude/skills/trellis-migrate-skill/SKILL.md +216 -0
  22. package/enhancements/0.5/.claude/skills/trellis-plan-version/SKILL.md +140 -0
  23. package/enhancements/0.5/.claude/skills/trellis-push/SKILL.md +240 -0
  24. package/enhancements/0.5/.claude/skills/trellis-re-implement/SKILL.md +166 -0
  25. package/enhancements/0.5/.claude/skills/trellis-route/SKILL.md +159 -0
  26. package/enhancements/0.5/.claude/skills/trellis-run-full-chain/SKILL.md +402 -0
  27. package/enhancements/0.5/.claude/skills/trellis-sync-prd/SKILL.md +150 -0
  28. package/enhancements/0.5/.claude/skills/trellis-verify-prd/SKILL.md +217 -0
  29. package/enhancements/0.5/overrides/trellis-route.md +52 -0
  30. package/enhancements/0.6/.agents/skills/trellis-check-all/SKILL.md +342 -0
  31. package/enhancements/0.6/.agents/skills/trellis-create-command/SKILL.md +293 -0
  32. package/enhancements/0.6/.agents/skills/trellis-draw-uml/SKILL.md +148 -0
  33. package/enhancements/0.6/.agents/skills/trellis-extract-prd/SKILL.md +197 -0
  34. package/enhancements/0.6/.agents/skills/trellis-plan-version/SKILL.md +140 -0
  35. package/enhancements/0.6/.agents/skills/trellis-push/SKILL.md +316 -0
  36. package/enhancements/0.6/.agents/skills/trellis-route/SKILL.md +159 -0
  37. package/enhancements/0.6/.agents/skills/trellis-run-full-chain/SKILL.md +402 -0
  38. package/enhancements/0.6/.agents/skills/trellis-verify-task/SKILL.md +360 -0
  39. package/enhancements/0.6/.claude/skills/trellis-check-all/SKILL.md +342 -0
  40. package/enhancements/0.6/.claude/skills/trellis-create-command/SKILL.md +293 -0
  41. package/enhancements/0.6/.claude/skills/trellis-draw-uml/SKILL.md +148 -0
  42. package/enhancements/0.6/.claude/skills/trellis-extract-prd/SKILL.md +197 -0
  43. package/enhancements/0.6/.claude/skills/trellis-plan-version/SKILL.md +140 -0
  44. package/enhancements/0.6/.claude/skills/trellis-push/SKILL.md +316 -0
  45. package/enhancements/0.6/.claude/skills/trellis-route/SKILL.md +159 -0
  46. package/enhancements/0.6/.claude/skills/trellis-run-full-chain/SKILL.md +402 -0
  47. package/enhancements/0.6/.claude/skills/trellis-verify-task/SKILL.md +360 -0
  48. package/enhancements/0.6/overrides/workflow-states/in_progress-inline.md +5 -0
  49. package/enhancements/0.6/overrides/workflow-states/in_progress.md +7 -0
  50. package/enhancements/0.6/overrides/workflow-states/no_task.md +6 -0
  51. package/enhancements/0.6/overrides/workflow-states/planning.md +6 -0
  52. package/enhancements/0.6/overrides/workflow.md +53 -0
  53. package/enhancements/MANIFEST.json +109 -0
  54. package/enhancements/old/.agents/skills/analyze-task/SKILL.md +143 -0
  55. package/enhancements/old/.agents/skills/check-all/SKILL.md +128 -0
  56. package/enhancements/old/.agents/skills/check-impl/SKILL.md +159 -0
  57. package/enhancements/old/.agents/skills/check-prd/SKILL.md +219 -0
  58. package/enhancements/old/.agents/skills/check-prd-impl/SKILL.md +190 -0
  59. package/enhancements/old/.agents/skills/create-prd/SKILL.md +154 -0
  60. package/enhancements/old/.agents/skills/draw-uml/SKILL.md +148 -0
  61. package/enhancements/old/.agents/skills/plan-version/SKILL.md +140 -0
  62. package/enhancements/old/.agents/skills/push/SKILL.md +191 -0
  63. package/enhancements/old/.agents/skills/re-implement/SKILL.md +166 -0
  64. package/enhancements/old/.agents/skills/sync-prd/SKILL.md +146 -0
  65. package/enhancements/old/.claude/commands/trellis/analyze-task.md +139 -0
  66. package/enhancements/old/.claude/commands/trellis/check-all.md +124 -0
  67. package/enhancements/old/.claude/commands/trellis/check-impl.md +154 -0
  68. package/enhancements/old/.claude/commands/trellis/check-prd-impl.md +186 -0
  69. package/enhancements/old/.claude/commands/trellis/check-prd.md +215 -0
  70. package/enhancements/old/.claude/commands/trellis/create-prd.md +150 -0
  71. package/enhancements/old/.claude/commands/trellis/draw-uml.md +144 -0
  72. package/enhancements/old/.claude/commands/trellis/plan-version.md +136 -0
  73. package/enhancements/old/.claude/commands/trellis/push.md +187 -0
  74. package/enhancements/old/.claude/commands/trellis/re-implement.md +162 -0
  75. package/enhancements/old/.claude/commands/trellis/sync-prd.md +142 -0
  76. package/package.json +39 -0
  77. package/src/cli.js +151 -0
  78. package/src/commands/init.js +66 -0
  79. package/src/commands/uninstall.js +85 -0
  80. package/src/commands/update.js +42 -0
  81. package/src/constants.js +50 -0
  82. package/src/lib/apply-enhancements.js +133 -0
  83. package/src/lib/banner.js +45 -0
  84. package/src/lib/codex-tweaks.js +112 -0
  85. package/src/lib/copy-skills.js +91 -0
  86. package/src/lib/fs-utils.js +60 -0
  87. package/src/lib/legacy-blocks.js +70 -0
  88. package/src/lib/manifest.js +32 -0
  89. package/src/lib/paths.js +16 -0
  90. package/src/lib/pick-platforms.js +57 -0
  91. package/src/lib/trellis-runner.js +190 -0
  92. package/src/lib/variant.js +40 -0
  93. package/src/lib/versions.js +30 -0
  94. package/src/lib/workflow-inject.js +193 -0
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: trellis-re-implement
3
+ description: "Re-run Implement Agent and Check Agent after PRD change; updates PRD first, then rebuilds."
4
+ ---
5
+ # 二次实现 - 需求变更后重新调用 Implement Agent
6
+
7
+ 当任务实施过程中出现需求漂移或变动时,重新调用 Implement Agent 实现更新后的需求。
8
+
9
+ ---
10
+
11
+ ## 使用场景
12
+
13
+ - 任务已通过 `trellis-continue` 完成了首次实现
14
+ - 实施过程中需求发生了变更或补充
15
+ - PRD 已更新,需要 Implement Agent 根据新需求重新实现
16
+ - 用户在 check 或测试阶段发现需要调整方向
17
+
18
+ ---
19
+
20
+ ## 前置条件
21
+
22
+ - 当前任务已激活(`.trellis/.current-task` 已设置)
23
+ - 任务目录下存在 `prd.md`(已更新为最新需求)
24
+ - 任务目录下存在 `implement.jsonl`(code-spec context 配置)
25
+
26
+ ---
27
+
28
+ ## 执行步骤
29
+
30
+ ### Step 1: 确认当前任务状态 `[AI]`
31
+
32
+ ```bash
33
+ python3 ./.trellis/scripts/get_context.py
34
+ ```
35
+
36
+ 确认:
37
+ - 当前任务存在且已激活
38
+ - 任务目录路径
39
+
40
+ 如果没有激活的任务,提示用户先通过 `trellis-continue` 开始任务。
41
+
42
+ ### Step 2: 了解变更内容 `[AI]`
43
+
44
+ 读取当前 PRD 和已有代码变更,理解上下文:
45
+
46
+ 1. 读取 `prd.md` 了解当前需求
47
+ 2. 运行 `git diff --name-only` 了解已有代码变更
48
+ 3. 询问用户:需求哪里变了?
49
+
50
+ ### Step 3: 更新 PRD `[AI]`
51
+
52
+ 根据用户描述的变更,更新 `prd.md`:
53
+
54
+ - 在 `## Requirements` 中标注新增/修改/删除的需求
55
+ - 更新 `## Acceptance Criteria`
56
+ - 在 `## Technical Notes` 中记录变更原因
57
+
58
+ **格式建议**(在 PRD 中追加):
59
+
60
+ ```markdown
61
+ ## 变更记录
62
+
63
+ ### 变更 1: <变更标题> (YYYY-MM-DD)
64
+ - **原需求**: <原来是什么>
65
+ - **新需求**: <现在要什么>
66
+ - **原因**: <为什么要改>
67
+ - **影响范围**: <哪些已实现的代码需要调整>
68
+ ```
69
+
70
+ ### Step 4: 评估是否需要更新 Context 配置 `[AI]`
71
+
72
+ 判断变更是否涉及新的模块或规范:
73
+
74
+ - 如果**不涉及新模块**:直接进入 Step 5
75
+ - 如果**涉及新模块**:先补充 context 配置
76
+
77
+ ```bash
78
+ # 需要时追加 code-spec context
79
+ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" implement "<新路径>" "<原因>"
80
+ python3 ./.trellis/scripts/task.py add-context "$TASK_DIR" check "<新路径>" "<原因>"
81
+ ```
82
+
83
+ ### Step 5: 调用 Implement Agent `[AI]`
84
+
85
+ 调用 Implement Agent 执行二次实现(code-spec context 由 hook 自动注入):
86
+
87
+ ```
88
+ Agent(
89
+ subagent_type: "trellis-implement",
90
+ prompt: "基于更新后的 prd.md 重新实现任务。
91
+
92
+ 注意:这是一次需求变更后的二次实现。
93
+ - 阅读 prd.md 中的「变更记录」章节,理解哪些需求发生了变化
94
+ - 保留已有的正确实现,只修改需要调整的部分
95
+ - 如果变更涉及已实现的逻辑,确保修改后不破坏原有功能
96
+ - 遵循所有已注入的 code-spec 规范
97
+ - 完成后报告修改/新增的文件列表",
98
+ model: "opus"
99
+ )
100
+ ```
101
+
102
+ ### Step 6: 调用 Check Agent `[AI]`
103
+
104
+ 实现完成后,调用 Check Agent 验证(code-spec context 由 hook 自动注入):
105
+
106
+ ```
107
+ Agent(
108
+ subagent_type: "trellis-check",
109
+ prompt: "检查所有代码变更是否符合 code-spec 规范。
110
+
111
+ 重点关注:
112
+ - 二次实现是否正确反映了 prd.md 中的变更需求
113
+ - 新旧代码之间是否存在不一致
114
+ - 修改是否引入了回归问题
115
+ - 直接修复发现的问题
116
+ - 确保 lint 和 typecheck 通过",
117
+ model: "opus"
118
+ )
119
+ ```
120
+
121
+ ### Step 7: 报告结果 `[AI]`
122
+
123
+ 输出二次实现的结果摘要:
124
+
125
+ ```markdown
126
+ ## 二次实现完成
127
+
128
+ ### 需求变更
129
+ - <变更点 1>
130
+ - <变更点 2>
131
+
132
+ ### 代码变更
133
+ - <修改的文件 1>: <做了什么>
134
+ - <修改的文件 2>: <做了什么>
135
+
136
+ ### 验证状态
137
+ - [ ] Lint 通过
138
+ - [ ] Typecheck 通过
139
+ - [ ] Check Agent 验证通过
140
+
141
+ ### 下一步
142
+ - 测试变更
143
+ - 确认无误后提交
144
+ - 运行 `trellis-finish-work` 检查清单
145
+ ```
146
+
147
+ ---
148
+
149
+ ## 与其他入口的区别
150
+
151
+ | 入口 | 形态 | 阶段 | 说明 |
152
+ |------|------|------|------|
153
+ | `trellis-continue` | 命令 | 首次实现 | 完整流程:Research → Context → Implement → Check |
154
+ | `trellis-re-implement` | skill(本技能) | 二次实现 | 需求变更后:更新 PRD → Implement → Check |
155
+ | `trellis-finish-work` | 命令 | 完成 | 提交前检查清单 |
156
+
157
+ ---
158
+
159
+ ## 核心原则
160
+
161
+ | 原则 | 说明 |
162
+ |------|------|
163
+ | **增量修改** | 保留正确的已有实现,只改变需要调整的部分 |
164
+ | **PRD 先行** | 先更新 PRD 再调 Implement Agent,确保上下文准确 |
165
+ | **Context 自动注入** | implement.jsonl + prd.md 由 hook 自动注入,无需手动传递 |
166
+ | **记录变更原因** | 在 PRD 变更记录中说明为什么改、改了什么 |
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: trellis-route
3
+ description: |
4
+ Route trellis-implement / trellis-check execution mode by asking the user to choose inline or subagent.
5
+ For check, additionally choose between trellis-check (lightweight) and trellis-check-all (comprehensive,
6
+ default pre-commit). Invoked from Phase 2.1 / 2.2 of the routing-aware workflow. Skip in non-trellis
7
+ projects (no .trellis/). Not for other subagents (trellis-research / trellis-debug).
8
+ ---
9
+
10
+ # Trellis 路由器:implement / check 执行模式选择
11
+
12
+ 主 agent 进入 Phase 2.1 / 2.2 时调用本 skill,询问用户选择执行模式(inline / subagent / check-all)后输出执行指令。implement 支持本会话偏好(4h 内连续 dispatch 不重复问)。
13
+
14
+ ---
15
+
16
+ ## Step 1.5: 检查会话偏好(仅 target=implement)
17
+
18
+ 读 `.trellis/.route-prefs.tmp`(4h mtime 内有效):
19
+
20
+ ```bash
21
+ PREF_FILE=".trellis/.route-prefs.tmp"
22
+ if [ -f "$PREF_FILE" ]; then
23
+ MTIME=$(stat -c %Y "$PREF_FILE" 2>/dev/null || stat -f %m "$PREF_FILE" 2>/dev/null)
24
+ if [ -n "$MTIME" ] && [ $(( $(date +%s) - MTIME )) -lt 14400 ]; then
25
+ cat "$PREF_FILE"
26
+ else
27
+ rm -f "$PREF_FILE"
28
+ fi
29
+ fi
30
+ ```
31
+
32
+ 输出 `inline` 或 `subagent` → **跳过 Step 2**,直接 Step 3 按记忆走,输出指令前加一行 `📌 来自本会话偏好(4h 内不再问;rm .trellis/.route-prefs.tmp 可重置)`。
33
+
34
+ target=check **跳过本步**,每次都询问。
35
+
36
+ ## Step 1.7: 上下文判断与推荐(无偏好命中时强制执行)
37
+
38
+ Step 1.5 未命中偏好时,主 agent 在调用 `AskUserQuestion` **之前**必须基于当前任务上下文做一次判断,**自己**挑出最合适的选项并写 1-2 句中文推荐理由。**SKILL.md 不硬编码"哪个是推荐项"也不限定判断维度——主 agent 用自己的判断力。**
39
+
40
+ 将推荐选项编号 + 1-2 句中文理由作为 Step 2 `question` 字段的**首句**,例如:
41
+
42
+ - implement: "任务只改 1 个 vue 文件且 PRD 清晰,建议 #1 inline。本次 implement 走哪种模式?"
43
+ - check: "改动跨前后端 + DB 且即将提交,建议 #1 check-all inline。本次 check 走哪种模式?"
44
+
45
+ option label 里**不写"(推荐)"后缀**——推荐落点通过 question 文案体现,用户能看到判断依据并否决。
46
+
47
+ ## Step 2: 询问用户
48
+
49
+ 优先调用 `AskUserQuestion`。**选项 label 前缀 1/2/3/4,方便用户直接打数字快速选**。`question` 字段首句必须是 Step 1.7 输出的推荐理由(1-2 句中文),**不可省略**。
50
+
51
+ 如果当前平台或模式没有 `AskUserQuestion` / `request_user_input`,不要选择 inline 或 subagent 继续。改用普通聊天消息原样呈现同一组编号选项,并停止等待用户回复;用户回复数字后再进入 Step 2.5 / 2.6 / 3。禁止写"request_user_input 当前不可用,所以记录为 inline/subagent 路径并继续"。
52
+
53
+ ### target = implement(4 选项)
54
+
55
+ - **question**: "[Step 1.7 推荐理由 1-2 句] 本次 implement 走哪种模式?"
56
+ - **header**: "Impl 模式"
57
+ - **options**:
58
+ 1. label "1. Inline", description "本次主 agent 直接执行,更快,共享上下文"
59
+ 2. label "2. Subagent", description "本次 dispatch 子 agent,隔离独立思考"
60
+ 3. label "3. Inline 本会话", description "本次 + 4h 内所有 implement 都 inline,不再问"
61
+ 4. label "4. Subagent 本会话", description "本次 + 4h 内所有 implement 都 dispatch 子 agent,不再问"
62
+
63
+ ### target = check(4 选项)
64
+
65
+ - **question**: "[Step 1.7 推荐理由 1-2 句] 本次 check 走哪种模式?"
66
+ - **header**: "Check 模式"
67
+ - **options**:
68
+ 1. label "1. Check-all inline", description "全面检查(PRD 对照 + 5 维 + spec),主 agent 执行"
69
+ 2. label "2. Check-all subagent", description "全面检查,dispatch 子 agent"
70
+ 3. label "3. Check inline", description "轻量检查(lint/type/spec),主 agent 执行"
71
+ 4. label "4. Check subagent", description "轻量检查,dispatch 子 agent"
72
+
73
+ ## Step 2.5: 读 subagent_skip_compile(仅 implement + subagent 时)
74
+
75
+ ```bash
76
+ if [ -f .trellis/config.yaml ]; then
77
+ grep -E "^\s*subagent_skip_compile:\s*true\b" .trellis/config.yaml > /dev/null && echo true || echo false
78
+ fi
79
+ ```
80
+
81
+ 为 `true` 时,Step 3 的 implement subagent 指令会附加"跳过编译"prompt 段。其他路径不读此配置。
82
+
83
+ ## Step 2.6: 持久化偏好(仅 implement 选项 3/4 时)
84
+
85
+ ```bash
86
+ mkdir -p .trellis
87
+ # 选项 3 (Inline 本会话)
88
+ echo "inline" > .trellis/.route-prefs.tmp
89
+
90
+ # 选项 4 (Subagent 本会话)
91
+ echo "subagent" > .trellis/.route-prefs.tmp
92
+ ```
93
+
94
+ 文件名 `.tmp` 后缀被 trellis `.gitignore` 默认 `*.tmp` 规则自动忽略,无需额外配置。选项 1/2 不写文件。
95
+
96
+ ## Step 3: 输出执行指令
97
+
98
+ 本 skill 不调用 Skill / Agent 工具,而是输出指令让主 agent 在下一轮执行。
99
+
100
+ ### 路由表
101
+
102
+ | 用户选择 | 主 agent 应执行 |
103
+ |---------|----------------|
104
+ | **inline implement**(选项 1 或 3,或来自偏好) | `Skill({skill: "trellis-before-dev"})` 加载 spec → 读 prd.md → 主线程实施 → 跑 lint/type-check |
105
+ | **subagent implement**(选项 2 或 4,或来自偏好) | `Agent({subagent_type: "trellis-implement"})`;若 `subagent_skip_compile=true`,dispatch prompt 附加"跳过 mvn install / npm run build / tsc 等耗时编译类检查(已由主 agent 验证或最终统一执行)" |
106
+ | **inline check**(选项 3) | `Skill({skill: "trellis-check"})` |
107
+ | **inline check-all**(选项 1) | `Skill({skill: "trellis-check-all"})` |
108
+ | **subagent check**(选项 4) | `Agent({subagent_type: "trellis-check"})` |
109
+ | **subagent check-all**(选项 2) | 优先 `Agent({subagent_type: "trellis-check-all"})`;不存在时 fallback `Agent({subagent_type: "trellis-check"})` + dispatch prompt 含 trellis-check-all 全流程要求(PRD 对照 → 5 维断言 → 跨层 → 委托 trellis-check 收尾) |
110
+
111
+ ### 输出模板
112
+
113
+ ```markdown
114
+ 路由决定:<inline/subagent> <implement | check | check-all>
115
+ [📌 来自本会话偏好(4h 内不再问;rm .trellis/.route-prefs.tmp 可重置)]
116
+
117
+ 接下来主 agent 应当:
118
+ - <路由表里对应的工具调用形式>
119
+ - [若 implement subagent 且 subagent_skip_compile=true:附加"跳过编译"prompt 段]
120
+
121
+ 不要:
122
+ - <要避免的工具调用>
123
+ ```
124
+
125
+ 中括号内行为条件性出现:仅命中本会话偏好时显示第二行;仅 implement subagent + skip_compile=true 时附加"跳过编译"段。
126
+
127
+ ---
128
+
129
+ ## 核心原则
130
+
131
+ 1. **决策与执行分离**:本 skill 只输出指令,下一轮由主 agent 调工具
132
+ 2. **严格执行用户选择**:路由结论一旦输出,主 agent 必须按指令执行,不可"出于谨慎"再换路径
133
+ 3. **无偏好命中必问,无自动 fallback**:Step 1.5 未命中偏好时,Step 2 询问是强制步骤;缺工具/权限时必须退化为普通聊天询问并等待用户回复,**不是**绕过询问或自行选择路径的合法理由
134
+ 4. **推荐由主 agent 上下文判断生成**(Step 1.7),不在 SKILL.md 里硬编码"哪个是推荐项"——避免静态偏好和当下任务实际不匹配
135
+ 5. **本会话偏好仅 implement 适用**:check 每次询问(避免累积偏好导致提交前漏跑 check-all)
136
+ 6. **config 联动仅 implement subagent 路径**:`subagent_skip_compile` 仅在 target=implement + 选 subagent 时读取并注入 prompt
137
+
138
+ ---
139
+
140
+ ## 反模式
141
+
142
+ - ❌ 本 skill 内部直接调用 `Agent` / `Skill` 工具(违反"决策与执行分离")
143
+ - ❌ 自行编造"工具/权限/平台不支持子代理"等理由跳过 Step 2 询问(**无偏好命中时必须询问用户**;交互工具不可用时用普通聊天询问并等待,不能绕过路由)
144
+ - ❌ `AskUserQuestion` / `request_user_input` 不可用时,记录为 inline 或 subagent 路径并继续
145
+ - ❌ Step 1.7 推荐理由空着、随便写一句敷衍、或不放进 question 文案(推荐必须基于当前任务的具体上下文,给用户可判断依据)
146
+ - ❌ check 端默认降级到轻量 trellis-check,特别是 pre-commit Phase 3.1(除非 Step 1.7 已显式说明"改动仅 lint/重命名级别"才走 check)
147
+ - ❌ check-all 选项被错误降级为普通 trellis-check(必须优先 trellis-check-all skill / subagent)
148
+ - ❌ 给 check 任何模式附加"跳过编译"指令(check 的核心职责就是跑编译/typecheck)
149
+ - ❌ 询问后忽视用户答案默认 subagent
150
+ - ❌ check 端读 `.route-prefs.tmp`(仅 implement 适用本会话偏好)
151
+ - ❌ implement 偏好命中后还询问用户(违反"4h 内不再问"承诺)
152
+
153
+ ---
154
+
155
+ ## 边界
156
+
157
+ - **非 trellis 项目**(无 `.trellis/`):输出"非 trellis 项目,跳过路由",不阻断流程
158
+ - **config.yaml 缺失或字段缺失**:视为 false,不附加跳过编译指令
159
+ - **.route-prefs.tmp 内容损坏**(非 inline/subagent):忽略偏好,删除文件,正常询问