maestro-flow 0.5.3 → 0.5.31
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/learn-follow/SKILL.md +114 -114
- package/.agents/skills/learn-investigate/SKILL.md +138 -139
- package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agents/skills/maestro/SKILL.md +2 -10
- package/.agents/skills/maestro-amend/SKILL.md +152 -152
- package/.agents/skills/maestro-analyze/SKILL.md +201 -252
- package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agents/skills/maestro-collab/SKILL.md +159 -159
- package/.agents/skills/maestro-companion/SKILL.md +517 -517
- package/.agents/skills/maestro-composer/SKILL.md +173 -164
- package/.agents/skills/maestro-execute/SKILL.md +169 -170
- package/.agents/skills/maestro-fork/SKILL.md +97 -96
- package/.agents/skills/maestro-grill/SKILL.md +161 -162
- package/.agents/skills/maestro-guard/SKILL.md +93 -92
- package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agents/skills/maestro-init/SKILL.md +117 -118
- package/.agents/skills/maestro-merge/SKILL.md +73 -66
- package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agents/skills/maestro-next/SKILL.md +241 -245
- package/.agents/skills/maestro-overlay/SKILL.md +176 -166
- package/.agents/skills/maestro-plan/SKILL.md +211 -197
- package/.agents/skills/maestro-player/SKILL.md +167 -167
- package/.agents/skills/maestro-quick/SKILL.md +69 -63
- package/.agents/skills/maestro-ralph/SKILL.md +2 -36
- package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -872
- package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agents/skills/maestro-update/SKILL.md +109 -106
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agents/skills/manage-harvest/SKILL.md +83 -81
- package/.agents/skills/manage-issue/SKILL.md +59 -60
- package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agents/skills/manage-knowhow/SKILL.md +70 -66
- package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agents/skills/manage-status/SKILL.md +52 -42
- package/.agents/skills/manage-wiki/SKILL.md +69 -58
- package/.agents/skills/odyssey-debug/SKILL.md +445 -459
- package/.agents/skills/odyssey-improve/SKILL.md +477 -491
- package/.agents/skills/odyssey-planex/SKILL.md +576 -587
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +400 -413
- package/.agents/skills/odyssey-ui/SKILL.md +431 -448
- package/.agents/skills/quality-auto-test/SKILL.md +140 -123
- package/.agents/skills/quality-debug/SKILL.md +145 -106
- package/.agents/skills/quality-refactor/SKILL.md +91 -53
- package/.agents/skills/quality-retrospective/SKILL.md +109 -63
- package/.agents/skills/quality-review/SKILL.md +141 -114
- package/.agents/skills/quality-sync/SKILL.md +74 -38
- package/.agents/skills/quality-test/SKILL.md +133 -103
- package/.agents/skills/security-audit/SKILL.md +217 -166
- package/.agents/skills/spec-add/SKILL.md +66 -59
- package/.agents/skills/spec-load/SKILL.md +68 -68
- package/.agents/skills/spec-remove/SKILL.md +42 -42
- package/.agents/skills/spec-setup/SKILL.md +38 -41
- package/.agy/skills/learn-follow/SKILL.md +114 -114
- package/.agy/skills/learn-investigate/SKILL.md +138 -139
- package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agy/skills/maestro/SKILL.md +2 -10
- package/.agy/skills/maestro-amend/SKILL.md +152 -152
- package/.agy/skills/maestro-analyze/SKILL.md +201 -252
- package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agy/skills/maestro-collab/SKILL.md +159 -159
- package/.agy/skills/maestro-companion/SKILL.md +517 -517
- package/.agy/skills/maestro-composer/SKILL.md +173 -164
- package/.agy/skills/maestro-execute/SKILL.md +169 -170
- package/.agy/skills/maestro-fork/SKILL.md +97 -96
- package/.agy/skills/maestro-grill/SKILL.md +161 -162
- package/.agy/skills/maestro-guard/SKILL.md +93 -92
- package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agy/skills/maestro-init/SKILL.md +117 -118
- package/.agy/skills/maestro-merge/SKILL.md +73 -66
- package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agy/skills/maestro-next/SKILL.md +241 -245
- package/.agy/skills/maestro-overlay/SKILL.md +176 -166
- package/.agy/skills/maestro-plan/SKILL.md +211 -197
- package/.agy/skills/maestro-player/SKILL.md +167 -167
- package/.agy/skills/maestro-quick/SKILL.md +69 -63
- package/.agy/skills/maestro-ralph/SKILL.md +2 -36
- package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -872
- package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agy/skills/maestro-update/SKILL.md +109 -106
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agy/skills/manage-harvest/SKILL.md +83 -81
- package/.agy/skills/manage-issue/SKILL.md +59 -60
- package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agy/skills/manage-knowhow/SKILL.md +70 -66
- package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agy/skills/manage-status/SKILL.md +52 -42
- package/.agy/skills/manage-wiki/SKILL.md +69 -58
- package/.agy/skills/odyssey-debug/SKILL.md +445 -459
- package/.agy/skills/odyssey-improve/SKILL.md +477 -491
- package/.agy/skills/odyssey-planex/SKILL.md +576 -587
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +400 -413
- package/.agy/skills/odyssey-ui/SKILL.md +431 -448
- package/.agy/skills/quality-auto-test/SKILL.md +140 -123
- package/.agy/skills/quality-debug/SKILL.md +145 -106
- package/.agy/skills/quality-refactor/SKILL.md +91 -53
- package/.agy/skills/quality-retrospective/SKILL.md +109 -63
- package/.agy/skills/quality-review/SKILL.md +141 -114
- package/.agy/skills/quality-sync/SKILL.md +74 -38
- package/.agy/skills/quality-test/SKILL.md +133 -103
- package/.agy/skills/security-audit/SKILL.md +217 -166
- package/.agy/skills/spec-add/SKILL.md +66 -59
- package/.agy/skills/spec-load/SKILL.md +68 -68
- package/.agy/skills/spec-remove/SKILL.md +42 -42
- package/.agy/skills/spec-setup/SKILL.md +38 -41
- package/.claude/commands/learn-follow.md +127 -127
- package/.claude/commands/learn-investigate.md +151 -152
- package/.claude/commands/learn-second-opinion.md +118 -122
- package/.claude/commands/maestro-amend.md +164 -164
- package/.claude/commands/maestro-analyze.md +215 -266
- package/.claude/commands/maestro-blueprint.md +189 -204
- package/.claude/commands/maestro-brainstorm.md +209 -213
- package/.claude/commands/maestro-collab.md +172 -172
- package/.claude/commands/maestro-companion.md +531 -531
- package/.claude/commands/maestro-composer.md +188 -179
- package/.claude/commands/maestro-execute.md +183 -184
- package/.claude/commands/maestro-fork.md +111 -110
- package/.claude/commands/maestro-grill.md +175 -176
- package/.claude/commands/maestro-guard.md +103 -102
- package/.claude/commands/maestro-impeccable.md +311 -268
- package/.claude/commands/maestro-init.md +130 -131
- package/.claude/commands/maestro-merge.md +87 -80
- package/.claude/commands/maestro-milestone-audit.md +4 -10
- package/.claude/commands/maestro-milestone-complete.md +6 -7
- package/.claude/commands/maestro-milestone-release.md +136 -145
- package/.claude/commands/maestro-next.md +253 -257
- package/.claude/commands/maestro-overlay.md +188 -178
- package/.claude/commands/maestro-plan.md +225 -211
- package/.claude/commands/maestro-player.md +182 -182
- package/.claude/commands/maestro-quick.md +83 -77
- package/.claude/commands/maestro-ralph-beta.md +875 -886
- package/.claude/commands/maestro-ralph-execute.md +247 -247
- package/.claude/commands/maestro-ralph.md +2 -36
- package/.claude/commands/maestro-roadmap.md +173 -186
- package/.claude/commands/maestro-swarm-workflow.md +243 -264
- package/.claude/commands/maestro-tools-execute.md +122 -117
- package/.claude/commands/maestro-tools-register.md +162 -157
- package/.claude/commands/maestro-ui-codify.md +117 -100
- package/.claude/commands/maestro-universal-workflow.md +548 -561
- package/.claude/commands/maestro-update.md +122 -119
- package/.claude/commands/maestro.md +2 -10
- package/.claude/commands/manage-codebase-rebuild.md +87 -85
- package/.claude/commands/manage-harvest.md +97 -95
- package/.claude/commands/manage-issue-discover.md +83 -81
- package/.claude/commands/manage-issue.md +72 -73
- package/.claude/commands/manage-kg-extractors.md +128 -0
- package/.claude/commands/manage-knowhow-capture.md +92 -82
- package/.claude/commands/manage-knowhow.md +83 -79
- package/.claude/commands/manage-knowledge-audit.md +105 -88
- package/.claude/commands/manage-status.md +62 -52
- package/.claude/commands/manage-wiki.md +82 -71
- package/.claude/commands/odyssey-debug.md +459 -473
- package/.claude/commands/odyssey-improve.md +491 -505
- package/.claude/commands/odyssey-planex.md +590 -601
- package/.claude/commands/odyssey-review-test-fix.md +414 -427
- package/.claude/commands/odyssey-ui.md +445 -462
- package/.claude/commands/quality-auto-test.md +153 -136
- package/.claude/commands/quality-debug.md +159 -120
- package/.claude/commands/quality-refactor.md +105 -67
- package/.claude/commands/quality-retrospective.md +123 -77
- package/.claude/commands/quality-review.md +155 -128
- package/.claude/commands/quality-sync.md +88 -52
- package/.claude/commands/quality-test.md +147 -117
- package/.claude/commands/security-audit.md +230 -179
- package/.claude/commands/spec-add.md +77 -70
- package/.claude/commands/spec-load.md +78 -78
- package/.claude/commands/spec-remove.md +55 -55
- package/.claude/commands/spec-setup.md +49 -52
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +11 -5
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +2 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/code/code-extractor.js +32 -3
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
- package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
- package/dist/src/graph/kg/extraction/orchestrator.js +17 -5
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
- package/dist/src/graph/kg/schema.sql +16 -11
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
- package/dist/src/graph/kg/surface/cli.js +153 -56
- package/dist/src/graph/kg/surface/cli.js.map +1 -1
- package/dist/src/hooks/workspace.d.ts +4 -2
- package/dist/src/hooks/workspace.d.ts.map +1 -1
- package/dist/src/hooks/workspace.js +6 -2
- package/dist/src/hooks/workspace.js.map +1 -1
- package/package.json +91 -91
- package/workflows/analyze.md +25 -49
- package/workflows/auto-test.md +699 -699
- package/workflows/blueprint.md +403 -431
- package/workflows/brainstorm.md +54 -195
- package/workflows/business-test.md +570 -570
- package/workflows/claude-instructions.md +23 -51
- package/workflows/codex-instructions.md +27 -77
- package/workflows/coding-philosophy.md +69 -69
- package/workflows/command-authoring.md +823 -823
- package/workflows/debug.md +43 -98
- package/workflows/delegate-usage.md +39 -241
- package/workflows/execute.md +4 -53
- package/workflows/grill.md +12 -56
- package/workflows/harvest.md +22 -68
- package/workflows/init.md +148 -148
- package/workflows/instruction-authoring-guide.md +97 -0
- package/workflows/issue-execute.md +110 -110
- package/workflows/issue-gaps-analyze.codex.md +260 -260
- package/workflows/issue-gaps-analyze.md +216 -216
- package/workflows/issue-plan.md +110 -110
- package/workflows/issue.md +338 -346
- package/workflows/knowhow.md +0 -32
- package/workflows/learn.md +277 -277
- package/workflows/maestro-chain-execute.md +20 -20
- package/workflows/refactor.md +22 -44
- package/workflows/retrospective.md +16 -65
- package/workflows/review.md +446 -486
- package/workflows/roadmap.md +35 -132
- package/workflows/skill-authoring.md +265 -265
- package/workflows/spec-generate.md +470 -470
- package/workflows/specs-remove.md +104 -104
- package/workflows/sync.md +11 -41
- package/workflows/test-gen.md +226 -226
- package/workflows/test.md +385 -475
- package/workflows/ui-design.md +391 -391
- package/workflows/ui-style.md +199 -199
- package/workflows/wiki-connect.md +151 -151
- package/workflows/wiki-digest.md +178 -178
- package/workflows/wiki-manage.md +109 -109
- package/workflows/cli-tools-usage.md +0 -252
- package/workflows/delegate-protocol.codex.md +0 -65
|
@@ -1,216 +1,216 @@
|
|
|
1
|
-
# Workflow: Issue Gaps Analysis
|
|
2
|
-
|
|
3
|
-
> **CLI variants**: see `issue-gaps-analyze.codex.md` for codex-specific notes (CSV-wave variant using `spawn_agents_on_csv`).
|
|
4
|
-
|
|
5
|
-
Root cause analysis for issues using CLI exploration and codebase context gathering.
|
|
6
|
-
Supports single issue (ISS-ID) or batch (all open/registered) with classification and parallel analysis.
|
|
7
|
-
Produces analysis records in issues.jsonl and context.md for downstream `plan --gaps`.
|
|
8
|
-
|
|
9
|
-
**Invoked by**: `maestro-analyze --gaps [ISS-ID]`
|
|
10
|
-
|
|
11
|
-
## Input
|
|
12
|
-
|
|
13
|
-
- `ISS-ID` (optional): Specific issue to analyze. If omitted, analyze all open/registered issues.
|
|
14
|
-
- `TOOL`: CLI tool for exploration (default: gemini)
|
|
15
|
-
- `DEPTH`: `standard` or `deep` (default: standard)
|
|
16
|
-
|
|
17
|
-
## Pipeline
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Load Issues → Classify & Group → Parallel Analysis (per group) → Write issue.analysis → Output context.md
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
### Step 1: Load Issues
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
If ISS-ID provided:
|
|
29
|
-
Load single issue from .workflow/issues/issues.jsonl
|
|
30
|
-
→ fatal if file missing or ID not found (E_ISSUE_NOT_FOUND)
|
|
31
|
-
→ skip Step 2 (classification), go directly to Step 3
|
|
32
|
-
|
|
33
|
-
If no ISS-ID:
|
|
34
|
-
Load all issues where status == "open" || status == "registered"
|
|
35
|
-
→ fatal if none found (E_NO_ISSUES)
|
|
36
|
-
|
|
37
|
-
Validate: at least 1 issue loaded.
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
### Step 2: Classify & Group (batch mode only)
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
Group loaded issues by overlap in affected area:
|
|
46
|
-
|
|
47
|
-
Classification dimensions:
|
|
48
|
-
- location: file path prefix (e.g. src/auth/, src/api/)
|
|
49
|
-
- component: affected_components field overlap
|
|
50
|
-
- category: issue.category or severity level
|
|
51
|
-
|
|
52
|
-
Grouping rules:
|
|
53
|
-
1. Same location prefix (first 2 path segments) → same group
|
|
54
|
-
2. Shared affected_components → same group
|
|
55
|
-
3. Remaining ungrouped → individual groups (1 issue each)
|
|
56
|
-
|
|
57
|
-
Output: GROUPS[] where each group = { group_id, label, issues[], shared_context_keywords[] }
|
|
58
|
-
|
|
59
|
-
Display group breakdown to user (skip if AUTO_YES).
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### Step 3: Gather Codebase Context (per group)
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
For each group:
|
|
68
|
-
Merge keywords from all issues in group: title, description, location, affected_components.
|
|
69
|
-
Deduplicate keywords.
|
|
70
|
-
|
|
71
|
-
Standard depth: grep keywords in source files → top 20 paths, read 10 lines around
|
|
72
|
-
top 5 matches.
|
|
73
|
-
Deep depth: standard grep + semantic Agent search (error handling, data flow, deps),
|
|
74
|
-
merge results.
|
|
75
|
-
|
|
76
|
-
Build GROUP_CONTEXT: related files, key snippets (max 50 lines), dependency chain.
|
|
77
|
-
Shared context benefits co-located issues — avoids redundant exploration.
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
### Step 4: Run Analysis (per group, parallel across groups)
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
Launch analysis for each group in parallel using Agent tool:
|
|
86
|
-
|
|
87
|
-
Agent({
|
|
88
|
-
subagent_type: "general-purpose",
|
|
89
|
-
prompt: "Root cause analysis for issues in group [{group.label}]:
|
|
90
|
-
{for each issue in group}
|
|
91
|
-
ISS-{id}: {title} — {description}, severity: {severity}, location: {location}
|
|
92
|
-
{end}
|
|
93
|
-
CODEBASE CONTEXT: {GROUP_CONTEXT}
|
|
94
|
-
TASK: For EACH issue — identify root cause (file:line) → assess impact → list related files → rate confidence → suggest fix direction. Note cross-issue relationships within this group.
|
|
95
|
-
EXPECTED: JSON array [{ iss_id, root_cause, impact, related_files[], confidence, suggested_approach, cross_refs[] }]
|
|
96
|
-
CONSTRAINTS: Evidence-only, no speculation. Use Read/Grep to verify before concluding."
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
Alternatively, attempt CLI delegate first per group:
|
|
100
|
-
|
|
101
|
-
maestro delegate "<same prompt>" --role analyze --mode analysis
|
|
102
|
-
|
|
103
|
-
If delegate fails (timeout, unavailable, parse error):
|
|
104
|
-
Fall back to Agent tool with same prompt.
|
|
105
|
-
Record fallback in analysis metadata: { tool: "agent-fallback", reason: "<error>" }
|
|
106
|
-
|
|
107
|
-
Validate response per issue: all required fields present.
|
|
108
|
-
Parse failure → save raw output to issue feedback for review.
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
### Step 5: Build Analysis Record (per issue)
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
For each issue from Step 4 results:
|
|
117
|
-
|
|
118
|
-
Construct IssueAnalysis:
|
|
119
|
-
{
|
|
120
|
-
root_cause,
|
|
121
|
-
affected_files: related_files,
|
|
122
|
-
impact_scope: impact,
|
|
123
|
-
fix_direction: suggested_approach,
|
|
124
|
-
confidence,
|
|
125
|
-
cross_refs: [ISS-IDs of related issues in same group],
|
|
126
|
-
analyzed_at: NOW_ISO,
|
|
127
|
-
tool: TOOL or "agent-fallback",
|
|
128
|
-
depth: DEPTH
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
### Step 6: Update Issues in JSONL
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
Read-modify-write issues.jsonl (single pass for all analyzed issues):
|
|
138
|
-
For each issue:
|
|
139
|
-
Set issue.analysis = ANALYSIS, updated_at = NOW_ISO
|
|
140
|
-
Append issue.history: { action: "analyzed", at: NOW_ISO, by: "maestro-analyze --gaps" }
|
|
141
|
-
Status unchanged (analysis is metadata enrichment).
|
|
142
|
-
Verify: re-read file, confirm analysis field present for all updated issues.
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
### Step 7: Output context.md
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Aggregate all analyzed issues into context.md, organized by group:
|
|
151
|
-
|
|
152
|
-
# Context: Issue Gaps Analysis
|
|
153
|
-
|
|
154
|
-
**Date**: {date}
|
|
155
|
-
**Issues analyzed**: {count}
|
|
156
|
-
**Groups**: {group_count}
|
|
157
|
-
|
|
158
|
-
## Group: {group.label}
|
|
159
|
-
|
|
160
|
-
### ISS-{id}: {title}
|
|
161
|
-
- **Root cause**: {root_cause}
|
|
162
|
-
- **Affected files**: {affected_files}
|
|
163
|
-
- **Impact scope**: {impact_scope}
|
|
164
|
-
- **Fix direction**: {fix_direction}
|
|
165
|
-
- **Confidence**: {confidence}
|
|
166
|
-
- **Cross-refs**: {related ISS-IDs}
|
|
167
|
-
|
|
168
|
-
(repeat per issue, per group)
|
|
169
|
-
|
|
170
|
-
## Cross-Group Dependencies
|
|
171
|
-
{issues that span multiple groups or share root causes}
|
|
172
|
-
|
|
173
|
-
## Constraints
|
|
174
|
-
|
|
175
|
-
### Locked
|
|
176
|
-
{constraints derived from root cause evidence}
|
|
177
|
-
|
|
178
|
-
### Free
|
|
179
|
-
{implementation choices left to planner}
|
|
180
|
-
|
|
181
|
-
Write context.md to session output directory.
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
### Step 8: Display Summary and Next Steps
|
|
187
|
-
|
|
188
|
-
```
|
|
189
|
-
Display: group breakdown, per-issue root cause, confidence, cross-refs.
|
|
190
|
-
|
|
191
|
-
Next steps:
|
|
192
|
-
- maestro-plan --gaps (plan fix tasks linked to analyzed issues)
|
|
193
|
-
- maestro-analyze --gaps {ISS-ID} (re-analyze specific issue with deeper context)
|
|
194
|
-
- manage-issue list (review all issues)
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
## Output
|
|
200
|
-
|
|
201
|
-
- **Updated**: `.workflow/issues/issues.jsonl` -- issue records enriched with `analysis` field
|
|
202
|
-
- **Created**: `context.md` -- aggregated root causes grouped for downstream `plan --gaps`
|
|
203
|
-
- **Analysis fields**: root_cause, affected_files, impact_scope, fix_direction, confidence, cross_refs, analyzed_at, tool, depth
|
|
204
|
-
|
|
205
|
-
## Quality Criteria
|
|
206
|
-
|
|
207
|
-
- Issues classified by location/component overlap before analysis
|
|
208
|
-
- Groups analyzed in parallel (Agent or delegate per group)
|
|
209
|
-
- CLI delegate attempted first; Agent fallback on failure
|
|
210
|
-
- Analysis grounded in actual codebase evidence (file:line references)
|
|
211
|
-
- Cross-issue relationships captured within groups (cross_refs)
|
|
212
|
-
- JSON result validated before writing to JSONL
|
|
213
|
-
- Issue status unchanged (analysis is non-destructive enrichment)
|
|
214
|
-
- Single-pass read-modify-write preserves JSONL integrity
|
|
215
|
-
- context.md organized by group with cross-group dependencies
|
|
216
|
-
- Next-step routing guides to plan --gaps
|
|
1
|
+
# Workflow: Issue Gaps Analysis
|
|
2
|
+
|
|
3
|
+
> **CLI variants**: see `issue-gaps-analyze.codex.md` for codex-specific notes (CSV-wave variant using `spawn_agents_on_csv`).
|
|
4
|
+
|
|
5
|
+
Root cause analysis for issues using CLI exploration and codebase context gathering.
|
|
6
|
+
Supports single issue (ISS-ID) or batch (all open/registered) with classification and parallel analysis.
|
|
7
|
+
Produces analysis records in issues.jsonl and context.md for downstream `plan --gaps`.
|
|
8
|
+
|
|
9
|
+
**Invoked by**: `maestro-analyze --gaps [ISS-ID]`
|
|
10
|
+
|
|
11
|
+
## Input
|
|
12
|
+
|
|
13
|
+
- `ISS-ID` (optional): Specific issue to analyze. If omitted, analyze all open/registered issues.
|
|
14
|
+
- `TOOL`: CLI tool for exploration (default: gemini)
|
|
15
|
+
- `DEPTH`: `standard` or `deep` (default: standard)
|
|
16
|
+
|
|
17
|
+
## Pipeline
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Load Issues → Classify & Group → Parallel Analysis (per group) → Write issue.analysis → Output context.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
### Step 1: Load Issues
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
If ISS-ID provided:
|
|
29
|
+
Load single issue from .workflow/issues/issues.jsonl
|
|
30
|
+
→ fatal if file missing or ID not found (E_ISSUE_NOT_FOUND)
|
|
31
|
+
→ skip Step 2 (classification), go directly to Step 3
|
|
32
|
+
|
|
33
|
+
If no ISS-ID:
|
|
34
|
+
Load all issues where status == "open" || status == "registered"
|
|
35
|
+
→ fatal if none found (E_NO_ISSUES)
|
|
36
|
+
|
|
37
|
+
Validate: at least 1 issue loaded.
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
### Step 2: Classify & Group (batch mode only)
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Group loaded issues by overlap in affected area:
|
|
46
|
+
|
|
47
|
+
Classification dimensions:
|
|
48
|
+
- location: file path prefix (e.g. src/auth/, src/api/)
|
|
49
|
+
- component: affected_components field overlap
|
|
50
|
+
- category: issue.category or severity level
|
|
51
|
+
|
|
52
|
+
Grouping rules:
|
|
53
|
+
1. Same location prefix (first 2 path segments) → same group
|
|
54
|
+
2. Shared affected_components → same group
|
|
55
|
+
3. Remaining ungrouped → individual groups (1 issue each)
|
|
56
|
+
|
|
57
|
+
Output: GROUPS[] where each group = { group_id, label, issues[], shared_context_keywords[] }
|
|
58
|
+
|
|
59
|
+
Display group breakdown to user (skip if AUTO_YES).
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Step 3: Gather Codebase Context (per group)
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
For each group:
|
|
68
|
+
Merge keywords from all issues in group: title, description, location, affected_components.
|
|
69
|
+
Deduplicate keywords.
|
|
70
|
+
|
|
71
|
+
Standard depth: grep keywords in source files → top 20 paths, read 10 lines around
|
|
72
|
+
top 5 matches.
|
|
73
|
+
Deep depth: standard grep + semantic Agent search (error handling, data flow, deps),
|
|
74
|
+
merge results.
|
|
75
|
+
|
|
76
|
+
Build GROUP_CONTEXT: related files, key snippets (max 50 lines), dependency chain.
|
|
77
|
+
Shared context benefits co-located issues — avoids redundant exploration.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Step 4: Run Analysis (per group, parallel across groups)
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Launch analysis for each group in parallel using Agent tool:
|
|
86
|
+
|
|
87
|
+
Agent({
|
|
88
|
+
subagent_type: "general-purpose",
|
|
89
|
+
prompt: "Root cause analysis for issues in group [{group.label}]:
|
|
90
|
+
{for each issue in group}
|
|
91
|
+
ISS-{id}: {title} — {description}, severity: {severity}, location: {location}
|
|
92
|
+
{end}
|
|
93
|
+
CODEBASE CONTEXT: {GROUP_CONTEXT}
|
|
94
|
+
TASK: For EACH issue — identify root cause (file:line) → assess impact → list related files → rate confidence → suggest fix direction. Note cross-issue relationships within this group.
|
|
95
|
+
EXPECTED: JSON array [{ iss_id, root_cause, impact, related_files[], confidence, suggested_approach, cross_refs[] }]
|
|
96
|
+
CONSTRAINTS: Evidence-only, no speculation. Use Read/Grep to verify before concluding."
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
Alternatively, attempt CLI delegate first per group:
|
|
100
|
+
|
|
101
|
+
maestro delegate "<same prompt>" --role analyze --mode analysis
|
|
102
|
+
|
|
103
|
+
If delegate fails (timeout, unavailable, parse error):
|
|
104
|
+
Fall back to Agent tool with same prompt.
|
|
105
|
+
Record fallback in analysis metadata: { tool: "agent-fallback", reason: "<error>" }
|
|
106
|
+
|
|
107
|
+
Validate response per issue: all required fields present.
|
|
108
|
+
Parse failure → save raw output to issue feedback for review.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### Step 5: Build Analysis Record (per issue)
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
For each issue from Step 4 results:
|
|
117
|
+
|
|
118
|
+
Construct IssueAnalysis:
|
|
119
|
+
{
|
|
120
|
+
root_cause,
|
|
121
|
+
affected_files: related_files,
|
|
122
|
+
impact_scope: impact,
|
|
123
|
+
fix_direction: suggested_approach,
|
|
124
|
+
confidence,
|
|
125
|
+
cross_refs: [ISS-IDs of related issues in same group],
|
|
126
|
+
analyzed_at: NOW_ISO,
|
|
127
|
+
tool: TOOL or "agent-fallback",
|
|
128
|
+
depth: DEPTH
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### Step 6: Update Issues in JSONL
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Read-modify-write issues.jsonl (single pass for all analyzed issues):
|
|
138
|
+
For each issue:
|
|
139
|
+
Set issue.analysis = ANALYSIS, updated_at = NOW_ISO
|
|
140
|
+
Append issue.history: { action: "analyzed", at: NOW_ISO, by: "maestro-analyze --gaps" }
|
|
141
|
+
Status unchanged (analysis is metadata enrichment).
|
|
142
|
+
Verify: re-read file, confirm analysis field present for all updated issues.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### Step 7: Output context.md
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Aggregate all analyzed issues into context.md, organized by group:
|
|
151
|
+
|
|
152
|
+
# Context: Issue Gaps Analysis
|
|
153
|
+
|
|
154
|
+
**Date**: {date}
|
|
155
|
+
**Issues analyzed**: {count}
|
|
156
|
+
**Groups**: {group_count}
|
|
157
|
+
|
|
158
|
+
## Group: {group.label}
|
|
159
|
+
|
|
160
|
+
### ISS-{id}: {title}
|
|
161
|
+
- **Root cause**: {root_cause}
|
|
162
|
+
- **Affected files**: {affected_files}
|
|
163
|
+
- **Impact scope**: {impact_scope}
|
|
164
|
+
- **Fix direction**: {fix_direction}
|
|
165
|
+
- **Confidence**: {confidence}
|
|
166
|
+
- **Cross-refs**: {related ISS-IDs}
|
|
167
|
+
|
|
168
|
+
(repeat per issue, per group)
|
|
169
|
+
|
|
170
|
+
## Cross-Group Dependencies
|
|
171
|
+
{issues that span multiple groups or share root causes}
|
|
172
|
+
|
|
173
|
+
## Constraints
|
|
174
|
+
|
|
175
|
+
### Locked
|
|
176
|
+
{constraints derived from root cause evidence}
|
|
177
|
+
|
|
178
|
+
### Free
|
|
179
|
+
{implementation choices left to planner}
|
|
180
|
+
|
|
181
|
+
Write context.md to session output directory.
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
### Step 8: Display Summary and Next Steps
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
Display: group breakdown, per-issue root cause, confidence, cross-refs.
|
|
190
|
+
|
|
191
|
+
Next steps:
|
|
192
|
+
- maestro-plan --gaps (plan fix tasks linked to analyzed issues)
|
|
193
|
+
- maestro-analyze --gaps {ISS-ID} (re-analyze specific issue with deeper context)
|
|
194
|
+
- manage-issue list (review all issues)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Output
|
|
200
|
+
|
|
201
|
+
- **Updated**: `.workflow/issues/issues.jsonl` -- issue records enriched with `analysis` field
|
|
202
|
+
- **Created**: `context.md` -- aggregated root causes grouped for downstream `plan --gaps`
|
|
203
|
+
- **Analysis fields**: root_cause, affected_files, impact_scope, fix_direction, confidence, cross_refs, analyzed_at, tool, depth
|
|
204
|
+
|
|
205
|
+
## Quality Criteria
|
|
206
|
+
|
|
207
|
+
- Issues classified by location/component overlap before analysis
|
|
208
|
+
- Groups analyzed in parallel (Agent or delegate per group)
|
|
209
|
+
- CLI delegate attempted first; Agent fallback on failure
|
|
210
|
+
- Analysis grounded in actual codebase evidence (file:line references)
|
|
211
|
+
- Cross-issue relationships captured within groups (cross_refs)
|
|
212
|
+
- JSON result validated before writing to JSONL
|
|
213
|
+
- Issue status unchanged (analysis is non-destructive enrichment)
|
|
214
|
+
- Single-pass read-modify-write preserves JSONL integrity
|
|
215
|
+
- context.md organized by group with cross-group dependencies
|
|
216
|
+
- Next-step routing guides to plan --gaps
|
package/workflows/issue-plan.md
CHANGED
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
# Workflow: Issue Planning
|
|
2
|
-
|
|
3
|
-
> **DEPRECATED**: This workflow was used by the deleted `manage-issue-plan` command.
|
|
4
|
-
> Use `maestro-plan --gaps` instead, which generates TASK files linked to issues via `task_refs`.
|
|
5
|
-
|
|
6
|
-
Solution planning for a specific issue with codebase-aware step generation and prompt template construction.
|
|
7
|
-
|
|
8
|
-
## Input
|
|
9
|
-
|
|
10
|
-
- `$ARGUMENTS`: `<ISS-ID> [--tool gemini|qwen] [--from-analysis]`
|
|
11
|
-
- Operates on `.workflow/issues/`
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
### Step 1: Parse Arguments
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
Extract ISS-ID (required, pattern ISS-\d{8}-\d{3}).
|
|
19
|
-
Flags: --tool gemini|qwen (default: gemini), --from-analysis (default: auto-detect)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
### Step 2: Load Issue and Validate
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
Load ISS-ID from .workflow/issues/issues.jsonl → fatal if file missing or ID not found.
|
|
28
|
-
Status check: open/registered → proceed; other → warn but continue (non-destructive).
|
|
29
|
-
If solution already exists → confirm overwrite with user (abort if declined).
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
### Step 3: Load Analysis Context
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
If ISSUE.analysis exists → build ANALYSIS_CONTEXT from root_cause, impact,
|
|
38
|
-
related_files, confidence, suggested_approach.
|
|
39
|
-
If null and --from-analysis explicit → warn (suggest running analyze first).
|
|
40
|
-
Otherwise ANALYSIS_CONTEXT = "" (proceed without).
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
### Step 4: Generate Solution via CLI
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
Delegate planning prompt with issue details + ANALYSIS_CONTEXT:
|
|
49
|
-
|
|
50
|
-
maestro delegate "Generate step-by-step solution for {ISS-ID}: {ISSUE.title}
|
|
51
|
-
ISSUE: title, description, severity, location, fix_direction
|
|
52
|
-
{ANALYSIS_CONTEXT}
|
|
53
|
-
TASK: Break into atomic steps with action types (create|modify|delete|test)
|
|
54
|
-
EXPECTED: JSON { steps: [{ title, description, files[], action }], context, promptTemplate }
|
|
55
|
-
CONSTRAINTS: Concrete, file-specific steps
|
|
56
|
-
" --to {TOOL} --mode analysis
|
|
57
|
-
|
|
58
|
-
Validate response: steps[] non-empty, each with title/description/files/action.
|
|
59
|
-
Parse failure → save raw output to issue feedback for review.
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
### Step 5: Build Solution Record
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
Construct IssueSolution:
|
|
68
|
-
{ steps, context, promptTemplate, planned_at: NOW_ISO, planned_by: TOOL }
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
### Step 6: Update Issue in JSONL
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Read-modify-write issues.jsonl:
|
|
77
|
-
Set issue.solution = SOLUTION, updated_at = NOW_ISO
|
|
78
|
-
Append issue_history: actor "planning-agent", note "{N} steps generated"
|
|
79
|
-
Status unchanged (planning is metadata enrichment).
|
|
80
|
-
Verify: re-read file, confirm solution field present.
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
### Step 7: Display Solution Steps Table and Next Steps
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
Display: approach summary, steps table (# | action | title | files), prompt template.
|
|
89
|
-
|
|
90
|
-
Next steps:
|
|
91
|
-
- manage-issue-execute {ISS-ID} (execute | --dry-run | --executor codex)
|
|
92
|
-
- manage-issue status {ISS-ID}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Output
|
|
98
|
-
|
|
99
|
-
- **Updated**: `.workflow/issues/issues.jsonl` -- issue record enriched with `solution` field
|
|
100
|
-
- **Solution fields**: steps[], context, promptTemplate, planned_at, planned_by
|
|
101
|
-
|
|
102
|
-
## Quality Criteria
|
|
103
|
-
|
|
104
|
-
- Solution steps are concrete with specific file targets and action types
|
|
105
|
-
- Analysis context included when available for better accuracy
|
|
106
|
-
- Prompt template is self-contained and executable by an agent
|
|
107
|
-
- JSON result validated before writing to JSONL
|
|
108
|
-
- Issue status unchanged (planning is non-destructive enrichment)
|
|
109
|
-
- Read-modify-write pattern preserves other issues in JSONL
|
|
110
|
-
- Next-step routing guides user to execution
|
|
1
|
+
# Workflow: Issue Planning
|
|
2
|
+
|
|
3
|
+
> **DEPRECATED**: This workflow was used by the deleted `manage-issue-plan` command.
|
|
4
|
+
> Use `maestro-plan --gaps` instead, which generates TASK files linked to issues via `task_refs`.
|
|
5
|
+
|
|
6
|
+
Solution planning for a specific issue with codebase-aware step generation and prompt template construction.
|
|
7
|
+
|
|
8
|
+
## Input
|
|
9
|
+
|
|
10
|
+
- `$ARGUMENTS`: `<ISS-ID> [--tool gemini|qwen] [--from-analysis]`
|
|
11
|
+
- Operates on `.workflow/issues/`
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
### Step 1: Parse Arguments
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Extract ISS-ID (required, pattern ISS-\d{8}-\d{3}).
|
|
19
|
+
Flags: --tool gemini|qwen (default: gemini), --from-analysis (default: auto-detect)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
### Step 2: Load Issue and Validate
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Load ISS-ID from .workflow/issues/issues.jsonl → fatal if file missing or ID not found.
|
|
28
|
+
Status check: open/registered → proceed; other → warn but continue (non-destructive).
|
|
29
|
+
If solution already exists → confirm overwrite with user (abort if declined).
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### Step 3: Load Analysis Context
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
If ISSUE.analysis exists → build ANALYSIS_CONTEXT from root_cause, impact,
|
|
38
|
+
related_files, confidence, suggested_approach.
|
|
39
|
+
If null and --from-analysis explicit → warn (suggest running analyze first).
|
|
40
|
+
Otherwise ANALYSIS_CONTEXT = "" (proceed without).
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### Step 4: Generate Solution via CLI
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Delegate planning prompt with issue details + ANALYSIS_CONTEXT:
|
|
49
|
+
|
|
50
|
+
maestro delegate "Generate step-by-step solution for {ISS-ID}: {ISSUE.title}
|
|
51
|
+
ISSUE: title, description, severity, location, fix_direction
|
|
52
|
+
{ANALYSIS_CONTEXT}
|
|
53
|
+
TASK: Break into atomic steps with action types (create|modify|delete|test)
|
|
54
|
+
EXPECTED: JSON { steps: [{ title, description, files[], action }], context, promptTemplate }
|
|
55
|
+
CONSTRAINTS: Concrete, file-specific steps
|
|
56
|
+
" --to {TOOL} --mode analysis
|
|
57
|
+
|
|
58
|
+
Validate response: steps[] non-empty, each with title/description/files/action.
|
|
59
|
+
Parse failure → save raw output to issue feedback for review.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Step 5: Build Solution Record
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
Construct IssueSolution:
|
|
68
|
+
{ steps, context, promptTemplate, planned_at: NOW_ISO, planned_by: TOOL }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### Step 6: Update Issue in JSONL
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Read-modify-write issues.jsonl:
|
|
77
|
+
Set issue.solution = SOLUTION, updated_at = NOW_ISO
|
|
78
|
+
Append issue_history: actor "planning-agent", note "{N} steps generated"
|
|
79
|
+
Status unchanged (planning is metadata enrichment).
|
|
80
|
+
Verify: re-read file, confirm solution field present.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Step 7: Display Solution Steps Table and Next Steps
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Display: approach summary, steps table (# | action | title | files), prompt template.
|
|
89
|
+
|
|
90
|
+
Next steps:
|
|
91
|
+
- manage-issue-execute {ISS-ID} (execute | --dry-run | --executor codex)
|
|
92
|
+
- manage-issue status {ISS-ID}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Output
|
|
98
|
+
|
|
99
|
+
- **Updated**: `.workflow/issues/issues.jsonl` -- issue record enriched with `solution` field
|
|
100
|
+
- **Solution fields**: steps[], context, promptTemplate, planned_at, planned_by
|
|
101
|
+
|
|
102
|
+
## Quality Criteria
|
|
103
|
+
|
|
104
|
+
- Solution steps are concrete with specific file targets and action types
|
|
105
|
+
- Analysis context included when available for better accuracy
|
|
106
|
+
- Prompt template is self-contained and executable by an agent
|
|
107
|
+
- JSON result validated before writing to JSONL
|
|
108
|
+
- Issue status unchanged (planning is non-destructive enrichment)
|
|
109
|
+
- Read-modify-write pattern preserves other issues in JSONL
|
|
110
|
+
- Next-step routing guides user to execution
|