maestro-flow 0.3.45 → 0.3.47
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/.claude/agents/ui-design-agent.md +1 -0
- package/.claude/agents/workflow-executor.md +3 -0
- package/.claude/commands/learn-decompose.md +91 -146
- package/.claude/commands/learn-follow.md +102 -137
- package/.claude/commands/learn-investigate.md +102 -167
- package/.claude/commands/learn-retro.md +100 -243
- package/.claude/commands/learn-second-opinion.md +95 -135
- package/.claude/commands/maestro-amend.md +95 -232
- package/.claude/commands/maestro-analyze.md +1 -6
- package/.claude/commands/maestro-collab.md +104 -265
- package/.claude/commands/maestro-composer.md +113 -293
- package/.claude/commands/maestro-execute.md +11 -17
- package/.claude/commands/maestro-impeccable.md +89 -0
- package/.claude/commands/maestro-plan.md +1 -6
- package/.claude/commands/maestro-player.md +111 -340
- package/.claude/commands/maestro-quick.md +9 -0
- package/.claude/commands/maestro-ralph-execute.md +167 -210
- package/.claude/commands/maestro-ralph.md +245 -426
- package/.claude/commands/maestro-tools-register.md +28 -7
- package/.claude/commands/maestro-ui-codify.md +13 -0
- package/.claude/commands/maestro-ui-craft.md +364 -0
- package/.claude/commands/maestro-ui-design.md +12 -1
- package/.claude/commands/maestro-verify.md +12 -13
- package/.claude/commands/maestro.md +142 -72
- package/.claude/commands/manage-knowhow-capture.md +45 -161
- package/.claude/commands/quality-auto-test.md +9 -0
- package/.claude/commands/quality-debug.md +11 -24
- package/.claude/commands/quality-refactor.md +9 -0
- package/.claude/commands/quality-review.md +5 -13
- package/.claude/commands/quality-test.md +5 -0
- package/.claude/commands/spec-add.md +1 -1
- package/.claude/commands/spec-load.md +3 -2
- package/.claude/skills/maestro-help/SKILL.md +264 -0
- package/.claude/skills/maestro-help/index/catalog.json +182 -0
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.claude/skills/maestro-help/phases/02-search-present.md +181 -0
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +186 -0
- package/.claude/skills/maestro-impeccable/SKILL.md +169 -0
- package/.codex/agents/team-supervisor.toml +40 -0
- package/.codex/agents/team-worker.toml +63 -0
- package/.codex/skills/learn-decompose/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +2 -1
- package/.codex/skills/maestro/SKILL.md +278 -313
- package/.codex/skills/maestro-analyze/SKILL.md +126 -417
- package/.codex/skills/maestro-brainstorm/SKILL.md +129 -451
- package/.codex/skills/maestro-collab/SKILL.md +134 -547
- package/.codex/skills/maestro-execute/SKILL.md +4 -2
- package/.codex/skills/maestro-help/SKILL.md +213 -0
- package/.codex/skills/maestro-help/catalog.json +182 -0
- package/.codex/skills/maestro-impeccable/SKILL.md +112 -0
- package/.codex/skills/maestro-plan/SKILL.md +88 -437
- package/.codex/skills/maestro-player/SKILL.md +191 -333
- package/.codex/skills/maestro-quick/SKILL.md +2 -0
- package/.codex/skills/maestro-ralph/SKILL.md +307 -710
- package/.codex/skills/maestro-roadmap/SKILL.md +201 -518
- package/.codex/skills/maestro-tools-register/SKILL.md +29 -7
- package/.codex/skills/maestro-ui-codify/SKILL.md +1 -0
- package/.codex/skills/maestro-ui-craft/SKILL.md +341 -0
- package/.codex/skills/maestro-ui-design/SKILL.md +10 -0
- package/.codex/skills/maestro-verify/SKILL.md +116 -409
- package/.codex/skills/manage-knowhow-capture/SKILL.md +18 -3
- package/.codex/skills/quality-auto-test/SKILL.md +145 -443
- package/.codex/skills/quality-debug/SKILL.md +2 -1
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-review/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +229 -507
- package/.codex/skills/spec-add/SKILL.md +1 -1
- package/README.md +4 -1
- package/README.zh-CN.md +3 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +5 -3
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +14 -5
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js +110 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js +181 -0
- package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +56 -0
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.js +58 -0
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +3 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +7 -2
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +7 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js +9 -9
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.d.ts +113 -0
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js +6 -0
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +4 -3
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +1 -3
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/agents/cli-history-store.d.ts +5 -0
- package/dist/src/agents/cli-history-store.d.ts.map +1 -1
- package/dist/src/agents/cli-history-store.js +65 -13
- package/dist/src/agents/cli-history-store.js.map +1 -1
- package/dist/src/cli.js +13 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/command-help.d.ts +3 -0
- package/dist/src/commands/command-help.d.ts.map +1 -0
- package/dist/src/commands/command-help.js +60 -0
- package/dist/src/commands/command-help.js.map +1 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +17 -0
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +12 -2
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/impeccable.d.ts +10 -0
- package/dist/src/commands/impeccable.d.ts.map +1 -0
- package/dist/src/commands/impeccable.js +181 -0
- package/dist/src/commands/impeccable.js.map +1 -0
- package/dist/src/commands/knowhow.d.ts.map +1 -1
- package/dist/src/commands/knowhow.js +7 -4
- package/dist/src/commands/knowhow.js.map +1 -1
- package/dist/src/commands/spec.js +1 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +5 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +10 -7
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/addon-registry.d.ts +31 -0
- package/dist/src/core/addon-registry.d.ts.map +1 -0
- package/dist/src/core/addon-registry.js +28 -0
- package/dist/src/core/addon-registry.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.js +9 -4
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/spec-injector.js +2 -2
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/tools/impeccable/critique-storage.d.ts +28 -0
- package/dist/src/tools/impeccable/critique-storage.d.ts.map +1 -0
- package/dist/src/tools/impeccable/critique-storage.js +120 -0
- package/dist/src/tools/impeccable/critique-storage.js.map +1 -0
- package/dist/src/tools/impeccable/design-parser.d.ts +90 -0
- package/dist/src/tools/impeccable/design-parser.d.ts.map +1 -0
- package/dist/src/tools/impeccable/design-parser.js +696 -0
- package/dist/src/tools/impeccable/design-parser.js.map +1 -0
- package/dist/src/tools/impeccable/detect-csp.d.ts +6 -0
- package/dist/src/tools/impeccable/detect-csp.d.ts.map +1 -0
- package/dist/src/tools/impeccable/detect-csp.js +130 -0
- package/dist/src/tools/impeccable/detect-csp.js.map +1 -0
- package/dist/src/tools/impeccable/is-generated.d.ts +4 -0
- package/dist/src/tools/impeccable/is-generated.d.ts.map +1 -0
- package/dist/src/tools/impeccable/is-generated.js +56 -0
- package/dist/src/tools/impeccable/is-generated.js.map +1 -0
- package/dist/src/tools/impeccable/live/accept.d.ts +50 -0
- package/dist/src/tools/impeccable/live/accept.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/accept.js +556 -0
- package/dist/src/tools/impeccable/live/accept.js.map +1 -0
- package/dist/src/tools/impeccable/live/bootstrap.d.ts +2 -0
- package/dist/src/tools/impeccable/live/bootstrap.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/bootstrap.js +244 -0
- package/dist/src/tools/impeccable/live/bootstrap.js.map +1 -0
- package/dist/src/tools/impeccable/live/complete.d.ts +7 -0
- package/dist/src/tools/impeccable/live/complete.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/complete.js +67 -0
- package/dist/src/tools/impeccable/live/complete.js.map +1 -0
- package/dist/src/tools/impeccable/live/completion.d.ts +24 -0
- package/dist/src/tools/impeccable/live/completion.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/completion.js +26 -0
- package/dist/src/tools/impeccable/live/completion.js.map +1 -0
- package/dist/src/tools/impeccable/live/inject.d.ts +41 -0
- package/dist/src/tools/impeccable/live/inject.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/inject.js +394 -0
- package/dist/src/tools/impeccable/live/inject.js.map +1 -0
- package/dist/src/tools/impeccable/live/poll.d.ts +24 -0
- package/dist/src/tools/impeccable/live/poll.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/poll.js +180 -0
- package/dist/src/tools/impeccable/live/poll.js.map +1 -0
- package/dist/src/tools/impeccable/live/resume.d.ts +5 -0
- package/dist/src/tools/impeccable/live/resume.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/resume.js +30 -0
- package/dist/src/tools/impeccable/live/resume.js.map +1 -0
- package/dist/src/tools/impeccable/live/server.d.ts +6 -0
- package/dist/src/tools/impeccable/live/server.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/server.js +867 -0
- package/dist/src/tools/impeccable/live/server.js.map +1 -0
- package/dist/src/tools/impeccable/live/session-store.d.ts +72 -0
- package/dist/src/tools/impeccable/live/session-store.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/session-store.js +281 -0
- package/dist/src/tools/impeccable/live/session-store.js.map +1 -0
- package/dist/src/tools/impeccable/live/static/live-browser-session.js +123 -0
- package/dist/src/tools/impeccable/live/static/live-browser.js +4860 -0
- package/dist/src/tools/impeccable/live/static/modern-screenshot.umd.js +14 -0
- package/dist/src/tools/impeccable/live/status.d.ts +2 -0
- package/dist/src/tools/impeccable/live/status.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/status.js +52 -0
- package/dist/src/tools/impeccable/live/status.js.map +1 -0
- package/dist/src/tools/impeccable/live/wrap.d.ts +33 -0
- package/dist/src/tools/impeccable/live/wrap.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/wrap.js +572 -0
- package/dist/src/tools/impeccable/live/wrap.js.map +1 -0
- package/dist/src/tools/impeccable/load-context.d.ts +13 -0
- package/dist/src/tools/impeccable/load-context.d.ts.map +1 -0
- package/dist/src/tools/impeccable/load-context.js +79 -0
- package/dist/src/tools/impeccable/load-context.js.map +1 -0
- package/dist/src/tools/impeccable/paths.d.ts +34 -0
- package/dist/src/tools/impeccable/paths.d.ts.map +1 -0
- package/dist/src/tools/impeccable/paths.js +102 -0
- package/dist/src/tools/impeccable/paths.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -1
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +26 -1
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +2 -0
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/store-knowhow.d.ts.map +1 -1
- package/dist/src/tools/store-knowhow.js +15 -6
- package/dist/src/tools/store-knowhow.js.map +1 -1
- package/package.json +5 -3
- package/workflows/claude-instructions.md +17 -5
- package/workflows/cli-tools-usage.md +10 -3
- package/workflows/delegate-usage.md +3 -2
- package/workflows/impeccable/adapt.md +190 -0
- package/workflows/impeccable/animate.md +175 -0
- package/workflows/impeccable/audit.md +133 -0
- package/workflows/impeccable/bolder.md +113 -0
- package/workflows/impeccable/brand.md +118 -0
- package/workflows/impeccable/clarify.md +174 -0
- package/workflows/impeccable/codex.md +105 -0
- package/workflows/impeccable/cognitive-load.md +106 -0
- package/workflows/impeccable/color-and-contrast.md +105 -0
- package/workflows/impeccable/colorize.md +154 -0
- package/workflows/impeccable/craft.md +123 -0
- package/workflows/impeccable/critique.md +261 -0
- package/workflows/impeccable/delight.md +302 -0
- package/workflows/impeccable/distill.md +111 -0
- package/workflows/impeccable/document.md +439 -0
- package/workflows/impeccable/extract.md +69 -0
- package/workflows/impeccable/harden.md +347 -0
- package/workflows/impeccable/heuristics-scoring.md +234 -0
- package/workflows/impeccable/interaction-design.md +195 -0
- package/workflows/impeccable/layout.md +141 -0
- package/workflows/impeccable/live.md +622 -0
- package/workflows/impeccable/motion-design.md +109 -0
- package/workflows/impeccable/onboard.md +234 -0
- package/workflows/impeccable/optimize.md +258 -0
- package/workflows/impeccable/overdrive.md +130 -0
- package/workflows/impeccable/personas.md +179 -0
- package/workflows/impeccable/polish.md +242 -0
- package/workflows/impeccable/product.md +62 -0
- package/workflows/impeccable/quieter.md +99 -0
- package/workflows/impeccable/responsive-design.md +114 -0
- package/workflows/impeccable/shape.md +165 -0
- package/workflows/impeccable/spatial-design.md +100 -0
- package/workflows/impeccable/teach.md +168 -0
- package/workflows/impeccable/typeset.md +124 -0
- package/workflows/impeccable/typography.md +159 -0
- package/workflows/impeccable/ux-writing.md +107 -0
- package/workflows/impeccable.md +164 -0
- package/workflows/maestro.md +7 -3
- package/workflows/skill-authoring.md +265 -0
- package/workflows/specs-add.md +3 -2
- package/workflows/specs-load.md +2 -1
- package/workflows/specs-setup.md +21 -1
- package/workflows/tools-spec.md +20 -13
- package/.claude/commands/maestro-link-coordinate.md +0 -71
- package/.codex/skills/maestro-link-coordinate/SKILL.md +0 -257
|
@@ -14,108 +14,178 @@ allowed-tools:
|
|
|
14
14
|
- TodoWrite
|
|
15
15
|
---
|
|
16
16
|
<purpose>
|
|
17
|
-
Orchestrate all maestro commands
|
|
18
|
-
|
|
19
|
-
1. **Intent-based**: User describes a goal → classify task type → select/compose command chain → confirm → execute
|
|
20
|
-
2. **State-based**: Read .workflow/state.json → determine next logical step → suggest/execute (triggered by `continue`/`next`)
|
|
17
|
+
Orchestrate all maestro commands based on user intent and project state.
|
|
18
|
+
Classify intent → select chain → create session → dispatch to `maestro-ralph-execute`.
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
20
|
+
Entry points:
|
|
21
|
+
- **`/maestro "intent"`** — Intent-based: classify → chain → execute
|
|
22
|
+
- **`/maestro -c`** — Resume previous session
|
|
23
|
+
- **`/maestro --dry-run "intent"`** — Show chain, no execution
|
|
24
|
+
- **`/maestro --super "intent"`** — Production-ready mode (read maestro-super.md)
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
Dispatches to unified executor (`maestro-ralph-execute`) for sequential step execution with artifact propagation.
|
|
26
|
+
Session: `.workflow/.maestro/{session_id}/status.json`
|
|
28
27
|
</purpose>
|
|
29
28
|
|
|
30
29
|
<deferred_reading>
|
|
31
|
-
- [maestro.md](~/.maestro/workflows/maestro.md) — read at execution start
|
|
32
|
-
- [maestro-super.md](~/.maestro/workflows/maestro-super.md) — read when `--super` flag
|
|
30
|
+
- [maestro.md](~/.maestro/workflows/maestro.md) — read at execution start for intent analysis + chain selection
|
|
31
|
+
- [maestro-super.md](~/.maestro/workflows/maestro-super.md) — read when `--super` flag active
|
|
33
32
|
</deferred_reading>
|
|
34
33
|
|
|
35
34
|
<context>
|
|
36
35
|
$ARGUMENTS — user intent text, or special keywords.
|
|
37
36
|
|
|
38
|
-
**
|
|
39
|
-
- `continue` / `next` / `go` — State-based routing: read state.json, determine next step, execute
|
|
40
|
-
- `status` — Shortcut to Skill({ skill: "manage-status" })
|
|
37
|
+
**Keywords:** `continue`/`next`/`go` → state-based routing; `status` → `Skill("manage-status")`
|
|
41
38
|
|
|
42
39
|
**Flags:**
|
|
43
|
-
- `-y` / `--yes` — Auto mode: skip clarification, skip confirmation, auto-skip on errors
|
|
44
|
-
- `-c` / `--continue` — Resume previous
|
|
45
|
-
- `--dry-run` — Show
|
|
46
|
-
- `--exec <mode>` —
|
|
47
|
-
- `--tool <name>` — CLI tool for
|
|
48
|
-
- `--super` —
|
|
49
|
-
|
|
50
|
-
**State files read:**
|
|
51
|
-
- `.workflow/state.json` — project state machine + artifact registry
|
|
52
|
-
- `.workflow/roadmap.md` — milestone/phase structure
|
|
53
|
-
- `.workflow/scratch/*/plan.json` — plan metadata (via artifact registry paths)
|
|
40
|
+
- `-y` / `--yes` — Auto mode: skip clarification, skip confirmation, auto-skip on errors
|
|
41
|
+
- `-c` / `--continue` — Resume previous session
|
|
42
|
+
- `--dry-run` — Show chain without executing
|
|
43
|
+
- `--exec <mode>` — `auto` (default), `cli`, `internal`
|
|
44
|
+
- `--tool <name>` — CLI tool for delegates (default: claude)
|
|
45
|
+
- `--super` — Read and follow `maestro-super.md`
|
|
54
46
|
</context>
|
|
55
47
|
|
|
56
|
-
<
|
|
57
|
-
**
|
|
48
|
+
<invariants>
|
|
49
|
+
1. **All chains dispatch via maestro-ralph-execute** — maestro never executes steps directly
|
|
50
|
+
2. **Session before execution** — status.json created before any step runs
|
|
51
|
+
3. **Auto flags only to supporting commands** — unlisted commands execute as-is
|
|
52
|
+
</invariants>
|
|
58
53
|
|
|
59
|
-
|
|
54
|
+
<state_machine>
|
|
60
55
|
|
|
61
|
-
|
|
56
|
+
<states>
|
|
57
|
+
S_PARSE — 解析参数、检测 flags PERSIST: —
|
|
58
|
+
S_RESUME — 扫描已有 session、恢复执行 PERSIST: —
|
|
59
|
+
S_CLASSIFY — 意图分类、chain 选择 PERSIST: —
|
|
60
|
+
S_CREATE — 创建 session + status.json PERSIST: session (全量)
|
|
61
|
+
S_DRY_RUN — 显示 chain 后结束 PERSIST: —
|
|
62
|
+
S_CONFIRM — 用户确认(auto_mode 跳过) PERSIST: —
|
|
63
|
+
S_DISPATCH — 移交 maestro-ralph-execute PERSIST: —
|
|
64
|
+
S_FALLBACK — 意图无法分类、请求输入 PERSIST: —
|
|
65
|
+
</states>
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
<transitions>
|
|
68
|
+
|
|
69
|
+
S_PARSE:
|
|
70
|
+
→ S_RESUME WHEN: -c / --continue flag
|
|
71
|
+
→ S_CLASSIFY WHEN: intent text present
|
|
72
|
+
→ S_CLASSIFY WHEN: keyword "continue"/"next"/"go" DO: A_STATE_BASED_ROUTE
|
|
73
|
+
→ S_FALLBACK WHEN: no intent AND no flags
|
|
74
|
+
|
|
75
|
+
S_RESUME:
|
|
76
|
+
→ S_DISPATCH WHEN: session found DO: A_LOCATE_SESSION
|
|
77
|
+
→ S_FALLBACK WHEN: no session found
|
|
78
|
+
|
|
79
|
+
S_CLASSIFY:
|
|
80
|
+
→ S_CREATE WHEN: chain resolved DO: A_CLASSIFY_INTENT
|
|
81
|
+
→ S_FALLBACK WHEN: no match AND auto_mode
|
|
82
|
+
→ S_CLASSIFY WHEN: no match AND not auto_mode DO: A_CLARIFY
|
|
83
|
+
GUARD: max 2 clarification rounds → S_FALLBACK
|
|
84
|
+
|
|
85
|
+
S_CREATE:
|
|
86
|
+
→ S_DRY_RUN WHEN: --dry-run flag DO: A_CREATE_SESSION
|
|
87
|
+
→ S_CONFIRM WHEN: not auto_mode DO: A_CREATE_SESSION
|
|
88
|
+
→ S_DISPATCH WHEN: auto_mode DO: A_CREATE_SESSION
|
|
89
|
+
|
|
90
|
+
S_DRY_RUN:
|
|
91
|
+
→ END DO: display chain with step types
|
|
92
|
+
|
|
93
|
+
S_CONFIRM:
|
|
94
|
+
→ S_DISPATCH WHEN: user confirms
|
|
95
|
+
→ S_PARSE WHEN: user wants to modify
|
|
96
|
+
→ END WHEN: user cancels
|
|
97
|
+
|
|
98
|
+
S_DISPATCH:
|
|
99
|
+
→ END DO: Skill({ skill: "maestro-ralph-execute" })
|
|
100
|
+
|
|
101
|
+
S_FALLBACK:
|
|
102
|
+
→ S_CLASSIFY WHEN: user provides new intent DO: AskUserQuestion
|
|
103
|
+
→ END WHEN: user cancels
|
|
104
|
+
|
|
105
|
+
</transitions>
|
|
106
|
+
|
|
107
|
+
<actions>
|
|
108
|
+
|
|
109
|
+
### A_STATE_BASED_ROUTE
|
|
110
|
+
|
|
111
|
+
1. Read `.workflow/state.json` → determine next logical step
|
|
112
|
+
2. Convert to equivalent intent for chain classification
|
|
113
|
+
|
|
114
|
+
### A_LOCATE_SESSION
|
|
115
|
+
|
|
116
|
+
1. Scan `.workflow/.maestro/*/status.json`, filter `status == "running"`, sort DESC
|
|
117
|
+
2. Take most recent; if not found → S_FALLBACK
|
|
118
|
+
|
|
119
|
+
### A_CLASSIFY_INTENT
|
|
120
|
+
|
|
121
|
+
1. Read `~/.maestro/workflows/maestro.md` from deferred_reading
|
|
122
|
+
2. Classify intent via keyword heuristics + detectTaskType/detectNextAction
|
|
123
|
+
3. Select/compose command chain from chainMap
|
|
124
|
+
4. Determine per-step type: `internal` (Skill) or `external` (delegate)
|
|
125
|
+
|
|
126
|
+
### A_CLARIFY
|
|
127
|
+
|
|
128
|
+
1. `AskUserQuestion` with parsed intent + available chain options
|
|
129
|
+
2. Re-classify with user response
|
|
130
|
+
|
|
131
|
+
### A_CREATE_SESSION
|
|
132
|
+
|
|
133
|
+
1. Read `.workflow/state.json` for project context (phase, milestone)
|
|
134
|
+
2. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`:
|
|
135
|
+
```json
|
|
136
|
+
{ "session_id", "source": "maestro", "intent", "task_type", "chain_name",
|
|
137
|
+
"phase", "milestone", "auto_mode", "exec_mode", "cli_tool",
|
|
138
|
+
"context": { ... }, "steps": [{ "index", "skill", "args", "type", "status": "pending" }],
|
|
139
|
+
"waves": [], "current_step": 0, "status": "running" }
|
|
140
|
+
```
|
|
141
|
+
3. Initialize tracking: `create_goal`, `update_plan`
|
|
142
|
+
4. If `--super`: read `maestro-super.md`, follow it completely
|
|
143
|
+
|
|
144
|
+
</actions>
|
|
145
|
+
|
|
146
|
+
</state_machine>
|
|
147
|
+
|
|
148
|
+
<appendix>
|
|
149
|
+
|
|
150
|
+
### Auto-Yes Flag Map
|
|
64
151
|
|
|
65
152
|
| Command | Auto Flag | Effect |
|
|
66
153
|
|---------|-----------|--------|
|
|
67
154
|
| maestro-init | `-y` | Skip interactive questioning |
|
|
68
|
-
| maestro-analyze | `-y` | Skip
|
|
69
|
-
| maestro-brainstorm | `-y` | Skip
|
|
70
|
-
| maestro-roadmap | `-y` | Skip
|
|
71
|
-
| maestro-ui-design | `-y` | Skip
|
|
155
|
+
| maestro-analyze | `-y` | Skip scoping, auto-deepen |
|
|
156
|
+
| maestro-brainstorm | `-y` | Skip questions, use defaults |
|
|
157
|
+
| maestro-roadmap | `-y` | Skip questions (create/revise/review) |
|
|
158
|
+
| maestro-ui-design | `-y` | Skip selection, pick top variant |
|
|
72
159
|
| maestro-plan | `-y` | Skip confirmations and clarification |
|
|
73
160
|
| maestro-execute | `-y` | Skip confirmations, blocked auto-continue |
|
|
74
|
-
| maestro-verify | *(none)* | No interactive prompts |
|
|
75
161
|
| quality-auto-test | `-y` | Skip plan confirmation |
|
|
76
|
-
| quality-
|
|
77
|
-
| quality-
|
|
78
|
-
|
|
|
79
|
-
| quality-retrospective | `-y` | Accept all routing recommendations without prompting |
|
|
80
|
-
| maestro-milestone-audit | *(none)* | No interactive prompts |
|
|
81
|
-
| maestro-milestone-complete | `-y` | Skip knowledge promotion inquiry |
|
|
82
|
-
| manage-learn | *(none)* | No interactive prompts |
|
|
162
|
+
| quality-test | `-y --auto-fix` | Auto-trigger gap-fix loop |
|
|
163
|
+
| quality-retrospective | `-y` | Accept all routing recommendations |
|
|
164
|
+
| maestro-milestone-complete | `-y` | Skip knowledge promotion |
|
|
83
165
|
|
|
84
|
-
|
|
166
|
+
Unlisted commands have no auto flags.
|
|
85
167
|
|
|
86
|
-
|
|
87
|
-
- Skips intent clarification (workflow Step 2d)
|
|
88
|
-
- Skips chain confirmation (workflow Step 3d)
|
|
89
|
-
- Auto-skips on step errors (retry once, then skip and continue)
|
|
168
|
+
### Error Codes
|
|
90
169
|
|
|
91
|
-
**Super mode (`--super`):** Read `maestro-super.md` from deferred_reading, then follow it completely.
|
|
92
|
-
</execution>
|
|
93
|
-
|
|
94
|
-
<error_codes>
|
|
95
170
|
| Code | Severity | Description | Recovery |
|
|
96
171
|
|------|----------|-------------|----------|
|
|
97
|
-
| E001 | error | No intent and project not initialized | Prompt
|
|
98
|
-
| E002 | error | Clarity too low after 2
|
|
99
|
-
| E003 | error | Chain step failed + user
|
|
172
|
+
| E001 | error | No intent and project not initialized | Prompt or suggest maestro-init |
|
|
173
|
+
| E002 | error | Clarity too low after 2 rounds | Show parsed intent, ask rephrase |
|
|
174
|
+
| E003 | error | Chain step failed + user abort | Record partial, suggest -c resume |
|
|
100
175
|
| E004 | error | Resume session not found | Show available sessions |
|
|
101
|
-
| W001 | warning |
|
|
102
|
-
| W002 | warning |
|
|
103
|
-
| W003 | warning | State suggests different chain
|
|
104
|
-
|
|
176
|
+
| W001 | warning | Ambiguous intent, multiple chains | Present options |
|
|
177
|
+
| W002 | warning | Step completed with warnings | Log and continue |
|
|
178
|
+
| W003 | warning | State suggests different chain | Show discrepancy |
|
|
179
|
+
|
|
180
|
+
### Success Criteria
|
|
105
181
|
|
|
106
|
-
<success_criteria>
|
|
107
182
|
- [ ] Intent classified with task_type, complexity, clarity_score
|
|
108
|
-
- [ ]
|
|
109
|
-
- [ ]
|
|
110
|
-
- [ ]
|
|
111
|
-
- [ ]
|
|
112
|
-
- [ ] Session directory created at .workflow/.maestro/{session_id}/
|
|
113
|
-
- [ ] status.json created with unified schema (source: "maestro", steps[] with type field)
|
|
183
|
+
- [ ] Chain selected and confirmed (or auto-confirmed)
|
|
184
|
+
- [ ] Session dir created with status.json before execution
|
|
185
|
+
- [ ] Auto flags propagated to supporting commands only
|
|
186
|
+
- [ ] All chains dispatched via maestro-ralph-execute
|
|
114
187
|
- [ ] Low-complexity intents routed to maestro-quick
|
|
115
|
-
- [ ]
|
|
116
|
-
- [ ]
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
- [ ] (super mode) All milestones completed with no user intervention
|
|
120
|
-
- [ ] (super mode) Final system builds, starts, and passes all tests
|
|
121
|
-
</success_criteria>
|
|
188
|
+
- [ ] (super) Requirements validated before roadmap
|
|
189
|
+
- [ ] (super) Each milestone scored >= 80%
|
|
190
|
+
|
|
191
|
+
</appendix>
|
|
@@ -13,8 +13,7 @@ allowed-tools:
|
|
|
13
13
|
---
|
|
14
14
|
<purpose>
|
|
15
15
|
Capture reusable knowledge into `.workflow/knowhow/` with type-specific structured fields.
|
|
16
|
-
|
|
17
|
-
indexed by WikiIndexer (type=knowhow) and searchable via `maestro knowhow search`.
|
|
16
|
+
Auto-indexed by WikiIndexer (type=knowhow), searchable via `maestro knowhow search`.
|
|
18
17
|
</purpose>
|
|
19
18
|
|
|
20
19
|
<required_reading>
|
|
@@ -22,172 +21,57 @@ indexed by WikiIndexer (type=knowhow) and searchable via `maestro knowhow search
|
|
|
22
21
|
</required_reading>
|
|
23
22
|
|
|
24
23
|
<context>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
|
32
|
-
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
$ARGUMENTS — type token + description + optional flags.
|
|
25
|
+
|
|
26
|
+
**Flags**: `--lang <lang>`, `--source <url>`, `--tag tag1,tag2`, `--title <title>`, `--asset-type <type>`, `--code-paths <paths>`, `--category <cat>`
|
|
27
|
+
|
|
28
|
+
**Type routing** (first token match):
|
|
29
|
+
|
|
30
|
+
| Token | Type | Prefix | Key fields |
|
|
31
|
+
|-------|------|--------|------------|
|
|
32
|
+
| `compact`/`session`/`压缩`/`保存` | compact | KNW- | objective, files, decisions, plan, pending |
|
|
33
|
+
| `template`/`tpl`/`模板` | template | TPL- | language, code block, usage, parameters |
|
|
34
|
+
| `recipe`/`rcp`/`配方`/`步骤` | recipe | RCP- | prerequisites, steps, expected outcome, pitfalls |
|
|
35
|
+
| `reference`/`ref`/`参考`/`引用` | reference | REF- | source URL, key points, scenarios, examples |
|
|
36
|
+
| `decision`/`dcs`/`决策`/`adr` | decision | DCS- | context, alternatives table, rationale, consequences |
|
|
37
|
+
| `tip`/`note`/`记录`/`快速` | tip | TIP- | content, tags |
|
|
38
|
+
| `asset`/`ast`/`资产`/`契约` | asset | AST- | assetType, codePaths, category |
|
|
39
|
+
| `blueprint`/`blp`/`蓝图` | blueprint | BLP- | codePaths, category |
|
|
40
|
+
| `document`/`doc`/`文档` | document | DOC- | (general fallback) |
|
|
41
|
+
| Short text + `--tag` | tip | TIP- | — |
|
|
42
|
+
| No args | — | — | AskUserQuestion (9 options) |
|
|
43
|
+
|
|
44
|
+
**Output**: `.workflow/knowhow/{PREFIX}-{YYYYMMDD}-{HHMM}.md` with YAML frontmatter (title, type, category, created, tags, source, lang, status)
|
|
45
45
|
</context>
|
|
46
46
|
|
|
47
47
|
<execution>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
| No arguments | AskUserQuestion (6 options) |
|
|
63
|
-
|
|
64
|
-
### Step 2: Generate Content by Type
|
|
65
|
-
|
|
66
|
-
#### compact (KNW-{YYYYMMDD}-{HHMM}.md)
|
|
67
|
-
|
|
68
|
-
Extract from conversation history:
|
|
69
|
-
- **Session ID** — WFS-* if workflow session active, else `manual-{date}`
|
|
70
|
-
- **Project Root** — Absolute path
|
|
71
|
-
- **Objective** — High-level goal
|
|
72
|
-
- **Execution Plan** — Source + complete verbatim content (never summarize)
|
|
73
|
-
- **Working Files** — Modified files with roles (absolute paths, 3-8 files)
|
|
74
|
-
- **Reference Files** — Read-only context files
|
|
75
|
-
- **Last Action** — Final action + result
|
|
76
|
-
- **Decisions** — Table: decision | reasoning
|
|
77
|
-
- **Constraints** — User-specified limitations
|
|
78
|
-
- **Dependencies** — Added/changed packages
|
|
79
|
-
- **Known Issues** — Deferred bugs
|
|
80
|
-
- **Changes Made** — Completed modifications
|
|
81
|
-
- **Pending** — Next steps
|
|
82
|
-
- **Notes** — Unstructured thoughts
|
|
83
|
-
|
|
84
|
-
Plan detection priority: workflow session IMPL_PLAN.md > TodoWrite items > user-stated > inferred.
|
|
85
|
-
|
|
86
|
-
#### template (TPL-{YYYYMMDD}-{HHMM}.md)
|
|
87
|
-
|
|
88
|
-
Ask for or extract:
|
|
89
|
-
- **Language / Tech** — `--lang` flag or inferred from context
|
|
90
|
-
- **Usage** — When/how to use this template
|
|
91
|
-
- **Code** — The template content (ask user to provide or select from conversation)
|
|
92
|
-
- **Parameters** — Placeholders to replace (e.g. `{{name}}`, `{{port}}`)
|
|
93
|
-
- **Dependencies** — Required packages/config
|
|
94
|
-
- **Tags** — From `--tag` flag
|
|
95
|
-
|
|
96
|
-
If code not provided explicitly, prompt user: "Paste the template code:"
|
|
97
|
-
|
|
98
|
-
#### recipe (RCP-{YYYYMMDD}-{HHMM}.md)
|
|
99
|
-
|
|
100
|
-
Ask for or extract:
|
|
101
|
-
- **Goal** — What this recipe accomplishes
|
|
102
|
-
- **Prerequisites** — Tools, access, config needed
|
|
103
|
-
- **Steps** — Numbered step-by-step instructions
|
|
104
|
-
- **Expected Outcome** — What success looks like
|
|
105
|
-
- **Common Pitfalls** — Known issues / gotchas
|
|
106
|
-
- **Related** — Links to templates, references, decisions used
|
|
107
|
-
- **Tags** — From `--tag` flag
|
|
108
|
-
|
|
109
|
-
If steps not clear, prompt user: "Describe the steps (numbered list):"
|
|
110
|
-
|
|
111
|
-
#### reference (REF-{YYYYMMDD}-{HHMM}.md)
|
|
112
|
-
|
|
113
|
-
Ask for or extract:
|
|
114
|
-
- **Source** — `--source` flag (URL, doc title, API endpoint)
|
|
115
|
-
- **Key Points** — Bullet list of essential info
|
|
116
|
-
- **Applicable Scenarios** — When to consult this reference
|
|
117
|
-
- **Quick Examples** — Copy-paste ready code snippets
|
|
118
|
-
- **Last Verified** — Date (today)
|
|
119
|
-
- **Tags** — From `--tag` flag
|
|
120
|
-
|
|
121
|
-
If `--source` provided, offer to fetch and summarize via WebFetch.
|
|
122
|
-
|
|
123
|
-
#### decision (DCS-{YYYYMMDD}-{HHMM}.md)
|
|
124
|
-
|
|
125
|
-
Ask for or extract:
|
|
126
|
-
- **Context** — Background and problem statement
|
|
127
|
-
- **Decision** — What was decided
|
|
128
|
-
- **Alternatives Considered** — Table: alternative | pros | cons | rejected because
|
|
129
|
-
- **Rationale** — Why this choice over alternatives
|
|
130
|
-
- **Consequences** — Positive and negative impact
|
|
131
|
-
- **Related** — Links to affected specs, recipes, templates
|
|
132
|
-
- **Date** — Decision date
|
|
133
|
-
- **Status** — proposed | accepted | superseded
|
|
134
|
-
|
|
135
|
-
#### tip (TIP-{YYYYMMDD}-{HHMM}.md)
|
|
136
|
-
|
|
137
|
-
Simple note:
|
|
138
|
-
- **Content** — Everything after type token (or full $ARGUMENTS)
|
|
139
|
-
- **Context** — Auto-detected from recent conversation files
|
|
140
|
-
- **Tags** — From `--tag` flag
|
|
141
|
-
- **Timestamp** — ISO format
|
|
142
|
-
|
|
143
|
-
### Step 3: Write File
|
|
144
|
-
|
|
145
|
-
Write to `.workflow/knowhow/{PREFIX}-{YYYYMMDD}-{HHMM}.md` with YAML frontmatter:
|
|
146
|
-
|
|
147
|
-
```yaml
|
|
148
|
-
---
|
|
149
|
-
title: {auto or --title}
|
|
150
|
-
type: {type}
|
|
151
|
-
category: {type}
|
|
152
|
-
created: {ISO timestamp}
|
|
153
|
-
tags: [{tags}]
|
|
154
|
-
source: {url if reference}
|
|
155
|
-
lang: {language if template}
|
|
156
|
-
status: {status if decision}
|
|
157
|
-
---
|
|
158
|
-
{markdown body}
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Step 4: Confirm
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
=== KNOWHOW CAPTURED ===
|
|
165
|
-
Type: {type}
|
|
166
|
-
ID: knowhow-{slug}
|
|
167
|
-
File: .workflow/knowhow/{filename}
|
|
168
|
-
|
|
169
|
-
{type-specific summary line}
|
|
170
|
-
```
|
|
48
|
+
Follow '~/.maestro/workflows/knowhow.md' completely.
|
|
49
|
+
|
|
50
|
+
**Type-specific content rules**:
|
|
51
|
+
|
|
52
|
+
| Type | Content extraction |
|
|
53
|
+
|------|-------------------|
|
|
54
|
+
| compact | Extract from conversation: session ID, objective, execution plan (verbatim), working files (3-8), decisions, constraints, pending. Plan priority: workflow IMPL_PLAN.md > TodoWrite > user-stated > inferred. |
|
|
55
|
+
| template | Ask for: language, code block, parameters (placeholders), usage context, dependencies |
|
|
56
|
+
| recipe | Ask for: goal, prerequisites, numbered steps, expected outcome, common pitfalls |
|
|
57
|
+
| reference | From --source URL or ask. Key points, applicable scenarios, quick examples. Offer WebFetch if URL provided. |
|
|
58
|
+
| decision | Context, alternatives (table: alt/pros/cons/rejected-because), rationale, consequences. Status: proposed/accepted/superseded. |
|
|
59
|
+
| tip | Content = everything after type token. Auto-detect context from recent files. |
|
|
60
|
+
| asset | assetType (api-contract/data-model/prompt/config), codePaths, category for agent discovery |
|
|
61
|
+
| blueprint | Architecture design with codePaths and category |
|
|
171
62
|
</execution>
|
|
172
63
|
|
|
173
64
|
<error_codes>
|
|
174
|
-
| Code |
|
|
175
|
-
|
|
176
|
-
|
|
|
177
|
-
|
|
|
178
|
-
|
|
|
179
|
-
|
|
|
180
|
-
| W002 | warning | Plan detection found no explicit plan — using inferred plan | compact |
|
|
181
|
-
| W003 | warning | `--source` URL could not be fetched — proceeding with manual entry | reference |
|
|
65
|
+
| Code | Condition | Recovery |
|
|
66
|
+
|------|-----------|----------|
|
|
67
|
+
| E002 | Template: no code provided after prompt | Ask again or cancel |
|
|
68
|
+
| E003 | Recipe: no steps provided after prompt | Ask again or cancel |
|
|
69
|
+
| W001 | No active workflow session (compact) | Captures conversation only |
|
|
70
|
+
| W002 | Plan detection found no explicit plan (compact) | Uses inferred plan |
|
|
182
71
|
</error_codes>
|
|
183
72
|
|
|
184
73
|
<success_criteria>
|
|
185
|
-
- [ ] Type
|
|
186
|
-
- [ ]
|
|
187
|
-
- [ ]
|
|
188
|
-
- [ ] Markdown body follows type structure
|
|
189
|
-
- [ ] File written to `.workflow/knowhow/` with correct prefix
|
|
190
|
-
- [ ] Auto-indexed by WikiIndexer (type=knowhow)
|
|
191
|
-
- [ ] Confirmation displayed with ID, type, file path
|
|
192
|
-
- [ ] Next step hint appropriate to type shown
|
|
74
|
+
- [ ] Type detected or selected, all type-specific fields populated
|
|
75
|
+
- [ ] File written to .workflow/knowhow/ with correct prefix and YAML frontmatter
|
|
76
|
+
- [ ] Confirmation displayed with ID, type, path
|
|
193
77
|
</success_criteria>
|
|
@@ -50,6 +50,15 @@ Phase or task: $ARGUMENTS (required — phase number)
|
|
|
50
50
|
| 5 | Default | code | quality-integration-test |
|
|
51
51
|
|
|
52
52
|
Flags, artifact context resolution, and output formats defined in workflow auto-test.md.
|
|
53
|
+
|
|
54
|
+
### Pre-load context (before test generation)
|
|
55
|
+
|
|
56
|
+
1. **Test specs + tools**: Run `maestro spec load --category test` to load test conventions (framework, patterns, naming). Apply to all generated tests.
|
|
57
|
+
2. **Coding specs**: Run `maestro spec load --category coding` to understand coding patterns for accurate test targeting.
|
|
58
|
+
3. **Role Knowledge**:
|
|
59
|
+
- Browse: `maestro wiki list --category test`
|
|
60
|
+
- Load task-relevant entries: `maestro wiki load <id1> [id2...]`
|
|
61
|
+
4. All are optional — proceed without if unavailable.
|
|
53
62
|
</context>
|
|
54
63
|
|
|
55
64
|
<execution>
|
|
@@ -43,19 +43,11 @@ Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
|
43
43
|
|
|
44
44
|
Extract conclusions from related artifacts that may affect this debug session — review findings guide investigation direction, prior debug avoids redundant work.
|
|
45
45
|
|
|
46
|
-
### Pre-load
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
### Role Knowledge
|
|
53
|
-
1. Browse accumulated knowledge for this role:
|
|
54
|
-
`maestro wiki list --category debug`
|
|
55
|
-
2. Analyze the index, identify entries relevant to the current task
|
|
56
|
-
3. Load selected documents:
|
|
57
|
-
`maestro wiki load <id1> [id2] [id3...]`
|
|
58
|
-
4. Review loaded knowledge before proceeding
|
|
46
|
+
### Pre-load (optional, proceed without)
|
|
47
|
+
- Codebase docs: `.workflow/codebase/ARCHITECTURE.md` → module boundaries
|
|
48
|
+
- Wiki: `maestro wiki search "<symptom keywords>" --json` → prior investigations
|
|
49
|
+
- Specs: `maestro spec load --category debug --keyword "<symptom>"` → known issues/workarounds
|
|
50
|
+
- Role knowledge: `maestro wiki list --category debug` → select relevant → `maestro wiki load`
|
|
59
51
|
|
|
60
52
|
**Output**: `DEBUG_DIR = .workflow/scratch/{YYYYMMDD}-debug-P{N}-{slug}/` (P{N} = phase number when phase-scoped; omit for standalone). Output directory rules defined in workflow debug.md Step 4.
|
|
61
53
|
</context>
|
|
@@ -83,18 +75,13 @@ Append to state.json.artifacts[]:
|
|
|
83
75
|
|
|
84
76
|
### Post-debug Knowledge Inquiry
|
|
85
77
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
2. **Non-obvious fix**: If fix involved a non-obvious approach or workaround:
|
|
92
|
-
→ Ask: "This fix used a non-obvious strategy. Should it be recorded as a learning? (`/spec-add learning`)"
|
|
93
|
-
|
|
94
|
-
3. **Architectural gap**: If root cause traces to architectural boundary violation or missing constraint:
|
|
95
|
-
→ Ask: "Root cause points to an architectural gap. Should `architecture-constraints.md` be updated? (`/spec-add arch`)"
|
|
78
|
+
| Condition | Ask | Route |
|
|
79
|
+
|-----------|-----|-------|
|
|
80
|
+
| Recurring root cause pattern (seen in prior debug) | "Document in debug-notes.md?" | spec-add debug |
|
|
81
|
+
| Non-obvious fix / workaround | "Record as learning?" | spec-add learning |
|
|
82
|
+
| Root cause = architectural boundary violation | "Update architecture-constraints.md?" | spec-add arch |
|
|
96
83
|
|
|
97
|
-
|
|
84
|
+
On confirm → `Skill("spec-add", "<category> <content>")`.
|
|
98
85
|
|
|
99
86
|
**Next-step routing on completion:**
|
|
100
87
|
- Root cause found, fix needed → `/maestro-plan {phase} --gaps`
|
|
@@ -27,6 +27,15 @@ Scope: $ARGUMENTS (required)
|
|
|
27
27
|
- "all" - full codebase scan
|
|
28
28
|
|
|
29
29
|
If not provided, prompt user for scope.
|
|
30
|
+
|
|
31
|
+
### Pre-load context (before refactoring)
|
|
32
|
+
|
|
33
|
+
1. **Coding specs**: Run `maestro spec load --category coding` to load coding conventions. Apply conventions to all refactored code.
|
|
34
|
+
2. **Review specs**: Run `maestro spec load --category review` to load review standards. Use as quality gate for refactored code.
|
|
35
|
+
3. **Role Knowledge**:
|
|
36
|
+
- Browse: `maestro wiki list --category coding`
|
|
37
|
+
- Identify task-relevant entries, then load: `maestro wiki load <id1> [id2...]`
|
|
38
|
+
4. All are optional — proceed without if unavailable.
|
|
30
39
|
</context>
|
|
31
40
|
|
|
32
41
|
<execution>
|
|
@@ -48,19 +48,11 @@ Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
|
48
48
|
|
|
49
49
|
Extract conclusions from related artifacts that may affect this review. Pass as prior quality context to reviewer agents — avoid redundant work, focus on gaps and regressions.
|
|
50
50
|
|
|
51
|
-
### Pre-load
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
### Role Knowledge
|
|
58
|
-
1. Browse accumulated knowledge for this role:
|
|
59
|
-
`maestro wiki list --category review`
|
|
60
|
-
2. Analyze the index, identify entries relevant to the current task
|
|
61
|
-
3. Load selected documents:
|
|
62
|
-
`maestro wiki load <id1> [id2] [id3...]`
|
|
63
|
-
4. Review loaded knowledge before proceeding
|
|
51
|
+
### Pre-load (optional, proceed without)
|
|
52
|
+
- Codebase docs: `.workflow/codebase/ARCHITECTURE.md` → component boundaries, layer rules
|
|
53
|
+
- Wiki constraints: `maestro wiki search "architecture constraint" --json` → documented decisions
|
|
54
|
+
- Specs: `maestro spec load --category review` → review standards, checklists, knowhow tools
|
|
55
|
+
- Role knowledge: `maestro wiki list --category review` → select relevant → `maestro wiki load`
|
|
64
56
|
|
|
65
57
|
**Output**: `REVIEW_DIR = .workflow/scratch/{YYYYMMDD}-review-P{N}-{slug}/` (P{N} = phase number, enables directory-level identification as state.json fallback)
|
|
66
58
|
</context>
|
|
@@ -40,6 +40,11 @@ Follow '~/.maestro/workflows/test.md' completely.
|
|
|
40
40
|
|
|
41
41
|
**Command-specific extensions (not in workflow):**
|
|
42
42
|
|
|
43
|
+
**Test tool discovery** (knowhow tools as scenario source):
|
|
44
|
+
- Load registered test tools: `maestro spec load --category test --keyword <feature>`
|
|
45
|
+
- If tools found, extract their steps as additional test scenarios marked `source: "tool"`
|
|
46
|
+
- Each numbered step in a tool becomes a UAT test with its assertion as `expected` behavior
|
|
47
|
+
|
|
43
48
|
**Review findings integration** (from related review artifacts):
|
|
44
49
|
- Extract critical/high findings as additional test scenarios, marked `source: "review_finding"`
|
|
45
50
|
- When review verdict is "BLOCK" and review-finding tests fail, auto-enter gap-fix loop
|
|
@@ -50,7 +50,7 @@ Follow '~/.maestro/workflows/specs-add.md' completely.
|
|
|
50
50
|
|------|----------|-------------|-------|
|
|
51
51
|
| E001 | fatal | Category and content are both required | parse_input |
|
|
52
52
|
| E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
|
|
53
|
-
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, tools | parse_input |
|
|
53
|
+
| E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, tools, ui | parse_input |
|
|
54
54
|
| E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
|
|
55
55
|
| E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
|
|
56
56
|
</error_codes>
|
|
@@ -21,7 +21,7 @@ Category-based loading: loads the category's primary doc in full + matching entr
|
|
|
21
21
|
$ARGUMENTS -- optional flags and keyword
|
|
22
22
|
|
|
23
23
|
**Flags:**
|
|
24
|
-
- `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug,
|
|
24
|
+
- `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug, learning, ui.
|
|
25
25
|
- `--keyword <word>` — Filter by keyword within entries
|
|
26
26
|
|
|
27
27
|
**File → Primary Category mapping:**
|
|
@@ -32,7 +32,8 @@ $ARGUMENTS -- optional flags and keyword
|
|
|
32
32
|
| test-conventions.md | test |
|
|
33
33
|
| review-standards.md | review |
|
|
34
34
|
| debug-notes.md | debug |
|
|
35
|
-
|
|
|
35
|
+
| ui-conventions.md | ui |
|
|
36
|
+
| quality-rules.md | review |
|
|
36
37
|
| learnings.md | learning |
|
|
37
38
|
|
|
38
39
|
**Examples:**
|