flower-trellis 0.5.0-beta.7 → 0.5.1-beta.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.
- package/enhancements/0.6/.agents/skills/trellis-auto-loop/SKILL.md +7 -1
- package/enhancements/0.6/.agents/skills/trellis-push/SKILL.md +10 -0
- package/enhancements/0.6/.agents/skills/trellis-route/SKILL.md +4 -2
- package/enhancements/0.6/.claude/skills/trellis-auto-loop/SKILL.md +7 -1
- package/enhancements/0.6/.claude/skills/trellis-push/SKILL.md +10 -0
- package/enhancements/0.6/.claude/skills/trellis-route/SKILL.md +4 -2
- package/enhancements/0.6/overrides/bundles/intent-routing.json +1 -0
- package/enhancements/0.6/overrides/bundles/task-progress-recovery.json +7 -0
- package/enhancements/0.6/overrides/conflicts.json +228 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-before-dev/project-knowledge-discovery/content.md +5 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-before-dev/project-knowledge-discovery/patch.json +31 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-before-dev/project-knowledge-discovery/selector.md +1 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-authorization/content.md +2 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-continue/task-progress-recovery/content.md +21 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-continue/task-progress-recovery/patch.json +32 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-continue/task-progress-recovery/selector.md +1 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-finish-work/exact-bookkeeping/gemini-content.md +3 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-finish-work/exact-bookkeeping/gemini-selector.txt +1 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-finish-work/exact-bookkeeping/patch.json +34 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-start/no-task-routing/content.md +1 -1
- package/enhancements/0.6/overrides/patches/skills/trellis-update-spec/autonomous-evaluation/patch.json +22 -0
- package/enhancements/0.6/overrides/patches/workflow/hub/content.md +30 -163
- package/enhancements/0.6/overrides/patches/workflow/intent-routing/request-triage/content.md +11 -5
- package/enhancements/0.6/overrides/patches/workflow/state-no-task/content.md +2 -1
- package/enhancements/0.6/overrides/patches/workflow/states-in-progress/common-content.md +2 -1
- package/enhancements/0.6/overrides/patches/workflow/states-planning/common-content.md +1 -0
- package/enhancements/0.6/scripts/auto_loop.py +254 -5
- package/enhancements/0.6/scripts/task_progress.py +20 -4
- package/enhancements/MANIFEST.json +11 -2
- package/package.json +3 -3
- package/src/commands/uninstall.js +10 -8
- package/src/constants.js +25 -0
- package/src/lib/apply-enhancements.js +9 -7
- package/src/lib/copy-scripts.js +3 -0
- package/src/lib/copy-skills.js +27 -36
- package/src/lib/enhancement-catalog.js +3 -3
|
@@ -117,7 +117,9 @@ python3 ./.trellis/scripts/auto_loop.py next
|
|
|
117
117
|
| runner action | 主 agent 动作 | 成功 record |
|
|
118
118
|
| --- | --- | --- |
|
|
119
119
|
| `review_open_questions` | 结合 PRD 语义判断历史裸列表是已解决、仍阻塞或无法确定 | 已解决:`record --action review_open_questions --result ok --review-verdict resolved --summary "<摘要>"`;仍阻塞/无法确定:使用 `--result blocked --review-verdict blocking|ambiguous` |
|
|
120
|
-
| `
|
|
120
|
+
| `review_planning_readiness` | 按 `trellis-brainstorm` Quality Bar 复核验收标准可测试、范围明确、关键决策收敛、仓库问题已研究 | ready:`record --action review_planning_readiness --result ok --readiness-verdict ready --summary "<摘要>"`;仍阻塞/无法确定:使用 `--result blocked --readiness-verdict blocking|ambiguous` |
|
|
121
|
+
| `refresh_brief` | 使用 `trellis-task-brief` 刷新并展示 brief;这一步不代表用户确认 | `record --action refresh_brief --result ok` |
|
|
122
|
+
| `confirm_brief` | 再次展示 action 对应的完整 brief,并等待用户显式确认 | 收到确认后:`record --action confirm_brief --result ok --summary "<确认摘要>"`;未确认时停止,不得 record |
|
|
121
123
|
| `start_task` | 执行返回的 `task.py start ...` 命令 | `record --action start_task --result ok` |
|
|
122
124
|
| `run_implement` | 进入 Phase 2.1,先用 `trellis-route(target=implement)` 决定 inline/subagent,再实现 | `record --action run_implement --result ok --route-mode <mode> --route-source <source>` |
|
|
123
125
|
| `run_check_all` | 进入 Phase 2.2,先用 `trellis-route(target=check)`,按 action 的 requested depth 执行 Check-All | `record --action run_check_all --result ok --route-mode <mode> --route-source <source> --effective-check-depth <light|full> --check-depth-reason "<摘要>"` |
|
|
@@ -155,6 +157,10 @@ runner 会按 3 轮 fix/recheck 预算决定继续、跳过当前任务或结束
|
|
|
155
157
|
|
|
156
158
|
`review_open_questions` 必须只依据 action 返回的 `questions` 和当前 PRD 判断。runner 会把结果绑定到 action 发出时的 PRD SHA-256;PRD 在复核期间发生变化时,record 会返回 `stale-open-questions-review`,此时重新运行 `next`,不得复用旧判断。`ambiguous` 必须保守阻塞,交由用户或 planning 收敛。
|
|
157
159
|
|
|
160
|
+
`review_planning_readiness` 必须读取 action 指向的当前 planning artifacts,并按 Brainstorm Gate 的语义质量线复核,不能把文件存在、章节存在或 route context 已 curated 当作 ready。runner 会把结论绑定到 `prd.md`、存在时的 `design.md`/`implement.md` 内容;任一文件变化后旧结论失效。
|
|
161
|
+
|
|
162
|
+
`refresh_brief` 成功后必须立即 `next`。runner 随后返回 `confirm_brief`,主 agent 要展示当前完整 brief 并停止等待用户;启动 auto-loop、选择 route 或生成 brief 都不构成确认。`confirm_brief` 只在收到明确确认后回写,且确认绑定 planning artifacts 与 brief 内容;任一文件变化后必须重新展示并确认。
|
|
163
|
+
|
|
158
164
|
`record` 默认只返回当前 item 的 `task`、`item_status`、`current_step`、`commit` 和紧凑 `summary`;只有排查状态漂移时才加 `--verbose` 查看完整 `item`。
|
|
159
165
|
|
|
160
166
|
route action 成功回写时必须带上 `trellis-route` 输出里的真实 `mode` / `source`,例如
|
|
@@ -28,6 +28,16 @@ description: "按确认的精确文件范围提交普通变更或完成已就绪
|
|
|
28
28
|
|
|
29
29
|
内部 `commit-only` 不接受临时扩大文件范围、远端推送或其他附加动作。安全条件不满足时返回失败,由调用方决定后续状态。
|
|
30
30
|
|
|
31
|
+
## Step 0:交互式完成链门禁
|
|
32
|
+
|
|
33
|
+
除 auto-loop 内部 `commit-only` 外,任何普通 push 或用户 `commit-only` 在读取 Git 提交计划前,都必须确认当前工作内容已经通过 Check-All,且该结论之后存在当前有效的 `spec_update_result`:
|
|
34
|
+
|
|
35
|
+
- `status=no-op|written`:继续本 skill 的 Git 预检与计划。
|
|
36
|
+
- 缺失,或实际 diff、Check-All 结论、用户 spec 意图已变化:先加载 `trellis-update-spec`,只有新的 `no-op|written` 才能回到本 skill。
|
|
37
|
+
- `status=needs-review`:停止,不生成提交计划。
|
|
38
|
+
|
|
39
|
+
用户直接说 push/提交不构成跳过 Phase 3.3 的授权。auto-loop 内部 `commit-only` 已由 runner 的 `run_spec_update -> commit_only` 状态机和预授权保证顺序,因此不得重复进入本门禁。
|
|
40
|
+
|
|
31
41
|
## Step 1:发现仓库与任务
|
|
32
42
|
|
|
33
43
|
候选仓库包括:
|
|
@@ -177,11 +177,13 @@ helper 写入规则:保留另一个 target 的 runtime 决策和偏好;覆
|
|
|
177
177
|
|
|
178
178
|
| 路由决定 | 主 agent 应执行 |
|
|
179
179
|
|---------|----------------|
|
|
180
|
-
| `inline implement` | `Skill({skill: "trellis-before-dev"})` 加载 spec → 读任务文档 → 主线程实施 → 跑必要验证 |
|
|
181
|
-
| `subagent implement` | `Agent({subagent_type: "trellis-implement"})`;若 `subagent_skip_compile=true`,dispatch prompt 附加“跳过 mvn install / npm run build / tsc 等耗时编译类检查(已由主 agent
|
|
180
|
+
| `inline implement` | `Skill({skill: "trellis-before-dev"})` 加载 spec → 读任务文档 → 主线程实施 → 跑必要验证 → 回到 Phase 2.1 completion contract 解析 Pre-Check,不得在局部验证后直接结束 |
|
|
181
|
+
| `subagent implement` | `Agent({subagent_type: "trellis-implement"})`;若 `subagent_skip_compile=true`,dispatch prompt 附加“跳过 mvn install / npm run build / tsc 等耗时编译类检查(已由主 agent 验证或最终统一执行)”;主 agent 收到结果后回到 Phase 2.1 completion contract 解析 Pre-Check |
|
|
182
182
|
| `inline check-all` | `Skill({skill: "trellis-check-all"})` |
|
|
183
183
|
| `subagent check-all` | 优先使用明确 audit-only 的 `trellis-check-all` agent;不存在时使用平台通用 subagent,并用下方 dispatch 契约执行本地 `trellis-check-all`。禁止 fallback 到会直接修改工作区的 `trellis-check` agent;无兼容 subagent 时停止并请用户改选 inline |
|
|
184
184
|
|
|
185
|
+
implement 路由只决定执行位置,不拥有实现后的停止策略。无论 inline 或 subagent,focused validation 完成后都必须返回 workflow Phase 2.1 的 completion contract;由该 owner 处理 auto-loop、用户显式继续/暂缓、已有 hold 和默认立即 Check-All 的优先级。
|
|
186
|
+
|
|
185
187
|
### Subagent Check-All Dispatch 契约
|
|
186
188
|
|
|
187
189
|
使用专用或通用 subagent 时,dispatch prompt 第一行必须是当前任务路径,并包含以下完整边界:
|
|
@@ -117,7 +117,9 @@ python3 ./.trellis/scripts/auto_loop.py next
|
|
|
117
117
|
| runner action | 主 agent 动作 | 成功 record |
|
|
118
118
|
| --- | --- | --- |
|
|
119
119
|
| `review_open_questions` | 结合 PRD 语义判断历史裸列表是已解决、仍阻塞或无法确定 | 已解决:`record --action review_open_questions --result ok --review-verdict resolved --summary "<摘要>"`;仍阻塞/无法确定:使用 `--result blocked --review-verdict blocking|ambiguous` |
|
|
120
|
-
| `
|
|
120
|
+
| `review_planning_readiness` | 按 `trellis-brainstorm` Quality Bar 复核验收标准可测试、范围明确、关键决策收敛、仓库问题已研究 | ready:`record --action review_planning_readiness --result ok --readiness-verdict ready --summary "<摘要>"`;仍阻塞/无法确定:使用 `--result blocked --readiness-verdict blocking|ambiguous` |
|
|
121
|
+
| `refresh_brief` | 使用 `trellis-task-brief` 刷新并展示 brief;这一步不代表用户确认 | `record --action refresh_brief --result ok` |
|
|
122
|
+
| `confirm_brief` | 再次展示 action 对应的完整 brief,并等待用户显式确认 | 收到确认后:`record --action confirm_brief --result ok --summary "<确认摘要>"`;未确认时停止,不得 record |
|
|
121
123
|
| `start_task` | 执行返回的 `task.py start ...` 命令 | `record --action start_task --result ok` |
|
|
122
124
|
| `run_implement` | 进入 Phase 2.1,先用 `trellis-route(target=implement)` 决定 inline/subagent,再实现 | `record --action run_implement --result ok --route-mode <mode> --route-source <source>` |
|
|
123
125
|
| `run_check_all` | 进入 Phase 2.2,先用 `trellis-route(target=check)`,按 action 的 requested depth 执行 Check-All | `record --action run_check_all --result ok --route-mode <mode> --route-source <source> --effective-check-depth <light|full> --check-depth-reason "<摘要>"` |
|
|
@@ -155,6 +157,10 @@ runner 会按 3 轮 fix/recheck 预算决定继续、跳过当前任务或结束
|
|
|
155
157
|
|
|
156
158
|
`review_open_questions` 必须只依据 action 返回的 `questions` 和当前 PRD 判断。runner 会把结果绑定到 action 发出时的 PRD SHA-256;PRD 在复核期间发生变化时,record 会返回 `stale-open-questions-review`,此时重新运行 `next`,不得复用旧判断。`ambiguous` 必须保守阻塞,交由用户或 planning 收敛。
|
|
157
159
|
|
|
160
|
+
`review_planning_readiness` 必须读取 action 指向的当前 planning artifacts,并按 Brainstorm Gate 的语义质量线复核,不能把文件存在、章节存在或 route context 已 curated 当作 ready。runner 会把结论绑定到 `prd.md`、存在时的 `design.md`/`implement.md` 内容;任一文件变化后旧结论失效。
|
|
161
|
+
|
|
162
|
+
`refresh_brief` 成功后必须立即 `next`。runner 随后返回 `confirm_brief`,主 agent 要展示当前完整 brief 并停止等待用户;启动 auto-loop、选择 route 或生成 brief 都不构成确认。`confirm_brief` 只在收到明确确认后回写,且确认绑定 planning artifacts 与 brief 内容;任一文件变化后必须重新展示并确认。
|
|
163
|
+
|
|
158
164
|
`record` 默认只返回当前 item 的 `task`、`item_status`、`current_step`、`commit` 和紧凑 `summary`;只有排查状态漂移时才加 `--verbose` 查看完整 `item`。
|
|
159
165
|
|
|
160
166
|
route action 成功回写时必须带上 `trellis-route` 输出里的真实 `mode` / `source`,例如
|
|
@@ -28,6 +28,16 @@ description: "按确认的精确文件范围提交普通变更或完成已就绪
|
|
|
28
28
|
|
|
29
29
|
内部 `commit-only` 不接受临时扩大文件范围、远端推送或其他附加动作。安全条件不满足时返回失败,由调用方决定后续状态。
|
|
30
30
|
|
|
31
|
+
## Step 0:交互式完成链门禁
|
|
32
|
+
|
|
33
|
+
除 auto-loop 内部 `commit-only` 外,任何普通 push 或用户 `commit-only` 在读取 Git 提交计划前,都必须确认当前工作内容已经通过 Check-All,且该结论之后存在当前有效的 `spec_update_result`:
|
|
34
|
+
|
|
35
|
+
- `status=no-op|written`:继续本 skill 的 Git 预检与计划。
|
|
36
|
+
- 缺失,或实际 diff、Check-All 结论、用户 spec 意图已变化:先加载 `trellis-update-spec`,只有新的 `no-op|written` 才能回到本 skill。
|
|
37
|
+
- `status=needs-review`:停止,不生成提交计划。
|
|
38
|
+
|
|
39
|
+
用户直接说 push/提交不构成跳过 Phase 3.3 的授权。auto-loop 内部 `commit-only` 已由 runner 的 `run_spec_update -> commit_only` 状态机和预授权保证顺序,因此不得重复进入本门禁。
|
|
40
|
+
|
|
31
41
|
## Step 1:发现仓库与任务
|
|
32
42
|
|
|
33
43
|
候选仓库包括:
|
|
@@ -177,11 +177,13 @@ helper 写入规则:保留另一个 target 的 runtime 决策和偏好;覆
|
|
|
177
177
|
|
|
178
178
|
| 路由决定 | 主 agent 应执行 |
|
|
179
179
|
|---------|----------------|
|
|
180
|
-
| `inline implement` | `Skill({skill: "trellis-before-dev"})` 加载 spec → 读任务文档 → 主线程实施 → 跑必要验证 |
|
|
181
|
-
| `subagent implement` | `Agent({subagent_type: "trellis-implement"})`;若 `subagent_skip_compile=true`,dispatch prompt 附加“跳过 mvn install / npm run build / tsc 等耗时编译类检查(已由主 agent
|
|
180
|
+
| `inline implement` | `Skill({skill: "trellis-before-dev"})` 加载 spec → 读任务文档 → 主线程实施 → 跑必要验证 → 回到 Phase 2.1 completion contract 解析 Pre-Check,不得在局部验证后直接结束 |
|
|
181
|
+
| `subagent implement` | `Agent({subagent_type: "trellis-implement"})`;若 `subagent_skip_compile=true`,dispatch prompt 附加“跳过 mvn install / npm run build / tsc 等耗时编译类检查(已由主 agent 验证或最终统一执行)”;主 agent 收到结果后回到 Phase 2.1 completion contract 解析 Pre-Check |
|
|
182
182
|
| `inline check-all` | `Skill({skill: "trellis-check-all"})` |
|
|
183
183
|
| `subagent check-all` | 优先使用明确 audit-only 的 `trellis-check-all` agent;不存在时使用平台通用 subagent,并用下方 dispatch 契约执行本地 `trellis-check-all`。禁止 fallback 到会直接修改工作区的 `trellis-check` agent;无兼容 subagent 时停止并请用户改选 inline |
|
|
184
184
|
|
|
185
|
+
implement 路由只决定执行位置,不拥有实现后的停止策略。无论 inline 或 subagent,focused validation 完成后都必须返回 workflow Phase 2.1 的 completion contract;由该 owner 处理 auto-loop、用户显式继续/暂缓、已有 hold 和默认立即 Check-All 的优先级。
|
|
186
|
+
|
|
185
187
|
### Subagent Check-All Dispatch 契约
|
|
186
188
|
|
|
187
189
|
使用专用或通用 subagent 时,dispatch prompt 第一行必须是当前任务路径,并包含以下完整边界:
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"hooks/claude-session-start/missing-task-routing",
|
|
27
27
|
"hooks/session-start/pre-check-hold",
|
|
28
28
|
"skills/trellis-start/no-task-routing",
|
|
29
|
+
"skills/trellis-before-dev/project-knowledge-discovery",
|
|
29
30
|
"skills/trellis-brainstorm/planning-authorization",
|
|
30
31
|
"skills/trellis-brainstorm/auto-task-create",
|
|
31
32
|
"skills/trellis-brainstorm/planning-handoff",
|
|
@@ -321,6 +321,234 @@
|
|
|
321
321
|
"owner": "workflow-phase-ownership",
|
|
322
322
|
"reason": "冲突正文应被结构化替换,Hub 不再通过优先级文字压制下层协议。"
|
|
323
323
|
},
|
|
324
|
+
{
|
|
325
|
+
"id": "workflow-hub-required-owner-index",
|
|
326
|
+
"severity": "error",
|
|
327
|
+
"target": ".trellis/workflow.md",
|
|
328
|
+
"whenOperations": [
|
|
329
|
+
"workflow-hub"
|
|
330
|
+
],
|
|
331
|
+
"assertion": {
|
|
332
|
+
"type": "required-literal",
|
|
333
|
+
"values": [
|
|
334
|
+
"<!-- BEGIN skill-garden patch workflow-hub v0.6 -->\n### Skill-Garden Workflow Owner Index",
|
|
335
|
+
"| Request Intent Routing | `Request Triage` + `trellis-start` | `task_intent.py` |",
|
|
336
|
+
"| Project Knowledge Discovery | `Request Triage` | `spec_router.py` |",
|
|
337
|
+
"| Active Task Scope Guard | `Request Triage` | `task_intent.py` scope safety |",
|
|
338
|
+
"| Routing Gate | Phase 2 + `trellis-route` | `route_state.py` |",
|
|
339
|
+
"| Auto-Loop Return Gate | `trellis-check-all` + `trellis-auto-loop` | `auto_loop.py record/next` |",
|
|
340
|
+
"| Code Commit Confirmation Gate | Phase 3.4 + `trellis-push` | exact Git safety checks |",
|
|
341
|
+
"| Bookkeeping Auto-commit Scope | `trellis-finish-work` | `safe_commit.py` + archive/journal commands |",
|
|
342
|
+
"| Task Progress Recovery | `trellis-continue` | `task_progress.py` |",
|
|
343
|
+
"A validated auto-loop result returns through matching `record` + `next` before the interactive post-check stop applies.",
|
|
344
|
+
"Interactive completion proceeds Check-All -> `trellis-update-spec` -> `trellis-push`; `trellis-finish-work` runs only after Phase 3.4"
|
|
345
|
+
]
|
|
346
|
+
},
|
|
347
|
+
"owner": "workflow-hub",
|
|
348
|
+
"reason": "Hub 只允许保留 13 项 owner 索引和必要跨阶段顺序,不再保存各 Gate 的完整协议。"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"id": "workflow-hub-no-full-gate-sections",
|
|
352
|
+
"severity": "error",
|
|
353
|
+
"target": ".trellis/workflow.md",
|
|
354
|
+
"whenOperations": [
|
|
355
|
+
"workflow-hub"
|
|
356
|
+
],
|
|
357
|
+
"assertion": {
|
|
358
|
+
"type": "absent-literal",
|
|
359
|
+
"values": [
|
|
360
|
+
"#### Request Intent Routing",
|
|
361
|
+
"#### Brainstorm Gate",
|
|
362
|
+
"#### Task Brief Handoff",
|
|
363
|
+
"#### Project Knowledge Discovery",
|
|
364
|
+
"#### Flower Update Confirmation",
|
|
365
|
+
"#### Active Task Scope Guard",
|
|
366
|
+
"#### Routing Gate",
|
|
367
|
+
"#### Auto-Loop Return Gate",
|
|
368
|
+
"#### Interactive Post-Check Stop Gate",
|
|
369
|
+
"#### Code Commit Confirmation Gate",
|
|
370
|
+
"#### Auto-loop Commit-only Preauthorization",
|
|
371
|
+
"#### Bookkeeping Auto-commit Scope",
|
|
372
|
+
"#### Task Progress Recovery"
|
|
373
|
+
]
|
|
374
|
+
},
|
|
375
|
+
"owner": "workflow-hub",
|
|
376
|
+
"reason": "旧 Hub 的 13 个完整 Gate section 必须被 owner index 原位替换,禁止新旧正文双轨共存。"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"id": "workflow-hub-single-owner-marker",
|
|
380
|
+
"severity": "error",
|
|
381
|
+
"target": ".trellis/workflow.md",
|
|
382
|
+
"whenOperations": [
|
|
383
|
+
"workflow-hub"
|
|
384
|
+
],
|
|
385
|
+
"assertion": {
|
|
386
|
+
"type": "max-occurrences",
|
|
387
|
+
"value": "<!-- BEGIN skill-garden patch workflow-hub v0.6 -->",
|
|
388
|
+
"max": 1
|
|
389
|
+
},
|
|
390
|
+
"owner": "workflow-hub",
|
|
391
|
+
"reason": "Hub operation 必须原位升级,不能通过新 marker 叠加第二份控制面。"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"id": "workflow-request-triage-required-owner-contract",
|
|
395
|
+
"severity": "error",
|
|
396
|
+
"target": ".trellis/workflow.md",
|
|
397
|
+
"whenOperations": [
|
|
398
|
+
"workflow-request-triage"
|
|
399
|
+
],
|
|
400
|
+
"assertion": {
|
|
401
|
+
"type": "required-literal",
|
|
402
|
+
"values": [
|
|
403
|
+
"<!-- BEGIN skill-garden patch workflow-request-triage v0.6 -->",
|
|
404
|
+
"Repair authorization and permission to skip task planning are separate.",
|
|
405
|
+
"`direct_edit` requires known, bounded, local, low-risk, reversible scope and simple validation.",
|
|
406
|
+
"python3 ./.trellis/scripts/spec_router.py \"<short query describing the intended action>\"",
|
|
407
|
+
"Project Knowledge Discovery applies once per user intent, workflow phase, or decision boundary",
|
|
408
|
+
"When an active task exists, apply the Active Task Scope Guard before artifact ownership, task routing, or file edits.",
|
|
409
|
+
"proceed untracked without reusing the current task or progress",
|
|
410
|
+
"Only an explicit current-request workflow instruction such as `直接做` / `不要任务` may override automatic `task_plan`.",
|
|
411
|
+
"run `task_intent.py discard --task <current-task>` before changing route"
|
|
412
|
+
]
|
|
413
|
+
},
|
|
414
|
+
"owner": "workflow-request-triage",
|
|
415
|
+
"reason": "Request Intent Routing 的完整语义由原生 Request Triage section 拥有,Hub 和 state 只保留索引或一跳动作。"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"id": "start-required-request-triage-pointer",
|
|
419
|
+
"severity": "error",
|
|
420
|
+
"target": ".agents/skills/trellis-start/SKILL.md",
|
|
421
|
+
"whenOperations": [
|
|
422
|
+
"start-no-task-routing"
|
|
423
|
+
],
|
|
424
|
+
"assertion": {
|
|
425
|
+
"type": "required-literal",
|
|
426
|
+
"values": [
|
|
427
|
+
"<!-- BEGIN skill-garden patch start-no-task-routing v0.6 -->",
|
|
428
|
+
"follow the workflow `Request Triage` contract before acting",
|
|
429
|
+
"Use `task_intent.py create` for inferred complex planning"
|
|
430
|
+
]
|
|
431
|
+
},
|
|
432
|
+
"owner": "trellis-start",
|
|
433
|
+
"reason": "trellis-start 必须进入原生 Request Triage owner,而不是复制 Hub 正文或恢复机械询问。"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"id": "before-dev-required-project-knowledge-agents",
|
|
437
|
+
"severity": "error",
|
|
438
|
+
"target": ".agents/skills/trellis-before-dev/SKILL.md",
|
|
439
|
+
"whenOperations": [
|
|
440
|
+
"before-dev-project-knowledge-discovery"
|
|
441
|
+
],
|
|
442
|
+
"assertion": {
|
|
443
|
+
"type": "required-literal",
|
|
444
|
+
"values": [
|
|
445
|
+
"<!-- BEGIN skill-garden patch before-dev-project-knowledge-discovery v0.6 -->\n## Project Knowledge Discovery",
|
|
446
|
+
"Follow the workflow `Request Triage` Project Knowledge Discovery contract before choosing an approach.",
|
|
447
|
+
"This skill is a development-time consumer of the global policy, not its primary owner."
|
|
448
|
+
]
|
|
449
|
+
},
|
|
450
|
+
"owner": "workflow-request-triage",
|
|
451
|
+
"reason": "before-dev 只保留进入全局 Project Knowledge Discovery owner 的一跳引用,不能再保存更窄的触发矩阵。"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"id": "before-dev-required-project-knowledge-claude",
|
|
455
|
+
"severity": "error",
|
|
456
|
+
"target": ".claude/skills/trellis-before-dev/SKILL.md",
|
|
457
|
+
"whenOperations": [
|
|
458
|
+
"before-dev-project-knowledge-discovery"
|
|
459
|
+
],
|
|
460
|
+
"assertion": {
|
|
461
|
+
"type": "required-literal",
|
|
462
|
+
"values": [
|
|
463
|
+
"<!-- BEGIN skill-garden patch before-dev-project-knowledge-discovery v0.6 -->\n## Project Knowledge Discovery",
|
|
464
|
+
"Follow the workflow `Request Triage` Project Knowledge Discovery contract before choosing an approach."
|
|
465
|
+
]
|
|
466
|
+
},
|
|
467
|
+
"owner": "workflow-request-triage",
|
|
468
|
+
"reason": "Claude before-dev 入口必须与 agents 入口一样指向全局 Request Triage owner。"
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"id": "workflow-state-required-active-task-scope",
|
|
472
|
+
"severity": "error",
|
|
473
|
+
"target": ".trellis/workflow.md",
|
|
474
|
+
"whenOperations": [
|
|
475
|
+
"workflow-state-planning",
|
|
476
|
+
"workflow-state-planning-inline",
|
|
477
|
+
"workflow-state-in-progress",
|
|
478
|
+
"workflow-state-in-progress-inline"
|
|
479
|
+
],
|
|
480
|
+
"assertion": {
|
|
481
|
+
"type": "required-literal",
|
|
482
|
+
"values": [
|
|
483
|
+
"apply the `Request Triage` Active Task Scope Guard",
|
|
484
|
+
"New implementation work outside the active task title/brief stops here",
|
|
485
|
+
"explicitly proceeds untracked without reusing its progress"
|
|
486
|
+
]
|
|
487
|
+
},
|
|
488
|
+
"owner": "workflow-request-triage",
|
|
489
|
+
"reason": "planning 与 in-progress 的全部 active state 必须在 artifacts、route 或编辑前进入全局 Active Task Scope Guard。"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"id": "workflow-hub-old-gate-owners-absent",
|
|
493
|
+
"severity": "error",
|
|
494
|
+
"target": ".trellis/workflow.md",
|
|
495
|
+
"whenOperations": [
|
|
496
|
+
"workflow-hub"
|
|
497
|
+
],
|
|
498
|
+
"assertion": {
|
|
499
|
+
"type": "absent-literal",
|
|
500
|
+
"values": [
|
|
501
|
+
"| Project Knowledge Discovery | `trellis-before-dev` | `spec_router.py` |",
|
|
502
|
+
"| Active Task Scope Guard | active workflow state | `task_intent.py` scope safety |",
|
|
503
|
+
"| Task Progress Recovery | `trellis-push` recovery entry | `task_progress.py` |"
|
|
504
|
+
]
|
|
505
|
+
},
|
|
506
|
+
"owner": "workflow-hub",
|
|
507
|
+
"reason": "Hub 不得继续指向三个已证明不可达或不完整的旧 owner。"
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
"id": "continue-required-task-progress-recovery-agents",
|
|
511
|
+
"severity": "error",
|
|
512
|
+
"target": ".agents/skills/trellis-continue/SKILL.md",
|
|
513
|
+
"whenOperations": [
|
|
514
|
+
"trellis-continue-task-progress-recovery"
|
|
515
|
+
],
|
|
516
|
+
"assertion": {
|
|
517
|
+
"type": "required-literal",
|
|
518
|
+
"values": [
|
|
519
|
+
"<!-- BEGIN skill-garden patch trellis-continue-task-progress-recovery v0.6 -->\n## Step 1.5: Recover Saved Task Progress",
|
|
520
|
+
"python3 ./.trellis/scripts/task_progress.py status --json",
|
|
521
|
+
"Never rebind the session or task automatically.",
|
|
522
|
+
"Progress never overrides the task `status`, planning artifacts, or workflow ordering.",
|
|
523
|
+
"### Planning Resume Gate",
|
|
524
|
+
"enter `trellis-brainstorm` before using artifact presence",
|
|
525
|
+
"wait for a current explicit user confirmation before `task.py start`"
|
|
526
|
+
]
|
|
527
|
+
},
|
|
528
|
+
"owner": "trellis-continue",
|
|
529
|
+
"reason": "Codex continue 入口必须在 Phase 判断前恢复并只展示允许的 task progress 证据。"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"id": "continue-required-task-progress-recovery-claude",
|
|
533
|
+
"severity": "error",
|
|
534
|
+
"target": ".claude/commands/trellis/continue.md",
|
|
535
|
+
"whenOperations": [
|
|
536
|
+
"trellis-continue-task-progress-recovery"
|
|
537
|
+
],
|
|
538
|
+
"assertion": {
|
|
539
|
+
"type": "required-literal",
|
|
540
|
+
"values": [
|
|
541
|
+
"<!-- BEGIN skill-garden patch trellis-continue-task-progress-recovery v0.6 -->\n## Step 1.5: Recover Saved Task Progress",
|
|
542
|
+
"python3 ./.trellis/scripts/task_progress.py status --json",
|
|
543
|
+
"Do not infer a Phase from progress",
|
|
544
|
+
"### Planning Resume Gate",
|
|
545
|
+
"enter `trellis-brainstorm` before using artifact presence",
|
|
546
|
+
"wait for a current explicit user confirmation before `task.py start`"
|
|
547
|
+
]
|
|
548
|
+
},
|
|
549
|
+
"owner": "trellis-continue",
|
|
550
|
+
"reason": "Claude continue 入口必须与 Codex 保持相同的 progress recovery 边界。"
|
|
551
|
+
},
|
|
324
552
|
{
|
|
325
553
|
"id": "workflow-state-hub-pointer-budget",
|
|
326
554
|
"severity": "warning",
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
## Project Knowledge Discovery
|
|
2
|
+
|
|
3
|
+
Follow the workflow `Request Triage` Project Knowledge Discovery contract before choosing an approach. If it has not run for the current user intent, workflow phase, or decision boundary, return to that owner now and carry its matched SOPs and specs into the package-specific discovery below.
|
|
4
|
+
|
|
5
|
+
Do not maintain a narrower trigger list here. This skill is a development-time consumer of the global policy, not its primary owner.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"id": "before-dev-project-knowledge-discovery",
|
|
4
|
+
"purpose": "project_knowledge_discovery",
|
|
5
|
+
"operations": [{
|
|
6
|
+
"id": "before-dev-project-knowledge-discovery",
|
|
7
|
+
"operation": "insert",
|
|
8
|
+
"position": "after",
|
|
9
|
+
"targets": [
|
|
10
|
+
{ "kind": "skill", "path": ".agent/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
11
|
+
{ "kind": "skill", "path": ".agents/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
12
|
+
{ "kind": "skill", "path": ".claude/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
13
|
+
{ "kind": "skill", "path": ".codebuddy/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
14
|
+
{ "kind": "skill", "path": ".cursor/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
15
|
+
{ "kind": "skill", "path": ".devin/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
16
|
+
{ "kind": "skill", "path": ".factory/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
17
|
+
{ "kind": "skill", "path": ".github/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
18
|
+
{ "kind": "command", "path": ".github/prompts/before-dev.prompt.md", "missing": "skip" },
|
|
19
|
+
{ "kind": "skill", "path": ".kilocode/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
20
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
21
|
+
{ "kind": "skill", "path": ".opencode/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
22
|
+
{ "kind": "skill", "path": ".pi/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
23
|
+
{ "kind": "skill", "path": ".qoder/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
24
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
25
|
+
{ "kind": "skill", "path": ".trae/skills/trellis-before-dev/SKILL.md", "missing": "skip" },
|
|
26
|
+
{ "kind": "skill", "path": ".zcode/skills/trellis-before-dev/SKILL.md", "missing": "skip" }
|
|
27
|
+
],
|
|
28
|
+
"selector": { "type": "literal", "source": "selector.md", "expectedMatches": 1 },
|
|
29
|
+
"content": { "source": "content.md" }
|
|
30
|
+
}]
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Read the relevant development guidelines before starting your task.
|
|
@@ -1 +1,3 @@
|
|
|
1
1
|
Use this skill after the user explicitly requests task planning, or after clear complex implementation intent authorizes creating a planning workspace. This authorization covers planning only; it never authorizes `task.py start` or implementation.
|
|
2
|
+
|
|
3
|
+
Before choosing an approach for non-trivial project work, follow the workflow `Request Triage` Project Knowledge Discovery contract and return here with the matched project-local SOPs and specs.
|
package/enhancements/0.6/overrides/patches/skills/trellis-continue/task-progress-recovery/content.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## Step 1.5: Recover Saved Task Progress
|
|
2
|
+
|
|
3
|
+
Before loading the Phase Index or deciding a workflow step, run:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
python3 ./.trellis/scripts/task_progress.py status --json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Treat the structured result as advisory recovery evidence only:
|
|
10
|
+
|
|
11
|
+
- For `status=ok`, relay only `summary.partialStep`, `summary.nextStep`, and notes that are necessary to resume safely.
|
|
12
|
+
- For `status=candidates`, relay the healthy candidates plus necessary `invalidCandidates` or `scanWarnings`, and suggest an explicit rebind when appropriate. Never rebind the session or task automatically.
|
|
13
|
+
- For `status=no-progress` or `status=no-current-task`, continue without inventing saved progress. For `status=error`, report the structured blocker instead of guessing.
|
|
14
|
+
|
|
15
|
+
Progress never overrides the task `status`, planning artifacts, or workflow ordering. Do not infer a Phase from progress, restore a previous push mode, or resume Git/commit orchestration from it.
|
|
16
|
+
|
|
17
|
+
### Planning Resume Gate
|
|
18
|
+
|
|
19
|
+
When the current task is still `status=planning`, enter `trellis-brainstorm` before using artifact presence to choose Phase 1.3 or 1.4. Existing `prd.md`, `design.md`, `implement.md`, JSONL files, or `brief.md` prove only that files exist; they do not prove that acceptance criteria are testable, key decisions have converged, repository-answerable questions were researched, or remaining questions genuinely require the user.
|
|
20
|
+
|
|
21
|
+
Only after the `trellis-brainstorm` Quality Bar is satisfied may the flow load `trellis-task-brief`, refresh and display the current full brief, and wait for a current explicit user confirmation before `task.py start`. Earlier implementation intent, auto-loop startup, or confirmation for older artifact contents cannot authorize the resumed start.
|
package/enhancements/0.6/overrides/patches/skills/trellis-continue/task-progress-recovery/patch.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"id": "trellis-continue-task-progress-recovery",
|
|
4
|
+
"purpose": "task_progress_recovery",
|
|
5
|
+
"operations": [{
|
|
6
|
+
"id": "trellis-continue-task-progress-recovery",
|
|
7
|
+
"operation": "insert",
|
|
8
|
+
"position": "after",
|
|
9
|
+
"targetPolicy": "each-existing",
|
|
10
|
+
"targets": [
|
|
11
|
+
{ "kind": "command", "path": ".agent/workflows/continue.md", "missing": "skip" },
|
|
12
|
+
{ "kind": "skill", "path": ".agents/skills/trellis-continue/SKILL.md", "missing": "skip" },
|
|
13
|
+
{ "kind": "command", "path": ".claude/commands/trellis/continue.md", "missing": "skip" },
|
|
14
|
+
{ "kind": "command", "path": ".codebuddy/commands/trellis/continue.md", "missing": "skip" },
|
|
15
|
+
{ "kind": "command", "path": ".cursor/commands/trellis-continue.md", "missing": "skip" },
|
|
16
|
+
{ "kind": "command", "path": ".devin/workflows/trellis-continue.md", "missing": "skip" },
|
|
17
|
+
{ "kind": "command", "path": ".factory/commands/trellis/continue.md", "missing": "skip" },
|
|
18
|
+
{ "kind": "command", "path": ".gemini/commands/trellis/continue.toml", "missing": "skip" },
|
|
19
|
+
{ "kind": "command", "path": ".github/prompts/continue.prompt.md", "missing": "skip" },
|
|
20
|
+
{ "kind": "command", "path": ".kilocode/workflows/continue.md", "missing": "skip" },
|
|
21
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-continue/SKILL.md", "missing": "skip" },
|
|
22
|
+
{ "kind": "command", "path": ".opencode/commands/trellis/continue.md", "missing": "skip" },
|
|
23
|
+
{ "kind": "command", "path": ".pi/prompts/trellis-continue.md", "missing": "skip" },
|
|
24
|
+
{ "kind": "command", "path": ".qoder/commands/trellis-continue.md", "missing": "skip" },
|
|
25
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-continue/SKILL.md", "missing": "skip" },
|
|
26
|
+
{ "kind": "command", "path": ".trae/commands/trellis-continue.md", "missing": "skip" },
|
|
27
|
+
{ "kind": "command", "path": ".zcode/commands/trellis/continue.md", "missing": "skip" }
|
|
28
|
+
],
|
|
29
|
+
"selector": { "type": "literal", "source": "selector.md", "expectedMatches": 1 },
|
|
30
|
+
"content": { "source": "content.md" }
|
|
31
|
+
}]
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Confirms: current task, git state, recent commits.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Finish Work
|
package/enhancements/0.6/overrides/patches/skills/trellis-finish-work/exact-bookkeeping/patch.json
CHANGED
|
@@ -16,5 +16,39 @@
|
|
|
16
16
|
"baselines": ["baseline-agent.md", "baseline-command.md"],
|
|
17
17
|
"cleanup": [{ "type": "skill-override", "id": "trellis-finish-work" }],
|
|
18
18
|
"content": { "source": "content.md" }
|
|
19
|
+
}, {
|
|
20
|
+
"id": "trellis-finish-work-native-exact-bookkeeping",
|
|
21
|
+
"operation": "replace",
|
|
22
|
+
"scope": "body",
|
|
23
|
+
"targetPolicy": "each-existing",
|
|
24
|
+
"targets": [
|
|
25
|
+
{ "kind": "command", "path": ".agent/workflows/finish-work.md", "missing": "skip" },
|
|
26
|
+
{ "kind": "command", "path": ".codebuddy/commands/trellis/finish-work.md", "missing": "skip" },
|
|
27
|
+
{ "kind": "command", "path": ".cursor/commands/trellis-finish-work.md", "missing": "skip" },
|
|
28
|
+
{ "kind": "command", "path": ".devin/workflows/trellis-finish-work.md", "missing": "skip" },
|
|
29
|
+
{ "kind": "command", "path": ".factory/commands/trellis/finish-work.md", "missing": "skip" },
|
|
30
|
+
{ "kind": "command", "path": ".github/prompts/finish-work.prompt.md", "missing": "skip" },
|
|
31
|
+
{ "kind": "command", "path": ".kilocode/workflows/finish-work.md", "missing": "skip" },
|
|
32
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-finish-work/SKILL.md", "missing": "skip" },
|
|
33
|
+
{ "kind": "command", "path": ".opencode/commands/trellis/finish-work.md", "missing": "skip" },
|
|
34
|
+
{ "kind": "command", "path": ".pi/prompts/trellis-finish-work.md", "missing": "skip" },
|
|
35
|
+
{ "kind": "command", "path": ".qoder/commands/trellis-finish-work.md", "missing": "skip" },
|
|
36
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-finish-work/SKILL.md", "missing": "skip" },
|
|
37
|
+
{ "kind": "command", "path": ".trae/commands/trellis-finish-work.md", "missing": "skip" },
|
|
38
|
+
{ "kind": "command", "path": ".zcode/commands/trellis/finish-work.md", "missing": "skip" }
|
|
39
|
+
],
|
|
40
|
+
"selector": { "type": "markdown-document", "preserveFrontmatter": false },
|
|
41
|
+
"cleanup": [{ "type": "skill-override", "id": "trellis-finish-work" }],
|
|
42
|
+
"content": { "source": "content.md" }
|
|
43
|
+
}, {
|
|
44
|
+
"id": "trellis-finish-work-gemini-owner",
|
|
45
|
+
"operation": "insert",
|
|
46
|
+
"position": "after",
|
|
47
|
+
"targetPolicy": "each-existing",
|
|
48
|
+
"targets": [
|
|
49
|
+
{ "kind": "toml", "path": ".gemini/commands/trellis/finish-work.toml", "missing": "skip" }
|
|
50
|
+
],
|
|
51
|
+
"selector": { "type": "literal", "source": "gemini-selector.txt", "expectedMatches": 1 },
|
|
52
|
+
"content": { "source": "gemini-content.md" }
|
|
19
53
|
}]
|
|
20
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
- **No active task**
|
|
1
|
+
- **No active task** -> follow the workflow `Request Triage` contract before acting. Use `task_intent.py create` for inferred complex planning, `task.py create` for explicit task planning, and ask only for material ambiguity or an independent safety boundary.
|
|
@@ -15,5 +15,27 @@
|
|
|
15
15
|
"baselines": ["baseline.md"],
|
|
16
16
|
"cleanup": [{ "type": "skill-override", "id": "trellis-update-spec" }],
|
|
17
17
|
"content": { "source": "content.md" }
|
|
18
|
+
}, {
|
|
19
|
+
"id": "trellis-update-spec-native-autonomous-evaluation",
|
|
20
|
+
"operation": "replace",
|
|
21
|
+
"targetPolicy": "each-existing",
|
|
22
|
+
"targets": [
|
|
23
|
+
{ "kind": "skill", "path": ".agent/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
24
|
+
{ "kind": "skill", "path": ".codebuddy/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
25
|
+
{ "kind": "skill", "path": ".cursor/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
26
|
+
{ "kind": "skill", "path": ".devin/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
27
|
+
{ "kind": "skill", "path": ".factory/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
28
|
+
{ "kind": "skill", "path": ".github/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
29
|
+
{ "kind": "skill", "path": ".kilocode/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
30
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
31
|
+
{ "kind": "skill", "path": ".opencode/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
32
|
+
{ "kind": "skill", "path": ".pi/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
33
|
+
{ "kind": "skill", "path": ".qoder/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
34
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-update-spec/SKILL.md", "missing": "skip" },
|
|
35
|
+
{ "kind": "skill", "path": ".trae/skills/trellis-update-spec/SKILL.md", "missing": "skip" }
|
|
36
|
+
],
|
|
37
|
+
"selector": { "type": "markdown-section", "heading": "## Interactive Mode" },
|
|
38
|
+
"cleanup": [{ "type": "skill-override", "id": "trellis-update-spec" }],
|
|
39
|
+
"content": { "source": "content.md" }
|
|
18
40
|
}]
|
|
19
41
|
}
|