maestro-flow 0.4.12 → 0.4.14
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/agents/role-design-author.md +6 -4
- package/.agents/skills/learn-decompose/SKILL.md +6 -6
- package/.agents/skills/learn-follow/SKILL.md +4 -4
- package/.agents/skills/learn-investigate/SKILL.md +6 -6
- package/.agents/skills/learn-retro/SKILL.md +7 -7
- package/.agents/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agents/skills/maestro-amend/SKILL.md +1 -0
- package/.agents/skills/maestro-analyze/SKILL.md +10 -3
- package/.agents/skills/maestro-blueprint/SKILL.md +4 -3
- package/.agents/skills/maestro-brainstorm/SKILL.md +6 -5
- package/.agents/skills/maestro-fork/SKILL.md +1 -1
- package/.agents/skills/maestro-guard/SKILL.md +3 -2
- package/.agents/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agents/skills/maestro-plan/SKILL.md +3 -1
- package/.agents/skills/maestro-ralph/SKILL.md +21 -16
- package/.agents/skills/maestro-ralph-execute/SKILL.md +30 -11
- package/.agents/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agents/skills/maestro-verify/SKILL.md +1 -1
- package/.agents/skills/manage-harvest/SKILL.md +1 -0
- package/.agents/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agents/skills/manage-knowhow/SKILL.md +1 -1
- package/.agents/skills/manage-learn/SKILL.md +4 -4
- package/.agents/skills/quality-auto-test/SKILL.md +5 -5
- package/.agents/skills/quality-refactor/SKILL.md +1 -1
- package/.agents/skills/quality-retrospective/SKILL.md +2 -2
- package/.agents/skills/security-audit/SKILL.md +24 -0
- package/.agents/skills/spec-remove/SKILL.md +6 -2
- package/.agy/agents/role-design-author.md +6 -4
- package/.agy/skills/learn-decompose/SKILL.md +6 -6
- package/.agy/skills/learn-follow/SKILL.md +4 -4
- package/.agy/skills/learn-investigate/SKILL.md +6 -6
- package/.agy/skills/learn-retro/SKILL.md +7 -7
- package/.agy/skills/learn-second-opinion/SKILL.md +4 -4
- package/.agy/skills/maestro-amend/SKILL.md +1 -0
- package/.agy/skills/maestro-analyze/SKILL.md +10 -3
- package/.agy/skills/maestro-blueprint/SKILL.md +4 -3
- package/.agy/skills/maestro-brainstorm/SKILL.md +6 -5
- package/.agy/skills/maestro-fork/SKILL.md +1 -1
- package/.agy/skills/maestro-guard/SKILL.md +3 -2
- package/.agy/skills/maestro-impeccable/SKILL.md +13 -11
- package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
- package/.agy/skills/maestro-plan/SKILL.md +3 -1
- package/.agy/skills/maestro-ralph/SKILL.md +21 -16
- package/.agy/skills/maestro-ralph-execute/SKILL.md +30 -11
- package/.agy/skills/maestro-roadmap/SKILL.md +4 -3
- package/.agy/skills/maestro-verify/SKILL.md +1 -1
- package/.agy/skills/manage-harvest/SKILL.md +1 -0
- package/.agy/skills/manage-issue-discover/SKILL.md +1 -1
- package/.agy/skills/manage-knowhow/SKILL.md +1 -1
- package/.agy/skills/manage-learn/SKILL.md +4 -4
- package/.agy/skills/quality-auto-test/SKILL.md +5 -5
- package/.agy/skills/quality-refactor/SKILL.md +1 -1
- package/.agy/skills/quality-retrospective/SKILL.md +2 -2
- package/.agy/skills/security-audit/SKILL.md +24 -0
- package/.agy/skills/spec-remove/SKILL.md +6 -2
- package/.claude/agents/role-design-author.md +6 -4
- package/.claude/commands/learn-decompose.md +6 -6
- package/.claude/commands/learn-follow.md +4 -4
- package/.claude/commands/learn-investigate.md +6 -6
- package/.claude/commands/learn-retro.md +7 -7
- package/.claude/commands/learn-second-opinion.md +4 -4
- package/.claude/commands/maestro-amend.md +1 -0
- package/.claude/commands/maestro-analyze.md +10 -3
- package/.claude/commands/maestro-blueprint.md +4 -3
- package/.claude/commands/maestro-brainstorm.md +6 -5
- package/.claude/commands/maestro-fork.md +1 -1
- package/.claude/commands/maestro-guard.md +3 -2
- package/.claude/commands/maestro-impeccable.md +13 -11
- package/.claude/commands/maestro-milestone-release.md +1 -1
- package/.claude/commands/maestro-plan.md +3 -1
- package/.claude/commands/maestro-ralph-execute.md +30 -11
- package/.claude/commands/maestro-ralph.md +21 -16
- package/.claude/commands/maestro-roadmap.md +4 -3
- package/.claude/commands/maestro-verify.md +1 -1
- package/.claude/commands/manage-harvest.md +1 -0
- package/.claude/commands/manage-issue-discover.md +1 -1
- package/.claude/commands/manage-knowhow.md +1 -1
- package/.claude/commands/manage-learn.md +4 -4
- package/.claude/commands/quality-auto-test.md +5 -5
- package/.claude/commands/quality-refactor.md +1 -1
- package/.claude/commands/quality-retrospective.md +2 -2
- package/.claude/commands/security-audit.md +24 -0
- package/.claude/commands/spec-remove.md +6 -2
- package/.codex/skills/learn-decompose/SKILL.md +4 -4
- package/.codex/skills/learn-follow/SKILL.md +3 -3
- package/.codex/skills/learn-investigate/SKILL.md +3 -3
- package/.codex/skills/learn-retro/SKILL.md +3 -3
- package/.codex/skills/learn-second-opinion/SKILL.md +3 -3
- package/.codex/skills/maestro-analyze/SKILL.md +4 -3
- package/.codex/skills/maestro-blueprint/SKILL.md +4 -3
- package/.codex/skills/maestro-brainstorm/SKILL.md +148 -7
- package/.codex/skills/maestro-fork/SKILL.md +2 -0
- package/.codex/skills/maestro-guard/SKILL.md +3 -2
- package/.codex/skills/maestro-impeccable/SKILL.md +13 -11
- package/.codex/skills/maestro-ralph/SKILL.md +1 -1
- package/.codex/skills/maestro-roadmap/SKILL.md +4 -3
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +9 -5
- package/.codex/skills/manage-harvest/SKILL.md +1 -1
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +1 -1
- package/.codex/skills/manage-learn/SKILL.md +3 -3
- package/.codex/skills/quality-refactor/SKILL.md +2 -2
- package/.codex/skills/quality-retrospective/SKILL.md +3 -3
- package/.codex/skills/security-audit/SKILL.md +24 -0
- package/.codex/skills/spec-remove/SKILL.md +8 -2
- package/package.json +1 -1
- package/workflows/agy-instructions.md +2 -0
- package/workflows/analyze.md +6 -6
- package/workflows/auto-test.md +6 -1
- package/workflows/brainstorm.md +26 -12
- package/workflows/claude-instructions.md +2 -0
- package/workflows/codex-instructions.md +16 -83
- package/workflows/debug.md +5 -5
- package/workflows/harvest.md +2 -2
- package/workflows/impeccable.md +2 -0
- package/workflows/init.md +1 -1
- package/workflows/issue-analyze.md +14 -100
- package/workflows/issue-discover.md +2 -3
- package/workflows/issue-execute.md +1 -1
- package/workflows/issue-gaps-analyze.md +2 -0
- package/workflows/learn.md +1 -1
- package/workflows/maestro-chain-execute.md +10 -228
- package/workflows/maestro.md +1 -0
- package/workflows/milestone-complete.md +3 -3
- package/workflows/milestone-release.md +82 -0
- package/workflows/plan.md +5 -5
- package/workflows/quick.md +4 -4
- package/workflows/refactor.md +3 -3
- package/workflows/retrospective.md +4 -4
- package/workflows/roadmap.md +1 -1
- package/workflows/spec-generate.md +2 -0
- package/workflows/specs-add.md +6 -1
- package/workflows/specs-load.md +6 -1
- package/workflows/specs-setup.md +6 -1
- package/workflows/sync.md +13 -0
- package/workflows/tools-spec.md +4 -0
- package/workflows/ui-design.md +4 -4
- package/workflows/ui-style.md +1 -1
- package/workflows/verify.md +1 -1
- package/workflows/wiki-manage.md +2 -0
|
@@ -3,109 +3,23 @@
|
|
|
3
3
|
> **DEPRECATED**: Superseded by `issue-gaps-analyze.md` which adds batch support and context.md output.
|
|
4
4
|
> Use `maestro-analyze --gaps [ISS-ID]` instead.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
This workflow's executable steps have been removed to prevent divergent implementations.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Migration
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
| Old usage | New usage |
|
|
11
|
+
|-----------|-----------|
|
|
12
|
+
| `manage-issue-analyze ISS-ID` | `/maestro-analyze --gaps ISS-ID` |
|
|
13
|
+
| `manage-issue-analyze` (batch) | `/maestro-analyze --gaps` |
|
|
14
|
+
| `manage-issue-plan ISS-ID` (follow-up) | `/maestro-plan --gaps ISS-ID` |
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
## See Also
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
- `issue-gaps-analyze.md` — current implementation (single + batch, classification, parallel exploration, context.md)
|
|
19
|
+
- `issue-gaps-analyze.codex.md` — codex variant using `spawn_agents_on_csv` waves
|
|
20
|
+
- `issue-execute.md` — downstream execution after planning
|
|
16
21
|
|
|
17
|
-
|
|
18
|
-
Extract ISS-ID (required, pattern ISS-\d{8}-\d{3}).
|
|
19
|
-
Flags: --tool gemini|qwen (default: gemini), --depth standard|deep (default: standard)
|
|
20
|
-
```
|
|
22
|
+
## Notes
|
|
21
23
|
|
|
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
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### Step 3: Gather Codebase Context
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
Extract keywords from issue title, description, location, affected_components.
|
|
37
|
-
|
|
38
|
-
Standard depth: grep keywords in source files → top 20 paths, read 10 lines around
|
|
39
|
-
top 5 matches.
|
|
40
|
-
Deep depth: standard grep + semantic Agent search (error handling, data flow, deps),
|
|
41
|
-
merge results.
|
|
42
|
-
|
|
43
|
-
Build CODEBASE_CONTEXT: related files, key snippets (max 50 lines), dependency chain.
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
### Step 4: Run CLI Analysis
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
Delegate root cause analysis with issue details + CODEBASE_CONTEXT:
|
|
52
|
-
|
|
53
|
-
maestro delegate "Root cause analysis for {ISS-ID}: {ISSUE.title}
|
|
54
|
-
ISSUE: title, description, severity, location, fix_direction
|
|
55
|
-
CODEBASE CONTEXT: {CODEBASE_CONTEXT}
|
|
56
|
-
TASK: Identify root cause (file:line) → assess impact → list related files → rate confidence → suggest fix
|
|
57
|
-
EXPECTED: JSON { root_cause, impact, related_files[], confidence, suggested_approach }
|
|
58
|
-
CONSTRAINTS: Evidence-only, no speculation
|
|
59
|
-
" --to {TOOL} --mode analysis
|
|
60
|
-
|
|
61
|
-
Validate response: all required fields present.
|
|
62
|
-
Parse failure → save raw output to issue feedback for review.
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
### Step 5: Build Analysis Record
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
Construct IssueAnalysis:
|
|
71
|
-
{ root_cause, impact, related_files, confidence, suggested_approach, analyzed_at: NOW_ISO, analyzed_by: TOOL }
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
### Step 6: Update Issue in JSONL
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
Read-modify-write issues.jsonl:
|
|
80
|
-
Set issue.analysis = ANALYSIS, updated_at = NOW_ISO
|
|
81
|
-
Append issue_history: actor "analysis-agent", note "confidence: {confidence}"
|
|
82
|
-
Status unchanged (analysis is metadata enrichment).
|
|
83
|
-
Verify: re-read file, confirm analysis field present.
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
### Step 7: Display Summary and Next Steps
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
Display: root cause, impact, confidence, related files, suggested approach.
|
|
92
|
-
|
|
93
|
-
Next steps:
|
|
94
|
-
- manage-issue-plan {ISS-ID} (generate solution | --tool {TOOL})
|
|
95
|
-
- manage-issue status {ISS-ID}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Output
|
|
101
|
-
|
|
102
|
-
- **Updated**: `.workflow/issues/issues.jsonl` -- issue record enriched with `analysis` field
|
|
103
|
-
- **Analysis fields**: root_cause, impact, related_files, confidence, suggested_approach, analyzed_at, analyzed_by
|
|
104
|
-
|
|
105
|
-
## Quality Criteria
|
|
106
|
-
|
|
107
|
-
- Analysis grounded in actual codebase evidence (file:line references)
|
|
108
|
-
- JSON result validated before writing to JSONL
|
|
109
|
-
- Issue status unchanged (analysis is non-destructive enrichment)
|
|
110
|
-
- Read-modify-write pattern preserves other issues in JSONL
|
|
111
|
-
- Next-step routing guides user to solution planning
|
|
24
|
+
- Issue records analyzed by the new pipeline still write to `.workflow/issues/issues.jsonl` with `analysis` field (root_cause, impact, related_files, confidence, suggested_approach, analyzed_at, analyzed_by).
|
|
25
|
+
- Status is unchanged by analysis (non-destructive enrichment).
|
|
@@ -148,7 +148,7 @@ Display summary: session ID, mode, raw/unique counts, per-perspective breakdown,
|
|
|
148
148
|
Next steps:
|
|
149
149
|
- manage-issue list --severity critical
|
|
150
150
|
- manage-issue list
|
|
151
|
-
- manage-issue-discover by-prompt
|
|
151
|
+
- see also: /manage-issue-discover usage docs (by-prompt mode for focused scans)
|
|
152
152
|
```
|
|
153
153
|
|
|
154
154
|
---
|
|
@@ -211,8 +211,7 @@ Display summary: session, prompt, rounds, raw/unique counts, per-dimension + sev
|
|
|
211
211
|
|
|
212
212
|
Next steps:
|
|
213
213
|
- manage-issue list --source discovery
|
|
214
|
-
- manage-issue-discover (full 8-perspective scan)
|
|
215
|
-
- manage-issue-discover by-prompt "..." (explore another area)
|
|
214
|
+
- see also: /manage-issue-discover usage docs (full 8-perspective scan and by-prompt mode)
|
|
216
215
|
```
|
|
217
216
|
|
|
218
217
|
---
|
|
@@ -25,7 +25,7 @@ Flags: --executor claude-code|codex|gemini (default: claude-code), --dry-run (de
|
|
|
25
25
|
|
|
26
26
|
```
|
|
27
27
|
Load ISS-ID from .workflow/issues/issues.jsonl → fatal if file missing or ID not found.
|
|
28
|
-
Require issue.solution with non-empty steps[] → error if missing (run
|
|
28
|
+
Require issue.solution with non-empty steps[] → error if missing (run `maestro-plan --gaps {ISS-ID}` first).
|
|
29
29
|
Resolve EXECUTOR → CLI tool (claude-code→claude, codex→codex, gemini→gemini), all with --mode write.
|
|
30
30
|
```
|
|
31
31
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Workflow: Issue Gaps Analysis
|
|
2
2
|
|
|
3
|
+
> **CLI variants**: see `issue-gaps-analyze.codex.md` for codex-specific notes (CSV-wave variant using `spawn_agents_on_csv`).
|
|
4
|
+
|
|
3
5
|
Root cause analysis for issues using CLI exploration and codebase context gathering.
|
|
4
6
|
Supports single issue (ISS-ID) or batch (all open/registered) with classification and parallel analysis.
|
|
5
7
|
Produces analysis records in issues.jsonl and context.md for downstream `plan --gaps`.
|
package/workflows/learn.md
CHANGED
|
@@ -8,7 +8,7 @@ Storage:
|
|
|
8
8
|
|
|
9
9
|
**Shared store rationale:** Manual captures (`source: "manual"`), tips (`source: "tip"`), retrospective-distilled insights (`source: "retrospective"`, `lens: <name>` from `quality-retrospective`), and learn-retro insights (`source: "retro-git"` or `source: "retro-decision"` from `learn-retro`) all live in the same store so search and list see the entire knowledge corpus. The `source` field disambiguates origin.
|
|
10
10
|
|
|
11
|
-
This workflow does NOT spawn agents
|
|
11
|
+
This workflow does NOT spawn sub-agents; it may invoke maestro CLI utilities (e.g. `maestro wiki search`, `maestro wiki list`) for list/search subcommands. The core capture flow is a thin file operation: parse → infer → append → confirm.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -4,235 +4,17 @@
|
|
|
4
4
|
> Both maestro and ralph sessions now use `maestro-ralph-execute` for step execution.
|
|
5
5
|
> This file is kept for reference only and will be removed in a future version.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
Reads session status.json, loops through steps with per-step engine selection,
|
|
9
|
-
context propagation, post-step Gemini analysis, and error handling.
|
|
10
|
-
Dual-track progress: status.json (persistence + resume) and TodoWrite (UI visibility).
|
|
7
|
+
## Migration
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
- TodoWrite initialized by selection workflow (Step 3h) with `MAESTRO:{chain_name}:` prefix
|
|
15
|
-
- $SESSION_PATH passed from maestro.md dispatch
|
|
9
|
+
- Caller dispatching from `maestro.md` → use `Skill({ skill: "maestro-ralph-execute" })`
|
|
10
|
+
- Resume from session → `Skill({ skill: "maestro-ralph-execute" })` (auto-discovers latest running session via `.workflow/.maestro/*/status.json`)
|
|
16
11
|
|
|
17
|
-
##
|
|
12
|
+
## References
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
- `~/.maestro/workflows/maestro.md` — coordinator that creates sessions and dispatches to the unified executor
|
|
15
|
+
- `~/.maestro/workflows/maestro-ralph-execute.md` — current canonical executor (handles both maestro static chains and ralph adaptive chains)
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
Validate: `status == "running"` and at least one pending step exists.
|
|
26
|
-
|
|
27
|
-
**TodoWrite sync (resume mode):** If TodoWrite has no `MAESTRO:{chain_name}:` entries (e.g., fresh context after `/maestro -c`), rebuild from status.json:
|
|
28
|
-
|
|
29
|
-
```javascript
|
|
30
|
-
const todos = steps.map((step, i) => ({
|
|
31
|
-
content: `MAESTRO:${chain_name}: [${i + 1}/${steps.length}] ${step.skill}`,
|
|
32
|
-
status: step.status === 'completed' ? 'completed'
|
|
33
|
-
: i === $STEP_INDEX ? 'in_progress'
|
|
34
|
-
: 'pending'
|
|
35
|
-
}));
|
|
36
|
-
TodoWrite({ todos });
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Display banner:
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
============================================================
|
|
43
|
-
CHAIN EXECUTOR
|
|
44
|
-
============================================================
|
|
45
|
-
Session: {session_id}
|
|
46
|
-
Chain: {chain_name}
|
|
47
|
-
Steps: {completed}/{total} done, starting from step {$STEP_INDEX}
|
|
48
|
-
Auto: {auto_mode}
|
|
49
|
-
Exec: {exec_mode}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Step 2: Context & Argument Assembly
|
|
53
|
-
|
|
54
|
-
Initialize context object from `status.json.context`:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
context = {
|
|
58
|
-
current_phase, // from status.json.context or top-level phase
|
|
59
|
-
user_intent, // from status.json.context or top-level intent
|
|
60
|
-
issue_id,
|
|
61
|
-
milestone_num,
|
|
62
|
-
spec_session_id,
|
|
63
|
-
scratch_dir
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### assembleArgs(step)
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
1. Substitute placeholders in step.args:
|
|
71
|
-
{phase} → context.current_phase
|
|
72
|
-
{description} → context.user_intent (chainMap uses {description} as alias for user intent)
|
|
73
|
-
{issue_id} → context.issue_id
|
|
74
|
-
{spec_session_id} → context.spec_session_id
|
|
75
|
-
{scratch_dir} → context.scratch_dir
|
|
76
|
-
{milestone_num} → context.milestone_num
|
|
77
|
-
|
|
78
|
-
2. In auto_mode, append per-command flag if not already present:
|
|
79
|
-
maestro-analyze / maestro-brainstorm / maestro-roadmap / maestro-impeccable → -y
|
|
80
|
-
maestro-plan → --auto
|
|
81
|
-
quality-test → --auto-fix
|
|
82
|
-
quality-retrospective → --auto-yes
|
|
83
|
-
|
|
84
|
-
3. Shell-escape strings with single quotes for CLI delegate calls.
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Step 3: Step Loop
|
|
88
|
-
|
|
89
|
-
For each step starting at `$STEP_INDEX`:
|
|
90
|
-
|
|
91
|
-
### 3a. Select engine & display banner
|
|
92
|
-
|
|
93
|
-
Read `step.engine` from status.json (pre-computed by selection workflow Step 3e).
|
|
94
|
-
|
|
95
|
-
If `step.engine` is missing or null, fallback to auto selection:
|
|
96
|
-
```
|
|
97
|
-
CLI: maestro-plan, maestro-execute, maestro-analyze, maestro-brainstorm,
|
|
98
|
-
maestro-roadmap, maestro-impeccable, quality-refactor
|
|
99
|
-
Internal: everything else (current-session Skill() call)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Display: `[Step {N}/{total}] /{step.skill} [{engine}] — {args}`
|
|
103
|
-
|
|
104
|
-
Update status.json: step `status = "running"`, `engine`, `started_at`.
|
|
105
|
-
|
|
106
|
-
Context window hint:
|
|
107
|
-
- Step >= 4 and not autoYes: hint user about `/maestro -c` for fresh context resume.
|
|
108
|
-
- autoYes and step >= 5: log warning to status.json.
|
|
109
|
-
|
|
110
|
-
### 3b. Execute (engine-dependent)
|
|
111
|
-
|
|
112
|
-
**Internal engine** — current-session Skill() call (synchronous, visible):
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
Skill({ skill: step.skill, args: assembledArgs })
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**CLI engine** — template-driven, async, context-isolated:
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
1. Load template ~/.maestro/templates/cli/prompts/coordinate-step.txt
|
|
122
|
-
2. Build analysisHints from previous step's next_step_hints
|
|
123
|
-
(prompt_additions, cautions, context_to_carry)
|
|
124
|
-
3. Substitute template placeholders:
|
|
125
|
-
{{COMMAND}}, {{ARGS}}, {{STEP_N}}, {{AUTO_DIRECTIVE}},
|
|
126
|
-
{{CHAIN_NAME}}, {{ANALYSIS_HINTS}}
|
|
127
|
-
4. Run:
|
|
128
|
-
Bash(maestro delegate "<prompt>" --to {cli_tool} --mode write,
|
|
129
|
-
run_in_background: true, timeout: 600000)
|
|
130
|
-
5. **STOP** — wait for background callback
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### 3c. Parse output & update context
|
|
134
|
-
|
|
135
|
-
Scan step output for context propagation:
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
PHASE: N → context.current_phase
|
|
139
|
-
SPEC-xxx → context.spec_session_id
|
|
140
|
-
scratch_dir: path → context.scratch_dir
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
CLI: capture `exec_id` from stderr `[MAESTRO_EXEC_ID=<id>]`.
|
|
144
|
-
|
|
145
|
-
**Persist context back to status.json** after each step — write updated `context` field and `current_step`. This enables resume via `/maestro -c`.
|
|
146
|
-
|
|
147
|
-
### 3d. Handle result & sync dual tracking
|
|
148
|
-
|
|
149
|
-
**Success:**
|
|
150
|
-
1. status.json: mark step `status = "completed"`, set `completed_at`
|
|
151
|
-
2. TodoWrite: mark current step `completed`, next step `in_progress`
|
|
152
|
-
3. CLI: save output to `step-{N}-output.txt` in session directory
|
|
153
|
-
|
|
154
|
-
```javascript
|
|
155
|
-
// Dual-track update after each step
|
|
156
|
-
function updateDualTracking(stepIndex, total, chain_name, result) {
|
|
157
|
-
// 1. status.json — already updated in 3c
|
|
158
|
-
// 2. TodoWrite — sync UI
|
|
159
|
-
const todos = getAllTodos().map(todo => {
|
|
160
|
-
if (!todo.content.startsWith(`MAESTRO:${chain_name}:`)) return todo;
|
|
161
|
-
const num = extractStepNum(todo.content);
|
|
162
|
-
if (num === stepIndex + 1) return { ...todo, status: result };
|
|
163
|
-
if (num === stepIndex + 2 && result === 'completed') return { ...todo, status: 'in_progress' };
|
|
164
|
-
return todo;
|
|
165
|
-
});
|
|
166
|
-
TodoWrite({ todos });
|
|
167
|
-
}
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**Failure:**
|
|
171
|
-
1. status.json: mark step `"failed"` or `"skipped"`
|
|
172
|
-
2. TodoWrite: mark step `completed` (skipped) or keep `in_progress` (retry)
|
|
173
|
-
3. `auto_mode` → retry once, then skip
|
|
174
|
-
4. Interactive → offer: Retry (max 2) / Skip / Abort
|
|
175
|
-
5. Abort → status.json `status = "aborted"`, TodoWrite mark remaining `pending`, display resume hint: `/maestro -c`
|
|
176
|
-
|
|
177
|
-
### 3e. Post-step analysis (CLI steps only)
|
|
178
|
-
|
|
179
|
-
Skip if: step failed/skipped, or `engine == 'internal'`.
|
|
180
|
-
|
|
181
|
-
Delegate to gemini (analysis mode, `--resume` if `gemini_session_id` exists) with prompt containing:
|
|
182
|
-
- Step command, args, chain name, intent
|
|
183
|
-
- Last 200 lines of step output
|
|
184
|
-
- Next step info (command, args) if any
|
|
185
|
-
|
|
186
|
-
Expected JSON response:
|
|
187
|
-
|
|
188
|
-
```json
|
|
189
|
-
{
|
|
190
|
-
"quality_score": "<0-100>",
|
|
191
|
-
"execution_assessment": {
|
|
192
|
-
"success": "<bool>",
|
|
193
|
-
"completeness": "<full|partial|minimal>",
|
|
194
|
-
"key_outputs": [],
|
|
195
|
-
"missing_outputs": []
|
|
196
|
-
},
|
|
197
|
-
"issues": [
|
|
198
|
-
{ "severity": "critical|high|medium|low", "description": "" }
|
|
199
|
-
],
|
|
200
|
-
"next_step_hints": {
|
|
201
|
-
"prompt_additions": "<extra context for next step>",
|
|
202
|
-
"cautions": ["<things to watch out for>"],
|
|
203
|
-
"context_to_carry": "<key facts from this step>"
|
|
204
|
-
},
|
|
205
|
-
"step_summary": ""
|
|
206
|
-
}
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
On callback:
|
|
210
|
-
1. Capture gemini `exec_id` → store as `gemini_session_id` in status.json for session continuity.
|
|
211
|
-
2. Store analysis in `step_analyses[]` and `step-{N}-analysis.json` in session directory.
|
|
212
|
-
3. Advance to next step (**3a**).
|
|
213
|
-
|
|
214
|
-
## Step 4: Completion Report
|
|
215
|
-
|
|
216
|
-
Finalize dual tracking:
|
|
217
|
-
1. status.json: `status = "completed"`
|
|
218
|
-
2. TodoWrite: all steps marked `completed` (or `completed` for skipped)
|
|
219
|
-
|
|
220
|
-
```
|
|
221
|
-
============================================================
|
|
222
|
-
MAESTRO SESSION COMPLETE
|
|
223
|
-
============================================================
|
|
224
|
-
Session: {session_id}
|
|
225
|
-
Chain: {chain_name}
|
|
226
|
-
Steps: {completed}/{total} completed
|
|
227
|
-
Phase: {context.current_phase}
|
|
228
|
-
|
|
229
|
-
Results:
|
|
230
|
-
[✓] 1. maestro-plan — completed [cli] (quality: 85/100)
|
|
231
|
-
[✓] 2. maestro-verify — completed [internal]
|
|
232
|
-
[—] 3. quality-review — skipped [internal]
|
|
233
|
-
|
|
234
|
-
CLI Avg Quality: {avgScore}/100 (based on {cliStepCount} cli steps)
|
|
235
|
-
|
|
236
|
-
Next: /maestro continue | /manage-status
|
|
237
|
-
============================================================
|
|
238
|
-
```
|
|
17
|
+
The unified executor preserves all behaviour previously documented here:
|
|
18
|
+
status.json persistence, TodoWrite dual-tracking, per-step engine selection (`Skill` vs `CLI`),
|
|
19
|
+
context propagation across steps, post-step Gemini analysis for CLI steps,
|
|
20
|
+
and retry/skip/abort on failure.
|
package/workflows/maestro.md
CHANGED
|
@@ -357,6 +357,7 @@ const chainMap = {
|
|
|
357
357
|
'spec-driven': [{ cmd: 'maestro-init' }, { cmd: 'maestro-roadmap', args: '--mode full "{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
358
358
|
'roadmap-driven': [{ cmd: 'maestro-init' }, { cmd: 'maestro-roadmap', args: '"{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
359
359
|
'brainstorm-driven': [{ cmd: 'maestro-brainstorm', args: '"{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
360
|
+
'brainstorm_visualize': [{ cmd: 'brainstorm-visualize', args: '"{description}"' }],
|
|
360
361
|
'impeccable-build': [{ cmd: 'maestro-impeccable', args: '"{description}" --chain build' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
361
362
|
'impeccable-driven': [{ cmd: 'maestro-impeccable', args: '"{description}" --chain build' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
362
363
|
'analyze-plan-execute': [{ cmd: 'maestro-analyze', args: '"{description}" -q' }, { cmd: 'maestro-plan', args: '--dir {scratch_dir}' }, { cmd: 'maestro-execute', args: '--dir {scratch_dir}' }],
|
|
@@ -15,9 +15,9 @@ Archive completed milestone, move artifacts to history, and prepare for next.
|
|
|
15
15
|
2. Check milestone audit status:
|
|
16
16
|
- Read `.workflow/milestones/{milestone}/audit-report.md` if exists
|
|
17
17
|
- If no audit report:
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
18
|
+
- ERROR E004: "No audit report found. Audit is a required hard contract — cannot complete without it."
|
|
19
|
+
- Guidance: "Run `/maestro-milestone-audit` first, then re-run this command."
|
|
20
|
+
- Exit (skipping audit is not permitted)
|
|
21
21
|
- If verdict is FAIL: ERROR E002
|
|
22
22
|
|
|
23
23
|
3. Verify all milestone artifacts have status "completed" → ERROR E003 if any incomplete (list ids and statuses)
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Workflow: milestone-release
|
|
2
|
+
|
|
3
|
+
Bump version, generate changelog, and tag the current milestone for release.
|
|
4
|
+
|
|
5
|
+
> **STATUS: PLACEHOLDER** — minimal skeleton referenced by `maestro-milestone-release.md`.
|
|
6
|
+
> Full release pipeline is TODO. Do not invoke until contents below are fleshed out.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Arguments
|
|
11
|
+
|
|
12
|
+
| Flag | Description | Default |
|
|
13
|
+
|------|-------------|---------|
|
|
14
|
+
| `<milestone>` | Milestone id from `.workflow/state.json` `milestones[]` | current_milestone |
|
|
15
|
+
| `--bump <level>` | Semver bump: `major` \| `minor` \| `patch` | `minor` |
|
|
16
|
+
| `--dry-run` | Preview changes without writing | `false` |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Step 1: Validation
|
|
21
|
+
|
|
22
|
+
1. Read `.workflow/state.json`:
|
|
23
|
+
- Determine target milestone (from `$ARGUMENTS` or `current_milestone`).
|
|
24
|
+
- If no milestone: ERROR E001.
|
|
25
|
+
2. Verify milestone is **completed**:
|
|
26
|
+
- Read `.workflow/milestones/{milestone}/audit-report.md` — verdict must be `PASS`.
|
|
27
|
+
- If missing or non-PASS: ERROR E002 with guidance to run `/maestro-milestone-complete` first.
|
|
28
|
+
3. Read package manifest (`package.json` / `pyproject.toml` / etc.) — locate current version. TODO: multi-manifest detection.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Step 2: Version Bump
|
|
33
|
+
|
|
34
|
+
1. Compute next version from `--bump` level (semver). TODO: prerelease/build metadata handling.
|
|
35
|
+
2. Update manifest file in place. If `--dry-run`: print diff and exit.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 3: Changelog Generation
|
|
40
|
+
|
|
41
|
+
1. Read milestone audit report + retrospective insights (`.workflow/milestones/{milestone}/`).
|
|
42
|
+
2. Render `CHANGELOG.md` entry — header `## [vX.Y.Z] - YYYY-MM-DD`, body grouped by `Added / Changed / Fixed / Removed`.
|
|
43
|
+
3. TODO: integrate with `quality-retrospective` output for richer narrative.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Step 4: Tag and Commit
|
|
48
|
+
|
|
49
|
+
1. Stage updated manifest + `CHANGELOG.md`.
|
|
50
|
+
2. Commit: `chore(release): vX.Y.Z — {milestone}`.
|
|
51
|
+
3. Create annotated git tag `vX.Y.Z`.
|
|
52
|
+
4. TODO: optionally push tag (`--push` flag).
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Outputs
|
|
57
|
+
|
|
58
|
+
| Artifact | Status |
|
|
59
|
+
|----------|--------|
|
|
60
|
+
| Updated manifest version | written |
|
|
61
|
+
| `CHANGELOG.md` entry | appended |
|
|
62
|
+
| Git tag `vX.Y.Z` | created locally (not pushed) |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Error Codes
|
|
67
|
+
|
|
68
|
+
| Code | Meaning |
|
|
69
|
+
|------|---------|
|
|
70
|
+
| E001 | No milestone resolvable |
|
|
71
|
+
| E002 | Milestone not completed / audit not PASS |
|
|
72
|
+
| E003 | Manifest file not found |
|
|
73
|
+
| E004 | Git working tree dirty (uncommitted changes block tagging) |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## TODO (placeholder gaps)
|
|
78
|
+
|
|
79
|
+
- Multi-package monorepo support.
|
|
80
|
+
- Push tag + GitHub release integration.
|
|
81
|
+
- Roll-back path on failed tag.
|
|
82
|
+
- Wire to `manage-knowhow-capture` for release-note capture.
|
package/workflows/plan.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Produces two-layer plan output: `plan.json` (overview with task_ids[] and waves[]) + `.task/TASK-{NNN}.json` (individual task definitions).
|
|
6
6
|
|
|
7
|
-
All output goes to `.workflow/scratch/plan-{slug}-{
|
|
7
|
+
All output goes to `.workflow/scratch/{YYYYMMDD}-plan-[P{N}-|M{N}-]{slug}/`. Date-first ordering enables chronological sorting; scope prefix (`P{N}` for phase, `M{N}` for milestone, omit for standalone/adhoc) enables fallback identification.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -166,12 +166,12 @@ When `--tdd` is active:
|
|
|
166
166
|
- Map `insights[].summary` to implementation guidance for relevant tasks
|
|
167
167
|
- These replace the need for a separate analyze step when brainstorm already provided sufficient role analysis
|
|
168
168
|
|
|
169
|
-
|
|
169
|
+
6. **Parallel exploration** (skip if `--gaps` or upstream analysis loaded)
|
|
170
170
|
- Exploration angles (1-4 based on complexity): architecture, implementation, integration, risk
|
|
171
171
|
- Spawn 1-4 `cli-explore-agent` in parallel, each with phase goal + success_criteria + one angle
|
|
172
172
|
- Output: `.process/exploration-{angle}.json`, `.process/explorations-manifest.json`, `.process/context-package.json`
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
6b. **CLI supplementary context** (runs in parallel with step 6, skip if `--gaps` or no CLI tools enabled)
|
|
175
175
|
```
|
|
176
176
|
IF no CLI tools enabled: skip
|
|
177
177
|
|
|
@@ -188,7 +188,7 @@ When `--tdd` is active:
|
|
|
188
188
|
```
|
|
189
189
|
**On callback:** Parse result, merge into explorationContext as `cli_context` field. Planner uses patterns for task `read_first[]`, dependencies for wave ordering, conflict_risks for collision detection.
|
|
190
190
|
|
|
191
|
-
|
|
191
|
+
7. **Gap-mode context** (if `--gaps`)
|
|
192
192
|
|
|
193
193
|
Gap sources (in priority order, first non-empty wins, then additionals merged):
|
|
194
194
|
- **Primary**: `.workflow/issues/issues.jsonl` — filter by phase_ref + status in ["registered","diagnosed"], mark as "planning"
|
|
@@ -298,7 +298,7 @@ Every TASK-*.json MUST include these fields — they are NOT optional:
|
|
|
298
298
|
|
|
299
299
|
### Gap Mode (`--gaps`)
|
|
300
300
|
|
|
301
|
-
Spawn `workflow-planner` agent with: explorationContext (gap list from P1 Step
|
|
301
|
+
Spawn `workflow-planner` agent with: explorationContext (gap list from P1 Step 7), spec-ref, doc-index.json, phase goal + success_criteria, templates, mode = `gap-fix`.
|
|
302
302
|
|
|
303
303
|
Planner: for each gap emit one task — `type: "fix"`, `description`, `action` (concrete fix_direction), `read_first` (affected files), `convergence.criteria` (grep-verifiable), `issue_id` (if source == "issue"); assign IDs and waves; build plan.json.
|
|
304
304
|
|
package/workflows/quick.md
CHANGED
|
@@ -69,10 +69,10 @@ Quick tasks can run mid-phase -- validation only checks project exists, not phas
|
|
|
69
69
|
**Create scratch directory:**
|
|
70
70
|
|
|
71
71
|
Generate slug from $DESCRIPTION (lowercase, hyphens, max 40 chars).
|
|
72
|
-
Set date to current date (
|
|
72
|
+
Set date to current date (YYYYMMDD).
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
QUICK_DIR=".workflow/scratch
|
|
75
|
+
QUICK_DIR=".workflow/scratch/${date}-quick-${slug}"
|
|
76
76
|
mkdir -p "$QUICK_DIR/.task"
|
|
77
77
|
mkdir -p "$QUICK_DIR/.summaries"
|
|
78
78
|
```
|
|
@@ -80,7 +80,7 @@ mkdir -p "$QUICK_DIR/.summaries"
|
|
|
80
80
|
Write index.json:
|
|
81
81
|
```json
|
|
82
82
|
{
|
|
83
|
-
"id": "quick-{slug}
|
|
83
|
+
"id": "{YYYYMMDD}-quick-{slug}",
|
|
84
84
|
"type": "quick",
|
|
85
85
|
"title": "{$DESCRIPTION}",
|
|
86
86
|
"status": "active",
|
|
@@ -315,7 +315,7 @@ Read state.json. Add quick task to accumulated_context or quick_tasks array.
|
|
|
315
315
|
Record:
|
|
316
316
|
```json
|
|
317
317
|
{
|
|
318
|
-
"id": "quick-{slug}
|
|
318
|
+
"id": "{YYYYMMDD}-quick-{slug}",
|
|
319
319
|
"description": "{$DESCRIPTION}",
|
|
320
320
|
"completed_at": "{ISO timestamp}",
|
|
321
321
|
"directory": "{$QUICK_DIR}",
|
package/workflows/refactor.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Systematically reduce tech debt through scope analysis, task planning, and reflection-driven execution. Each refactoring round records strategy, outcome, and adjustments. Existing tests must pass after every change.
|
|
4
4
|
|
|
5
|
-
Output: scratch/refactor-{slug}
|
|
5
|
+
Output: scratch/{YYYYMMDD}-refactor-{slug}/ with index.json + reflection-log.md + .task/ + .summaries/
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -24,13 +24,13 @@ Output: scratch/refactor-{slug}-{date}/ with index.json + reflection-log.md + .t
|
|
|
24
24
|
|
|
25
25
|
Prompt user for scope type: module path, feature area, or full codebase.
|
|
26
26
|
|
|
27
|
-
Generate slug from scope (lowercase, hyphens, max 40 chars). Set date =
|
|
27
|
+
Generate slug from scope (lowercase, hyphens, max 40 chars). Set date = YYYYMMDD.
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
31
|
### Step 2: Create Scratch Directory
|
|
32
32
|
|
|
33
|
-
Create `REFACTOR_DIR=".workflow/scratch
|
|
33
|
+
Create `REFACTOR_DIR=".workflow/scratch/${date}-refactor-${slug}"` with `.task/` and `.summaries/` subdirs.
|
|
34
34
|
|
|
35
35
|
Write index.json: id, type="refactor", title, status="active", scope, plan (empty task_ids), execution (method=agent, counts=0), reflection (rounds=0).
|
|
36
36
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Multi-lens 复盘 of completed phase artifacts. Consumes existing execution outputs (verification.json, review.json, issues.jsonl, .summaries/, state.json, uat.md, plan.json) and routes distilled insights into the spec / note / issue / knowhow stores.
|
|
4
4
|
|
|
5
|
-
This is a **post-execution analysis** workflow. It reads only — until the routing stage, where it writes new spec stubs, issue rows, memory entries, and knowhow entries. It
|
|
5
|
+
This is a **post-execution analysis** workflow. It reads only — until the routing stage, where it writes new spec stubs, issue rows, memory entries, and knowhow entries. It **does not modify existing phase artifacts**; it writes to the spec / issue / knowhow stores as configured outputs (new entries appended; pre-existing phase outputs such as verification.json, review.json, uat.md, .summaries/ are never altered).
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -481,8 +481,8 @@ If `mode == "range"` or `--all`, loop Stages 3-8 per phase, then print aggregate
|
|
|
481
481
|
"summary": "Refresh-on-use prevents replay attacks. Implemented in src/auth/refresh.ts; should become a project-wide convention.",
|
|
482
482
|
"confidence": "high",
|
|
483
483
|
"evidence_refs": [
|
|
484
|
-
".workflow/scratch/plan-auth
|
|
485
|
-
".workflow/scratch/plan-auth
|
|
484
|
+
".workflow/scratch/20260415-plan-P1-auth/verification.json#gaps[2]",
|
|
485
|
+
".workflow/scratch/20260415-plan-P1-auth/.summaries/TASK-005-summary.md:42"
|
|
486
486
|
],
|
|
487
487
|
"tags": ["auth", "jwt", "security"],
|
|
488
488
|
"routed_to": "spec",
|
|
@@ -508,7 +508,7 @@ Refresh-on-use prevents replay attacks. Implemented in src/auth/refresh.ts; shou
|
|
|
508
508
|
- **Phase**: 1 (01-auth)
|
|
509
509
|
- **Lens**: technical
|
|
510
510
|
- **Confidence**: high
|
|
511
|
-
- **Evidence**: .workflow/scratch/plan-auth
|
|
511
|
+
- **Evidence**: .workflow/scratch/20260415-plan-P1-auth/verification.json#gaps[2]
|
|
512
512
|
- **Routed to**: spec (coding-conventions.md#INS-a1b2c3d4)
|
|
513
513
|
|
|
514
514
|
</spec-entry>
|
package/workflows/roadmap.md
CHANGED
|
@@ -102,7 +102,7 @@ Follow roadmap-common.md **Roadmap Write Logic** (overwrite vs edit rules, state
|
|
|
102
102
|
## Step 6: Handoff
|
|
103
103
|
|
|
104
104
|
Display summary (strategy, phase count, milestones, roadmap path) and offer next steps:
|
|
105
|
-
- `maestro-
|
|
105
|
+
- `maestro-blueprint` — generate formal spec package for the roadmap (if heavier spec is needed)
|
|
106
106
|
- `maestro-plan 1` — plan first phase
|
|
107
107
|
- `maestro-brainstorm 1` — explore first phase ideas
|
|
108
108
|
- `manage-status` — view project dashboard
|