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
|
@@ -56,6 +56,8 @@ plan → execute → verify → fix gaps → iterate until ALL criteria pass.
|
|
|
56
56
|
- 计划阶段: `--role analyze` 获取任务分解建议
|
|
57
57
|
- 修复前后: `--role review` 确认无回归
|
|
58
58
|
- verify 阶段: cli-review 类型标准自动 delegate
|
|
59
|
+
|
|
60
|
+
4. **禁止以上下文消耗为由中断** — harness 自动处理 context compression,以"上下文不足"或"已执行 N 个阶段"为由中断属于纪律违反;必须完整走完状态机直到 S_RECORD → END
|
|
59
61
|
</execution_discipline>
|
|
60
62
|
|
|
61
63
|
<context>
|
|
@@ -515,7 +517,15 @@ Write understanding.md §6, generalization_stats. Mark G5 done.
|
|
|
515
517
|
```
|
|
516
518
|
📋 Planex Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件(执行过程中输入即可):
|
|
517
519
|
|
|
518
|
-
/goal
|
|
520
|
+
/goal 完成以下目标:
|
|
521
|
+
{for each G in phase_goals where status != "skipped":}
|
|
522
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
523
|
+
{end for}
|
|
524
|
+
验收标准:
|
|
525
|
+
{for each AC in acceptance_criteria:}
|
|
526
|
+
- {AC.id}: {AC.criterion} (验证方式: {AC.verify_method})
|
|
527
|
+
{end for}
|
|
528
|
+
穷尽迭代:直到 acceptance_criteria[*] 全部 status==passed
|
|
519
529
|
且 phase_goals_all_done=true 才停。verify 失败自动 fix→re-verify 循环。
|
|
520
530
|
每轮修复后重新验证,新发现的标准违反继续修,不超过 max_iterations。
|
|
521
531
|
遇到 phase=decision 的 pending 必须 ask_user,不得自行 resolve。
|
|
@@ -46,6 +46,8 @@ fix ALL findings → confirm → generalize → discover → persist. Zero-resid
|
|
|
46
46
|
3. **多 CLI 辅助** — 利用 `maestro delegate` 调用多个 CLI 工具交叉验证
|
|
47
47
|
- 关键判断用不同 `--role`(analyze / review / explore)获取多视角
|
|
48
48
|
- 修复前后各做一次 CLI review 确认
|
|
49
|
+
|
|
50
|
+
4. **禁止以上下文消耗为由中断** — harness 自动处理 context compression,以"上下文不足"或"已执行 N 个阶段"为由中断属于纪律违反;必须完整走完状态机直到 S_RECORD → END
|
|
49
51
|
</execution_discipline>
|
|
50
52
|
|
|
51
53
|
<context>
|
|
@@ -366,7 +368,11 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
366
368
|
```
|
|
367
369
|
📋 Review-Test-Fix Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件(执行过程中输入即可):
|
|
368
370
|
|
|
369
|
-
/goal
|
|
371
|
+
/goal 完成以下目标:
|
|
372
|
+
{for each G in phase_goals where status != "skipped":}
|
|
373
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
374
|
+
{end for}
|
|
375
|
+
穷尽迭代:直到 session.json 的 review_result.remaining_actionable == 0
|
|
370
376
|
且 confirmation.verdict == "confirmed" 且 phase_goals_all_done == true 才停。
|
|
371
377
|
修复按 severity 逐轮迭代(critical→high→medium→low),每轮修复后 re-review 修改区域。
|
|
372
378
|
发现新问题追加到当前轮继续。遇到 phase=decision 的 pending 必须 ask_user。
|
|
@@ -47,6 +47,8 @@ fix → verify → generalize → discover → persist. Every pixel is a learnin
|
|
|
47
47
|
- survey 阶段: `--role explore` 发现设计系统用法
|
|
48
48
|
- audit/diverge: `--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>
|
|
@@ -391,7 +393,11 @@ Goals: {done}/{total} ({skipped} skipped)
|
|
|
391
393
|
```
|
|
392
394
|
📋 UI Odyssey 会话已创建。可随时复制以下 /goal 设定终止条件(执行过程中输入即可):
|
|
393
395
|
|
|
394
|
-
/goal
|
|
396
|
+
/goal 完成以下目标:
|
|
397
|
+
{for each G in phase_goals where status != "skipped":}
|
|
398
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
399
|
+
{end for}
|
|
400
|
+
穷尽迭代:直到 session.json 的 audit + diverge findings 均已处理(fix/issue/decision)
|
|
395
401
|
且 phase_goals_all_done=true 才停。修复按 impact×severity 逐轮迭代。
|
|
396
402
|
每轮修复后重审修改区域,新发现追加继续修。
|
|
397
403
|
遇到 phase=decision 的 pending 必须 ask_user。不允许"只报告不处理"。
|
|
@@ -52,6 +52,7 @@ Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
|
52
52
|
- Codebase docs: `.workflow/codebase/ARCHITECTURE.md` → component boundaries, layer rules
|
|
53
53
|
- Wiki constraints: `maestro search "architecture constraint" --json` → documented decisions
|
|
54
54
|
- Specs: `maestro spec load --category review` → review standards, checklists, knowhow tools
|
|
55
|
+
- Conflict state: `maestro spec conflict list` → 当前已标记冲突的 spec 条目(review 时优先关注)
|
|
55
56
|
- Role knowledge: `maestro search --category review` → select relevant → `maestro wiki load`
|
|
56
57
|
|
|
57
58
|
**Output**: `REVIEW_DIR = .workflow/scratch/{YYYYMMDD}-review-P{N}-{slug}/` (P{N} = phase number, enables directory-level identification as state.json fallback)
|
|
@@ -75,6 +76,7 @@ Follow '~/.maestro/workflows/review.md' completely.
|
|
|
75
76
|
- REQUIRED: review.json written with findings, severity distribution, and verdict.
|
|
76
77
|
- REQUIRED: Issues auto-created based on level thresholds.
|
|
77
78
|
- REQUIRED: index.json updated with review status.
|
|
79
|
+
- REQUIRED: Spec conflict check — if any finding directly contradicts a loaded spec entry (code behavior ≠ spec rule), suggest `maestro spec conflict mark` on the spec entry. Code is the single source of truth.
|
|
78
80
|
|
|
79
81
|
**Output writes to REVIEW_DIR** (not EXEC_DIR):
|
|
80
82
|
- `REVIEW_DIR/review.json` — findings, severity distribution, verdict
|
|
@@ -129,6 +131,7 @@ maestro ralph complete <idx> --status {STATUS} [--evidence {path}]
|
|
|
129
131
|
| PASS verdict | `/quality-test {phase}` |
|
|
130
132
|
| WARN verdict (non-blocking issues) | `/quality-test {phase}` (proceed with caveats) |
|
|
131
133
|
| BLOCK verdict (critical findings) | `/maestro-plan {phase} --gaps` (fix first) |
|
|
134
|
+
| Spec contradictions found | `maestro spec conflict list` → `/manage-knowledge-audit --scope spec` |
|
|
132
135
|
| Want code cleanup | `/quality-refactor {phase}` |
|
|
133
136
|
</completion>
|
|
134
137
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quality-test
|
|
3
3
|
description: Use when implementation needs user acceptance testing with interactive verification and gap closure
|
|
4
|
-
argument-hint: "[phase] [--smoke] [--auto-fix]"
|
|
4
|
+
argument-hint: "[phase] [--smoke] [--auto-fix] [--frontend-verify]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- read_file
|
|
7
7
|
- write_file
|
|
@@ -29,6 +29,31 @@ Flags, artifact context resolution, and output directory format defined in workf
|
|
|
29
29
|
</context>
|
|
30
30
|
|
|
31
31
|
<execution>
|
|
32
|
+
**Mode select:** `--frontend-verify` → 走下方 **Frontend Verify Mode**(确定性浏览器 smoke,**不是**对话式 UAT);否则 Follow '~/.maestro/workflows/test.md' completely.
|
|
33
|
+
|
|
34
|
+
### Frontend Verify Mode (`--frontend-verify`)
|
|
35
|
+
|
|
36
|
+
补 ralph 链路缺失的运行时可用性门:确定性验证每个用户可观测能力真正经 UI 可触发,避免"后端绿灯=完成"。
|
|
37
|
+
|
|
38
|
+
1. **Resolve targets**: 读 phase 的 `plan.json` / `.task/TASK-*.json`,提取所有 `[UI-observable]` convergence.criteria(plan 阶段产出);缺失则枚举后端写端点(POST/PUT/PATCH/DELETE)作为待验证清单。
|
|
39
|
+
2. **Start app**: `next start`(或从 dashboard/package.json 解析的既有启动脚本);启动失败 → E003。
|
|
40
|
+
3. **Drive browser**: 用 chrome-devtools MCP(`mcp__claude_dms3-chrome-devtools__*`:navigate / click / fill / take_snapshot / list_network_requests)逐条执行每个 `[UI-observable]` 流程,断言:UI 入口存在且可触发 → 对应写请求返回 2xx → DOM 出现预期结果。
|
|
41
|
+
4. **Write evidence**: 产出 `e2e-results.json`(结构见下),逐条记 pass/fail + 证据(网络状态码、快照引用)。**确定性断言,禁止"无人应答=全过"**。
|
|
42
|
+
5. **Verdict**: 任一 `[UI-observable]` fail 或写端点无 UI 入口 → STATUS=NEEDS_RETRY(ralph 经 post-frontend-verify 触发 Fix-Loop);全过 → DONE。
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
// e2e-results.json
|
|
46
|
+
{ "phase": "{phase}", "app_url": "http://localhost:3000",
|
|
47
|
+
"checks": [ { "criterion": "[UI-observable] ...", "ui_entry": "<selector/route>",
|
|
48
|
+
"request": "POST /api/notes", "status": 201, "dom_assert": "list shows new item",
|
|
49
|
+
"passed": true } ],
|
|
50
|
+
"summary": { "total": 0, "passed": 0, "failed": 0 }, "verdict": "pass|fail" }
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Ralph-invoked 完成:`maestro ralph complete <idx> --status {STATUS} --evidence e2e-results.json`。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
32
57
|
Follow '~/.maestro/workflows/test.md' completely.
|
|
33
58
|
|
|
34
59
|
### Phase Gates (MANDATORY, BLOCKING)
|
|
@@ -146,4 +171,5 @@ maestro ralph complete <idx> --status {STATUS} [--evidence {path}]
|
|
|
146
171
|
- [ ] Gaps updated with root_cause, fix_direction, affected_files
|
|
147
172
|
- [ ] Gap-fix loop triggered if --auto-fix (max 2 iterations)
|
|
148
173
|
- [ ] Next step routed (phase-transition if pass, verify if auto-fix success, debug --from-uat if issues, test-gen if low coverage)
|
|
174
|
+
- [ ] `--frontend-verify`: 每条 [UI-observable] criterion 经真实浏览器断言,产出 e2e-results.json;任一 fail → NEEDS_RETRY(不放行)
|
|
149
175
|
</success_criteria>
|
|
@@ -189,9 +189,11 @@ All behavioral statements MUST use MUST / SHOULD / MAY / MUST NOT / SHOULD NOT.
|
|
|
189
189
|
- [ ] No interrogative sentences (all declarative)
|
|
190
190
|
- [ ] system-architect: §3 contains "Data Model" and "State Machine" headings
|
|
191
191
|
|
|
192
|
-
##
|
|
192
|
+
## Completion Sequence (MANDATORY ORDER)
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
**Step A — Write files**: Use the Write tool to create every file under `output_dir/`. Then verify with Glob that `analysis.md` and each `analysis-F-*.md` exist on disk. If any Write call fails, emit `TASK BLOCKED` and stop.
|
|
195
|
+
|
|
196
|
+
**Step B — Report summary**: ONLY AFTER Step A files are confirmed on disk, emit this text (the orchestrator reads this summary to track progress — it does NOT substitute for the files):
|
|
195
197
|
|
|
196
198
|
```
|
|
197
199
|
TASK COMPLETE
|
|
@@ -204,7 +206,7 @@ rfc_keyword_count: {N}
|
|
|
204
206
|
total_lines: {sum across all files}
|
|
205
207
|
```
|
|
206
208
|
|
|
207
|
-
If blocked: report
|
|
209
|
+
Never emit `TASK COMPLETE` without files on disk. If blocked: report with `TASK BLOCKED` prefix.
|
|
208
210
|
|
|
209
211
|
## NEVER
|
|
210
212
|
|
|
@@ -116,6 +116,7 @@ You are a collaborative planner that works within a pre-allocated task ID range.
|
|
|
116
116
|
- Task files must use `convergence.criteria` (array of testable strings), not `done_when`
|
|
117
117
|
- files must use `[{path, action, target, change}]` format, not `["path"]`
|
|
118
118
|
- Each task must have convergence.criteria with min 2 testable conditions
|
|
119
|
+
- Vertical slice for UI features: deliver backend + frontend + integration as one end-to-end capability per wave (no backend-only/frontend-only split); each UI delivery wave needs ≥1 task with a `[UI-observable]` convergence criterion (verifiable user-facing flow)
|
|
119
120
|
- Each task must have `read_first[]` — files the executor MUST read before implementation
|
|
120
121
|
- `action` must contain concrete values (function signatures, config keys, import paths), not just a verb
|
|
121
122
|
- Task definitions follow the same schema as workflow-planner output
|
|
@@ -159,11 +159,13 @@ These rules prevent over-splitting that wastes tokens on unnecessary agent spawn
|
|
|
159
159
|
- **Low** (single file, single concern, zero cross-module): **1 task**
|
|
160
160
|
- **Medium** (multiple files OR integration point): **1-4 tasks**
|
|
161
161
|
- **High** (cross-module, architectural, new subsystem): **4-10 tasks**
|
|
162
|
+
8. **Vertical slice for UI features (MANDATORY)** — 含用户界面的功能必须作为端到端纵向切片交付一个用户可观测能力(后端 endpoint + 前端 wiring + 集成同属一个交付波次),**禁止**拆成 backend-only / frontend-only 任务或按层切波。每个交付波次须闭合一个可用能力,而非一层。
|
|
162
163
|
|
|
163
164
|
## Constraints
|
|
164
165
|
- Each task must be substantial (15-60 min of work); group related changes, avoid file-per-task
|
|
165
166
|
- Each task must have convergence.criteria (min 2 testable conditions)
|
|
166
167
|
- convergence.criteria must be specific and testable (not "works correctly")
|
|
168
|
+
- For UI features, each delivery wave MUST have ≥1 task with a `[UI-observable]` convergence criterion — a verifiable user-facing flow (e.g. `[UI-observable] User can create a Note in the UI and see it in the list`). Backend-only criteria do NOT satisfy this; the runtime check is enforced by ralph's frontend-verify gate.
|
|
167
169
|
- Each task must have `read_first[]` — files the executor MUST read before implementation (the file being modified + source-of-truth files)
|
|
168
170
|
- `action` must contain concrete values (function signatures, config keys, import paths), not just a verb like "Implement"
|
|
169
171
|
- files must use array format `[{path, action, target, change}]`
|
|
@@ -49,6 +49,7 @@ $ARGUMENTS — user intent text, or special keywords.
|
|
|
49
49
|
10. **每个 step 必须 `completion_confirmed: true`** — 由 `maestro ralph complete N --status DONE|DONE_WITH_CONCERNS` 写入
|
|
50
50
|
11. **schema** — `ralph_protocol_version: "1"` 标记 CLI-driven session;新增字段全部可选
|
|
51
51
|
12. **Invariant violation = BLOCK** — 违反上述任一 invariant 即阻断当前操作,不可绕过。特别是 invariant 1(dispatch via ralph-execute)和 invariant 2(session before execution)和 invariant 10(completion_confirmed 由 CLI 写入)为硬约束。
|
|
52
|
+
14. **禁止以上下文消耗为由中断执行** — harness 自动处理 context compression,以"上下文不足"或"避免 context overflow"为由中断属于 invariant violation
|
|
52
53
|
13. **Classification evidence** — S_CLASSIFY 的 chain 选择决策 MUST 记录到 status.json 的 `classification_rationale` 字段:匹配了哪个 pattern、排除了哪些备选、confidence level。无记录的分类不可进入 S_CREATE。
|
|
53
54
|
</invariants>
|
|
54
55
|
|
|
@@ -157,11 +158,16 @@ S_FALLBACK:
|
|
|
157
158
|
```
|
|
158
159
|
📋 任务分解完成。可随时复制下面一行设定目标(执行过程中输入即可):
|
|
159
160
|
|
|
160
|
-
/goal
|
|
161
|
+
/goal 完成以下子目标:
|
|
162
|
+
{for each G in task_decomposition:}
|
|
163
|
+
- {G.id}: {G.goal} — 完成条件: {G.done_when}
|
|
164
|
+
{end for}
|
|
165
|
+
达成条件: {session_dir}/status.json 中 task_decomposition[*].status == "done" 且 task_decomposition[*].completion_confirmed == true 且 steps[*].completion_confirmed == true。未达成时:阅读 {session_dir}/status.json 取得 execution_criteria / boundary_contract / task_decomposition / steps 作为行动手册,调用 /maestro-ralph continue 推进;严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
|
|
161
166
|
```
|
|
162
167
|
|
|
163
168
|
### A_CREATE_SESSION
|
|
164
169
|
|
|
170
|
+
0. **Specs 预检**:当 chain 包含 `analyze-macro` / `analyze` / `plan` / `execute` 等执行 stage 且 `.workflow/specs/` 目录不存在时,在 steps 最前面插入 `spec-setup`(stage=`spec-setup`,无 decision)。确保下游可获得项目约束规则注入。chain ∈ {grill, brainstorm, blueprint, init, status, quick} 时跳过
|
|
165
171
|
1. Read `.workflow/state.json` 获取 phase / milestone(含 D-007 反查 `phase_slugs`);读最新 macro analyze artifact 注入 `scope_verdict` + `analyze_macro_id`(如存在);读最新 blueprint artifact 注入 `blueprint_id`
|
|
166
172
|
2. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`(与 ralph 共用 schema):
|
|
167
173
|
```json
|
|
@@ -221,6 +227,7 @@ S_FALLBACK:
|
|
|
221
227
|
- [ ] plan 支持 `{phase}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}` 三路径;`source_artifact_ref` 写入 step
|
|
222
228
|
- [ ] Broad lifecycle intents decomposed (≤3 boundary questions); narrow/single-step skip
|
|
223
229
|
- [ ] status.json 唯一真源;无 markdown 清单;post-goal-audit 节点在 decomposed 时追加;/goal 提示词以 status.json 为判据
|
|
230
|
+
- [ ] Specs 预检:chain 含执行 stage + `.workflow/specs/` 不存在 → steps 最前面插入 `spec-setup`
|
|
224
231
|
- [ ] Chain selected and confirmed (or auto-confirmed)
|
|
225
232
|
- [ ] Session dir created with status.json before execution; decomposition fields additive-only
|
|
226
233
|
- [ ] 执行 step 含 `command_scope` + `command_path` + `completion_confirmed`;decision step 由 `step.decision` 标识
|
|
@@ -50,11 +50,11 @@ Single source of truth: **[index/catalog.json](index/catalog.json)**
|
|
|
50
50
|
|
|
51
51
|
| Field | Purpose |
|
|
52
52
|
|-------|---------|
|
|
53
|
-
| `commands[]` |
|
|
54
|
-
| `skills[]` |
|
|
55
|
-
| `agents[]` |
|
|
53
|
+
| `commands[]` | 64 个 slash 命令,含分类和描述 |
|
|
54
|
+
| `skills[]` | 44 个 Skill,含分类和描述 |
|
|
55
|
+
| `agents[]` | 24 个 Agent,含分类和描述 |
|
|
56
56
|
| `cli_commands[]` | 21 个终端命令 |
|
|
57
|
-
| `guide_files[]` | 17 个 Guide
|
|
57
|
+
| `guide_files[]` | 17 个 Guide 文档索引(planned,尚未创建) |
|
|
58
58
|
| `essential_commands[]` | 10 个核心命令(新手用) |
|
|
59
59
|
| `workflows` | 主干管线、快速渠道、Issue 闭环、初始化路径 |
|
|
60
60
|
|
|
@@ -190,6 +190,11 @@ $ARGUMENTS → Parse:
|
|
|
190
190
|
| `/maestro-quick` | 快速任务 |
|
|
191
191
|
| `/maestro-overlay` | Overlay 管理 |
|
|
192
192
|
| `/maestro-amend` | 修正补丁 |
|
|
193
|
+
| `/maestro-grill` | 压力测试 — 对计划或需求进行代码库现实性压力测试 |
|
|
194
|
+
| `/maestro-next` | 智能导航 — 检测状态并推荐下一步最优命令 |
|
|
195
|
+
| `/maestro-companion` | 知识伴侣 — 上下文加载、洞察捕获、技能路由 |
|
|
196
|
+
| `/maestro-swarm-workflow` | Swarm 并行加速器 — 多 agent 并发执行 |
|
|
197
|
+
| `/maestro-universal-workflow` | 动态对抗工作流生成器 |
|
|
193
198
|
|
|
194
199
|
### 理解层 + 执行管线 (pipeline)
|
|
195
200
|
|
|
@@ -217,9 +222,23 @@ $ARGUMENTS → Parse:
|
|
|
217
222
|
| `/manage-issue` | Issue 管理 |
|
|
218
223
|
| `/manage-issue-discover` | Issue 发现 |
|
|
219
224
|
| `/manage-knowhow` | 知识管理 |
|
|
225
|
+
| `/manage-knowhow-capture` | 知识捕获 |
|
|
220
226
|
| `/manage-status` | 状态查看 |
|
|
221
227
|
| `/manage-wiki` | Wiki 管理 |
|
|
222
228
|
| `/manage-harvest` | 收获 |
|
|
229
|
+
| `/manage-codebase-rebuild` | 代码库重建 |
|
|
230
|
+
| `/manage-kg-extractors` | 知识图谱提取器管理 |
|
|
231
|
+
| `/manage-knowledge-audit` | 知识审计 |
|
|
232
|
+
|
|
233
|
+
### Odyssey 长周期循环 (odyssey)
|
|
234
|
+
|
|
235
|
+
| 命令 | 用途 |
|
|
236
|
+
|------|------|
|
|
237
|
+
| `/odyssey-debug` | 长周期调试 — 考古、诊断、修复、泛化 |
|
|
238
|
+
| `/odyssey-improve` | 长周期代码改进 — 多维审计、深度诊断、定向修复 |
|
|
239
|
+
| `/odyssey-review-test-fix` | 深度审查修复循环 |
|
|
240
|
+
| `/odyssey-planex` | 需求驱动迭代 — 计划/执行/验证/修复循环 |
|
|
241
|
+
| `/odyssey-ui` | 长周期 UI 优化 — 视觉调研、多维审计、修复 |
|
|
223
242
|
|
|
224
243
|
## Workflow Mapping
|
|
225
244
|
|
|
@@ -238,7 +257,7 @@ Roadmap > Milestone > Phase > Task
|
|
|
238
257
|
|
|
239
258
|
```
|
|
240
259
|
上游起源层(并列,可选)
|
|
241
|
-
brainstorm(发散/轻量) | blueprint(收敛/重型)
|
|
260
|
+
brainstorm(发散/轻量) | blueprint(收敛/重型) | grill(压力测试)
|
|
242
261
|
|
|
243
262
|
理解层
|
|
244
263
|
analyze 双层: 宏观(文本参数) → scope_verdict | 微观(数字参数) → Phase 级决策
|
|
@@ -248,6 +267,13 @@ Roadmap > Milestone > Phase > Task
|
|
|
248
267
|
|
|
249
268
|
执行层
|
|
250
269
|
plan → execute
|
|
270
|
+
|
|
271
|
+
Odyssey 长周期循环(独立路径)
|
|
272
|
+
odyssey-debug / odyssey-improve / odyssey-review-test-fix / odyssey-planex / odyssey-ui
|
|
273
|
+
|
|
274
|
+
自适应引擎(高级)
|
|
275
|
+
ralph → 自运行决策循环
|
|
276
|
+
swarm-workflow / universal-workflow → 多 agent 并行执行
|
|
251
277
|
```
|
|
252
278
|
|
|
253
279
|
### 合法路径
|
|
@@ -265,6 +291,9 @@ Roadmap > Milestone > Phase > Task
|
|
|
265
291
|
| 全自动 | /maestro 入口 | `/maestro -y "任务描述"` |
|
|
266
292
|
| 代码审查 | 质量管线 | `/quality-review` → `/quality-auto-test` → `/quality-test` |
|
|
267
293
|
| 团队开发 | Team Lite | `/maestro-collab` |
|
|
294
|
+
| 长周期调试 | Odyssey 深度循环 | `/odyssey-debug "问题描述"` |
|
|
295
|
+
| 长周期改进 | Odyssey 深度循环 | `/odyssey-improve "改进目标"` |
|
|
296
|
+
| 需求迭代 | Odyssey 深度循环 | `/odyssey-planex "需求描述"` |
|
|
268
297
|
|
|
269
298
|
## Core Rules
|
|
270
299
|
|
|
@@ -292,9 +321,9 @@ Roadmap > Milestone > Phase > Task
|
|
|
292
321
|
|
|
293
322
|
## Statistics
|
|
294
323
|
|
|
295
|
-
- **Slash 命令**:
|
|
324
|
+
- **Slash 命令**: 64 个(13 个分类:core/pipeline/milestone/manage/quality/spec/learn/worktree/team/ralph/ui/tools/odyssey)
|
|
296
325
|
- **CLI 命令**: 21 个
|
|
297
|
-
- **Skills**:
|
|
298
|
-
- **Agents**:
|
|
299
|
-
- **Guide 文档**: 17
|
|
300
|
-
- **工作流路径**:
|
|
326
|
+
- **Skills**: 44 个(5 个分类:meta/team/knowledge/quality/scholar)
|
|
327
|
+
- **Agents**: 24 个(4 个分类:workflow/team/cli/ui)
|
|
328
|
+
- **Guide 文档**: 17 个(planned,尚未创建)
|
|
329
|
+
- **工作流路径**: 7 个合法路径 (Path A-G) + 4 个辅助流程
|