maestro-flow 0.4.17 → 0.4.18

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 (80) hide show
  1. package/.agents/skills/maestro/SKILL.md +1 -1
  2. package/.agents/skills/maestro-analyze/SKILL.md +5 -0
  3. package/.agents/skills/maestro-blueprint/SKILL.md +5 -0
  4. package/.agents/skills/maestro-brainstorm/SKILL.md +5 -0
  5. package/.agents/skills/maestro-next/SKILL.md +219 -0
  6. package/.agy/skills/maestro/SKILL.md +1 -1
  7. package/.agy/skills/maestro-analyze/SKILL.md +5 -0
  8. package/.agy/skills/maestro-blueprint/SKILL.md +5 -0
  9. package/.agy/skills/maestro-brainstorm/SKILL.md +5 -0
  10. package/.agy/skills/maestro-next/SKILL.md +215 -0
  11. package/.claude/commands/maestro-analyze.md +5 -0
  12. package/.claude/commands/maestro-blueprint.md +5 -0
  13. package/.claude/commands/maestro-brainstorm.md +5 -0
  14. package/.claude/commands/maestro-next.md +217 -0
  15. package/.claude/commands/maestro.md +1 -1
  16. package/.codex/skills/learn-decompose/SKILL.md +34 -3
  17. package/.codex/skills/learn-retro/SKILL.md +31 -1
  18. package/.codex/skills/learn-second-opinion/SKILL.md +34 -4
  19. package/.codex/skills/maestro-analyze/SKILL.md +44 -5
  20. package/.codex/skills/maestro-blueprint/SKILL.md +5 -0
  21. package/.codex/skills/maestro-brainstorm/SKILL.md +46 -0
  22. package/.codex/skills/maestro-execute/SKILL.md +61 -5
  23. package/.codex/skills/maestro-milestone-audit/SKILL.md +64 -13
  24. package/.codex/skills/maestro-milestone-complete/SKILL.md +12 -0
  25. package/.codex/skills/maestro-plan/SKILL.md +36 -1
  26. package/.codex/skills/maestro-player/SKILL.md +25 -6
  27. package/.codex/skills/maestro-ralph/SKILL.md +17 -10
  28. package/.codex/skills/maestro-ralph-execute/SKILL.md +2 -1
  29. package/.codex/skills/maestro-roadmap/SKILL.md +35 -4
  30. package/.codex/skills/maestro-ui-codify/SKILL.md +38 -10
  31. package/.codex/skills/maestro-verify/SKILL.md +40 -5
  32. package/.codex/skills/manage-codebase-rebuild/SKILL.md +52 -5
  33. package/.codex/skills/manage-issue-discover/SKILL.md +106 -15
  34. package/.codex/skills/quality-auto-test/SKILL.md +70 -16
  35. package/.codex/skills/quality-debug/SKILL.md +139 -28
  36. package/.codex/skills/quality-refactor/SKILL.md +61 -11
  37. package/.codex/skills/quality-review/SKILL.md +45 -9
  38. package/.codex/skills/quality-test/SKILL.md +58 -3
  39. package/.codex/skills/security-audit/SKILL.md +38 -0
  40. package/.codex/skills/spec-map/SKILL.md +65 -8
  41. package/.codex/skills/team-coordinate/SKILL.md +28 -11
  42. package/.codex/skills/team-coordinate/specs/role-catalog.md +20 -0
  43. package/.codex/skills/team-lifecycle-v4/SKILL.md +23 -7
  44. package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +20 -0
  45. package/.codex/skills/team-quality-assurance/SKILL.md +40 -2
  46. package/.codex/skills/team-review/SKILL.md +42 -2
  47. package/.codex/skills/team-tech-debt/SKILL.md +45 -2
  48. package/.codex/skills/team-testing/SKILL.md +42 -2
  49. package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +6 -4
  50. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +50 -8
  51. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  52. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.d.ts +32 -0
  53. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +294 -0
  54. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
  55. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +1 -0
  56. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +35 -1
  57. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  58. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +235 -0
  59. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  60. package/dist/src/ralph/cmd-check.js +1 -1
  61. package/dist/src/ralph/cmd-check.js.map +1 -1
  62. package/dist/src/ralph/cmd-complete.js +1 -1
  63. package/dist/src/ralph/cmd-complete.js.map +1 -1
  64. package/dist/src/ralph/cmd-next.d.ts.map +1 -1
  65. package/dist/src/ralph/cmd-next.js +12 -4
  66. package/dist/src/ralph/cmd-next.js.map +1 -1
  67. package/dist/src/ralph/cmd-session.js +2 -2
  68. package/dist/src/ralph/cmd-session.js.map +1 -1
  69. package/dist/src/ralph/status-store.d.ts +8 -1
  70. package/dist/src/ralph/status-store.d.ts.map +1 -1
  71. package/dist/src/ralph/status-store.js +12 -2
  72. package/dist/src/ralph/status-store.js.map +1 -1
  73. package/dist/src/tools/store-knowhow.d.ts.map +1 -1
  74. package/dist/src/tools/store-knowhow.js +51 -64
  75. package/dist/src/tools/store-knowhow.js.map +1 -1
  76. package/dist/src/utils/update-notices.js +12 -0
  77. package/dist/src/utils/update-notices.js.map +1 -1
  78. package/package.json +1 -1
  79. package/workflows/finish-work.md +119 -0
  80. package/workflows/milestone-complete.md +23 -1
@@ -25,7 +25,7 @@ Entry points:
25
25
  - **`/maestro --dry-run "intent"`** — Show chain, no execution
26
26
  - **`/maestro --super "intent"`** — Production-ready mode (read maestro-super.md)
27
27
 
28
- Session: `.workflow/.maestro/{session_id}/status.json`
28
+ **Session**: `.workflow/.maestro/{session_id}/status.json` — 工作流唯一真源。session_id 格式 `maestro-{YYYYMMDD-HHmmss}`(本 command 创建,静态链)或 `ralph-{YYYYMMDD-HHmmss}`(`/maestro-ralph` 创建,自适应链)。两类都由 `/maestro-ralph-execute` 推进;schema 与 ralph 共用(含 `ralph_protocol_version: "1"` + `active_step_index`)。
29
29
  </purpose>
30
30
 
31
31
  <deferred_reading>
@@ -165,4 +165,9 @@ Both modes (full + quick):
165
165
  - [ ] Deferred items auto-created as issues (if any)
166
166
  - [ ] Artifact registered in state.json with correct scope/milestone/phase
167
167
  - [ ] Next step routed (impeccable/plan for Go, brainstorm for No-Go)
168
+ - [ ] Session sealed via finish-work (archive.json written, optional spec/knowhow extraction)
168
169
  </success_criteria>
170
+
171
+ <on_complete>
172
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR=OUTPUT_DIR, SESSION_TYPE=analyze, SESSION_ID={artifact_id}, LINKED_MILESTONE={target_milestone or null}
173
+ </on_complete>
@@ -130,4 +130,9 @@ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail
130
130
  - [ ] Readiness gate: Pass (>=80%) or Review (>=60%) with documented caveats
131
131
  - [ ] Artifact registered in state.json (type=blueprint)
132
132
  - [ ] context-package.json generated for downstream consumption
133
+ - [ ] On gate Pass/Review: session sealed via finish-work (archive.json + optional spec/knowhow extraction). On Fail: skip — session stays active, excluded from wiki search.
133
134
  </success_criteria>
135
+
136
+ <on_complete>
137
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={session_dir}, SESSION_TYPE=blueprint, SESSION_ID={session_id}, LINKED_MILESTONE=null
138
+ </on_complete>
@@ -132,4 +132,9 @@ Single role mode:
132
132
  - [ ] `{role}/analysis-F-*.md` written when guidance §10 feature list available
133
133
  - [ ] §2 Decisions table references guidance decision IDs
134
134
  - [ ] Session metadata updated
135
+ - [ ] Session sealed via finish-work (auto mode only)
135
136
  </success_criteria>
137
+
138
+ <on_complete>
139
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={output_dir}, SESSION_TYPE=brainstorm, SESSION_ID={artifact_id}, LINKED_MILESTONE=null
140
+ </on_complete>
@@ -0,0 +1,219 @@
1
+ ---
2
+ name: maestro-next
3
+ description: Single-command recommendation — pick the best next command from the pool and execute it
4
+ argument-hint: "<intent> [-y] [--dry-run] [--top N] [--list]"
5
+ allowed-tools:
6
+ - read_file
7
+ - shell
8
+ - find_files
9
+ - search
10
+ - invoke_skill
11
+ - ask_user
12
+ ---
13
+ <!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
14
+
15
+
16
+ <purpose>
17
+ 单链推荐:根据用户输入意图,从 `.claude/commands/` 命令池中挑选**最匹配的单个命令**,确认后通过 `invoke_skill()` 执行。
18
+
19
+ 与 `/maestro` / `/maestro-ralph` 的区别:
20
+ - `/maestro`、`/maestro-ralph`、`/maestro-ralph-execute`、`/maestro-ralph-beta`、`/maestro-player`、`/maestro-composer` 是**多步管线编排器**,本命令不会推荐它们
21
+ - 本命令始终只推荐 **1 个原子命令**(top pick),最多列出 2-3 个备选;选定后直接执行,无 session、无 chain
22
+ - 适用场景:用户意图清晰、只需单步即可完成;或不确定该走哪个具体命令时获取定向推荐
23
+ </purpose>
24
+
25
+ <context>
26
+ $ARGUMENTS — 用户意图文本 + 可选 flags。
27
+
28
+ **Flags:**
29
+ - `-y` / `--yes` — 自动模式:跳过确认,直接执行 top pick
30
+ - `--dry-run` — 仅显示推荐结果,不执行
31
+ - `--top N` — 显示前 N 个候选供选择(默认 3)
32
+ - `--list` — 仅列出可推荐命令池,不做推荐
33
+
34
+ **候选池:** 仅 Step 3 路由表中列出的命令参与推荐。表中未出现的命令(含管线编排器 `maestro` / `maestro-ralph*` / `maestro-player` / `maestro-composer` 等)不会被本命令推荐。
35
+ </context>
36
+
37
+ <execution>
38
+
39
+ ### Step 1: Parse Arguments
40
+
41
+ 解析 `-y` / `--dry-run` / `--top N` / `--list`,剩余文本作为 `intent`。
42
+
43
+ - `--list` 模式 → 跳到 Step 3(仅列表)
44
+ - `intent` 为空且非 `--list` → `ask_user`:让用户输入意图(最多 1 轮,仍空则 E001)
45
+
46
+ ### Step 2: 读取 Workflow 状态(智能推荐基础)
47
+
48
+ 读取以下项目状态,用于推断"当前生命周期位置"和"自然下一步":
49
+
50
+ ```bash
51
+ # 1. 当前 phase / milestone / 最新 artifact
52
+ cat .workflow/state.json 2>$null
53
+
54
+ # 2. 最近 artifact 目录(按 mtime 倒序,取前 3)
55
+ ls -la .workflow/scratch/ 2>$null | head -10
56
+
57
+ # 3. 是否有进行中的 ralph/maestro session
58
+ ls -la .workflow/.maestro/ 2>$null | head -5
59
+ ```
60
+
61
+ 根据读取结果推断 **lifecycle_position**(用作下一步推荐的核心信号):
62
+
63
+ | 项目状态特征 | lifecycle_position | 自然下一步 |
64
+ |--------------|-------------------|-----------|
65
+ | 无 `.workflow/` + 无源码 | `brainstorm` | `maestro-brainstorm` |
66
+ | 无 `.workflow/` + 有源码 | `init` | `maestro-init` |
67
+ | 有 state.json,无 roadmap.md,无 milestones | `analyze-macro` | `maestro-analyze` (宏观调研) |
68
+ | 有 macro analyze artifact,无 roadmap.md | `roadmap` | `maestro-roadmap` |
69
+ | 有 roadmap,未启动 phase | `analyze` | `maestro-analyze {phase}` |
70
+ | 最新 artifact = `analyze` | `plan` | `maestro-plan {phase}` |
71
+ | 最新 artifact = `plan` | `execute` | `maestro-execute {phase}` |
72
+ | 最新 artifact = `execute` | `verify` | `maestro-verify {phase}` |
73
+ | 最新 artifact = `verify`,passed | `review` | `quality-review {phase}` |
74
+ | 最新 artifact = `review`,verdict=PASS | `test-gen` | `quality-auto-test {phase}` |
75
+ | 最新 artifact = `test`,全绿 | `milestone-audit` | `maestro-milestone-audit` |
76
+ | 当前 milestone 全部 phase 完成 | `milestone-complete` | `maestro-milestone-complete` |
77
+ | 任一 stage 产物含 gaps/failed | `debug` | `quality-debug {gap}` |
78
+
79
+ **Maestro Lifecycle 主线(核心 workflow,供推断"下一步"使用):**
80
+
81
+ ```
82
+ brainstorm → blueprint → init → analyze-macro → roadmap
83
+ → [per phase] analyze → plan → execute → verify
84
+ → [quality gate] review → auto-test → test
85
+ → milestone-audit → milestone-complete → milestone-release
86
+ ```
87
+
88
+ **辅助 workflow 簇**(按场景触发,非主线):
89
+
90
+ | Workflow 簇 | 触发场景 | 主推命令 |
91
+ |-------------|---------|---------|
92
+ | Learning | 接触新代码/未知模块 | `learn-follow` → `learn-decompose` → `learn-second-opinion` |
93
+ | Knowledge | 提炼经验 / 沉淀知识 | `manage-harvest` → `manage-knowhow-capture` → `spec-add` |
94
+ | Wiki 维护 | 知识图谱整理 | `manage-wiki` → `wiki-connect` → `wiki-digest` |
95
+ | Issue 治理 | 缺陷管理 | `manage-issue-discover` → `manage-issue` |
96
+ | 文档同步 | 代码大改后 | `quality-sync` → `manage-codebase-refresh` |
97
+ | 重构 | 技术债积累 | `quality-refactor` → `quality-review` |
98
+ | 发布 | 里程碑结束 | `maestro-milestone-audit` → `maestro-milestone-release` |
99
+ | 并行开发 | 多 milestone 并行 | `maestro-fork` → ... → `maestro-merge` |
100
+
101
+ ### Step 2.5: Semantic Match & Rank
102
+
103
+ 综合以下信号对路由表中的命令评分(高→低):
104
+
105
+ | 信号 | 权重 | 说明 |
106
+ |------|------|------|
107
+ | intent 命中路由表行的关键词 | 高 | 字面匹配主依据 |
108
+ | **lifecycle_position 的"自然下一步"** | **高** | 当 intent 含"继续/下一步/next/接下来"或为空时,此信号上升为决定性 |
109
+ | `name` 关键词命中 intent | 中 | 如 intent 含 "test" → quality-test/quality-auto-test 加分 |
110
+ | Workflow 簇匹配 | 中 | intent 涉及学习/知识/issue 等场景时触发对应簇 |
111
+ | Recent activity 反向避免 | 低 | 刚完成的 stage 在短期内降权 |
112
+
113
+ **特殊意图处理:**
114
+
115
+ | Intent 模式 | 处理 |
116
+ |------------|------|
117
+ | 空 / "继续" / "下一步" / "next" / "接下来怎么走" | 直接按 lifecycle_position 的"自然下一步"作为 top pick |
118
+ | "什么状态" / "现在到哪了" / "status" | top pick = `manage-status` |
119
+ | 字面命中路由表关键词 | 路由表优先,lifecycle 作为加分项 |
120
+ | 无任何匹配 | top pick = lifecycle 自然下一步 + W002 警告 |
121
+
122
+ **意图 → 命令路由表**(候选池等于本表 + 上方"自然下一步"建议):
123
+
124
+ | 意图关键词 | 推荐命令 |
125
+ |-----------|---------|
126
+ | 头脑风暴 / 探索 / brainstorm / ideate | `maestro-brainstorm` |
127
+ | 规格 / 正式文档 / spec-generate / blueprint | `maestro-blueprint` |
128
+ | 分析 / analyze / 多维度调研 | `maestro-analyze` |
129
+ | 规划 / plan / 任务分解 | `maestro-plan` |
130
+ | 实现 / 执行 / execute | `maestro-execute` |
131
+ | 验证 / verify / 验收 | `maestro-verify` |
132
+ | 调试 / debug / 排查 / bug | `quality-debug` |
133
+ | 审查 / review / 代码审查 | `quality-review` |
134
+ | 测试 / test / UAT | `quality-test` / `quality-auto-test` |
135
+ | 重构 / refactor / 技术债 | `quality-refactor` |
136
+ | 同步文档 / sync docs | `quality-sync` |
137
+ | 回顾 / retro | `quality-retrospective` / `learn-retro` |
138
+ | issue / 缺陷管理 | `manage-issue` / `manage-issue-discover` |
139
+ | wiki / 知识图谱 | `manage-wiki` / `wiki-connect` / `wiki-digest` |
140
+ | spec / 规则 / 约束 | `spec-load` / `spec-add` / `spec-setup` |
141
+ | 项目初始化 / init | `maestro-init` |
142
+ | 状态 / status / 仪表盘 | `manage-status` |
143
+ | 文档重建 / codebase 文档 | `manage-codebase-rebuild` / `manage-codebase-refresh` |
144
+ | 安全 / security / OWASP | `security-audit` |
145
+ | 跟读 / 学习 / 阅读源码 | `learn-follow` / `learn-investigate` |
146
+ | 第二意见 / challenge / consult | `learn-second-opinion` |
147
+ | 提取知识 / harvest | `manage-harvest` / `manage-knowhow-capture` |
148
+ | 设计 / UI / 前端打磨 | `maestro-impeccable` |
149
+ | 里程碑 / milestone | `maestro-milestone-audit` / `maestro-milestone-release` / `maestro-milestone-complete` |
150
+ | fork / 分支 / 并行开发 | `maestro-fork` / `maestro-merge` |
151
+ | 覆盖层 / overlay / amend | `maestro-overlay` / `maestro-amend` |
152
+
153
+ 输出 ranked candidates,取 top N(默认 3)。
154
+
155
+ ### Step 3: Present & Confirm
156
+
157
+ **`--list` 模式:** 按类别(maestro / manage / quality / learn / spec / wiki / security)分组展示所有候选 + description,结束。
158
+
159
+ **正常模式:**
160
+
161
+ 显示:
162
+ ```
163
+ 🎯 推荐 (top pick): /<command-name>
164
+ <description>
165
+ 推荐理由: <一句话说明为什么命中>
166
+
167
+ 备选:
168
+ 2. /<alt-1> — <description>
169
+ 3. /<alt-2> — <description>
170
+
171
+ 执行参数: <args-to-pass>
172
+ ```
173
+
174
+ - `--dry-run` → 显示后结束
175
+ - `-y` → 直接执行 top pick
176
+ - 否则 → `ask_user` 让用户:执行 top pick / 选备选 / 修改参数 / 取消
177
+
178
+ ### Step 4: Execute
179
+
180
+ 通过 `invoke_skill({ skill: "<chosen-command-name>", args: "<args>" })` 执行。
181
+
182
+ **参数传递:**
183
+ - 默认把 intent 原文作为第一个参数传给目标命令
184
+ - 若用户在 Step 3 修改了参数,使用修改后的版本
185
+ - `-y` flag 透传给目标命令(如果目标命令支持)
186
+
187
+ 执行完成后显示:
188
+ ```
189
+ ✅ 已执行 /<command-name>
190
+ ```
191
+
192
+ 不创建 session、不写 status.json、不做后续 chain — 由目标命令自行管理其产出。
193
+
194
+ </execution>
195
+
196
+ <error_codes>
197
+ | Code | Severity | Condition | Recovery |
198
+ |------|----------|-----------|----------|
199
+ | E001 | error | 未提供 intent 且 clarification 后仍为空 | 提供意图描述或使用 `--list` 浏览命令池 |
200
+ | E002 | error | 候选池为空(commands 目录不存在或无 .md 文件) | 检查 `.claude/commands/` 是否存在 |
201
+ | E003 | error | 用户选择的命令名无法解析为有效 skill | 列出有效命令名让用户重选 |
202
+ | W001 | warning | 多个命令得分接近(top1 与 top2 差距 < 阈值) | 强制展示前 3,让用户裁决 |
203
+ | W002 | warning | intent 与所有候选匹配度均低 | 提示用户考虑 `/maestro` 或 `/maestro-ralph` 走管线 |
204
+ </error_codes>
205
+
206
+ <success_criteria>
207
+ - [ ] Intent 解析 + flags 提取完成
208
+ - [ ] 读取 `.workflow/state.json` + scratch artifacts 推断 lifecycle_position
209
+ - [ ] 候选池等于路由表(管线编排器自然不在表中)
210
+ - [ ] 评分综合:intent 字面匹配 + lifecycle 自然下一步 + workflow 簇 + recent activity
211
+ - [ ] 空 intent / "继续" / "下一步" → 直接采用 lifecycle 推断的下一步
212
+ - [ ] top pick 展示时附"推荐理由"(命中规则 + lifecycle 位置)
213
+ - [ ] `--dry-run` 仅展示,不执行
214
+ - [ ] `-y` 自动执行 top pick
215
+ - [ ] 非自动模式下,用户通过 ask_user 确认或选择备选
216
+ - [ ] 选定命令通过 `invoke_skill()` 单次调用执行
217
+ - [ ] 不创建 session、不生成 status.json、不触发后续 chain
218
+ - [ ] `--list` 模式按 workflow 簇(主线 / Learning / Knowledge / Wiki / Issue / 文档 / 重构 / 发布 / 并行)分组展示
219
+ </success_criteria>
@@ -24,7 +24,7 @@ Entry points:
24
24
  - **`/maestro --dry-run "intent"`** — Show chain, no execution
25
25
  - **`/maestro --super "intent"`** — Production-ready mode (read maestro-super.md)
26
26
 
27
- Session: `.workflow/.maestro/{session_id}/status.json`
27
+ **Session**: `.workflow/.maestro/{session_id}/status.json` — 工作流唯一真源。session_id 格式 `maestro-{YYYYMMDD-HHmmss}`(本 command 创建,静态链)或 `ralph-{YYYYMMDD-HHmmss}`(`/maestro-ralph` 创建,自适应链)。两类都由 `/maestro-ralph-execute` 推进;schema 与 ralph 共用(含 `ralph_protocol_version: "1"` + `active_step_index`)。
28
28
  </purpose>
29
29
 
30
30
  <deferred_reading>
@@ -165,4 +165,9 @@ Both modes (full + quick):
165
165
  - [ ] Deferred items auto-created as issues (if any)
166
166
  - [ ] Artifact registered in state.json with correct scope/milestone/phase
167
167
  - [ ] Next step routed (impeccable/plan for Go, brainstorm for No-Go)
168
+ - [ ] Session sealed via finish-work (archive.json written, optional spec/knowhow extraction)
168
169
  </success_criteria>
170
+
171
+ <on_complete>
172
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR=OUTPUT_DIR, SESSION_TYPE=analyze, SESSION_ID={artifact_id}, LINKED_MILESTONE={target_milestone or null}
173
+ </on_complete>
@@ -130,4 +130,9 @@ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail
130
130
  - [ ] Readiness gate: Pass (>=80%) or Review (>=60%) with documented caveats
131
131
  - [ ] Artifact registered in state.json (type=blueprint)
132
132
  - [ ] context-package.json generated for downstream consumption
133
+ - [ ] On gate Pass/Review: session sealed via finish-work (archive.json + optional spec/knowhow extraction). On Fail: skip — session stays active, excluded from wiki search.
133
134
  </success_criteria>
135
+
136
+ <on_complete>
137
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={session_dir}, SESSION_TYPE=blueprint, SESSION_ID={session_id}, LINKED_MILESTONE=null
138
+ </on_complete>
@@ -132,4 +132,9 @@ Single role mode:
132
132
  - [ ] `{role}/analysis-F-*.md` written when guidance §10 feature list available
133
133
  - [ ] §2 Decisions table references guidance decision IDs
134
134
  - [ ] Session metadata updated
135
+ - [ ] Session sealed via finish-work (auto mode only)
135
136
  </success_criteria>
137
+
138
+ <on_complete>
139
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={output_dir}, SESSION_TYPE=brainstorm, SESSION_ID={artifact_id}, LINKED_MILESTONE=null
140
+ </on_complete>
@@ -0,0 +1,215 @@
1
+ ---
2
+ name: maestro-next
3
+ description: Single-command recommendation — pick the best next command from the pool and execute it
4
+ argument-hint: <intent> [-y] [--dry-run] [--top N] [--list]
5
+ allowed-tools:
6
+ - ask_question
7
+ - grep_search
8
+ - run_command
9
+ - view_file
10
+ ---
11
+
12
+ <purpose>
13
+ 单链推荐:根据用户输入意图,从 `.claude/commands/` 命令池中挑选**最匹配的单个命令**,确认后通过 `Skill()` 执行。
14
+
15
+ 与 `/maestro` / `/maestro-ralph` 的区别:
16
+ - `/maestro`、`/maestro-ralph`、`/maestro-ralph-execute`、`/maestro-ralph-beta`、`/maestro-player`、`/maestro-composer` 是**多步管线编排器**,本命令不会推荐它们
17
+ - 本命令始终只推荐 **1 个原子命令**(top pick),最多列出 2-3 个备选;选定后直接执行,无 session、无 chain
18
+ - 适用场景:用户意图清晰、只需单步即可完成;或不确定该走哪个具体命令时获取定向推荐
19
+ </purpose>
20
+
21
+ <context>
22
+ $ARGUMENTS — 用户意图文本 + 可选 flags。
23
+
24
+ **Flags:**
25
+ - `-y` / `--yes` — 自动模式:跳过确认,直接执行 top pick
26
+ - `--dry-run` — 仅显示推荐结果,不执行
27
+ - `--top N` — 显示前 N 个候选供选择(默认 3)
28
+ - `--list` — 仅列出可推荐命令池,不做推荐
29
+
30
+ **候选池:** 仅 Step 3 路由表中列出的命令参与推荐。表中未出现的命令(含管线编排器 `maestro` / `maestro-ralph*` / `maestro-player` / `maestro-composer` 等)不会被本命令推荐。
31
+ </context>
32
+
33
+ <execution>
34
+
35
+ ### Step 1: Parse Arguments
36
+
37
+ 解析 `-y` / `--dry-run` / `--top N` / `--list`,剩余文本作为 `intent`。
38
+
39
+ - `--list` 模式 → 跳到 Step 3(仅列表)
40
+ - `intent` 为空且非 `--list` → `ask_question`:让用户输入意图(最多 1 轮,仍空则 E001)
41
+
42
+ ### Step 2: 读取 Workflow 状态(智能推荐基础)
43
+
44
+ 读取以下项目状态,用于推断"当前生命周期位置"和"自然下一步":
45
+
46
+ ```bash
47
+ # 1. 当前 phase / milestone / 最新 artifact
48
+ cat .workflow/state.json 2>$null
49
+
50
+ # 2. 最近 artifact 目录(按 mtime 倒序,取前 3)
51
+ ls -la .workflow/scratch/ 2>$null | head -10
52
+
53
+ # 3. 是否有进行中的 ralph/maestro session
54
+ ls -la .workflow/.maestro/ 2>$null | head -5
55
+ ```
56
+
57
+ 根据读取结果推断 **lifecycle_position**(用作下一步推荐的核心信号):
58
+
59
+ | 项目状态特征 | lifecycle_position | 自然下一步 |
60
+ |--------------|-------------------|-----------|
61
+ | 无 `.workflow/` + 无源码 | `brainstorm` | `maestro-brainstorm` |
62
+ | 无 `.workflow/` + 有源码 | `init` | `maestro-init` |
63
+ | 有 state.json,无 roadmap.md,无 milestones | `analyze-macro` | `maestro-analyze` (宏观调研) |
64
+ | 有 macro analyze artifact,无 roadmap.md | `roadmap` | `maestro-roadmap` |
65
+ | 有 roadmap,未启动 phase | `analyze` | `maestro-analyze {phase}` |
66
+ | 最新 artifact = `analyze` | `plan` | `maestro-plan {phase}` |
67
+ | 最新 artifact = `plan` | `execute` | `maestro-execute {phase}` |
68
+ | 最新 artifact = `execute` | `verify` | `maestro-verify {phase}` |
69
+ | 最新 artifact = `verify`,passed | `review` | `quality-review {phase}` |
70
+ | 最新 artifact = `review`,verdict=PASS | `test-gen` | `quality-auto-test {phase}` |
71
+ | 最新 artifact = `test`,全绿 | `milestone-audit` | `maestro-milestone-audit` |
72
+ | 当前 milestone 全部 phase 完成 | `milestone-complete` | `maestro-milestone-complete` |
73
+ | 任一 stage 产物含 gaps/failed | `debug` | `quality-debug {gap}` |
74
+
75
+ **Maestro Lifecycle 主线(核心 workflow,供推断"下一步"使用):**
76
+
77
+ ```
78
+ brainstorm → blueprint → init → analyze-macro → roadmap
79
+ → [per phase] analyze → plan → execute → verify
80
+ → [quality gate] review → auto-test → test
81
+ → milestone-audit → milestone-complete → milestone-release
82
+ ```
83
+
84
+ **辅助 workflow 簇**(按场景触发,非主线):
85
+
86
+ | Workflow 簇 | 触发场景 | 主推命令 |
87
+ |-------------|---------|---------|
88
+ | Learning | 接触新代码/未知模块 | `learn-follow` → `learn-decompose` → `learn-second-opinion` |
89
+ | Knowledge | 提炼经验 / 沉淀知识 | `manage-harvest` → `manage-knowhow-capture` → `spec-add` |
90
+ | Wiki 维护 | 知识图谱整理 | `manage-wiki` → `wiki-connect` → `wiki-digest` |
91
+ | Issue 治理 | 缺陷管理 | `manage-issue-discover` → `manage-issue` |
92
+ | 文档同步 | 代码大改后 | `quality-sync` → `manage-codebase-refresh` |
93
+ | 重构 | 技术债积累 | `quality-refactor` → `quality-review` |
94
+ | 发布 | 里程碑结束 | `maestro-milestone-audit` → `maestro-milestone-release` |
95
+ | 并行开发 | 多 milestone 并行 | `maestro-fork` → ... → `maestro-merge` |
96
+
97
+ ### Step 2.5: Semantic Match & Rank
98
+
99
+ 综合以下信号对路由表中的命令评分(高→低):
100
+
101
+ | 信号 | 权重 | 说明 |
102
+ |------|------|------|
103
+ | intent 命中路由表行的关键词 | 高 | 字面匹配主依据 |
104
+ | **lifecycle_position 的"自然下一步"** | **高** | 当 intent 含"继续/下一步/next/接下来"或为空时,此信号上升为决定性 |
105
+ | `name` 关键词命中 intent | 中 | 如 intent 含 "test" → quality-test/quality-auto-test 加分 |
106
+ | Workflow 簇匹配 | 中 | intent 涉及学习/知识/issue 等场景时触发对应簇 |
107
+ | Recent activity 反向避免 | 低 | 刚完成的 stage 在短期内降权 |
108
+
109
+ **特殊意图处理:**
110
+
111
+ | Intent 模式 | 处理 |
112
+ |------------|------|
113
+ | 空 / "继续" / "下一步" / "next" / "接下来怎么走" | 直接按 lifecycle_position 的"自然下一步"作为 top pick |
114
+ | "什么状态" / "现在到哪了" / "status" | top pick = `manage-status` |
115
+ | 字面命中路由表关键词 | 路由表优先,lifecycle 作为加分项 |
116
+ | 无任何匹配 | top pick = lifecycle 自然下一步 + W002 警告 |
117
+
118
+ **意图 → 命令路由表**(候选池等于本表 + 上方"自然下一步"建议):
119
+
120
+ | 意图关键词 | 推荐命令 |
121
+ |-----------|---------|
122
+ | 头脑风暴 / 探索 / brainstorm / ideate | `maestro-brainstorm` |
123
+ | 规格 / 正式文档 / spec-generate / blueprint | `maestro-blueprint` |
124
+ | 分析 / analyze / 多维度调研 | `maestro-analyze` |
125
+ | 规划 / plan / 任务分解 | `maestro-plan` |
126
+ | 实现 / 执行 / execute | `maestro-execute` |
127
+ | 验证 / verify / 验收 | `maestro-verify` |
128
+ | 调试 / debug / 排查 / bug | `quality-debug` |
129
+ | 审查 / review / 代码审查 | `quality-review` |
130
+ | 测试 / test / UAT | `quality-test` / `quality-auto-test` |
131
+ | 重构 / refactor / 技术债 | `quality-refactor` |
132
+ | 同步文档 / sync docs | `quality-sync` |
133
+ | 回顾 / retro | `quality-retrospective` / `learn-retro` |
134
+ | issue / 缺陷管理 | `manage-issue` / `manage-issue-discover` |
135
+ | wiki / 知识图谱 | `manage-wiki` / `wiki-connect` / `wiki-digest` |
136
+ | spec / 规则 / 约束 | `spec-load` / `spec-add` / `spec-setup` |
137
+ | 项目初始化 / init | `maestro-init` |
138
+ | 状态 / status / 仪表盘 | `manage-status` |
139
+ | 文档重建 / codebase 文档 | `manage-codebase-rebuild` / `manage-codebase-refresh` |
140
+ | 安全 / security / OWASP | `security-audit` |
141
+ | 跟读 / 学习 / 阅读源码 | `learn-follow` / `learn-investigate` |
142
+ | 第二意见 / challenge / consult | `learn-second-opinion` |
143
+ | 提取知识 / harvest | `manage-harvest` / `manage-knowhow-capture` |
144
+ | 设计 / UI / 前端打磨 | `maestro-impeccable` |
145
+ | 里程碑 / milestone | `maestro-milestone-audit` / `maestro-milestone-release` / `maestro-milestone-complete` |
146
+ | fork / 分支 / 并行开发 | `maestro-fork` / `maestro-merge` |
147
+ | 覆盖层 / overlay / amend | `maestro-overlay` / `maestro-amend` |
148
+
149
+ 输出 ranked candidates,取 top N(默认 3)。
150
+
151
+ ### Step 3: Present & Confirm
152
+
153
+ **`--list` 模式:** 按类别(maestro / manage / quality / learn / spec / wiki / security)分组展示所有候选 + description,结束。
154
+
155
+ **正常模式:**
156
+
157
+ 显示:
158
+ ```
159
+ 🎯 推荐 (top pick): /<command-name>
160
+ <description>
161
+ 推荐理由: <一句话说明为什么命中>
162
+
163
+ 备选:
164
+ 2. /<alt-1> — <description>
165
+ 3. /<alt-2> — <description>
166
+
167
+ 执行参数: <args-to-pass>
168
+ ```
169
+
170
+ - `--dry-run` → 显示后结束
171
+ - `-y` → 直接执行 top pick
172
+ - 否则 → `ask_question` 让用户:执行 top pick / 选备选 / 修改参数 / 取消
173
+
174
+ ### Step 4: Execute
175
+
176
+ 通过 `view_file(AbsolutePath="<agy-skills-dir>/<chosen-command-name>/SKILL.md") + execute inline (args: "<args>")` 执行。
177
+
178
+ **参数传递:**
179
+ - 默认把 intent 原文作为第一个参数传给目标命令
180
+ - 若用户在 Step 3 修改了参数,使用修改后的版本
181
+ - `-y` flag 透传给目标命令(如果目标命令支持)
182
+
183
+ 执行完成后显示:
184
+ ```
185
+ ✅ 已执行 /<command-name>
186
+ ```
187
+
188
+ 不创建 session、不写 status.json、不做后续 chain — 由目标命令自行管理其产出。
189
+
190
+ </execution>
191
+
192
+ <error_codes>
193
+ | Code | Severity | Condition | Recovery |
194
+ |------|----------|-----------|----------|
195
+ | E001 | error | 未提供 intent 且 clarification 后仍为空 | 提供意图描述或使用 `--list` 浏览命令池 |
196
+ | E002 | error | 候选池为空(commands 目录不存在或无 .md 文件) | 检查 `.claude/commands/` 是否存在 |
197
+ | E003 | error | 用户选择的命令名无法解析为有效 skill | 列出有效命令名让用户重选 |
198
+ | W001 | warning | 多个命令得分接近(top1 与 top2 差距 < 阈值) | 强制展示前 3,让用户裁决 |
199
+ | W002 | warning | intent 与所有候选匹配度均低 | 提示用户考虑 `/maestro` 或 `/maestro-ralph` 走管线 |
200
+ </error_codes>
201
+
202
+ <success_criteria>
203
+ - [ ] Intent 解析 + flags 提取完成
204
+ - [ ] 读取 `.workflow/state.json` + scratch artifacts 推断 lifecycle_position
205
+ - [ ] 候选池等于路由表(管线编排器自然不在表中)
206
+ - [ ] 评分综合:intent 字面匹配 + lifecycle 自然下一步 + workflow 簇 + recent activity
207
+ - [ ] 空 intent / "继续" / "下一步" → 直接采用 lifecycle 推断的下一步
208
+ - [ ] top pick 展示时附"推荐理由"(命中规则 + lifecycle 位置)
209
+ - [ ] `--dry-run` 仅展示,不执行
210
+ - [ ] `-y` 自动执行 top pick
211
+ - [ ] 非自动模式下,用户通过 ask_question 确认或选择备选
212
+ - [ ] 选定命令通过 `Skill()` 单次调用执行
213
+ - [ ] 不创建 session、不生成 status.json、不触发后续 chain
214
+ - [ ] `--list` 模式按 workflow 簇(主线 / Learning / Knowledge / Wiki / Issue / 文档 / 重构 / 发布 / 并行)分组展示
215
+ </success_criteria>
@@ -163,4 +163,9 @@ Both modes (full + quick):
163
163
  - [ ] Deferred items auto-created as issues (if any)
164
164
  - [ ] Artifact registered in state.json with correct scope/milestone/phase
165
165
  - [ ] Next step routed (impeccable/plan for Go, brainstorm for No-Go)
166
+ - [ ] Session sealed via finish-work (archive.json written, optional spec/knowhow extraction)
166
167
  </success_criteria>
168
+
169
+ <on_complete>
170
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR=OUTPUT_DIR, SESSION_TYPE=analyze, SESSION_ID={artifact_id}, LINKED_MILESTONE={target_milestone or null}
171
+ </on_complete>
@@ -128,4 +128,9 @@ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail
128
128
  - [ ] Readiness gate: Pass (>=80%) or Review (>=60%) with documented caveats
129
129
  - [ ] Artifact registered in state.json (type=blueprint)
130
130
  - [ ] context-package.json generated for downstream consumption
131
+ - [ ] On gate Pass/Review: session sealed via finish-work (archive.json + optional spec/knowhow extraction). On Fail: skip — session stays active, excluded from wiki search.
131
132
  </success_criteria>
133
+
134
+ <on_complete>
135
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={session_dir}, SESSION_TYPE=blueprint, SESSION_ID={session_id}, LINKED_MILESTONE=null
136
+ </on_complete>
@@ -130,4 +130,9 @@ Single role mode:
130
130
  - [ ] `{role}/analysis-F-*.md` written when guidance §10 feature list available
131
131
  - [ ] §2 Decisions table references guidance decision IDs
132
132
  - [ ] Session metadata updated
133
+ - [ ] Session sealed via finish-work (auto mode only)
133
134
  </success_criteria>
135
+
136
+ <on_complete>
137
+ @~/.maestro/workflows/finish-work.md — SESSION_DIR={output_dir}, SESSION_TYPE=brainstorm, SESSION_ID={artifact_id}, LINKED_MILESTONE=null
138
+ </on_complete>