flower-trellis 0.3.1-beta.3 → 0.3.1-beta.4

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.
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: trellis-diff-brief
3
+ description: "按需读取当前 Trellis 任务与实际 git diff,生成对话内简短改动说明。用于用户想知道“这轮改了啥”、push 前看改动、check 前快速理解实现范围、sub-agent 实现后主对话需要复盘实际变更时。"
4
+ ---
5
+
6
+ # Trellis Diff Brief
7
+
8
+ 按需解释当前任务的实际改动。只读 task artifacts 和 git diff,在对话里输出摘要;不写文件、不修改代码、不做 check、不提交。
9
+
10
+ ## 核心规则
11
+
12
+ - 以真实 git 状态和 diff 为准,不凭记忆总结。
13
+ - 优先关联当前 Trellis 任务;没有当前任务时,也可以只基于 git diff 汇总。
14
+ - 区分任务相关改动、生成/快照/任务文档改动、未识别 dirty 文件。
15
+ - 不替代 `trellis-check` / `trellis-check-all`;只解释改动,不判断质量是否通过。
16
+ - 默认不输出大段 patch。必要时只读取关键文件的局部 diff。
17
+ - 不执行 `git add`、`git commit`、`git push`、`git merge`、格式化、测试或任何写操作。
18
+
19
+ ## 执行步骤
20
+
21
+ 1. 解析任务:
22
+ - 运行 `python3 ./.trellis/scripts/task.py current --source`。
23
+ - 若有当前任务,读取 `prd.md`、`design.md if present`、`implement.md if present`、`brief.md if present` 和 `task.json`。
24
+ 2. 收集父仓状态:
25
+ - `git status --short`
26
+ - `git diff --stat`
27
+ - `git diff --name-only`
28
+ - `git diff --cached --stat`
29
+ - `git diff --cached --name-only`
30
+ - `git log --oneline -5`
31
+ 3. 如 `task.json.base_branch` 存在,补充:
32
+ - `git log <base_branch>..HEAD --oneline`
33
+ - `git diff --stat <base_branch>...HEAD`
34
+ 4. 如父仓状态显示 submodule dirty,或 `.trellis/config.yaml` 中有独立 Git package,按同样方式读取对应 Git root 的状态。
35
+ 5. 只在需要解释行为时读取关键 patch:
36
+ - `git diff -- <file>`
37
+ - `git diff --cached -- <file>`
38
+ - 对大文件或大 diff 只抽取相关片段,不整段粘贴。
39
+
40
+ ## 输出格式
41
+
42
+ ```markdown
43
+ ## Diff Brief
44
+
45
+ ### 任务目标
46
+ - <来自 brief / prd 的一句话;没有任务时写“未绑定当前任务”>
47
+
48
+ ### 实际改动
49
+ - <按行为或模块归纳,不按文件机械罗列>
50
+
51
+ ### 关键文件
52
+ - `<path>`:<改了什么,为什么重要>
53
+
54
+ ### 生成 / 文档 / 快照
55
+ - <如无则写“无明显生成或快照改动”>
56
+
57
+ ### 未识别 dirty
58
+ - <不属于本轮任务或无法判断的 dirty 文件;如无则写“无”>
59
+
60
+ ### 验证状态
61
+ - 已看到:<从对话、任务文档或命令输出能确认的验证>
62
+ - 未确认:<没有证据的检查,不要假装已跑>
63
+
64
+ ### 注意点
65
+ - <风险、需要人工重点看的点;如无则写“无明显风险”>
66
+ ```
67
+
68
+ ## 分类口径
69
+
70
+ - “实际改动”写用户或 workflow 能感知的行为变化。
71
+ - “关键文件”只列会帮助用户理解改动的文件;不要把 `git diff --name-only` 原样全贴。
72
+ - “生成 / 文档 / 快照”用于区分 `enhancements/`、任务文档、manifest、锁文件、生成物等辅助改动。
73
+ - “未识别 dirty”必须如实列出,避免用户以为它们也属于本轮实现。
74
+ - “验证状态”只能写有证据的命令或检查;没跑就写未确认。
75
+
76
+ ## 不要做
77
+
78
+ - 不要创建 `changes.md` 或其它持久文件,除非用户明确要求。
79
+ - 不要修改 `brief.md`、三件套或 `task.json`。
80
+ - 不要把 diff brief 写成 check 报告。
81
+ - 不要为了简短省略会改变用户判断的范围、风险或未识别 dirty。
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: trellis-task-brief
3
+ description: "从最新 prd.md、design.md、implement.md 生成、刷新、校验并在对话中展示 Trellis 任务的 brief.md。用于 Phase 1.4 task.py start 前、planning review、用户要求任务 brief/交接摘要,或 in_progress 任务缺失/过期 brief.md 时。"
4
+ ---
5
+
6
+ # Trellis 任务交接摘要
7
+
8
+ 为当前任务生成或更新 `brief.md`,并把交接摘要展示在对话里。`brief.md` 是从三件套派生的交接视图,不替代 `prd.md`、`design.md`、`implement.md`。
9
+
10
+ ## 核心规则
11
+
12
+ - 每次运行都重新读取最新 `prd.md`、`design.md if present`、`implement.md if present`。
13
+ - 已存在的 `brief.md` 不能作为跳过同步的理由。
14
+ - `brief.md` 必须以三件套为准覆盖旧内容;无法从三件套追溯的旧内容不能保留为事实。
15
+ - 不要在 `brief.md` 里发明三件套没有表达的新需求。缺失字段写“未明确”,并提示应补充三件套。
16
+ - 写回 `brief.md` 后,必须在当前对话中展示 brief 正文;不要只给文件路径。
17
+ - Phase 1.4 前展示完整 brief,并等待用户确认 planning artifacts 和 brief 后,才运行 `task.py start`。
18
+ - `in_progress` 阶段发现缺失 brief 时,不自动生成未经 review 的 brief;先读取三件套并建议回补。只有用户明确要求当场回补并 review 时,才继续写回 `brief.md`。
19
+ - 不要机械限制 brief 或对话展示长度;信息完整优先,不能截掉会影响实现判断的范围、约束、风险或验收条件。
20
+
21
+ ## 执行步骤
22
+
23
+ 1. 确定任务目录:
24
+ - 用户给了任务路径时使用该路径。
25
+ - 否则运行 `python3 ./.trellis/scripts/task.py current --source`,读取 `Current task:`。
26
+ 2. 读取任务状态:
27
+ - 读取 `<task>/task.json` 的 `status`。
28
+ - 如果 `status` 是 `in_progress` 且 `<task>/brief.md` 不存在,并且用户没有明确要求“回补 / backfill / 重新生成并 review brief”,则只读取三件套、说明 brief 缺失、建议回补,不写 `brief.md`。
29
+ 3. 读取任务文件:
30
+ - 必读:`prd.md`。
31
+ - 存在则读:`design.md`、`implement.md`。
32
+ 4. 从最新三件套提取:
33
+ - `Goal`:任务目标一句话。
34
+ - `Scope`:本轮实现范围。
35
+ - `Non-Goals`:明确不做的范围。
36
+ - `Key Context`:关键文件、模块、入口、约束或风险。
37
+ - `Acceptance`:主要验收标准。
38
+ - `Next Step`:进入实现后的下一步。
39
+ 5. 写回 `<task>/brief.md`。如果文件已存在,仍用最新三件套派生内容覆盖旧正文。
40
+ 6. 在对话中展示 brief 正文,并说明来源文件。
41
+
42
+ ## 模板
43
+
44
+ ```markdown
45
+ # Brief — <任务标题>
46
+
47
+ ## Goal
48
+
49
+ - <一句话说明任务目标>
50
+
51
+ ## Scope
52
+
53
+ - <本轮要做的事情>
54
+
55
+ ## Non-Goals
56
+
57
+ - <本轮明确不做的事情>
58
+
59
+ ## Key Context
60
+
61
+ - <关键文件、模块、入口、约束或风险>
62
+
63
+ ## Acceptance
64
+
65
+ - <主要验收标准>
66
+
67
+ ## Next Step
68
+
69
+ - <进入实现后的下一步>
70
+ ```
71
+
72
+ ## 展示格式
73
+
74
+ Phase 1.4 review 前:
75
+
76
+ ```markdown
77
+ 任务交接摘要已更新:<task>/brief.md
78
+
79
+ <brief.md 正文>
80
+
81
+ 请确认 planning artifacts 和上述 brief;确认后才运行 `task.py start <task>`。
82
+ ```
83
+
84
+ 任务已经是 `in_progress` 时,如果 brief 存在,进入 implement route 前重述:
85
+
86
+ ```markdown
87
+ 当前任务 brief:<目标一句话>
88
+ 范围/约束:<不失真的压缩要点>
89
+ 验收:<不失真的压缩要点>
90
+ 完整摘要:<task>/brief.md
91
+
92
+ 下一步:进入 `trellis-route(implement)`。
93
+ ```
94
+
95
+ 压缩重述不能丢掉会影响实现判断的范围、约束、风险和验收条件。
96
+
97
+ ## 不要做
98
+
99
+ - 不要执行 `task.py start`;这仍由主 workflow 在用户确认后执行。
100
+ - 不要修改三件套来迎合 brief。
101
+ - 不要把 `brief.md` 当作第四件套扩写。
102
+ - 不要只因为 `brief.md` 已存在就跳过更新。
103
+ - 不要只输出“已写入 brief.md”而不展示正文。
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: trellis-diff-brief
3
+ description: "按需读取当前 Trellis 任务与实际 git diff,生成对话内简短改动说明。用于用户想知道“这轮改了啥”、push 前看改动、check 前快速理解实现范围、sub-agent 实现后主对话需要复盘实际变更时。"
4
+ ---
5
+
6
+ # Trellis Diff Brief
7
+
8
+ 按需解释当前任务的实际改动。只读 task artifacts 和 git diff,在对话里输出摘要;不写文件、不修改代码、不做 check、不提交。
9
+
10
+ ## 核心规则
11
+
12
+ - 以真实 git 状态和 diff 为准,不凭记忆总结。
13
+ - 优先关联当前 Trellis 任务;没有当前任务时,也可以只基于 git diff 汇总。
14
+ - 区分任务相关改动、生成/快照/任务文档改动、未识别 dirty 文件。
15
+ - 不替代 `trellis-check` / `trellis-check-all`;只解释改动,不判断质量是否通过。
16
+ - 默认不输出大段 patch。必要时只读取关键文件的局部 diff。
17
+ - 不执行 `git add`、`git commit`、`git push`、`git merge`、格式化、测试或任何写操作。
18
+
19
+ ## 执行步骤
20
+
21
+ 1. 解析任务:
22
+ - 运行 `python3 ./.trellis/scripts/task.py current --source`。
23
+ - 若有当前任务,读取 `prd.md`、`design.md if present`、`implement.md if present`、`brief.md if present` 和 `task.json`。
24
+ 2. 收集父仓状态:
25
+ - `git status --short`
26
+ - `git diff --stat`
27
+ - `git diff --name-only`
28
+ - `git diff --cached --stat`
29
+ - `git diff --cached --name-only`
30
+ - `git log --oneline -5`
31
+ 3. 如 `task.json.base_branch` 存在,补充:
32
+ - `git log <base_branch>..HEAD --oneline`
33
+ - `git diff --stat <base_branch>...HEAD`
34
+ 4. 如父仓状态显示 submodule dirty,或 `.trellis/config.yaml` 中有独立 Git package,按同样方式读取对应 Git root 的状态。
35
+ 5. 只在需要解释行为时读取关键 patch:
36
+ - `git diff -- <file>`
37
+ - `git diff --cached -- <file>`
38
+ - 对大文件或大 diff 只抽取相关片段,不整段粘贴。
39
+
40
+ ## 输出格式
41
+
42
+ ```markdown
43
+ ## Diff Brief
44
+
45
+ ### 任务目标
46
+ - <来自 brief / prd 的一句话;没有任务时写“未绑定当前任务”>
47
+
48
+ ### 实际改动
49
+ - <按行为或模块归纳,不按文件机械罗列>
50
+
51
+ ### 关键文件
52
+ - `<path>`:<改了什么,为什么重要>
53
+
54
+ ### 生成 / 文档 / 快照
55
+ - <如无则写“无明显生成或快照改动”>
56
+
57
+ ### 未识别 dirty
58
+ - <不属于本轮任务或无法判断的 dirty 文件;如无则写“无”>
59
+
60
+ ### 验证状态
61
+ - 已看到:<从对话、任务文档或命令输出能确认的验证>
62
+ - 未确认:<没有证据的检查,不要假装已跑>
63
+
64
+ ### 注意点
65
+ - <风险、需要人工重点看的点;如无则写“无明显风险”>
66
+ ```
67
+
68
+ ## 分类口径
69
+
70
+ - “实际改动”写用户或 workflow 能感知的行为变化。
71
+ - “关键文件”只列会帮助用户理解改动的文件;不要把 `git diff --name-only` 原样全贴。
72
+ - “生成 / 文档 / 快照”用于区分 `enhancements/`、任务文档、manifest、锁文件、生成物等辅助改动。
73
+ - “未识别 dirty”必须如实列出,避免用户以为它们也属于本轮实现。
74
+ - “验证状态”只能写有证据的命令或检查;没跑就写未确认。
75
+
76
+ ## 不要做
77
+
78
+ - 不要创建 `changes.md` 或其它持久文件,除非用户明确要求。
79
+ - 不要修改 `brief.md`、三件套或 `task.json`。
80
+ - 不要把 diff brief 写成 check 报告。
81
+ - 不要为了简短省略会改变用户判断的范围、风险或未识别 dirty。
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: trellis-task-brief
3
+ description: "从最新 prd.md、design.md、implement.md 生成、刷新、校验并在对话中展示 Trellis 任务的 brief.md。用于 Phase 1.4 task.py start 前、planning review、用户要求任务 brief/交接摘要,或 in_progress 任务缺失/过期 brief.md 时。"
4
+ ---
5
+
6
+ # Trellis 任务交接摘要
7
+
8
+ 为当前任务生成或更新 `brief.md`,并把交接摘要展示在对话里。`brief.md` 是从三件套派生的交接视图,不替代 `prd.md`、`design.md`、`implement.md`。
9
+
10
+ ## 核心规则
11
+
12
+ - 每次运行都重新读取最新 `prd.md`、`design.md if present`、`implement.md if present`。
13
+ - 已存在的 `brief.md` 不能作为跳过同步的理由。
14
+ - `brief.md` 必须以三件套为准覆盖旧内容;无法从三件套追溯的旧内容不能保留为事实。
15
+ - 不要在 `brief.md` 里发明三件套没有表达的新需求。缺失字段写“未明确”,并提示应补充三件套。
16
+ - 写回 `brief.md` 后,必须在当前对话中展示 brief 正文;不要只给文件路径。
17
+ - Phase 1.4 前展示完整 brief,并等待用户确认 planning artifacts 和 brief 后,才运行 `task.py start`。
18
+ - `in_progress` 阶段发现缺失 brief 时,不自动生成未经 review 的 brief;先读取三件套并建议回补。只有用户明确要求当场回补并 review 时,才继续写回 `brief.md`。
19
+ - 不要机械限制 brief 或对话展示长度;信息完整优先,不能截掉会影响实现判断的范围、约束、风险或验收条件。
20
+
21
+ ## 执行步骤
22
+
23
+ 1. 确定任务目录:
24
+ - 用户给了任务路径时使用该路径。
25
+ - 否则运行 `python3 ./.trellis/scripts/task.py current --source`,读取 `Current task:`。
26
+ 2. 读取任务状态:
27
+ - 读取 `<task>/task.json` 的 `status`。
28
+ - 如果 `status` 是 `in_progress` 且 `<task>/brief.md` 不存在,并且用户没有明确要求“回补 / backfill / 重新生成并 review brief”,则只读取三件套、说明 brief 缺失、建议回补,不写 `brief.md`。
29
+ 3. 读取任务文件:
30
+ - 必读:`prd.md`。
31
+ - 存在则读:`design.md`、`implement.md`。
32
+ 4. 从最新三件套提取:
33
+ - `Goal`:任务目标一句话。
34
+ - `Scope`:本轮实现范围。
35
+ - `Non-Goals`:明确不做的范围。
36
+ - `Key Context`:关键文件、模块、入口、约束或风险。
37
+ - `Acceptance`:主要验收标准。
38
+ - `Next Step`:进入实现后的下一步。
39
+ 5. 写回 `<task>/brief.md`。如果文件已存在,仍用最新三件套派生内容覆盖旧正文。
40
+ 6. 在对话中展示 brief 正文,并说明来源文件。
41
+
42
+ ## 模板
43
+
44
+ ```markdown
45
+ # Brief — <任务标题>
46
+
47
+ ## Goal
48
+
49
+ - <一句话说明任务目标>
50
+
51
+ ## Scope
52
+
53
+ - <本轮要做的事情>
54
+
55
+ ## Non-Goals
56
+
57
+ - <本轮明确不做的事情>
58
+
59
+ ## Key Context
60
+
61
+ - <关键文件、模块、入口、约束或风险>
62
+
63
+ ## Acceptance
64
+
65
+ - <主要验收标准>
66
+
67
+ ## Next Step
68
+
69
+ - <进入实现后的下一步>
70
+ ```
71
+
72
+ ## 展示格式
73
+
74
+ Phase 1.4 review 前:
75
+
76
+ ```markdown
77
+ 任务交接摘要已更新:<task>/brief.md
78
+
79
+ <brief.md 正文>
80
+
81
+ 请确认 planning artifacts 和上述 brief;确认后才运行 `task.py start <task>`。
82
+ ```
83
+
84
+ 任务已经是 `in_progress` 时,如果 brief 存在,进入 implement route 前重述:
85
+
86
+ ```markdown
87
+ 当前任务 brief:<目标一句话>
88
+ 范围/约束:<不失真的压缩要点>
89
+ 验收:<不失真的压缩要点>
90
+ 完整摘要:<task>/brief.md
91
+
92
+ 下一步:进入 `trellis-route(implement)`。
93
+ ```
94
+
95
+ 压缩重述不能丢掉会影响实现判断的范围、约束、风险和验收条件。
96
+
97
+ ## 不要做
98
+
99
+ - 不要执行 `task.py start`;这仍由主 workflow 在用户确认后执行。
100
+ - 不要修改三件套来迎合 brief。
101
+ - 不要把 `brief.md` 当作第四件套扩写。
102
+ - 不要只因为 `brief.md` 已存在就跳过更新。
103
+ - 不要只输出“已写入 brief.md”而不展示正文。
@@ -1,6 +1,7 @@
1
1
  <!-- BEGIN skill-garden workflow-state in_progress_inline v0.6 -->
2
2
  HIGHEST PRIORITY SKILL-GARDEN STATE GUARD (in_progress-inline):
3
3
  This state block is a breadcrumb; the top-level skill-garden hub is the source of truth for route details.
4
+ Before the first implement route, read `<task>/brief.md` if present and restate the task brief in chat. If it is missing, read the task artifacts and suggest backfilling brief; do not silently rely on memory.
4
5
  Inline workflow-state is not an inline route decision. At Phase 2.1/2.2, reuse a valid current-task `route_decision` for the target when it exists; otherwise run `trellis-route(implement|check)` or ask the numbered fallback choices and wait.
5
6
  A valid route decision must come from `trellis-route`, `numbered-fallback`, or `route-prefs` read by `trellis-route`; prose, compact/SessionStart summaries, `codex-mode`, empty prefs, and old single-value prefs are not enough.
6
7
  Reuse the valid current-task route through later implementation, repair, recheck, and final re-check; reroute only on explicit reselect/override/use-X-this-time/clear-default or when no valid target decision exists.
@@ -1,6 +1,7 @@
1
1
  <!-- BEGIN skill-garden workflow-state in_progress v0.6 -->
2
2
  HIGHEST PRIORITY SKILL-GARDEN STATE GUARD (in_progress):
3
3
  This state block is a breadcrumb; the top-level skill-garden hub is the source of truth for route details.
4
+ Before the first implement route, read `<task>/brief.md` if present and restate the task brief in chat. If it is missing, read the task artifacts and suggest backfilling brief; do not silently rely on memory.
4
5
  At Phase 2.1/2.2, use the valid current-task `route_decision` for the target when it exists; otherwise run `trellis-route(implement|check)` or ask the numbered fallback choices and wait.
5
6
  A valid route decision must come from `trellis-route`, `numbered-fallback`, or `route-prefs` read by `trellis-route`; prose, compact/SessionStart summaries, `codex-mode`, empty prefs, and old single-value prefs are not enough.
6
7
  Reuse the valid current-task route through later implementation, repair, recheck, and final re-check; reroute only on explicit reselect/override/use-X-this-time/clear-default or when no valid target decision exists.
@@ -0,0 +1,7 @@
1
+ <!-- BEGIN skill-garden workflow-state planning_inline v0.6 -->
2
+ HIGHEST PRIORITY SKILL-GARDEN STATE GUARD (planning-inline):
3
+ Planning is not implementation permission.
4
+ Complete prd.md + required context first.
5
+ Before `task.py start`, use `trellis-task-brief` to refresh `brief.md` from the latest task artifacts and display it in chat for review.
6
+ After status becomes in_progress, next action = `trellis-route(implement)`, not direct edits.
7
+ <!-- END skill-garden workflow-state planning_inline v0.6 -->
@@ -2,5 +2,6 @@
2
2
  HIGHEST PRIORITY SKILL-GARDEN STATE GUARD (planning):
3
3
  Planning is not implementation permission.
4
4
  Complete prd.md + required context first.
5
+ Before `task.py start`, use `trellis-task-brief` to refresh `brief.md` from the latest task artifacts and display it in chat for review.
5
6
  After status becomes in_progress, next action = `trellis-route(implement)`, not direct edits.
6
7
  <!-- END skill-garden workflow-state planning v0.6 -->
@@ -6,10 +6,18 @@
6
6
 
7
7
  **Priority**: This hub overrides any conflicting Trellis workflow, skill, or command text for the scoped behaviors below.
8
8
 
9
- **Scope**: Phase 2.1 implement routing, Phase 2.2 check/check-all routing, current-task route reuse, post-check stop, Phase 3.4 trellis-push, explicit Phase 3.5 finish-work bookkeeping, and push-progress recovery. State blocks should keep one short skill-garden sentinel; long-form rules live here.
9
+ **Scope**: Phase 1.4 task brief handoff, Phase 2.1 implement routing, Phase 2.2 check/check-all routing, current-task route reuse, post-check stop, Phase 3.4 trellis-push, explicit Phase 3.5 finish-work bookkeeping, and push-progress recovery. State blocks should keep one short skill-garden sentinel; long-form rules live here.
10
10
 
11
11
  **Mechanical rule**: use this hub as the source of truth. Do not add separate top-level skill-garden override sections or multiple skill-garden sentinels inside the same `workflow-state:*` block.
12
12
 
13
+ #### Task Brief Handoff
14
+
15
+ Before Phase 1.4 `task.py start`, use `trellis-task-brief` to refresh `<task>/brief.md` from latest task artifacts, display it in chat, and wait for user confirmation.
16
+
17
+ `brief.md` is derived; `prd.md` / `design.md` / `implement.md` remain authoritative.
18
+
19
+ Before the first implement route, restate existing `<task>/brief.md` in chat. If missing, read task artifacts and suggest backfilling brief; do not invent one from memory.
20
+
13
21
  #### Routing Gate
14
22
 
15
23
  A route decision is valid only when it is a current-task decision for the requested target (`implement` or `check`) and its structured `route_decision.source` is one of: `trellis-route`, `numbered-fallback`, or `route-prefs`.
@@ -1,7 +1,7 @@
1
1
  {
2
- "syncedAt": "2026-06-25T16:01:21.350Z",
2
+ "syncedAt": "2026-06-25T18:38:19.361Z",
3
3
  "syncedFrom": "vendor/skill-garden/.trellis",
4
- "sourceCommit": "97cb5d7e8bfda2c6504790e10cc2bf08e2f2d8fb",
4
+ "sourceCommit": "c00e63a517927bfbbca56b6b3223a27a1c9fbd01",
5
5
  "variants": {
6
6
  "old": {
7
7
  "claudeSkills": [],
@@ -77,6 +77,7 @@
77
77
  "claudeSkills": [
78
78
  "trellis-check-all",
79
79
  "trellis-create-command",
80
+ "trellis-diff-brief",
80
81
  "trellis-draw-uml",
81
82
  "trellis-extract-prd",
82
83
  "trellis-plan-version",
@@ -84,11 +85,13 @@
84
85
  "trellis-release",
85
86
  "trellis-route",
86
87
  "trellis-run-full-chain",
88
+ "trellis-task-brief",
87
89
  "trellis-verify-task"
88
90
  ],
89
91
  "agentsSkills": [
90
92
  "trellis-check-all",
91
93
  "trellis-create-command",
94
+ "trellis-diff-brief",
92
95
  "trellis-draw-uml",
93
96
  "trellis-extract-prd",
94
97
  "trellis-plan-version",
@@ -96,6 +99,7 @@
96
99
  "trellis-release",
97
100
  "trellis-route",
98
101
  "trellis-run-full-chain",
102
+ "trellis-task-brief",
99
103
  "trellis-verify-task"
100
104
  ],
101
105
  "commands": [],
@@ -106,6 +110,7 @@
106
110
  "in_progress-inline.md",
107
111
  "in_progress.md",
108
112
  "no_task.md",
113
+ "planning-inline.md",
109
114
  "planning.md"
110
115
  ],
111
116
  "skillOverrides": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flower-trellis",
3
- "version": "0.3.1-beta.3",
3
+ "version": "0.3.1-beta.4",
4
4
  "description": "一键安装/升级 Trellis 并自动融合 skill-garden 强化包(默认 Claude + agents)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,9 +13,9 @@ import {
13
13
  *
14
14
  * 纯 JS 移植 skill-garden install.sh 362-557 的内嵌 Python:
15
15
  * 1. 首次注入前备份 .bak(已存在则保留);
16
- * 2. 先清掉所有旧的 skill-garden 段(3 个 SECTION + 12 个 sentinel),保证可重复升级;
16
+ * 2. 先清掉所有旧的 skill-garden 段(3 个 SECTION + 13 个 sentinel),保证可重复升级;
17
17
  * 3. 把 hub(0.6)/ route(0.5)块注入到 `## Phase Index` 之后(找不到则顶部 fallback);
18
- * 4. 替换 4 个 workflow-state 块的内容(0.6 读 overrides 文件,0.5 用 legacy 常量);
18
+ * 4. 替换 5 个 workflow-state 块的内容(0.6 读 overrides 文件,0.5 用 legacy 常量);
19
19
  * 5. 处理后内容与原文件相同则不写盘(幂等)。
20
20
  *
21
21
  * Python re.DOTALL|re.MULTILINE → JS 用 `[\s\S]` 代替 `.`(免 s flag)+ `m` flag;
@@ -41,7 +41,7 @@ const SECTION_PATTERNS = [
41
41
  ];
42
42
  const SECTION_RES = SECTION_PATTERNS.map((p) => new RegExp(p, "gm"));
43
43
 
44
- // 12 个 sentinel 名(每个对应一对 BEGIN/END 注释块)
44
+ // 13 个 sentinel 名(每个对应一对 BEGIN/END 注释块)
45
45
  const SENTINEL_NAMES = [
46
46
  "skill-garden overrides",
47
47
  "skill-garden enhancement",
@@ -53,6 +53,7 @@ const SENTINEL_NAMES = [
53
53
  "skill-garden workflow-state in-progress-push-snapshot",
54
54
  "skill-garden workflow-state no_task",
55
55
  "skill-garden workflow-state planning",
56
+ "skill-garden workflow-state planning_inline",
56
57
  "skill-garden workflow-state in_progress",
57
58
  "skill-garden workflow-state in_progress_inline",
58
59
  ];
@@ -169,6 +170,7 @@ export function injectWorkflow(target, variantDir, variant) {
169
170
  ? [
170
171
  ["no_task", readStateBlock(stateDir, "no_task.md")],
171
172
  ["planning", readStateBlock(stateDir, "planning.md")],
173
+ ["planning-inline", readStateBlock(stateDir, "planning-inline.md")],
172
174
  ["in_progress", readStateBlock(stateDir, "in_progress.md")],
173
175
  ["in_progress-inline", readStateBlock(stateDir, "in_progress-inline.md")],
174
176
  ]