maestro-flow 0.4.11 → 0.4.13
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/.agents/agents/cli-explore-agent.md +1 -3
- package/.agents/agents/cross-role-reviewer.md +173 -0
- package/.agents/agents/role-design-author.md +220 -0
- package/.agents/agents/ui-design-agent.md +1 -18
- package/.agents/agents/workflow-analyzer.md +1 -1
- package/.agents/agents/workflow-external-researcher.md +1 -1
- package/.agents/skills/learn-decompose/SKILL.md +6 -6
- package/.agents/skills/learn-follow/SKILL.md +4 -4
- package/.agents/skills/learn-investigate/SKILL.md +6 -6
- package/.agents/skills/learn-retro/SKILL.md +7 -7
- package/.agents/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agents/skills/maestro/SKILL.md +61 -27
- package/.agents/skills/maestro-amend/SKILL.md +1 -0
- package/.agents/skills/maestro-analyze/SKILL.md +37 -4
- package/.agents/skills/maestro-blueprint/SKILL.md +133 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +120 -103
- package/.agents/skills/maestro-fork/SKILL.md +1 -1
- package/.agents/skills/maestro-guard/SKILL.md +3 -2
- package/.agents/skills/maestro-help/SKILL.md +48 -14
- package/.agents/skills/maestro-help/index/catalog.json +29 -11
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.agents/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.agents/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agents/skills/maestro-init/SKILL.md +3 -3
- package/.agents/skills/maestro-milestone-audit/SKILL.md +5 -3
- package/.agents/skills/maestro-milestone-complete/SKILL.md +7 -5
- package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agents/skills/maestro-plan/SKILL.md +16 -4
- package/.agents/skills/maestro-ralph/SKILL.md +297 -226
- package/.agents/skills/maestro-ralph-execute/SKILL.md +82 -67
- package/.agents/skills/maestro-roadmap/SKILL.md +43 -81
- package/.agents/skills/manage-harvest/SKILL.md +1 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agents/skills/manage-knowhow/SKILL.md +1 -1
- package/.agents/skills/manage-learn/SKILL.md +4 -4
- package/.agents/skills/quality-auto-test/SKILL.md +6 -6
- package/.agents/skills/quality-refactor/SKILL.md +1 -1
- package/.agents/skills/quality-retrospective/SKILL.md +2 -2
- package/.agents/skills/security-audit/SKILL.md +24 -0
- package/.agents/skills/spec-remove/SKILL.md +6 -2
- package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.agents/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.agents/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.agents/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.agy/agents/cli-explore-agent.md +1 -3
- package/.agy/agents/cross-role-reviewer.md +170 -0
- package/.agy/agents/role-design-author.md +217 -0
- package/.agy/agents/ui-design-agent.md +1 -18
- package/.agy/agents/workflow-analyzer.md +1 -1
- package/.agy/agents/workflow-external-researcher.md +1 -1
- package/.agy/skills/learn-decompose/SKILL.md +6 -6
- package/.agy/skills/learn-follow/SKILL.md +4 -4
- package/.agy/skills/learn-investigate/SKILL.md +6 -6
- package/.agy/skills/learn-retro/SKILL.md +7 -7
- package/.agy/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agy/skills/maestro/SKILL.md +61 -27
- package/.agy/skills/maestro-amend/SKILL.md +1 -0
- package/.agy/skills/maestro-analyze/SKILL.md +37 -4
- package/.agy/skills/maestro-blueprint/SKILL.md +133 -0
- package/.agy/skills/maestro-brainstorm/SKILL.md +120 -103
- package/.agy/skills/maestro-fork/SKILL.md +1 -1
- package/.agy/skills/maestro-guard/SKILL.md +3 -2
- package/.agy/skills/maestro-help/SKILL.md +48 -14
- package/.agy/skills/maestro-help/index/catalog.json +29 -11
- package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.agy/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agy/skills/maestro-init/SKILL.md +3 -3
- package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
- package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
- package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agy/skills/maestro-plan/SKILL.md +16 -4
- package/.agy/skills/maestro-ralph/SKILL.md +297 -226
- package/.agy/skills/maestro-ralph-execute/SKILL.md +82 -67
- package/.agy/skills/maestro-roadmap/SKILL.md +43 -81
- package/.agy/skills/manage-harvest/SKILL.md +1 -0
- package/.agy/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agy/skills/manage-knowhow/SKILL.md +1 -1
- package/.agy/skills/manage-learn/SKILL.md +4 -4
- package/.agy/skills/quality-auto-test/SKILL.md +6 -6
- package/.agy/skills/quality-refactor/SKILL.md +1 -1
- package/.agy/skills/quality-retrospective/SKILL.md +2 -2
- package/.agy/skills/security-audit/SKILL.md +24 -0
- package/.agy/skills/spec-remove/SKILL.md +6 -2
- package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.claude/agents/cli-explore-agent.md +1 -3
- package/.claude/agents/cross-role-reviewer.md +171 -0
- package/.claude/agents/role-design-author.md +218 -0
- package/.claude/agents/ui-design-agent.md +1 -18
- package/.claude/agents/workflow-analyzer.md +1 -1
- package/.claude/agents/workflow-external-researcher.md +1 -1
- package/.claude/commands/learn-decompose.md +6 -6
- package/.claude/commands/learn-follow.md +4 -4
- package/.claude/commands/learn-investigate.md +6 -6
- package/.claude/commands/learn-retro.md +7 -7
- package/.claude/commands/learn-second-opinion.md +4 -4
- package/.claude/commands/maestro-amend.md +1 -0
- package/.claude/commands/maestro-analyze.md +37 -4
- package/.claude/commands/maestro-blueprint.md +131 -0
- package/.claude/commands/maestro-brainstorm.md +133 -116
- package/.claude/commands/maestro-fork.md +1 -1
- package/.claude/commands/maestro-guard.md +3 -2
- package/.claude/commands/maestro-impeccable.md +13 -11
- package/.claude/commands/maestro-init.md +3 -3
- package/.claude/commands/maestro-milestone-audit.md +5 -3
- package/.claude/commands/maestro-milestone-complete.md +7 -5
- package/.claude/commands/maestro-milestone-release.md +1 -1
- package/.claude/commands/maestro-plan.md +16 -4
- package/.claude/commands/maestro-ralph-execute.md +82 -67
- package/.claude/commands/maestro-ralph.md +297 -226
- package/.claude/commands/maestro-roadmap.md +43 -81
- package/.claude/commands/maestro.md +61 -27
- package/.claude/commands/manage-harvest.md +1 -0
- package/.claude/commands/manage-issue-discover.md +1 -1
- package/.claude/commands/manage-knowhow.md +1 -1
- package/.claude/commands/manage-learn.md +4 -4
- package/.claude/commands/quality-auto-test.md +6 -6
- package/.claude/commands/quality-refactor.md +1 -1
- package/.claude/commands/quality-retrospective.md +2 -2
- package/.claude/commands/security-audit.md +24 -0
- package/.claude/commands/spec-remove.md +6 -2
- package/.claude/skills/maestro-help/SKILL.md +48 -14
- package/.claude/skills/maestro-help/index/catalog.json +29 -11
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.codex/skills/learn-decompose/SKILL.md +4 -4
- package/.codex/skills/learn-follow/SKILL.md +3 -3
- package/.codex/skills/learn-investigate/SKILL.md +3 -3
- package/.codex/skills/learn-retro/SKILL.md +3 -3
- package/.codex/skills/learn-second-opinion/SKILL.md +3 -3
- package/.codex/skills/maestro/SKILL.md +75 -38
- package/.codex/skills/maestro-amend/SKILL.md +157 -0
- package/.codex/skills/maestro-analyze/SKILL.md +72 -23
- package/.codex/skills/maestro-blueprint/SKILL.md +123 -0
- package/.codex/skills/maestro-brainstorm/SKILL.md +277 -46
- package/.codex/skills/maestro-composer/SKILL.md +1 -1
- package/.codex/skills/maestro-execute/SKILL.md +13 -4
- package/.codex/skills/maestro-fork/SKILL.md +2 -0
- package/.codex/skills/maestro-guard/SKILL.md +3 -2
- package/.codex/skills/maestro-help/SKILL.md +28 -18
- package/.codex/skills/maestro-help/catalog.json +29 -11
- package/.codex/skills/maestro-impeccable/SKILL.md +13 -11
- package/.codex/skills/maestro-init/SKILL.md +7 -7
- package/.codex/skills/maestro-plan/SKILL.md +27 -9
- package/.codex/skills/maestro-ralph/SKILL.md +740 -601
- package/.codex/skills/maestro-roadmap/SKILL.md +56 -72
- package/.codex/skills/maestro-update/SKILL.md +169 -0
- package/.codex/skills/maestro-verify/SKILL.md +11 -2
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +9 -5
- package/.codex/skills/manage-harvest/SKILL.md +11 -3
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +1 -1
- package/.codex/skills/manage-learn/SKILL.md +3 -3
- package/.codex/skills/quality-refactor/SKILL.md +2 -2
- package/.codex/skills/quality-retrospective/SKILL.md +12 -5
- package/.codex/skills/security-audit/SKILL.md +24 -0
- package/.codex/skills/spec-remove/SKILL.md +8 -2
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/README.md +8 -8
- package/README.zh-CN.md +8 -8
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +13 -7
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +8 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/tools/spec-init.d.ts +16 -2
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +58 -187
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +16 -16
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-seeds.d.ts +33 -0
- package/dist/src/tools/spec-seeds.d.ts.map +1 -0
- package/dist/src/tools/spec-seeds.js +200 -0
- package/dist/src/tools/spec-seeds.js.map +1 -0
- package/dist/src/tools/spec-writer.d.ts.map +1 -1
- package/dist/src/tools/spec-writer.js +7 -9
- package/dist/src/tools/spec-writer.js.map +1 -1
- package/dist/src/utils/update-notices.js +12 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +1 -1
- package/templates/business-test-report.json +1 -1
- package/templates/index.json +1 -1
- package/templates/roadmap.md +15 -9
- package/templates/state.json +18 -17
- package/workflows/agy-instructions.md +2 -0
- package/workflows/analyze.md +79 -11
- package/workflows/auto-test.md +12 -7
- package/workflows/blueprint.md +431 -0
- package/workflows/brainstorm.md +617 -496
- package/workflows/business-test.md +7 -7
- package/workflows/claude-instructions.md +2 -0
- package/workflows/codebase-rebuild.md +4 -4
- package/workflows/codex-instructions.md +16 -83
- package/workflows/debug.md +1 -1
- package/workflows/harvest.md +184 -10
- package/workflows/impeccable.md +2 -0
- package/workflows/init.md +9 -8
- package/workflows/issue-analyze.md +14 -100
- package/workflows/issue-discover.md +2 -3
- package/workflows/issue-execute.md +1 -1
- package/workflows/issue-gaps-analyze.md +2 -0
- package/workflows/learn.md +1 -1
- package/workflows/maestro-chain-execute.md +10 -228
- package/workflows/maestro.md +2 -1
- package/workflows/milestone-audit.md +12 -4
- package/workflows/milestone-complete.md +14 -9
- package/workflows/milestone-release.md +82 -0
- package/workflows/plan.md +91 -25
- package/workflows/retrospective.md +1 -1
- package/workflows/roadmap-common.md +1 -1
- package/workflows/roadmap.md +14 -4
- package/workflows/spec-generate.md +26 -13
- package/workflows/specs-add.md +6 -1
- package/workflows/specs-load.md +6 -1
- package/workflows/specs-setup.md +6 -1
- package/workflows/sync.md +13 -0
- package/workflows/tools-spec.md +4 -0
- package/workflows/ui-design.md +5 -5
- package/workflows/ui-style.md +1 -1
- package/workflows/wiki-manage.md +2 -0
- package/.agents/agents/conceptual-planning-agent.md +0 -247
- package/.agy/agents/conceptual-planning-agent.md +0 -244
- package/.claude/agents/conceptual-planning-agent.md +0 -245
|
@@ -31,19 +31,24 @@ Also read `session.auto_mode` from status.json — if true, treat as `-y`.
|
|
|
31
31
|
|
|
32
32
|
| Type | Execution | Flow after |
|
|
33
33
|
|------|-----------|------------|
|
|
34
|
-
| decision (ralph-only) | `Skill("maestro-ralph")`
|
|
35
|
-
| internal | `
|
|
36
|
-
| external | `maestro delegate --to claude --mode write`
|
|
37
|
-
|
|
38
|
-
HARD
|
|
39
|
-
|
|
34
|
+
| decision (ralph-only) | `Skill("maestro-ralph")` | Execution ends here |
|
|
35
|
+
| internal (default) | `view_file({file_path: step.command_path})` + 内联解释执行 | Self-invoke next |
|
|
36
|
+
| external (opt-in) | `maestro delegate --to claude --mode write` (STOP → callback) | Self-invoke next |
|
|
37
|
+
|
|
38
|
+
HARD RULES:
|
|
39
|
+
- internal step:优先通过 `view_file({command_path})` 把命令 .md 加载进当前会话,再按内容执行;不要对 internal step 使用 `Skill({skill})` 调用
|
|
40
|
+
- decision 节点例外:A_EXEC_DECISION 必须使用 `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` 进行 handoff(这是 decision 节点的唯一允许用法)
|
|
41
|
+
- `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json;ralph-execute 不再自行解析(缺失 → 报错 E002)
|
|
42
|
+
- external 仅在 `step.type == "external"` 显式声明时使用,并 always append `-y` 到 prompt args
|
|
43
|
+
- 每个 step 必须产出 `--- COMPLETION STATUS ---` 块,否则视为 NEEDS_RETRY
|
|
40
44
|
</context>
|
|
41
45
|
|
|
42
46
|
<invariants>
|
|
43
|
-
1. **
|
|
44
|
-
2. **External
|
|
45
|
-
3.
|
|
46
|
-
4. **
|
|
47
|
+
1. **Internal = Read + inline** — 通过 Read 读取 `step.command_path`,按其指令在当前 session 内执行
|
|
48
|
+
2. **External = explicit only** — `step.type == "external"` 才走 delegate;默认绝不发起
|
|
49
|
+
3. **必须显式 completion confirmation** — 每个 step 完成时需有 `STATUS: DONE` 且写入 `step.completion_confirmed = true`
|
|
50
|
+
4. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
|
|
51
|
+
5. **status.json 每步骤后写盘** — resume-safe
|
|
47
52
|
</invariants>
|
|
48
53
|
|
|
49
54
|
<state_machine>
|
|
@@ -52,8 +57,8 @@ HARD RULE: External nodes ALWAYS delegate to `claude` — only Claude Code can e
|
|
|
52
57
|
S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
|
|
53
58
|
S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
|
|
54
59
|
S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
|
|
55
|
-
S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.status, session.context
|
|
56
|
-
S_HANDLE_FAIL —
|
|
60
|
+
S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
|
|
61
|
+
S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
|
|
57
62
|
S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
|
|
58
63
|
S_FALLBACK — 无 session 可执行 PERSIST: —
|
|
59
64
|
</states>
|
|
@@ -125,9 +130,9 @@ S_FALLBACK:
|
|
|
125
130
|
| maestro-brainstorm | topic | `"{intent}"` |
|
|
126
131
|
| maestro-roadmap | description | `"{intent}"` |
|
|
127
132
|
| maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
|
|
128
|
-
| maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}`
|
|
129
|
-
| maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}`
|
|
130
|
-
| quality-debug | gap context | Read previous step's error/gap
|
|
133
|
+
| maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
134
|
+
| maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
|
|
135
|
+
| quality-debug | gap context | Read previous step's error/gap |
|
|
131
136
|
| quality-* | phase | `{phase}` |
|
|
132
137
|
|
|
133
138
|
**Artifact dir resolution for --dir:**
|
|
@@ -137,91 +142,97 @@ plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
|
|
|
137
142
|
execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
|
|
138
143
|
```
|
|
139
144
|
|
|
140
|
-
Write enriched args back to status.json
|
|
145
|
+
Write enriched args back to status.json.
|
|
141
146
|
|
|
142
147
|
### A_EXEC_DECISION
|
|
143
148
|
|
|
144
149
|
1. Mark step running, write status.json
|
|
145
|
-
2. Display: `[{index}/{total}] ◆ {
|
|
146
|
-
3. `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` — ralph
|
|
147
|
-
4.
|
|
150
|
+
2. Display: `[{index}/{total}] ◆ {decision} Retry: {retry}/{max}`
|
|
151
|
+
3. `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` — ralph 评估 + handoff
|
|
152
|
+
4. 执行在此结束
|
|
148
153
|
|
|
149
154
|
### A_EXEC_INTERNAL
|
|
150
155
|
|
|
151
|
-
1.
|
|
152
|
-
2.
|
|
153
|
-
3.
|
|
154
|
-
4. `
|
|
155
|
-
5.
|
|
156
|
+
1. Validate `step.command_path != null`;否则 raise E002,pause session
|
|
157
|
+
2. Mark step running, write status.json
|
|
158
|
+
3. Display: `[{index}/{total}] {step.skill} [internal · {step.command_scope}]`
|
|
159
|
+
4. `view_file({ file_path: step.command_path })` — 把命令 .md 全文加载进当前会话(prefer Read over Skill for internal steps;decision 节点另行使用 Skill 见 A_EXEC_DECISION)
|
|
160
|
+
5. 解析 frontmatter `argument-hint` 与 `<purpose>/<state_machine>/<actions>` 等指令块
|
|
161
|
+
6. 计算 `effective_args`:`step.args` + auto flag(`auto ? (flag_map[step.skill] || "") : ""`)
|
|
162
|
+
7. 按读到的指令在本会话中**内联执行**:调用允许的工具完成命令所规定的工作,不再发起 delegate
|
|
163
|
+
8. 执行结束:要求最后一段必须包含 `--- COMPLETION STATUS ---` 块(见 A_MARK_COMPLETE)
|
|
164
|
+
9. Return success / failure
|
|
156
165
|
|
|
157
|
-
**Auto flag map
|
|
166
|
+
**Auto flag map**: 所有 lifecycle skill → `-y`; `quality-test` → `-y --auto-fix`; 未列出 → 无 flag
|
|
158
167
|
|
|
159
168
|
### A_EXEC_EXTERNAL
|
|
160
169
|
|
|
170
|
+
仅当 `step.type == "external"` 时使用(默认链路不产生)。
|
|
171
|
+
|
|
161
172
|
1. Mark step running, write status.json
|
|
162
|
-
2. Display: `[{index}/{total}] ⚡ {skill} [external]`
|
|
163
|
-
3.
|
|
173
|
+
2. Display: `[{index}/{total}] ⚡ {step.skill} [external]`
|
|
174
|
+
3. 始终在 prompt 内追加 `-y`(delegate session 非交互):`flag = flag_map[step.skill] || "-y"`
|
|
164
175
|
4. Execute:
|
|
165
176
|
```
|
|
166
177
|
run_command({
|
|
167
|
-
command: `maestro delegate "/${skill} ${effective_args}" --to claude --mode write`,
|
|
178
|
+
command: `maestro delegate "/${step.skill} ${effective_args}" --to claude --mode write`,
|
|
168
179
|
run_in_background: true, timeout: 600000
|
|
169
180
|
})
|
|
170
181
|
STOP — wait for callback.
|
|
171
182
|
```
|
|
172
|
-
5. On callback:
|
|
183
|
+
5. On callback: 把回调输出视为 step 的执行结果 → S_POST_EXEC / S_HANDLE_FAIL
|
|
173
184
|
|
|
174
185
|
### A_MARK_COMPLETE
|
|
175
186
|
|
|
176
|
-
1.
|
|
177
|
-
2.
|
|
178
|
-
- `
|
|
179
|
-
- `
|
|
180
|
-
- `
|
|
181
|
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
4. Write status.json
|
|
189
|
-
5. Display: `[{index}/{total}] ✓ {skill} completed`
|
|
187
|
+
1. 从 step 输出中提取 `--- COMPLETION STATUS ---` 块(required)
|
|
188
|
+
2. 解析并写入:
|
|
189
|
+
- `STATUS: DONE` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE"`
|
|
190
|
+
- `STATUS: DONE_WITH_CONCERNS` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE_WITH_CONCERNS"`, `step.concerns = <CONCERNS>`
|
|
191
|
+
- `STATUS: NEEDS_RETRY` → `step.status = "pending"`, `step.retried = true`, `step.completion_confirmed = false`, → S_HANDLE_FAIL
|
|
192
|
+
- `STATUS: BLOCKED` / `NEEDS_CONTEXT` → `session.status = "paused"`, `step.completion_status` 记录原因, `step.completion_confirmed = false`
|
|
193
|
+
- 缺失 `--- COMPLETION STATUS ---` 块 → 视为 NEEDS_RETRY(不允许 heuristic fallback)
|
|
194
|
+
3. 写入 `step.completion_evidence`(artifact 路径 / 关键输出节选)
|
|
195
|
+
4. 扫描输出抓取 context 信号:`PHASE: N` → session.phase;`scratch_dir: path` → context.scratch_dir;`BLP-xxx` → context.blueprint_session_id
|
|
196
|
+
5. `step.completed_at = now`,写 status.json
|
|
197
|
+
6. **Sub-goal evidence 校验**(task_decomposition 存在时):若 `step.goal_ref` 对应子目标的 `lifecycle` 覆盖当前 stage 且 evidence artifact 已生成 → 暂不直接置 done,仍交由 post-goal-audit 决策;仅在 step 显式确认时更新 `task_decomposition[*].completion_confirmed = false` 占位(保持 pending)
|
|
198
|
+
7. Display: `[{index}/{total}] ✓ {step.skill} completed (confirmed)`
|
|
190
199
|
|
|
191
200
|
### A_RETRY
|
|
192
201
|
|
|
193
|
-
1. `step.retried = true`, `step.status = "pending"`, `step.error = null`
|
|
202
|
+
1. `step.retried = true`, `step.status = "pending"`, `step.error = null`, `step.completion_confirmed = false`
|
|
194
203
|
2. Write status.json
|
|
195
204
|
|
|
196
205
|
### A_SKIP_STEP
|
|
197
206
|
|
|
198
|
-
1. `step.status = "skipped"`
|
|
207
|
+
1. `step.status = "skipped"`, `step.completion_confirmed = false`
|
|
199
208
|
2. Write status.json
|
|
200
209
|
|
|
201
210
|
### A_PAUSE_SESSION
|
|
202
211
|
|
|
203
212
|
1. `session.status = "paused"`, write status.json
|
|
204
|
-
2. Display: `[{index}/{total}] ✗ {skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
|
|
213
|
+
2. Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
|
|
205
214
|
|
|
206
215
|
### A_COMPLETE_SESSION
|
|
207
216
|
|
|
208
|
-
1. `
|
|
209
|
-
2.
|
|
217
|
+
1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
|
|
218
|
+
2. 任一校验失败 → 不标 completed,回 S_LOCATE 或 pause
|
|
219
|
+
3. `session.status = "completed"`, write status.json
|
|
220
|
+
4. Display completion report:
|
|
210
221
|
```
|
|
211
222
|
============================================================
|
|
212
223
|
SESSION COMPLETE
|
|
213
224
|
============================================================
|
|
214
225
|
Session: {session_id} [{source}]
|
|
215
|
-
Steps: {completed}/{total}
|
|
226
|
+
Steps: {completed}/{total} confirmed: {confirmed}/{completed}
|
|
216
227
|
|
|
217
|
-
[✓] 0. maestro-plan 1 [internal]
|
|
218
|
-
[✓] 1.
|
|
219
|
-
[✓] 2. maestro-verify 1 [internal]
|
|
228
|
+
[✓] 0. maestro-plan 1 [internal · global]
|
|
229
|
+
[✓] 1. maestro-execute 1 [internal · project]
|
|
230
|
+
[✓] 2. maestro-verify 1 [internal · global]
|
|
220
231
|
[✓] 3. ◆ post-verify [decision]
|
|
221
232
|
...
|
|
222
233
|
============================================================
|
|
223
234
|
```
|
|
224
|
-
Icons: `✓`
|
|
235
|
+
Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision, `⚡` external
|
|
225
236
|
|
|
226
237
|
</actions>
|
|
227
238
|
|
|
@@ -234,22 +245,26 @@ Write enriched args back to status.json (resume-safe).
|
|
|
234
245
|
| Code | Severity | Description | Recovery |
|
|
235
246
|
|------|----------|-------------|----------|
|
|
236
247
|
| E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
|
|
237
|
-
| E002 | error |
|
|
238
|
-
| E003 | error |
|
|
239
|
-
|
|
|
248
|
+
| E002 | error | step.command_path missing for internal step | Pause, ask ralph to rebuild step |
|
|
249
|
+
| E003 | error | status.json corrupt | Show path, manual check |
|
|
250
|
+
| E004 | error | Delegate failed + user abort | Mark paused, suggest resume |
|
|
251
|
+
| E005 | error | COMPLETION STATUS block missing | Trigger NEEDS_RETRY |
|
|
252
|
+
| W001 | warning | Step completed with concerns | Log and continue |
|
|
240
253
|
|
|
241
254
|
### Success Criteria
|
|
242
255
|
|
|
243
|
-
- [ ] Session discovery covers
|
|
244
|
-
- [ ] `-y` parsed from args
|
|
245
|
-
- [ ] Placeholders resolved
|
|
246
|
-
- [ ]
|
|
247
|
-
- [ ]
|
|
248
|
-
- [ ]
|
|
249
|
-
- [ ]
|
|
250
|
-
- [ ]
|
|
251
|
-
- [ ]
|
|
252
|
-
- [ ]
|
|
253
|
-
- [ ]
|
|
256
|
+
- [ ] Session discovery covers maestro-* and ralph-*
|
|
257
|
+
- [ ] `-y` parsed from args 或 session.auto_mode
|
|
258
|
+
- [ ] Placeholders resolved;per-skill enrichment 正确
|
|
259
|
+
- [ ] Decision 节点 Skill("maestro-ralph") handoff
|
|
260
|
+
- [ ] Internal 节点通过 view_file({step.command_path}) 内联执行,禁止 Skill()
|
|
261
|
+
- [ ] External 仅在显式声明时走 delegate,prompt 必带 `-y`
|
|
262
|
+
- [ ] 每个 step 强制 `--- COMPLETION STATUS ---`;缺失 → NEEDS_RETRY
|
|
263
|
+
- [ ] step.completion_confirmed = true 仅在 STATUS: DONE/DONE_WITH_CONCERNS 时设置
|
|
264
|
+
- [ ] step.completion_evidence 记录 artifact path / 输出节选
|
|
265
|
+
- [ ] Context signals 传播 status.json
|
|
266
|
+
- [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
|
|
267
|
+
- [ ] 自调用持续到全部 completion_confirmed 或 paused
|
|
268
|
+
- [ ] A_COMPLETE_SESSION 校验全部 step confirmed + sub-goal all_done
|
|
254
269
|
|
|
255
270
|
</appendix>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-roadmap
|
|
3
|
-
description: Generate roadmap from requirements
|
|
4
|
-
argument-hint: <requirement> [
|
|
3
|
+
description: Generate roadmap with milestone/phase structure from requirements or upstream context
|
|
4
|
+
argument-hint: <requirement> [-y] [-c] [-m progressive|direct|auto] [--from <source>] [--revise [instructions]] [--review]
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- ask_question
|
|
7
7
|
- define_subagent
|
|
@@ -15,16 +15,14 @@ allowed-tools:
|
|
|
15
15
|
- write_to_file
|
|
16
16
|
---
|
|
17
17
|
<purpose>
|
|
18
|
-
|
|
18
|
+
Generate a milestone/phase roadmap from requirements or upstream context. Produces `.workflow/roadmap.md` with Milestone > Phase hierarchy ready for maestro-analyze and maestro-plan.
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
- **
|
|
22
|
-
|
|
23
|
-
Additional operation modes (light mode only):
|
|
20
|
+
Operation modes:
|
|
21
|
+
- **Create** (default): Build roadmap from requirements or upstream context
|
|
24
22
|
- **Revise** (`--revise`): Modify existing roadmap while preserving completed phase progress
|
|
25
23
|
- **Review** (`--review`): Health assessment of current roadmap (read-only)
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
For formal specification documents (Product Brief, PRD, Architecture, Epics), use `/maestro-blueprint` instead.
|
|
28
26
|
</purpose>
|
|
29
27
|
|
|
30
28
|
<required_reading>
|
|
@@ -33,73 +31,68 @@ Both modes produce `.workflow/roadmap.md` with milestone/phase structure ready f
|
|
|
33
31
|
</required_reading>
|
|
34
32
|
|
|
35
33
|
<deferred_reading>
|
|
36
|
-
- [roadmap.md](~/.maestro/workflows/roadmap.md) — read
|
|
37
|
-
- [spec-generate.md](~/.maestro/workflows/spec-generate.md) — read when mode is full
|
|
38
|
-
- [spec-config.json](~/.maestro/templates/spec-config.json) — read when initializing spec configuration (full mode)
|
|
34
|
+
- [roadmap.md](~/.maestro/workflows/roadmap.md) — read for roadmap generation workflow
|
|
39
35
|
</deferred_reading>
|
|
40
36
|
|
|
41
37
|
<context>
|
|
42
|
-
$ARGUMENTS -- requirement text, @file reference, or
|
|
38
|
+
$ARGUMENTS -- requirement text, @file reference, or upstream context source.
|
|
43
39
|
|
|
44
|
-
**Flags
|
|
45
|
-
- `--mode light|full`: Execution path (default: light)
|
|
40
|
+
**Flags:**
|
|
46
41
|
- `-y` / `--yes`: Auto mode — skip interactive questions, use recommended defaults
|
|
47
42
|
- `-c` / `--continue`: Resume from last checkpoint
|
|
48
|
-
- `--from-brainstorm SESSION-ID`: Import guidance-specification.md from a brainstorm session as seed
|
|
49
|
-
|
|
50
|
-
**Flags (light mode only):**
|
|
51
43
|
- `-m progressive|direct|auto`: Decomposition strategy (default: auto)
|
|
44
|
+
- `--from <source>`: Load upstream context package (brainstorm:ID, blueprint:BLP-xxx, analyze:ANL-xxx, @file, or path). Consumes context-package.json
|
|
45
|
+
- `--from-brainstorm SESSION-ID`: (backward compat alias for `--from brainstorm:ID`)
|
|
52
46
|
- `--revise [instructions]`: Revise existing roadmap. If instructions provided, apply directly. If omitted, ask user. Preserves completed phase progress.
|
|
53
47
|
- `--review`: Roadmap health assessment (read-only)
|
|
54
48
|
|
|
55
49
|
**Input types:**
|
|
56
50
|
- Direct text: `"Implement user authentication system with OAuth and 2FA"`
|
|
57
51
|
- File reference: `@requirements.md`
|
|
58
|
-
-
|
|
52
|
+
- Context import: `--from brainstorm:BRN-001` or `--from analyze:ANL-xxx` or `--from blueprint:BLP-xxx`
|
|
59
53
|
- No args + `--revise` / `--review`: Operate on existing `.workflow/roadmap.md`
|
|
60
54
|
|
|
61
55
|
**Pipeline position:**
|
|
62
56
|
```
|
|
63
|
-
maestro-brainstorm
|
|
64
|
-
|
|
65
|
-
maestro-
|
|
66
|
-
↓
|
|
67
|
-
maestro-roadmap
|
|
68
|
-
maestro-roadmap --mode full → spec package + roadmap.md
|
|
57
|
+
maestro-brainstorm ─┐
|
|
58
|
+
maestro-blueprint ─┤ (optional upstream, parallel)
|
|
59
|
+
maestro-analyze ─┘ context-package.json
|
|
60
|
+
↓
|
|
61
|
+
maestro-roadmap → .workflow/roadmap.md (Milestone > Phase hierarchy)
|
|
69
62
|
↓
|
|
70
|
-
maestro-plan → maestro-execute → maestro-verify
|
|
63
|
+
maestro-analyze {phase} → maestro-plan → maestro-execute → maestro-verify
|
|
71
64
|
```
|
|
72
65
|
|
|
73
|
-
**Note (full mode):** `maestro-init` MUST run before `--mode full`. It creates the `.workflow/` directory and project context.
|
|
74
|
-
|
|
75
66
|
### Pre-load specs
|
|
76
67
|
1. **Architecture specs**: Run `maestro spec load --category arch` to load architecture constraints. Use as context for phase decomposition — ensures roadmap respects documented decisions and boundaries.
|
|
77
68
|
2. Optional — proceed without if unavailable.
|
|
78
69
|
</context>
|
|
79
70
|
|
|
80
|
-
<
|
|
71
|
+
<interview_protocol>
|
|
72
|
+
Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--revise`, `--review`, `-c/--continue`, or input is already specific (clear requirement + mode).
|
|
81
73
|
|
|
82
|
-
|
|
74
|
+
- One decision per turn via ask_question with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally or via `Other` at any time.
|
|
75
|
+
- Search-first when uncertain: before asking, resolve via `state.json`, existing `roadmap.md`, `project.md`, `maestro spec load`, `maestro wiki search`, Glob/Grep/Read, or — for open-ended multi-file scans — spawn `invoke_subagent([{ TypeName: "<TypeName>", Role: "<Role>", Prompt: "<Prompt>", Workspace: "inherit" }])` / `maestro delegate ... --role explore`. Never ask what code or memory can verify; never bounce your own ambiguity back to the user — search first, then ask only what truly needs human judgment.
|
|
76
|
+
- Writeback cadence: each settled decision is immediately appended/updated in the `Roadmap Decisions` section at the top of `.workflow/roadmap.md` (create the section if absent). Do NOT batch writeback to the end — partial decisions must already be on disk before the next question.
|
|
77
|
+
- Walk the decision dependency tree strictly: mode → requirement scope → decomposition strategy → phase dependencies/order. Do not open the next branch until the current one is settled.
|
|
78
|
+
- Scope guard: only decide the shape of the roadmap. Do not pre-resolve intra-phase task breakdown — that belongs to `plan`.
|
|
83
79
|
|
|
84
|
-
|
|
85
|
-
2. Parse `--mode` flag:
|
|
86
|
-
- `light` or omitted → read `@~/.maestro/workflows/roadmap.md`, follow its process
|
|
87
|
-
- `full` → read `@~/.maestro/workflows/spec-generate.md`, follow its process
|
|
88
|
-
3. If `--revise` or `--review` present → force light mode (these are light-mode-only operations)
|
|
80
|
+
Decision points: scope (MVP / complete / phased) → strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order.
|
|
89
81
|
|
|
90
|
-
|
|
82
|
+
Exit: on consensus or explicit user signal to proceed, finalize the `Roadmap Decisions` section (rows already populated incrementally). Schema:
|
|
83
|
+
`| # | Decision | Choice | Source (user / code / default) |`
|
|
84
|
+
</interview_protocol>
|
|
91
85
|
|
|
92
|
-
|
|
86
|
+
<execution>
|
|
87
|
+
|
|
88
|
+
1. Read `@~/.maestro/workflows/roadmap-common.md` (always — shared logic)
|
|
89
|
+
2. Read `@~/.maestro/workflows/roadmap.md`, follow its process
|
|
93
90
|
|
|
94
91
|
Sub-modes:
|
|
95
|
-
- **Create** (default): Build roadmap from requirements
|
|
92
|
+
- **Create** (default): Build roadmap from requirements or upstream context
|
|
96
93
|
- **Revise** (`--revise`): Follow workflow roadmap.md "Mode: Revise" section
|
|
97
94
|
- **Review** (`--review`): Follow workflow roadmap.md "Mode: Review" section
|
|
98
95
|
|
|
99
|
-
### Full mode (`--mode full`)
|
|
100
|
-
|
|
101
|
-
Follow `~/.maestro/workflows/spec-generate.md` completely.
|
|
102
|
-
|
|
103
96
|
### Next-step routing on completion
|
|
104
97
|
|
|
105
98
|
| Condition | Suggestion |
|
|
@@ -108,63 +101,32 @@ Follow `~/.maestro/workflows/spec-generate.md` completely.
|
|
|
108
101
|
| Simple project, ready to plan | /maestro-plan 1 |
|
|
109
102
|
| Need UI design first | /maestro-impeccable build |
|
|
110
103
|
| View project dashboard | /manage-status |
|
|
111
|
-
| Need
|
|
104
|
+
| Need formal spec documents | /maestro-blueprint |
|
|
112
105
|
</execution>
|
|
113
106
|
|
|
114
107
|
<error_codes>
|
|
115
|
-
|
|
116
|
-
**Shared:**
|
|
117
108
|
| Code | Severity | Condition | Recovery |
|
|
118
109
|
|------|----------|-----------|----------|
|
|
119
110
|
| E001 | error | Requirement/idea text or @file required | Prompt user for input |
|
|
120
|
-
| E002 | error |
|
|
121
|
-
| W001 | warning | CLI analysis failed, using fallback | Continue with available data |
|
|
122
|
-
| W005 | warning | External research agent failed | Continue without apiResearchContext |
|
|
123
|
-
|
|
124
|
-
**Light mode:**
|
|
125
|
-
| Code | Severity | Condition | Recovery |
|
|
126
|
-
|------|----------|-----------|----------|
|
|
111
|
+
| E002 | error | Context source not found (--from / --from-brainstorm) | Show available sessions/sources |
|
|
127
112
|
| E003 | error | Circular dependency detected in phases | Prompt user to re-decompose |
|
|
128
113
|
| E004 | error | roadmap.md not found (--revise/--review) | Run maestro-roadmap first |
|
|
129
114
|
| E005 | error | Revision invalidates completed phase work | Warn user, ask to confirm or adjust |
|
|
115
|
+
| W001 | warning | CLI analysis failed, using fallback | Continue with available data |
|
|
130
116
|
| W002 | warning | Max refinement rounds (5) reached | Force proceed with current roadmap |
|
|
131
|
-
|
|
132
|
-
**Full mode:**
|
|
133
|
-
| Code | Severity | Condition | Recovery |
|
|
134
|
-
|------|----------|-----------|----------|
|
|
135
|
-
| E006 | error | `.workflow/` not initialized | Run maestro-init first |
|
|
136
|
-
| E007 | error | Phase 6 readiness Fail after 2 auto-fix iterations | Present manual fix options |
|
|
137
|
-
| W002 | warning | Codebase exploration failed | Continue without codebase context |
|
|
138
|
-
| W003 | warning | Glossary has < 5 terms | Note in readiness check |
|
|
139
|
-
| W004 | warning | Review-level readiness score (60-79%) | Proceed with caveats |
|
|
117
|
+
| W005 | warning | External research agent failed | Continue without apiResearchContext |
|
|
140
118
|
</error_codes>
|
|
141
119
|
|
|
142
120
|
<success_criteria>
|
|
143
|
-
|
|
144
|
-
**Light mode:**
|
|
121
|
+
- [ ] Interactive mode: interview decision table appended to `.workflow/roadmap.md` "Roadmap Decisions" section
|
|
145
122
|
- [ ] Requirement parsed with goal, constraints, stakeholders
|
|
123
|
+
- [ ] Milestones defined with deliverable targets and version tags
|
|
146
124
|
- [ ] Decomposition strategy selected (progressive or direct)
|
|
147
|
-
- [ ] Phases defined with success criteria, dependencies, and requirement mappings
|
|
125
|
+
- [ ] Phases defined within milestones with success criteria, dependencies, and requirement mappings
|
|
148
126
|
- [ ] Every Active requirement from project.md mapped to exactly one phase
|
|
149
127
|
- [ ] No circular dependencies in phase ordering
|
|
150
128
|
- [ ] User approved roadmap (or auto-approved with -y)
|
|
151
|
-
- [ ] `.workflow/roadmap.md` written with
|
|
129
|
+
- [ ] `.workflow/roadmap.md` written with Milestone > Phase hierarchy, scope decisions, and progress table
|
|
152
130
|
- [ ] No phase directories created (phases are labels in roadmap, not directories)
|
|
153
|
-
|
|
154
|
-
**Full mode (in addition to light mode criteria for roadmap):**
|
|
155
|
-
- [ ] `spec-config.json` created with session metadata and phase tracking
|
|
156
|
-
- [ ] `product-brief.md` with vision, goals, scope, multi-perspective synthesis
|
|
157
|
-
- [ ] `glossary.json` with 5+ core terms for cross-document consistency
|
|
158
|
-
- [ ] `requirements/` directory with `_index.md` + individual `REQ-*.md` + `NFR-*.md` files
|
|
159
|
-
- [ ] All requirements have RFC 2119 keywords and acceptance criteria
|
|
160
|
-
- [ ] `architecture/` directory with `_index.md` + individual `ADR-*.md` files
|
|
161
|
-
- [ ] Architecture includes state machine, config model, error handling, observability (service type)
|
|
162
|
-
- [ ] `epics/` directory with `_index.md` + individual `EPIC-*.md` files
|
|
163
|
-
- [ ] Cross-Epic dependency map (Mermaid) and MVP subset tagged
|
|
164
|
-
- [ ] `readiness-report.md` with 4-dimension quality scores and traceability matrix
|
|
165
|
-
- [ ] `spec-summary.md` with one-page executive summary
|
|
166
|
-
- [ ] All documents have valid YAML frontmatter with session_id
|
|
167
|
-
- [ ] Glossary terms used consistently across all documents
|
|
168
|
-
- [ ] Readiness gate: Pass (>=80%) or Review (>=60%) with documented caveats
|
|
169
|
-
- [ ] `.workflow/roadmap.md` written
|
|
131
|
+
- [ ] Artifact registered in state.json with milestone entries
|
|
170
132
|
</success_criteria>
|
|
@@ -49,6 +49,7 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1-8 in order.
|
|
|
49
49
|
1. **Read-only until Stage 6** — extraction and classification happen in-memory.
|
|
50
50
|
2. **Dedup before write** — check harvest-log.jsonl and existing stores before each write.
|
|
51
51
|
3. **Never modify source artifacts** — harvest is purely extractive.
|
|
52
|
+
4. **Dedup contract with parallel writers** — when appending to `issues.jsonl`, set `source: "harvest"` on each row so concurrent writers (e.g. `manage-issue-discover` with `source: "discover"`) can be distinguished and deduplicated.
|
|
52
53
|
|
|
53
54
|
Extraction patterns, classification rules, routing infrastructure, and fragment ID scheme defined in workflow harvest.md.
|
|
54
55
|
|
|
@@ -48,7 +48,7 @@ $ARGUMENTS -- optional. Parse first token to determine mode.
|
|
|
48
48
|
- `--depth=standard|deep` -- exploration depth (by-prompt only, default: `standard`)
|
|
49
49
|
|
|
50
50
|
**State files:**
|
|
51
|
-
- `.workflow/issues/issues.jsonl` -- issues appended here
|
|
51
|
+
- `.workflow/issues/issues.jsonl` -- issues appended here (set `source: "discover"` on each row so concurrent writers like `manage-harvest` with `source: "harvest"` can be distinguished and deduplicated)
|
|
52
52
|
- `.workflow/issues/discoveries/{SESSION_ID}/` -- session artifacts
|
|
53
53
|
|
|
54
54
|
### Pre-load specs
|
|
@@ -52,7 +52,7 @@ Follow '~/.maestro/workflows/knowhow.md' Part A (KnowHow Management) completely.
|
|
|
52
52
|
<error_codes>
|
|
53
53
|
| Code | Severity | Description | Stage |
|
|
54
54
|
|------|----------|-------------|-------|
|
|
55
|
-
| E001 | error | No memory stores found — run `/manage-knowhow-capture
|
|
55
|
+
| E001 | error | No memory stores found — for workflow store run `/manage-knowhow-capture`; for system store create `~/.claude/projects/{project}/memory/MEMORY.md` manually | resolve_paths |
|
|
56
56
|
| E002 | error | Entry ID or filename not found | execute_view, execute_delete |
|
|
57
57
|
| E003 | error | Prune requires at least one filter (--tag, --type, --before, --after) | execute_prune |
|
|
58
58
|
| E004 | error | Cannot delete MEMORY.md — use `edit` subcommand instead | execute_delete |
|
|
@@ -29,7 +29,7 @@ Arguments: $ARGUMENTS
|
|
|
29
29
|
- `"<insight text>"` (or any non-keyword text) → insight capture mode
|
|
30
30
|
- `tip <text>` → tip capture mode (quick contextual note, auto-tagged `tip`)
|
|
31
31
|
- `list` → list recent entries (default 20)
|
|
32
|
-
- `search <query>` → `maestro spec load --category learning` or text search across
|
|
32
|
+
- `search <query>` → `maestro spec load --category learning` or text search across `.workflow/specs/learnings.md`
|
|
33
33
|
- `show <INS-id>` → full detail with phase context
|
|
34
34
|
- empty → ask_question to prompt for text
|
|
35
35
|
|
|
@@ -46,19 +46,19 @@ Follow `~/.maestro/workflows/learn.md` Stages 1–5 in order.
|
|
|
46
46
|
| E001 | error | `.workflow/` not initialized — run `/maestro-init` first | parse_input |
|
|
47
47
|
| E002 | error | Unknown `--category` value (allowed: pattern, antipattern, decision, tool, gotcha, technique, tip) | parse_input |
|
|
48
48
|
| E003 | error | `show` mode requires an INS-id argument | show |
|
|
49
|
-
| E004 | error | Insight id not found in
|
|
49
|
+
| E004 | error | Insight id not found in `.workflow/specs/learnings.md` | show |
|
|
50
50
|
| W001 | warning | Auto-phase detection found a current_phase but no matching artifact in registry; phase set to null | capture |
|
|
51
51
|
</error_codes>
|
|
52
52
|
|
|
53
53
|
<success_criteria>
|
|
54
54
|
- [ ] Mode correctly routed (capture / list / search / show)
|
|
55
|
-
- [ ] Capture: `<spec-entry>` block appended to
|
|
55
|
+
- [ ] Capture: `<spec-entry>` block appended to `.workflow/specs/learnings.md` with all required fields
|
|
56
56
|
- [ ] Capture: phase auto-link resolves correctly via artifact registry when `state.json` has `current_phase`
|
|
57
57
|
- [ ] Capture: category inference produces a sensible default when `--category` absent
|
|
58
58
|
- [ ] List: filters apply, output sorted newest-first, default limit 20
|
|
59
59
|
- [ ] Search: results ranked by title (3) > tags (2) > summary (1) match
|
|
60
60
|
- [ ] Show: full insight displayed with phase context and routed-artifact link if any
|
|
61
|
-
- [ ] No file modifications outside `.workflow/knowhow/`
|
|
61
|
+
- [ ] No file modifications outside `.workflow/specs/learnings.md` and `.workflow/knowhow/`
|
|
62
62
|
- [ ] Confirmation banner displayed with INS-id and next-step hints
|
|
63
63
|
- [ ] Next step: `/manage-learn list` to browse, or `/manage-learn search <query>` to find related insights
|
|
64
64
|
</success_criteria>
|
|
@@ -14,7 +14,7 @@ allowed-tools:
|
|
|
14
14
|
Run unified automated testing via CSV layer pipeline. Reads project state to auto-select the optimal scenario source — PRD specs (when spec package exists), coverage gaps (when Nyquist audit found gaps), or code exploration (default). All sources converge into a CSV pipeline: discover infrastructure → plan → build scenarios.csv → write tests per layer (spawn_agents_on_csv parallel) → execute → diagnose failures (spawn_agents_on_csv parallel) → iterate → report.
|
|
15
15
|
|
|
16
16
|
Key mechanisms:
|
|
17
|
-
- **Intelligent routing**: Reads `.tests/`, `.workflow
|
|
17
|
+
- **Intelligent routing**: Reads `.tests/`, `.workflow/blueprint/`, `verification.json` to auto-select source — no mode flag needed
|
|
18
18
|
- **CSV parallel test writing**: Per-layer `spawn_agents_on_csv` — each agent writes one test file independently
|
|
19
19
|
- **CSV parallel failure diagnosis**: Failed scenarios dispatched via `spawn_agents_on_csv` for classification + fix
|
|
20
20
|
- **Unified iteration engine**: Nested inner loop (fix test_defects via diagnosis CSV, max 3/layer) + outer loop (adaptive strategy, max N iterations)
|
|
@@ -39,13 +39,13 @@ Phase or task: $ARGUMENTS (required — phase number)
|
|
|
39
39
|
|
|
40
40
|
**Intelligent routing** (auto-detected from project state):
|
|
41
41
|
|
|
42
|
-
| Priority | Condition | Route |
|
|
43
|
-
|
|
42
|
+
| Priority | Condition | Route | Reference skill |
|
|
43
|
+
|----------|-----------|-------|-----------------|
|
|
44
44
|
| 1 | Active session exists (state.json status=running) | Resume | — |
|
|
45
45
|
| 2 | --re-run flag + previous failures | Re-run | — |
|
|
46
|
-
| 3 | Spec package exists (REQ-*.md) | spec | quality-business-test |
|
|
47
|
-
| 4 | Nyquist gaps exist (verification.json) | gap | quality-test-gen |
|
|
48
|
-
| 5 | Default | code | quality-integration-test |
|
|
46
|
+
| 3 | Spec package exists (REQ-*.md) | spec | quality-business-test (separate skill) |
|
|
47
|
+
| 4 | Nyquist gaps exist (verification.json) | gap | quality-test-gen (separate skill) |
|
|
48
|
+
| 5 | Default | code | quality-integration-test (separate skill) |
|
|
49
49
|
|
|
50
50
|
Flags, artifact context resolution, and output formats defined in workflow auto-test.md.
|
|
51
51
|
|
|
@@ -48,7 +48,7 @@ After successful refactoring, ask user once: "Record refactoring pattern as codi
|
|
|
48
48
|
|
|
49
49
|
**Next-step routing on completion:**
|
|
50
50
|
- All tests pass → `/quality-sync` (update codebase docs)
|
|
51
|
-
- Test failures after refactor → `/quality-debug {scope}`
|
|
51
|
+
- Test failures after refactor → `/quality-debug "test failures after refactor in {scope}"`
|
|
52
52
|
- No test suite available → `/quality-auto-test {phase}`
|
|
53
53
|
</execution>
|
|
54
54
|
|
|
@@ -15,7 +15,7 @@ allowed-tools:
|
|
|
15
15
|
- write_to_file
|
|
16
16
|
---
|
|
17
17
|
<purpose>
|
|
18
|
-
Post-execution multi-perspective retrospective (复盘) for completed phases. Consumes existing execution artifacts (verification.json, review.json, issues.jsonl, plan.json, .summaries/, uat.md, state.json) and runs four parallel lenses — technical, process, quality, decision — to distill reusable insights. Routes each insight into the appropriate store: spec stub for reusable patterns, memory tip for process notes, issue for recurring gaps. Auto-scans for unreviewed completed phases and reports the backlog. Every insight is also persisted to `.workflow/
|
|
18
|
+
Post-execution multi-perspective retrospective (复盘) for completed phases. Consumes existing execution artifacts (verification.json, review.json, issues.jsonl, plan.json, .summaries/, uat.md, state.json) and runs four parallel lenses — technical, process, quality, decision — to distill reusable insights. Routes each insight into the appropriate store: spec stub for reusable patterns, memory tip for process notes, issue for recurring gaps. Auto-scans for unreviewed completed phases and reports the backlog. Every insight is also persisted to `.workflow/specs/learnings.md` as `<spec-entry>` blocks for cross-phase queryability.
|
|
19
19
|
</purpose>
|
|
20
20
|
|
|
21
21
|
<required_reading>
|
|
@@ -72,7 +72,7 @@ Follow `~/.maestro/workflows/retrospective.md` Stages 1–8 in order. Key invari
|
|
|
72
72
|
- [ ] Spec entries (if any) appended as `<spec-entry>` to matching `.workflow/specs/{category-file}.md`
|
|
73
73
|
- [ ] Issue rows (if any) match canonical issues.jsonl schema (status "open", full issue_history, all required fields)
|
|
74
74
|
- [ ] Note tips (if any) created via `view_file(AbsolutePath="<agy-skills-dir>/manage-learn/SKILL.md") + execute inline (args: "tip ...")`
|
|
75
|
-
- [ ]
|
|
75
|
+
- [ ] `.workflow/specs/learnings.md` appended with one `<spec-entry>` per insight regardless of routing target
|
|
76
76
|
- [ ] No existing phase artifacts modified (verification.json, review.json, plan.json untouched)
|
|
77
77
|
- [ ] Confirmation banner displays routing counts and next-step suggestions
|
|
78
78
|
- [ ] Next step: `/manage-status` to review state, or `/manage-issue list --source retrospective` to triage created issues, or `/manage-learn list` to browse the knowhow library
|
|
@@ -18,6 +18,10 @@ Systematic security audit covering OWASP Top 10, dependency supply chain, secret
|
|
|
18
18
|
CI/CD pipeline review, and optional STRIDE threat modeling. Three tiers control depth vs speed.
|
|
19
19
|
</purpose>
|
|
20
20
|
|
|
21
|
+
<required_reading>
|
|
22
|
+
@~/.maestro/workflows/review.md
|
|
23
|
+
</required_reading>
|
|
24
|
+
|
|
21
25
|
<context>
|
|
22
26
|
$ARGUMENTS — Parse tier and scope:
|
|
23
27
|
- Tier: `quick` (default) | `standard` | `deep`
|
|
@@ -145,6 +149,26 @@ CONCERNS: {count} critical findings require immediate action
|
|
|
145
149
|
NEXT: /quality-review
|
|
146
150
|
--- END STATUS ---
|
|
147
151
|
```
|
|
152
|
+
|
|
153
|
+
**Register artifact on completion** (so retrospective/harvest can trace this audit):
|
|
154
|
+
```
|
|
155
|
+
Append to state.json.artifacts[]:
|
|
156
|
+
{
|
|
157
|
+
id: nextArtifactId(artifacts, "review"), // RVW-NNN (security-audit reuses review type)
|
|
158
|
+
type: "review",
|
|
159
|
+
subtype: "security-audit",
|
|
160
|
+
milestone: current_milestone || null,
|
|
161
|
+
phase: target_phase || null,
|
|
162
|
+
scope: target_phase ? "phase" : "standalone",
|
|
163
|
+
path: "scratch/{YYYYMMDD}-security-audit-{tier}-{slug}",
|
|
164
|
+
status: critical_count == 0 ? "completed" : "completed_with_concerns",
|
|
165
|
+
tier: tier, // quick|standard|deep
|
|
166
|
+
harvested: false,
|
|
167
|
+
created_at: start_time,
|
|
168
|
+
completed_at: now()
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
Write findings report to the same `path` (severity matrix, file:line refs, remediation).
|
|
148
172
|
</execution>
|
|
149
173
|
|
|
150
174
|
<success_criteria>
|