maestro-flow 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +2 -1
  2. package/.agents/skills/manage-knowhow-capture/SKILL.md +4 -2
  3. package/.agy/skills/codify-to-knowhow/phases/03-generate-specs.md +2 -1
  4. package/.agy/skills/manage-knowhow-capture/SKILL.md +4 -2
  5. package/.claude/commands/manage-knowhow-capture.md +4 -2
  6. package/.claude/skills/codify-to-knowhow/phases/03-generate-specs.md +2 -1
  7. package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
  8. package/.codex/skills/learn-decompose/SKILL.md +144 -144
  9. package/.codex/skills/learn-follow/SKILL.md +83 -83
  10. package/.codex/skills/learn-investigate/SKILL.md +84 -84
  11. package/.codex/skills/learn-retro/SKILL.md +113 -113
  12. package/.codex/skills/learn-second-opinion/SKILL.md +116 -116
  13. package/.codex/skills/maestro/SKILL.md +11 -8
  14. package/.codex/skills/maestro-amend/SKILL.md +4 -4
  15. package/.codex/skills/maestro-analyze/SKILL.md +3 -3
  16. package/.codex/skills/maestro-blueprint/SKILL.md +4 -4
  17. package/.codex/skills/maestro-collab/SKILL.md +1 -1
  18. package/.codex/skills/maestro-companion/SKILL.md +4 -4
  19. package/.codex/skills/maestro-composer/SKILL.md +217 -217
  20. package/.codex/skills/maestro-grill/SKILL.md +1 -1
  21. package/.codex/skills/maestro-help/SKILL.md +30 -30
  22. package/.codex/skills/maestro-init/SKILL.md +1 -1
  23. package/.codex/skills/maestro-learn/SKILL.md +80 -80
  24. package/.codex/skills/maestro-merge/SKILL.md +76 -76
  25. package/.codex/skills/maestro-milestone-release/SKILL.md +74 -74
  26. package/.codex/skills/maestro-player/SKILL.md +3 -3
  27. package/.codex/skills/maestro-quick/SKILL.md +129 -129
  28. package/.codex/skills/maestro-ralph/SKILL.md +9 -9
  29. package/.codex/skills/maestro-ralph-beta/SKILL.md +34 -34
  30. package/.codex/skills/maestro-ralph-execute/SKILL.md +5 -5
  31. package/.codex/skills/maestro-tools-execute/SKILL.md +3 -3
  32. package/.codex/skills/maestro-tools-register/SKILL.md +3 -3
  33. package/.codex/skills/manage-codebase-rebuild/SKILL.md +412 -412
  34. package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
  35. package/.codex/skills/manage-harvest/SKILL.md +99 -99
  36. package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
  37. package/.codex/skills/manage-knowhow/SKILL.md +95 -95
  38. package/.codex/skills/manage-knowhow-capture/SKILL.md +137 -125
  39. package/.codex/skills/manage-status/SKILL.md +7 -7
  40. package/.codex/skills/manage-wiki/SKILL.md +55 -55
  41. package/.codex/skills/quality-auto-test/SKILL.md +1 -1
  42. package/.codex/skills/quality-debug/SKILL.md +8 -8
  43. package/.codex/skills/quality-refactor/SKILL.md +3 -3
  44. package/.codex/skills/quality-review/SKILL.md +1 -1
  45. package/.codex/skills/quality-sync/SKILL.md +111 -111
  46. package/.codex/skills/quality-test/SKILL.md +1 -1
  47. package/.codex/skills/spec-add/SKILL.md +2 -2
  48. package/.codex/skills/spec-load/SKILL.md +1 -1
  49. package/.codex/skills/spec-map/SKILL.md +204 -204
  50. package/.codex/skills/spec-remove/SKILL.md +75 -75
  51. package/.codex/skills/spec-setup/SKILL.md +2 -2
  52. package/.codex/skills/wiki-connect/SKILL.md +73 -73
  53. package/.codex/skills/wiki-digest/SKILL.md +87 -87
  54. package/dist/src/commands/install.d.ts.map +1 -1
  55. package/dist/src/commands/install.js +40 -10
  56. package/dist/src/commands/install.js.map +1 -1
  57. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  58. package/dist/src/i18n/locales/en.js +4 -0
  59. package/dist/src/i18n/locales/en.js.map +1 -1
  60. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  61. package/dist/src/i18n/locales/zh.js +4 -0
  62. package/dist/src/i18n/locales/zh.js.map +1 -1
  63. package/dist/src/i18n/types.d.ts +4 -0
  64. package/dist/src/i18n/types.d.ts.map +1 -1
  65. package/dist/src/ralph/skill-scanner.d.ts.map +1 -1
  66. package/dist/src/ralph/skill-scanner.js +9 -3
  67. package/dist/src/ralph/skill-scanner.js.map +1 -1
  68. package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -0
  69. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  70. package/dist/src/tui/install-ui/InstallConfirm.js +3 -1
  71. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  72. package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
  73. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  74. package/dist/src/tui/install-ui/InstallExecution.js +20 -0
  75. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  76. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  77. package/dist/src/tui/install-ui/InstallFlow.js +13 -5
  78. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  79. package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
  80. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  81. package/dist/src/tui/install-ui/InstallHub.js +10 -0
  82. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  83. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  84. package/dist/src/tui/install-ui/InstallResult.js +5 -1
  85. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  86. package/dist/src/utils/update-notices.js +6 -0
  87. package/dist/src/utils/update-notices.js.map +1 -1
  88. package/package.json +1 -1
  89. package/workflows/agy-instructions.md +1 -1
  90. package/workflows/finish-work.md +1 -1
  91. package/workflows/impeccable/design.md +1 -0
  92. package/workflows/impeccable.md +1 -0
  93. package/workflows/knowhow.md +14 -8
  94. package/workflows/specs-add.md +1 -1
  95. package/workflows/specs-setup.md +2 -2
@@ -2,7 +2,7 @@
2
2
  name: maestro
3
3
  description: Auto-route intent to optimal command chain
4
4
  argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--super]"
5
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
6
  ---
7
7
 
8
8
  <purpose>
@@ -120,7 +120,7 @@ S_ABORTED:
120
120
  → END DO: A_ABORT_REPORT
121
121
 
122
122
  S_FALLBACK:
123
- → S_CLASSIFY WHEN: user provides new intent DO: AskUserQuestion
123
+ → S_CLASSIFY WHEN: user provides new intent DO: request_user_input
124
124
  → END WHEN: user cancels
125
125
 
126
126
  </transitions>
@@ -259,7 +259,7 @@ Read `.workflow/state.json` and route by condition:
259
259
 
260
260
  ### A_CLARIFY_INTENT
261
261
 
262
- 1. `AskUserQuestion` with available chain types
262
+ 1. `request_user_input` with available chain types
263
263
  2. Re-classify with user response
264
264
 
265
265
  ### A_DECOMPOSE_TASKS
@@ -267,7 +267,7 @@ Read `.workflow/state.json` and route by condition:
267
267
  与 maestro-ralph `A_DECOMPOSE_TASKS` 共享分解契约。Condensed:
268
268
 
269
269
  1. 分类意图广度。narrow / 单步 / `{status,init,quick}` 链跳过
270
- 2. broad/medium → `AskUserQuestion` ≤3 轮:Scope / Constraints / Definition of Done
270
+ 2. broad/medium → `request_user_input` ≤3 轮:Scope / Constraints / Definition of Done
271
271
  3. 派生 `execution_criteria` + `task_decomposition`(每个 sub-goal 含 `done_when` + `evidence` + `lifecycle` + `completion_confirmed: false`)
272
272
  4. **status.json 唯一真源**:写入 `boundary_contract` / `execution_criteria` / `task_decomposition`;不生成 markdown 清单
273
273
  5. 链路末尾(evidence 产出步骤后、milestone-complete/close-out 前)追加 `decision:post-goal-audit`。S_DECISION_EVAL 据此动态生长 `steps[]`
@@ -282,7 +282,10 @@ Read `.workflow/state.json` and route by condition:
282
282
 
283
283
  1. Read `.workflow/state.json` 获取 phase / milestone(D-007 反查 `phase_slugs`);读最新 macro analyze artifact 注入 `scope_verdict` + `analyze_macro_id`;读最新 blueprint artifact 注入 `blueprint_id`
284
284
  2. Resolve chain's skill list from Chain Map (see appendix)
285
- 3. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`(与 ralph 共用 schema):
285
+ 3. **Prevalidate via `Bash("maestro ralph skills --platform codex --json --quiet")`** 一次性拉取所有可用 codex skills(global `~/.codex/skills/` + project `.codex/skills/`,project 覆盖 global),匹配 skill 名得到:
286
+ - 命中 → `command_scope = "global" | "project"`,`command_path = <绝对 SKILL.md 路径>`
287
+ - 未命中 → `command_scope = "missing"`, `command_path = null`
288
+ 4. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`(与 ralph 共用 schema):
286
289
  ```json
287
290
  {
288
291
  "session_id", "source": "maestro", "intent", "task_type", "chain_name",
@@ -296,7 +299,7 @@ Read `.workflow/state.json` and route by condition:
296
299
  "skill": "", "args": "",
297
300
  "stage": "", "scope": null,
298
301
  "command_scope": "global|project|missing|null",
299
- "command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
302
+ "command_path": "~/.codex/skills/{name}/SKILL.md | .codex/skills/{name}/SKILL.md | null",
300
303
  "milestone_id": null, "source_artifact_ref": null,
301
304
  "status": "pending", "goal_ref": null,
302
305
  "completion_confirmed": false, "completion_status": null,
@@ -310,8 +313,8 @@ Read `.workflow/state.json` and route by condition:
310
313
  }
311
314
  ```
312
315
  Decomposition fields written ONLY if A_DECOMPOSE_TASKS produced them (additive)
313
- 4. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 列出缺失 skill
314
- 5. Initialize tracking:
316
+ 5. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 列出缺失 skill
317
+ 6. Initialize tracking:
315
318
  - If decomposed: goal already registered by A_DECOMPOSE_TASKS. Else: `create_goal({ objective: "Maestro {chain}: {N} steps [{skill list}]" })`
316
319
  - `update_plan({ plan: steps.map(step => ({ step, status: "pending" })) })`
317
320
 
@@ -7,7 +7,7 @@ allowed-tools: Read, Write, Bash, Glob, Grep, request_user_input
7
7
  <purpose>
8
8
  Signal-driven overlay generator — collect workflow deficiency signals from multiple sources, diagnose which commands need amendment, batch-generate targeted overlays. All amendments use overlay system (`~/.maestro/overlays/*.json`) — non-invasive, idempotent, survives reinstall.
9
9
 
10
- Differs from `/maestro-overlay` (single explicit intent). This command **discovers** what needs amending by analyzing workflow artifacts.
10
+ Differs from `$maestro-overlay` (single explicit intent). This command **discovers** what needs amending by analyzing workflow artifacts.
11
11
  </purpose>
12
12
 
13
13
  <required_reading>
@@ -29,7 +29,7 @@ $ARGUMENTS — optional description and/or source flags.
29
29
  | `--scan` | Auto-scan .workflow/ | Discover all workflow-related signals |
30
30
  | _(positional text)_ | User description | Direct observation |
31
31
 
32
- Multiple combinable. No flags + no description → interactive (scan + AskUserQuestion).
32
+ Multiple combinable. No flags + no description → interactive (scan + request_user_input).
33
33
 
34
34
  **Control**: `--dry-run` (preview, don't install), `-y` (skip confirmations)
35
35
 
@@ -112,7 +112,7 @@ Per signal, determine:
112
112
  | Entirely new concern | _(new section)_ | new-section |
113
113
 
114
114
  Read pristine source from `$PKG_ROOT/.claude/commands/<name>.md` to confirm section.
115
- Classify: command deficiency → proceed; code bug → skip (suggest /maestro-quick).
115
+ Classify: command deficiency → proceed; code bug → skip (suggest $maestro-quick).
116
116
 
117
117
  ### A_GROUP_OVERLAYS
118
118
 
@@ -142,7 +142,7 @@ On validation failure: fix JSON, retry (max 2).
142
142
  | Code | Condition | Recovery |
143
143
  |------|-----------|----------|
144
144
  | E001 | No signals from any source | Verify artifact paths or provide description |
145
- | E003 | All signals are code bugs, not command gaps | Use /maestro-quick or /maestro-plan --gaps |
145
+ | E003 | All signals are code bugs, not command gaps | Use $maestro-quick or $maestro-plan --gaps |
146
146
  | E004 | Overlay validation failed after 2 retries | Review JSON manually |
147
147
  | W001 | Some signals skipped (code bugs) | Route to appropriate fix command |
148
148
  | W002 | Target command has >= 3 existing overlays | Consider consolidating |
@@ -2,7 +2,7 @@
2
2
  name: maestro-analyze
3
3
  description: Use when a topic needs structured multi-dimensional investigation before planning or decision-making
4
4
  argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] [--from <source>] \"<phase|topic> [-q|--quick] [--gaps [ISS-ID]]\""
5
- allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
5
+ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
6
  ---
7
7
 
8
8
  <purpose>
@@ -36,7 +36,7 @@ $ARGUMENTS -- phase number, topic text, and optional flags.
36
36
  <interview_protocol>
37
37
  Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--continue`, or input is already specific (explicit phase number or unambiguous topic).
38
38
 
39
- - One decision per turn via AskUserQuestion with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally at any time.
39
+ - One decision per turn via request_user_input with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally at any time.
40
40
  - Search-first when uncertain: before asking, resolve via `state.json`, `roadmap.md`, `issues.jsonl`, `maestro spec load`, `maestro search`, Grep, Read, or — for open-ended multi-file scans — `maestro delegate ... --role explore`. Never ask what code or memory can verify; never bounce your own ambiguity back to the user — search first, then ask only what truly needs human judgment.
41
41
  - Writeback cadence: each settled decision is immediately appended/updated in `context.md` "Interview Decisions" (and mirrored into `analysis.md` in full mode). Do NOT batch writeback to the end — partial decisions must already be on disk before the next question.
42
42
  - Walk the decision dependency tree strictly: scope → depth → dimensions → Go/No-Go threshold. Do not open the next branch until the current one is settled.
@@ -234,7 +234,7 @@ Gray area detection: domain-aware (things users SEE/CALL/RUN/READ), phase-specif
234
234
  1. Export results.csv
235
235
  2. **Confidence scoring** (full mode): factors -- findings_depth(.30), evidence_strength(.25), coverage_breadth(.20), user_validation(.15), consistency(.10). Thresholds: <60% deeper, 60-80% optional, 80-95% converging, >95% converge.
236
236
  3. Auto-create issues from Deferred items -> issues.jsonl
237
- 4. Spec enrichment: Locked decisions -> `maestro spec add arch`; code patterns -> `maestro spec add coding`
237
+ 4. Spec enrichment: Locked decisions -> `maestro spec add arch "<title>" "<content>" --keywords <kw> --description "<summary>"`; code patterns -> `maestro spec add coding "<title>" "<content>" --keywords <kw> --description "<summary>"`
238
238
  5. Register artifact in state.json (type: analyze, includes context_package field pointing to context-package.json)
239
239
  6. Copy outputs to scratchDir, display summary
240
240
  7. **Next-step routing** (D-003 §5.3 — macro scope uses `scope_verdict` for downstream chain selection):
@@ -82,10 +82,10 @@ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail
82
82
 
83
83
  | Condition | Suggestion |
84
84
  |-----------|-----------|
85
- | Need codebase analysis | /maestro-analyze {topic} --from blueprint:BLP-xxx |
86
- | Ready for roadmap | /maestro-roadmap --from blueprint:BLP-xxx |
87
- | Small scope, direct plan | /maestro-plan --from blueprint:BLP-xxx |
88
- | Need project setup | /maestro-init |
85
+ | Need codebase analysis | $maestro-analyze {topic} --from blueprint:BLP-xxx |
86
+ | Ready for roadmap | $maestro-roadmap --from blueprint:BLP-xxx |
87
+ | Small scope, direct plan | $maestro-plan --from blueprint:BLP-xxx |
88
+ | Need project setup | $maestro-init |
89
89
  </execution>
90
90
 
91
91
  <invariants>
@@ -275,7 +275,7 @@ Generate 3 output files from cross-verify results:
275
275
 
276
276
  1. Copy outputs to scratchDir
277
277
  2. Register CLB artifact in state.json (type: collab, scope: adhoc)
278
- 3. Spec enrichment: for each Locked decision → `maestro spec add arch`
278
+ 3. Spec enrichment: for each Locked decision → `maestro spec add arch "<title>" "<content>" --keywords <kw> --description "<summary>"`
279
279
  4. `update_plan` all steps completed
280
280
  5. Display summary:
281
281
  ```
@@ -2,7 +2,7 @@
2
2
  name: maestro-companion
3
3
  description: Knowledge companion — load context, record companion doc, capture insights, route to skills
4
4
  argument-hint: "[before|note|after|route] [--task <description>] [--type <task_type>] [--category <cat>]"
5
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
6
  ---
7
7
 
8
8
  <purpose>
@@ -414,8 +414,8 @@ If promotable entries exist, ask user:
414
414
 
415
415
  | Selection | Action |
416
416
  |-----------|--------|
417
- | Spec | `Skill({ skill: "spec-add" })` — guide user through category + content |
418
- | Knowhow | `Skill({ skill: "manage-knowhow-capture" })` — guide through type + content |
417
+ | Spec | `$spec-add` — guide user through category + content |
418
+ | Knowhow | `$manage-knowhow-capture` — guide through type + content |
419
419
  | Both | `spec-add` first, then `manage-knowhow-capture` |
420
420
  | Skip | Proceed to Step 4 |
421
421
 
@@ -449,7 +449,7 @@ Extract intent text from $ARGUMENTS after removing the `route` keyword.
449
449
  ### Step 2: Delegate to maestro-next
450
450
 
451
451
  ```
452
- Skill({ skill: "maestro-next", args: "<intent_text>" })
452
+ $maestro-next "<intent_text>"
453
453
  ```
454
454
 
455
455
  Reuses maestro-next routing table and scoring logic to recommend the best single command.
@@ -1,217 +1,217 @@
1
- ---
2
- name: maestro-composer
3
- description: Compose reusable workflow templates from natural language
4
- argument-hint: "\"workflow description\" [--resume] [--edit <template-path>]"
5
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
- ---
7
-
8
- <purpose>
9
- Interactive workflow template composer. Parses natural language into a reusable DAG template
10
- via 5 phases with user confirmation at each boundary. Templates saved globally at
11
- `~/.maestro/templates/workflows/`. Progressive disclosure — specs loaded only when phase needs them.
12
-
13
- Sequential interactive flow (no spawn_agents_on_csv — this is design, not execution):
14
- ```
15
- Parse NL → [confirm] → Resolve to nodes → [confirm] → Inject checkpoints → Confirm pipeline → Persist
16
- ```
17
-
18
- Three entry modes:
19
- 1. **New design**: Phase 1-5
20
- 2. **Resume design**: Load draft from `.workflow/templates/design-drafts/`
21
- 3. **Edit template**: Load existing, modify, re-save
22
- </purpose>
23
-
24
- <context>
25
- $ARGUMENTS — natural language workflow description, or flags.
26
-
27
- **Flags:**
28
- - `--resume` — Resume in-progress design session
29
- - `--edit <template-path>` — Edit an existing template
30
-
31
- **Shared constants:**
32
-
33
- | Constant | Value |
34
- |----------|-------|
35
- | Session prefix | `WFD` |
36
- | Template dir (global) | `~/.maestro/templates/workflows/` |
37
- | Template index (global) | `~/.maestro/templates/workflows/index.json` |
38
- | Design drafts dir (local) | `.workflow/templates/design-drafts/` |
39
- | Template ID format | `wft-<slug>-<YYYYMMDD>` |
40
- | Node ID format | `N-<seq>` (e.g. N-001), `CP-<seq>` for checkpoints |
41
- | Max nodes | 20 |
42
-
43
- **Entry routing:**
44
-
45
- | Detection | Condition | Handler |
46
- |-----------|-----------|---------|
47
- | Resume | `--resume` or existing WFD session | Phase 0: Resume |
48
- | Edit | `--edit <path>` | Phase 0: Load + Edit |
49
- | New | Default | Phase 1: Parse |
50
-
51
- **Node catalog**: Read `~/.maestro/templates/workflows/specs/node-catalog.md` at Phase 2 (deferred).
52
- **Template schema**: Read `~/.maestro/templates/workflows/specs/template-schema.md` at Phase 5 (deferred).
53
-
54
- ### Pre-load specs
55
- 1. **Architecture specs**: Run `maestro spec load --category arch` to load architecture constraints. Use as context for node resolution — ensures workflow design respects documented patterns.
56
- 2. **Coding specs**: Run `maestro spec load --category coding` to load coding conventions. Informs executor argument defaults and context injection.
57
- 3. Optional — proceed without if unavailable.
58
- </context>
59
-
60
- <execution>
61
-
62
- ### Phase 0: Resume / Edit (conditional)
63
-
64
- **Resume** (`--resume`):
65
- 1. Scan `.workflow/templates/design-drafts/WFD-*/` for in-progress designs
66
- 2. Multiple → AskUserQuestion for selection
67
- 3. Load draft → skip to last incomplete phase
68
-
69
- **Edit** (`--edit <path>`):
70
- 1. Load template JSON
71
- 2. Show pipeline visualization (Phase 4 format)
72
- 3. AskUserQuestion: which nodes to modify/add/remove
73
- 4. Re-enter at Phase 3
74
-
75
- ---
76
-
77
- ### Phase 1: Parse — Semantic Intent Extraction
78
-
79
- **Step 1.1** — Parse `$ARGUMENTS`. If empty, AskUserQuestion:
80
- ```
81
- "Describe the workflow you want to automate.
82
- Include: what steps to run, in what order, and what varies each time.
83
- Example: 'analyze the code, then plan, implement, and test the feature'"
84
- ```
85
-
86
- **Step 1.2** — Extract sequential actions as candidate nodes:
87
-
88
- | Signal | Candidate Type |
89
- |--------|---------------|
90
- | "analyze", "review", "explore" | analysis (cli) |
91
- | "plan", "design", "spec" | planning (skill) |
92
- | "implement", "build", "code", "fix" | execution (skill) |
93
- | "test", "validate", "verify" | testing (skill) |
94
- | "brainstorm", "ideate" | brainstorm (skill) |
95
- | "review code" | review (skill) |
96
- | "then", "next", "after" | sequential edge |
97
- | "parallel", "simultaneously" | parallel edge |
98
-
99
- **Step 1.3** — Extract variables (inputs that vary per run).
100
-
101
- **Step 1.4** — Classify task type: `bugfix | feature | tdd | review | brainstorm | spec-driven | roadmap | refactor | integration-test | quick-task | custom`
102
-
103
- **Step 1.5** — Assess complexity: `simple` (1-3 nodes), `medium` (4-7), `complex` (8+)
104
-
105
- **Step 1.6** — Write `intent.json` to `.workflow/templates/design-drafts/WFD-<slug>-<date>/`.
106
-
107
- **Step 1.7 — Interactive confirmation**: Display description, task type, complexity, detected steps (numbered with type_hint), and variables. AskUserQuestion: `Continue to resolution` / `Edit steps` / `Add a step` / `Cancel`
108
-
109
- ---
110
-
111
- ### Phase 2: Resolve — Map Steps to Executor Nodes
112
-
113
- **Read deferred**: `~/.maestro/templates/workflows/specs/node-catalog.md`
114
-
115
- If spec not found, use built-in fallback:
116
-
117
- | type_hint | executor type | executor |
118
- |-----------|--------------|----------|
119
- | `planning` | skill | `maestro-plan` |
120
- | `execution` | skill | `maestro-execute` |
121
- | `testing` | skill | `quality-test` |
122
- | `review` | skill | `quality-review` |
123
- | `brainstorm` | skill | `maestro-brainstorm` |
124
- | `analysis` | cli | `maestro delegate --role analyze --mode analysis` |
125
- | `refactor` | skill | `quality-refactor` |
126
- | `debug` | skill | `quality-debug` |
127
- | `spec` | skill | `maestro-blueprint` |
128
- | `checkpoint` | checkpoint | — |
129
-
130
- **Step 2.1** — Load `intent.json`, map each step to executor.
131
-
132
- **Step 2.2** — Build `args_template` with variable placeholders and context injection:
133
- - Planning after analysis → `--context {prev_output_path}`
134
- - Execution after planning → inherit phase
135
- - Testing after execution → inherit phase
136
-
137
- **Step 2.3** — Assign `parallel_group` for parallel steps.
138
-
139
- **Step 2.4** — Write `nodes.json`.
140
-
141
- **Step 2.5 — Interactive confirmation**: Display resolved nodes table (ID, type, executor, args) and parallel groups. AskUserQuestion: `Continue to checkpoint injection` / `Change executor` / `Change node type` / `Back to intent` / `Cancel`
142
-
143
- ---
144
-
145
- ### Phase 3: Enrich — Inject Checkpoints + Build DAG
146
-
147
- **Step 3.1** — Load `nodes.json`. Build sequential edges. For parallel groups: fan-out/fan-in.
148
-
149
- **Step 3.2** — Auto-inject checkpoint nodes:
150
-
151
- | Rule | Condition |
152
- |------|-----------|
153
- | Artifact boundary | Source output_ports: plan, spec, analysis, review-findings |
154
- | Execution gate | Target executor contains `execute` |
155
- | Agent spawn | Target type is `agent` |
156
- | Long-running | Target is maestro-plan, maestro-roadmap |
157
- | User-defined | Step had `type_hint: checkpoint` |
158
- | Post-testing | Source executor contains `test` or `integration-test` |
159
-
160
- Set `auto_continue: false` for checkpoints before user-facing deliverables.
161
-
162
- **Step 3.3** — Finalize `context_schema`, validate DAG (no cycles, no orphans).
163
-
164
- **Step 3.4** — Write `dag.json`. → Proceed to Phase 4.
165
-
166
- ---
167
-
168
- ### Phase 4: Confirm — Visualize + User Approval
169
-
170
- **Step 4.1** — Render ASCII pipeline: vertical node chain with `|` connectors showing each node (ID, type, executor, args) and checkpoint nodes (auto-continue vs pause-for-user). Footer: required variables, checkpoint counts, node counts.
171
-
172
- **Step 4.2** — AskUserQuestion: `Confirm & Save` / `Edit a node` / `Add a node` / `Remove a node` / `Rename template` / `Re-run checkpoint injection` / `Cancel`
173
-
174
- **Step 4.3** — Loop edits until Confirm or Cancel.
175
-
176
- ---
177
-
178
- ### Phase 5: Persist — Assemble + Save Template
179
-
180
- **Read deferred**: `~/.maestro/templates/workflows/specs/template-schema.md`
181
-
182
- **Step 5.1** — Load `intent.json` + `dag.json`. Assemble template JSON.
183
-
184
- **Step 5.2** — Determine slug (kebab-case). If exists, append `-v2`.
185
-
186
- **Step 5.3** — Write `~/.maestro/templates/workflows/<slug>.json`.
187
-
188
- **Step 5.4** — Update `~/.maestro/templates/workflows/index.json`.
189
-
190
- **Step 5.5** — Output summary: path, template ID, node/checkpoint counts, required variables. Include usage commands: `$maestro-player <slug> --context goal="..."`, `$maestro-composer --edit <path>`, `$maestro-player --list`.
191
-
192
- **Step 5.6** — Clean up design draft directory.
193
- </execution>
194
-
195
- <error_codes>
196
- | Code | Severity | Condition | Recovery |
197
- |------|----------|-----------|----------|
198
- | E001 | error | Empty description and no flags | AskUserQuestion for description |
199
- | E002 | error | 0 steps extracted | Ask to rephrase with action verbs |
200
- | E003 | error | Node count exceeds 20 | Suggest splitting into sub-workflows |
201
- | E004 | error | DAG cycle detected | Show cycle, ask to resolve |
202
- | E005 | error | Resume session not found | Show available drafts |
203
- | E006 | error | Edit template not found | Show available templates |
204
- | W001 | warning | Ambiguous executor mapping | Show candidates, let user choose |
205
- | W002 | warning | No checkpoint rules triggered | Warn, offer manual add |
206
- | W003 | warning | Deferred spec not found | Use built-in fallback |
207
- </error_codes>
208
-
209
- <success_criteria>
210
- - [ ] Intent parsed and confirmed by user (Phase 1 gate)
211
- - [ ] Nodes resolved and confirmed by user (Phase 2 gate)
212
- - [ ] DAG built with auto-injected checkpoints
213
- - [ ] Pipeline visualized and confirmed by user (Phase 4 gate)
214
- - [ ] Template JSON written to `~/.maestro/templates/workflows/<slug>.json`
215
- - [ ] Template index updated
216
- - [ ] Deferred specs loaded only when phase needs them
217
- </success_criteria>
1
+ ---
2
+ name: maestro-composer
3
+ description: Compose reusable workflow templates from natural language
4
+ argument-hint: "\"workflow description\" [--resume] [--edit <template-path>]"
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
+ ---
7
+
8
+ <purpose>
9
+ Interactive workflow template composer. Parses natural language into a reusable DAG template
10
+ via 5 phases with user confirmation at each boundary. Templates saved globally at
11
+ `~/.maestro/templates/workflows/`. Progressive disclosure — specs loaded only when phase needs them.
12
+
13
+ Sequential interactive flow (no spawn_agents_on_csv — this is design, not execution):
14
+ ```
15
+ Parse NL → [confirm] → Resolve to nodes → [confirm] → Inject checkpoints → Confirm pipeline → Persist
16
+ ```
17
+
18
+ Three entry modes:
19
+ 1. **New design**: Phase 1-5
20
+ 2. **Resume design**: Load draft from `.workflow/templates/design-drafts/`
21
+ 3. **Edit template**: Load existing, modify, re-save
22
+ </purpose>
23
+
24
+ <context>
25
+ $ARGUMENTS — natural language workflow description, or flags.
26
+
27
+ **Flags:**
28
+ - `--resume` — Resume in-progress design session
29
+ - `--edit <template-path>` — Edit an existing template
30
+
31
+ **Shared constants:**
32
+
33
+ | Constant | Value |
34
+ |----------|-------|
35
+ | Session prefix | `WFD` |
36
+ | Template dir (global) | `~/.maestro/templates/workflows/` |
37
+ | Template index (global) | `~/.maestro/templates/workflows/index.json` |
38
+ | Design drafts dir (local) | `.workflow/templates/design-drafts/` |
39
+ | Template ID format | `wft-<slug>-<YYYYMMDD>` |
40
+ | Node ID format | `N-<seq>` (e.g. N-001), `CP-<seq>` for checkpoints |
41
+ | Max nodes | 20 |
42
+
43
+ **Entry routing:**
44
+
45
+ | Detection | Condition | Handler |
46
+ |-----------|-----------|---------|
47
+ | Resume | `--resume` or existing WFD session | Phase 0: Resume |
48
+ | Edit | `--edit <path>` | Phase 0: Load + Edit |
49
+ | New | Default | Phase 1: Parse |
50
+
51
+ **Node catalog**: Read `~/.maestro/templates/workflows/specs/node-catalog.md` at Phase 2 (deferred).
52
+ **Template schema**: Read `~/.maestro/templates/workflows/specs/template-schema.md` at Phase 5 (deferred).
53
+
54
+ ### Pre-load specs
55
+ 1. **Architecture specs**: Run `maestro spec load --category arch` to load architecture constraints. Use as context for node resolution — ensures workflow design respects documented patterns.
56
+ 2. **Coding specs**: Run `maestro spec load --category coding` to load coding conventions. Informs executor argument defaults and context injection.
57
+ 3. Optional — proceed without if unavailable.
58
+ </context>
59
+
60
+ <execution>
61
+
62
+ ### Phase 0: Resume / Edit (conditional)
63
+
64
+ **Resume** (`--resume`):
65
+ 1. Scan `.workflow/templates/design-drafts/WFD-*/` for in-progress designs
66
+ 2. Multiple → request_user_input for selection
67
+ 3. Load draft → skip to last incomplete phase
68
+
69
+ **Edit** (`--edit <path>`):
70
+ 1. Load template JSON
71
+ 2. Show pipeline visualization (Phase 4 format)
72
+ 3. request_user_input: which nodes to modify/add/remove
73
+ 4. Re-enter at Phase 3
74
+
75
+ ---
76
+
77
+ ### Phase 1: Parse — Semantic Intent Extraction
78
+
79
+ **Step 1.1** — Parse `$ARGUMENTS`. If empty, request_user_input:
80
+ ```
81
+ "Describe the workflow you want to automate.
82
+ Include: what steps to run, in what order, and what varies each time.
83
+ Example: 'analyze the code, then plan, implement, and test the feature'"
84
+ ```
85
+
86
+ **Step 1.2** — Extract sequential actions as candidate nodes:
87
+
88
+ | Signal | Candidate Type |
89
+ |--------|---------------|
90
+ | "analyze", "review", "explore" | analysis (cli) |
91
+ | "plan", "design", "spec" | planning (skill) |
92
+ | "implement", "build", "code", "fix" | execution (skill) |
93
+ | "test", "validate", "verify" | testing (skill) |
94
+ | "brainstorm", "ideate" | brainstorm (skill) |
95
+ | "review code" | review (skill) |
96
+ | "then", "next", "after" | sequential edge |
97
+ | "parallel", "simultaneously" | parallel edge |
98
+
99
+ **Step 1.3** — Extract variables (inputs that vary per run).
100
+
101
+ **Step 1.4** — Classify task type: `bugfix | feature | tdd | review | brainstorm | spec-driven | roadmap | refactor | integration-test | quick-task | custom`
102
+
103
+ **Step 1.5** — Assess complexity: `simple` (1-3 nodes), `medium` (4-7), `complex` (8+)
104
+
105
+ **Step 1.6** — Write `intent.json` to `.workflow/templates/design-drafts/WFD-<slug>-<date>/`.
106
+
107
+ **Step 1.7 — Interactive confirmation**: Display description, task type, complexity, detected steps (numbered with type_hint), and variables. request_user_input: `Continue to resolution` / `Edit steps` / `Add a step` / `Cancel`
108
+
109
+ ---
110
+
111
+ ### Phase 2: Resolve — Map Steps to Executor Nodes
112
+
113
+ **Read deferred**: `~/.maestro/templates/workflows/specs/node-catalog.md`
114
+
115
+ If spec not found, use built-in fallback:
116
+
117
+ | type_hint | executor type | executor |
118
+ |-----------|--------------|----------|
119
+ | `planning` | skill | `maestro-plan` |
120
+ | `execution` | skill | `maestro-execute` |
121
+ | `testing` | skill | `quality-test` |
122
+ | `review` | skill | `quality-review` |
123
+ | `brainstorm` | skill | `maestro-brainstorm` |
124
+ | `analysis` | cli | `maestro delegate --role analyze --mode analysis` |
125
+ | `refactor` | skill | `quality-refactor` |
126
+ | `debug` | skill | `quality-debug` |
127
+ | `spec` | skill | `maestro-blueprint` |
128
+ | `checkpoint` | checkpoint | — |
129
+
130
+ **Step 2.1** — Load `intent.json`, map each step to executor.
131
+
132
+ **Step 2.2** — Build `args_template` with variable placeholders and context injection:
133
+ - Planning after analysis → `--context {prev_output_path}`
134
+ - Execution after planning → inherit phase
135
+ - Testing after execution → inherit phase
136
+
137
+ **Step 2.3** — Assign `parallel_group` for parallel steps.
138
+
139
+ **Step 2.4** — Write `nodes.json`.
140
+
141
+ **Step 2.5 — Interactive confirmation**: Display resolved nodes table (ID, type, executor, args) and parallel groups. request_user_input: `Continue to checkpoint injection` / `Change executor` / `Change node type` / `Back to intent` / `Cancel`
142
+
143
+ ---
144
+
145
+ ### Phase 3: Enrich — Inject Checkpoints + Build DAG
146
+
147
+ **Step 3.1** — Load `nodes.json`. Build sequential edges. For parallel groups: fan-out/fan-in.
148
+
149
+ **Step 3.2** — Auto-inject checkpoint nodes:
150
+
151
+ | Rule | Condition |
152
+ |------|-----------|
153
+ | Artifact boundary | Source output_ports: plan, spec, analysis, review-findings |
154
+ | Execution gate | Target executor contains `execute` |
155
+ | Agent spawn | Target type is `agent` |
156
+ | Long-running | Target is maestro-plan, maestro-roadmap |
157
+ | User-defined | Step had `type_hint: checkpoint` |
158
+ | Post-testing | Source executor contains `test` or `integration-test` |
159
+
160
+ Set `auto_continue: false` for checkpoints before user-facing deliverables.
161
+
162
+ **Step 3.3** — Finalize `context_schema`, validate DAG (no cycles, no orphans).
163
+
164
+ **Step 3.4** — Write `dag.json`. → Proceed to Phase 4.
165
+
166
+ ---
167
+
168
+ ### Phase 4: Confirm — Visualize + User Approval
169
+
170
+ **Step 4.1** — Render ASCII pipeline: vertical node chain with `|` connectors showing each node (ID, type, executor, args) and checkpoint nodes (auto-continue vs pause-for-user). Footer: required variables, checkpoint counts, node counts.
171
+
172
+ **Step 4.2** — request_user_input: `Confirm & Save` / `Edit a node` / `Add a node` / `Remove a node` / `Rename template` / `Re-run checkpoint injection` / `Cancel`
173
+
174
+ **Step 4.3** — Loop edits until Confirm or Cancel.
175
+
176
+ ---
177
+
178
+ ### Phase 5: Persist — Assemble + Save Template
179
+
180
+ **Read deferred**: `~/.maestro/templates/workflows/specs/template-schema.md`
181
+
182
+ **Step 5.1** — Load `intent.json` + `dag.json`. Assemble template JSON.
183
+
184
+ **Step 5.2** — Determine slug (kebab-case). If exists, append `-v2`.
185
+
186
+ **Step 5.3** — Write `~/.maestro/templates/workflows/<slug>.json`.
187
+
188
+ **Step 5.4** — Update `~/.maestro/templates/workflows/index.json`.
189
+
190
+ **Step 5.5** — Output summary: path, template ID, node/checkpoint counts, required variables. Include usage commands: `$maestro-player <slug> --context goal="..."`, `$maestro-composer --edit <path>`, `$maestro-player --list`.
191
+
192
+ **Step 5.6** — Clean up design draft directory.
193
+ </execution>
194
+
195
+ <error_codes>
196
+ | Code | Severity | Condition | Recovery |
197
+ |------|----------|-----------|----------|
198
+ | E001 | error | Empty description and no flags | request_user_input for description |
199
+ | E002 | error | 0 steps extracted | Ask to rephrase with action verbs |
200
+ | E003 | error | Node count exceeds 20 | Suggest splitting into sub-workflows |
201
+ | E004 | error | DAG cycle detected | Show cycle, ask to resolve |
202
+ | E005 | error | Resume session not found | Show available drafts |
203
+ | E006 | error | Edit template not found | Show available templates |
204
+ | W001 | warning | Ambiguous executor mapping | Show candidates, let user choose |
205
+ | W002 | warning | No checkpoint rules triggered | Warn, offer manual add |
206
+ | W003 | warning | Deferred spec not found | Use built-in fallback |
207
+ </error_codes>
208
+
209
+ <success_criteria>
210
+ - [ ] Intent parsed and confirmed by user (Phase 1 gate)
211
+ - [ ] Nodes resolved and confirmed by user (Phase 2 gate)
212
+ - [ ] DAG built with auto-injected checkpoints
213
+ - [ ] Pipeline visualized and confirmed by user (Phase 4 gate)
214
+ - [ ] Template JSON written to `~/.maestro/templates/workflows/<slug>.json`
215
+ - [ ] Template index updated
216
+ - [ ] Deferred specs loaded only when phase needs them
217
+ </success_criteria>
@@ -11,7 +11,7 @@ Positioned BEFORE brainstorm in the pipeline: grill stress-tests and sharpens; b
11
11
 
12
12
  Codex specifics:
13
13
  - **No agent spawning** — codebase exploration runs directly via Glob/Grep/Read in coordinator context.
14
- - **request_user_input** replaces AskUserQuestion for Socratic Q&A.
14
+ - **request_user_input** replaces request_user_input for Socratic Q&A.
15
15
  - **CLI delegation** for auto mode: `exec_command("maestro delegate ... --role analyze --mode analysis")`.
16
16
  </purpose>
17
17