maestro-flow 0.4.18 → 0.4.19

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 (91) hide show
  1. package/.agents/skills/maestro-next/SKILL.md +147 -112
  2. package/.agents/skills/team-swarm/SKILL.md +180 -0
  3. package/.agents/skills/team-swarm/roles/analyst/role.md +187 -0
  4. package/.agents/skills/team-swarm/roles/ant/role.md +169 -0
  5. package/.agents/skills/team-swarm/roles/coordinator/commands/converge.md +146 -0
  6. package/.agents/skills/team-swarm/roles/coordinator/commands/init-swarm.md +136 -0
  7. package/.agents/skills/team-swarm/roles/coordinator/commands/iterate.md +232 -0
  8. package/.agents/skills/team-swarm/roles/coordinator/role.md +211 -0
  9. package/.agents/skills/team-swarm/roles/scorer/role.md +157 -0
  10. package/.agents/skills/team-swarm/scripts/aco.py +473 -0
  11. package/.agents/skills/team-swarm/scripts/pheromone.py +144 -0
  12. package/.agents/skills/team-swarm/scripts/scoring.py +92 -0
  13. package/.agents/skills/team-swarm/scripts/test_aco.py +475 -0
  14. package/.agents/skills/team-swarm/specs/ant-output-schema.md +119 -0
  15. package/.agents/skills/team-swarm/specs/convergence-criteria.md +106 -0
  16. package/.agents/skills/team-swarm/specs/pheromone-schema.md +123 -0
  17. package/.agents/skills/team-swarm/specs/swarm-config-template.json +71 -0
  18. package/.agents/skills/team-swarm/specs/swarm-protocol.md +117 -0
  19. package/.agy/skills/maestro-next/SKILL.md +147 -112
  20. package/.agy/skills/team-swarm/SKILL.md +176 -0
  21. package/.agy/skills/team-swarm/roles/analyst/role.md +183 -0
  22. package/.agy/skills/team-swarm/roles/ant/role.md +165 -0
  23. package/.agy/skills/team-swarm/roles/coordinator/commands/converge.md +134 -0
  24. package/.agy/skills/team-swarm/roles/coordinator/commands/init-swarm.md +136 -0
  25. package/.agy/skills/team-swarm/roles/coordinator/commands/iterate.md +202 -0
  26. package/.agy/skills/team-swarm/roles/coordinator/role.md +209 -0
  27. package/.agy/skills/team-swarm/roles/scorer/role.md +153 -0
  28. package/.agy/skills/team-swarm/scripts/aco.py +473 -0
  29. package/.agy/skills/team-swarm/scripts/pheromone.py +144 -0
  30. package/.agy/skills/team-swarm/scripts/scoring.py +92 -0
  31. package/.agy/skills/team-swarm/scripts/test_aco.py +475 -0
  32. package/.agy/skills/team-swarm/specs/ant-output-schema.md +119 -0
  33. package/.agy/skills/team-swarm/specs/convergence-criteria.md +106 -0
  34. package/.agy/skills/team-swarm/specs/pheromone-schema.md +123 -0
  35. package/.agy/skills/team-swarm/specs/swarm-config-template.json +71 -0
  36. package/.agy/skills/team-swarm/specs/swarm-protocol.md +117 -0
  37. package/.claude/commands/maestro-next.md +147 -112
  38. package/.claude/skills/team-swarm/SKILL.md +178 -0
  39. package/.claude/skills/team-swarm/roles/analyst/role.md +185 -0
  40. package/.claude/skills/team-swarm/roles/ant/role.md +167 -0
  41. package/.claude/skills/team-swarm/roles/coordinator/commands/converge.md +146 -0
  42. package/.claude/skills/team-swarm/roles/coordinator/commands/init-swarm.md +136 -0
  43. package/.claude/skills/team-swarm/roles/coordinator/commands/iterate.md +232 -0
  44. package/.claude/skills/team-swarm/roles/coordinator/role.md +209 -0
  45. package/.claude/skills/team-swarm/roles/scorer/role.md +155 -0
  46. package/.claude/skills/team-swarm/scripts/aco.py +473 -0
  47. package/.claude/skills/team-swarm/scripts/pheromone.py +144 -0
  48. package/.claude/skills/team-swarm/scripts/scoring.py +92 -0
  49. package/.claude/skills/team-swarm/scripts/test_aco.py +475 -0
  50. package/.claude/skills/team-swarm/specs/ant-output-schema.md +119 -0
  51. package/.claude/skills/team-swarm/specs/convergence-criteria.md +106 -0
  52. package/.claude/skills/team-swarm/specs/pheromone-schema.md +123 -0
  53. package/.claude/skills/team-swarm/specs/swarm-config-template.json +71 -0
  54. package/.claude/skills/team-swarm/specs/swarm-protocol.md +117 -0
  55. package/.codex/skills/maestro-next/SKILL.md +297 -0
  56. package/dist/src/commands/install.js +5 -1
  57. package/dist/src/commands/install.js.map +1 -1
  58. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  59. package/dist/src/i18n/locales/en.js +9 -0
  60. package/dist/src/i18n/locales/en.js.map +1 -1
  61. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  62. package/dist/src/i18n/locales/zh.js +9 -0
  63. package/dist/src/i18n/locales/zh.js.map +1 -1
  64. package/dist/src/i18n/types.d.ts +3 -0
  65. package/dist/src/i18n/types.d.ts.map +1 -1
  66. package/dist/src/tui/install-ui/HooksConfig.d.ts +5 -1
  67. package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
  68. package/dist/src/tui/install-ui/HooksConfig.js +5 -3
  69. package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
  70. package/dist/src/tui/install-ui/InstallConfirm.d.ts +2 -0
  71. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  72. package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
  73. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  74. package/dist/src/tui/install-ui/InstallExecution.d.ts +1 -0
  75. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  76. package/dist/src/tui/install-ui/InstallExecution.js +26 -3
  77. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  78. package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
  79. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  80. package/dist/src/tui/install-ui/InstallFlow.js +76 -16
  81. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  82. package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
  83. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  84. package/dist/src/tui/install-ui/InstallHub.js +8 -0
  85. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  86. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  87. package/dist/src/tui/install-ui/InstallResult.js +1 -1
  88. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  89. package/dist/src/utils/update-notices.js +11 -0
  90. package/dist/src/utils/update-notices.js.map +1 -1
  91. package/package.json +1 -1
@@ -12,70 +12,114 @@ allowed-tools:
12
12
  ---
13
13
 
14
14
  <purpose>
15
- 单链推荐:根据用户输入意图,从 `.claude/commands/` 命令池中挑选**最匹配的单个命令**,确认后通过 `Skill()` 执行。
15
+ 单链推荐:解析 intent + project state → 路由表评分 → 推荐**单个原子命令** → 确认后通过 `Skill()` 执行。
16
16
 
17
- 与 `/maestro` / `/maestro-ralph` 的区别:
18
- - `/maestro`、`/maestro-ralph`、`/maestro-ralph-execute`、`/maestro-ralph-beta`、`/maestro-player`、`/maestro-composer` 是**多步管线编排器**,本命令不会推荐它们
19
- - 本命令始终只推荐 **1 个原子命令**(top pick),最多列出 2-3 个备选;选定后直接执行,无 session、无 chain
20
- - 适用场景:用户意图清晰、只需单步即可完成;或不确定该走哪个具体命令时获取定向推荐
17
+ 与 `/maestro` / `/maestro-ralph` 区别:
18
+ - 不创建 session、不构建 chain、不写 status.json
19
+ - 始终只推 1 top pick,最多列 2-3 个备选
20
+ - 适用场景:意图清晰且单步即可完成;或需要定向推荐时
21
21
  </purpose>
22
22
 
23
23
  <context>
24
- $ARGUMENTS — 用户意图文本 + 可选 flags。
24
+ $ARGUMENTS — 意图文本 + 可选 flags。
25
25
 
26
26
  **Flags:**
27
- - `-y` / `--yes` — 自动模式:跳过确认,直接执行 top pick
27
+ - `-y` / `--yes` — 跳过确认,直接执行 top pick
28
28
  - `--dry-run` — 仅显示推荐结果,不执行
29
- - `--top N` — 显示前 N 个候选供选择(默认 3)
29
+ - `--top N` — 显示前 N 个候选(默认 3)
30
30
  - `--list` — 仅列出可推荐命令池,不做推荐
31
31
 
32
- **候选池:** 仅 Step 3 路由表中列出的命令参与推荐。表中未出现的命令(含管线编排器 `maestro` / `maestro-ralph*` / `maestro-player` / `maestro-composer` 等)不会被本命令推荐。
32
+ **候选池:** 仅 A_SCORE_CANDIDATES 路由表中列出的命令。管线编排器(`maestro` / `maestro-ralph*` / `maestro-player` / `maestro-composer`)**永远不在候选池**。
33
33
  </context>
34
34
 
35
- <execution>
35
+ <invariants>
36
+ 1. **不创建 session / 不写 status.json / 不触发后续 chain** — 单次原子执行,产出由目标命令自行管理
37
+ 2. **管线编排器不在候选池** — 仅推荐原子命令
38
+ 3. **空 intent 或 "继续/下一步/next/接下来"** → 直接采用 lifecycle_position 推断的自然下一步
39
+ 4. **字面命中路由表优先** — lifecycle 仅作加分;命中失败时 lifecycle 上升为决定性信号
40
+ 5. **参数传递** — 默认 intent 原文作为第一个 arg;用户可在确认环节修改;`-y` 仅当用户传入时透传到 skill args
41
+ 6. **`--list` 模式跳过 lifecycle 推断与评分**,仅按 workflow 簇分组列出全部候选
42
+ </invariants>
36
43
 
37
- ### Step 1: Parse Arguments
44
+ <state_machine>
38
45
 
39
- 解析 `-y` / `--dry-run` / `--top N` / `--list`,剩余文本作为 `intent`。
46
+ <states>
47
+ S_PARSE — 解析 ARGUMENTS、提取 flags PERSIST: —
48
+ S_STATE — 读 project state、推断 lifecycle_position PERSIST: —
49
+ S_RANK — 路由表评分、生成 top-N candidates PERSIST: —
50
+ S_LIST — `--list` 模式:分组展示候选池 PERSIST: —
51
+ S_PRESENT — 显示 top pick + 备选 + 推荐理由 + 执行参数 PERSIST: —
52
+ S_CONFIRM — AskUserQuestion 选择/修改参数(auto_mode 跳过) PERSIST: —
53
+ S_EXECUTE — `Skill({ skill, args })` 单次调用 PERSIST: —
54
+ S_FALLBACK — intent 空且 clarification 失败 PERSIST: —
55
+ </states>
40
56
 
41
- - `--list` 模式 → 跳到 Step 3(仅列表)
42
- - `intent` 为空且非 `--list` → `AskUserQuestion`:让用户输入意图(最多 1 轮,仍空则 E001)
57
+ <transitions>
43
58
 
44
- ### Step 2: 读取 Workflow 状态(智能推荐基础)
59
+ S_PARSE:
60
+ → S_LIST WHEN: --list flag
61
+ → S_STATE WHEN: intent text present
62
+ → S_STATE WHEN: keyword "continue"/"next"/"go"/"继续"/"下一步"/"接下来"
63
+ → S_PARSE WHEN: no intent (max 1 clarify round) DO: AskUserQuestion
64
+ → S_FALLBACK WHEN: clarification empty
45
65
 
46
- 读取以下项目状态,用于推断"当前生命周期位置"和"自然下一步":
66
+ S_STATE:
67
+ → S_RANK DO: A_INFER_LIFECYCLE
47
68
 
48
- ```bash
49
- # 1. 当前 phase / milestone / 最新 artifact
50
- cat .workflow/state.json 2>$null
69
+ S_RANK:
70
+ S_PRESENT DO: A_SCORE_CANDIDATES
51
71
 
52
- # 2. 最近 artifact 目录(按 mtime 倒序,取前 3)
53
- ls -la .workflow/scratch/ 2>$null | head -10
72
+ S_LIST:
73
+ END DO: workflow 簇分组列出全部候选 + description
54
74
 
55
- # 3. 是否有进行中的 ralph/maestro session
56
- ls -la .workflow/.maestro/ 2>$null | head -5
57
- ```
75
+ S_PRESENT:
76
+ END WHEN: --dry-run
77
+ → S_EXECUTE WHEN: -y / --yes
78
+ → S_CONFIRM WHEN: not auto_mode
79
+
80
+ S_CONFIRM:
81
+ → S_EXECUTE WHEN: 用户确认 top pick / 选备选 / 改参数
82
+ → END WHEN: 用户取消
83
+
84
+ S_EXECUTE:
85
+ → END DO: Skill({ skill: <chosen>, args: <args> }) → 输出 "✅ 已执行 /<command>"
86
+
87
+ S_FALLBACK:
88
+ → END DO: raise E001
58
89
 
59
- 根据读取结果推断 **lifecycle_position**(用作下一步推荐的核心信号):
60
-
61
- | 项目状态特征 | lifecycle_position | 自然下一步 |
62
- |--------------|-------------------|-----------|
63
- | 无 `.workflow/` + 无源码 | `brainstorm` | `maestro-brainstorm` |
64
- | 无 `.workflow/` + 有源码 | `init` | `maestro-init` |
65
- | 有 state.json,无 roadmap.md,无 milestones | `analyze-macro` | `maestro-analyze` (宏观调研) |
66
- | 有 macro analyze artifact,无 roadmap.md | `roadmap` | `maestro-roadmap` |
67
- | 有 roadmap,未启动 phase | `analyze` | `maestro-analyze {phase}` |
68
- | 最新 artifact = `analyze` | `plan` | `maestro-plan {phase}` |
69
- | 最新 artifact = `plan` | `execute` | `maestro-execute {phase}` |
70
- | 最新 artifact = `execute` | `verify` | `maestro-verify {phase}` |
71
- | 最新 artifact = `verify`,passed | `review` | `quality-review {phase}` |
72
- | 最新 artifact = `review`,verdict=PASS | `test-gen` | `quality-auto-test {phase}` |
73
- | 最新 artifact = `test`,全绿 | `milestone-audit` | `maestro-milestone-audit` |
74
- | 当前 milestone 全部 phase 完成 | `milestone-complete` | `maestro-milestone-complete` |
75
- | 任一 stage 产物含 gaps/failed | `debug` | `quality-debug {gap}` |
76
-
77
- **Maestro Lifecycle 主线(核心 workflow,供推断"下一步"使用):**
90
+ </transitions>
78
91
 
92
+ <actions>
93
+
94
+ ### A_INFER_LIFECYCLE
95
+
96
+ 读 project state 推断 `lifecycle_position`(核心信号):
97
+
98
+ ```bash
99
+ cat .workflow/state.json 2>$null # phase / milestone / artifacts
100
+ ls -la .workflow/scratch/ 2>$null | head -10 # 最近 artifact (mtime DESC)
101
+ ls -la .workflow/.maestro/ 2>$null | head -5 # 进行中的 session
102
+ ```
103
+
104
+ **项目状态 → lifecycle_position → 自然下一步:**
105
+
106
+ | 项目状态 | lifecycle_position | 自然下一步 |
107
+ |---------|-------------------|-----------|
108
+ | 无 `.workflow/` + 无源码 | brainstorm | `maestro-brainstorm` |
109
+ | 无 `.workflow/` + 有源码 | init | `maestro-init` |
110
+ | 有 state.json,无 roadmap,无 milestones | analyze-macro | `maestro-analyze` (宏观调研) |
111
+ | 有 macro analyze artifact,无 roadmap | roadmap | `maestro-roadmap` |
112
+ | 有 roadmap,未启动 phase | analyze | `maestro-analyze {phase}` |
113
+ | 最新 artifact = analyze | plan | `maestro-plan {phase}` |
114
+ | 最新 artifact = plan | execute | `maestro-execute {phase}` |
115
+ | 最新 artifact = execute | verify | `maestro-verify {phase}` |
116
+ | verify passed | review | `quality-review {phase}` |
117
+ | review verdict=PASS | test-gen | `quality-auto-test {phase}` |
118
+ | 测试全绿 | milestone-audit | `maestro-milestone-audit` |
119
+ | 当前 milestone 全 phase 完成 | milestone-complete | `maestro-milestone-complete` |
120
+ | 任一 stage 产物含 gaps/failed | debug | `quality-debug {gap}` |
121
+
122
+ **Maestro Lifecycle 主线:**
79
123
  ```
80
124
  brainstorm → blueprint → init → analyze-macro → roadmap
81
125
  → [per phase] analyze → plan → execute → verify
@@ -83,41 +127,28 @@ brainstorm → blueprint → init → analyze-macro → roadmap
83
127
  → milestone-audit → milestone-complete → milestone-release
84
128
  ```
85
129
 
86
- **辅助 workflow 簇**(按场景触发,非主线):
87
-
88
- | Workflow 簇 | 触发场景 | 主推命令 |
89
- |-------------|---------|---------|
90
- | Learning | 接触新代码/未知模块 | `learn-follow` → `learn-decompose` → `learn-second-opinion` |
91
- | Knowledge | 提炼经验 / 沉淀知识 | `manage-harvest` → `manage-knowhow-capture` → `spec-add` |
92
- | Wiki 维护 | 知识图谱整理 | `manage-wiki` → `wiki-connect` → `wiki-digest` |
93
- | Issue 治理 | 缺陷管理 | `manage-issue-discover` → `manage-issue` |
94
- | 文档同步 | 代码大改后 | `quality-sync` → `manage-codebase-refresh` |
95
- | 重构 | 技术债积累 | `quality-refactor` → `quality-review` |
96
- | 发布 | 里程碑结束 | `maestro-milestone-audit` → `maestro-milestone-release` |
97
- | 并行开发 | 多 milestone 并行 | `maestro-fork` → ... → `maestro-merge` |
98
-
99
- ### Step 2.5: Semantic Match & Rank
130
+ ### A_SCORE_CANDIDATES
100
131
 
101
- 综合以下信号对路由表中的命令评分(高→低):
132
+ **评分信号**(高→低):
102
133
 
103
134
  | 信号 | 权重 | 说明 |
104
135
  |------|------|------|
105
- | intent 命中路由表行的关键词 | 高 | 字面匹配主依据 |
106
- | **lifecycle_position 的"自然下一步"** | **高** | intent "继续/下一步/next/接下来"或为空时,此信号上升为决定性 |
107
- | `name` 关键词命中 intent | 中 | intent 含 "test" → quality-test/quality-auto-test 加分 |
108
- | Workflow 簇匹配 | 中 | intent 涉及学习/知识/issue 等场景时触发对应簇 |
109
- | Recent activity 反向避免 | 低 | 刚完成的 stage 在短期内降权 |
136
+ | intent 命中路由表关键词 | 高 | 字面匹配主依据 |
137
+ | **lifecycle 自然下一步** | **高** | intent / "继续" / "next" 时为决定性 |
138
+ | `name` 关键词命中 intent | 中 | intent 含 "test" → quality-test/quality-auto-test 加分 |
139
+ | Workflow 簇匹配 | 中 | intent 涉及学习/知识/issue 等场景触发对应簇 |
140
+ | Recent activity 反向避免 | 低 | 刚完成的 stage 短期内降权 |
110
141
 
111
142
  **特殊意图处理:**
112
143
 
113
- | Intent 模式 | 处理 |
114
- |------------|------|
115
- | 空 / "继续" / "下一步" / "next" / "接下来怎么走" | 直接按 lifecycle_position 的"自然下一步"作为 top pick |
116
- | "什么状态" / "现在到哪了" / "status" | top pick = `manage-status` |
117
- | 字面命中路由表关键词 | 路由表优先,lifecycle 作为加分项 |
118
- | 无任何匹配 | top pick = lifecycle 自然下一步 + W002 警告 |
144
+ | Intent 模式 | top pick |
145
+ |------------|---------|
146
+ | 空 / "继续" / "下一步" / "next" / "接下来" | lifecycle 自然下一步 |
147
+ | "什么状态" / "现在到哪了" / "status" | `manage-status` |
148
+ | 字面命中路由表 | 路由表优先(lifecycle 仅加分) |
149
+ | 无任何匹配 | lifecycle 下一步 + raise W002 |
119
150
 
120
- **意图 → 命令路由表**(候选池等于本表 + 上方"自然下一步"建议):
151
+ **意图 → 命令路由表**(候选池):
121
152
 
122
153
  | 意图关键词 | 推荐命令 |
123
154
  |-----------|---------|
@@ -148,70 +179,74 @@ brainstorm → blueprint → init → analyze-macro → roadmap
148
179
  | fork / 分支 / 并行开发 | `maestro-fork` / `maestro-merge` |
149
180
  | 覆盖层 / overlay / amend | `maestro-overlay` / `maestro-amend` |
150
181
 
182
+ **辅助 workflow 簇**(场景触发,非主线):
183
+
184
+ | 簇 | 触发 | 主推链路 |
185
+ |----|------|---------|
186
+ | Learning | 接触新代码/未知模块 | `learn-follow` → `learn-decompose` → `learn-second-opinion` |
187
+ | Knowledge | 提炼经验 / 沉淀知识 | `manage-harvest` → `manage-knowhow-capture` → `spec-add` |
188
+ | Wiki | 知识图谱整理 | `manage-wiki` → `wiki-connect` → `wiki-digest` |
189
+ | Issue | 缺陷管理 | `manage-issue-discover` → `manage-issue` |
190
+ | 文档同步 | 代码大改后 | `quality-sync` → `manage-codebase-refresh` |
191
+ | 重构 | 技术债积累 | `quality-refactor` → `quality-review` |
192
+ | 发布 | 里程碑结束 | `maestro-milestone-audit` → `maestro-milestone-release` |
193
+ | 并行开发 | 多 milestone 并行 | `maestro-fork` → ... → `maestro-merge` |
194
+
151
195
  输出 ranked candidates,取 top N(默认 3)。
152
196
 
153
- ### Step 3: Present & Confirm
197
+ </actions>
198
+
199
+ </state_machine>
200
+
201
+ <presentation>
154
202
 
155
- **`--list` 模式:** 按类别(maestro / manage / quality / learn / spec / wiki / security)分组展示所有候选 + description,结束。
203
+ ### `--list` 模式
156
204
 
157
- **正常模式:**
205
+ 按 workflow 簇(主线 / Learning / Knowledge / Wiki / Issue / 文档 / 重构 / 发布 / 并行)分组展示全部候选 + description,结束。
206
+
207
+ ### 正常模式
158
208
 
159
- 显示:
160
209
  ```
161
210
  🎯 推荐 (top pick): /<command-name>
162
211
  <description>
163
- 推荐理由: <一句话说明为什么命中>
212
+ 推荐理由: <命中规则 + lifecycle 位置一句话>
164
213
 
165
214
  备选:
166
215
  2. /<alt-1> — <description>
167
216
  3. /<alt-2> — <description>
168
217
 
169
- 执行参数: <args-to-pass>
218
+ 执行参数: <args>
170
219
  ```
171
220
 
172
- - `--dry-run` 显示后结束
173
- - `-y` → 直接执行 top pick
174
- - 否则 → `AskUserQuestion` 让用户:执行 top pick / 选备选 / 修改参数 / 取消
175
-
176
- ### Step 4: Execute
177
-
178
- 通过 `Skill({ skill: "<chosen-command-name>", args: "<args>" })` 执行。
221
+ `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则 AskUserQuestion 提供:执行 top pick / 选备选 / 修改参数 / 取消。
179
222
 
180
- **参数传递:**
181
- - 默认把 intent 原文作为第一个参数传给目标命令
182
- - 若用户在 Step 3 修改了参数,使用修改后的版本
183
- - `-y` flag 透传给目标命令(如果目标命令支持)
223
+ </presentation>
184
224
 
185
- 执行完成后显示:
186
- ```
187
- ✅ 已执行 /<command-name>
188
- ```
225
+ <appendix>
189
226
 
190
- 不创建 session、不写 status.json、不做后续 chain — 由目标命令自行管理其产出。
227
+ ### Error Codes
191
228
 
192
- </execution>
193
-
194
- <error_codes>
195
229
  | Code | Severity | Condition | Recovery |
196
230
  |------|----------|-----------|----------|
197
- | E001 | error | 未提供 intent clarification 后仍为空 | 提供意图描述或使用 `--list` 浏览命令池 |
198
- | E002 | error | 候选池为空(commands 目录不存在或无 .md 文件) | 检查 `.claude/commands/` 是否存在 |
199
- | E003 | error | 用户选择的命令名无法解析为有效 skill | 列出有效命令名让用户重选 |
200
- | W001 | warning | 多个命令得分接近(top1 与 top2 差距 < 阈值) | 强制展示前 3,让用户裁决 |
201
- | W002 | warning | intent 与所有候选匹配度均低 | 提示用户考虑 `/maestro` 或 `/maestro-ralph` 走管线 |
202
- </error_codes>
203
-
204
- <success_criteria>
231
+ | E001 | error | intent 空且 clarification 后仍空 | 提供意图描述或使用 `--list` 浏览 |
232
+ | E002 | error | 候选池为空(`.claude/commands/` 缺失或无 .md | 检查 commands 目录 |
233
+ | E003 | error | 选定命令名无法解析为有效 skill | 列出有效命令重选 |
234
+ | W001 | warning | top1 与 top2 得分差距 < 阈值 | 强制展示前 3 让用户裁决 |
235
+ | W002 | warning | intent 与所有候选匹配度均低 | 提示考虑 `/maestro` 或 `/maestro-ralph` 走管线 |
236
+
237
+ ### Success Criteria
238
+
205
239
  - [ ] Intent 解析 + flags 提取完成
206
240
  - [ ] 读取 `.workflow/state.json` + scratch artifacts 推断 lifecycle_position
207
- - [ ] 候选池等于路由表(管线编排器自然不在表中)
208
- - [ ] 评分综合:intent 字面匹配 + lifecycle 自然下一步 + workflow 簇 + recent activity
241
+ - [ ] 候选池等于路由表(管线编排器不在)
242
+ - [ ] 评分综合:intent 字面匹配 + lifecycle 下一步 + workflow 簇 + recent activity
209
243
  - [ ] 空 intent / "继续" / "下一步" → 直接采用 lifecycle 推断的下一步
210
- - [ ] top pick 展示时附"推荐理由"(命中规则 + lifecycle 位置)
244
+ - [ ] top pick 展示附"推荐理由"(命中规则 + lifecycle 位置)
211
245
  - [ ] `--dry-run` 仅展示,不执行
212
- - [ ] `-y` 自动执行 top pick
213
- - [ ] 非自动模式下,用户通过 AskUserQuestion 确认或选择备选
214
- - [ ] 选定命令通过 `Skill()` 单次调用执行
215
- - [ ] 不创建 session、不生成 status.json、不触发后续 chain
216
- - [ ] `--list` 模式按 workflow 簇(主线 / Learning / Knowledge / Wiki / Issue / 文档 / 重构 / 发布 / 并行)分组展示
217
- </success_criteria>
246
+ - [ ] `-y` 自动执行 top pick;用户传入时透传到 skill args
247
+ - [ ] 非自动模式通过 AskUserQuestion 确认或选备选
248
+ - [ ] 选定命令通过单次 `Skill()` 调用执行
249
+ - [ ] 不创建 session / 不生成 status.json / 不触发后续 chain
250
+ - [ ] `--list` 模式按 workflow 簇分组展示
251
+
252
+ </appendix>
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: team-swarm
3
+ description: Swarm intelligence team skill — ACO-driven multi-agent exploration with hybrid LLM coordinator + Python optimization controller. Coordinator generates swarm-config from user task, then runs K iterations of N parallel ants guided by pheromone state. Universal task space via config (nodes + scoring rule). Triggers on "team swarm", "swarm intelligence", "蚁群".
4
+ allowed-tools: TeamCreate(*), TeamDelete(*), SendMessage(*), TaskCreate(*), TaskUpdate(*), TaskList(*), TaskGet(*), Agent(*), AskUserQuestion(*), Read(*), Write(*), Edit(*), Bash(*), Glob(*), Grep(*), mcp__ccw-tools__team_msg(*)
5
+ ---
6
+
7
+ # Team Swarm
8
+
9
+ Orchestrate ant-colony-style exploration over a user-defined task space. **Hybrid coordinator**: LLM handles task translation + worker spawning; Python script owns all numeric decisions (selection / pheromone update / convergence). Universal — task space and scoring rule come from `swarm-config.json`.
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ Skill(skill="team-swarm", args="task description")
15
+ |
16
+ SKILL.md (this file) = Router
17
+ |
18
+ +--------------+--------------+
19
+ | |
20
+ no --role flag --role <name>
21
+ | |
22
+ Coordinator Worker
23
+ roles/coordinator/role.md roles/<name>/role.md
24
+ |
25
+ +-- Phase 1: gen swarm-config
26
+ +-- Phase 2: init --> Bash: scripts/aco.py init
27
+ +-- Phase 3: iterate (K rounds, each = spawn-and-stop)
28
+ | |
29
+ | +-- Bash: aco.py select --iter k -> N assignments
30
+ | +-- Spawn N x team-worker(ant)
31
+ | +-- [callback when all ants done]
32
+ | +-- (optional) Spawn team-worker(scorer)
33
+ | +-- Bash: aco.py update --iter k
34
+ | +-- Bash: aco.py converged
35
+ | +-- branch: loop k+1 OR Phase 4
36
+ |
37
+ +-- Phase 4: converge --> Bash: aco.py report -> Spawn team-worker(analyst)
38
+ -> best-solution.md
39
+ ```
40
+
41
+ ## Role Registry
42
+
43
+ | Role | Path | Prefix | Inner Loop |
44
+ |------|------|--------|------------|
45
+ | coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
46
+ | ant | [roles/ant/role.md](roles/ant/role.md) | ANT-* | false |
47
+ | scorer | [roles/scorer/role.md](roles/scorer/role.md) | SCORE-* | false |
48
+ | analyst | [roles/analyst/role.md](roles/analyst/role.md) | ANALYST-* | false |
49
+
50
+ ## Role Router
51
+
52
+ Parse `$ARGUMENTS`:
53
+ - Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
54
+ - No `--role` -> `@roles/coordinator/role.md`, execute entry router
55
+
56
+ ## Shared Constants
57
+
58
+ - **Session prefix**: `TS`
59
+ - **Session path**: `.workflow/.team/TS-<slug>-<date>/`
60
+ - **Team name**: `swarm`
61
+ - **Script root**: `<skill_root>/scripts/aco.py` (Python 3.10+)
62
+ - **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
63
+
64
+ ## Worker Spawn Template
65
+
66
+ Coordinator spawns workers using this template:
67
+
68
+ ```
69
+ Agent({
70
+ subagent_type: "team-worker",
71
+ description: "Spawn <role> worker",
72
+ team_name: "swarm",
73
+ name: "<role>",
74
+ run_in_background: true,
75
+ prompt: `## Role Assignment
76
+ role: <role>
77
+ role_spec: <skill_root>/roles/<role>/role.md
78
+ session: <session-folder>
79
+ session_id: <session-id>
80
+ team_name: swarm
81
+ requirement: <task-description>
82
+ inner_loop: false
83
+
84
+ ## Assignment (ant only)
85
+ <assignment JSON from aco.py select>
86
+
87
+ ## Progress Milestones
88
+ session_id: <session-id>
89
+ Report progress via team_msg at natural phase boundaries.
90
+ Report blockers immediately via team_msg type="blocker".
91
+ Report completion via team_msg type="task_complete" after final SendMessage.
92
+
93
+ Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
94
+ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
95
+ })
96
+ ```
97
+
98
+ ## User Commands
99
+
100
+ | Command | Action |
101
+ |---------|--------|
102
+ | `check` / `status` | View iteration progress + convergence curve |
103
+ | `resume` / `continue` | Resume interrupted iteration |
104
+ | `feedback <text>` | Inject feedback into wisdom; applies at next iteration |
105
+ | `revise <ITER>` | Re-run a specific iteration (rare) |
106
+
107
+ ## Specs Reference
108
+
109
+ | Spec | Purpose |
110
+ |------|---------|
111
+ | [specs/swarm-protocol.md](specs/swarm-protocol.md) | Master protocol: script <-> coordinator interface, data flow |
112
+ | [specs/pheromone-schema.md](specs/pheromone-schema.md) | Pheromone JSON structure, update formula, evaporation |
113
+ | [specs/ant-output-schema.md](specs/ant-output-schema.md) | Critical contract for ant JSON artifacts |
114
+ | [specs/convergence-criteria.md](specs/convergence-criteria.md) | Stop conditions, multi-criterion logic |
115
+ | [specs/swarm-config-template.json](specs/swarm-config-template.json) | User-facing config template with all knobs |
116
+
117
+ ## Scripts
118
+
119
+ | Script | Purpose | Invocation |
120
+ |--------|---------|------------|
121
+ | `scripts/aco.py` | Main CLI: init / select / update / converged / report | `python aco.py --session <path> <cmd>` |
122
+ | `scripts/pheromone.py` | Pheromone matrix module (imported by aco.py) | — |
123
+ | `scripts/scoring.py` | Pluggable scorer (script + fallback modes) | — |
124
+
125
+ ## Session Directory
126
+
127
+ ```
128
+ .workflow/.team/TS-<slug>-<date>/
129
+ ├── team-session.json # Session state
130
+ ├── swarm-config.json # User-facing config (Phase 1 output)
131
+ ├── role-binding.json # Worker role_spec path map
132
+ ├── task-space.json # Resolved nodes list
133
+ ├── pheromone/
134
+ │ ├── current.json # Latest pheromone (each iter overwrites)
135
+ │ ├── init.json # Frozen initial state
136
+ │ └── history/<iter>.json # Per-iter snapshot
137
+ ├── trails/<iter>.jsonl # Per-iter all-ant paths + scores
138
+ ├── scores/iter-<iter>-scores.json # Scorer output (if mode == llm)
139
+ ├── artifacts/
140
+ │ ├── ant-<iter>-<id>.json # Per-ant schema-locked output
141
+ │ ├── swarm-report.json # Phase 4 full report dump
142
+ │ └── best-solution.md # Analyst final synthesis
143
+ ├── best.json # Canonical best solution
144
+ ├── wisdom/ # learnings / decisions / issues
145
+ └── .msg/ # Message bus
146
+ ```
147
+
148
+ ## Completion Action
149
+
150
+ When swarm converges, coordinator presents:
151
+
152
+ ```
153
+ AskUserQuestion({
154
+ questions: [{
155
+ question: "Swarm pipeline complete. What would you like to do?",
156
+ header: "Completion",
157
+ multiSelect: false,
158
+ options: [
159
+ { label: "Archive & Clean (Recommended)", description: "Archive session, delete team" },
160
+ { label: "Keep Active", description: "Preserve for follow-up" },
161
+ { label: "Export Best Solution", description: "Copy best-solution.md to target" },
162
+ { label: "Run Another Round", description: "Reset convergence, K more iterations" }
163
+ ]
164
+ }]
165
+ })
166
+ ```
167
+
168
+ ## Error Handling
169
+
170
+ | Scenario | Resolution |
171
+ |----------|------------|
172
+ | `aco.py` not found | Verify `<skill_root>/scripts/aco.py`; check Python install |
173
+ | Python version < 3.10 | Use `python3` or report dependency error |
174
+ | Config validation fails | AskUserQuestion to fix, regenerate, retry |
175
+ | All ants fail in iteration | Halt, AskUserQuestion (retry / abort / refine config) |
176
+ | Hallucination cluster (>50%) | Pause, AskUserQuestion (continue / refine scoring) |
177
+ | Convergence never trips | `max_iterations` safety net always fires |
178
+ | Session corruption | Phase 0 reconciliation; archive if irrecoverable |