maestro-flow 0.3.38 → 0.3.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/.claude/agents/workflow-analyzer.md +2 -0
- package/.claude/agents/workflow-debugger.md +2 -0
- package/.claude/agents/workflow-executor.md +2 -0
- package/.claude/agents/workflow-integration-checker.md +1 -0
- package/.claude/agents/workflow-nyquist-auditor.md +1 -0
- package/.claude/agents/workflow-planner.md +2 -0
- package/.claude/agents/workflow-reviewer.md +2 -0
- package/.claude/agents/workflow-verifier.md +2 -0
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-investigate.md +221 -221
- package/.claude/commands/learn-retro.md +303 -303
- package/.claude/commands/learn-second-opinion.md +167 -167
- package/.claude/commands/maestro-amend.md +300 -300
- package/.claude/commands/maestro-analyze.md +126 -126
- package/.claude/commands/maestro-brainstorm.md +100 -100
- package/.claude/commands/maestro-composer.md +354 -354
- package/.claude/commands/maestro-execute.md +120 -114
- package/.claude/commands/maestro-fork.md +86 -86
- package/.claude/commands/maestro-init.md +78 -78
- package/.claude/commands/maestro-learn.md +140 -140
- package/.claude/commands/maestro-link-coordinate.md +1 -1
- package/.claude/commands/maestro-merge.md +61 -61
- package/.claude/commands/maestro-milestone-release.md +96 -96
- package/.claude/commands/maestro-overlay.md +178 -178
- package/.claude/commands/maestro-plan.md +150 -138
- package/.claude/commands/maestro-player.md +404 -404
- package/.claude/commands/maestro-quick.md +56 -56
- package/.claude/commands/maestro-ralph-execute.md +7 -18
- package/.claude/commands/maestro-ralph.md +9 -3
- package/.claude/commands/maestro-roadmap.md +1 -1
- package/.claude/commands/maestro-ui-design.md +93 -93
- package/.claude/commands/maestro-update.md +176 -176
- package/.claude/commands/maestro-verify.md +96 -90
- package/.claude/commands/maestro.md +121 -121
- package/.claude/commands/manage-codebase-rebuild.md +75 -75
- package/.claude/commands/manage-codebase-refresh.md +57 -57
- package/.claude/commands/manage-harvest.md +94 -94
- package/.claude/commands/manage-issue-discover.md +77 -77
- package/.claude/commands/manage-issue.md +73 -73
- package/.claude/commands/manage-knowhow-capture.md +193 -193
- package/.claude/commands/manage-knowhow.md +77 -77
- package/.claude/commands/manage-learn.md +67 -67
- package/.claude/commands/manage-status.md +51 -51
- package/.claude/commands/manage-wiki.md +62 -62
- package/.claude/commands/quality-auto-test.md +1 -1
- package/.claude/commands/quality-debug.md +121 -115
- package/.claude/commands/quality-refactor.md +55 -55
- package/.claude/commands/quality-retrospective.md +78 -78
- package/.claude/commands/quality-review.md +114 -108
- package/.claude/commands/quality-sync.md +51 -51
- package/.claude/commands/quality-test.md +103 -103
- package/.claude/commands/spec-add.md +49 -49
- package/.claude/commands/spec-load.md +51 -51
- package/.claude/commands/spec-remove.md +51 -51
- package/.claude/commands/spec-setup.md +51 -51
- package/.claude/commands/wiki-connect.md +62 -62
- package/.claude/commands/wiki-digest.md +69 -69
- package/.codex/skills/learn-decompose/SKILL.md +113 -113
- package/.codex/skills/learn-follow/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +83 -83
- package/.codex/skills/learn-retro/SKILL.md +83 -83
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -86
- package/.codex/skills/maestro/SKILL.md +304 -304
- package/.codex/skills/maestro-analyze/SKILL.md +4 -3
- package/.codex/skills/maestro-brainstorm/SKILL.md +442 -397
- package/.codex/skills/maestro-composer/SKILL.md +213 -213
- package/.codex/skills/maestro-execute/SKILL.md +346 -318
- package/.codex/skills/maestro-fork/SKILL.md +56 -2
- package/.codex/skills/maestro-init/SKILL.md +40 -16
- package/.codex/skills/maestro-learn/SKILL.md +80 -80
- package/.codex/skills/maestro-link-coordinate/SKILL.md +257 -257
- package/.codex/skills/maestro-merge/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-complete/SKILL.md +40 -9
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -70
- package/.codex/skills/maestro-overlay/SKILL.md +1 -1
- package/.codex/skills/maestro-plan/SKILL.md +19 -4
- package/.codex/skills/maestro-player/SKILL.md +323 -323
- package/.codex/skills/maestro-quick/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph/SKILL.md +681 -578
- package/.codex/skills/maestro-roadmap/SKILL.md +518 -468
- package/.codex/skills/maestro-ui-design/SKILL.md +109 -12
- package/.codex/skills/maestro-verify/SKILL.md +27 -9
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +3 -2
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-harvest/SKILL.md +91 -91
- package/.codex/skills/manage-issue/SKILL.md +19 -6
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -110
- package/.codex/skills/manage-learn/SKILL.md +1 -1
- package/.codex/skills/manage-status/SKILL.md +1 -1
- package/.codex/skills/manage-wiki/SKILL.md +55 -55
- package/.codex/skills/quality-auto-test/SKILL.md +547 -547
- package/.codex/skills/quality-debug/SKILL.md +339 -334
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-retrospective/SKILL.md +292 -292
- package/.codex/skills/quality-review/SKILL.md +365 -364
- package/.codex/skills/quality-sync/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +498 -498
- package/.codex/skills/spec-add/SKILL.md +101 -101
- package/.codex/skills/spec-load/SKILL.md +77 -77
- package/.codex/skills/spec-map/SKILL.md +1 -1
- package/.codex/skills/spec-remove/SKILL.md +69 -69
- package/.codex/skills/spec-setup/SKILL.md +1 -1
- package/.codex/skills/team-coordinate/SKILL.md +2 -1
- package/.codex/skills/team-executor/SKILL.md +116 -115
- package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -1
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +14 -6
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +7 -1
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +8 -2
- package/.codex/skills/team-quality-assurance/SKILL.md +2 -1
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +9 -2
- package/.codex/skills/team-review/SKILL.md +2 -1
- package/.codex/skills/team-review/roles/reviewer/role.md +10 -1
- package/.codex/skills/team-review/roles/scanner/role.md +10 -1
- package/.codex/skills/team-tech-debt/SKILL.md +144 -143
- package/.codex/skills/team-tech-debt/roles/executor/role.md +9 -5
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +10 -0
- package/.codex/skills/team-tech-debt/roles/validator/role.md +8 -2
- package/.codex/skills/team-testing/SKILL.md +2 -1
- package/.codex/skills/team-testing/roles/executor/role.md +8 -2
- package/.codex/skills/team-testing/roles/generator/role.md +8 -2
- package/.codex/skills/wiki-connect/SKILL.md +73 -73
- package/.codex/skills/wiki-digest/SKILL.md +87 -87
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +4 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +6 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js +4 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.d.ts +2 -0
- package/dashboard/dist-server/src/commands/delegate.js +18 -0
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dashboard/dist-server/src/config/cli-tools-config.d.ts +6 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js +2 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
- package/dist/shared/agent-types.d.ts +2 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts +2 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +4 -0
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +29 -1
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/delegate.d.ts +2 -0
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +18 -0
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/launcher.d.ts.map +1 -1
- package/dist/src/commands/launcher.js +27 -4
- package/dist/src/commands/launcher.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts +6 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +2 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +65 -5
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/core/overlay/loader.d.ts.map +1 -1
- package/dist/src/core/overlay/loader.js +9 -4
- package/dist/src/core/overlay/loader.js.map +1 -1
- package/dist/src/core/overlay/types.d.ts +2 -0
- package/dist/src/core/overlay/types.d.ts.map +1 -1
- package/dist/src/core/overlay/types.js +2 -0
- package/dist/src/core/overlay/types.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.js +51 -4
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -1
- package/package.json +1 -1
- package/shared/agent-types.ts +2 -0
- package/workflows/delegate-protocol.codex.md +65 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-ui-design
|
|
3
|
-
description: Generate UI design prototypes
|
|
4
|
-
argument-hint: "[
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent,
|
|
3
|
+
description: Generate UI design prototypes, select and solidify as code
|
|
4
|
+
argument-hint: "<phase|topic> [--styles N] [--stack <stack>] [--targets <pages>] [--layouts N] [--refine] [--persist] [--full] [-y] [--style-skill PKG]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -13,6 +13,13 @@ Two workflow paths, auto-selected by skill availability:
|
|
|
13
13
|
Both produce the same output contract for downstream plan/execute consumption.
|
|
14
14
|
</purpose>
|
|
15
15
|
|
|
16
|
+
<deferred_reading>
|
|
17
|
+
- [ui-style.md](~/.maestro/workflows/ui-style.md) — read when SKILL_PATH found (primary path)
|
|
18
|
+
- [ui-design.md](~/.maestro/workflows/ui-design.md) — read when SKILL_PATH empty or --full (fallback path)
|
|
19
|
+
- [index.json](~/.maestro/templates/index.json) — read when updating phase metadata
|
|
20
|
+
- [scratch-index.json](~/.maestro/templates/scratch-index.json) — read when operating in scratch mode
|
|
21
|
+
</deferred_reading>
|
|
22
|
+
|
|
16
23
|
<context>
|
|
17
24
|
$ARGUMENTS -- phase number or topic text, plus optional flags.
|
|
18
25
|
|
|
@@ -32,6 +39,8 @@ $maestro-ui-design "3 --style-skill PKG --stack react"
|
|
|
32
39
|
- `--styles N`: Number of style variants (default: 3, range: 2-5)
|
|
33
40
|
- `--stack <stack>`: Tech stack for implementation guidelines (default: html-tailwind)
|
|
34
41
|
- `--targets <pages>`: Comma-separated page/component targets
|
|
42
|
+
- `--layouts N`: Number of layout templates per target (default: 2, range: 1-4, fallback path only)
|
|
43
|
+
- `--refine`: Iterate on existing design-ref/ — load current tokens, present refinement options
|
|
35
44
|
- `--persist`: Save design system with hierarchical page overrides
|
|
36
45
|
- `--full`: Force full 4-layer self-contained pipeline
|
|
37
46
|
|
|
@@ -65,12 +74,39 @@ Search for `ui-ux-pro-max` script at `skills/ui-ux-pro-max/scripts/search.py` or
|
|
|
65
74
|
- If `--style-skill PKG` provided: override detected path
|
|
66
75
|
- If `--full`: force self-contained pipeline regardless of skill availability
|
|
67
76
|
|
|
77
|
+
### Step 2.5: Refine Mode Branch (if `--refine`)
|
|
78
|
+
|
|
79
|
+
If `--refine` is set:
|
|
80
|
+
1. Verify `design-ref/` exists in target directory (error E004 if missing)
|
|
81
|
+
2. Read current `design-ref/MASTER.md`, `design-tokens.json`, `animation-tokens.json`
|
|
82
|
+
3. Display current design summary (palette, typography, key components)
|
|
83
|
+
4. `request_user_input`:
|
|
84
|
+
```json
|
|
85
|
+
{ "questions": [{ "id": "refine_scope", "header": "Refine", "question": "Which aspects to refine?", "options": [
|
|
86
|
+
{ "label": "Colors & Typography (Recommended)", "description": "Adjust palette, font pairings, and scale." },
|
|
87
|
+
{ "label": "Layout & Spacing", "description": "Adjust grid, spacing tokens, and breakpoints." },
|
|
88
|
+
{ "label": "Full Redesign", "description": "Regenerate all variants from scratch, keeping requirements." }
|
|
89
|
+
]}] }
|
|
90
|
+
```
|
|
91
|
+
5. Apply refinement: directly edit token files and MASTER.md based on user feedback
|
|
92
|
+
6. Update `selection.json` with refinement metadata (iteration count, changes)
|
|
93
|
+
7. Skip to Step 8 (report)
|
|
94
|
+
|
|
68
95
|
### Step 3: Gather Requirements Context
|
|
69
96
|
|
|
70
97
|
1. Read phase context (context.md, brainstorm results, spec references)
|
|
71
98
|
2. Synthesize design brief: product_type, industry, style_keywords, audience
|
|
72
99
|
3. Infer targets from phase goal if not specified (fallback: "home")
|
|
73
|
-
4. **Interactive brief review** (skip if `-y`):
|
|
100
|
+
4. **Interactive brief review** (skip if `-y`):
|
|
101
|
+
- Present synthesized brief (product_type, industry, style_keywords, audience, targets)
|
|
102
|
+
- `request_user_input`:
|
|
103
|
+
```json
|
|
104
|
+
{ "questions": [{ "id": "brief_review", "header": "Brief", "question": "Design brief ready. Proceed with this direction?", "options": [
|
|
105
|
+
{ "label": "Proceed (Recommended)", "description": "Generate variants with current brief." },
|
|
106
|
+
{ "label": "Adjust", "description": "Modify keywords, audience, or targets before generating." }
|
|
107
|
+
]}] }
|
|
108
|
+
```
|
|
109
|
+
- **Adjust** → user provides changes, update brief, then proceed
|
|
74
110
|
|
|
75
111
|
### Step 4: Generate Style Variants
|
|
76
112
|
|
|
@@ -83,13 +119,33 @@ python3 "${SKILL_PATH}" "${variant_keywords}" --design-system -p "${project_name
|
|
|
83
119
|
|
|
84
120
|
**If SKILL_PATH empty or --full (fallback path):**
|
|
85
121
|
|
|
86
|
-
Spawn ui-design-agent to generate variants using 6D attribute space
|
|
122
|
+
Spawn ui-design-agent to generate variants using 6D attribute space for maximum contrast:
|
|
123
|
+
|
|
124
|
+
| Dimension | Range | Description |
|
|
125
|
+
|-----------|-------|-------------|
|
|
126
|
+
| mood | formal ↔ playful | Overall emotional tone |
|
|
127
|
+
| density | spacious ↔ dense | Content density and whitespace |
|
|
128
|
+
| contrast | subtle ↔ bold | Visual weight and contrast ratios |
|
|
129
|
+
| rounding | sharp ↔ rounded | Border radius scale (0-24px) |
|
|
130
|
+
| motion | minimal ↔ expressive | Animation intensity and frequency |
|
|
131
|
+
| color-temp | cool ↔ warm | Color temperature bias |
|
|
132
|
+
|
|
133
|
+
Each variant occupies a distinct region in 6D space — no two variants within 0.3 Euclidean distance.
|
|
87
134
|
|
|
88
135
|
### Step 5: Present and Select
|
|
89
136
|
|
|
90
|
-
Present all variants with key attributes (colors, typography, effects).
|
|
137
|
+
Present all variants with key attributes (colors, typography, effects, 6D coordinates for fallback path).
|
|
138
|
+
|
|
139
|
+
**Interactive** (default): `request_user_input` with variants as options:
|
|
140
|
+
```json
|
|
141
|
+
{ "questions": [{ "id": "variant_select", "header": "Style", "question": "Select preferred design variant:", "options": [
|
|
142
|
+
{ "label": "Variant 1 (Recommended)", "description": "Brief: palette + mood + key trait." },
|
|
143
|
+
{ "label": "Variant 2", "description": "Brief: palette + mood + key trait." },
|
|
144
|
+
{ "label": "Variant 3", "description": "Brief: palette + mood + key trait." }
|
|
145
|
+
]}] }
|
|
146
|
+
```
|
|
147
|
+
Options built dynamically from generated variants. User may respond with "Other" to request regeneration with different keywords.
|
|
91
148
|
|
|
92
|
-
**Interactive** (default): user selects variant number, "redo", or "all"
|
|
93
149
|
**Auto** (`-y`): select variant 1
|
|
94
150
|
|
|
95
151
|
### Step 6: Solidify Selected Design
|
|
@@ -102,14 +158,41 @@ Write output artifacts:
|
|
|
102
158
|
- `design-ref/animation-tokens.json` -- animation system
|
|
103
159
|
- `design-ref/selection.json` -- selection metadata + rationale
|
|
104
160
|
|
|
105
|
-
### Step
|
|
161
|
+
### Step 6.5: Layout Template Generation (fallback path only)
|
|
162
|
+
|
|
163
|
+
For each target, generate `layoutCount` layout templates:
|
|
164
|
+
- Each template defines `dom_structure` (semantic HTML skeleton) + `css_layout_rules` (grid/flex layout)
|
|
165
|
+
- Write to `design-ref/layout-templates/{target}-layout-{N}.json`
|
|
166
|
+
- Templates vary in content organization: e.g., hero-first vs. feature-grid vs. sidebar-nav
|
|
106
167
|
|
|
107
|
-
|
|
168
|
+
### Step 7: Prototype Generation
|
|
169
|
+
|
|
170
|
+
**Primary path**: For each target, spawn Agent to generate standalone HTML+CSS prototype from design-tokens.json and animation-tokens.json.
|
|
171
|
+
|
|
172
|
+
**Fallback path**: Assemble prototype matrix: `styles × layouts × targets`. For each combination:
|
|
173
|
+
- Merge selected style tokens + layout template + target content
|
|
174
|
+
- Generate standalone HTML+CSS prototype
|
|
175
|
+
|
|
176
|
+
Requirements (both paths): realistic content (no lorem ipsum), SVG icons via CDN, responsive at 375/768/1024px, WCAG AA contrast.
|
|
177
|
+
|
|
178
|
+
**Fallback path only**: Generate `design-ref/compare.html` — interactive matrix viewer showing all prototypes side-by-side with style/layout/target filtering.
|
|
108
179
|
|
|
109
180
|
### Step 8: Update State and Report
|
|
110
181
|
|
|
111
182
|
1. Update index.json with `design_ref` status
|
|
112
|
-
2. Display completion report: phase, variant count + selected, stack, targets,
|
|
183
|
+
2. Display completion report: phase, variant count + selected, stack, targets, artifact paths
|
|
184
|
+
3. **Next-Step Routing** (skip if `-y` — default to Plan):
|
|
185
|
+
- `request_user_input`:
|
|
186
|
+
```json
|
|
187
|
+
{ "questions": [{ "id": "next_step", "header": "Next Step", "question": "Design system complete. What next?", "options": [
|
|
188
|
+
{ "label": "Plan (Recommended)", "description": "Create execution plan with design reference." },
|
|
189
|
+
{ "label": "Refine", "description": "Iterate on selected design with adjustments." },
|
|
190
|
+
{ "label": "Analyze", "description": "Evaluate feasibility before planning." }
|
|
191
|
+
]}] }
|
|
192
|
+
```
|
|
193
|
+
- **Plan** → invoke `maestro-plan {phase}`
|
|
194
|
+
- **Refine** → invoke `maestro-ui-design {phase} --refine`
|
|
195
|
+
- **Analyze** → invoke `maestro-analyze {phase}`
|
|
113
196
|
</execution>
|
|
114
197
|
|
|
115
198
|
<error_codes>
|
|
@@ -121,15 +204,29 @@ For each target, spawn Agent to generate standalone HTML+CSS prototype from desi
|
|
|
121
204
|
| E004 | error | --refine requires existing design-ref/ | Run without --refine first |
|
|
122
205
|
| W001 | warning | Design system returned partial results | Retry with broader keywords |
|
|
123
206
|
| W002 | warning | Prototype rendering failed for one variant | Continue with remaining |
|
|
207
|
+
| W003 | warning | No context.md found, using phase goal only | Continue with phase goal |
|
|
124
208
|
| W004 | warning | ui-ux-pro-max not found, using fallback | Proceed with self-contained pipeline |
|
|
125
209
|
</error_codes>
|
|
126
210
|
|
|
127
211
|
<success_criteria>
|
|
212
|
+
**Common (both paths)**:
|
|
128
213
|
- [ ] Target resolved (phase or scratch directory)
|
|
214
|
+
- [ ] Requirements context gathered (context.md, brainstorm, or user input)
|
|
129
215
|
- [ ] Style variants generated with intentional contrast
|
|
130
216
|
- [ ] User selected variant (or auto-picked in `-y` mode)
|
|
131
217
|
- [ ] MASTER.md + design-tokens.json + animation-tokens.json + selection.json written
|
|
132
|
-
- [ ] Colors in OKLCH format, WCAG AA contrast met
|
|
133
|
-
- [ ] Prototypes generated for all targets (
|
|
218
|
+
- [ ] Colors in OKLCH format, WCAG AA contrast met (4.5:1 text, 3:1 UI)
|
|
219
|
+
- [ ] Prototypes generated for all targets with realistic content (no lorem ipsum)
|
|
134
220
|
- [ ] index.json updated with design_ref status
|
|
221
|
+
- [ ] Next-step routing presented (or auto-defaulted with `-y`)
|
|
222
|
+
|
|
223
|
+
**Primary path (ui-ux-pro-max)**:
|
|
224
|
+
- [ ] ui-ux-pro-max `--design-system` called with product/industry/style keywords
|
|
225
|
+
- [ ] Tokens extracted from ui-ux-pro-max output into structured JSON
|
|
226
|
+
|
|
227
|
+
**Fallback path (--full or no skill)**:
|
|
228
|
+
- [ ] 6D attribute space used with ≥0.3 Euclidean distance between variants
|
|
229
|
+
- [ ] Layout templates generated per target (`dom_structure` + `css_layout_rules`)
|
|
230
|
+
- [ ] Prototype matrix assembled: selected style × layouts × targets
|
|
231
|
+
- [ ] `compare.html` generated as interactive matrix viewer
|
|
135
232
|
</success_criteria>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-verify
|
|
3
|
-
description:
|
|
3
|
+
description: Verify goals with must-have checks and test coverage validation
|
|
4
4
|
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"<phase> [--skip-tests] [--skip-antipattern]\""
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep,
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
@@ -56,6 +56,7 @@ Wave-based 3-layer Goal-Backward verification using `spawn_agents_on_csv`. Decom
|
|
|
56
56
|
| |
|
|
57
57
|
+-------------------------------------------------------------------------+
|
|
58
58
|
```
|
|
59
|
+
|
|
59
60
|
</purpose>
|
|
60
61
|
|
|
61
62
|
<context>
|
|
@@ -175,6 +176,14 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
|
|
|
175
176
|
|
|
176
177
|
Create session directory.
|
|
177
178
|
|
|
179
|
+
### Pre-flight: Team Conflict Check
|
|
180
|
+
|
|
181
|
+
Before starting verification, run:
|
|
182
|
+
```
|
|
183
|
+
Bash("maestro collab preflight --phase <phase-number>")
|
|
184
|
+
```
|
|
185
|
+
If exit code is 1, present warnings and ask whether to proceed.
|
|
186
|
+
|
|
178
187
|
### Phase 1: Phase Resolution -> CSV
|
|
179
188
|
|
|
180
189
|
**Objective**: Resolve phase, load artifacts, establish must-haves, decompose into check tasks, generate tasks.csv.
|
|
@@ -188,6 +197,8 @@ Create session directory.
|
|
|
188
197
|
- All `.task/TASK-{NNN}.json` -- task definitions with convergence.criteria
|
|
189
198
|
- All `.summaries/TASK-{NNN}-summary.md` -- execution results
|
|
190
199
|
- `uat.md` (if exists) -- human UAT gaps to incorporate
|
|
200
|
+
- `.workflow/codebase/ARCHITECTURE.md` (if exists) -- module wiring expectations for Layer 3 checks
|
|
201
|
+
- `maestro wiki search "architecture constraint" --json 2>/dev/null` -- documented invariants as additional truth checks (if available)
|
|
191
202
|
|
|
192
203
|
3. **Must-have establishment** (priority order):
|
|
193
204
|
- **success_criteria from index.json** -- primary contract
|
|
@@ -233,7 +244,7 @@ Filter `wave == 1 && status == pending` from master CSV. No prev_context (no pre
|
|
|
233
244
|
spawn_agents_on_csv({
|
|
234
245
|
csv_path: `${sessionFolder}/wave-1.csv`,
|
|
235
246
|
id_column: "id",
|
|
236
|
-
instruction: buildVerifyInstruction(sessionFolder, "wave1"),
|
|
247
|
+
instruction: buildVerifyInstruction(sessionFolder, "wave1"), // agent: ~/.codex/agents/workflow-verifier.toml
|
|
237
248
|
max_concurrency: maxConcurrency,
|
|
238
249
|
max_runtime_seconds: 3600,
|
|
239
250
|
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
@@ -383,13 +394,20 @@ Issue Refs: {issue_ids}
|
|
|
383
394
|
|
|
384
395
|
15. **Post-verify Knowledge Inquiry** (before next step routing):
|
|
385
396
|
|
|
386
|
-
| Signal | Prompt User | Spec Category |
|
|
387
|
-
|
|
388
|
-
| Anti-pattern blockers found | "Update
|
|
389
|
-
| Constraint/wiring violations | "Update
|
|
390
|
-
| Recurring Nyquist coverage gaps | "Add to
|
|
397
|
+
| Signal | Prompt User | Spec Category | Target File |
|
|
398
|
+
|--------|-------------|---------------|-------------|
|
|
399
|
+
| Anti-pattern blockers found | "Verification found {N} anti-patterns. Update quality rules?" | `quality` | `quality-rules.md` |
|
|
400
|
+
| Constraint/wiring violations | "Architecture constraint violations found. Update constraints?" | `arch` | `architecture-constraints.md` |
|
|
401
|
+
| Recurring Nyquist coverage gaps | "Persistent test gap in {module}. Add to test conventions?" | `test` | `test-conventions.md` |
|
|
402
|
+
| Stub/placeholder detected | "Stub artifacts found. Record as quality anti-pattern?" | `quality` | `quality-rules.md` |
|
|
403
|
+
| Missing wiring (orphaned modules) | "Orphaned modules detected. Document wiring requirement?" | `arch` | `architecture-constraints.md` |
|
|
404
|
+
|
|
405
|
+
On user confirm, invoke `maestro spec add <category> "<title>" "<content>" --keywords ... --source verify:{sessionId}`.
|
|
391
406
|
|
|
392
|
-
|
|
407
|
+
Use `request_user_input` for prompts:
|
|
408
|
+
```json
|
|
409
|
+
{ "questions": [{ "id": "knowledge-capture", "header": "Post-Verify Knowledge Capture", "question": "...", "options": [{ "label": "Yes", "description": "Record to specs" }, { "label": "Skip", "description": "Continue without recording" }] }] }
|
|
410
|
+
```
|
|
393
411
|
|
|
394
412
|
16. **Next step routing**:
|
|
395
413
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-codebase-rebuild
|
|
3
|
-
description:
|
|
3
|
+
description: Rebuild all codebase documentation from scratch
|
|
4
4
|
argument-hint: "[-y|--yes] [-c|--concurrency 5] [--continue] \"[--force] [--skip-commit]\""
|
|
5
5
|
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
6
|
---
|
|
@@ -44,6 +44,7 @@ Single-wave parallel execution -- 5 independent doc generator agents each analyz
|
|
|
44
44
|
| |
|
|
45
45
|
+---------------------------------------------------------------------------+
|
|
46
46
|
```
|
|
47
|
+
|
|
47
48
|
</purpose>
|
|
48
49
|
|
|
49
50
|
<context>
|
|
@@ -198,7 +199,7 @@ Filter master `tasks.csv` for `wave == 1 AND status == pending` → write `wave-
|
|
|
198
199
|
spawn_agents_on_csv({
|
|
199
200
|
csv_path: `${sessionFolder}/wave-1.csv`,
|
|
200
201
|
id_column: "id",
|
|
201
|
-
instruction: buildRebuildInstruction(sessionFolder, sourceDirs),
|
|
202
|
+
instruction: buildRebuildInstruction(sessionFolder, sourceDirs), // agent: ~/.codex/agents/workflow-codebase-mapper.toml
|
|
202
203
|
max_concurrency: maxConcurrency,
|
|
203
204
|
max_runtime_seconds: 3600,
|
|
204
205
|
output_csv_path: `${sessionFolder}/wave-1-results.csv`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-codebase-refresh
|
|
3
|
-
description:
|
|
3
|
+
description: Refresh codebase docs from recent changes
|
|
4
4
|
argument-hint: "[--since <date>] [--deep]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
6
|
---
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manage-harvest
|
|
3
|
-
description: Extract knowledge
|
|
4
|
-
argument-hint: "[<session-id|path>] [--to wiki|spec|issue|auto] [--source <type>] [--recent N] [--dry-run] [-y]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Knowledge extraction from workflow artifacts, routed into three stores: wiki entries,
|
|
10
|
-
spec conventions, and trackable issues. Prevents knowledge loss from completed sessions.
|
|
11
|
-
|
|
12
|
-
**Closed-loop**: harvest extracts → stores → downstream consumers (wiki-digest, spec-load, maestro-plan --gaps).
|
|
13
|
-
</purpose>
|
|
14
|
-
|
|
15
|
-
<required_reading>
|
|
16
|
-
@~/.maestro/workflows/harvest.md
|
|
17
|
-
</required_reading>
|
|
18
|
-
|
|
19
|
-
<context>
|
|
20
|
-
$ARGUMENTS — session-id, path, or empty for scan mode.
|
|
21
|
-
|
|
22
|
-
**Modes:**
|
|
23
|
-
- No args → `scan`: discover all harvestable artifacts, interactive selection
|
|
24
|
-
- `<session-id>` → `session`: harvest specific session
|
|
25
|
-
- `<path>` → `path`: harvest from explicit directory
|
|
26
|
-
|
|
27
|
-
**Flags:**
|
|
28
|
-
- `--to <target>` — Force routing: wiki, spec, issue, auto (default: auto)
|
|
29
|
-
- `--source <type>` — Filter: analysis, brainstorm, debug, lite-plan, lite-fix, scratchpad, session, learning, all
|
|
30
|
-
- `--recent N` — Artifacts within last N days (default: 30)
|
|
31
|
-
- `--dry-run` — Preview without writing
|
|
32
|
-
- `-y` — Skip confirmations
|
|
33
|
-
- `--min-confidence N` — Minimum 0.0-1.0 (default: 0.5)
|
|
34
|
-
|
|
35
|
-
**Source registry:**
|
|
36
|
-
| Source | Scan Path | Key Files |
|
|
37
|
-
|--------|-----------|-----------|
|
|
38
|
-
| analysis | `.workflow/.analysis/ANL-*/` | conclusions.json |
|
|
39
|
-
| brainstorm | `.workflow/scratch/brainstorm-*/` | guidance-specification.md |
|
|
40
|
-
| lite-plan | `.workflow/.lite-plan/*/` | plan.json |
|
|
41
|
-
| lite-fix | `.workflow/.lite-fix/*/` | fix-plan.json |
|
|
42
|
-
| debug | `.workflow/.debug/*/` | debug-log.md |
|
|
43
|
-
| scratchpad | `.workflow/.scratchpad/` | *.md |
|
|
44
|
-
| session | `.workflow/active/WFS-*/` | workflow-session.json |
|
|
45
|
-
| learning | `.workflow/learning/` | lessons.jsonl |
|
|
46
|
-
</context>
|
|
47
|
-
|
|
48
|
-
<execution>
|
|
49
|
-
Follow '~/.maestro/workflows/harvest.md' Stages 1–8.
|
|
50
|
-
|
|
51
|
-
**Key invariants:**
|
|
52
|
-
1. **Read-only until Stage 6** — extraction/classification in-memory only
|
|
53
|
-
2. **Dedup before write** — check harvest-log.jsonl + existing stores
|
|
54
|
-
3. **Stable fragment IDs** — `HRV-{8 hex}` from `hash(source_id + content_hash)`
|
|
55
|
-
4. **Never modify source artifacts** — purely extractive
|
|
56
|
-
5. **Confidence filtering** — below threshold logged but not routed
|
|
57
|
-
6. **Spec format enforcement** — all spec routing must use `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source="harvest"` attributes
|
|
58
|
-
|
|
59
|
-
**Routing rules:**
|
|
60
|
-
- Universal design patterns → `coding` or `arch` category
|
|
61
|
-
- Component-level pitfalls → `learning` category
|
|
62
|
-
- Quality enforcement rules → `quality` category
|
|
63
|
-
- Wiki: `maestro wiki create --type <type> --slug harvest-<source_type>-<short_id>`
|
|
64
|
-
- Spec: `maestro wiki append spec-<file> --category <category> --body "<content>" --keywords "<kws>"` (unified write path) or `Skill({ skill: "spec-add", args: "<category> <content>" })`
|
|
65
|
-
- Issue: append to `issues.jsonl` matching canonical schema
|
|
66
|
-
|
|
67
|
-
**Next steps:** `/manage-wiki health`, `maestro wiki list --type note`, `/wiki-connect --fix`, `/wiki-digest`, `/manage-issue list --source harvest`
|
|
68
|
-
</execution>
|
|
69
|
-
|
|
70
|
-
<error_codes>
|
|
71
|
-
| Code | Severity | Condition | Recovery |
|
|
72
|
-
|------|----------|-----------|----------|
|
|
73
|
-
| E001 | error | .workflow/ not initialized | Run $maestro-init |
|
|
74
|
-
| E002 | error | Invalid --to target | Valid: wiki, spec, issue, auto |
|
|
75
|
-
| E003 | error | Invalid --source type | Display valid types |
|
|
76
|
-
| E004 | error | Session ID not found | Show available sessions |
|
|
77
|
-
| W001 | warning | No harvestable artifacts in window | Widen --recent |
|
|
78
|
-
| W003 | warning | Fragments below threshold | Lower --min-confidence |
|
|
79
|
-
| W004 | warning | Duplicate fragments skipped | Review harvest-log.jsonl |
|
|
80
|
-
</error_codes>
|
|
81
|
-
|
|
82
|
-
<success_criteria>
|
|
83
|
-
- [ ] Mode resolved (scan / session / path)
|
|
84
|
-
- [ ] Artifacts discovered and parsed
|
|
85
|
-
- [ ] Fragments extracted with category, confidence, tags
|
|
86
|
-
- [ ] Dedup check passed against harvest-log.jsonl and stores
|
|
87
|
-
- [ ] If not dry-run: routed items written to target stores
|
|
88
|
-
- [ ] harvest-log.jsonl updated with provenance
|
|
89
|
-
- [ ] harvest-report-{date}.md written
|
|
90
|
-
- [ ] No source artifacts modified
|
|
91
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: manage-harvest
|
|
3
|
+
description: Extract knowledge from artifacts into wiki/spec/issues
|
|
4
|
+
argument-hint: "[<session-id|path>] [--to wiki|spec|issue|auto] [--source <type>] [--recent N] [--dry-run] [-y]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Knowledge extraction from workflow artifacts, routed into three stores: wiki entries,
|
|
10
|
+
spec conventions, and trackable issues. Prevents knowledge loss from completed sessions.
|
|
11
|
+
|
|
12
|
+
**Closed-loop**: harvest extracts → stores → downstream consumers (wiki-digest, spec-load, maestro-plan --gaps).
|
|
13
|
+
</purpose>
|
|
14
|
+
|
|
15
|
+
<required_reading>
|
|
16
|
+
@~/.maestro/workflows/harvest.md
|
|
17
|
+
</required_reading>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
$ARGUMENTS — session-id, path, or empty for scan mode.
|
|
21
|
+
|
|
22
|
+
**Modes:**
|
|
23
|
+
- No args → `scan`: discover all harvestable artifacts, interactive selection
|
|
24
|
+
- `<session-id>` → `session`: harvest specific session
|
|
25
|
+
- `<path>` → `path`: harvest from explicit directory
|
|
26
|
+
|
|
27
|
+
**Flags:**
|
|
28
|
+
- `--to <target>` — Force routing: wiki, spec, issue, auto (default: auto)
|
|
29
|
+
- `--source <type>` — Filter: analysis, brainstorm, debug, lite-plan, lite-fix, scratchpad, session, learning, all
|
|
30
|
+
- `--recent N` — Artifacts within last N days (default: 30)
|
|
31
|
+
- `--dry-run` — Preview without writing
|
|
32
|
+
- `-y` — Skip confirmations
|
|
33
|
+
- `--min-confidence N` — Minimum 0.0-1.0 (default: 0.5)
|
|
34
|
+
|
|
35
|
+
**Source registry:**
|
|
36
|
+
| Source | Scan Path | Key Files |
|
|
37
|
+
|--------|-----------|-----------|
|
|
38
|
+
| analysis | `.workflow/.analysis/ANL-*/` | conclusions.json |
|
|
39
|
+
| brainstorm | `.workflow/scratch/brainstorm-*/` | guidance-specification.md |
|
|
40
|
+
| lite-plan | `.workflow/.lite-plan/*/` | plan.json |
|
|
41
|
+
| lite-fix | `.workflow/.lite-fix/*/` | fix-plan.json |
|
|
42
|
+
| debug | `.workflow/.debug/*/` | debug-log.md |
|
|
43
|
+
| scratchpad | `.workflow/.scratchpad/` | *.md |
|
|
44
|
+
| session | `.workflow/active/WFS-*/` | workflow-session.json |
|
|
45
|
+
| learning | `.workflow/learning/` | lessons.jsonl |
|
|
46
|
+
</context>
|
|
47
|
+
|
|
48
|
+
<execution>
|
|
49
|
+
Follow '~/.maestro/workflows/harvest.md' Stages 1–8.
|
|
50
|
+
|
|
51
|
+
**Key invariants:**
|
|
52
|
+
1. **Read-only until Stage 6** — extraction/classification in-memory only
|
|
53
|
+
2. **Dedup before write** — check harvest-log.jsonl + existing stores
|
|
54
|
+
3. **Stable fragment IDs** — `HRV-{8 hex}` from `hash(source_id + content_hash)`
|
|
55
|
+
4. **Never modify source artifacts** — purely extractive
|
|
56
|
+
5. **Confidence filtering** — below threshold logged but not routed
|
|
57
|
+
6. **Spec format enforcement** — all spec routing must use `<spec-entry>` closed-tag format with `category`, `keywords`, `date`, `source="harvest"` attributes
|
|
58
|
+
|
|
59
|
+
**Routing rules:**
|
|
60
|
+
- Universal design patterns → `coding` or `arch` category
|
|
61
|
+
- Component-level pitfalls → `learning` category
|
|
62
|
+
- Quality enforcement rules → `quality` category
|
|
63
|
+
- Wiki: `maestro wiki create --type <type> --slug harvest-<source_type>-<short_id>`
|
|
64
|
+
- Spec: `maestro wiki append spec-<file> --category <category> --body "<content>" --keywords "<kws>"` (unified write path) or `Skill({ skill: "spec-add", args: "<category> <content>" })`
|
|
65
|
+
- Issue: append to `issues.jsonl` matching canonical schema
|
|
66
|
+
|
|
67
|
+
**Next steps:** `/manage-wiki health`, `maestro wiki list --type note`, `/wiki-connect --fix`, `/wiki-digest`, `/manage-issue list --source harvest`
|
|
68
|
+
</execution>
|
|
69
|
+
|
|
70
|
+
<error_codes>
|
|
71
|
+
| Code | Severity | Condition | Recovery |
|
|
72
|
+
|------|----------|-----------|----------|
|
|
73
|
+
| E001 | error | .workflow/ not initialized | Run $maestro-init |
|
|
74
|
+
| E002 | error | Invalid --to target | Valid: wiki, spec, issue, auto |
|
|
75
|
+
| E003 | error | Invalid --source type | Display valid types |
|
|
76
|
+
| E004 | error | Session ID not found | Show available sessions |
|
|
77
|
+
| W001 | warning | No harvestable artifacts in window | Widen --recent |
|
|
78
|
+
| W003 | warning | Fragments below threshold | Lower --min-confidence |
|
|
79
|
+
| W004 | warning | Duplicate fragments skipped | Review harvest-log.jsonl |
|
|
80
|
+
</error_codes>
|
|
81
|
+
|
|
82
|
+
<success_criteria>
|
|
83
|
+
- [ ] Mode resolved (scan / session / path)
|
|
84
|
+
- [ ] Artifacts discovered and parsed
|
|
85
|
+
- [ ] Fragments extracted with category, confidence, tags
|
|
86
|
+
- [ ] Dedup check passed against harvest-log.jsonl and stores
|
|
87
|
+
- [ ] If not dry-run: routed items written to target stores
|
|
88
|
+
- [ ] harvest-log.jsonl updated with provenance
|
|
89
|
+
- [ ] harvest-report-{date}.md written
|
|
90
|
+
- [ ] No source artifacts modified
|
|
91
|
+
</success_criteria>
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-issue
|
|
3
|
-
description:
|
|
3
|
+
description: Create, query, update, close, and link issues
|
|
4
4
|
argument-hint: "<create|list|status|update|close|link> [options]"
|
|
5
|
-
allowed-tools: Read, Write, Bash, Glob, Grep,
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
9
9
|
Issue CRUD operations: create, list, status, update, close, and link issues to tasks.
|
|
10
10
|
All data stored in `.workflow/issues/issues.jsonl` with auto-created directory on first use.
|
|
11
|
+
|
|
12
|
+
**Closed-loop workflow**: issue → `$maestro-analyze --gaps <ISS-ID>` (root cause analysis) → `$maestro-plan --gaps` (solution planning) → `$maestro-execute` (implementation). For automated issue discovery, use `$manage-issue-discover`.
|
|
11
13
|
</purpose>
|
|
12
14
|
|
|
15
|
+
<required_reading>
|
|
16
|
+
Read `~/.maestro/workflows/issue.md` before executing any subcommand. This file defines the issue.json schema, ID format, field validation rules, and JSONL storage conventions.
|
|
17
|
+
</required_reading>
|
|
18
|
+
|
|
13
19
|
<context>
|
|
14
20
|
$ARGUMENTS — subcommand followed by options.
|
|
15
21
|
|
|
@@ -34,11 +40,15 @@ If missing or invalid, display usage and prompt user (E_NO_SUBCOMMAND, E_INVALID
|
|
|
34
40
|
|
|
35
41
|
### Step 2: Ensure Storage
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
If `.workflow/issues/` does not exist, auto-create the directory and write an empty `issues.jsonl` file. Log as E_ISSUES_DIR_MISSING (warning, non-blocking).
|
|
38
44
|
|
|
39
45
|
### Step 3: Execute Subcommand
|
|
40
46
|
|
|
41
|
-
**create**: Read `~/.maestro/templates/issue.json` for schema. Generate ID `ISS-{YYYYMMDD}-{NNN}`.
|
|
47
|
+
**create**: Read `~/.maestro/templates/issue.json` for schema. Generate ID `ISS-{YYYYMMDD}-{NNN}`. If required fields are missing, prompt via `request_user_input`:
|
|
48
|
+
```json
|
|
49
|
+
{ "questions": [{ "id": "issue_title", "header": "New Issue", "question": "What is the issue title?" }, { "id": "issue_severity", "header": "Issue Severity", "question": "What severity level?", "options": [{ "label": "high (Recommended)", "description": "Production-impacting or blocking" }, { "label": "medium", "description": "Degraded functionality" }, { "label": "low", "description": "Minor or cosmetic" }] }] }
|
|
50
|
+
```
|
|
51
|
+
Append JSON line to `issues.jsonl`.
|
|
42
52
|
|
|
43
53
|
**list**: Read `issues.jsonl`, filter by `--status`, `--phase`, `--severity`, `--source`. Display as table:
|
|
44
54
|
```
|
|
@@ -52,7 +62,10 @@ ISS-20260318-001 | high | open | Auth token expiry bug
|
|
|
52
62
|
|
|
53
63
|
**close**: Find issue by ID, set status to `closed`, add `resolution` and `closed_at`. Move line from `issues.jsonl` to `issue-history.jsonl`.
|
|
54
64
|
|
|
55
|
-
**link**:
|
|
65
|
+
**link**: Bidirectional cross-reference between issue and task:
|
|
66
|
+
1. Find issue by ID in `issues.jsonl`, add task ID to issue's `linked_tasks[]` array, rewrite the line
|
|
67
|
+
2. Read task JSON at `.workflow/.task/{TASK-ID}.json` (or `.task/{TASK-ID}.json`). Edit the task's `linked_issues` field — append the issue ID to the array. If `linked_issues` field does not exist, create it as `[ISS-ID]`
|
|
68
|
+
3. Both writes must succeed for the link to be considered complete
|
|
56
69
|
</execution>
|
|
57
70
|
|
|
58
71
|
<error_codes>
|
|
@@ -60,7 +73,7 @@ ISS-20260318-001 | high | open | Auth token expiry bug
|
|
|
60
73
|
|------|----------|-------------|
|
|
61
74
|
| E_NO_SUBCOMMAND | error | No subcommand provided -- display valid subcommands |
|
|
62
75
|
| E_INVALID_SUBCOMMAND | error | Unrecognized subcommand |
|
|
63
|
-
| E_ISSUES_DIR_MISSING | warning | `.workflow/issues/` not found
|
|
76
|
+
| E_ISSUES_DIR_MISSING | warning | `.workflow/issues/` not found — auto-create directory and empty issues.jsonl |
|
|
64
77
|
</error_codes>
|
|
65
78
|
|
|
66
79
|
<success_criteria>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-issue-discover
|
|
3
|
-
description:
|
|
3
|
+
description: Discover issues via multi-perspective analysis
|
|
4
4
|
argument-hint: "[-y|--yes] [-c|--concurrency N] [--continue] \"[by-prompt 'what to look for']\""
|
|
5
5
|
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
6
|
---
|