maestro-flow 0.3.21 → 0.3.23

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 (151) hide show
  1. package/.claude/commands/maestro-analyze.md +1 -1
  2. package/.claude/commands/maestro-brainstorm.md +1 -1
  3. package/.claude/commands/maestro-composer.md +3 -3
  4. package/.claude/commands/maestro-init.md +4 -4
  5. package/.claude/commands/maestro-roadmap.md +164 -108
  6. package/.claude/commands/maestro.md +19 -10
  7. package/.claude/commands/quality-business-test.md +2 -2
  8. package/.claude/skills/team-quality-assurance/roles/scout/role.md +1 -1
  9. package/.claude/skills/team-review/roles/reviewer/role.md +1 -1
  10. package/.claude/skills/team-review/roles/scanner/role.md +1 -1
  11. package/.claude/skills/team-tech-debt/roles/scanner/role.md +3 -3
  12. package/.codex/skills/maestro/SKILL.md +12 -9
  13. package/.codex/skills/maestro-brainstorm/SKILL.md +1 -1
  14. package/.codex/skills/maestro-composer/SKILL.md +3 -3
  15. package/.codex/skills/maestro-init/SKILL.md +1 -1
  16. package/.codex/skills/maestro-link-coordinate/SKILL.md +1 -1
  17. package/.codex/skills/maestro-player/SKILL.md +2 -2
  18. package/.codex/skills/maestro-roadmap/SKILL.md +443 -332
  19. package/.codex/skills/quality-business-test/SKILL.md +2 -2
  20. package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
  21. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +1 -1
  22. package/.codex/skills/team-quality-assurance/roles/scout/role.md +1 -1
  23. package/.codex/skills/team-review/roles/reviewer/role.md +1 -1
  24. package/.codex/skills/team-review/roles/scanner/role.md +1 -1
  25. package/.codex/skills/team-tech-debt/roles/scanner/role.md +3 -3
  26. package/chains/singles/spec-generate.json +3 -3
  27. package/chains/spec-driven.json +2 -2
  28. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +4 -0
  29. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  30. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +2 -2
  31. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  32. package/dashboard/dist-server/dashboard/src/server/routes/install-utils.d.ts +5 -12
  33. package/dashboard/dist-server/dashboard/src/server/routes/install-utils.js +10 -65
  34. package/dashboard/dist-server/dashboard/src/server/routes/install-utils.js.map +1 -1
  35. package/dashboard/dist-server/dashboard/src/server/routes/install.js +17 -11
  36. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  37. package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +4 -0
  38. package/dashboard/dist-server/src/agents/cli-agent-runner.js +4 -2
  39. package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
  40. package/dashboard/dist-server/src/commands/delegate.d.ts +2 -0
  41. package/dashboard/dist-server/src/commands/delegate.js +20 -4
  42. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  43. package/dashboard/dist-server/src/config/cli-tools-config.d.ts +64 -3
  44. package/dashboard/dist-server/src/config/cli-tools-config.js +226 -9
  45. package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
  46. package/dist/src/agents/cli-agent-runner.d.ts +4 -0
  47. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  48. package/dist/src/agents/cli-agent-runner.js +4 -2
  49. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  50. package/dist/src/cli.js +2 -0
  51. package/dist/src/cli.js.map +1 -1
  52. package/dist/src/commands/cli.d.ts.map +1 -1
  53. package/dist/src/commands/cli.js +21 -4
  54. package/dist/src/commands/cli.js.map +1 -1
  55. package/dist/src/commands/delegate.d.ts +2 -0
  56. package/dist/src/commands/delegate.d.ts.map +1 -1
  57. package/dist/src/commands/delegate.js +20 -4
  58. package/dist/src/commands/delegate.js.map +1 -1
  59. package/dist/src/commands/install-backend.d.ts +5 -16
  60. package/dist/src/commands/install-backend.d.ts.map +1 -1
  61. package/dist/src/commands/install-backend.js +8 -104
  62. package/dist/src/commands/install-backend.js.map +1 -1
  63. package/dist/src/commands/install-ui/ExecutionView.js +1 -1
  64. package/dist/src/commands/install-ui/ExecutionView.js.map +1 -1
  65. package/dist/src/commands/install-ui/InstallExecution.d.ts +1 -0
  66. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  67. package/dist/src/commands/install-ui/InstallExecution.js +19 -4
  68. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  69. package/dist/src/commands/install-ui/InstallResult.d.ts.map +1 -1
  70. package/dist/src/commands/install-ui/InstallResult.js +1 -1
  71. package/dist/src/commands/install-ui/InstallResult.js.map +1 -1
  72. package/dist/src/commands/install.d.ts.map +1 -1
  73. package/dist/src/commands/install.js +23 -3
  74. package/dist/src/commands/install.js.map +1 -1
  75. package/dist/src/commands/tools-ui/CommandReference.d.ts +7 -0
  76. package/dist/src/commands/tools-ui/CommandReference.d.ts.map +1 -0
  77. package/dist/src/commands/tools-ui/CommandReference.js +33 -0
  78. package/dist/src/commands/tools-ui/CommandReference.js.map +1 -0
  79. package/dist/src/commands/tools-ui/ConfigSources.d.ts +6 -0
  80. package/dist/src/commands/tools-ui/ConfigSources.d.ts.map +1 -0
  81. package/dist/src/commands/tools-ui/ConfigSources.js +27 -0
  82. package/dist/src/commands/tools-ui/ConfigSources.js.map +1 -0
  83. package/dist/src/commands/tools-ui/RegisterSettings.d.ts +8 -0
  84. package/dist/src/commands/tools-ui/RegisterSettings.d.ts.map +1 -0
  85. package/dist/src/commands/tools-ui/RegisterSettings.js +125 -0
  86. package/dist/src/commands/tools-ui/RegisterSettings.js.map +1 -0
  87. package/dist/src/commands/tools-ui/RoleMappings.d.ts +9 -0
  88. package/dist/src/commands/tools-ui/RoleMappings.d.ts.map +1 -0
  89. package/dist/src/commands/tools-ui/RoleMappings.js +104 -0
  90. package/dist/src/commands/tools-ui/RoleMappings.js.map +1 -0
  91. package/dist/src/commands/tools-ui/ToolsDashboard.d.ts +8 -0
  92. package/dist/src/commands/tools-ui/ToolsDashboard.d.ts.map +1 -0
  93. package/dist/src/commands/tools-ui/ToolsDashboard.js +60 -0
  94. package/dist/src/commands/tools-ui/ToolsDashboard.js.map +1 -0
  95. package/dist/src/commands/tools-ui/ToolsOverview.d.ts +9 -0
  96. package/dist/src/commands/tools-ui/ToolsOverview.d.ts.map +1 -0
  97. package/dist/src/commands/tools-ui/ToolsOverview.js +84 -0
  98. package/dist/src/commands/tools-ui/ToolsOverview.js.map +1 -0
  99. package/dist/src/commands/tools.d.ts +3 -0
  100. package/dist/src/commands/tools.d.ts.map +1 -0
  101. package/dist/src/commands/tools.js +78 -0
  102. package/dist/src/commands/tools.js.map +1 -0
  103. package/dist/src/config/cli-tools-config.d.ts +64 -3
  104. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  105. package/dist/src/config/cli-tools-config.js +226 -9
  106. package/dist/src/config/cli-tools-config.js.map +1 -1
  107. package/dist/src/core/component-defs.d.ts +16 -0
  108. package/dist/src/core/component-defs.d.ts.map +1 -0
  109. package/dist/src/core/component-defs.js +142 -0
  110. package/dist/src/core/component-defs.js.map +1 -0
  111. package/dist/src/core/manifest.d.ts +8 -1
  112. package/dist/src/core/manifest.d.ts.map +1 -1
  113. package/dist/src/core/manifest.js +29 -40
  114. package/dist/src/core/manifest.js.map +1 -1
  115. package/dist/src/core/tag-injector.d.ts +72 -0
  116. package/dist/src/core/tag-injector.d.ts.map +1 -0
  117. package/dist/src/core/tag-injector.js +228 -0
  118. package/dist/src/core/tag-injector.js.map +1 -0
  119. package/dist/src/index.d.ts +4 -0
  120. package/dist/src/index.d.ts.map +1 -1
  121. package/dist/src/index.js +2 -0
  122. package/dist/src/index.js.map +1 -1
  123. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
  124. package/dist/src/tools/spec-entry-parser.js +27 -1
  125. package/dist/src/tools/spec-entry-parser.js.map +1 -1
  126. package/dist/src/tools/spec-loader.d.ts +5 -1
  127. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  128. package/dist/src/tools/spec-loader.js +47 -59
  129. package/dist/src/tools/spec-loader.js.map +1 -1
  130. package/dist/tsconfig.tsbuildinfo +1 -0
  131. package/package.json +1 -1
  132. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +1 -1
  133. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +1 -1
  134. package/templates/search-tools.md +1 -1
  135. package/templates/workflows/specs/node-catalog.md +1 -1
  136. package/workflows/brainstorm.md +1 -1
  137. package/{.claude/CLAUDE.md → workflows/claude-instructions.md} +25 -26
  138. package/workflows/cli-tools-usage.md +16 -2
  139. package/workflows/codex-instructions.md +150 -0
  140. package/workflows/delegate-usage.md +16 -2
  141. package/workflows/execute.md +28 -14
  142. package/workflows/init.md +2 -2
  143. package/workflows/issue-discover.md +2 -2
  144. package/workflows/maestro-super.md +120 -0
  145. package/workflows/maestro.codex.md +4 -4
  146. package/workflows/maestro.md +5 -5
  147. package/workflows/roadmap-common.md +197 -0
  148. package/workflows/roadmap.md +190 -355
  149. package/workflows/spec-generate.md +457 -544
  150. package/.claude/commands/maestro-spec-generate.md +0 -78
  151. package/.codex/skills/maestro-spec-generate/SKILL.md +0 -355
@@ -56,43 +56,28 @@ export function resolveSpecDir(projectPath, scope, uid) {
56
56
  default: return join(projectPath, SPECS_DIR);
57
57
  }
58
58
  }
59
- /**
60
- * Load spec files from one or more directories.
61
- *
62
- * Layer scanning order (lowest → highest priority):
63
- * 0. ~/.maestro/specs/ (global — when `scope` includes global)
64
- * 1. .workflow/specs/ (baseline)
65
- * 2. .workflow/collab/specs/ (team shared — when `uid` is provided)
66
- * 3. .workflow/collab/specs/{uid}/ (personal — when `uid` is provided)
67
- *
68
- * Content from later layers is appended (never replaces earlier content).
69
- * Each layer's content is prefixed with a header for clarity.
70
- *
71
- * @param scope Controls which extra layers to include beyond baseline.
72
- * - 'project': baseline only (default)
73
- * - 'global': global + baseline
74
- * - 'team': baseline + team shared
75
- * - 'personal': baseline + team shared + personal (requires uid)
76
- * - undefined: same as 'project'; uid alone still triggers team+personal for backward compat
77
- */
78
- export function loadSpecs(projectPath, category, uid, keyword, scope) {
59
+ export function loadSpecs(projectPath, category, uid, keyword, scope, options) {
60
+ const globalDir = options?.globalDir ?? paths.specs;
79
61
  // Build ordered list of (directory, label) pairs to scan
80
- const layers = buildLayers(projectPath, uid, scope);
81
- // Auto-init only baseline and global layers.
62
+ const layers = buildLayers(projectPath, uid, scope, globalDir);
63
+ // Auto-init baseline and global layers.
82
64
  // Team/personal are per-user — auto-creating them for arbitrary uids is wrong.
83
65
  autoInitSeeds(join(projectPath, SPECS_DIR));
84
- if (scope === 'global') {
85
- autoInitSeeds(paths.specs);
66
+ autoInitSeeds(globalDir);
67
+ // First pass: collect results per layer (skip empty)
68
+ const layerResults = [];
69
+ for (const { dir, label } of layers) {
70
+ const { sections, matched } = loadFromDir(dir, category, keyword);
71
+ if (sections.length > 0) {
72
+ layerResults.push({ label, sections, matched });
73
+ }
86
74
  }
75
+ // Only show layer headers when multiple layers have actual content
76
+ const multiLayer = layerResults.length > 1;
87
77
  const allSections = [];
88
78
  const allMatched = [];
89
79
  let totalCount = 0;
90
- const multiLayer = layers.length > 1;
91
- for (const { dir, label } of layers) {
92
- const { sections, matched } = loadFromDir(dir, category, keyword);
93
- if (sections.length === 0)
94
- continue;
95
- // Add layer headers when multi-layer mode is active (global or uid)
80
+ for (const { label, sections, matched } of layerResults) {
96
81
  if (multiLayer) {
97
82
  allSections.push(`${label}\n\n${sections.join('\n\n---\n\n')}`);
98
83
  }
@@ -110,12 +95,10 @@ export function loadSpecs(projectPath, category, uid, keyword, scope) {
110
95
  totalLoaded: totalCount,
111
96
  };
112
97
  }
113
- function buildLayers(projectPath, uid, scope) {
98
+ function buildLayers(projectPath, uid, scope, globalDir) {
114
99
  const layers = [];
115
- // Global layer — lowest priority
116
- if (scope === 'global') {
117
- layers.push({ dir: paths.specs, label: LAYER_LABELS.global });
118
- }
100
+ // Global layer — always included as lowest priority
101
+ layers.push({ dir: globalDir ?? paths.specs, label: LAYER_LABELS.global });
119
102
  // Baseline — always included
120
103
  layers.push({
121
104
  dir: join(projectPath, SPECS_DIR),
@@ -161,16 +144,9 @@ function loadFromDir(specsDir, category, keyword) {
161
144
  const body = stripFrontmatter(raw).trim();
162
145
  if (!body)
163
146
  continue;
164
- if (keyword) {
165
- // Entry-level keyword filtering
166
- const filtered = filterByKeyword(body, keyword);
167
- if (filtered) {
168
- sections.push(filtered);
169
- matched.push(file);
170
- }
171
- }
172
- else {
173
- sections.push(body);
147
+ const formatted = formatFileContent(body, keyword);
148
+ if (formatted) {
149
+ sections.push(formatted);
174
150
  matched.push(file);
175
151
  }
176
152
  }
@@ -190,25 +166,37 @@ function shouldInclude(filename, category) {
190
166
  return false;
191
167
  }
192
168
  /**
193
- * Filter file content by keyword. Returns matched entry content or null.
194
- * Handles both <spec-entry> tags (keyword attribute match) and legacy entries (text grep).
169
+ * Parse file body, strip <spec-entry> tags, format clean output with metadata.
170
+ * When keyword is provided, only return matching entries.
171
+ * Falls back to raw body for files with no structured entries.
195
172
  */
196
- function filterByKeyword(body, keyword) {
197
- const kw = keyword.toLowerCase();
173
+ function formatFileContent(body, keyword) {
198
174
  const { entries, legacy } = parseSpecEntries(body);
199
- const matchedSections = [];
200
- // New-format: match by keywords attribute
201
- const matchedEntries = entries.filter(e => e.keywords.includes(kw));
202
- if (matchedEntries.length > 0) {
203
- matchedSections.push(formatSpecEntries(matchedEntries));
175
+ // No structured entries → pass through raw body (or keyword-grep it)
176
+ if (entries.length === 0 && legacy.length === 0) {
177
+ if (keyword) {
178
+ return body.toLowerCase().includes(keyword.toLowerCase()) ? body : null;
179
+ }
180
+ return body;
204
181
  }
205
- // Legacy: grep text match
206
- for (const leg of legacy) {
207
- if (leg.content.toLowerCase().includes(kw)) {
208
- matchedSections.push(leg.content);
182
+ const parts = [];
183
+ if (keyword) {
184
+ const kw = keyword.toLowerCase();
185
+ const matchedEntries = entries.filter(e => e.keywords.includes(kw));
186
+ if (matchedEntries.length > 0)
187
+ parts.push(formatSpecEntries(matchedEntries));
188
+ for (const leg of legacy) {
189
+ if (leg.content.toLowerCase().includes(kw))
190
+ parts.push(leg.content);
209
191
  }
210
192
  }
211
- return matchedSections.length > 0 ? matchedSections.join('\n\n---\n\n') : null;
193
+ else {
194
+ if (entries.length > 0)
195
+ parts.push(formatSpecEntries(entries));
196
+ for (const leg of legacy)
197
+ parts.push(leg.content);
198
+ }
199
+ return parts.length > 0 ? parts.join('\n\n---\n\n') : null;
212
200
  }
213
201
  function stripFrontmatter(raw) {
214
202
  const trimmed = raw.trimStart();
@@ -1 +1 @@
1
- {"version":3,"file":"spec-loader.js","sourceRoot":"","sources":["../../../src/tools/spec-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec-loader.js","sourceRoot":"","sources":["../../../src/tools/spec-loader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"root":["../src/cli.ts","../src/index.ts","../src/agents/cli-agent-runner.ts","../src/agents/cli-history-store.ts","../src/agents/dashboard-bridge.ts","../src/agents/parallel-cli-runner.ts","../src/agents/terminal-adapter.ts","../src/agents/terminal-backend.ts","../src/async/delegate-broker-client.ts","../src/async/delegate-broker.ts","../src/async/delegate-control.ts","../src/async/index.ts","../src/brainstorm-visualize/frame.ts","../src/brainstorm-visualize/server.ts","../src/commands/brainstorm-visualize.ts","../src/commands/cli.ts","../src/commands/collab.ts","../src/commands/coordinate.ts","../src/commands/delegate.ts","../src/commands/ext.ts","../src/commands/hooks.ts","../src/commands/install-backend.ts","../src/commands/install.ts","../src/commands/knowhow.ts","../src/commands/launcher.ts","../src/commands/msg.ts","../src/commands/overlay.ts","../src/commands/run.ts","../src/commands/serve.ts","../src/commands/spec.ts","../src/commands/stop.ts","../src/commands/tool.ts","../src/commands/uninstall.ts","../src/commands/update.ts","../src/commands/view.ts","../src/commands/wiki.ts","../src/commands/install-ui/backupconfig.tsx","../src/commands/install-ui/blueprintpreview.logic.ts","../src/commands/install-ui/blueprintpreview.tsx","../src/commands/install-ui/componentgrid.logic.ts","../src/commands/install-ui/componentgrid.tsx","../src/commands/install-ui/configpanel.tsx","../src/commands/install-ui/cyberitem.tsx","../src/commands/install-ui/cyberdeckblueprint.tsx","../src/commands/install-ui/executionview.tsx","../src/commands/install-ui/gradientheader.tsx","../src/commands/install-ui/hooksconfig.tsx","../src/commands/install-ui/installconfirm.tsx","../src/commands/install-ui/installexecution.tsx","../src/commands/install-ui/installflow.tsx","../src/commands/install-ui/installhub.tsx","../src/commands/install-ui/installresult.tsx","../src/commands/install-ui/mcpconfig.tsx","../src/commands/install-ui/resultdashboard.tsx","../src/commands/install-ui/reviewpanel.tsx","../src/commands/install-ui/shortcutfooter.tsx","../src/commands/install-ui/statuslineconfig.tsx","../src/commands/install-ui/stepselector.tsx","../src/commands/install-ui/index.ts","../src/commands/install-ui/types.ts","../src/commands/overlay-ui/overlaylist.tsx","../src/commands/overlay-ui/index.ts","../src/commands/uninstall-ui/uninstallflow.tsx","../src/commands/uninstall-ui/index.ts","../src/config/cli-tools-config.ts","../src/config/index.ts","../src/config/paths.ts","../src/config/template-discovery.ts","../src/coordinator/cli-executor.ts","../src/coordinator/coordinate-broker-adapter.ts","../src/coordinator/expr-evaluator.ts","../src/coordinator/graph-loader.ts","../src/coordinator/graph-types.ts","../src/coordinator/graph-walker.ts","../src/coordinator/index.ts","../src/coordinator/intent-router.ts","../src/coordinator/llm-decider.ts","../src/coordinator/output-parser.ts","../src/coordinator/parallel-executor.ts","../src/coordinator/prompt-assembler.ts","../src/coordinator/step-analyzer.ts","../src/core/component-defs.ts","../src/core/extension-loader.ts","../src/core/manifest.ts","../src/core/tag-injector.ts","../src/core/tool-registry.ts","../src/core/overlay/applier.ts","../src/core/overlay/loader.ts","../src/core/overlay/patcher.ts","../src/core/overlay/section-parser.ts","../src/core/overlay/types.ts","../src/db/connection-pool.ts","../src/db/index.ts","../src/db/tenant-migrator.ts","../src/db/tenant-schema.ts","../src/db/schema/core/index.ts","../src/db/schema/core/organizations.ts","../src/db/schema/core/permissions.ts","../src/db/schema/core/refresh-tokens.ts","../src/db/schema/core/users.ts","../src/hooks/auto-mode.ts","../src/hooks/constants.ts","../src/hooks/context-budget.ts","../src/hooks/context-monitor.ts","../src/hooks/coordinator-tracker.ts","../src/hooks/delegate-monitor.ts","../src/hooks/hook-engine.ts","../src/hooks/hook-manager.ts","../src/hooks/index.ts","../src/hooks/keyword-spec-injector.ts","../src/hooks/preflight-core.ts","../src/hooks/session-context.ts","../src/hooks/skill-context.ts","../src/hooks/spec-bridge.ts","../src/hooks/spec-injector.ts","../src/hooks/statusline.ts","../src/hooks/team-monitor.ts","../src/hooks/workflow-hooks.ts","../src/hooks/workspace.ts","../src/hooks/__tests__/statusline-visual-test.ts","../src/hooks/guards/index.ts","../src/hooks/guards/preflight-guard.ts","../src/hooks/guards/prompt-guard.ts","../src/hooks/guards/spec-validator.ts","../src/hooks/guards/workflow-guard.ts","../src/hooks/plugins/index.ts","../src/hooks/plugins/spec-injection-plugin.ts","../src/hooks/plugins/telemetry-plugin.ts","../src/i18n/detect.ts","../src/i18n/index.ts","../src/i18n/types.ts","../src/i18n/locales/en.ts","../src/i18n/locales/zh.ts","../src/mcp/delegate-channel-relay.ts","../src/mcp/server.ts","../src/middleware/auth.ts","../src/middleware/permission.ts","../src/middleware/rate-limit.ts","../src/middleware/tenant.ts","../src/middleware/validation.ts","../src/migrations/_template.ts","../src/migrations/index.ts","../src/migrations/run.ts","../src/migrations/v1-to-v2.ts","../src/routes/auth.ts","../src/routes/members.ts","../src/routes/organizations.ts","../src/services/auth.service.ts","../src/services/password.service.ts","../src/services/rbac.service.ts","../src/services/token.service.ts","../src/team/phase-orchestrator.ts","../src/team/phase-types.ts","../src/tools/collab-adapter.ts","../src/tools/edit-file.ts","../src/tools/index.ts","../src/tools/merge-validator.ts","../src/tools/namespace-guard.ts","../src/tools/phase-gate-evaluator.ts","../src/tools/read-file.ts","../src/tools/read-many-files.ts","../src/tools/spec-entry-parser.ts","../src/tools/spec-init.ts","../src/tools/spec-keyword-index.ts","../src/tools/spec-loader.ts","../src/tools/store-knowhow.ts","../src/tools/team-activity.ts","../src/tools/team-agents.ts","../src/tools/team-mailbox.ts","../src/tools/team-members.ts","../src/tools/team-msg.ts","../src/tools/team-tasks-mcp.ts","../src/tools/team-tasks.ts","../src/tools/transition-recorder.ts","../src/tools/write-file.ts","../src/types/hono.d.ts","../src/types/index.ts","../src/types/tool-schema.ts","../src/utils/cli-format.ts","../src/utils/file-reader.ts","../src/utils/get-version.ts","../src/utils/jsonl-log.ts","../src/utils/migration-registry.ts","../src/utils/path-validator.ts","../src/utils/state-schema.ts","../shared/agent-types.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maestro-flow",
3
- "version": "0.3.21",
3
+ "version": "0.3.23",
4
4
  "description": "Workflow orchestration CLI with MCP endpoint support and extensible architecture",
5
5
  "type": "module",
6
6
  "imports": {
@@ -77,7 +77,7 @@ MODE: analysis
77
77
  CONTEXT: @.workflow/.archives/*/IMPL_PLAN.md @.workflow/.archives/manifest.json
78
78
  EXPECTED: Conflict patterns with frequency and resolution
79
79
  CONSTRAINTS: analysis=READ-ONLY
80
- " --to gemini --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
80
+ " --role analyze --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
81
81
  ```
82
82
 
83
83
  **Pattern Grouping**:
@@ -73,7 +73,7 @@ MODE: analysis
73
73
  CONTEXT: @.workflow/.archives/manifest.json
74
74
  EXPECTED: Aggregated lessons with frequency counts
75
75
  CONSTRAINTS: analysis=READ-ONLY
76
- " --to gemini --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
76
+ " --role analyze --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
77
77
  ```
78
78
 
79
79
  **Severity Classification**:
@@ -17,7 +17,7 @@ Semantic Search → Grep (pattern) → Glob (files) → CLI (deep analysis)
17
17
  | Find by intent/behavior | Semantic search tool (see above) |
18
18
  | Known identifier/regex | `Grep` |
19
19
  | Find files by name/ext | `Glob` |
20
- | Complex cross-file reasoning | `maestro delegate --to gemini --mode analysis` |
20
+ | Complex cross-file reasoning | `maestro delegate --role analyze --mode analysis` |
21
21
  | Read identified file | `Read` |
22
22
 
23
23
  ## Fallback
@@ -128,7 +128,7 @@ Deliver: [specify expected output format]
128
128
  | `testing` | skill | `quality-test` |
129
129
  | `review` | skill | `quality-review` |
130
130
  | `brainstorm` | skill | `maestro-brainstorm` |
131
- | `analysis` | cli | `maestro delegate --to gemini --mode analysis` |
131
+ | `analysis` | cli | `maestro delegate --role analyze --mode analysis` |
132
132
  | `spec` | skill | `maestro-spec-generate` |
133
133
  | `refactor` | skill | `quality-refactor` |
134
134
  | `integration-test` | skill | `quality-integration-test` |
@@ -432,7 +432,7 @@ Execute analysis for ONE specified role with optional interactive context gather
432
432
  - Enhancements applied (EP-IDs)
433
433
  - Complexity score and review status
434
434
  - Next:
435
- Skill({ skill: "maestro-spec-generate", args: "--from-brainstorm {sessionId}" }) — Generate full spec package
435
+ Skill({ skill: "maestro-roadmap", args: "--mode full --from-brainstorm {sessionId}" }) — Generate full spec package
436
436
  Skill({ skill: "maestro-analyze", args: "{topic}" }) — Evaluate feasibility + lock decisions
437
437
  Skill({ skill: "maestro-analyze", args: "{phase} -q" }) — Quick decision extraction only
438
438
  Skill({ skill: "maestro-plan", args: "{phase}" }) — Plan directly (if scope is clear)
@@ -1,26 +1,25 @@
1
- # Maestro
2
-
3
- Workflow orchestration CLI with MCP endpoint support and extensible architecture.
4
-
5
- - **Coding Philosophy**: @~/.maestro/workflows/coding-philosophy.md
6
-
7
- ## Delegate & CLI
8
-
9
- - **Delegate Usage**: @~/.maestro/workflows/delegate-usage.md
10
- - **CLI Endpoints Config**: @~/.maestro/cli-tools.json
11
-
12
- **Strictly follow the cli-tools.json configuration**
13
-
14
- Available CLI endpoints are dynamically defined by the config file
15
-
16
- ## Code Diagnostics
17
-
18
- - **Prefer `mcp__ide__getDiagnostics`** for code error checking over shell-based TypeScript compilation
19
-
20
- ## Knowledge Capture
21
-
22
- - **Spec writes** → always `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source`. Never raw Markdown. Route through `spec-add` when possible.
23
- - **Capture signal** → when execution surfaces non-obvious knowledge (plan deviation, retry pattern, root cause, constraint violation), ask user once whether to persist it. Match category to content: decisions→`arch`, pitfalls→`debug`/`learning`, patterns→`coding`, rules→`quality`.
24
- - **Promotion** → at milestone close, scan learnings for repeated keywords (≥2 entries) and offer to graduate them into formal conventions.
25
- - **Traceability** → every entry needs a source anchor: `file:line`, `INS-{id}`, commit, or phase path.
26
-
1
+ # Maestro
2
+
3
+ Workflow orchestration CLI with MCP endpoint support and extensible architecture.
4
+
5
+ - **Coding Philosophy**: @~/.maestro/workflows/coding-philosophy.md
6
+
7
+ ## Delegate & CLI
8
+
9
+ - **Delegate Usage**: @~/.maestro/workflows/delegate-usage.md
10
+ - **CLI Endpoints Config**: @~/.maestro/cli-tools.json
11
+
12
+ **Strictly follow the cli-tools.json configuration**
13
+
14
+ Available CLI endpoints are dynamically defined by the config file
15
+
16
+ ## Code Diagnostics
17
+
18
+ - **Prefer `mcp__ide__getDiagnostics`** for code error checking over shell-based TypeScript compilation
19
+
20
+ ## Knowledge Capture
21
+
22
+ - **Spec writes** → always `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source`. Never raw Markdown. Route through `spec-add` when possible.
23
+ - **Capture signal** → when execution surfaces non-obvious knowledge (plan deviation, retry pattern, root cause, constraint violation), ask user once whether to persist it. Match category to content: decisions→`arch`, pitfalls→`debug`/`learning`, patterns→`coding`, rules→`quality`.
24
+ - **Promotion** → at milestone close, scan learnings for repeated keywords (≥2 entries) and offer to graduate them into formal conventions.
25
+ - **Traceability** → every entry needs a source anchor: `file:line`, `INS-{id}`, commit, or phase path.
@@ -22,7 +22,8 @@ maestro delegate "<PROMPT>" [options]
22
22
 
23
23
  | Option | Description | Default |
24
24
  |--------|-------------|---------|
25
- | `--to <name>` | Tool: gemini, qwen, codex, claude, opencode | First enabled in config |
25
+ | `--to <tool>` | Explicit tool: gemini, qwen, codex, claude, opencode | First enabled in config |
26
+ | `--role <role>` | Capability role: analyze, explore, review, implement, plan, brainstorm, research | — (resolves via config) |
26
27
  | `--mode <mode>` | `analysis` (read-only) or `write` (create/modify/delete) | `analysis` |
27
28
  | `--model <model>` | Model override | Tool's `primaryModel` |
28
29
  | `--cd <dir>` | Working directory | Current directory |
@@ -32,6 +33,19 @@ maestro delegate "<PROMPT>" [options]
32
33
  | `--resume [id]` | Resume session (last if no id, comma-separated for merge) | — |
33
34
  | `--backend <type>` | Adapter backend: `direct` or `terminal` (tmux/wezterm) | `direct` |
34
35
 
36
+ ### Tool Resolution Priority
37
+
38
+ 1. `--to <tool>` — explicit tool selection (backward compat, highest priority)
39
+ 2. `--role <role>` — capability-based auto-selection via config
40
+ 3. No flag — first enabled tool in config
41
+
42
+ ### Role-Based Tool Selection
43
+
44
+ Roles map to tools via `cli-tools.json` configuration:
45
+ - User-defined roles in `roles` section override built-in defaults
46
+ - Workspace `.maestro/cli-tools.json` overrides global `~/.maestro/cli-tools.json`
47
+ - Built-in roles: `analyze`, `explore`, `review`, `implement`, `plan`, `brainstorm`, `research`
48
+
35
49
  ### Mode Definition (Authoritative)
36
50
 
37
51
  | Mode | Permission | Auto-Invoke Safe | Use For |
@@ -236,6 +250,6 @@ Proactively invoke `maestro delegate` when these conditions are met — no user
236
250
 
237
251
  - Default `--mode analysis` (safe, read-only)
238
252
  - Wait for results before next action
239
- - Tool fallback: `gemini` `qwen` `codex`
253
+ - Use `--role` for capability-based tool selection; fallback chain is config-driven
240
254
  - Rule suggestions are guidelines — choose the best fit
241
255
  </execution>
@@ -0,0 +1,150 @@
1
+ # Codex Code Guidelines
2
+
3
+
4
+ ## Code Quality Standards
5
+
6
+ ### Code Quality
7
+ - Follow project's existing patterns
8
+ - Match import style and naming conventions
9
+ - Single responsibility per function/class
10
+ - DRY (Don't Repeat Yourself)
11
+ - YAGNI (You Aren't Gonna Need It)
12
+
13
+ ### Testing
14
+ - Test all public functions
15
+ - Test edge cases and error conditions
16
+ - Mock external dependencies
17
+ - Target 80%+ coverage
18
+
19
+ ### Error Handling
20
+ - Proper try-catch blocks
21
+ - Clear error messages
22
+ - Graceful degradation
23
+ - Don't expose sensitive info
24
+
25
+ ## Core Principles
26
+
27
+ **Incremental Progress**:
28
+ - Small, testable changes
29
+ - Commit working code frequently
30
+ - Build on previous work (subtasks)
31
+
32
+ **Evidence-Based**:
33
+ - Study 3+ similar patterns before implementing
34
+ - Match project style exactly
35
+ - Verify with existing code
36
+
37
+ **Pragmatic**:
38
+ - Boring solutions over clever code
39
+ - Simple over complex
40
+ - Adapt to project reality
41
+
42
+ **Context Continuity** (Multi-Task):
43
+ - Leverage resume for consistency
44
+ - Maintain established patterns
45
+ - Test integration between subtasks
46
+
47
+ **Git Operations** (Parallel Task Safety):
48
+ - Only stage/commit files directly produced by current task
49
+ - Never touch unrelated changes or other task outputs
50
+ - Use `git add <specific-files>` instead of `git add .`
51
+ - Verify staged files before commit to avoid cross-task conflicts
52
+
53
+ **Multi-CLI Coexistence** (CRITICAL):
54
+ - If your task conflicts with existing uncommitted changes, **STOP and report the conflict** instead of overwriting
55
+ - Treat all pre-existing uncommitted changes as intentional work-in-progress by other tools
56
+
57
+
58
+ ## System Optimization
59
+
60
+ **Direct Binary Calls**: Always call binaries directly in `functions.shell`, set `workdir`, avoid shell wrappers (`bash -lc`, `cmd /c`, etc.)
61
+
62
+ **Text Editing Priority**:
63
+ 1. Use `apply_patch` tool for all routine text edits
64
+ 2. Fall back to `sed` for single-line substitutions if unavailable
65
+ 3. Avoid Python editing scripts unless both fail
66
+
67
+ **apply_patch invocation**:
68
+ ```json
69
+ {
70
+ "command": ["apply_patch", "*** Begin Patch\n*** Update File: path/to/file\n@@\n- old\n+ new\n*** End Patch\n"],
71
+ "workdir": "<workdir>",
72
+ "justification": "Brief reason"
73
+ }
74
+ ```
75
+
76
+ **Windows UTF-8 Encoding** (before commands):
77
+ ```powershell
78
+ [Console]::InputEncoding = [Text.UTF8Encoding]::new($false)
79
+ [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false)
80
+ chcp 65001 > $null
81
+ ```
82
+
83
+ ## Context Acquisition (MCP Tools Priority)
84
+
85
+ **For task context gathering and analysis, ALWAYS prefer MCP tools**:
86
+
87
+ 1. **mcp__ace-tool__search_context** - HIGHEST PRIORITY for code discovery
88
+ - Semantic search with real-time codebase index
89
+ - Use for: finding implementations, understanding architecture, locating patterns
90
+ - Example: `mcp__ace-tool__search_context(project_root_path="/path", query="authentication logic")`
91
+
92
+ 2. **smart_search** - Fallback for structured search
93
+ - Use `smart_search(query="...")` for keyword/regex search
94
+ - Use `smart_search(action="find_files", pattern="*.ts")` for file discovery
95
+ - Supports modes: `auto`, `hybrid`, `exact`, `ripgrep`
96
+
97
+ 3. **read_file** - Batch file reading
98
+ - Read multiple files in parallel: `read_file(path="file1.ts")`, `read_file(path="file2.ts")`
99
+ - Supports glob patterns: `read_file(path="src/**/*.config.ts")`
100
+
101
+ **Priority Order**:
102
+ ```
103
+ ACE search_context (semantic) → smart_search (structured) → read_file (batch read) → shell commands (fallback)
104
+ ```
105
+
106
+ **NEVER** use shell commands (`cat`, `find`, `grep`) when MCP tools are available.
107
+
108
+ ## Workflow Session Awareness
109
+
110
+ | Workflow | Directory | Summary File |
111
+ |----------|-----------|-------------|
112
+ | `workflow-plan` | `.workflow/active/WFS-*/` | `workflow-session.json` |
113
+ | `workflow-lite-plan` | `.workflow/.lite-plan/{date}-{slug}/` | `plan.json` |
114
+ | `analyze-with-file` | `.workflow/.analysis/ANL-*/` | `conclusions.json` |
115
+ | `multi-cli-plan` | `.workflow/.multi-cli-plan/*/` | `session-state.json` |
116
+ | `lite-fix` | `.workflow/.lite-fix/*/` | `fix-plan.json` |
117
+ | Other | `.workflow/.debug/`, `.workflow/.scratchpad/`, `.workflow/archives/` | — |
118
+
119
+ Before starting work, scan recent sessions (7 days) to avoid conflicts and reuse prior work:
120
+ - Overlapping file scope → warn, suggest referencing prior session
121
+ - Complementary findings → feed into current task context
122
+
123
+
124
+ ## Knowledge Capture
125
+
126
+ - **Spec writes** → always `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source`. Never raw Markdown. Route through `spec-add` when possible.
127
+ - **Capture signal** → when execution surfaces non-obvious knowledge (plan deviation, retry pattern, root cause, constraint violation), ask user once whether to persist it. Match category to content: decisions→`arch`, pitfalls→`debug`/`learning`, patterns→`coding`, rules→`quality`.
128
+ - **Promotion** → at milestone close, scan learnings for repeated keywords (≥2 entries) and offer to graduate them into formal conventions.
129
+ - **Traceability** → every entry needs a source anchor: `file:line`, `INS-{id}`, commit, or phase path.
130
+
131
+ ## Execution Checklist
132
+
133
+ **Before**:
134
+ - [ ] Understand PURPOSE and TASK clearly
135
+ - [ ] Use ACE search_context first, fallback to smart_search for discovery
136
+ - [ ] Use read_file to batch read context files, find 3+ patterns
137
+ - [ ] Check RULES templates and constraints
138
+
139
+ **During**:
140
+ - [ ] Follow existing patterns exactly
141
+ - [ ] Write tests alongside code
142
+ - [ ] Run tests after every change
143
+ - [ ] Commit working code incrementally
144
+
145
+ **After**:
146
+ - [ ] All tests pass
147
+ - [ ] Coverage meets target
148
+ - [ ] Build succeeds
149
+ - [ ] All EXPECTED deliverables met
150
+ - [ ] Non-obvious knowledge surfaced? → offer `spec-add`
@@ -22,7 +22,8 @@ maestro delegate "<PROMPT>" [options]
22
22
 
23
23
  | Option | Description | Default |
24
24
  |--------|-------------|---------|
25
- | `--to <tool>` | Tool: gemini, qwen, codex, claude, opencode | First enabled in config |
25
+ | `--to <tool>` | Explicit tool: gemini, qwen, codex, claude, opencode | First enabled in config |
26
+ | `--role <role>` | Capability role: analyze, explore, review, implement, plan, brainstorm, research | — (resolves via config) |
26
27
  | `--mode <mode>` | `analysis` (read-only) or `write` (create/modify/delete) | `analysis` |
27
28
  | `--model <model>` | Model override | Tool's `primaryModel` |
28
29
  | `--cd <dir>` | Working directory | Current directory |
@@ -32,6 +33,19 @@ maestro delegate "<PROMPT>" [options]
32
33
  | `--includeDirs <dirs>` | Additional directories (comma-separated) | — |
33
34
  | `--backend <type>` | Adapter backend: `direct` or `terminal` (tmux/wezterm) | `direct` |
34
35
 
36
+ ### Tool Resolution Priority
37
+
38
+ 1. `--to <tool>` — explicit tool selection (backward compat, highest priority)
39
+ 2. `--role <role>` — capability-based auto-selection via config
40
+ 3. No flag — first enabled tool in config
41
+
42
+ ### Role-Based Tool Selection
43
+
44
+ Roles map to tools via `cli-tools.json` configuration:
45
+ - User-defined roles in `roles` section override built-in defaults
46
+ - Workspace `.maestro/cli-tools.json` overrides global `~/.maestro/cli-tools.json`
47
+ - Built-in roles: `analyze`, `explore`, `review`, `implement`, `plan`, `brainstorm`, `research`
48
+
35
49
  ### Mode Definition (Authoritative)
36
50
 
37
51
  | Mode | Permission | Auto-Invoke Safe | Use For |
@@ -284,7 +298,7 @@ Proactively invoke `maestro delegate` when these conditions are met — no user
284
298
 
285
299
  - Default `--mode analysis` (safe, read-only)
286
300
  - Always `Bash(run_in_background: true)` — stop immediately, wait for callback
287
- - Tool fallback: `gemini` `qwen` `codex`
301
+ - Use `--role` for capability-based tool selection; fallback chain is config-driven
288
302
  - Rule suggestions are guidelines — choose the best fit
289
303
  - Use `inject` for supplementary context mid-execution; `after_complete` for chained multi-step tasks
290
304
  </execution>