maestro-flow 0.5.37 → 0.5.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/maestro/SKILL.md +11 -5
- package/.agents/skills/maestro-ralph/SKILL.md +80 -12
- package/.agents/skills/maestro-ralph-execute/SKILL.md +17 -6
- package/.agents/skills/manage-drift-realign/SKILL.md +153 -0
- package/.agents/skills/odyssey-debug/SKILL.md +90 -269
- package/.agents/skills/odyssey-improve/SKILL.md +39 -240
- package/.agents/skills/odyssey-planex/SKILL.md +21 -105
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +98 -318
- package/.agents/skills/odyssey-ui/SKILL.md +82 -265
- package/.agy/skills/maestro/SKILL.md +11 -5
- package/.agy/skills/maestro-ralph/SKILL.md +80 -12
- package/.agy/skills/maestro-ralph-execute/SKILL.md +17 -6
- package/.agy/skills/manage-drift-realign/SKILL.md +153 -0
- package/.agy/skills/odyssey-debug/SKILL.md +90 -269
- package/.agy/skills/odyssey-improve/SKILL.md +39 -240
- package/.agy/skills/odyssey-planex/SKILL.md +21 -105
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +98 -318
- package/.agy/skills/odyssey-ui/SKILL.md +82 -265
- package/.claude/commands/maestro-ralph-execute.md +17 -6
- package/.claude/commands/maestro-ralph.md +80 -12
- package/.claude/commands/maestro.md +11 -5
- package/.claude/commands/manage-drift-realign.md +151 -0
- package/.claude/commands/odyssey-debug.md +90 -269
- package/.claude/commands/odyssey-improve.md +39 -240
- package/.claude/commands/odyssey-planex.md +21 -105
- package/.claude/commands/odyssey-review-test-fix.md +98 -318
- package/.claude/commands/odyssey-ui.md +82 -265
- package/.codex/skills/maestro/SKILL.md +16 -8
- package/.codex/skills/maestro-ralph/SKILL.md +138 -11
- package/.codex/skills/maestro-ralph-execute/SKILL.md +17 -6
- package/.codex/skills/manage-drift-realign/SKILL.md +471 -0
- package/.codex/skills/odyssey-debug/SKILL.md +167 -338
- package/.codex/skills/odyssey-improve/SKILL.md +226 -395
- package/.codex/skills/odyssey-planex/SKILL.md +317 -159
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +137 -255
- package/.codex/skills/odyssey-ui/SKILL.md +197 -338
- package/README.md +25 -8
- package/README.zh-CN.md +6 -6
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.d.ts +23 -2
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js +242 -26
- package/dashboard/dist-server/dashboard/src/server/wiki/embedding.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +92 -29
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/src/commands/hooks.d.ts +2 -1
- package/dashboard/dist-server/src/commands/hooks.js +16 -9
- package/dashboard/dist-server/src/commands/hooks.js.map +1 -1
- package/dashboard/dist-server/src/commands/install-backend.d.ts +10 -0
- package/dashboard/dist-server/src/commands/install-backend.js +69 -0
- package/dashboard/dist-server/src/commands/install-backend.js.map +1 -1
- package/dashboard/dist-server/src/core/component-defs.d.ts +11 -0
- package/dashboard/dist-server/src/core/component-defs.js +34 -2
- package/dashboard/dist-server/src/core/component-defs.js.map +1 -1
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js +5 -0
- package/dashboard/dist-server/src/hooks/kg-sync-hook.js.map +1 -1
- package/dashboard/dist-server/src/hooks/session-context.js +276 -3
- package/dashboard/dist-server/src/hooks/session-context.js.map +1 -1
- package/dashboard/dist-server/src/search/daemon-client.d.ts +8 -3
- package/dashboard/dist-server/src/search/daemon-client.js +20 -0
- package/dashboard/dist-server/src/search/daemon-client.js.map +1 -1
- package/dist/src/cli.js +3 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/domain.d.ts.map +1 -1
- package/dist/src/commands/domain.js +12 -3
- package/dist/src/commands/domain.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +2 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +16 -9
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-backend.d.ts +10 -0
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +69 -0
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/commands/install.js +34 -2
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/ralph.d.ts.map +1 -1
- package/dist/src/commands/ralph.js +8 -0
- package/dist/src/commands/ralph.js.map +1 -1
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +59 -6
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +15 -0
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/timeline.d.ts +14 -0
- package/dist/src/commands/timeline.d.ts.map +1 -0
- package/dist/src/commands/timeline.js +377 -0
- package/dist/src/commands/timeline.js.map +1 -0
- package/dist/src/core/component-defs.d.ts +11 -0
- package/dist/src/core/component-defs.d.ts.map +1 -1
- package/dist/src/core/component-defs.js +34 -2
- package/dist/src/core/component-defs.js.map +1 -1
- package/dist/src/core/install-executor.d.ts.map +1 -1
- package/dist/src/core/install-executor.js +11 -1
- package/dist/src/core/install-executor.js.map +1 -1
- package/dist/src/core/install-profile.d.ts.map +1 -1
- package/dist/src/core/install-profile.js +52 -17
- package/dist/src/core/install-profile.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +5 -0
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/session-context.d.ts.map +1 -1
- package/dist/src/hooks/session-context.js +276 -3
- package/dist/src/hooks/session-context.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +4 -1
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +4 -1
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +3 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/ralph/cmd-complete.d.ts +4 -0
- package/dist/src/ralph/cmd-complete.d.ts.map +1 -1
- package/dist/src/ralph/cmd-complete.js +8 -0
- package/dist/src/ralph/cmd-complete.js.map +1 -1
- package/dist/src/ralph/cmd-next.js +58 -8
- package/dist/src/ralph/cmd-next.js.map +1 -1
- package/dist/src/ralph/status-schema.d.ts +29 -2
- package/dist/src/ralph/status-schema.d.ts.map +1 -1
- package/dist/src/ralph/status-schema.js +1 -1
- package/dist/src/search/daemon-client.d.ts +8 -3
- package/dist/src/search/daemon-client.d.ts.map +1 -1
- package/dist/src/search/daemon-client.js +20 -0
- package/dist/src/search/daemon-client.js.map +1 -1
- package/dist/src/search/daemon.d.ts +3 -3
- package/dist/src/search/daemon.d.ts.map +1 -1
- package/dist/src/search/daemon.js +9 -3
- package/dist/src/search/daemon.js.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.js +71 -38
- package/dist/src/tui/install-ui/ComponentGrid.js.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts +12 -3
- package/dist/src/tui/install-ui/ComponentGrid.logic.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ComponentGrid.logic.js +21 -4
- package/dist/src/tui/install-ui/ComponentGrid.logic.js.map +1 -1
- package/dist/src/tui/install-ui/CyberItem.d.ts +3 -1
- package/dist/src/tui/install-ui/CyberItem.d.ts.map +1 -1
- package/dist/src/tui/install-ui/CyberItem.js +6 -5
- package/dist/src/tui/install-ui/CyberItem.js.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.d.ts +9 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.js +54 -47
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +54 -5
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +1 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +8 -2
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.js +145 -15
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -1
- package/dist/src/utils/update-notices.js +12 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +1 -1
- package/workflows/agy-instructions.md +127 -88
- package/workflows/analyze.md +2 -2
- package/workflows/auto-test.md +7 -1
- package/workflows/blueprint.md +22 -19
- package/workflows/brainstorm.md +11 -3
- package/workflows/business-test.md +4 -0
- package/workflows/codebase-rebuild.md +8 -1
- package/workflows/codebase-refresh.md +7 -1
- package/workflows/codex-instructions.md +1 -1
- package/workflows/debug.md +5 -2
- package/workflows/domain-add.md +6 -0
- package/workflows/drift-realign.md +396 -0
- package/workflows/execute.md +5 -4
- package/workflows/explore-usage.md +2 -2
- package/workflows/finish-work.md +6 -6
- package/workflows/fork.md +2 -2
- package/workflows/grill.md +6 -5
- package/workflows/harvest.md +2 -2
- package/workflows/impeccable.md +3 -2
- package/workflows/init.md +7 -7
- package/workflows/integration-test.md +1 -0
- package/workflows/issue-gaps-analyze.codex.md +2 -0
- package/workflows/issue-gaps-analyze.md +4 -4
- package/workflows/issue-plan.md +1 -1
- package/workflows/knowhow.md +7 -1
- package/workflows/knowledge-audit.md +1 -1
- package/workflows/maestro-super.md +2 -2
- package/workflows/maestro.md +3 -3
- package/workflows/map.md +2 -2
- package/workflows/milestone-audit.md +1 -1
- package/workflows/milestone-complete.md +1 -1
- package/workflows/odyssey-base.md +258 -0
- package/workflows/plan.md +7 -6
- package/workflows/quick.md +8 -6
- package/workflows/ralph-amend-goal.md +177 -0
- package/workflows/refactor.md +2 -0
- package/workflows/retrospective.md +7 -3
- package/workflows/review.md +6 -4
- package/workflows/roadmap-common.md +3 -3
- package/workflows/roadmap.md +8 -5
- package/workflows/spec-generate.md +23 -18
- package/workflows/specs-load.md +1 -1
- package/workflows/specs-setup.md +2 -0
- package/workflows/sync.md +4 -2
- package/workflows/test-gen.md +1 -1
- package/workflows/test.md +1 -1
- package/workflows/ui-codify-extract.md +1 -0
- package/workflows/ui-codify-knowhow.md +1 -1
- package/workflows/ui-codify-package.md +1 -1
- package/workflows/ui-codify.md +9 -7
- package/workflows/ui-design.md +9 -7
- package/workflows/ui-style.md +6 -4
- package/workflows/verify.md +4 -4
- package/workflows/wiki-connect.md +2 -0
- package/workflows/wiki-digest.md +5 -3
- package/workflows/wiki-manage.md +4 -0
- package/workflows/maestro.codex.md +0 -365
package/workflows/ui-design.md
CHANGED
|
@@ -124,7 +124,7 @@ python3 "${SKILL_PATH}" "accessibility animation interaction" --domain ux
|
|
|
124
124
|
#### 3b. Generate design direction options via ui-design-agent
|
|
125
125
|
|
|
126
126
|
```
|
|
127
|
-
Agent(ui-design-agent): [DESIGN_DIRECTION_GENERATION]
|
|
127
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [DESIGN_DIRECTION_GENERATION]
|
|
128
128
|
|
|
129
129
|
Generate ${styleCount} maximally contrasting design directions (min 6D distance: 0.7).
|
|
130
130
|
|
|
@@ -152,7 +152,7 @@ Update `analysis-options.json` with `user_selection` field.
|
|
|
152
152
|
For each selected direction, spawn ui-design-agent:
|
|
153
153
|
|
|
154
154
|
```
|
|
155
|
-
Agent(ui-design-agent): [DESIGN_SYSTEM_GENERATION #${variant_index}]
|
|
155
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [DESIGN_SYSTEM_GENERATION #${variant_index}]
|
|
156
156
|
|
|
157
157
|
Generate production-ready design tokens from selected direction.
|
|
158
158
|
Map 6D attributes to token values:
|
|
@@ -200,7 +200,7 @@ Requirements: ALL colors OKLCH, WCAG AA (4.5:1 text, 3:1 UI), complete combinati
|
|
|
200
200
|
**Purpose:** Generate animation system complementing the selected styles.
|
|
201
201
|
|
|
202
202
|
```
|
|
203
|
-
Agent(ui-design-agent): [ANIMATION_SYSTEM_GENERATION]
|
|
203
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [ANIMATION_SYSTEM_GENERATION]
|
|
204
204
|
|
|
205
205
|
Input: selected variant's design-tokens.json (mood/weight context) + ui-ux-pro-max UX data.
|
|
206
206
|
Output: ${PHASE_DIR}/design-ref/animation-tokens.json
|
|
@@ -227,7 +227,7 @@ Requirements: CSS custom properties, prefers-reduced-motion mandatory, var() ref
|
|
|
227
227
|
#### 5a. Generate layout concept options
|
|
228
228
|
|
|
229
229
|
```
|
|
230
|
-
Agent(ui-design-agent): [LAYOUT_CONCEPT_GENERATION]
|
|
230
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [LAYOUT_CONCEPT_GENERATION]
|
|
231
231
|
|
|
232
232
|
Generate ${layoutCount} structurally distinct layout concepts per target.
|
|
233
233
|
Concepts must differ in: grid structure, component arrangement, visual hierarchy, navigation pattern.
|
|
@@ -249,7 +249,7 @@ Update analysis-options.json with `user_selection.selected_variants`.
|
|
|
249
249
|
For each selected concept × target:
|
|
250
250
|
|
|
251
251
|
```
|
|
252
|
-
Agent(ui-design-agent): [LAYOUT_TEMPLATE_GENERATION -- ${target} variant ${variant_id}]
|
|
252
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [LAYOUT_TEMPLATE_GENERATION -- ${target} variant ${variant_id}]
|
|
253
253
|
|
|
254
254
|
Structure ONLY, no visual style. Output: ${PHASE_DIR}/design-ref/layout-templates/layout-${target}-${variant_id}.json
|
|
255
255
|
|
|
@@ -267,6 +267,8 @@ Schema:
|
|
|
267
267
|
Rules: semantic HTML5, ARIA roles, var() refs only (no hard-coded values), mobile-first responsive. NO colors/fonts/shadows.
|
|
268
268
|
```
|
|
269
269
|
|
|
270
|
+
GATE Step 5→6: design-tokens.json + animation-tokens.json + layout-templates exist BEFORE assembly; BLOCKED if any missing
|
|
271
|
+
|
|
270
272
|
---
|
|
271
273
|
|
|
272
274
|
### Step 6: Assemble HTML Prototypes (Layer 4 — Assembly)
|
|
@@ -276,7 +278,7 @@ Rules: semantic HTML5, ARIA roles, var() refs only (no hard-coded values), mobil
|
|
|
276
278
|
For each `style × layout × target` combination, spawn ui-design-agent:
|
|
277
279
|
|
|
278
280
|
```
|
|
279
|
-
Agent(ui-design-agent): [PROTOTYPE_ASSEMBLY -- ${target}-style-${s}-layout-${l}]
|
|
281
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Agent(ui-design-agent): [PROTOTYPE_ASSEMBLY -- ${target}-style-${s}-layout-${l}]
|
|
280
282
|
|
|
281
283
|
Pure assembly: combine pre-extracted structure + tokens. NO design decisions.
|
|
282
284
|
|
|
@@ -375,7 +377,7 @@ Spacing & Layout, Effects & Interactions, Component Styles, Animation System, An
|
|
|
375
377
|
| Python not found | Abort with install instructions per OS |
|
|
376
378
|
| ui-ux-pro-max not found | Abort, suggest skill installation |
|
|
377
379
|
| Design system returns empty | Retry with broader keywords, then abort |
|
|
378
|
-
| Prototype agent fails | Log error, continue with other variants |
|
|
380
|
+
| Prototype agent fails | Log error, continue with other variants; flag variants as [LOW CONFIDENCE] (prototype agent failed) |
|
|
379
381
|
| User cancels selection | Save all variants as-is, exit without MASTER.md |
|
|
380
382
|
| --refine without existing design-ref | Error E004 |
|
|
381
383
|
|
package/workflows/ui-style.md
CHANGED
|
@@ -94,6 +94,8 @@ Save variants to `${PHASE_DIR}/design-ref/prototypes/variant-{N}-system.md`.
|
|
|
94
94
|
Display each variant summary (pattern, colors, typography, effects, anti-patterns).
|
|
95
95
|
User selects: [1-N | "redo" | "all"]. Auto mode selects variant 1.
|
|
96
96
|
|
|
97
|
+
GATE Step 3→4: selected variant confirmed BEFORE solidification; BLOCKED if no variant selected
|
|
98
|
+
|
|
97
99
|
---
|
|
98
100
|
|
|
99
101
|
### Step 4: Solidify Selected Design
|
|
@@ -109,7 +111,7 @@ python3 "${SKILL_PATH}" "${selected_variant_keywords}" --design-system --persist
|
|
|
109
111
|
|
|
110
112
|
#### 4b. Generate design-tokens.json
|
|
111
113
|
|
|
112
|
-
Spawn agent to extract structured tokens from MASTER.md into `${PHASE_DIR}/design-ref/design-tokens.json`.
|
|
114
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Spawn agent to extract structured tokens from MASTER.md into `${PHASE_DIR}/design-ref/design-tokens.json`.
|
|
113
115
|
|
|
114
116
|
**Token schema keys:** colors (brand/surface/semantic/text/border in OKLCH), typography (family/size/weight/line_height/combinations), spacing, border_radius, shadows, component_styles (button/card/input), breakpoints.
|
|
115
117
|
|
|
@@ -117,7 +119,7 @@ Spawn agent to extract structured tokens from MASTER.md into `${PHASE_DIR}/desig
|
|
|
117
119
|
|
|
118
120
|
#### 4c. Generate animation-tokens.json
|
|
119
121
|
|
|
120
|
-
Spawn agent to generate `${PHASE_DIR}/design-ref/animation-tokens.json` from design-tokens + MASTER.md.
|
|
122
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Spawn agent to generate `${PHASE_DIR}/design-ref/animation-tokens.json` from design-tokens + MASTER.md.
|
|
121
123
|
|
|
122
124
|
**Token schema keys:** duration (instant-slower), easing (ease-out/ease-in-out/spring), transitions, keyframes, interactions (hover states), reduced_motion (prefers-reduced-motion strategy).
|
|
123
125
|
|
|
@@ -140,7 +142,7 @@ Copy `design-system/MASTER.md` and `design-system/pages/*.md` (if generated) to
|
|
|
140
142
|
|
|
141
143
|
#### 4f. Optional: Generate HTML prototype
|
|
142
144
|
|
|
143
|
-
For each target, spawn agent to create `${PHASE_DIR}/design-ref/prototypes/${target}.html` from design-tokens + animation-tokens + MASTER.md.
|
|
145
|
+
For each target, MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: spawn agent to create `${PHASE_DIR}/design-ref/prototypes/${target}.html` from design-tokens + animation-tokens + MASTER.md.
|
|
144
146
|
|
|
145
147
|
**Rules:** standalone HTML with embedded CSS, realistic content (not lorem ipsum), SVG icons (Heroicons/Lucide CDN), cursor-pointer on clickables, responsive (375/768/1024px), WCAG AA, prefers-reduced-motion.
|
|
146
148
|
|
|
@@ -185,7 +187,7 @@ Same as ui-design.md — plan.md Step 4b detects `design-ref/MASTER.md` and incl
|
|
|
185
187
|
| Error | Action |
|
|
186
188
|
|-------|--------|
|
|
187
189
|
| ui-ux-pro-max returns empty | Retry with broader keywords, then abort |
|
|
188
|
-
| Token extraction agent fails | Retry once, warn if still fails |
|
|
190
|
+
| Token extraction agent fails | Retry once, warn if still fails; if still fails, mark design-tokens.json as [LOW CONFIDENCE] (token extraction agent failed) |
|
|
189
191
|
| User cancels selection | Save all variants, exit without solidification |
|
|
190
192
|
|
|
191
193
|
---
|
package/workflows/verify.md
CHANGED
|
@@ -405,7 +405,7 @@ For each success criterion / must-have truth:
|
|
|
405
405
|
|
|
406
406
|
### Step 4: Spawn Auditor Agent (if gaps found)
|
|
407
407
|
|
|
408
|
-
Spawn workflow-nyquist-auditor agent with gap list, test infrastructure, and phase context.
|
|
408
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Spawn workflow-nyquist-auditor agent with gap list, test infrastructure, and phase context.
|
|
409
409
|
Agent generates missing tests and returns:
|
|
410
410
|
- GAPS FILLED -> record new tests
|
|
411
411
|
- PARTIAL -> record resolved, escalate remainder
|
|
@@ -540,10 +540,10 @@ Next steps:
|
|
|
540
540
|
|-------|--------|
|
|
541
541
|
| Phase directory not found | Abort: "Phase {phase} not found." |
|
|
542
542
|
| No execution results | Abort: "No completed tasks found. Run /workflow:execute first." |
|
|
543
|
-
| No summaries found | Warn, proceed with task file analysis only |
|
|
543
|
+
| No summaries found | Warn, proceed with task file analysis only; flag verification.json as [LOW CONFIDENCE] (partial, summaries missing) |
|
|
544
544
|
| Test framework not detected | Skip coverage calculation, warn user |
|
|
545
|
-
| Coverage command fails | Log error, proceed with requirement mapping only |
|
|
546
|
-
| Verifier agent fails | Retry once, then write partial verification.json |
|
|
545
|
+
| Coverage command fails | Log error, proceed with requirement mapping only; flag validation.json coverage as [LOW CONFIDENCE] (partial, coverage command failed) |
|
|
546
|
+
| Verifier agent fails | Retry once, then write partial verification.json; flag verification.json as [LOW CONFIDENCE] (partial, verifier agent failed) |
|
|
547
547
|
|
|
548
548
|
---
|
|
549
549
|
|
|
@@ -39,6 +39,8 @@ Knowledge graph link discovery and health improvement. Analyzes the unified wiki
|
|
|
39
39
|
|
|
40
40
|
Gather baseline in parallel via `maestro wiki list --json`, `health`, `orphans`, `hubs --top 10`.
|
|
41
41
|
|
|
42
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: graph operations (`orphans`, `hubs --top 10`) — use the `maestro wiki` CLI to compute in-degree and orphan sets.
|
|
43
|
+
|
|
42
44
|
Working state: entry count by type, baseline health score, orphan IDs, hub in-degree counts.
|
|
43
45
|
|
|
44
46
|
Apply `--scope` filter if provided — restrict all subsequent analysis to matching type.
|
package/workflows/wiki-digest.md
CHANGED
|
@@ -74,8 +74,8 @@ Synthesize what these entries collectively teach. Focus on the knowledge pattern
|
|
|
74
74
|
|
|
75
75
|
### Key Entries
|
|
76
76
|
Top 3-5 most important entries by:
|
|
77
|
-
- Hub score (in-degree from `maestro wiki hubs`)
|
|
78
|
-
- Backlink count (from `maestro wiki backlinks <id>`)
|
|
77
|
+
- MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Hub score (in-degree from `maestro wiki hubs`)
|
|
78
|
+
- MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: Backlink count (from `maestro wiki backlinks <id>`)
|
|
79
79
|
- Recency (recently updated entries weigh more)
|
|
80
80
|
|
|
81
81
|
### Gap Detection
|
|
@@ -93,7 +93,7 @@ Per-theme health adapted from wiki health formula (entries, connectivity, comple
|
|
|
93
93
|
|
|
94
94
|
Search via `maestro wiki search` or parse `.workflow/specs/learnings.md` for keyword matches against each theme. Flag **unlinked insights** — learning entries matching a theme but not referenced by any wiki entry in that theme.
|
|
95
95
|
|
|
96
|
-
If `learnings.md` not found, skip with W002 warning.
|
|
96
|
+
If `learnings.md` not found, skip with W002 warning; mark digest cross-reference as [LOW CONFIDENCE] (learnings.md missing).
|
|
97
97
|
|
|
98
98
|
---
|
|
99
99
|
|
|
@@ -152,6 +152,8 @@ Produce `.workflow/knowhow/KNW-digest-{slug}-{YYYY-MM-DD}.md`:
|
|
|
152
152
|
|
|
153
153
|
---
|
|
154
154
|
|
|
155
|
+
GATE Stage 6→7: gaps identified BEFORE issue routing; BLOCKED if no gaps identified in Stage 5
|
|
156
|
+
|
|
155
157
|
## Stage 7: Gap → Issue Routing (if --create-issues)
|
|
156
158
|
|
|
157
159
|
For each knowledge gap from Stage 5: dedup against `.workflow/issues/issues.jsonl` (same theme + type). If new, append with `type: "knowledge-gap"`, `status: "open"`, `severity: "low"`, `source: "wiki-digest"`, `tags: ["knowledge-gap", "{theme-slug}"]`. Report created count.
|
package/workflows/wiki-manage.md
CHANGED
|
@@ -40,6 +40,8 @@ Complements `wiki-connect.md` (link discovery) and `wiki-digest.md` (synthesis)
|
|
|
40
40
|
|
|
41
41
|
Run in parallel: `maestro wiki health`, `list --json`, `orphans`, `hubs --top 5`.
|
|
42
42
|
|
|
43
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: graph operations (`orphans`, `hubs --top 5`) — use the `maestro wiki` CLI to compute orphan sets and hub in-degree.
|
|
44
|
+
|
|
43
45
|
### Step 2: Render Dashboard
|
|
44
46
|
|
|
45
47
|
Display: health score, entry counts by type, broken links, orphan count, top hubs. Include health status message and quick-action commands (`/wiki-connect --fix`, `/wiki-digest`, `/manage-wiki cleanup --fix`, `maestro wiki graph`).
|
|
@@ -72,6 +74,8 @@ If not `--json`: offer to view an entry by number selection.
|
|
|
72
74
|
|
|
73
75
|
Gather baseline via `maestro wiki health`, `orphans --json`, `graph`.
|
|
74
76
|
|
|
77
|
+
MANDATORY, NOT SUBSTITUTABLE by manual Read/Grep: graph operations (`orphans --json`, `graph`) — use the `maestro wiki` CLI to compute orphans and graph topology.
|
|
78
|
+
|
|
75
79
|
### Step 2: Categorize Issues
|
|
76
80
|
|
|
77
81
|
| Issue Type | Detection | Auto-fix Action |
|
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
# Workflow: Maestro (Codex Edition)
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Step 1: Parse Arguments
|
|
6
|
-
|
|
7
|
-
Extract from `$ARGUMENTS`:
|
|
8
|
-
- Flags: `-y`/`--yes` (AUTO_YES), `-c`/`--continue` (RESUME), `--dry-run`, `--chain <name>`
|
|
9
|
-
- `intent` = remaining text after flag removal
|
|
10
|
-
|
|
11
|
-
**Resume mode**: If RESUME, load latest `.workflow/.maestro/maestro-*/status.json`, set `current_step` to first pending step, jump to **Step 6**.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Step 2: Read Project State
|
|
16
|
-
|
|
17
|
-
Read `.workflow/state.json` if present. Derive `projectState`:
|
|
18
|
-
- `current_phase`: first in-progress execute artifact, else first phase without completed execute
|
|
19
|
-
- Fields: `phase_slug`, `phase_status` (pending|exploring|planning|executing|verifying|testing|completed|blocked), `phase_artifacts`, `execution` (tasks_completed/total), `verification_status`, `review_verdict`, `uat_status`, `phases_total/completed`, `has_blockers`, `accumulated_context`
|
|
20
|
-
|
|
21
|
-
If not initialized and no intent → Error E001.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Step 3: Classify Intent & Select Chain
|
|
26
|
-
|
|
27
|
-
### 3a: Exact-match keywords (fast path)
|
|
28
|
-
|
|
29
|
-
If `forceChain` is set → validate against chainMap and jump to **3c**.
|
|
30
|
-
|
|
31
|
-
Exact-match keywords: `continue`/`next`/`go`/`继续`/`下一步` → `state_continue`; `status`/`状态`/`dashboard` → `status`. If matched, skip to **3c**.
|
|
32
|
-
|
|
33
|
-
### 3a-2: Structured intent extraction (LLM-native)
|
|
34
|
-
|
|
35
|
-
Instead of regex, extract a structured intent tuple using LLM semantic understanding:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{
|
|
39
|
-
"action": "<create|fix|analyze|plan|execute|review|test|debug|refactor|explore|manage|transition|continue|sync|learn|retrospect>",
|
|
40
|
-
"object": "<feature|bug|issue|code|test|spec|phase|milestone|doc|performance|security|ui|memory|codebase|config>",
|
|
41
|
-
"scope": "<module/file/area or null>",
|
|
42
|
-
"issue_id": "<ISS-XXXXXXXX-NNN if mentioned, else null>",
|
|
43
|
-
"phase_ref": "<integer if mentioned, else null>",
|
|
44
|
-
"urgency": "<low|normal|high>"
|
|
45
|
-
}
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**Key disambiguation**: "问题"/"issue"/"problem" as something broken → `object: "bug"` (routes to debug). As a tracked item (with ISS-ID or management context) → `object: "issue"` (routes to issue management). When ambiguous, prefer `"bug"`.
|
|
49
|
-
|
|
50
|
-
### 3a-3: Route via action × object matrix
|
|
51
|
-
|
|
52
|
-
Route via `action × object` matrix. If `issue_id` present → issue pipeline directly.
|
|
53
|
-
|
|
54
|
-
| action | object-specific overrides | default |
|
|
55
|
-
|--------|--------------------------|---------|
|
|
56
|
-
| fix | bug/code/perf/security→debug, issue→issue | debug |
|
|
57
|
-
| create | feature→quick, issue→issue, test→test_gen, spec→spec_generate, ui→ui_design, config→init | quick |
|
|
58
|
-
| analyze | bug/code→analyze, issue→issue_analyze, codebase→spec_map | analyze |
|
|
59
|
-
| explore | issue→issue_discover, feature/ui→brainstorm/ui_design | brainstorm |
|
|
60
|
-
| plan | issue→issue_plan, spec→spec_generate | plan |
|
|
61
|
-
| execute | issue→issue_execute | execute |
|
|
62
|
-
| manage | issue→issue, milestone→milestone_audit, phase→phase_transition, memory/doc/codebase→memory/sync/codebase_refresh | status |
|
|
63
|
-
| transition | phase→phase_transition, milestone→milestone_complete | phase_transition |
|
|
64
|
-
| review, test, debug, refactor, continue, sync, learn, retrospect, release, amend, compose | — | self-named |
|
|
65
|
-
|
|
66
|
-
**Clarity scoring**: 3 = action+object+scope, 2 = action+object, 1 = action only, 0 = empty.
|
|
67
|
-
If `clarity < 2` and not `AUTO_YES`: request user input (max 2 rounds).
|
|
68
|
-
|
|
69
|
-
### 3b: State-based routing (when `taskType === 'state_continue'`)
|
|
70
|
-
|
|
71
|
-
Returns `{ chain, argsOverride? }`. Steps resolved from `chainMap[chain]`.
|
|
72
|
-
|
|
73
|
-
| Condition | Chain |
|
|
74
|
-
|-----------|-------|
|
|
75
|
-
| Not initialized | `init` |
|
|
76
|
-
| No phases, no roadmap, has accumulated_context | `next-milestone` (with deferred/decisions context) |
|
|
77
|
-
| No phases | `brainstorm-driven` |
|
|
78
|
-
| pending + has context | `plan` |
|
|
79
|
-
| pending, no context | `analyze` |
|
|
80
|
-
| exploring/planning + has plan | `execute` |
|
|
81
|
-
| exploring/planning, no plan | `plan` |
|
|
82
|
-
| executing, all tasks done | `review` |
|
|
83
|
-
| executing, tasks remain | `execute` |
|
|
84
|
-
| exec completed + no review | `review` |
|
|
85
|
-
| exec completed + review BLOCK | `review-fix` |
|
|
86
|
-
| exec completed + UAT pending | `test` |
|
|
87
|
-
| exec completed + UAT passed | `milestone-close` |
|
|
88
|
-
| exec completed + UAT failed | `debug` |
|
|
89
|
-
| testing, UAT passed | `milestone-close` |
|
|
90
|
-
| testing, UAT not passed | `debug` |
|
|
91
|
-
| completed | `milestone-close` |
|
|
92
|
-
| blocked | `debug` |
|
|
93
|
-
| fallback | `status` |
|
|
94
|
-
|
|
95
|
-
### 3c: Intent-based chain map
|
|
96
|
-
|
|
97
|
-
```javascript
|
|
98
|
-
const chainMap = {
|
|
99
|
-
// ── Single-step ──────────────────────────────────────────────────────────
|
|
100
|
-
'status': [{ cmd: 'manage-status' }],
|
|
101
|
-
'init': [{ cmd: 'maestro-init' }],
|
|
102
|
-
'analyze': [{ cmd: 'maestro-analyze', args: '{phase}' }],
|
|
103
|
-
'ui_design': [{ cmd: 'maestro-impeccable', args: '"{phase}" --chain build' }],
|
|
104
|
-
'plan': [{ cmd: 'maestro-plan', args: '{phase}' }],
|
|
105
|
-
'execute': [{ cmd: 'maestro-execute', args: '{phase}' }],
|
|
106
|
-
'test_gen': [{ cmd: 'quality-auto-test', args: '{phase}' }],
|
|
107
|
-
'auto_test': [{ cmd: 'quality-auto-test', args: '{phase}' }],
|
|
108
|
-
'test': [{ cmd: 'quality-test', args: '{phase}' }],
|
|
109
|
-
'debug': [{ cmd: 'quality-debug', args: '"{description}"' }],
|
|
110
|
-
'integration_test': [{ cmd: 'quality-auto-test', args: '{phase}' }],
|
|
111
|
-
'refactor': [{ cmd: 'quality-refactor', args: '"{description}"' }],
|
|
112
|
-
'review': [{ cmd: 'quality-review', args: '{phase}' }],
|
|
113
|
-
'retrospective': [{ cmd: 'quality-retrospective', args: '{phase}' }],
|
|
114
|
-
'learn': [{ cmd: 'manage-learn', args: '"{description}"' }],
|
|
115
|
-
'sync': [{ cmd: 'quality-sync' }],
|
|
116
|
-
'phase_transition': [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }],
|
|
117
|
-
'milestone_audit': [{ cmd: 'maestro-milestone-audit' }],
|
|
118
|
-
'milestone_complete': [{ cmd: 'maestro-milestone-complete' }],
|
|
119
|
-
'codebase_rebuild': [{ cmd: 'manage-codebase-rebuild' }],
|
|
120
|
-
'codebase_refresh': [{ cmd: 'manage-codebase-refresh' }],
|
|
121
|
-
'spec_setup': [{ cmd: 'spec-setup' }],
|
|
122
|
-
'spec_add': [{ cmd: 'spec-add', args: '"{description}"' }],
|
|
123
|
-
'spec_load': [{ cmd: 'spec-load' }],
|
|
124
|
-
'spec_map': [{ cmd: 'manage-codebase-rebuild' }],
|
|
125
|
-
'knowhow_capture': [{ cmd: 'manage-knowhow-capture', args: '"{description}"' }],
|
|
126
|
-
'knowhow': [{ cmd: 'manage-knowhow', args: '"{description}"' }],
|
|
127
|
-
'issue': [{ cmd: 'manage-issue', args: '"{description}"' }],
|
|
128
|
-
'issue_discover': [{ cmd: 'manage-issue-discover', args: '"{description}"' }],
|
|
129
|
-
'issue_analyze': [{ cmd: 'maestro-analyze', args: '--gaps "{description}"' }],
|
|
130
|
-
'issue_plan': [{ cmd: 'maestro-plan', args: '--gaps' }],
|
|
131
|
-
'issue_execute': [{ cmd: 'maestro-execute', args: '' }],
|
|
132
|
-
'quick': [{ cmd: 'maestro-quick', args: '"{description}"' }],
|
|
133
|
-
// ── Multi-step chains ────────────────────────────────────────────────────
|
|
134
|
-
'spec-driven': [
|
|
135
|
-
{ cmd: 'maestro-init' },
|
|
136
|
-
{ cmd: 'maestro-roadmap', args: '--mode full "{description}"' },
|
|
137
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
138
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
139
|
-
],
|
|
140
|
-
'brainstorm-driven': [
|
|
141
|
-
{ cmd: 'maestro-brainstorm', args: '"{description}"' },
|
|
142
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
143
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
144
|
-
],
|
|
145
|
-
'impeccable-build': [
|
|
146
|
-
{ cmd: 'maestro-impeccable', args: '"{phase}" --chain build' },
|
|
147
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
148
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
149
|
-
],
|
|
150
|
-
'full-lifecycle': [
|
|
151
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
152
|
-
{ cmd: 'maestro-execute', args: '{phase}' },
|
|
153
|
-
{ cmd: 'quality-review', args: '{phase}' },
|
|
154
|
-
{ cmd: 'quality-test', args: '{phase}' },
|
|
155
|
-
{ cmd: 'maestro-milestone-audit' },
|
|
156
|
-
{ cmd: 'maestro-milestone-complete' }
|
|
157
|
-
],
|
|
158
|
-
'quality-loop': [
|
|
159
|
-
{ cmd: 'quality-review', args: '{phase}' },
|
|
160
|
-
{ cmd: 'quality-test', args: '{phase}' },
|
|
161
|
-
{ cmd: 'quality-debug', args: '--from-uat {phase}' },
|
|
162
|
-
{ cmd: 'maestro-plan', args: '{phase} --gaps' },
|
|
163
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
164
|
-
],
|
|
165
|
-
'milestone-close': [
|
|
166
|
-
{ cmd: 'maestro-milestone-audit' },
|
|
167
|
-
{ cmd: 'maestro-milestone-complete' }
|
|
168
|
-
],
|
|
169
|
-
'roadmap-driven': [
|
|
170
|
-
{ cmd: 'maestro-init' },
|
|
171
|
-
{ cmd: 'maestro-roadmap', args: '"{description}"' },
|
|
172
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
173
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
174
|
-
],
|
|
175
|
-
'next-milestone': [
|
|
176
|
-
{ cmd: 'maestro-roadmap', args: '"{description}"' },
|
|
177
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
178
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
179
|
-
],
|
|
180
|
-
'analyze-plan-execute': [
|
|
181
|
-
{ cmd: 'maestro-analyze', args: '"{description}" -q' },
|
|
182
|
-
{ cmd: 'maestro-plan', args: '--dir {scratch_dir}' },
|
|
183
|
-
{ cmd: 'maestro-execute', args: '--dir {scratch_dir}' }
|
|
184
|
-
],
|
|
185
|
-
|
|
186
|
-
// ── SKILL.md simplified aliases (--chain <name> shortcuts) ───────────────
|
|
187
|
-
'feature': [
|
|
188
|
-
{ cmd: 'maestro-plan', args: '{phase}' },
|
|
189
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
190
|
-
],
|
|
191
|
-
'quality-fix': [
|
|
192
|
-
{ cmd: 'maestro-analyze', args: '--gaps "{description}"' },
|
|
193
|
-
{ cmd: 'maestro-plan', args: '--gaps' },
|
|
194
|
-
{ cmd: 'maestro-execute', args: '' }
|
|
195
|
-
],
|
|
196
|
-
'deploy': [
|
|
197
|
-
{ cmd: 'maestro-execute', args: '{phase}' },
|
|
198
|
-
{ cmd: 'maestro-milestone-release' }
|
|
199
|
-
],
|
|
200
|
-
|
|
201
|
-
// ── Issue lifecycle chains (with quality gates) ────────────────────────────
|
|
202
|
-
'issue-full': [
|
|
203
|
-
{ cmd: 'maestro-analyze', args: '--gaps {issue_id}' },
|
|
204
|
-
{ cmd: 'maestro-plan', args: '--gaps' },
|
|
205
|
-
{ cmd: 'maestro-execute', args: '' },
|
|
206
|
-
{ cmd: 'quality-review', args: '{phase}' },
|
|
207
|
-
{ cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }
|
|
208
|
-
],
|
|
209
|
-
'issue-quick': [
|
|
210
|
-
{ cmd: 'maestro-plan', args: '--gaps' },
|
|
211
|
-
{ cmd: 'maestro-execute', args: '' },
|
|
212
|
-
{ cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }
|
|
213
|
-
],
|
|
214
|
-
|
|
215
|
-
'review-fix': [
|
|
216
|
-
{ cmd: 'maestro-plan', args: '{phase} --gaps' },
|
|
217
|
-
{ cmd: 'maestro-execute', args: '{phase}' },
|
|
218
|
-
{ cmd: 'quality-review', args: '{phase}' }
|
|
219
|
-
],
|
|
220
|
-
'quality-loop-partial': [
|
|
221
|
-
{ cmd: 'maestro-plan', args: '{phase} --gaps' },
|
|
222
|
-
{ cmd: 'maestro-execute', args: '{phase}' }
|
|
223
|
-
],
|
|
224
|
-
'milestone-release': [
|
|
225
|
-
{ cmd: 'maestro-milestone-audit' },
|
|
226
|
-
{ cmd: 'maestro-milestone-release' }
|
|
227
|
-
],
|
|
228
|
-
|
|
229
|
-
'learn': [{ cmd: 'maestro-learn', args: '"{description}"' }],
|
|
230
|
-
'harvest': [{ cmd: 'manage-harvest', args: '"{description}"' }],
|
|
231
|
-
'wiki': [{ cmd: 'manage-wiki' }],
|
|
232
|
-
'wiki_connect': [{ cmd: 'wiki-connect' }],
|
|
233
|
-
'wiki_digest': [{ cmd: 'wiki-digest' }],
|
|
234
|
-
'business_test': [{ cmd: 'quality-auto-test', args: '{phase}' }],
|
|
235
|
-
'spec_remove': [{ cmd: 'spec-remove', args: '"{description}"' }],
|
|
236
|
-
'amend': [{ cmd: 'maestro-amend', args: '"{description}"' }],
|
|
237
|
-
'release': [{ cmd: 'maestro-milestone-release' }],
|
|
238
|
-
'compose': [{ cmd: 'maestro-composer', args: '"{description}"' }],
|
|
239
|
-
'play': [{ cmd: 'maestro-player', args: '"{description}"' }],
|
|
240
|
-
'update': [{ cmd: 'maestro-update' }],
|
|
241
|
-
'overlay': [{ cmd: 'maestro-overlay', args: '"{description}"' }],
|
|
242
|
-
'link_coordinate': [{ cmd: 'maestro-link-coordinate', args: '"{description}"' }],
|
|
243
|
-
};
|
|
244
|
-
|
|
245
|
-
// Aliases: task type → named chain
|
|
246
|
-
const taskToChain = {
|
|
247
|
-
'spec_generate': 'spec-driven',
|
|
248
|
-
'brainstorm': 'brainstorm-driven',
|
|
249
|
-
'issue_execute': 'issue-full', // issue execute always gets review gate
|
|
250
|
-
};
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Resolution order:**
|
|
254
|
-
1. `forceChain` → `chainMap[forceChain]` (E002 if not found)
|
|
255
|
-
2. `state_continue` → `detectNextAction(projectState)` → returns `{ chain, argsOverride? }`. Steps from `chainMap[chain]`. If `argsOverride` present, apply before template substitution.
|
|
256
|
-
3. `taskToChain[taskType]` → named chain
|
|
257
|
-
4. `chainMap[taskType]` → direct lookup
|
|
258
|
-
|
|
259
|
-
### 3d: Resolve phase, description, and issue ID
|
|
260
|
-
|
|
261
|
-
**Phase**: from structured extraction → fallback regex (`phase N` or bare number) → `projectState.current_phase`.
|
|
262
|
-
**Issue ID**: from structured extraction → regex match `ISS-*-NNN`.
|
|
263
|
-
|
|
264
|
-
Build context: `{ current_phase, user_intent, issue_id, spec_session_id: null, scratch_dir: null }`.
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
## Step 4: Confirm
|
|
269
|
-
|
|
270
|
-
**If `DRY_RUN`**: Display chain and exit.
|
|
271
|
-
|
|
272
|
-
```
|
|
273
|
-
MAESTRO-COORDINATE: {chain_name} (dry run)
|
|
274
|
-
1. ${step.skill} {step.args}
|
|
275
|
-
2. ${step.skill} {step.args}
|
|
276
|
-
…
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
**If not `AUTO_YES`**: Ask user via `functions.request_user_input`:
|
|
280
|
-
- Execute all steps
|
|
281
|
-
- Execute from step N
|
|
282
|
-
- Cancel
|
|
283
|
-
|
|
284
|
-
---
|
|
285
|
-
|
|
286
|
-
## Step 5: Setup Session
|
|
287
|
-
|
|
288
|
-
Create session directory `.workflow/.maestro/maestro-{timestamp}/`.
|
|
289
|
-
|
|
290
|
-
**Barrier skills** (solo wave, coordinator analyzes artifacts after): `maestro-analyze`, `maestro-plan`, `maestro-brainstorm`, `maestro-roadmap`, `maestro-execute`.
|
|
291
|
-
|
|
292
|
-
**Auto-flag injection** (when AUTO_YES): `maestro-analyze/-brainstorm/-roadmap/-ui-design` → `-y`, `maestro-plan` → `--auto`, `quality-test` → `--auto-fix`, `quality-retrospective` → `--auto-yes`.
|
|
293
|
-
|
|
294
|
-
Initialize `state.json` with: session_id, intent, chain_name, auto_yes, context (phase, dirs, issue_id, gaps), waves[], and steps[] (each with index, skill, args, status=pending).
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
## Step 6: Wave Execution Loop
|
|
299
|
-
|
|
300
|
-
### 6a: Helper functions
|
|
301
|
-
|
|
302
|
-
**buildSkillCall**: Replace template placeholders (`{phase}`, `{description}`, `{issue_id}`, `{plan_dir}`, `{analysis_dir}`, `{brainstorm_dir}`, `{spec_session_id}`, `{scratch_dir}`) from context. Inject auto-flag if AUTO_YES. Return `$<cmd> <args>`.
|
|
303
|
-
|
|
304
|
-
**buildNextWave**: Take first pending step. If barrier → solo wave. Otherwise group consecutive non-barrier steps into one wave.
|
|
305
|
-
|
|
306
|
-
### 6b: Wave instruction template
|
|
307
|
-
|
|
308
|
-
Sub-agent instruction: execute `{skill_call}`, complete `{topic}`, do not modify state files, call `report_agent_job_result` with result JSON.
|
|
309
|
-
|
|
310
|
-
Result schema: `{ status: "completed"|"failed", skill_call, summary, artifacts, error }` (all required).
|
|
311
|
-
|
|
312
|
-
### 6c: Main loop
|
|
313
|
-
|
|
314
|
-
While pending steps remain:
|
|
315
|
-
1. Build next wave via `buildNextWave` (barrier → solo, non-barriers → grouped)
|
|
316
|
-
2. Write wave CSV (`id, skill_call, topic`) to session dir
|
|
317
|
-
3. Execute via `spawn_agents_on_csv` (max_workers = wave size, timeout 1800s)
|
|
318
|
-
4. Read results CSV, update each step's status/findings/artifacts
|
|
319
|
-
5. If barrier wave → run `analyzeBarrierArtifacts` to update context
|
|
320
|
-
6. Record wave in state, persist `state.json`
|
|
321
|
-
7. On any failure → abort (mark remaining steps skipped, break)
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
## Step 7: Barrier Artifact Analysis
|
|
326
|
-
|
|
327
|
-
After a barrier skill completes, the coordinator reads its artifacts and updates `context` for subsequent waves:
|
|
328
|
-
|
|
329
|
-
Context updates per barrier skill:
|
|
330
|
-
|
|
331
|
-
| Barrier | Extracts |
|
|
332
|
-
|---------|----------|
|
|
333
|
-
| `maestro-analyze` | `analysis_dir`, gaps (from context.md markers), phase (if detected) |
|
|
334
|
-
| `maestro-plan` | `plan_dir`, task/wave count (from plan.json) |
|
|
335
|
-
| `maestro-brainstorm` | `brainstorm_dir` |
|
|
336
|
-
| `maestro-roadmap` | `spec_session_id` (SPEC-* pattern) |
|
|
337
|
-
| `maestro-execute` | `exec_completed`/`exec_failed` counts (from results.csv) |
|
|
338
|
-
|
|
339
|
-
**Key principle**: The coordinator owns all context assembly. Sub-agents receive a fully-resolved `skill_call`.
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## Step 8: Completion Report
|
|
344
|
-
|
|
345
|
-
Finalize `state.json` (status: completed or current, completed_at timestamp).
|
|
346
|
-
|
|
347
|
-
Generate `context.md` report: session ID, chain name, waves executed, steps completed/failed, per-wave result table with context updates.
|
|
348
|
-
|
|
349
|
-
Display completion banner: session, chain, wave results (per-step status + summary), artifacts path, resume command.
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## Core Rules
|
|
354
|
-
|
|
355
|
-
1. **Semantic routing**: LLM-native structured extraction (`action × object`) replaces regex; disambiguates "问题" by context
|
|
356
|
-
2. **Wave-by-wave**: Never start wave N+1 before wave N results are read and barrier artifacts analyzed
|
|
357
|
-
3. **Barrier = solo wave**: A barrier skill always executes alone; coordinator analyzes its artifacts before proceeding
|
|
358
|
-
4. **Non-barriers can parallel**: Consecutive non-barrier skills share a wave with `max_workers = N`
|
|
359
|
-
5. **Coordinator owns context**: Sub-agents receive fully-resolved `skill_call` — no context discovery needed
|
|
360
|
-
6. **Simple instruction**: Sub-agent instruction is minimal — "execute {skill_call}, report result"
|
|
361
|
-
7. **Quality gates**: Issue chains auto-include review; `issue-full` is default for issue execution
|
|
362
|
-
8. **report_agent_job_result**: Every agent MUST call this with the output schema
|
|
363
|
-
9. **State.json tracks waves**: Each wave recorded with step IDs and results; `--continue` resumes from next pending
|
|
364
|
-
10. **Dry-run is read-only**: Display chain with [BARRIER] markers, no execution
|
|
365
|
-
11. **Abort on failure**: Failed step → skip remaining → report
|