maestro-flow 0.3.9 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/workflow-collab-planner.md +1 -1
- package/.claude/agents/workflow-executor.md +1 -1
- package/.claude/agents/workflow-plan-checker.md +1 -1
- package/.claude/agents/workflow-planner.md +1 -1
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-analyze.md +46 -3
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-execute.md +14 -0
- package/.claude/commands/maestro-plan.md +16 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue-discover.md +2 -2
- package/.claude/commands/manage-issue.md +5 -5
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +335 -0
- package/.codex/skills/maestro-analyze/SKILL.md +84 -75
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +233 -0
- package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
- package/.codex/skills/maestro-execute/SKILL.md +435 -438
- package/.codex/skills/maestro-fork/SKILL.md +68 -0
- package/.codex/skills/maestro-init/SKILL.md +171 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +62 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +66 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +93 -105
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +93 -104
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +14 -11
- package/README.zh-CN.md +14 -11
- package/chains/issue-lifecycle.json +13 -13
- package/chains/singles/issue-analyze.json +3 -3
- package/chains/singles/issue-execute.json +3 -3
- package/chains/singles/issue-plan.json +3 -3
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
- package/dashboard/dist-server/src/hooks/constants.js +151 -16
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +5 -0
- package/dist/src/commands/collab.d.ts +1 -34
- package/dist/src/commands/collab.d.ts.map +1 -1
- package/dist/src/commands/collab.js +8 -76
- package/dist/src/commands/collab.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +5 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +115 -10
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +5 -1
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +7 -3
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +92 -12
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +151 -16
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +2 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +2 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
- package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
- package/dist/src/hooks/guards/preflight-guard.js +95 -0
- package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
- package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.js.map +1 -0
- package/dist/src/hooks/index.d.ts +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/preflight-core.d.ts +37 -0
- package/dist/src/hooks/preflight-core.d.ts.map +1 -0
- package/dist/src/hooks/preflight-core.js +86 -0
- package/dist/src/hooks/preflight-core.js.map +1 -0
- package/dist/src/hooks/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts +8 -17
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +269 -112
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +5 -0
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +5 -0
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +5 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/collab-adapter.d.ts +17 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -1
- package/dist/src/tools/collab-adapter.js +138 -0
- package/dist/src/tools/collab-adapter.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts +24 -0
- package/dist/src/tools/merge-validator.d.ts.map +1 -0
- package/dist/src/tools/merge-validator.js +220 -0
- package/dist/src/tools/merge-validator.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
- package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
- package/templates/search-tools.md +1 -1
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +471 -471
- package/workflows/cli-tools-usage.md +44 -27
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/delegate-usage.md +3 -3
- package/workflows/execute.md +1 -1
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +343 -343
- package/workflows/issue-analyze.md +6 -2
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue-execute.md +6 -3
- package/workflows/issue-plan.md +5 -2
- package/workflows/maestro-coordinate.codex.md +281 -470
- package/workflows/maestro-coordinate.md +14 -14
- package/workflows/maestro-link-coordinate.md +2 -2
- package/workflows/maestro.codex.md +710 -0
- package/workflows/maestro.md +10 -11
- package/workflows/map.md +111 -111
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +1 -1
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- package/.claude/commands/manage-issue-analyze.md +0 -62
- package/.claude/commands/manage-issue-execute.md +0 -73
- package/.claude/commands/manage-issue-plan.md +0 -62
- package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
- package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
- package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
|
@@ -1,167 +1,167 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: learn-follow
|
|
3
|
-
description: Guided follow-along reading of code or wiki entries, extracting patterns and building understanding
|
|
4
|
-
argument-hint: "<path|wiki-id|topic> [--depth shallow|deep] [--save-wiki]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Guided reading experience for code files, wiki entries, or topics. Instead of just reading code, this command walks through content section by section using forcing questions (inspired by gstack `/office-hours` brainstorming) to extract patterns, identify assumptions, and build a structured understanding map.
|
|
16
|
-
|
|
17
|
-
Outputs reading notes with extracted patterns, open questions, and connection points. Insights persist to `lessons.jsonl` and optionally become wiki note entries for the knowledge graph.
|
|
18
|
-
</purpose>
|
|
19
|
-
|
|
20
|
-
<context>
|
|
21
|
-
Arguments: $ARGUMENTS
|
|
22
|
-
|
|
23
|
-
**Target resolution (auto-detected from first argument):**
|
|
24
|
-
- File path (e.g., `src/commands/wiki.ts`) → Read source file
|
|
25
|
-
- Wiki ID (e.g., `spec-auth`, `phase-planning`) → Fetch via `maestro wiki get`
|
|
26
|
-
- Topic string (e.g., `"authentication flow"`) → Search via `maestro wiki search`, use top result
|
|
27
|
-
|
|
28
|
-
**Flags:**
|
|
29
|
-
- `--depth shallow` — Quick pass: key patterns and structure only (default)
|
|
30
|
-
- `--depth deep` — Thorough: every function, every branch, every assumption
|
|
31
|
-
- `--save-wiki` — Create a wiki note entry with the reading notes via `maestro wiki create --type note`
|
|
32
|
-
|
|
33
|
-
**Storage written:**
|
|
34
|
-
- `.workflow/learning/follow-{slug}-{YYYY-MM-DD}.md` — Reading notes with understanding map
|
|
35
|
-
- `.workflow/learning/lessons.jsonl` — Appended pattern/technique insights
|
|
36
|
-
- `.workflow/learning/learning-index.json` — Updated index
|
|
37
|
-
- If `--save-wiki`: new wiki note entry
|
|
38
|
-
|
|
39
|
-
**Storage read:**
|
|
40
|
-
- Target source file or wiki entry
|
|
41
|
-
- `maestro wiki backlinks <id>` / `maestro wiki forward <id>` — Relationship context
|
|
42
|
-
- `.workflow/specs/coding-conventions.md` — Convention reference for pattern matching
|
|
43
|
-
- `.workflow/learning/lessons.jsonl` — Prior insights for dedup and cross-reference
|
|
44
|
-
</context>
|
|
45
|
-
|
|
46
|
-
<execution>
|
|
47
|
-
|
|
48
|
-
### Stage 1: Resolve Target
|
|
49
|
-
- If argument looks like a file path (contains `/` or `\`, or matches a glob): verify file exists via Read
|
|
50
|
-
- If argument matches wiki ID pattern (`<type>-<slug>`): fetch via `maestro wiki get <id>` (offline mode)
|
|
51
|
-
- Otherwise: treat as topic string, run `maestro wiki search "<topic>"`, take the top result. If no result, fall back to Grep across `src/` for the topic.
|
|
52
|
-
- If target cannot be resolved, AskUserQuestion with suggestions.
|
|
53
|
-
|
|
54
|
-
### Stage 2: Load Context Web
|
|
55
|
-
For the resolved target, build a 1-hop context neighborhood:
|
|
56
|
-
|
|
57
|
-
**If wiki entry:**
|
|
58
|
-
- `maestro wiki forward <id>` — What this entry references
|
|
59
|
-
- `maestro wiki backlinks <id>` — What references this entry
|
|
60
|
-
- Read the body of top 3 related entries for context
|
|
61
|
-
|
|
62
|
-
**If code file:**
|
|
63
|
-
- Parse imports/requires to identify dependency files
|
|
64
|
-
- Grep for exports used by other files (reverse dependencies)
|
|
65
|
-
- Read the first 50 lines of top 3 dependent files for context
|
|
66
|
-
|
|
67
|
-
**If directory:**
|
|
68
|
-
- List files, identify entry points (index.ts, main.ts, cli.ts)
|
|
69
|
-
- Build reading order: entry point → core modules → utilities → tests
|
|
70
|
-
|
|
71
|
-
### Stage 3: Build Reading Order
|
|
72
|
-
- For a single file: split into logical sections (function boundaries, class boundaries, export groups)
|
|
73
|
-
- For a wiki entry: split by markdown headings
|
|
74
|
-
- For a directory: order files by dependency (entry points first, leaf modules last)
|
|
75
|
-
- For `--depth shallow`: limit to top-level structure (function signatures, section headers)
|
|
76
|
-
- For `--depth deep`: include every function body, every branch
|
|
77
|
-
|
|
78
|
-
### Stage 4: Guided Reading with Forcing Questions
|
|
79
|
-
Walk through each section in reading order. For each section, apply 4 forcing questions:
|
|
80
|
-
|
|
81
|
-
1. **"What pattern is being used here?"** — Identify design patterns, idioms, conventions. Compare against `coding-conventions.md`.
|
|
82
|
-
2. **"Why this approach instead of alternatives?"** — What trade-offs were made? What was the simpler approach not chosen?
|
|
83
|
-
3. **"What assumption does this depend on?"** — What must be true for this code/content to be correct? External state? Input shape? Ordering?
|
|
84
|
-
4. **"What would break if this changed?"** — Fragility analysis. What downstream effects would a change have?
|
|
85
|
-
|
|
86
|
-
Record answers as structured annotations per section.
|
|
87
|
-
|
|
88
|
-
### Stage 5: Extract Patterns
|
|
89
|
-
From the forcing question answers, extract:
|
|
90
|
-
- **Design patterns**: named patterns with code anchors (file:line)
|
|
91
|
-
- **Naming conventions**: how things are named and why
|
|
92
|
-
- **Error handling approach**: how errors flow through this code/content
|
|
93
|
-
- **Data flow**: how data enters, transforms, and exits
|
|
94
|
-
- **Assumptions**: explicit and implicit assumptions identified
|
|
95
|
-
|
|
96
|
-
Cross-reference each pattern against existing `coding-conventions.md` entries:
|
|
97
|
-
- Already documented → note as "confirmed convention"
|
|
98
|
-
- Not documented → flag as "undocumented pattern" (candidate for `spec-add`)
|
|
99
|
-
|
|
100
|
-
### Stage 6: Produce Understanding Map
|
|
101
|
-
Build a structured summary document:
|
|
102
|
-
|
|
103
|
-
```markdown
|
|
104
|
-
# Follow-Along: {target name}
|
|
105
|
-
|
|
106
|
-
## Key Concepts
|
|
107
|
-
- {concept}: {one-line explanation}
|
|
108
|
-
|
|
109
|
-
## Patterns Identified
|
|
110
|
-
| Pattern | Location | Convention Status |
|
|
111
|
-
|---------|----------|-------------------|
|
|
112
|
-
| {name} | {file:line} | documented / undocumented |
|
|
113
|
-
|
|
114
|
-
## Assumptions
|
|
115
|
-
- {assumption}: {what depends on it}
|
|
116
|
-
|
|
117
|
-
## Open Questions
|
|
118
|
-
- {question}: {why it matters}
|
|
119
|
-
|
|
120
|
-
## Connections
|
|
121
|
-
- Links to: {forward link entries}
|
|
122
|
-
- Referenced by: {backlink entries}
|
|
123
|
-
- Related lessons: {matching lessons.jsonl entries}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### Stage 7: Persist
|
|
127
|
-
1. Write `.workflow/learning/follow-{slug}-{date}.md` with the understanding map
|
|
128
|
-
2. Append each new pattern/technique as an insight to `lessons.jsonl`:
|
|
129
|
-
- `source: "follow"`, `category: "pattern"` or `"technique"`
|
|
130
|
-
- Tags: `["follow", "{target-slug}"]`
|
|
131
|
-
- Stable INS-id from `hash("follow" + target + pattern_name)`
|
|
132
|
-
3. Update `learning-index.json`
|
|
133
|
-
4. If `--save-wiki`: run `maestro wiki create --type note --slug follow-{slug} --title "Follow-Along: {target}" --body-file .workflow/learning/follow-{slug}-{date}.md`
|
|
134
|
-
5. Display summary with key findings and next steps
|
|
135
|
-
|
|
136
|
-
**Next-step routing:**
|
|
137
|
-
- Deep dive into a discovered pattern → `/learn-decompose <path>`
|
|
138
|
-
- Add undocumented pattern to specs → `/spec-add
|
|
139
|
-
- Get second opinion on a finding → `/learn-second-opinion <file>`
|
|
140
|
-
- Browse related wiki entries → `/wiki-digest <topic>`
|
|
141
|
-
</execution>
|
|
142
|
-
|
|
143
|
-
<error_codes>
|
|
144
|
-
| Code | Severity | Condition | Recovery |
|
|
145
|
-
|------|----------|-----------|----------|
|
|
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 `/maestro-init` first |
|
|
148
|
-
| W001 | warning | Wiki graph unavailable (no .workflow/ wiki entries) — skipping context web | Proceed with code-only context (imports/exports) |
|
|
149
|
-
| W002 | warning | coding-conventions.md not found — skipping convention comparison | Patterns flagged as "unknown convention status" |
|
|
150
|
-
| W003 | warning | Target is very large (>1000 lines) — auto-switching to shallow depth | Use --depth deep to override |
|
|
151
|
-
</error_codes>
|
|
152
|
-
|
|
153
|
-
<success_criteria>
|
|
154
|
-
- [ ] Target resolved to concrete content (file, wiki entry, or search result)
|
|
155
|
-
- [ ] Context web loaded (forward/backlinks for wiki, imports/exports for code)
|
|
156
|
-
- [ ] Reading order established (sections/files ordered logically)
|
|
157
|
-
- [ ] All 4 forcing questions applied per section
|
|
158
|
-
- [ ] Patterns extracted with file:line anchors
|
|
159
|
-
- [ ] Convention comparison performed against coding-conventions.md
|
|
160
|
-
- [ ] Understanding map produced with: concepts, patterns, assumptions, questions, connections
|
|
161
|
-
- [ ] `follow-{slug}-{date}.md` written
|
|
162
|
-
- [ ] `lessons.jsonl` appended with discovered patterns (stable INS-ids)
|
|
163
|
-
- [ ] `learning-index.json` updated
|
|
164
|
-
- [ ] If --save-wiki: wiki note entry created
|
|
165
|
-
- [ ] No files modified outside `.workflow/learning/` (and optionally wiki)
|
|
166
|
-
- [ ] Summary displayed with next-step routing
|
|
167
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: learn-follow
|
|
3
|
+
description: Guided follow-along reading of code or wiki entries, extracting patterns and building understanding
|
|
4
|
+
argument-hint: "<path|wiki-id|topic> [--depth shallow|deep] [--save-wiki]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Guided reading experience for code files, wiki entries, or topics. Instead of just reading code, this command walks through content section by section using forcing questions (inspired by gstack `/office-hours` brainstorming) to extract patterns, identify assumptions, and build a structured understanding map.
|
|
16
|
+
|
|
17
|
+
Outputs reading notes with extracted patterns, open questions, and connection points. Insights persist to `lessons.jsonl` and optionally become wiki note entries for the knowledge graph.
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
Arguments: $ARGUMENTS
|
|
22
|
+
|
|
23
|
+
**Target resolution (auto-detected from first argument):**
|
|
24
|
+
- File path (e.g., `src/commands/wiki.ts`) → Read source file
|
|
25
|
+
- Wiki ID (e.g., `spec-auth`, `phase-planning`) → Fetch via `maestro wiki get`
|
|
26
|
+
- Topic string (e.g., `"authentication flow"`) → Search via `maestro wiki search`, use top result
|
|
27
|
+
|
|
28
|
+
**Flags:**
|
|
29
|
+
- `--depth shallow` — Quick pass: key patterns and structure only (default)
|
|
30
|
+
- `--depth deep` — Thorough: every function, every branch, every assumption
|
|
31
|
+
- `--save-wiki` — Create a wiki note entry with the reading notes via `maestro wiki create --type note`
|
|
32
|
+
|
|
33
|
+
**Storage written:**
|
|
34
|
+
- `.workflow/learning/follow-{slug}-{YYYY-MM-DD}.md` — Reading notes with understanding map
|
|
35
|
+
- `.workflow/learning/lessons.jsonl` — Appended pattern/technique insights
|
|
36
|
+
- `.workflow/learning/learning-index.json` — Updated index
|
|
37
|
+
- If `--save-wiki`: new wiki note entry
|
|
38
|
+
|
|
39
|
+
**Storage read:**
|
|
40
|
+
- Target source file or wiki entry
|
|
41
|
+
- `maestro wiki backlinks <id>` / `maestro wiki forward <id>` — Relationship context
|
|
42
|
+
- `.workflow/specs/coding-conventions.md` — Convention reference for pattern matching
|
|
43
|
+
- `.workflow/learning/lessons.jsonl` — Prior insights for dedup and cross-reference
|
|
44
|
+
</context>
|
|
45
|
+
|
|
46
|
+
<execution>
|
|
47
|
+
|
|
48
|
+
### Stage 1: Resolve Target
|
|
49
|
+
- If argument looks like a file path (contains `/` or `\`, or matches a glob): verify file exists via Read
|
|
50
|
+
- If argument matches wiki ID pattern (`<type>-<slug>`): fetch via `maestro wiki get <id>` (offline mode)
|
|
51
|
+
- Otherwise: treat as topic string, run `maestro wiki search "<topic>"`, take the top result. If no result, fall back to Grep across `src/` for the topic.
|
|
52
|
+
- If target cannot be resolved, AskUserQuestion with suggestions.
|
|
53
|
+
|
|
54
|
+
### Stage 2: Load Context Web
|
|
55
|
+
For the resolved target, build a 1-hop context neighborhood:
|
|
56
|
+
|
|
57
|
+
**If wiki entry:**
|
|
58
|
+
- `maestro wiki forward <id>` — What this entry references
|
|
59
|
+
- `maestro wiki backlinks <id>` — What references this entry
|
|
60
|
+
- Read the body of top 3 related entries for context
|
|
61
|
+
|
|
62
|
+
**If code file:**
|
|
63
|
+
- Parse imports/requires to identify dependency files
|
|
64
|
+
- Grep for exports used by other files (reverse dependencies)
|
|
65
|
+
- Read the first 50 lines of top 3 dependent files for context
|
|
66
|
+
|
|
67
|
+
**If directory:**
|
|
68
|
+
- List files, identify entry points (index.ts, main.ts, cli.ts)
|
|
69
|
+
- Build reading order: entry point → core modules → utilities → tests
|
|
70
|
+
|
|
71
|
+
### Stage 3: Build Reading Order
|
|
72
|
+
- For a single file: split into logical sections (function boundaries, class boundaries, export groups)
|
|
73
|
+
- For a wiki entry: split by markdown headings
|
|
74
|
+
- For a directory: order files by dependency (entry points first, leaf modules last)
|
|
75
|
+
- For `--depth shallow`: limit to top-level structure (function signatures, section headers)
|
|
76
|
+
- For `--depth deep`: include every function body, every branch
|
|
77
|
+
|
|
78
|
+
### Stage 4: Guided Reading with Forcing Questions
|
|
79
|
+
Walk through each section in reading order. For each section, apply 4 forcing questions:
|
|
80
|
+
|
|
81
|
+
1. **"What pattern is being used here?"** — Identify design patterns, idioms, conventions. Compare against `coding-conventions.md`.
|
|
82
|
+
2. **"Why this approach instead of alternatives?"** — What trade-offs were made? What was the simpler approach not chosen?
|
|
83
|
+
3. **"What assumption does this depend on?"** — What must be true for this code/content to be correct? External state? Input shape? Ordering?
|
|
84
|
+
4. **"What would break if this changed?"** — Fragility analysis. What downstream effects would a change have?
|
|
85
|
+
|
|
86
|
+
Record answers as structured annotations per section.
|
|
87
|
+
|
|
88
|
+
### Stage 5: Extract Patterns
|
|
89
|
+
From the forcing question answers, extract:
|
|
90
|
+
- **Design patterns**: named patterns with code anchors (file:line)
|
|
91
|
+
- **Naming conventions**: how things are named and why
|
|
92
|
+
- **Error handling approach**: how errors flow through this code/content
|
|
93
|
+
- **Data flow**: how data enters, transforms, and exits
|
|
94
|
+
- **Assumptions**: explicit and implicit assumptions identified
|
|
95
|
+
|
|
96
|
+
Cross-reference each pattern against existing `coding-conventions.md` entries:
|
|
97
|
+
- Already documented → note as "confirmed convention"
|
|
98
|
+
- Not documented → flag as "undocumented pattern" (candidate for `spec-add`)
|
|
99
|
+
|
|
100
|
+
### Stage 6: Produce Understanding Map
|
|
101
|
+
Build a structured summary document:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# Follow-Along: {target name}
|
|
105
|
+
|
|
106
|
+
## Key Concepts
|
|
107
|
+
- {concept}: {one-line explanation}
|
|
108
|
+
|
|
109
|
+
## Patterns Identified
|
|
110
|
+
| Pattern | Location | Convention Status |
|
|
111
|
+
|---------|----------|-------------------|
|
|
112
|
+
| {name} | {file:line} | documented / undocumented |
|
|
113
|
+
|
|
114
|
+
## Assumptions
|
|
115
|
+
- {assumption}: {what depends on it}
|
|
116
|
+
|
|
117
|
+
## Open Questions
|
|
118
|
+
- {question}: {why it matters}
|
|
119
|
+
|
|
120
|
+
## Connections
|
|
121
|
+
- Links to: {forward link entries}
|
|
122
|
+
- Referenced by: {backlink entries}
|
|
123
|
+
- Related lessons: {matching lessons.jsonl entries}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Stage 7: Persist
|
|
127
|
+
1. Write `.workflow/learning/follow-{slug}-{date}.md` with the understanding map
|
|
128
|
+
2. Append each new pattern/technique as an insight to `lessons.jsonl`:
|
|
129
|
+
- `source: "follow"`, `category: "pattern"` or `"technique"`
|
|
130
|
+
- Tags: `["follow", "{target-slug}"]`
|
|
131
|
+
- Stable INS-id from `hash("follow" + target + pattern_name)`
|
|
132
|
+
3. Update `learning-index.json`
|
|
133
|
+
4. If `--save-wiki`: run `maestro wiki create --type note --slug follow-{slug} --title "Follow-Along: {target}" --body-file .workflow/learning/follow-{slug}-{date}.md`
|
|
134
|
+
5. Display summary with key findings and next steps
|
|
135
|
+
|
|
136
|
+
**Next-step routing:**
|
|
137
|
+
- Deep dive into a discovered pattern → `/learn-decompose <path>`
|
|
138
|
+
- Add undocumented pattern to specs → `/spec-add coding <description>`
|
|
139
|
+
- Get second opinion on a finding → `/learn-second-opinion <file>`
|
|
140
|
+
- Browse related wiki entries → `/wiki-digest <topic>`
|
|
141
|
+
</execution>
|
|
142
|
+
|
|
143
|
+
<error_codes>
|
|
144
|
+
| Code | Severity | Condition | Recovery |
|
|
145
|
+
|------|----------|-----------|----------|
|
|
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 `/maestro-init` first |
|
|
148
|
+
| W001 | warning | Wiki graph unavailable (no .workflow/ wiki entries) — skipping context web | Proceed with code-only context (imports/exports) |
|
|
149
|
+
| W002 | warning | coding-conventions.md not found — skipping convention comparison | Patterns flagged as "unknown convention status" |
|
|
150
|
+
| W003 | warning | Target is very large (>1000 lines) — auto-switching to shallow depth | Use --depth deep to override |
|
|
151
|
+
</error_codes>
|
|
152
|
+
|
|
153
|
+
<success_criteria>
|
|
154
|
+
- [ ] Target resolved to concrete content (file, wiki entry, or search result)
|
|
155
|
+
- [ ] Context web loaded (forward/backlinks for wiki, imports/exports for code)
|
|
156
|
+
- [ ] Reading order established (sections/files ordered logically)
|
|
157
|
+
- [ ] All 4 forcing questions applied per section
|
|
158
|
+
- [ ] Patterns extracted with file:line anchors
|
|
159
|
+
- [ ] Convention comparison performed against coding-conventions.md
|
|
160
|
+
- [ ] Understanding map produced with: concepts, patterns, assumptions, questions, connections
|
|
161
|
+
- [ ] `follow-{slug}-{date}.md` written
|
|
162
|
+
- [ ] `lessons.jsonl` appended with discovered patterns (stable INS-ids)
|
|
163
|
+
- [ ] `learning-index.json` updated
|
|
164
|
+
- [ ] If --save-wiki: wiki note entry created
|
|
165
|
+
- [ ] No files modified outside `.workflow/learning/` (and optionally wiki)
|
|
166
|
+
- [ ] Summary displayed with next-step routing
|
|
167
|
+
</success_criteria>
|
|
@@ -145,7 +145,7 @@ git log --oneline --all --grep="decision\|chose\|decided\|architecture" -20
|
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
Also read:
|
|
148
|
-
- `.workflow/specs/architecture-constraints.md` — grep for
|
|
148
|
+
- `.workflow/specs/architecture-constraints.md` — grep for `<spec-entry category="arch"` blocks
|
|
149
149
|
- `.workflow/phases/*/context.md` — scan for "Locked:", "Deferred:" sections
|
|
150
150
|
- `.workflow/learning/lessons.jsonl` — filter `category == "decision"`
|
|
151
151
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-analyze
|
|
3
3
|
description: Multi-dimensional analysis with CLI exploration, decision extraction, and intent tracking
|
|
4
|
-
argument-hint: "[phase|topic] [-y] [-c] [-q]"
|
|
4
|
+
argument-hint: "[phase|topic] [-y] [-c] [-q] [--gaps [ISS-ID]]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
7
7
|
- Write
|
|
@@ -18,6 +18,8 @@ Perform multi-dimensional analysis of a technical proposal, decision, or archite
|
|
|
18
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
19
|
|
|
20
20
|
Use `-q` for quick decision extraction only (skip exploration + scoring).
|
|
21
|
+
|
|
22
|
+
Use `--gaps` for issue-focused root cause analysis (replaces manage-issue-analyze). Loads issues from issues.jsonl, performs CLI exploration against issue context/location, synthesizes root cause into issue.analysis, and outputs context.md for downstream `plan --gaps`.
|
|
21
23
|
</purpose>
|
|
22
24
|
|
|
23
25
|
<required_reading>
|
|
@@ -26,6 +28,7 @@ Use `-q` for quick decision extraction only (skip exploration + scoring).
|
|
|
26
28
|
|
|
27
29
|
<deferred_reading>
|
|
28
30
|
- [state.json](~/.maestro/templates/state.json) — read when registering artifact
|
|
31
|
+
- [issue-gaps-analyze.md](~/.maestro/workflows/issue-gaps-analyze.md) — read when --gaps is triggered
|
|
29
32
|
</deferred_reading>
|
|
30
33
|
|
|
31
34
|
<context>
|
|
@@ -35,6 +38,7 @@ $ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone
|
|
|
35
38
|
- `-y` / `--yes`: Auto mode — skip interactive scoping, use recommended defaults, auto-deepen
|
|
36
39
|
- `-c` / `--continue`: Resume from existing session (auto-detect session folder + discussion.md)
|
|
37
40
|
- `-q` / `--quick`: Quick mode — skip exploration + scoring, go straight to decision extraction (context.md only)
|
|
41
|
+
- `--gaps [ISS-ID]`: Issue root cause analysis mode. If ISS-ID provided, analyze single issue. If omitted, analyze all open/registered issues from issues.jsonl.
|
|
38
42
|
|
|
39
43
|
**Scope routing (per architecture):**
|
|
40
44
|
|
|
@@ -44,8 +48,10 @@ $ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone
|
|
|
44
48
|
| `analyze 1` | init + roadmap | phase | Analyze phase 1 only |
|
|
45
49
|
| `analyze "topic"` (has milestone) | none | adhoc | Analyze topic, affiliated with current milestone |
|
|
46
50
|
| `analyze "topic"` (no milestone) | none | standalone | Analyze topic, no milestone affiliation |
|
|
51
|
+
| `analyze --gaps` | issues.jsonl exists | gaps | Load open issues, explore root causes, write analysis records |
|
|
52
|
+
| `analyze --gaps ISS-xxx` | issue exists | gaps | Analyze single issue root cause |
|
|
47
53
|
|
|
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).
|
|
54
|
+
**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). `--gaps` → gaps scope (bypasses standard scope routing).
|
|
49
55
|
|
|
50
56
|
**Output directory**: `scratch/analyze-{slug}-{date}/` (relative to `.workflow/`)
|
|
51
57
|
|
|
@@ -80,7 +86,32 @@ $ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone
|
|
|
80
86
|
<execution>
|
|
81
87
|
Follow '~/.maestro/workflows/analyze.md' completely.
|
|
82
88
|
|
|
83
|
-
|
|
89
|
+
### --gaps Mode (Issue Root Cause Analysis)
|
|
90
|
+
|
|
91
|
+
When `--gaps` flag is present, follow `~/.maestro/workflows/issue-gaps-analyze.md` instead of the standard analyze pipeline:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Phase 1: Load issues from .workflow/issues/issues.jsonl
|
|
95
|
+
- If ISS-ID provided: load single issue
|
|
96
|
+
- If no ISS-ID: filter issues where status = open | registered
|
|
97
|
+
- Validate: at least 1 issue loaded, else error E_NO_ISSUES
|
|
98
|
+
|
|
99
|
+
Phase 2: CLI exploration per issue
|
|
100
|
+
- For each issue: build exploration prompt from issue.title, description, context, related_files
|
|
101
|
+
- Run maestro delegate --to gemini --mode analysis with codebase context
|
|
102
|
+
- Gather affected files, call chains, root cause evidence
|
|
103
|
+
|
|
104
|
+
Phase 3: Root cause synthesis → write issue.analysis
|
|
105
|
+
- Parse CLI output into analysis record: { root_cause, affected_files, impact_scope, fix_direction, confidence, analyzed_at, tool, depth }
|
|
106
|
+
- Write analysis record to issue in issues.jsonl
|
|
107
|
+
- Append history entry: { action: "analyzed", at: <ISO>, by: "maestro-analyze --gaps" }
|
|
108
|
+
|
|
109
|
+
Phase 4: Output context.md for downstream plan --gaps
|
|
110
|
+
- Aggregate all analyzed issues into context.md with root causes and fix directions
|
|
111
|
+
- Register ANL artifact in state.json
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Handoff:** context.md is consumed by maestro-plan (loads Locked/Free/Deferred decisions). In --gaps mode, context.md contains issue root causes for `plan --gaps` consumption.
|
|
84
115
|
|
|
85
116
|
**Next-step routing on completion:**
|
|
86
117
|
|
|
@@ -92,6 +123,10 @@ Phase/Milestone scope:
|
|
|
92
123
|
Adhoc/Standalone scope:
|
|
93
124
|
- Ready to plan → `/maestro-plan --dir {scratch_dir}`
|
|
94
125
|
- Need more exploration → `/maestro-analyze {topic} -c`
|
|
126
|
+
|
|
127
|
+
Gaps scope:
|
|
128
|
+
- Issues analyzed → `/maestro-plan --gaps` (plan fix tasks linked to issues)
|
|
129
|
+
- Need more context → `/maestro-analyze --gaps {ISS-ID}` (re-analyze specific issue)
|
|
95
130
|
</execution>
|
|
96
131
|
|
|
97
132
|
<error_codes>
|
|
@@ -102,6 +137,8 @@ Adhoc/Standalone scope:
|
|
|
102
137
|
| W002 | warning | CLI analysis timeout | Retry with shorter prompt, or skip perspective |
|
|
103
138
|
| W003 | warning | Insufficient evidence for scoring dimensions | Note low-confidence dimensions, proceed with available evidence |
|
|
104
139
|
| W004 | warning | Max rounds reached (5) | Force synthesis, offer continuation option |
|
|
140
|
+
| E_NO_ISSUES | error | --gaps but no open/registered issues found | Suggest `/manage-issue-discover` or `/manage-issue create` |
|
|
141
|
+
| E_ISSUE_NOT_FOUND | error | --gaps with ISS-ID but issue not found | Suggest `/manage-issue list` to find valid IDs |
|
|
105
142
|
</error_codes>
|
|
106
143
|
|
|
107
144
|
<success_criteria>
|
|
@@ -112,6 +149,12 @@ Full mode:
|
|
|
112
149
|
- [ ] conclusions.json created with recommendations and decision trail
|
|
113
150
|
- [ ] Intent Coverage tracked and verified (no unresolved ❌ items)
|
|
114
151
|
|
|
152
|
+
Gaps mode:
|
|
153
|
+
- [ ] Issues loaded from issues.jsonl (all open/registered, or single ISS-ID)
|
|
154
|
+
- [ ] CLI exploration executed per issue with codebase context
|
|
155
|
+
- [ ] Analysis record attached to each issue in issues.jsonl
|
|
156
|
+
- [ ] context.md written with aggregated root causes for plan --gaps
|
|
157
|
+
|
|
115
158
|
Both modes (full + quick):
|
|
116
159
|
- [ ] context.md written with all decisions classified as Locked/Free/Deferred
|
|
117
160
|
- [ ] Gray areas identified through phase-specific analysis
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-coordinate
|
|
3
3
|
description: CLI-based coordinator - analyze intent → select command chain → execute sequentially via maestro delegate with auto-confirm
|
|
4
|
-
argument-hint: "\"intent text\" [-y] [-c] [--dry-run] [--chain <name>]
|
|
4
|
+
argument-hint: "\"intent text\" [-y] [-c] [--dry-run] [--chain <name>]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
7
7
|
- Write
|
|
@@ -36,7 +36,6 @@ $ARGUMENTS — user intent text, or special keywords (`continue`/`next`/`status`
|
|
|
36
36
|
- `-c` / `--continue` — Resume previous session
|
|
37
37
|
- `--dry-run` — Show planned chain without executing
|
|
38
38
|
- `--chain <name>` — Force a specific chain
|
|
39
|
-
- `--tool <tool>` — CLI tool override (default: claude)
|
|
40
39
|
</context>
|
|
41
40
|
|
|
42
41
|
<execution>
|
|
@@ -50,7 +49,6 @@ Follow '~/.maestro/workflows/maestro-coordinate.md' completely.
|
|
|
50
49
|
| E002 | error | Clarity too low after 2 rounds | Ask to rephrase |
|
|
51
50
|
| E003 | error | Step failed + abort | Suggest resume with -c |
|
|
52
51
|
| E004 | error | Resume session not found | Show available sessions |
|
|
53
|
-
| E005 | error | CLI tool unavailable | Try fallback tool |
|
|
54
52
|
</error_codes>
|
|
55
53
|
|
|
56
54
|
<success_criteria>
|
|
@@ -96,6 +96,20 @@ If exit code is 1, present warnings and ask whether to proceed.
|
|
|
96
96
|
|
|
97
97
|
Follow '~/.maestro/workflows/execute.md' completely.
|
|
98
98
|
|
|
99
|
+
### Issue Status Sync
|
|
100
|
+
|
|
101
|
+
On each task completion, if `task.issue_id` exists, sync status back to the issue in `.workflow/issues/issues.jsonl`:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
For each completed/failed TASK with issue_id:
|
|
105
|
+
Read issue from issues.jsonl by issue_id
|
|
106
|
+
Collect all task_refs[] statuses for that issue:
|
|
107
|
+
all task_refs completed → issue.status = "resolved"
|
|
108
|
+
any task_ref failed → issue.status = "in_progress"
|
|
109
|
+
Append history entry: { action: "executed", at: <ISO>, by: "maestro-execute", summary: "TASK-{NNN} {status}" }
|
|
110
|
+
Write updated issue back to issues.jsonl
|
|
111
|
+
```
|
|
112
|
+
|
|
99
113
|
**Report format on completion:**
|
|
100
114
|
|
|
101
115
|
```
|
|
@@ -108,6 +108,22 @@ ELSE:
|
|
|
108
108
|
wiki_context = structured block for downstream stages
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
+
### Issue Linkback (--gaps mode)
|
|
112
|
+
|
|
113
|
+
After plan generation and checking, if `--gaps` mode was used, link TASK files back to issues bidirectionally:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
For each created TASK-{NNN}.json that has issue_id:
|
|
117
|
+
Update corresponding issue in .workflow/issues/issues.jsonl:
|
|
118
|
+
task_refs: append TASK-{NNN} to array
|
|
119
|
+
task_plan_dir: relative path to .task/ directory
|
|
120
|
+
status: "planned"
|
|
121
|
+
updated_at: now()
|
|
122
|
+
Append history entry: { action: "planned", at: <ISO>, by: "maestro-plan", summary: "Linked to TASK-{NNN}" }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This ensures issue → TASK traceability. The `task_refs[]` and `task_plan_dir` fields on the issue allow the dashboard to resolve and display associated TASK details.
|
|
126
|
+
|
|
111
127
|
**Report format on completion:**
|
|
112
128
|
|
|
113
129
|
```
|