maestro-flow 0.3.7 → 0.3.9
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/commands/learn-decompose.md +3 -3
- package/.claude/commands/learn-follow.md +5 -5
- package/.claude/commands/learn-investigate.md +3 -3
- package/.claude/commands/learn-retro.md +303 -0
- package/.claude/commands/learn-second-opinion.md +3 -3
- package/.claude/commands/maestro-analyze.md +123 -99
- package/.claude/commands/maestro-brainstorm.md +2 -2
- package/.claude/commands/maestro-execute.md +137 -96
- package/.claude/commands/maestro-fork.md +111 -0
- package/.claude/commands/maestro-init.md +6 -6
- package/.claude/commands/maestro-learn.md +74 -298
- package/.claude/commands/maestro-merge.md +77 -0
- package/.claude/commands/maestro-milestone-audit.md +72 -60
- package/.claude/commands/maestro-milestone-complete.md +67 -59
- package/.claude/commands/maestro-milestone-release.md +6 -6
- package/.claude/commands/maestro-plan.md +151 -130
- package/.claude/commands/maestro-quick.md +4 -4
- package/.claude/commands/maestro-roadmap.md +5 -5
- package/.claude/commands/maestro-spec-generate.md +5 -5
- package/.claude/commands/maestro-ui-design.md +3 -3
- package/.claude/commands/maestro-verify.md +106 -87
- package/.claude/commands/maestro.md +10 -4
- package/.claude/commands/manage-codebase-rebuild.md +4 -4
- package/.claude/commands/manage-codebase-refresh.md +1 -1
- package/.claude/commands/manage-harvest.md +5 -5
- package/.claude/commands/manage-issue-discover.md +1 -1
- package/.claude/commands/manage-issue-execute.md +6 -6
- package/.claude/commands/manage-issue.md +6 -6
- package/.claude/commands/manage-learn.md +23 -17
- package/.claude/commands/manage-memory-capture.md +15 -17
- package/.claude/commands/manage-memory.md +3 -3
- package/.claude/commands/manage-status.md +24 -24
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +4 -4
- package/.claude/commands/quality-integration-test.md +4 -4
- package/.claude/commands/quality-refactor.md +3 -3
- package/.claude/commands/quality-retrospective.md +7 -7
- package/.claude/commands/quality-review.md +4 -4
- package/.claude/commands/quality-sync.md +3 -3
- package/.claude/commands/quality-test-gen.md +4 -4
- package/.claude/commands/quality-test.md +9 -9
- package/.claude/commands/spec-add.md +2 -2
- package/.claude/commands/spec-load.md +8 -3
- package/.claude/commands/spec-setup.md +5 -5
- package/.claude/commands/wiki-connect.md +3 -3
- package/.claude/commands/wiki-digest.md +30 -5
- package/.codex/skills/maestro-analyze/SKILL.md +52 -14
- package/.codex/skills/maestro-execute/SKILL.md +27 -26
- package/.codex/skills/maestro-milestone-audit/SKILL.md +103 -209
- package/.codex/skills/maestro-milestone-complete/SKILL.md +149 -158
- package/.codex/skills/maestro-plan/SKILL.md +47 -17
- package/.codex/skills/maestro-roadmap/SKILL.md +3 -2
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +2 -2
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +1 -1
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +2 -2
- package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +1 -1
- package/README.md +115 -227
- package/README.zh-CN.md +169 -187
- package/bin/maestro-mcp.js +1 -1
- package/chains/_intent-map.json +21 -9
- package/chains/_router.json +30 -77
- package/chains/brainstorm-driven.json +17 -6
- package/chains/full-lifecycle.json +22 -23
- package/chains/milestone-close.json +20 -7
- package/chains/milestone-fork-merge.json +50 -0
- package/chains/roadmap-driven.json +17 -6
- package/chains/spec-driven.json +17 -6
- package/dashboard/dist/assets/{ArtifactsPage-A9yzYtpj.js → ArtifactsPage-DZNCi6tn.js} +12 -7
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +49 -0
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +22 -0
- package/dashboard/dist/assets/CollabPage-B4NAHXS2.js +1 -0
- package/dashboard/dist/assets/ExecutionPanel-CFt4LJyq.js +1 -0
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-CCXHaut3.js → MarkdownRenderer-X4af_WNb.js} +1 -1
- package/dashboard/dist/assets/McpPage-BKfCVIyU.js +21 -0
- package/dashboard/dist/assets/OutputPanel-BlBQFJSW.js +1 -0
- package/dashboard/dist/assets/ProblemsPanel-De3DLvoI.js +1 -0
- package/dashboard/dist/assets/{RequirementBoardPage-CEOvppGn.js → RequirementBoardPage-Bf1trzqs.js} +2 -2
- package/dashboard/dist/assets/{RequirementPage-DpnbTEqY.js → RequirementPage-Bllxe2XI.js} +10 -5
- package/dashboard/dist/assets/{SpecsPage-CYqOfFkB.js → SpecsPage-9lwxKT27.js} +2 -2
- package/dashboard/dist/assets/{SupervisorPage-B2sZwkq8.js → SupervisorPage-SusdfHFq.js} +1 -1
- package/dashboard/dist/assets/{TeamsPage-CkZdCAVZ.js → TeamsPage-DsuM6OwC.js} +2 -2
- package/dashboard/dist/assets/TreeBrowser-Q12qobZs.js +6 -0
- package/dashboard/dist/assets/WorkflowPage-D_Fzdy3_.js +6 -0
- package/dashboard/dist/assets/{arrow-left-6fktHyjN.js → arrow-left-Bqtb2hle.js} +1 -1
- package/dashboard/dist/assets/{check-Cbxq2l1-.js → check-u6fGOwQO.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Yts3bi8p.js → chevron-right-Csu22t58.js} +1 -1
- package/dashboard/dist/assets/{circle-4Ci4Xolf.js → circle-CMrkbRNg.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-B25g9BTL.js → circle-alert-c3tH1P4z.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-DzO2BlL7.js → circle-check-big-TDSeWstm.js} +1 -1
- package/dashboard/dist/assets/{circle-check-BA5_XqeV.js → circle-check-gYxxSYuH.js} +1 -1
- package/dashboard/dist/assets/{code-zxwuybO8.js → code-CFN2uX9V.js} +1 -1
- package/dashboard/dist/assets/{columns-3-DV4oeCfU.js → columns-3-38xIDlzy.js} +1 -1
- package/dashboard/dist/assets/{download-CXCyQw8M.js → download-DC7KkKyP.js} +1 -1
- package/dashboard/dist/assets/{folder-Bvjj8Vn9.js → folder-CWq_lAnf.js} +1 -1
- package/dashboard/dist/assets/index-DWG-WrzT.js +231 -0
- package/dashboard/dist/assets/{index-BvScJmJM.js → index-Do71weNR.js} +1 -1
- package/dashboard/dist/assets/index-GUNJodSR.css +1 -0
- package/dashboard/dist/assets/{list-Dj4i9N75.js → list-CgIP_2A-.js} +1 -1
- package/dashboard/dist/assets/{minus-DwlFabsT.js → minus-DYoN5UGk.js} +1 -1
- package/dashboard/dist/assets/{pen-line-D7UzECt6.js → pen-line-Bh_WKYHm.js} +1 -1
- package/dashboard/dist/assets/{proxy-B9XRqHD9.js → proxy-BKxDAKTj.js} +1 -1
- package/dashboard/dist/assets/{search-BQbBTIYl.js → search-SieXnOgr.js} +1 -1
- package/dashboard/dist/assets/{shallow-Clb1Lyd_.js → shallow-Bme1JY57.js} +1 -1
- package/dashboard/dist/assets/{table-BqxCXid2.js → table-llyEtj-7.js} +1 -1
- package/dashboard/dist/assets/terminal-BB3Xfuv5.js +6 -0
- package/dashboard/dist/assets/{trash-2-6rN9B-EQ.js → trash-2-C8f4vFFM.js} +1 -1
- package/dashboard/dist/assets/{zap-DxUhG-gk.js → zap-4uwlzVm0.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -4
- package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +8 -4
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +20 -10
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.js +3 -4
- package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.test.js +4 -4
- package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +4 -3
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.test.js +20 -7
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.js +4 -4
- package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/git.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/git.js +79 -0
- package/dashboard/dist-server/dashboard/src/server/routes/git.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js +14 -14
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/linear.js +7 -5
- package/dashboard/dist-server/dashboard/src/server/routes/linear.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/workspace.js +43 -0
- package/dashboard/dist-server/dashboard/src/server/routes/workspace.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/state-manager.js +186 -25
- package/dashboard/dist-server/dashboard/src/server/state/state-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/utils/issue-store.d.ts +6 -0
- package/dashboard/dist-server/dashboard/src/server/utils/issue-store.js +24 -2
- package/dashboard/dist-server/dashboard/src/server/utils/issue-store.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +4 -7
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.test.js +5 -5
- package/dashboard/dist-server/dashboard/src/shared/constants.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/issue-types.test.js +4 -4
- package/dashboard/dist-server/dashboard/src/shared/issue-types.test.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.js +7 -1
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dashboard/package.json +59 -59
- package/dist/src/cli.js +3 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/{team.d.ts → collab.d.ts} +2 -2
- package/dist/src/commands/collab.d.ts.map +1 -0
- package/dist/src/commands/{team.js → collab.js} +391 -24
- package/dist/src/commands/collab.js.map +1 -0
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +7 -1
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/msg.d.ts.map +1 -1
- package/dist/src/commands/msg.js +4 -3
- package/dist/src/commands/msg.js.map +1 -1
- package/dist/src/hooks/team-monitor.d.ts.map +1 -1
- package/dist/src/hooks/team-monitor.js +16 -0
- package/dist/src/hooks/team-monitor.js.map +1 -1
- package/dist/src/tools/collab-adapter.d.ts +85 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -0
- package/dist/src/tools/collab-adapter.js +320 -0
- package/dist/src/tools/collab-adapter.js.map +1 -0
- package/dist/src/tools/namespace-guard.d.ts +2 -0
- package/dist/src/tools/namespace-guard.d.ts.map +1 -1
- package/dist/src/tools/namespace-guard.js +12 -0
- package/dist/src/tools/namespace-guard.js.map +1 -1
- package/dist/src/tools/phase-gate-evaluator.d.ts +45 -0
- package/dist/src/tools/phase-gate-evaluator.d.ts.map +1 -0
- package/dist/src/tools/phase-gate-evaluator.js +42 -0
- package/dist/src/tools/phase-gate-evaluator.js.map +1 -0
- package/dist/src/tools/team-members.d.ts +18 -0
- package/dist/src/tools/team-members.d.ts.map +1 -1
- package/dist/src/tools/team-members.js +50 -0
- package/dist/src/tools/team-members.js.map +1 -1
- package/dist/src/tools/team-tasks.d.ts +120 -0
- package/dist/src/tools/team-tasks.d.ts.map +1 -0
- package/dist/src/tools/team-tasks.js +365 -0
- package/dist/src/tools/team-tasks.js.map +1 -0
- package/dist/src/tools/transition-recorder.d.ts +3 -0
- package/dist/src/tools/transition-recorder.d.ts.map +1 -1
- package/dist/src/tools/transition-recorder.js +52 -1
- package/dist/src/tools/transition-recorder.js.map +1 -1
- package/dist/src/utils/get-version.d.ts.map +1 -1
- package/dist/src/utils/get-version.js +15 -4
- package/dist/src/utils/get-version.js.map +1 -1
- package/package.json +1 -1
- package/templates/config.json +7 -0
- package/templates/worktree-scope.json +10 -0
- package/templates/worktrees.json +27 -0
- package/workflows/analyze.md +86 -36
- package/workflows/brainstorm.md +17 -37
- package/workflows/delegate-usage.md +39 -41
- package/workflows/execute.md +247 -61
- package/workflows/fork.md +309 -0
- package/workflows/init.md +11 -2
- package/workflows/issue.md +66 -7
- package/workflows/maestro-coordinate.codex.md +1 -1
- package/workflows/maestro-coordinate.md +24 -17
- package/workflows/maestro.md +54 -37
- package/workflows/memory.md +2 -1
- package/workflows/merge.md +285 -0
- package/workflows/milestone-audit.md +89 -70
- package/workflows/milestone-complete.md +89 -156
- package/workflows/plan.md +131 -19
- package/workflows/retrospective.md +5 -5
- package/workflows/roadmap.md +12 -4
- package/workflows/spec-generate.md +9 -0
- package/workflows/status.md +76 -27
- package/workflows/ui-design.md +14 -12
- package/workflows/verify.md +44 -8
- package/.claude/commands/learn-retro-decision.md +0 -198
- package/.claude/commands/learn-retro-git.md +0 -160
- package/.claude/commands/maestro-phase-add.md +0 -63
- package/.claude/commands/maestro-phase-transition.md +0 -75
- package/.codex/skills/maestro-phase-add/SKILL.md +0 -154
- package/.codex/skills/maestro-phase-transition/SKILL.md +0 -173
- package/chains/singles/phase-add.json +0 -31
- package/chains/singles/phase-transition.json +0 -23
- package/dashboard/dist/assets/ChatInput-PuCvZZ3y.js +0 -67
- package/dashboard/dist/assets/ChatPage-v19GURYH.js +0 -8
- package/dashboard/dist/assets/CollabPage-I5k_mCbG.js +0 -1
- package/dashboard/dist/assets/KanbanPage-PDDBv5-9.js +0 -16
- package/dashboard/dist/assets/McpPage-CiqXpCHg.js +0 -16
- package/dashboard/dist/assets/TreeBrowser-0VIMWclo.js +0 -11
- package/dashboard/dist/assets/WorkflowPage-Csm23wUS.js +0 -6
- package/dashboard/dist/assets/git-branch-DL8p9kVC.js +0 -6
- package/dashboard/dist/assets/index-11DuhKhc.js +0 -231
- package/dashboard/dist/assets/index-D2Mtyw7I.css +0 -1
- package/dashboard/dist/assets/wrench-BScEJFqC.js +0 -11
- package/dist/src/commands/team.d.ts.map +0 -1
- package/dist/src/commands/team.js.map +0 -1
- package/workflows/phase-add.md +0 -252
- package/workflows/phase-transition.md +0 -399
|
@@ -145,9 +145,9 @@ Build the decomposition report grouped by dimension:
|
|
|
145
145
|
6. Display summary with counts and next steps
|
|
146
146
|
|
|
147
147
|
**Next-step routing:**
|
|
148
|
-
- Follow-along on a specific pattern →
|
|
149
|
-
- Get second opinion on findings →
|
|
150
|
-
- Add all new patterns to specs →
|
|
148
|
+
- Follow-along on a specific pattern → `/learn-follow <anchor-file>`
|
|
149
|
+
- Get second opinion on findings → `/learn-second-opinion <target>`
|
|
150
|
+
- Add all new patterns to specs → `/spec-add pattern ...` per pattern
|
|
151
151
|
</execution>
|
|
152
152
|
|
|
153
153
|
<error_codes>
|
|
@@ -134,17 +134,17 @@ Build a structured summary document:
|
|
|
134
134
|
5. Display summary with key findings and next steps
|
|
135
135
|
|
|
136
136
|
**Next-step routing:**
|
|
137
|
-
- Deep dive into a discovered pattern →
|
|
138
|
-
- Add undocumented pattern to specs →
|
|
139
|
-
- Get second opinion on a finding →
|
|
140
|
-
- Browse related wiki entries →
|
|
137
|
+
- Deep dive into a discovered pattern → `/learn-decompose <path>`
|
|
138
|
+
- Add undocumented pattern to specs → `/spec-add pattern <description>`
|
|
139
|
+
- Get second opinion on a finding → `/learn-second-opinion <file>`
|
|
140
|
+
- Browse related wiki entries → `/wiki-digest <topic>`
|
|
141
141
|
</execution>
|
|
142
142
|
|
|
143
143
|
<error_codes>
|
|
144
144
|
| Code | Severity | Condition | Recovery |
|
|
145
145
|
|------|----------|-----------|----------|
|
|
146
146
|
| E001 | error | Target not resolvable (file not found, wiki ID not found, search returned 0) | Check path/ID, or rephrase topic for search |
|
|
147
|
-
| E002 | error | `.workflow/` not initialized | Run
|
|
147
|
+
| E002 | error | `.workflow/` not initialized | Run `/maestro-init` first |
|
|
148
148
|
| W001 | warning | Wiki graph unavailable (no .workflow/ wiki entries) — skipping context web | Proceed with code-only context (imports/exports) |
|
|
149
149
|
| W002 | warning | coding-conventions.md not found — skipping convention comparison | Patterns flagged as "unknown convention status" |
|
|
150
150
|
| W003 | warning | Target is very large (>1000 lines) — auto-switching to shallow depth | Use --depth deep to override |
|
|
@@ -162,9 +162,9 @@ Write final `report.md`:
|
|
|
162
162
|
3. Display summary with answer and next steps
|
|
163
163
|
|
|
164
164
|
**Next-step routing:**
|
|
165
|
-
- Save finding to specs →
|
|
166
|
-
- Follow-along on discovered code →
|
|
167
|
-
- Decompose patterns found →
|
|
165
|
+
- Save finding to specs → `/spec-add debug <finding>`
|
|
166
|
+
- Follow-along on discovered code → `/learn-follow <path>`
|
|
167
|
+
- Decompose patterns found → `/learn-decompose <module>`
|
|
168
168
|
- Create wiki entry for understanding → `maestro wiki create --type note`
|
|
169
169
|
</execution>
|
|
170
170
|
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learn-retro
|
|
3
|
+
description: Unified retrospective — git activity metrics and decision quality evaluation with lens-based selection
|
|
4
|
+
argument-hint: "[--lens git|decision|all] [--days N] [--author <name>] [--area <path>] [--phase N] [--tag <tag>] [--id <id>] [--compare]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Unified retrospective that combines git activity analysis and decision quality evaluation into a single command with lens-based selection. Works on raw git history and wiki/spec data — does not require completed phase artifacts (unlike `quality-retrospective`).
|
|
16
|
+
|
|
17
|
+
Two lenses, usable independently or together:
|
|
18
|
+
- **git**: Commit metrics, session detection, per-author breakdown, file hotspots, trend tracking
|
|
19
|
+
- **decision**: Decision tracing across wiki/specs/git, multi-perspective evaluation, lifecycle classification
|
|
20
|
+
|
|
21
|
+
All insights persist to `.workflow/learning/lessons.jsonl` for cross-session queryability via `manage-learn`.
|
|
22
|
+
</purpose>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
Arguments: $ARGUMENTS
|
|
26
|
+
|
|
27
|
+
**Lens selection:**
|
|
28
|
+
- `--lens git` — Git activity retrospective only
|
|
29
|
+
- `--lens decision` — Decision evaluation only
|
|
30
|
+
- `--lens all` — Both lenses (default)
|
|
31
|
+
|
|
32
|
+
**Git lens flags:**
|
|
33
|
+
- `--days N` — Time window in days (default: 7)
|
|
34
|
+
- `--author <name>` — Filter commits by author name (substring match)
|
|
35
|
+
- `--area <path>` — Scope to files under a specific directory
|
|
36
|
+
- `--compare` — Compare against the previous retro report if one exists
|
|
37
|
+
|
|
38
|
+
**Decision lens flags:**
|
|
39
|
+
- `--phase N` — Decisions from phase N's context and related specs
|
|
40
|
+
- `--tag <tag>` — Decisions tagged with specific tag in wiki/specs
|
|
41
|
+
- `--id <id>` — Single decision by wiki ID or lessons.jsonl INS-id
|
|
42
|
+
|
|
43
|
+
**Storage written:**
|
|
44
|
+
- `.workflow/learning/retro-{YYYY-MM-DD}.md` — Unified human-readable report
|
|
45
|
+
- `.workflow/learning/retro-{YYYY-MM-DD}.json` — Structured metrics (machine-readable)
|
|
46
|
+
- `.workflow/learning/lessons.jsonl` — Appended insights (source: "retro-git" or "retro-decision")
|
|
47
|
+
- `.workflow/learning/learning-index.json` — Updated index
|
|
48
|
+
|
|
49
|
+
**Storage read:**
|
|
50
|
+
- `.workflow/state.json` — Current phase context (optional)
|
|
51
|
+
- `.workflow/learning/retro-*.json` — Prior retro for trend comparison
|
|
52
|
+
- `.workflow/learning/lessons.jsonl` — Existing insights for dedup
|
|
53
|
+
- `maestro wiki list --type spec --json` — Spec entries (decision lens)
|
|
54
|
+
- `.workflow/specs/architecture-constraints.md` — Documented architectural decisions (decision lens)
|
|
55
|
+
- `.workflow/phases/*/context.md` — Phase context with Locked/Free/Deferred decisions (decision lens)
|
|
56
|
+
</context>
|
|
57
|
+
|
|
58
|
+
<execution>
|
|
59
|
+
|
|
60
|
+
### Stage 1: Parse Arguments & Select Lenses
|
|
61
|
+
- Parse `--lens` flag: `git`, `decision`, or `all` (default: `all`)
|
|
62
|
+
- Extract lens-specific flags
|
|
63
|
+
- Check `.workflow/learning/` exists; bootstrap if missing
|
|
64
|
+
|
|
65
|
+
Display banner:
|
|
66
|
+
```
|
|
67
|
+
============================================================
|
|
68
|
+
LEARN RETRO
|
|
69
|
+
============================================================
|
|
70
|
+
Lens: {git | decision | all}
|
|
71
|
+
Scope: {days/author/area for git} {phase/tag/id for decision}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### Stage 2: Git Lens (skip if --lens decision)
|
|
77
|
+
|
|
78
|
+
#### 2a: Gather Raw Data (parallel git commands)
|
|
79
|
+
Run ALL these git commands in parallel:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Commit stats with author, timestamp, subject, files changed
|
|
83
|
+
git log --since="<start-date>T00:00:00" --format="%H|%aN|%ae|%ai|%s" --shortstat
|
|
84
|
+
|
|
85
|
+
# Per-commit numstat for test vs production LOC split
|
|
86
|
+
git log --since="<start-date>T00:00:00" --format="COMMIT:%H|%aN" --numstat
|
|
87
|
+
|
|
88
|
+
# Timestamps for session detection (sorted)
|
|
89
|
+
git log --since="<start-date>T00:00:00" --format="%at|%aN|%ai|%s" | sort -n
|
|
90
|
+
|
|
91
|
+
# File hotspots (most frequently changed files)
|
|
92
|
+
git log --since="<start-date>T00:00:00" --format="" --name-only | grep -v '^$' | sort | uniq -c | sort -rn | head -20
|
|
93
|
+
|
|
94
|
+
# Per-author commit counts
|
|
95
|
+
git shortlog --since="<start-date>T00:00:00" -sn --no-merges
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Apply `--author` and `--area` filters if provided.
|
|
99
|
+
|
|
100
|
+
#### 2b: Compute Metrics
|
|
101
|
+
| Metric | Computation |
|
|
102
|
+
|--------|-------------|
|
|
103
|
+
| Commits | Count of non-merge commits |
|
|
104
|
+
| Contributors | Unique author count |
|
|
105
|
+
| Total insertions / deletions | Sum from shortstat |
|
|
106
|
+
| Net LOC | insertions - deletions |
|
|
107
|
+
| Test LOC (insertions) | Sum insertions for test files from numstat |
|
|
108
|
+
| Test ratio | test_insertions / total_insertions x 100% |
|
|
109
|
+
| Churn rate | Files changed >2 times / total unique files |
|
|
110
|
+
| Active days | Distinct dates with commits |
|
|
111
|
+
|
|
112
|
+
#### 2c: Detect Work Sessions
|
|
113
|
+
Cluster commits by >2hr gaps in timestamps:
|
|
114
|
+
- Per session: start time, end time, duration, commit count, primary focus area
|
|
115
|
+
- Compute: total sessions, avg session duration, avg LOC/session-hour
|
|
116
|
+
|
|
117
|
+
#### 2d: Per-Author Breakdown
|
|
118
|
+
For each author:
|
|
119
|
+
- Commit count, LOC added/removed, top 3 file areas
|
|
120
|
+
- Test ratio (their test LOC / their total LOC)
|
|
121
|
+
- Session count and patterns
|
|
122
|
+
|
|
123
|
+
#### 2e: Trend Comparison (if --compare or prior report exists)
|
|
124
|
+
- Find most recent `.workflow/learning/retro-*.json`
|
|
125
|
+
- Compute deltas: commits, LOC, test ratio, churn rate, session count
|
|
126
|
+
- Flag significant changes (>20% delta) as trend highlights
|
|
127
|
+
|
|
128
|
+
#### 2f: Distill Git Insights
|
|
129
|
+
- **High churn files** (changed >3 times): instability signal
|
|
130
|
+
- **Low test ratio areas** (<20%): testing gap
|
|
131
|
+
- **Session patterns**: scattered vs deep sessions
|
|
132
|
+
- **Area drift**: commits not aligned with current roadmap phase
|
|
133
|
+
|
|
134
|
+
Each insight: title, description, category (pattern/antipattern/technique), tags, confidence.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### Stage 3: Decision Lens (skip if --lens git)
|
|
139
|
+
|
|
140
|
+
#### 3a: Collect Decisions (parallel)
|
|
141
|
+
```bash
|
|
142
|
+
maestro wiki search "decision" --json
|
|
143
|
+
maestro wiki list --type spec --json
|
|
144
|
+
git log --oneline --all --grep="decision\|chose\|decided\|architecture" -20
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Also read:
|
|
148
|
+
- `.workflow/specs/architecture-constraints.md` — grep for `### [decision]` blocks
|
|
149
|
+
- `.workflow/phases/*/context.md` — scan for "Locked:", "Deferred:" sections
|
|
150
|
+
- `.workflow/learning/lessons.jsonl` — filter `category == "decision"`
|
|
151
|
+
|
|
152
|
+
Apply scope filter (--phase, --tag, --id).
|
|
153
|
+
|
|
154
|
+
#### 3b: Build Decision Registry
|
|
155
|
+
Per decision:
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"id": "source id",
|
|
159
|
+
"title": "what was decided",
|
|
160
|
+
"source": "wiki|spec|phase-context|lesson|git",
|
|
161
|
+
"date": "when decided",
|
|
162
|
+
"rationale": "why",
|
|
163
|
+
"alternatives": "what was considered",
|
|
164
|
+
"phase": "which phase",
|
|
165
|
+
"implementation_evidence": ["file paths from git"]
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
#### 3c: Multi-Perspective Evaluation
|
|
170
|
+
Spawn 3 Agents in a single message:
|
|
171
|
+
|
|
172
|
+
**Agent 1 — Technical Soundness:**
|
|
173
|
+
- Does implementation match stated intent?
|
|
174
|
+
- Has technical context changed since decision was made?
|
|
175
|
+
- Grade: sound / degraded / violated
|
|
176
|
+
|
|
177
|
+
**Agent 2 — Cost Assessment:**
|
|
178
|
+
- What complexity did this decision add?
|
|
179
|
+
- Is it creating coupling or tech debt?
|
|
180
|
+
- Grade: low-cost / acceptable / expensive / debt-creating
|
|
181
|
+
|
|
182
|
+
**Agent 3 — Alternative Hindsight:**
|
|
183
|
+
- With what we know now, was this the right call?
|
|
184
|
+
- Would reversing be feasible?
|
|
185
|
+
- Grade: confirmed / questionable / should-revisit
|
|
186
|
+
|
|
187
|
+
#### 3d: Classify Decision Lifecycle
|
|
188
|
+
| Status | Criteria |
|
|
189
|
+
|--------|---------|
|
|
190
|
+
| **Validated** | Sound + Low/Acceptable cost + Confirmed |
|
|
191
|
+
| **Aging** | Sound but Expensive + Confirmed |
|
|
192
|
+
| **Questionable** | Degraded or Violated + Questionable |
|
|
193
|
+
| **Stale** | Any + Should-revisit |
|
|
194
|
+
| **Reversed** | Code contradicts the decision |
|
|
195
|
+
|
|
196
|
+
#### 3e: Generate Recommendations
|
|
197
|
+
- **Aging**: flag for tech debt review
|
|
198
|
+
- **Questionable**: create issue for investigation
|
|
199
|
+
- **Stale**: suggest decision refresh
|
|
200
|
+
- **Reversed**: suggest documenting the reversal
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### Stage 4: Unified Report
|
|
205
|
+
|
|
206
|
+
Write `.workflow/learning/retro-{date}.md`:
|
|
207
|
+
|
|
208
|
+
```markdown
|
|
209
|
+
# Retrospective: {date}
|
|
210
|
+
**Lenses:** {active lenses} | **Period:** {days}d
|
|
211
|
+
|
|
212
|
+
## Git Activity (if git lens active)
|
|
213
|
+
### Metrics
|
|
214
|
+
| Metric | Value | Trend |
|
|
215
|
+
|--------|-------|-------|
|
|
216
|
+
| Commits | N | +/-% |
|
|
217
|
+
| ...
|
|
218
|
+
|
|
219
|
+
### Work Sessions
|
|
220
|
+
{session timeline}
|
|
221
|
+
|
|
222
|
+
### File Hotspots
|
|
223
|
+
{top 10 most-changed files}
|
|
224
|
+
|
|
225
|
+
### Per-Author
|
|
226
|
+
{author breakdown table}
|
|
227
|
+
|
|
228
|
+
## Decision Health (if decision lens active)
|
|
229
|
+
### Dashboard
|
|
230
|
+
| Status | Count | Decisions |
|
|
231
|
+
|--------|-------|-----------|
|
|
232
|
+
| Validated | N | {list} |
|
|
233
|
+
| Aging | N | {list} |
|
|
234
|
+
| ...
|
|
235
|
+
|
|
236
|
+
### Per-Decision Evaluation
|
|
237
|
+
{detailed evaluations}
|
|
238
|
+
|
|
239
|
+
## Combined Insights
|
|
240
|
+
{merged insights from both lenses, deduplicated}
|
|
241
|
+
|
|
242
|
+
## Recommended Actions
|
|
243
|
+
1. {action}: {reason}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Write `.workflow/learning/retro-{date}.json` with structured data.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### Stage 5: Persist
|
|
251
|
+
1. Write report files
|
|
252
|
+
2. Append insights to `lessons.jsonl`:
|
|
253
|
+
- Git insights: `source: "retro-git"`, `category` per insight type
|
|
254
|
+
- Decision insights: `source: "retro-decision"`, `category: "decision"`
|
|
255
|
+
- Stable INS-id from `hash(lens + metric_or_decision + date)`
|
|
256
|
+
3. Update `learning-index.json`
|
|
257
|
+
4. Display summary
|
|
258
|
+
|
|
259
|
+
**Next-step routing:**
|
|
260
|
+
- Browse insights → `/manage-learn list --tag retro`
|
|
261
|
+
- Deep dive on high-churn file → `/learn-follow <path>`
|
|
262
|
+
- Fix test gaps → `/quality-test-gen <area>`
|
|
263
|
+
- Create issue for questionable decision → `/manage-issue create ...`
|
|
264
|
+
- Investigate stale decision → `/learn-investigate <question>`
|
|
265
|
+
- Full phase retrospective → `/quality-retrospective`
|
|
266
|
+
</execution>
|
|
267
|
+
|
|
268
|
+
<error_codes>
|
|
269
|
+
| Code | Severity | Condition | Recovery |
|
|
270
|
+
|------|----------|-----------|----------|
|
|
271
|
+
| E001 | error | Not inside a git repository (git lens) | Navigate to a git repo directory |
|
|
272
|
+
| E002 | error | No commits found in time window (git lens) | Increase --days or check filters |
|
|
273
|
+
| E003 | error | No decisions found in any source (decision lens) | Check wiki/specs content, or provide --id |
|
|
274
|
+
| E004 | error | --id not found in wiki or lessons (decision lens) | Verify the decision ID exists |
|
|
275
|
+
| W001 | warning | `.workflow/learning/` not found, bootstrapping | Auto-created; proceed normally |
|
|
276
|
+
| W002 | warning | No prior retro report for comparison | Skip trend section; first retro establishes baseline |
|
|
277
|
+
| W003 | warning | One perspective agent failed — partial evaluation (decision lens) | Proceed with available perspectives |
|
|
278
|
+
| W004 | warning | No git implementation evidence for a decision | Evaluation is theoretical only |
|
|
279
|
+
| W005 | warning | Phase context files not found (decision lens) | Skip phase-context decisions |
|
|
280
|
+
</error_codes>
|
|
281
|
+
|
|
282
|
+
<success_criteria>
|
|
283
|
+
- [ ] Lens selection parsed correctly (git / decision / all)
|
|
284
|
+
- [ ] Git lens (if active):
|
|
285
|
+
- [ ] All git commands executed successfully
|
|
286
|
+
- [ ] Metrics computed: commits, LOC, test ratio, churn rate, sessions
|
|
287
|
+
- [ ] Sessions detected with >2hr gap clustering
|
|
288
|
+
- [ ] Per-author breakdown generated
|
|
289
|
+
- [ ] Trend comparison computed if prior report exists
|
|
290
|
+
- [ ] At least 1 actionable insight distilled
|
|
291
|
+
- [ ] Decision lens (if active):
|
|
292
|
+
- [ ] Decisions collected from available sources
|
|
293
|
+
- [ ] Scope filter applied correctly
|
|
294
|
+
- [ ] 3 perspective agents spawned in parallel
|
|
295
|
+
- [ ] Each decision classified by lifecycle status
|
|
296
|
+
- [ ] Recommendations generated for non-Validated decisions
|
|
297
|
+
- [ ] Unified report written to `retro-{date}.md`
|
|
298
|
+
- [ ] Structured data written to `retro-{date}.json`
|
|
299
|
+
- [ ] `lessons.jsonl` appended with insights (stable INS-ids)
|
|
300
|
+
- [ ] `learning-index.json` updated
|
|
301
|
+
- [ ] No files modified outside `.workflow/learning/`
|
|
302
|
+
- [ ] Summary displayed with next-step routing
|
|
303
|
+
</success_criteria>
|
|
@@ -136,9 +136,9 @@ Across all perspectives (or from single agent in challenge/consult):
|
|
|
136
136
|
4. Display summary with verdict and recommendations
|
|
137
137
|
|
|
138
138
|
**Next-step routing:**
|
|
139
|
-
- Create issue for a finding →
|
|
140
|
-
- Decompose patterns found →
|
|
141
|
-
- Follow-along on the code →
|
|
139
|
+
- Create issue for a finding → `/manage-issue create <description>`
|
|
140
|
+
- Decompose patterns found → `/learn-decompose <path>`
|
|
141
|
+
- Follow-along on the code → `/learn-follow <path>`
|
|
142
142
|
</execution>
|
|
143
143
|
|
|
144
144
|
<error_codes>
|
|
@@ -1,99 +1,123 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-analyze
|
|
3
|
-
description: Multi-dimensional analysis with CLI exploration, decision extraction, and intent tracking
|
|
4
|
-
argument-hint: "
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Agent
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
---
|
|
15
|
-
<purpose>
|
|
16
|
-
Perform multi-dimensional analysis of a technical proposal, decision, or architecture choice through iterative CLI-assisted exploration and interactive discussion. Produces a discussion timeline (discussion.md) with evolving understanding, multi-perspective findings, Decision Recording Protocol, Intent Coverage tracking, and a final conclusions package with Go/No-Go recommendation.
|
|
17
|
-
|
|
18
|
-
Combines structured 6-dimension scoring with iterative deepening and decision extraction. Replaces both analysis and decision-capture workflows — produces analysis.md (scoring) AND context.md (Locked/Free/Deferred decisions for plan).
|
|
19
|
-
|
|
20
|
-
Use `-q` for quick decision extraction only (skip exploration + scoring).
|
|
21
|
-
</purpose>
|
|
22
|
-
|
|
23
|
-
<required_reading>
|
|
24
|
-
@~/.maestro/workflows/analyze.md
|
|
25
|
-
</required_reading>
|
|
26
|
-
|
|
27
|
-
<deferred_reading>
|
|
28
|
-
- [
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
- `-
|
|
37
|
-
- `-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
46
|
-
| `
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
|
73
|
-
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-analyze
|
|
3
|
+
description: Multi-dimensional analysis with CLI exploration, decision extraction, and intent tracking
|
|
4
|
+
argument-hint: "[phase|topic] [-y] [-c] [-q]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
<purpose>
|
|
16
|
+
Perform multi-dimensional analysis of a technical proposal, decision, or architecture choice through iterative CLI-assisted exploration and interactive discussion. Produces a discussion timeline (discussion.md) with evolving understanding, multi-perspective findings, Decision Recording Protocol, Intent Coverage tracking, and a final conclusions package with Go/No-Go recommendation.
|
|
17
|
+
|
|
18
|
+
Combines structured 6-dimension scoring with iterative deepening and decision extraction. Replaces both analysis and decision-capture workflows — produces analysis.md (scoring) AND context.md (Locked/Free/Deferred decisions for plan).
|
|
19
|
+
|
|
20
|
+
Use `-q` for quick decision extraction only (skip exploration + scoring).
|
|
21
|
+
</purpose>
|
|
22
|
+
|
|
23
|
+
<required_reading>
|
|
24
|
+
@~/.maestro/workflows/analyze.md
|
|
25
|
+
</required_reading>
|
|
26
|
+
|
|
27
|
+
<deferred_reading>
|
|
28
|
+
- [state.json](~/.maestro/templates/state.json) — read when registering artifact
|
|
29
|
+
</deferred_reading>
|
|
30
|
+
|
|
31
|
+
<context>
|
|
32
|
+
$ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone mode, no args for milestone-wide.
|
|
33
|
+
|
|
34
|
+
**Flags:**
|
|
35
|
+
- `-y` / `--yes`: Auto mode — skip interactive scoping, use recommended defaults, auto-deepen
|
|
36
|
+
- `-c` / `--continue`: Resume from existing session (auto-detect session folder + discussion.md)
|
|
37
|
+
- `-q` / `--quick`: Quick mode — skip exploration + scoring, go straight to decision extraction (context.md only)
|
|
38
|
+
|
|
39
|
+
**Scope routing (per architecture):**
|
|
40
|
+
|
|
41
|
+
| Invocation | Precondition | Scope | Behavior |
|
|
42
|
+
|-----------|-------------|-------|----------|
|
|
43
|
+
| `analyze` (no args) | init + roadmap | milestone | Analyze current milestone's all phases |
|
|
44
|
+
| `analyze 1` | init + roadmap | phase | Analyze phase 1 only |
|
|
45
|
+
| `analyze "topic"` (has milestone) | none | adhoc | Analyze topic, affiliated with current milestone |
|
|
46
|
+
| `analyze "topic"` (no milestone) | none | standalone | Analyze topic, no milestone affiliation |
|
|
47
|
+
|
|
48
|
+
**Scope detection rule**: Text argument + `state.json.current_milestone` non-null → adhoc. Text argument + no milestone → standalone. No args + no roadmap → error (need topic or roadmap).
|
|
49
|
+
|
|
50
|
+
**Output directory**: `scratch/analyze-{slug}-{date}/` (relative to `.workflow/`)
|
|
51
|
+
|
|
52
|
+
**Artifact registration**: On completion, register artifact in `state.json.artifacts[]`:
|
|
53
|
+
```jsonc
|
|
54
|
+
{
|
|
55
|
+
"id": "ANL-{NNN}",
|
|
56
|
+
"type": "analyze",
|
|
57
|
+
"milestone": "{current_milestone or null}",
|
|
58
|
+
"phase": "{phase_number or null}",
|
|
59
|
+
"scope": "{milestone|phase|adhoc|standalone}",
|
|
60
|
+
"path": "scratch/analyze-{slug}-{date}",
|
|
61
|
+
"status": "completed",
|
|
62
|
+
"depends_on": null,
|
|
63
|
+
"harvested": false,
|
|
64
|
+
"created_at": "...",
|
|
65
|
+
"completed_at": "..."
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Output artifacts:**
|
|
70
|
+
| Artifact | Mode | Description |
|
|
71
|
+
|----------|------|-------------|
|
|
72
|
+
| `context.md` | both | Locked/Free/Deferred decisions for downstream plan |
|
|
73
|
+
| `discussion.md` | full | Full discussion timeline with TOC, Current Understanding, rounds, decisions, intent coverage |
|
|
74
|
+
| `analysis.md` | full | Executive summary with 6-dimension scores and risk matrix |
|
|
75
|
+
| `conclusions.json` | full | Final synthesis with recommendations, decision trail, intent coverage |
|
|
76
|
+
| `explorations.json` | full | Codebase exploration findings (single perspective) |
|
|
77
|
+
| `perspectives.json` | full | Multi-perspective findings with synthesis (if multi-perspective) |
|
|
78
|
+
</context>
|
|
79
|
+
|
|
80
|
+
<execution>
|
|
81
|
+
Follow '~/.maestro/workflows/analyze.md' completely.
|
|
82
|
+
|
|
83
|
+
**Handoff:** context.md is consumed by maestro-plan (loads Locked/Free/Deferred decisions).
|
|
84
|
+
|
|
85
|
+
**Next-step routing on completion:**
|
|
86
|
+
|
|
87
|
+
Phase/Milestone scope:
|
|
88
|
+
- Go recommendation, UI work needed → `/maestro-ui-design {phase}`
|
|
89
|
+
- Go recommendation, ready to plan → `/maestro-plan` or `/maestro-plan {phase}`
|
|
90
|
+
- No-Go recommendation → revisit requirements or `/maestro-brainstorm {topic}`
|
|
91
|
+
|
|
92
|
+
Adhoc/Standalone scope:
|
|
93
|
+
- Ready to plan → `/maestro-plan --dir {scratch_dir}`
|
|
94
|
+
- Need more exploration → `/maestro-analyze {topic} -c`
|
|
95
|
+
</execution>
|
|
96
|
+
|
|
97
|
+
<error_codes>
|
|
98
|
+
| Code | Severity | Condition | Recovery |
|
|
99
|
+
|------|----------|-----------|----------|
|
|
100
|
+
| E001 | error | No args and no roadmap (cannot determine scope) | Prompt user for topic text or create roadmap first |
|
|
101
|
+
| W001 | warning | CLI exploration failed | Continue with available context, note limitation |
|
|
102
|
+
| W002 | warning | CLI analysis timeout | Retry with shorter prompt, or skip perspective |
|
|
103
|
+
| W003 | warning | Insufficient evidence for scoring dimensions | Note low-confidence dimensions, proceed with available evidence |
|
|
104
|
+
| W004 | warning | Max rounds reached (5) | Force synthesis, offer continuation option |
|
|
105
|
+
</error_codes>
|
|
106
|
+
|
|
107
|
+
<success_criteria>
|
|
108
|
+
Full mode:
|
|
109
|
+
- [ ] CLI exploration completed with code anchors and call chains
|
|
110
|
+
- [ ] discussion.md created with full timeline, TOC, Current Understanding
|
|
111
|
+
- [ ] analysis.md written with all 6 dimensions scored with evidence
|
|
112
|
+
- [ ] conclusions.json created with recommendations and decision trail
|
|
113
|
+
- [ ] Intent Coverage tracked and verified (no unresolved ❌ items)
|
|
114
|
+
|
|
115
|
+
Both modes (full + quick):
|
|
116
|
+
- [ ] context.md written with all decisions classified as Locked/Free/Deferred
|
|
117
|
+
- [ ] Gray areas identified through phase-specific analysis
|
|
118
|
+
- [ ] Decision Recording Protocol applied to all decisions
|
|
119
|
+
- [ ] Scope creep redirected to Deferred section
|
|
120
|
+
- [ ] Deferred items auto-created as issues (if any)
|
|
121
|
+
- [ ] Artifact registered in state.json with correct scope/milestone/phase
|
|
122
|
+
- [ ] Next step routed (ui-design/plan for Go, brainstorm for No-Go)
|
|
123
|
+
</success_criteria>
|
|
@@ -30,8 +30,8 @@ $ARGUMENTS -- topic text for auto mode, or role name for single role mode.
|
|
|
30
30
|
|
|
31
31
|
**Auto mode**: topic text (e.g., "Build real-time collaboration platform") triggers full pipeline.
|
|
32
32
|
**Single role mode**: valid role name (e.g., "system-architect") runs one role analysis.
|
|
33
|
-
**
|
|
34
|
-
**
|
|
33
|
+
**All output** goes to `.workflow/scratch/brainstorm-{slug}-{date}/`.
|
|
34
|
+
**Artifact registration**: On completion, registers artifact (type=brainstorm) in state.json.
|
|
35
35
|
|
|
36
36
|
**Valid roles**: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert
|
|
37
37
|
|