maestro-flow 0.5.33 → 0.5.35
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/role-design-author.md +5 -3
- package/.agents/agents/workflow-collab-planner.md +1 -0
- package/.agents/agents/workflow-planner.md +2 -0
- package/.agents/skills/maestro/SKILL.md +8 -1
- package/.agents/skills/maestro-help/SKILL.md +39 -10
- package/.agents/skills/maestro-help/index/catalog.json +117 -53
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +9 -6
- package/.agents/skills/maestro-help/phases/02-search-present.md +55 -15
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +35 -2
- package/.agents/skills/maestro-plan/SKILL.md +3 -1
- package/.agents/skills/maestro-ralph/SKILL.md +55 -19
- package/.agents/skills/maestro-ralph-execute/SKILL.md +52 -10
- package/.agents/skills/manage-harvest/SKILL.md +3 -0
- package/.agents/skills/manage-knowledge-audit/SKILL.md +29 -0
- package/.agents/skills/odyssey-debug/SKILL.md +7 -1
- package/.agents/skills/odyssey-improve/SKILL.md +7 -1
- package/.agents/skills/odyssey-planex/SKILL.md +11 -1
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +7 -1
- package/.agents/skills/odyssey-ui/SKILL.md +7 -1
- package/.agents/skills/quality-review/SKILL.md +3 -0
- package/.agents/skills/quality-test/SKILL.md +27 -1
- package/.agy/agents/role-design-author.md +5 -3
- package/.agy/agents/workflow-collab-planner.md +1 -0
- package/.agy/agents/workflow-planner.md +2 -0
- package/.agy/skills/maestro/SKILL.md +8 -1
- package/.agy/skills/maestro-help/SKILL.md +39 -10
- package/.agy/skills/maestro-help/index/catalog.json +117 -53
- package/.agy/skills/maestro-help/phases/01-parse-intent.md +9 -6
- package/.agy/skills/maestro-help/phases/02-search-present.md +55 -15
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +35 -2
- package/.agy/skills/maestro-plan/SKILL.md +3 -1
- package/.agy/skills/maestro-ralph/SKILL.md +55 -19
- package/.agy/skills/maestro-ralph-execute/SKILL.md +52 -10
- package/.agy/skills/manage-harvest/SKILL.md +3 -0
- package/.agy/skills/manage-knowledge-audit/SKILL.md +29 -0
- package/.agy/skills/odyssey-debug/SKILL.md +7 -1
- package/.agy/skills/odyssey-improve/SKILL.md +7 -1
- package/.agy/skills/odyssey-planex/SKILL.md +11 -1
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +7 -1
- package/.agy/skills/odyssey-ui/SKILL.md +7 -1
- package/.agy/skills/quality-review/SKILL.md +3 -0
- package/.agy/skills/quality-test/SKILL.md +27 -1
- package/.claude/agents/role-design-author.md +5 -3
- package/.claude/agents/workflow-collab-planner.md +1 -0
- package/.claude/agents/workflow-planner.md +2 -0
- package/.claude/commands/maestro-plan.md +3 -1
- package/.claude/commands/maestro-ralph-execute.md +52 -10
- package/.claude/commands/maestro-ralph.md +55 -19
- package/.claude/commands/maestro.md +8 -1
- package/.claude/commands/manage-harvest.md +3 -0
- package/.claude/commands/manage-knowledge-audit.md +29 -0
- package/.claude/commands/odyssey-debug.md +7 -1
- package/.claude/commands/odyssey-improve.md +7 -1
- package/.claude/commands/odyssey-planex.md +11 -1
- package/.claude/commands/odyssey-review-test-fix.md +7 -1
- package/.claude/commands/odyssey-ui.md +7 -1
- package/.claude/commands/quality-review.md +3 -0
- package/.claude/commands/quality-test.md +27 -1
- package/.claude/skills/maestro-help/SKILL.md +39 -10
- package/.claude/skills/maestro-help/index/catalog.json +117 -53
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +9 -6
- package/.claude/skills/maestro-help/phases/02-search-present.md +55 -15
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +35 -2
- package/.codex/skills/maestro/SKILL.md +17 -2
- package/.codex/skills/maestro-analyze/SKILL.md +20 -3
- package/.codex/skills/maestro-brainstorm/SKILL.md +30 -4
- package/.codex/skills/maestro-execute/SKILL.md +25 -3
- package/.codex/skills/maestro-grill/SKILL.md +9 -0
- package/.codex/skills/maestro-plan/SKILL.md +26 -3
- package/.codex/skills/maestro-ralph/SKILL.md +6 -0
- package/.codex/skills/maestro-ralph-execute/SKILL.md +51 -10
- package/.codex/skills/maestro-roadmap/SKILL.md +30 -1
- package/.codex/skills/manage-harvest/SKILL.md +2 -1
- package/.codex/skills/quality-review/SKILL.md +13 -2
- package/README.md +219 -87
- package/README.zh-CN.md +221 -79
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.d.ts +82 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +444 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js +9 -4
- package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +54 -5
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +420 -46
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +16 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +14 -4
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +130 -49
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +64 -22
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +12 -12
- package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +10 -3
- package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
- package/dashboard/dist-server/src/commands/hooks.d.ts +3 -0
- package/dashboard/dist-server/src/commands/hooks.js +11 -8
- package/dashboard/dist-server/src/commands/hooks.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/db/types.d.ts +2 -1
- package/dashboard/dist-server/src/graph/kg/db/types.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/code/code-extractor.js +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge-extractor-registry.d.ts +22 -0
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge-extractor-registry.js +64 -0
- package/dashboard/dist-server/src/graph/kg/extraction/knowledge-extractor-registry.js.map +1 -0
- package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js +14 -104
- package/dashboard/dist-server/src/graph/kg/extraction/orchestrator.js.map +1 -1
- package/dashboard/dist-server/src/hooks/keyword-spec-injector.js +5 -2
- package/dashboard/dist-server/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dashboard/dist-server/src/hooks/wiki-role-loader.js +2 -1
- package/dashboard/dist-server/src/hooks/wiki-role-loader.js.map +1 -1
- package/dashboard/dist-server/src/tools/domain-loader.js +22 -16
- package/dashboard/dist-server/src/tools/domain-loader.js.map +1 -1
- package/dashboard/dist-server/src/tools/spec-entry-parser.d.ts +6 -1
- package/dashboard/dist-server/src/tools/spec-entry-parser.js +44 -13
- package/dashboard/dist-server/src/tools/spec-entry-parser.js.map +1 -1
- package/dashboard/dist-server/src/tools/spec-keyword-index.d.ts +2 -0
- package/dashboard/dist-server/src/tools/spec-keyword-index.js +4 -9
- package/dashboard/dist-server/src/tools/spec-keyword-index.js.map +1 -1
- package/dashboard/dist-server/src/tools/spec-loader.js +3 -11
- package/dashboard/dist-server/src/tools/spec-loader.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +14 -0
- package/dashboard/dist-server/src/utils/frontmatter.d.ts +15 -0
- package/dashboard/dist-server/src/utils/frontmatter.js +76 -0
- package/dashboard/dist-server/src/utils/frontmatter.js.map +1 -0
- package/dist/src/cli.js +1 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/domain.d.ts.map +1 -1
- package/dist/src/commands/domain.js +8 -2
- package/dist/src/commands/domain.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +3 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +11 -8
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +48 -11
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/knowhow.d.ts.map +1 -1
- package/dist/src/commands/knowhow.js +3 -26
- package/dist/src/commands/knowhow.js.map +1 -1
- package/dist/src/commands/search.d.ts +6 -1
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +124 -52
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +106 -6
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/uninstall.d.ts.map +1 -1
- package/dist/src/commands/uninstall.js +12 -3
- package/dist/src/commands/uninstall.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +37 -21
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +2 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/extension-loader.d.ts.map +1 -1
- package/dist/src/core/extension-loader.js +4 -0
- package/dist/src/core/extension-loader.js.map +1 -1
- package/dist/src/core/install-executor.d.ts.map +1 -1
- package/dist/src/core/install-executor.js +8 -3
- package/dist/src/core/install-executor.js.map +1 -1
- package/dist/src/graph/analyzers/fs-analyzer.js +2 -2
- package/dist/src/graph/analyzers/fs-analyzer.js.map +1 -1
- package/dist/src/graph/kg/db/node-kind-registry.d.ts +18 -0
- package/dist/src/graph/kg/db/node-kind-registry.d.ts.map +1 -0
- package/dist/src/graph/kg/db/node-kind-registry.js +42 -0
- package/dist/src/graph/kg/db/node-kind-registry.js.map +1 -0
- package/dist/src/graph/kg/db/types.d.ts +2 -1
- package/dist/src/graph/kg/db/types.d.ts.map +1 -1
- package/dist/src/graph/kg/db/types.js.map +1 -1
- package/dist/src/graph/kg/extraction/code/code-extractor.js +1 -1
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.d.ts +23 -0
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.js +64 -0
- package/dist/src/graph/kg/extraction/knowledge-extractor-registry.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/orchestrator.js +14 -104
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +5 -2
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/wiki-role-loader.d.ts.map +1 -1
- package/dist/src/hooks/wiki-role-loader.js +2 -1
- package/dist/src/hooks/wiki-role-loader.js.map +1 -1
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/ralph/cmd-next.d.ts.map +1 -1
- package/dist/src/ralph/cmd-next.js +2 -3
- package/dist/src/ralph/cmd-next.js.map +1 -1
- package/dist/src/tools/domain-loader.d.ts.map +1 -1
- package/dist/src/tools/domain-loader.js +22 -16
- package/dist/src/tools/domain-loader.js.map +1 -1
- package/dist/src/tools/spec-conflict-marker.d.ts +55 -0
- package/dist/src/tools/spec-conflict-marker.d.ts.map +1 -0
- package/dist/src/tools/spec-conflict-marker.js +228 -0
- package/dist/src/tools/spec-conflict-marker.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +6 -1
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +44 -13
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +2 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -1
- package/dist/src/tools/spec-keyword-index.js +4 -9
- package/dist/src/tools/spec-keyword-index.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +3 -11
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-writer.d.ts.map +1 -1
- package/dist/src/tools/spec-writer.js +2 -6
- package/dist/src/tools/spec-writer.js.map +1 -1
- package/dist/src/tools/store-knowhow.d.ts.map +1 -1
- package/dist/src/tools/store-knowhow.js +6 -52
- package/dist/src/tools/store-knowhow.js.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.d.ts.map +1 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.js +3 -1
- package/dist/src/tui/uninstall-ui/UninstallFlow.js.map +1 -1
- package/dist/src/types/index.d.ts +14 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/frontmatter.d.ts +16 -0
- package/dist/src/utils/frontmatter.d.ts.map +1 -0
- package/dist/src/utils/frontmatter.js +76 -0
- package/dist/src/utils/frontmatter.js.map +1 -0
- package/dist/src/utils/migration-registry.d.ts.map +1 -1
- package/dist/src/utils/migration-registry.js +14 -1
- package/dist/src/utils/migration-registry.js.map +1 -1
- package/package.json +5 -3
- package/workflows/claude-instructions.md +63 -45
- package/workflows/codex-instructions.md +105 -28
- package/workflows/command-authoring.md +1 -1
- package/workflows/plan.md +2 -1
- package/.agents/skills/maestro-ralph-beta/SKILL.md +0 -877
- package/.agy/skills/maestro-ralph-beta/SKILL.md +0 -873
- package/.claude/commands/maestro-ralph-beta.md +0 -875
- package/.codex/skills/maestro-ralph-beta/SKILL.md +0 -883
|
@@ -67,16 +67,18 @@
|
|
|
67
67
|
|
|
68
68
|
**Guide 映射**:
|
|
69
69
|
|
|
70
|
-
| 命令 | Guide 文档 |
|
|
71
|
-
|
|
72
|
-
| maestro-analyze/plan/execute | `guide/command-usage-guide.md` (主干管线) |
|
|
73
|
-
| maestro-init/roadmap/blueprint | `guide/quick-start-guide.md` |
|
|
74
|
-
| maestro-ralph | `guide/maestro-ralph-guide.md` |
|
|
75
|
-
| maestro (协调器) | `guide/maestro-coordinator-guide.md` |
|
|
76
|
-
| manage-* | `guide/command-usage-guide.md` (管理) |
|
|
77
|
-
| quality-* | `guide/command-usage-guide.md` (质量) |
|
|
78
|
-
| delegate | `guide/delegate-async-guide.md` |
|
|
79
|
-
| overlay/amend | `guide/overlay-guide.md` |
|
|
70
|
+
| 命令 | Guide 文档 | 状态 |
|
|
71
|
+
|------|-----------|------|
|
|
72
|
+
| maestro-analyze/plan/execute | `guide/command-usage-guide.md` (主干管线) | planned |
|
|
73
|
+
| maestro-init/roadmap/blueprint | `guide/quick-start-guide.md` | planned |
|
|
74
|
+
| maestro-ralph | `guide/maestro-ralph-guide.md` | planned |
|
|
75
|
+
| maestro (协调器) | `guide/maestro-coordinator-guide.md` | planned |
|
|
76
|
+
| manage-* | `guide/command-usage-guide.md` (管理) | planned |
|
|
77
|
+
| quality-* | `guide/command-usage-guide.md` (质量) | planned |
|
|
78
|
+
| delegate | `guide/delegate-async-guide.md` | planned |
|
|
79
|
+
| overlay/amend | `guide/overlay-guide.md` | planned |
|
|
80
|
+
|
|
81
|
+
> **注意**: Guide 文档目前尚未创建(标记为 planned),命令详情回退到 catalog 描述和 source 文件。
|
|
80
82
|
|
|
81
83
|
### Mode 3: Smart Recommendations
|
|
82
84
|
|
|
@@ -114,21 +116,59 @@
|
|
|
114
116
|
```markdown
|
|
115
117
|
## Skills ({total} 个)
|
|
116
118
|
|
|
117
|
-
### Meta (
|
|
119
|
+
### Meta (6)
|
|
118
120
|
- **workflow-skill-designer** — 设计 orchestrator+phases 工作流 skill
|
|
119
121
|
- **skill-iter-tune** — 迭代 execute-evaluate-improve 调优
|
|
122
|
+
- **prompt-generator** — 生成或转换 prompt 文件
|
|
123
|
+
- **skill-generator** — 创建新 skill(sequential/autonomous 模式)
|
|
124
|
+
- **skill-simplify** — SKILL.md 简化与功能完整性验证
|
|
125
|
+
- **skill-tuning** — 通用 skill 诊断和优化
|
|
120
126
|
|
|
121
|
-
### Team (
|
|
127
|
+
### Team (25)
|
|
122
128
|
- **team-coordinate** — 通用团队协调,动态生成 role-specs
|
|
123
129
|
- **team-executor** — 团队执行,恢复会话
|
|
124
|
-
- **team-lifecycle-v4** —
|
|
125
|
-
- **team-quality-assurance** — QA
|
|
130
|
+
- **team-lifecycle-v4** — 完整生命周期流水线
|
|
131
|
+
- **team-quality-assurance** — QA 质量保障
|
|
126
132
|
- **team-review** — 多维度代码审查
|
|
127
133
|
- **team-tech-debt** — 技术债务识别和清理
|
|
128
|
-
- **team-testing** —
|
|
134
|
+
- **team-testing** — 渐进式测试覆盖
|
|
135
|
+
- **team-adversarial-swarm** — ACO 群智能 + 对抗决策门
|
|
136
|
+
- **team-arch-opt** — 架构优化
|
|
137
|
+
- **team-brainstorm** — 头脑风暴
|
|
138
|
+
- **team-designer** — 团队 skill 生成器(v4 架构)
|
|
139
|
+
- **team-frontend** — 前端开发(内置 ui-ux-pro-max)
|
|
140
|
+
- **team-frontend-debug** — 前端调试(Chrome DevTools MCP)
|
|
141
|
+
- **team-interactive-craft** — 交互组件制作(零依赖)
|
|
142
|
+
- **team-issue** — Issue 解决
|
|
143
|
+
- **team-motion-design** — 动效设计
|
|
144
|
+
- **team-perf-opt** — 性能优化
|
|
145
|
+
- **team-planex** — Plan-and-Execute 管线
|
|
146
|
+
- **team-roadmap-dev** — 路线图驱动开发
|
|
147
|
+
- **team-swarm** — 群智能(ACO + Python 控制器)
|
|
148
|
+
- **team-ui-polish** — UI 打磨(Impeccable 标准)
|
|
149
|
+
- **team-uidesign** — UI 设计(Token→审计→实现)
|
|
150
|
+
- **team-ultra-analyze** — 深度协作分析
|
|
151
|
+
- **team-ux-improve** — UX 改进
|
|
152
|
+
- **team-visual-a11y** — 视觉无障碍 QA
|
|
129
153
|
|
|
130
154
|
### Knowledge (1)
|
|
131
155
|
- **codify-to-knowhow** — Manifest 驱动的知识资产生成
|
|
156
|
+
|
|
157
|
+
### Quality (2)
|
|
158
|
+
- **insight-challenge** — 对抗性审查
|
|
159
|
+
- **delegation-check** — 委派提示词分离违规检查
|
|
160
|
+
|
|
161
|
+
### Scholar (10)
|
|
162
|
+
- **scholar-writing** — 端到端学术论文写作
|
|
163
|
+
- **scholar-review** — 学术论文审查(自审 + 回复)
|
|
164
|
+
- **scholar-rebuttal-pro** — 审稿回复(证据策略)
|
|
165
|
+
- **scholar-ideation** — 研究构思
|
|
166
|
+
- **scholar-experiment** — 实验结果分析
|
|
167
|
+
- **scholar-citation-verify** — 四层引用验证
|
|
168
|
+
- **scholar-anti-ai-writing** — 去除 AI 写作痕迹
|
|
169
|
+
- **scholar-latex-organizer** — LaTeX 模板整理
|
|
170
|
+
- **scholar-publish** — 会议发表准备
|
|
171
|
+
- **scholar-thesis-docx** — 学位论文 Word 文档
|
|
132
172
|
```
|
|
133
173
|
|
|
134
174
|
**Agents**:
|
|
@@ -123,18 +123,45 @@ const taskPatterns = [
|
|
|
123
123
|
4. `/quality-auto-test [phase] --re-run` — 重跑失败场景
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
+
**Odyssey 长周期循环** (深度自主):
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
## Odyssey 长周期循环
|
|
130
|
+
|
|
131
|
+
适用于需要深度考古、多轮诊断/修复/验证、知识泛化和持久化的复杂任务。
|
|
132
|
+
每个 odyssey 命令都是自含闭环,自主循环直到完成。
|
|
133
|
+
|
|
134
|
+
### 调试类
|
|
135
|
+
1. `/odyssey-debug "问题描述"` — 考古→诊断→修复→确认→泛化→知识持久化
|
|
136
|
+
|
|
137
|
+
### 代码改进
|
|
138
|
+
1. `/odyssey-improve "改进目标"` — 多维审计→深度诊断→定向修复→验证→泛化
|
|
139
|
+
|
|
140
|
+
### 审查修复
|
|
141
|
+
1. `/odyssey-review-test-fix "审查范围"` — 考古→探索→多维审查→修复→泛化
|
|
142
|
+
|
|
143
|
+
### 需求迭代
|
|
144
|
+
1. `/odyssey-planex "需求描述"` — 计划→执行→严格验证→修复循环(直到验收通过)
|
|
145
|
+
|
|
146
|
+
### UI 优化
|
|
147
|
+
1. `/odyssey-ui "优化目标"` — 视觉调研→多维审计→发散探索→修复→验证
|
|
148
|
+
```
|
|
149
|
+
|
|
126
150
|
#### Step 4.3: 工作流全景图
|
|
127
151
|
|
|
128
152
|
对需要全景视角的用户,展示 Mermaid 图:
|
|
129
153
|
|
|
130
154
|
```
|
|
131
|
-
上游起源: brainstorm(发散) | blueprint(收敛) → 可选
|
|
155
|
+
上游起源: brainstorm(发散) | blueprint(收敛) | grill(压力测试) → 可选
|
|
132
156
|
理解层: analyze "topic"(宏观) → scope_verdict 路由
|
|
133
157
|
编排层: roadmap(可选,仅 scope_verdict=large 时建议)
|
|
134
158
|
执行层: plan → execute → quality → milestone-audit → milestone-complete
|
|
135
159
|
快速渠道: maestro-quick → (直接完成)
|
|
136
160
|
Issue 闭环: discover → create → analyze --gaps → plan --gaps → execute → close
|
|
137
|
-
全自动:
|
|
161
|
+
全自动: /maestro -y → (自动路由)
|
|
162
|
+
Odyssey: odyssey-debug / odyssey-improve / odyssey-planex / odyssey-ui → (自主循环)
|
|
163
|
+
并行加速: swarm-workflow / universal-workflow → (多 agent 并发)
|
|
164
|
+
智能导航: /maestro-next → (检测状态推荐下一步)
|
|
138
165
|
```
|
|
139
166
|
|
|
140
167
|
#### Step 4.4: 关键概念说明
|
|
@@ -156,6 +183,11 @@ Issue 闭环: discover → create → analyze --gaps → plan --gaps → execute
|
|
|
156
183
|
- **Spec**: 项目约束规则(coding/arch/debug/test),自动注入到工作流
|
|
157
184
|
- **Wiki**: 知识图谱,存储详细技术文档
|
|
158
185
|
- **Ralph**: 自适应决策引擎,动态调整执行链
|
|
186
|
+
- **Odyssey**: 长周期自主循环命令族(debug/improve/planex/ui/review-test-fix),自含考古→诊断→修复→泛化→知识持久化
|
|
187
|
+
- **Swarm Workflow**: 将任务路由到固定 Workflow 脚本进行多 agent 并发执行
|
|
188
|
+
- **Universal Workflow**: 动态生成对抗性 Workflow 脚本,支持复用和持久化
|
|
189
|
+
- **Grill**: 在 brainstorm 之前的压力测试,用代码库现实检验想法/需求
|
|
190
|
+
- **Next**: 智能导航,检测工作流状态并推荐最优下一步命令
|
|
159
191
|
```
|
|
160
192
|
|
|
161
193
|
### Mode 5: Beginner Onboarding
|
|
@@ -180,6 +212,7 @@ Issue 闭环: discover → create → analyze --gaps → plan --gaps → execute
|
|
|
180
212
|
| 7 | `/maestro-plan` | 规划 | 分析完成后生成执行计划,支持 `--from analyze:ANL-xxx` 直达 |
|
|
181
213
|
| 8 | `/maestro-execute` | 执行 | 计划完成后,执行实现 |
|
|
182
214
|
| 9 | `/maestro-quick` | 快速任务 | 简单任务跳过管线 |
|
|
215
|
+
| 10 | `/maestro-next` | 智能导航 | 不确定下一步时,自动检测状态推荐 |
|
|
183
216
|
```
|
|
184
217
|
|
|
185
218
|
#### Step 5.2: 快速入门路径
|
|
@@ -90,7 +90,8 @@ Follow '~/.maestro/workflows/plan.md' completely.
|
|
|
90
90
|
- REQUIRED: Plan-checker passed (or minor issues acknowledged).
|
|
91
91
|
- REQUIRED: Confidence scored with 5-dimension factor model.
|
|
92
92
|
- REQUIRED: Pressure pass completed on highest-complexity task.
|
|
93
|
-
-
|
|
93
|
+
- REQUIRED: If plan touches UI (检出 `dashboard/` 或 UI 关键词 `landing|page|dashboard|frontend|UI|component|界面`), each delivery wave has ≥1 `[UI-observable]` convergence criterion (vertical-slice delivery, not backend-only).
|
|
94
|
+
- BLOCKED if: plan-checker found critical issues, OR UI plan missing `[UI-observable]` coverage — fix plan before presenting to user.
|
|
94
95
|
|
|
95
96
|
**GATE P5 → Completion: User Confirmation → Done**
|
|
96
97
|
- REQUIRED: User confirmation captured (execute/modify/cancel).
|
|
@@ -215,6 +216,7 @@ Status verdicts:
|
|
|
215
216
|
- [ ] .task/TASK-*.json files created for each task
|
|
216
217
|
- [ ] Every task has `read_first[]` with at least the file being modified + source of truth files
|
|
217
218
|
- [ ] Every task has `convergence.criteria[]` with grep-verifiable conditions (no subjective language)
|
|
219
|
+
- [ ] UI plans: each delivery wave has ≥1 `[UI-observable]` convergence criterion (vertical slice; verified at runtime by ralph frontend-verify gate)
|
|
218
220
|
- [ ] Every task `action` and `implementation` contain concrete values (no "align X with Y")
|
|
219
221
|
- [ ] Plan confidence scored in P4 with 5-dimension factor model
|
|
220
222
|
- [ ] Plan readiness gate checked before P4.5 collision detection
|
|
@@ -25,6 +25,7 @@ $ARGUMENTS — intent text, flags, or keywords.
|
|
|
25
25
|
**Parse:**
|
|
26
26
|
```
|
|
27
27
|
-y flag → auto_confirm = true
|
|
28
|
+
--roadmap → wants_roadmap = true (强制多发布 roadmap 路径;roadmap 默认 opt-in)
|
|
28
29
|
.md/.txt path → input_doc (supplementary context only, NEVER substitutes lifecycle stages)
|
|
29
30
|
Remaining → intent
|
|
30
31
|
```
|
|
@@ -58,7 +59,7 @@ S_PARSE_ROUTE — 解析参数、路由入口 PERSIST: —
|
|
|
58
59
|
S_STATUS — 显示 session 进度 PERSIST: —
|
|
59
60
|
S_CONTINUE — 恢复执行 PERSIST: —
|
|
60
61
|
S_RESOLVE_PHASE — 解析 phase + phase_is_new + D-007 milestone PERSIST: session.phase, session.phase_is_new, session.milestone
|
|
61
|
-
S_INFER — 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position
|
|
62
|
+
S_INFER — 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position, session.wants_roadmap
|
|
62
63
|
S_RESOLVE_SCOPE — 读 macro analyze conclusions.scope_verdict PERSIST: session.scope_verdict, session.analyze_macro_id
|
|
63
64
|
S_QUALITY_MODE — 决定质量管线模式 PERSIST: session.quality_mode
|
|
64
65
|
S_PLANNING_MODE — 决定统一/独立规划模式 PERSIST: session.planning_mode
|
|
@@ -130,7 +131,7 @@ S_DISPATCH:
|
|
|
130
131
|
→ END DO: invoke_skill({ skill: "maestro-ralph-execute" })
|
|
131
132
|
|
|
132
133
|
S_DECISION_EVAL: (decision 节点 == `step.decision` 非空,下述 gate 名取自该字段)
|
|
133
|
-
→ S_APPLY_VERDICT WHEN: quality-gate (post-execute, post-business-test, post-review, post-test)
|
|
134
|
+
→ S_APPLY_VERDICT WHEN: quality-gate (post-execute, post-business-test, post-review, post-test, post-frontend-verify)
|
|
134
135
|
DO: A_DELEGATE_EVALUATE
|
|
135
136
|
→ S_APPLY_VERDICT WHEN: goal-gate (post-goal-audit)
|
|
136
137
|
DO: A_GOAL_AUDIT_EVALUATE
|
|
@@ -217,6 +218,14 @@ resolve_milestone(phase_number):
|
|
|
217
218
|
| blueprint / 规格 / 正式文档 / spec-generate / 7-phase | `blueprint` |
|
|
218
219
|
| broad/medium intent 无数字 phase (重构/全面/重写/迁移/新功能 X) | `analyze-macro` |
|
|
219
220
|
|
|
221
|
+
**Roadmap opt-in detection** (设 `session.wants_roadmap`,缺省 `false`):
|
|
222
|
+
```
|
|
223
|
+
wants_roadmap = (--roadmap flag)
|
|
224
|
+
OR (intent 含多发布信号: 多发布|多版本|分阶段交付|按里程碑发布|v1.*v2|multi-release|roadmap)
|
|
225
|
+
OR (.workflow/roadmap.md 已存在) ← 向后兼容:既有 roadmap 项目行为不变
|
|
226
|
+
```
|
|
227
|
+
默认 `false` → large 项目走单一多波次 `plan --from analyze`,不引入 roadmap 横切层;roadmap 仅多发布场景 opt-in。
|
|
228
|
+
|
|
220
229
|
**Bootstrap detection:**
|
|
221
230
|
|
|
222
231
|
| Condition | Position |
|
|
@@ -231,7 +240,7 @@ resolve_milestone(phase_number):
|
|
|
231
240
|
| Condition | Position |
|
|
232
241
|
|-----------|----------|
|
|
233
242
|
| `phase_is_new == true` (新 phase) | `analyze` |
|
|
234
|
-
| no milestones AND no roadmap.md AND has analyze macro artifact | `roadmap` |
|
|
243
|
+
| no milestones AND no roadmap.md AND has analyze macro artifact | `roadmap` if `wants_roadmap` else `plan` (--from analyze) |
|
|
235
244
|
| no milestones AND no roadmap.md AND no analyze artifact | `analyze-macro` |
|
|
236
245
|
| `phase == null` (grill/brainstorm/blueprint/init/roadmap/analyze-macro override 已定) | n/a |
|
|
237
246
|
| phase 已存在 + 无任何 artifact | `analyze` |
|
|
@@ -252,9 +261,9 @@ resolve_milestone(phase_number):
|
|
|
252
261
|
|
|
253
262
|
| scope_verdict | 链路 |
|
|
254
263
|
|---------------|------|
|
|
255
|
-
| `large` | analyze-macro → roadmap → analyze → plan → execute →
|
|
256
|
-
| `medium` / `small` | analyze-macro → plan --from analyze:{ANL_ID} → execute → ...(跳过 roadmap + analyze-phase
|
|
257
|
-
| `unknown` | 默认走
|
|
264
|
+
| `large` + `wants_roadmap` | analyze-macro → roadmap → analyze → plan → execute → ...(多发布 opt-in) |
|
|
265
|
+
| `large`(默认)/ `medium` / `small` | analyze-macro → plan --from analyze:{ANL_ID} → execute → ...(跳过 roadmap + analyze-phase;单一多波次计划) |
|
|
266
|
+
| `unknown` | 默认走 standalone(plan --from analyze)路径,post-analyze-scope 决策节点再纠正 |
|
|
258
267
|
|
|
259
268
|
**Refine from post-execute results:**
|
|
260
269
|
|
|
@@ -337,10 +346,10 @@ narrow → derive defaults from intent + codebase, skip questions.
|
|
|
337
346
|
```json
|
|
338
347
|
{ "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
|
|
339
348
|
"done_when": "<objectively checkable condition>",
|
|
340
|
-
"evidence": "verification.json|review.json|uat.md|<test path>",
|
|
349
|
+
"evidence": "verification.json|review.json|uat.md|e2e-results.json|<test path>",
|
|
341
350
|
"lifecycle": ["analyze","execute"], "status": "pending" }
|
|
342
351
|
```
|
|
343
|
-
`done_when` 必须客观可验证,且引用 ralph 已产出的 artifact;`lifecycle` 字段映射到产出 evidence 的生命周期 stage
|
|
352
|
+
`done_when` 必须客观可验证,且引用 ralph 已产出的 artifact;`lifecycle` 字段映射到产出 evidence 的生命周期 stage。涉及前端可用性的子目标,`done_when` 应引用 `e2e-results.json`(frontend-verify 门产出),不得仅以后端 API/build 证据判定可用。
|
|
344
353
|
|
|
345
354
|
**5. Persist** (additive): `boundary_contract`, `execution_criteria`, `task_decomposition`。每个 sub-goal 含 `status: "pending"` + `completion_confirmed: false`。
|
|
346
355
|
|
|
@@ -356,6 +365,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
356
365
|
| brainstorm | `maestro-brainstorm "{intent}" --from grill:{grill_id}` *(if grill ran)* / `maestro-brainstorm "{intent}"` *(otherwise)* | *(same)* | — | all |
|
|
357
366
|
| blueprint | `maestro-blueprint "{intent}"` | *(same)* | — | all |
|
|
358
367
|
| init | `maestro-init` | *(same)* | — | all |
|
|
368
|
+
| spec-setup | `spec-setup` | *(same)* | — | all (**仅当 `.workflow/specs/` 不存在时插入**) |
|
|
359
369
|
| analyze-macro | `maestro-analyze "{intent}"` | *(same)* | `post-analyze-scope` | all |
|
|
360
370
|
| roadmap | `maestro-roadmap --from analyze:{analyze_macro_id}` | *(same)* | — | all |
|
|
361
371
|
| analyze | `maestro-analyze {phase}` | `maestro-analyze` | — | all |
|
|
@@ -365,6 +375,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
365
375
|
| review | `quality-review {phase}` | `quality-review` | `post-review` | all (quick: append `--tier quick`) |
|
|
366
376
|
| test-gen | `quality-auto-test {phase}` | `quality-auto-test` | — | full / standard if coverage<80% |
|
|
367
377
|
| test | `quality-test {phase}` | `quality-test` | `post-test` | full, standard |
|
|
378
|
+
| frontend-verify | `quality-test {phase} --frontend-verify` | `quality-test --frontend-verify` | `post-frontend-verify` | all(**仅当 phase 交付 UI 时插入**:检出 `dashboard/` 或 UI 关键词 `landing\|page\|dashboard\|frontend\|UI\|component\|界面`) |
|
|
368
379
|
| milestone-audit | `maestro-milestone-audit` | *(same)* | — | all |
|
|
369
380
|
| goal-audit | *(decision-only)* | *(same)* | `post-goal-audit` | all (only if decomposed) |
|
|
370
381
|
| milestone-complete | `maestro-milestone-complete` | *(same)* | `post-milestone` | all |
|
|
@@ -374,10 +385,12 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
374
385
|
**Build rules (按顺序应用):**
|
|
375
386
|
|
|
376
387
|
0. **planning_mode 选列**:`unified` → invoke_skill(unified) 列;`independent` → invoke_skill(independent) 列
|
|
388
|
+
0.5. **specs 预检**:当 `lifecycle_position ∉ {grill, brainstorm, blueprint, init}` 且 `.workflow/specs/` 目录不存在时,在链路最前面插入 `spec-setup` 步骤(stage=`spec-setup`,无 decision)。确保下游 analyze/plan/execute 可获得项目约束规则注入
|
|
377
389
|
1. **起点**:从 `session.lifecycle_position` 开始
|
|
378
390
|
2. **跳过已完成**:跳过当前 milestone+phase 下已有 completed artifact 的 stage(按 `session.phase` 过滤);unified 按 milestone 过滤
|
|
379
391
|
3. **quality_mode 过滤**:按 `session.quality_mode` 排除不匹配 stage
|
|
380
392
|
3.5. **grill auto_confirm 跳过**:`auto_confirm == true` 时删除 `grill` stage(grill 为交互式苏格拉底拷问,不支持自动模式);brainstorm args 不含 `--from grill:*`
|
|
393
|
+
3.6. **frontend-verify UI 门控**:仅当当前 phase 交付前端(检出 `dashboard/` 目录,或 phase 目标/计划含 UI 关键词 `landing|page|dashboard|frontend|UI|component|界面`)时保留 `frontend-verify` stage + `post-frontend-verify` decision;纯后端 phase 删除该 stage
|
|
381
394
|
4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ decision: "<gate>", retry_count: 0, max_retries: 2, command_scope: null, command_path: null }`
|
|
382
395
|
5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(execute/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
|
|
383
396
|
6. **终点硬约束**:chain 以 `milestone-complete` 结尾
|
|
@@ -392,13 +405,16 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
392
405
|
- **不在 build 阶段读取 .md 内容**;`<required_reading>` / `<deferred_reading>` 解析与加载由 `maestro ralph next` CLI 在执行期完成
|
|
393
406
|
10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`, `deferred_reads: []`, `load: null`(由 `ralph next` 写入)
|
|
394
407
|
11. **scope_verdict gating**(仅当 chain 起点 = `analyze-macro`):
|
|
395
|
-
- `scope_verdict
|
|
396
|
-
- `
|
|
397
|
-
- `scope_verdict == unknown` → 默认
|
|
408
|
+
- `scope_verdict == large` **且** `wants_roadmap` → 保留 `roadmap` + `analyze`;`plan` 选 phase 列(`{phase}`)
|
|
409
|
+
- 其余(`medium` / `small`,或 `large` 但非 `wants_roadmap`)→ 跳过 `roadmap` + `analyze` 两 stage;`plan` 选 standalone 列(`--from analyze:{analyze_macro_id}`),不带 `{phase}`
|
|
410
|
+
- `scope_verdict == unknown` → 默认 standalone(非 roadmap)路径;由 `post-analyze-scope` 决策节点在 macro analyze 完成后纠正(A_APPLY_SCOPE_VERDICT)
|
|
398
411
|
12. **--from 自动注入**:
|
|
399
412
|
- `analyze_macro_id` 存在且当前 step 是 `roadmap` → args 改为 `--from analyze:{analyze_macro_id}`
|
|
400
|
-
- `analyze_macro_id`
|
|
413
|
+
- `analyze_macro_id` 存在且当前 `plan` step 处于 standalone 列(即非 wants_roadmap 路径:`medium`/`small`,或 `large` 但非 `wants_roadmap`)→ args 改为 `--from analyze:{analyze_macro_id}`
|
|
401
414
|
- `blueprint_id` 存在 → 当前 step 是 `plan` → args 改为 `--from blueprint:{blueprint_id}`(优先级低于 phase 数字参数)
|
|
415
|
+
- **phase-level deferred chaining**(独立模式,step 含 `{phase}` 占位符):build 阶段前序 artifact 尚未产出,由 A_RESOLVE_ARGS(ralph-execute)运行时从 state.json 查找同 phase+milestone 最新 completed artifact 注入:
|
|
416
|
+
- `plan` step → `--from analyze:{phase_analyze_id}`,写 `source_artifact_ref`
|
|
417
|
+
- `execute` step → `--dir {plan_path}`(现有逻辑),写 `source_artifact_ref = "plan:{id}"`
|
|
402
418
|
- 写入 `step.source_artifact_ref` 以便审计
|
|
403
419
|
13. **D-007 Milestone-ref 标注**:每个含 `{phase}` 占位符的 step → `step.milestone_id = session.milestone`(由 A_RESOLVE_PHASE 反查得出),禁止读 `current_milestone`
|
|
404
420
|
14. **动态插入步骤**(A_APPLY_*)同样应用规则 7-13
|
|
@@ -408,7 +424,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
408
424
|
1. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 + 列出缺失 skill
|
|
409
425
|
2. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (Appendix: Session Schema)
|
|
410
426
|
3. Display chain overview:每步显示 `{index}. {skill} [{type}] [{command_scope}]`
|
|
411
|
-
4.
|
|
427
|
+
4. **Goal Prompt 显示(强制)**:`task_decomposition` 存在时,chain overview 之后**必须逐字显示** Goal Prompt block(Appendix),不得省略或摘要。显示后继续 handoff,不阻塞
|
|
412
428
|
|
|
413
429
|
### A_DELEGATE_EVALUATE
|
|
414
430
|
|
|
@@ -421,6 +437,7 @@ Generate steps from `session.lifecycle_position` to `milestone-complete`.
|
|
|
421
437
|
| post-business-test | .tests/auto-test/report.json |
|
|
422
438
|
| post-review | review.json |
|
|
423
439
|
| post-test | uat.md, .tests/test-results.json |
|
|
440
|
+
| post-frontend-verify | e2e-results.json |
|
|
424
441
|
4. Check artifact for confidence section → include as signal
|
|
425
442
|
5. Execute delegate (run_in_background, STOP, wait for callback):
|
|
426
443
|
```
|
|
@@ -522,14 +539,14 @@ Runs only when `task_decomposition` present.
|
|
|
522
539
|
|
|
523
540
|
由 `post-analyze-scope` 触发,依据 `session.scope_verdict` 重塑下游链路。
|
|
524
541
|
|
|
525
|
-
1. 读 `session.scope_verdict`
|
|
526
|
-
2. 路径 A(`large
|
|
527
|
-
3. 路径 B(`medium` / `small`):
|
|
542
|
+
1. 读 `session.scope_verdict` + `session.wants_roadmap`
|
|
543
|
+
2. 路径 A(`large` 且 `wants_roadmap`):保持当前链(roadmap+analyze);为后续 `roadmap` step 注入 `--from analyze:{analyze_macro_id}`;为后续 `plan` step 选 phase 列;继续推进
|
|
544
|
+
3. 路径 B(`medium` / `small`,或 `large` 但非 `wants_roadmap`):
|
|
528
545
|
- 删除 `goal-audit` 之前所有未完成的 `roadmap` + `analyze` (phase) step
|
|
529
546
|
- 把下一个未完成的 `plan` step 改为 `maestro-plan --from analyze:{analyze_macro_id}`,去掉 `{phase}`,`source_artifact_ref = analyze:{analyze_macro_id}`
|
|
530
547
|
- 后续 `execute` 等沿用同一 standalone scope(不带 `{phase}`,由 plan 写出的 task 列表驱动)
|
|
531
548
|
4. 路径 C(`unknown`):
|
|
532
|
-
- 非 auto_confirm → ask_user 二选一(
|
|
549
|
+
- 非 auto_confirm → ask_user 二选一(roadmap 多发布 / 单一计划);auto_confirm → 默认路径 B(单一计划,不引入 roadmap)
|
|
533
550
|
5. Reindex steps,标 decision completed,write status.json
|
|
534
551
|
6. Display: ◆ Scope verdict: {verdict} → {kept|collapsed to standalone via analyze:{ANL_ID}}
|
|
535
552
|
|
|
@@ -579,6 +596,7 @@ Runs only when `task_decomposition` present.
|
|
|
579
596
|
"quality_mode": "standard", // "full" | "standard" | "quick"
|
|
580
597
|
"planning_mode": "independent", // "unified" | "independent"
|
|
581
598
|
"scope_verdict": null, // "large" | "medium" | "small" | "unknown" | null
|
|
599
|
+
"wants_roadmap": false, // roadmap opt-in:--roadmap | 多发布 intent | roadmap.md 已存在
|
|
582
600
|
"analyze_macro_id": null, // "ANL-xxx" 来自最新 macro analyze
|
|
583
601
|
"blueprint_id": null, // "BLP-xxx" 若存在
|
|
584
602
|
"cli_tool": "claude", "passed_gates": [],
|
|
@@ -670,6 +688,15 @@ quality-test {phase}
|
|
|
670
688
|
decision:post-test {retry+1}
|
|
671
689
|
```
|
|
672
690
|
|
|
691
|
+
**post-frontend-verify:** (UI 写端点未接线/不可用时)
|
|
692
|
+
```
|
|
693
|
+
quality-debug --from-frontend-verify "{gap_summary}"
|
|
694
|
+
maestro-plan --gaps {phase}
|
|
695
|
+
maestro-execute {phase}
|
|
696
|
+
quality-test {phase} --frontend-verify
|
|
697
|
+
decision:post-frontend-verify {retry+1}
|
|
698
|
+
```
|
|
699
|
+
|
|
673
700
|
**post-goal-audit:** (per unmet sub-goal group)
|
|
674
701
|
```
|
|
675
702
|
# for each unmet sub-goal G{n}, scoped to target_phase:
|
|
@@ -686,7 +713,11 @@ decision:post-goal-audit {retry+1}
|
|
|
686
713
|
```
|
|
687
714
|
📋 任务分解完成。可随时复制以下 /goal 设定终止条件(执行过程中输入即可):
|
|
688
715
|
|
|
689
|
-
/goal
|
|
716
|
+
/goal 完成以下子目标:
|
|
717
|
+
{for each G in task_decomposition:}
|
|
718
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
719
|
+
{end for}
|
|
720
|
+
直到 {session_dir}/status.json 的 task_decomposition[*] 与 steps[*] 全部 completion_confirmed=true 才停。每轮以 status.json 为唯一行动手册,通过 /maestro-ralph-execute 推进 step;decision 节点由其自动 handoff 回 ralph 评估。禁止手动执行 skill 或修改 boundary_contract.out_of_scope。
|
|
690
721
|
```
|
|
691
722
|
|
|
692
723
|
`/goal` 由用户输入;ralph 输出提示词后继续 handoff,不阻塞。
|
|
@@ -714,12 +745,13 @@ decision:post-goal-audit {retry+1}
|
|
|
714
745
|
- [ ] Intent overrides 识别 grill / brainstorm / blueprint / analyze-macro
|
|
715
746
|
- [ ] auto_confirm=true 时 grill stage 跳过(交互式拷问不支持自动模式)
|
|
716
747
|
- [ ] A_RESOLVE_SCOPE_VERDICT 读 macro analyze conclusions.scope_verdict,写入 session.scope_verdict + analyze_macro_id
|
|
717
|
-
- [ ] 链路起点 = analyze-macro 时:large→roadmap+analyze+plan(phase)
|
|
748
|
+
- [ ] 链路起点 = analyze-macro 时:large+wants_roadmap→roadmap+analyze+plan(phase);其余(含 large 默认/medium/small)→直跳 plan --from analyze:{ANL_ID}(跳过 roadmap+analyze)
|
|
718
749
|
- [ ] post-analyze-scope decision 节点在 macro analyze 之后插入;A_SCOPE_EVALUATE/A_APPLY_SCOPE_VERDICT 重塑链路
|
|
719
750
|
- [ ] plan step args 支持三路径:`{phase}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}`,写入 step.source_artifact_ref
|
|
720
751
|
- [ ] roadmap step args 自动注入 `--from analyze:{analyze_macro_id}`(若存在)
|
|
721
752
|
- [ ] artifact 过滤按 session.phase;unified 按 milestone
|
|
722
753
|
- [ ] quality_mode 由 A_DETERMINE_QUALITY_MODE 决定,过滤 build steps
|
|
754
|
+
- [ ] frontend-verify stage 仅在 phase 交付 UI 时插入(test 后、milestone-audit 前);post-frontend-verify 走 quality-gate 评估,evidence=e2e-results.json
|
|
723
755
|
- [ ] Decomposition: broad intent ≤3 question clarify;narrow auto-derive
|
|
724
756
|
- [ ] status.json 唯一真源:boundary_contract + execution_criteria + task_decomposition;无外部清单
|
|
725
757
|
- [ ] 执行 step 含 `command_scope` + `command_path`(通过 `maestro ralph skills --platform agent --json --quiet` 预校验,project 覆盖 global);decision step 通过 `step.decision` 字段标识
|
|
@@ -729,8 +761,12 @@ decision:post-goal-audit {retry+1}
|
|
|
729
761
|
- [ ] post-goal-audit decision 仅在 decomposed 时插入,位于 milestone-complete 之前
|
|
730
762
|
- [ ] Unmet sub-goals 动态 grow steps[](goal_ref tagged);max retries → escalate
|
|
731
763
|
- [ ] planning_mode 显式决定;unified=无 `{phase}`, independent=带 `{phase}`
|
|
764
|
+
- [ ] specs 预检:lifecycle_position 在 init 之后 + `.workflow/specs/` 不存在 → 链路最前面插入 `spec-setup`
|
|
732
765
|
- [ ] Chain 必须以 `milestone-complete` 结尾
|
|
733
766
|
- [ ] Decision nodes 由 maestro delegate --role analyze 评估
|
|
734
767
|
- [ ] Ralph 不执行 step,只 evaluate;invoke_skill("maestro-ralph-execute") handoff
|
|
768
|
+
- [ ] Phase-level deferred chaining:plan/execute step 的 `--from`/`--dir` 注入由 A_RESOLVE_ARGS(ralph-execute)运行时完成;build 阶段标记意图,不预知 artifact ID
|
|
769
|
+
- [ ] Phase-level plan step 运行时获得 `--from analyze:{phase_analyze_id}`(由 ralph-execute 从 state.json 查找注入)
|
|
770
|
+
- [ ] Phase-level execute step 运行时获得 `source_artifact_ref = "plan:{id}"`
|
|
735
771
|
|
|
736
772
|
</appendix>
|
|
@@ -55,6 +55,7 @@ HARD RULES:
|
|
|
55
55
|
7. **status.json 每步骤后由 CLI 原子写盘** — resume-safe
|
|
56
56
|
8. **STATUS 枚举受限** — 仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;`NEEDS_CONTEXT` 已废除
|
|
57
57
|
9. **CLI 输出禁止截断** — `maestro ralph next` 的 stdout 包含完整 skill prompt,必须全量捕获。**严禁** `| head`、`| tail`、`2>&1 | head -N` 等任何截断管道。Bash timeout 可加长但不可截断输出
|
|
58
|
+
10. **禁止以上下文消耗为由中断自调用链** — harness 自动处理 context compression(消息摘要),模型无需判断上下文剩余空间。自调用链的唯一合法终止条件是:全部 `completion_confirmed`、session paused、或 decision handoff 到 ralph。以"上下文不足"、"已连续完成 N 个 step"、"避免 context overflow"等理由中断属于 invariant violation
|
|
58
59
|
</invariants>
|
|
59
60
|
|
|
60
61
|
<state_machine>
|
|
@@ -135,19 +136,44 @@ S_FALLBACK:
|
|
|
135
136
|
| maestro-brainstorm | topic | `"{intent}"` |
|
|
136
137
|
| maestro-roadmap | description | `"{intent}"` |
|
|
137
138
|
| maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
|
|
138
|
-
| maestro-plan | phase or --dir |
|
|
139
|
-
| maestro-execute | phase or --dir |
|
|
139
|
+
| maestro-plan | phase, --from, or --dir | see --from auto-injection below |
|
|
140
|
+
| maestro-execute | phase or --dir | see --from auto-injection below |
|
|
140
141
|
| quality-debug | gap context | Read previous step's error/gap |
|
|
141
142
|
| quality-* | phase | `{phase}` |
|
|
142
143
|
|
|
143
|
-
|
|
144
|
+
**--from auto-injection (phase-level artifact chaining):**
|
|
145
|
+
|
|
146
|
+
Phase-level steps 在 build 阶段无法预知前序 artifact ID。A_RESOLVE_ARGS 运行时从 state.json 查找并注入显式引用,打通 analyze→plan→execute 数据管道:
|
|
147
|
+
|
|
144
148
|
```
|
|
145
|
-
Read state.json
|
|
146
|
-
|
|
147
|
-
|
|
149
|
+
Read state.json.artifacts(含 milestone_history 内归档 artifacts)
|
|
150
|
+
→ filter by milestone={session.milestone} + phase={session.phase} + status=="completed"
|
|
151
|
+
|
|
152
|
+
plan step(含 {phase} 占位符,args 无 --from 且无 --dir):
|
|
153
|
+
1. 查同 phase+milestone 最新 completed type=="analyze" artifact → id = ANL-xxx
|
|
154
|
+
2. 命中 → args 追加 --from analyze:{id}
|
|
155
|
+
3. 写 step.source_artifact_ref = "analyze:{id}"
|
|
156
|
+
|
|
157
|
+
execute step(含 {phase} 占位符,args 无 --dir):
|
|
158
|
+
1. 查同 phase+milestone 最新 completed type=="plan" artifact → id = PLN-xxx, path = scratch/...
|
|
159
|
+
2. 命中 → args 追加 --dir .workflow/scratch/{path}
|
|
160
|
+
3. 写 step.source_artifact_ref = "plan:{id}"
|
|
148
161
|
```
|
|
149
162
|
|
|
150
|
-
|
|
163
|
+
兜底:查询无结果 → 不注入,由命令自身 discovery 逻辑处理。已有 `--from` 或 `--dir` 的 step 不覆盖。
|
|
164
|
+
|
|
165
|
+
**Goal context injection:**
|
|
166
|
+
|
|
167
|
+
当 step.goal_ref 非空且 session.task_decomposition 存在时:
|
|
168
|
+
```
|
|
169
|
+
goal = session.task_decomposition.find(g => g.id == step.goal_ref)
|
|
170
|
+
if goal:
|
|
171
|
+
goal_snippet = { id: goal.id, goal: goal.goal, done_when: goal.done_when,
|
|
172
|
+
boundary: goal.boundary, evidence: goal.evidence }
|
|
173
|
+
→ 传递给 A_EXEC_STEP 用于 inline execution 前注入(见 step 2 goal context pre-injection)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Write enriched args + source_artifact_ref back to status.json.
|
|
151
177
|
|
|
152
178
|
### A_EXEC_DECISION
|
|
153
179
|
|
|
@@ -163,13 +189,24 @@ Write enriched args back to status.json.
|
|
|
163
189
|
- 退出码 2 → 交给 S_LOCATE
|
|
164
190
|
- 退出码 3 → active_step_index 已被占用
|
|
165
191
|
- 退出码 1 → pause session
|
|
166
|
-
2. **
|
|
167
|
-
|
|
192
|
+
2. **Goal context pre-injection** — 若 A_RESOLVE_ARGS 产出了 `goal_snippet`(step.goal_ref 非空),在 ralph next stdout prompt **顶部前置**以下 block,使执行命令感知当前子目标和执行约束:
|
|
193
|
+
```
|
|
194
|
+
<goal_context>
|
|
195
|
+
Sub-goal: {goal.id} — {goal.goal}
|
|
196
|
+
Done when: {goal.done_when}
|
|
197
|
+
Boundary: {goal.boundary}
|
|
198
|
+
Evidence target: {goal.evidence}
|
|
199
|
+
Execution criteria: {session.execution_criteria joined by '; '}
|
|
200
|
+
</goal_context>
|
|
201
|
+
```
|
|
202
|
+
无 goal_snippet 时跳过此步。goal_context block 不替换 ralph next 的 stdout 内容,仅在其前方拼接。
|
|
203
|
+
3. **Inline execution** — 按 stdout(含 goal_context 前置)执行;deferred_reading 按需 Read
|
|
204
|
+
4. **Complete**:
|
|
168
205
|
- `shell("maestro ralph complete N --status DONE [--evidence <path>]")`
|
|
169
206
|
- `shell("maestro ralph complete N --status DONE_WITH_CONCERNS --concerns \"...\"")`
|
|
170
207
|
- `shell("maestro ralph retry N")`
|
|
171
208
|
- `shell("maestro ralph complete N --status BLOCKED --reason \"...\"")`
|
|
172
|
-
|
|
209
|
+
5. **Propagate context signals** — 关键信号 (`PHASE: N` / `scratch_dir: path` / `BLP-xxx`) 写入 `status.json.context`
|
|
173
210
|
|
|
174
211
|
完成后 S_LOCATE 触发 `invoke_skill({ skill: "maestro-ralph-execute" })` 自调用。
|
|
175
212
|
|
|
@@ -245,5 +282,10 @@ Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro
|
|
|
245
282
|
- [ ] Context signals 由执行 step 显式写回 status.json.context(非 ralph-execute 内嵌扫描)
|
|
246
283
|
- [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
|
|
247
284
|
- [ ] 自调用持续到全部 completion_confirmed 或 paused
|
|
285
|
+
- [ ] --from auto-injection:phase-level plan step 运行时从 state.json 查找同 phase+milestone 最新 completed analyze artifact → 注入 `--from analyze:{id}`,写 `source_artifact_ref`
|
|
286
|
+
- [ ] --from auto-injection:phase-level execute step 运行时查找同 phase+milestone 最新 completed plan artifact → 注入 `--dir`,写 `source_artifact_ref`
|
|
287
|
+
- [ ] Goal context injection:step.goal_ref 非空时从 task_decomposition 提取 goal_snippet,A_EXEC_STEP 在 ralph next stdout 顶部前置 `<goal_context>` block
|
|
288
|
+
- [ ] Goal context 包含 sub-goal description、done_when、boundary、evidence、execution_criteria
|
|
289
|
+
- [ ] 已有 `--from` 或 `--dir` 的 step 不被 auto-injection 覆盖
|
|
248
290
|
|
|
249
291
|
</appendix>
|
|
@@ -46,6 +46,7 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1-8 in order.
|
|
|
46
46
|
2. **Dedup before write** — check harvest-log.jsonl and existing stores before each write.
|
|
47
47
|
3. **Never modify source artifacts** — harvest is purely extractive.
|
|
48
48
|
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.
|
|
49
|
+
5. **Conflict pre-check on spec routing** — when routing to spec (Stage 6b), compare new entry against existing specs with same keywords/category. If semantic conflict detected, set `confidence="low"` on the new entry and log conflict note. Use `maestro spec conflict mark` if contradiction is clear.
|
|
49
50
|
|
|
50
51
|
Extraction patterns, classification rules, routing infrastructure, and fragment ID scheme defined in workflow harvest.md.
|
|
51
52
|
|
|
@@ -60,6 +61,8 @@ Extraction patterns, classification rules, routing infrastructure, and fragment
|
|
|
60
61
|
| Wiki graph needs linking | `/manage-wiki connect --fix` |
|
|
61
62
|
| Issues created | `/manage-issue list --source harvest` |
|
|
62
63
|
| Specs extracted | `/spec-load --role implement` |
|
|
64
|
+
| Specs extracted (冲突审查) | `/manage-knowledge-audit --scope spec` — 新写入的 spec 可能与现有条目矛盾 |
|
|
65
|
+
| Spec 冲突标记已存在 | `maestro spec conflict list` — 查看当前冲突状态 |
|
|
63
66
|
| Full phase retrospective | `/quality-retrospective` |
|
|
64
67
|
</completion>
|
|
65
68
|
|
|
@@ -45,10 +45,12 @@ Follow `~/.maestro/workflows/knowledge-audit.md` Stages 1-8 in order.
|
|
|
45
45
|
**GATE 1: Load → Detect** (Stages 1-2 → Stage 4)
|
|
46
46
|
- REQUIRED: Scope 解析通过,互斥标志校验完成。
|
|
47
47
|
- REQUIRED: 三存储按 scope 加载完成。
|
|
48
|
+
- REQUIRED: 加载已有冲突标记: `maestro spec conflict list` → 合并到 finding 池。
|
|
48
49
|
- BLOCKED if scope 非法或存储不可读: E001/E002。
|
|
49
50
|
|
|
50
51
|
**GATE 2: Detect → Decision** (Stage 4 → Stage 5)
|
|
51
52
|
- REQUIRED: Finding 池按 P0/P1/P2 分级输出。
|
|
53
|
+
- REQUIRED: 已标记 `contested` 的条目自动归入 P0 finding(来源: conflict-marker)。
|
|
52
54
|
- REQUIRED: 未 harvest 的 artifact 删除前触发抢救确认(W002)。
|
|
53
55
|
- BLOCKED if finding 为空: 无需淘汰,直接输出报告。
|
|
54
56
|
|
|
@@ -63,6 +65,31 @@ Follow `~/.maestro/workflows/knowledge-audit.md` Stages 1-8 in order.
|
|
|
63
65
|
- **Deprecate over delete**: 文本存储首选 `status="deprecated"`,保留历史。
|
|
64
66
|
- **Purge 仅 artifact**: `--purge` 不作用于 spec/knowhow。
|
|
65
67
|
- **Rescue before delete**: 未抽取 artifact 删除前强制提示先 `/manage-harvest`。
|
|
68
|
+
|
|
69
|
+
### Conflict Resolution Integration
|
|
70
|
+
|
|
71
|
+
四态决策(扩展自三态 keep/deprecate/delete):
|
|
72
|
+
|
|
73
|
+
| 动作 | 适用场景 | 执行 |
|
|
74
|
+
|------|---------|------|
|
|
75
|
+
| `keep` | 内容正确,无需变更 | 写 audit-log ignore 记录 |
|
|
76
|
+
| `contest` | 矛盾真实存在,需进一步审查 | `maestro spec conflict mark <file> <line> --note "<evidence>"` |
|
|
77
|
+
| `deprecate` | 内容过时或被取代 | 注入 `status="deprecated"` + `maestro spec conflict clear <file> <line>` |
|
|
78
|
+
| `delete` | 内容明确错误 | 移除 entry + `maestro spec conflict clear <file> <line>` |
|
|
79
|
+
|
|
80
|
+
**关键**: deprecate/delete 执行时,如果目标条目有 conflict-marker,必须同步调用 `maestro spec conflict clear` 清除标记,避免悬空冲突。
|
|
81
|
+
|
|
82
|
+
### Code-as-Truth 校验(审查核心原则)
|
|
83
|
+
|
|
84
|
+
**代码是唯一真理源。** Spec/knowhow 中的任何声明,必须与代码实际行为一致。
|
|
85
|
+
|
|
86
|
+
当 detector 发现 spec 条目声称某行为/规则时:
|
|
87
|
+
1. **代码校验**: grep/read 代码中相关实现,确认 spec 声明是否与代码一致
|
|
88
|
+
2. **不一致处理**:
|
|
89
|
+
- 代码正确、spec 过时 → `deprecate` 或 `delete` spec 条目
|
|
90
|
+
- 代码正确、spec 不完整 → `contest` 并建议补充
|
|
91
|
+
- 代码有 bug、spec 正确 → `keep` spec,生成 issue 修代码
|
|
92
|
+
3. **禁止**: 仅凭 spec 文本判断正确性。每个 finding 的 evidence 必须包含代码引用(文件:行号)
|
|
66
93
|
</execution>
|
|
67
94
|
|
|
68
95
|
<completion>
|
|
@@ -73,6 +100,8 @@ Follow `~/.maestro/workflows/knowledge-audit.md` Stages 1-8 in order.
|
|
|
73
100
|
| 复审淘汰记录 | 查看 `audit-report-{date}.md` |
|
|
74
101
|
| 抢救未抽取 artifact | `/manage-harvest <artifact-id>` |
|
|
75
102
|
| 验证 spec 现状 | `/spec-load --role implement` |
|
|
103
|
+
| 查看冲突标记 | `maestro spec conflict list` |
|
|
104
|
+
| 清除已解决冲突 | `maestro spec conflict clear-all <file>` |
|
|
76
105
|
| 周期巡检 | `--scope all --report` |
|
|
77
106
|
</completion>
|
|
78
107
|
|
|
@@ -57,6 +57,8 @@ Treats every bug as a learning signal with exhaustive iteration until root cause
|
|
|
57
57
|
- 关键判断用不同 `--role`(analyze / review / explore)获取多视角
|
|
58
58
|
- 修复前后各做一次 CLI review 确认
|
|
59
59
|
- 不同阶段可调用不同工具,综合多方意见再行动
|
|
60
|
+
|
|
61
|
+
4. **禁止以上下文消耗为由中断** — harness 自动处理 context compression,以"上下文不足"或"已执行 N 个阶段"为由中断属于纪律违反;必须完整走完状态机直到 S_RECORD → END
|
|
60
62
|
</execution_discipline>
|
|
61
63
|
|
|
62
64
|
<context>
|
|
@@ -392,7 +394,11 @@ Goals: {done}/{total} confirmed ({skipped} skipped)
|
|
|
392
394
|
```
|
|
393
395
|
📋 Debug Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
394
396
|
|
|
395
|
-
/goal
|
|
397
|
+
/goal 完成以下目标:
|
|
398
|
+
{for each G in phase_goals where status != "skipped":}
|
|
399
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
400
|
+
{end for}
|
|
401
|
+
穷尽迭代:直到根因确认(或明确 INCONCLUSIVE)且修复验证通过
|
|
396
402
|
且泛化扫描穷尽(所有 hits 已分类处理)且 phase_goals_all_done=true 才停。
|
|
397
403
|
假设失败时扩范围→换视角→升级工具,不轻易放弃。
|
|
398
404
|
泛化发现的同类 bug 全部修复或创建 issue,不允许遗留。
|
|
@@ -47,6 +47,8 @@ Baseline-first approach with exhaustive iteration until zero remaining actionabl
|
|
|
47
47
|
- survey 阶段: `--role explore` 发现依赖/复杂度热点
|
|
48
48
|
- audit/diagnose: `--role analyze` 获取多视角分析
|
|
49
49
|
- fix 前后: `--role review` 确认改进正确性
|
|
50
|
+
|
|
51
|
+
4. **禁止以上下文消耗为由中断** — harness 自动处理 context compression,以"上下文不足"或"已执行 N 个阶段"为由中断属于纪律违反;必须完整走完状态机直到 S_RECORD → END
|
|
50
52
|
</execution_discipline>
|
|
51
53
|
|
|
52
54
|
<context>
|
|
@@ -431,7 +433,11 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
431
433
|
```
|
|
432
434
|
📋 Improve Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件:
|
|
433
435
|
|
|
434
|
-
/goal
|
|
436
|
+
/goal 完成以下目标:
|
|
437
|
+
{for each G in phase_goals where status != "skipped":}
|
|
438
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
439
|
+
{end for}
|
|
440
|
+
穷尽迭代:直到 session.json 的 audit_result 中所有 findings 均已处理(fix/issue/decision)
|
|
435
441
|
且 phase_goals_all_done=true 才停。修复按 severity 逐轮迭代,每轮修复后 re-verify 修改区域。
|
|
436
442
|
Baseline metrics 必须在修复前采集,修复后必须与 baseline 对比确认改进。
|
|
437
443
|
遇到 phase=decision 的 pending 必须 ask_user。不允许"只报告不处理"。
|