maestro-flow 0.3.37 → 0.3.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/workflow-analyzer.md +2 -0
- package/.claude/agents/workflow-debugger.md +2 -0
- package/.claude/agents/workflow-executor.md +2 -0
- package/.claude/agents/workflow-integration-checker.md +1 -0
- package/.claude/agents/workflow-nyquist-auditor.md +1 -0
- package/.claude/agents/workflow-planner.md +2 -0
- package/.claude/agents/workflow-reviewer.md +2 -0
- package/.claude/agents/workflow-verifier.md +2 -0
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-investigate.md +221 -221
- package/.claude/commands/learn-retro.md +303 -303
- package/.claude/commands/learn-second-opinion.md +167 -167
- package/.claude/commands/maestro-amend.md +300 -300
- package/.claude/commands/maestro-analyze.md +126 -126
- package/.claude/commands/maestro-brainstorm.md +100 -100
- package/.claude/commands/maestro-composer.md +354 -354
- package/.claude/commands/maestro-execute.md +120 -114
- package/.claude/commands/maestro-fork.md +86 -86
- package/.claude/commands/maestro-init.md +78 -78
- package/.claude/commands/maestro-learn.md +140 -140
- package/.claude/commands/maestro-link-coordinate.md +1 -1
- package/.claude/commands/maestro-merge.md +61 -61
- package/.claude/commands/maestro-milestone-release.md +96 -96
- package/.claude/commands/maestro-overlay.md +178 -178
- package/.claude/commands/maestro-plan.md +150 -138
- package/.claude/commands/maestro-player.md +404 -404
- package/.claude/commands/maestro-quick.md +56 -56
- package/.claude/commands/maestro-ralph-execute.md +7 -18
- package/.claude/commands/maestro-ralph.md +9 -3
- package/.claude/commands/maestro-roadmap.md +1 -1
- package/.claude/commands/maestro-ui-design.md +93 -93
- package/.claude/commands/maestro-update.md +176 -176
- package/.claude/commands/maestro-verify.md +96 -90
- package/.claude/commands/maestro.md +121 -121
- package/.claude/commands/manage-codebase-rebuild.md +75 -75
- package/.claude/commands/manage-codebase-refresh.md +57 -57
- package/.claude/commands/manage-harvest.md +94 -94
- package/.claude/commands/manage-issue-discover.md +77 -77
- package/.claude/commands/manage-issue.md +73 -73
- package/.claude/commands/manage-knowhow-capture.md +193 -193
- package/.claude/commands/manage-knowhow.md +77 -77
- package/.claude/commands/manage-learn.md +67 -67
- package/.claude/commands/manage-status.md +51 -51
- package/.claude/commands/manage-wiki.md +62 -62
- package/.claude/commands/quality-auto-test.md +1 -1
- package/.claude/commands/quality-debug.md +121 -115
- package/.claude/commands/quality-refactor.md +55 -55
- package/.claude/commands/quality-retrospective.md +78 -78
- package/.claude/commands/quality-review.md +114 -108
- package/.claude/commands/quality-sync.md +51 -51
- package/.claude/commands/quality-test.md +103 -103
- package/.claude/commands/spec-add.md +49 -49
- package/.claude/commands/spec-load.md +51 -51
- package/.claude/commands/spec-remove.md +51 -51
- package/.claude/commands/spec-setup.md +51 -51
- package/.claude/commands/wiki-connect.md +62 -62
- package/.claude/commands/wiki-digest.md +69 -69
- package/.codex/skills/learn-decompose/SKILL.md +113 -113
- package/.codex/skills/learn-follow/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +83 -83
- package/.codex/skills/learn-retro/SKILL.md +83 -83
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -86
- package/.codex/skills/maestro/SKILL.md +304 -304
- package/.codex/skills/maestro-analyze/SKILL.md +9 -8
- package/.codex/skills/maestro-brainstorm/SKILL.md +442 -397
- package/.codex/skills/maestro-composer/SKILL.md +213 -213
- package/.codex/skills/maestro-execute/SKILL.md +346 -318
- package/.codex/skills/maestro-fork/SKILL.md +56 -2
- package/.codex/skills/maestro-init/SKILL.md +40 -16
- package/.codex/skills/maestro-learn/SKILL.md +80 -80
- package/.codex/skills/maestro-link-coordinate/SKILL.md +257 -257
- package/.codex/skills/maestro-merge/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-audit/SKILL.md +1 -1
- package/.codex/skills/maestro-milestone-complete/SKILL.md +40 -9
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -70
- package/.codex/skills/maestro-overlay/SKILL.md +1 -1
- package/.codex/skills/maestro-plan/SKILL.md +19 -4
- package/.codex/skills/maestro-player/SKILL.md +323 -323
- package/.codex/skills/maestro-quick/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph/SKILL.md +681 -578
- package/.codex/skills/maestro-roadmap/SKILL.md +518 -468
- package/.codex/skills/maestro-ui-design/SKILL.md +109 -12
- package/.codex/skills/maestro-verify/SKILL.md +27 -9
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +3 -2
- package/.codex/skills/manage-codebase-refresh/SKILL.md +1 -1
- package/.codex/skills/manage-harvest/SKILL.md +91 -91
- package/.codex/skills/manage-issue/SKILL.md +19 -6
- package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
- package/.codex/skills/manage-knowhow/SKILL.md +95 -95
- package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -110
- package/.codex/skills/manage-learn/SKILL.md +1 -1
- package/.codex/skills/manage-status/SKILL.md +1 -1
- package/.codex/skills/manage-wiki/SKILL.md +55 -55
- package/.codex/skills/quality-auto-test/SKILL.md +547 -547
- package/.codex/skills/quality-debug/SKILL.md +339 -334
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-retrospective/SKILL.md +292 -292
- package/.codex/skills/quality-review/SKILL.md +365 -364
- package/.codex/skills/quality-sync/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +498 -498
- package/.codex/skills/spec-add/SKILL.md +101 -101
- package/.codex/skills/spec-load/SKILL.md +77 -77
- package/.codex/skills/spec-map/SKILL.md +1 -1
- package/.codex/skills/spec-remove/SKILL.md +69 -69
- package/.codex/skills/spec-setup/SKILL.md +1 -1
- package/.codex/skills/team-coordinate/SKILL.md +2 -1
- package/.codex/skills/team-executor/SKILL.md +116 -115
- package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -1
- package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +14 -6
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +7 -1
- package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +16 -4
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +8 -2
- package/.codex/skills/team-quality-assurance/SKILL.md +2 -1
- package/.codex/skills/team-quality-assurance/roles/scout/role.md +9 -2
- package/.codex/skills/team-review/SKILL.md +2 -1
- package/.codex/skills/team-review/roles/reviewer/role.md +10 -1
- package/.codex/skills/team-review/roles/scanner/role.md +10 -1
- package/.codex/skills/team-tech-debt/SKILL.md +144 -143
- package/.codex/skills/team-tech-debt/roles/executor/role.md +9 -5
- package/.codex/skills/team-tech-debt/roles/scanner/role.md +10 -0
- package/.codex/skills/team-tech-debt/roles/validator/role.md +8 -2
- package/.codex/skills/team-testing/SKILL.md +2 -1
- package/.codex/skills/team-testing/roles/executor/role.md +8 -2
- package/.codex/skills/team-testing/roles/generator/role.md +8 -2
- package/.codex/skills/wiki-connect/SKILL.md +73 -73
- package/.codex/skills/wiki-digest/SKILL.md +87 -87
- package/README.md +6 -0
- package/README.zh-CN.md +6 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +4 -0
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +118 -7
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.d.ts +2 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js +4 -0
- package/dashboard/dist-server/src/agents/cli-agent-runner.js.map +1 -1
- package/dashboard/dist-server/src/commands/delegate.d.ts +2 -0
- package/dashboard/dist-server/src/commands/delegate.js +18 -0
- package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
- package/dashboard/dist-server/src/config/cli-tools-config.d.ts +6 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js +2 -0
- package/dashboard/dist-server/src/config/cli-tools-config.js.map +1 -1
- package/dist/shared/agent-types.d.ts +2 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts +2 -0
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +4 -0
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +29 -1
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/delegate.d.ts +2 -0
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +18 -0
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/launcher.d.ts.map +1 -1
- package/dist/src/commands/launcher.js +27 -4
- package/dist/src/commands/launcher.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts +6 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +2 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/overlay/applier.d.ts.map +1 -1
- package/dist/src/core/overlay/applier.js +65 -5
- package/dist/src/core/overlay/applier.js.map +1 -1
- package/dist/src/core/overlay/loader.d.ts.map +1 -1
- package/dist/src/core/overlay/loader.js +9 -4
- package/dist/src/core/overlay/loader.js.map +1 -1
- package/dist/src/core/overlay/types.d.ts +2 -0
- package/dist/src/core/overlay/types.d.ts.map +1 -1
- package/dist/src/core/overlay/types.js +2 -0
- package/dist/src/core/overlay/types.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js +1 -1
- package/dist/src/tui/tools-ui/ToolsDashboard.js.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.d.ts.map +1 -1
- package/dist/src/tui/tools-ui/ToolsOverview.js +51 -4
- package/dist/src/tui/tools-ui/ToolsOverview.js.map +1 -1
- package/package.json +1 -1
- package/shared/agent-types.ts +2 -0
- package/workflows/delegate-protocol.codex.md +65 -0
- package/workflows/issue-analyze.md +2 -3
- package/workflows/issue-gaps-analyze.codex.md +260 -0
- package/workflows/issue-gaps-analyze.md +214 -0
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-learn
|
|
3
|
-
description:
|
|
4
|
-
argument-hint: "\"intent text\" [-y] [--dry-run] [--chain <name>]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Route learning requests to the optimal learn command or multi-step chain. Supports direct chain selection via `--chain` or intent-based routing via keyword matching.
|
|
16
|
-
|
|
17
|
-
Executes commands sequentially via Skill() with session tracking.
|
|
18
|
-
</purpose>
|
|
19
|
-
|
|
20
|
-
<context>
|
|
21
|
-
$ARGUMENTS — user learning intent text, or flags.
|
|
22
|
-
|
|
23
|
-
**Flags:**
|
|
24
|
-
- `-y` / `--yes` — Auto mode: skip confirmation
|
|
25
|
-
- `--dry-run` — Show planned chain without executing
|
|
26
|
-
- `--chain <name>` — Force a specific chain (bypass intent detection)
|
|
27
|
-
|
|
28
|
-
**Available learn commands:**
|
|
29
|
-
| Command | Purpose |
|
|
30
|
-
|---------|---------|
|
|
31
|
-
| `learn-follow` | Guided reading with forcing questions, pattern extraction |
|
|
32
|
-
| `learn-investigate` | Hypothesis-driven question investigation |
|
|
33
|
-
| `learn-decompose` | 4-dimension parallel pattern extraction |
|
|
34
|
-
| `learn-second-opinion` | Multi-perspective review/challenge/consult |
|
|
35
|
-
| `learn-retro` | Unified retrospective (git metrics + decision evaluation) |
|
|
36
|
-
|
|
37
|
-
**Available chains:**
|
|
38
|
-
| Chain | Steps | Use when |
|
|
39
|
-
|-------|-------|----------|
|
|
40
|
-
| `follow` | learn-follow | Read/understand code or docs |
|
|
41
|
-
| `investigate` | learn-investigate | Answer a "how/why" question |
|
|
42
|
-
| `decompose` | learn-decompose | Catalog patterns in a module |
|
|
43
|
-
| `second-opinion` | learn-second-opinion | Get review/challenge on code |
|
|
44
|
-
| `retro` | learn-retro --lens all | Full retrospective (git + decisions) |
|
|
45
|
-
| `deep-understand` | follow → decompose → second-opinion | Thorough module analysis |
|
|
46
|
-
| `pattern-catalog` | decompose --save-spec --save-wiki → second-opinion --mode review | Full pattern extraction + review |
|
|
47
|
-
|
|
48
|
-
**Storage:**
|
|
49
|
-
- `.workflow/learning/.maestro-learn/{session_id}/status.json` — Session tracking
|
|
50
|
-
- All learn command outputs go to `.workflow/learning/`
|
|
51
|
-
</context>
|
|
52
|
-
|
|
53
|
-
<execution>
|
|
54
|
-
|
|
55
|
-
### Step 1: Parse & Route
|
|
56
|
-
|
|
57
|
-
Parse flags (`-y`, `--dry-run`, `--chain`). Extract intent text.
|
|
58
|
-
|
|
59
|
-
**If `--chain` specified:** validate against known chains, jump to Step 2.
|
|
60
|
-
|
|
61
|
-
**Intent routing table** (match first token or keywords):
|
|
62
|
-
|
|
63
|
-
| Keywords | Route |
|
|
64
|
-
|----------|-------|
|
|
65
|
-
| File path (contains `/` or `\`) | `follow` |
|
|
66
|
-
| Wiki ID (`type-slug` pattern) | `follow` |
|
|
67
|
-
| read, follow, walk through, understand, 阅读, 跟读 | `follow` |
|
|
68
|
-
| why, how, what if, investigate, 为什么, 怎么 | `investigate` |
|
|
69
|
-
| pattern, decompose, catalog, 分解, 模式 | `decompose` |
|
|
70
|
-
| opinion, review, challenge, consult, 评审, 挑战 | `second-opinion` |
|
|
71
|
-
| retro, git, commit, decision, 回顾 | `retro` |
|
|
72
|
-
| thorough, deep, 全面, 深入 | `deep-understand` |
|
|
73
|
-
|
|
74
|
-
**If no match:** present menu via AskUserQuestion:
|
|
75
|
-
```
|
|
76
|
-
What would you like to do?
|
|
77
|
-
1. Read through code/docs → follow
|
|
78
|
-
2. Investigate a question → investigate
|
|
79
|
-
3. Find patterns in code → decompose
|
|
80
|
-
4. Get a second opinion → second-opinion
|
|
81
|
-
5. Retrospective → retro
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Max 1 clarification round. If still unclear: error.
|
|
85
|
-
|
|
86
|
-
### Step 2: Resolve Target & Build Args
|
|
87
|
-
|
|
88
|
-
- File path → pass directly
|
|
89
|
-
- Wiki ID → pass directly
|
|
90
|
-
- Topic string → pass as quoted argument
|
|
91
|
-
- Extract any flags (--depth, --days, --lens, --mode, --scope, etc.)
|
|
92
|
-
|
|
93
|
-
**Chain → command mapping:**
|
|
94
|
-
```
|
|
95
|
-
follow → Skill("learn-follow", "{target} {flags}")
|
|
96
|
-
investigate → Skill("learn-investigate", "\"{target}\" {flags}")
|
|
97
|
-
decompose → Skill("learn-decompose", "{target} {flags}")
|
|
98
|
-
second-opinion → Skill("learn-second-opinion", "{target} {flags}")
|
|
99
|
-
retro → Skill("learn-retro", "{flags}")
|
|
100
|
-
deep-understand → [learn-follow --depth deep, learn-decompose --save-spec, learn-second-opinion --mode challenge]
|
|
101
|
-
pattern-catalog → [learn-decompose --save-spec --save-wiki, learn-second-opinion --mode review]
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Step 3: Confirm & Execute
|
|
105
|
-
|
|
106
|
-
**If `--dry-run`:** display chain plan and exit.
|
|
107
|
-
|
|
108
|
-
**If not `-y`:** show plan, ask for confirmation.
|
|
109
|
-
|
|
110
|
-
**Execute:**
|
|
111
|
-
1. Create session dir: `.workflow/learning/.maestro-learn/learn-{timestamp}/`
|
|
112
|
-
2. Write `status.json` with chain steps
|
|
113
|
-
3. Execute each step via `Skill()`:
|
|
114
|
-
- On success: mark completed, continue
|
|
115
|
-
- On failure (interactive): ask retry/skip/abort
|
|
116
|
-
- On failure (auto): skip and continue
|
|
117
|
-
4. Display session summary with artifact list and next-step suggestion
|
|
118
|
-
|
|
119
|
-
</execution>
|
|
120
|
-
|
|
121
|
-
<error_codes>
|
|
122
|
-
| Code | Severity | Description | Recovery |
|
|
123
|
-
|------|----------|-------------|----------|
|
|
124
|
-
| E001 | error | No intent provided | Provide a learning goal or use --chain |
|
|
125
|
-
| E002 | error | Cannot determine intent after clarification | Rephrase or use --chain directly |
|
|
126
|
-
| E003 | error | Chain step failed + user chose abort | Partial progress saved in status.json |
|
|
127
|
-
| E005 | error | Invalid --chain name | Show valid chains |
|
|
128
|
-
| W001 | warning | Intent ambiguous between commands | Present options |
|
|
129
|
-
| W002 | warning | Chain step completed with warnings | Log and continue |
|
|
130
|
-
</error_codes>
|
|
131
|
-
|
|
132
|
-
<success_criteria>
|
|
133
|
-
- [ ] Intent routed to correct chain (or --chain validated)
|
|
134
|
-
- [ ] Target resolved and arguments assembled
|
|
135
|
-
- [ ] Session directory created with status.json
|
|
136
|
-
- [ ] All chain steps executed via Skill()
|
|
137
|
-
- [ ] Error handling: retry/skip/abort per step
|
|
138
|
-
- [ ] Session summary displayed with next-step routing
|
|
139
|
-
- [ ] No files modified outside `.workflow/learning/`
|
|
140
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: maestro-learn
|
|
3
|
+
description: Route learning intent to learn-* commands
|
|
4
|
+
argument-hint: "\"intent text\" [-y] [--dry-run] [--chain <name>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
<purpose>
|
|
15
|
+
Route learning requests to the optimal learn command or multi-step chain. Supports direct chain selection via `--chain` or intent-based routing via keyword matching.
|
|
16
|
+
|
|
17
|
+
Executes commands sequentially via Skill() with session tracking.
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<context>
|
|
21
|
+
$ARGUMENTS — user learning intent text, or flags.
|
|
22
|
+
|
|
23
|
+
**Flags:**
|
|
24
|
+
- `-y` / `--yes` — Auto mode: skip confirmation
|
|
25
|
+
- `--dry-run` — Show planned chain without executing
|
|
26
|
+
- `--chain <name>` — Force a specific chain (bypass intent detection)
|
|
27
|
+
|
|
28
|
+
**Available learn commands:**
|
|
29
|
+
| Command | Purpose |
|
|
30
|
+
|---------|---------|
|
|
31
|
+
| `learn-follow` | Guided reading with forcing questions, pattern extraction |
|
|
32
|
+
| `learn-investigate` | Hypothesis-driven question investigation |
|
|
33
|
+
| `learn-decompose` | 4-dimension parallel pattern extraction |
|
|
34
|
+
| `learn-second-opinion` | Multi-perspective review/challenge/consult |
|
|
35
|
+
| `learn-retro` | Unified retrospective (git metrics + decision evaluation) |
|
|
36
|
+
|
|
37
|
+
**Available chains:**
|
|
38
|
+
| Chain | Steps | Use when |
|
|
39
|
+
|-------|-------|----------|
|
|
40
|
+
| `follow` | learn-follow | Read/understand code or docs |
|
|
41
|
+
| `investigate` | learn-investigate | Answer a "how/why" question |
|
|
42
|
+
| `decompose` | learn-decompose | Catalog patterns in a module |
|
|
43
|
+
| `second-opinion` | learn-second-opinion | Get review/challenge on code |
|
|
44
|
+
| `retro` | learn-retro --lens all | Full retrospective (git + decisions) |
|
|
45
|
+
| `deep-understand` | follow → decompose → second-opinion | Thorough module analysis |
|
|
46
|
+
| `pattern-catalog` | decompose --save-spec --save-wiki → second-opinion --mode review | Full pattern extraction + review |
|
|
47
|
+
|
|
48
|
+
**Storage:**
|
|
49
|
+
- `.workflow/learning/.maestro-learn/{session_id}/status.json` — Session tracking
|
|
50
|
+
- All learn command outputs go to `.workflow/learning/`
|
|
51
|
+
</context>
|
|
52
|
+
|
|
53
|
+
<execution>
|
|
54
|
+
|
|
55
|
+
### Step 1: Parse & Route
|
|
56
|
+
|
|
57
|
+
Parse flags (`-y`, `--dry-run`, `--chain`). Extract intent text.
|
|
58
|
+
|
|
59
|
+
**If `--chain` specified:** validate against known chains, jump to Step 2.
|
|
60
|
+
|
|
61
|
+
**Intent routing table** (match first token or keywords):
|
|
62
|
+
|
|
63
|
+
| Keywords | Route |
|
|
64
|
+
|----------|-------|
|
|
65
|
+
| File path (contains `/` or `\`) | `follow` |
|
|
66
|
+
| Wiki ID (`type-slug` pattern) | `follow` |
|
|
67
|
+
| read, follow, walk through, understand, 阅读, 跟读 | `follow` |
|
|
68
|
+
| why, how, what if, investigate, 为什么, 怎么 | `investigate` |
|
|
69
|
+
| pattern, decompose, catalog, 分解, 模式 | `decompose` |
|
|
70
|
+
| opinion, review, challenge, consult, 评审, 挑战 | `second-opinion` |
|
|
71
|
+
| retro, git, commit, decision, 回顾 | `retro` |
|
|
72
|
+
| thorough, deep, 全面, 深入 | `deep-understand` |
|
|
73
|
+
|
|
74
|
+
**If no match:** present menu via AskUserQuestion:
|
|
75
|
+
```
|
|
76
|
+
What would you like to do?
|
|
77
|
+
1. Read through code/docs → follow
|
|
78
|
+
2. Investigate a question → investigate
|
|
79
|
+
3. Find patterns in code → decompose
|
|
80
|
+
4. Get a second opinion → second-opinion
|
|
81
|
+
5. Retrospective → retro
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Max 1 clarification round. If still unclear: error.
|
|
85
|
+
|
|
86
|
+
### Step 2: Resolve Target & Build Args
|
|
87
|
+
|
|
88
|
+
- File path → pass directly
|
|
89
|
+
- Wiki ID → pass directly
|
|
90
|
+
- Topic string → pass as quoted argument
|
|
91
|
+
- Extract any flags (--depth, --days, --lens, --mode, --scope, etc.)
|
|
92
|
+
|
|
93
|
+
**Chain → command mapping:**
|
|
94
|
+
```
|
|
95
|
+
follow → Skill("learn-follow", "{target} {flags}")
|
|
96
|
+
investigate → Skill("learn-investigate", "\"{target}\" {flags}")
|
|
97
|
+
decompose → Skill("learn-decompose", "{target} {flags}")
|
|
98
|
+
second-opinion → Skill("learn-second-opinion", "{target} {flags}")
|
|
99
|
+
retro → Skill("learn-retro", "{flags}")
|
|
100
|
+
deep-understand → [learn-follow --depth deep, learn-decompose --save-spec, learn-second-opinion --mode challenge]
|
|
101
|
+
pattern-catalog → [learn-decompose --save-spec --save-wiki, learn-second-opinion --mode review]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Step 3: Confirm & Execute
|
|
105
|
+
|
|
106
|
+
**If `--dry-run`:** display chain plan and exit.
|
|
107
|
+
|
|
108
|
+
**If not `-y`:** show plan, ask for confirmation.
|
|
109
|
+
|
|
110
|
+
**Execute:**
|
|
111
|
+
1. Create session dir: `.workflow/learning/.maestro-learn/learn-{timestamp}/`
|
|
112
|
+
2. Write `status.json` with chain steps
|
|
113
|
+
3. Execute each step via `Skill()`:
|
|
114
|
+
- On success: mark completed, continue
|
|
115
|
+
- On failure (interactive): ask retry/skip/abort
|
|
116
|
+
- On failure (auto): skip and continue
|
|
117
|
+
4. Display session summary with artifact list and next-step suggestion
|
|
118
|
+
|
|
119
|
+
</execution>
|
|
120
|
+
|
|
121
|
+
<error_codes>
|
|
122
|
+
| Code | Severity | Description | Recovery |
|
|
123
|
+
|------|----------|-------------|----------|
|
|
124
|
+
| E001 | error | No intent provided | Provide a learning goal or use --chain |
|
|
125
|
+
| E002 | error | Cannot determine intent after clarification | Rephrase or use --chain directly |
|
|
126
|
+
| E003 | error | Chain step failed + user chose abort | Partial progress saved in status.json |
|
|
127
|
+
| E005 | error | Invalid --chain name | Show valid chains |
|
|
128
|
+
| W001 | warning | Intent ambiguous between commands | Present options |
|
|
129
|
+
| W002 | warning | Chain step completed with warnings | Log and continue |
|
|
130
|
+
</error_codes>
|
|
131
|
+
|
|
132
|
+
<success_criteria>
|
|
133
|
+
- [ ] Intent routed to correct chain (or --chain validated)
|
|
134
|
+
- [ ] Target resolved and arguments assembled
|
|
135
|
+
- [ ] Session directory created with status.json
|
|
136
|
+
- [ ] All chain steps executed via Skill()
|
|
137
|
+
- [ ] Error handling: retry/skip/abort per step
|
|
138
|
+
- [ ] Session summary displayed with next-step routing
|
|
139
|
+
- [ ] No files modified outside `.workflow/learning/`
|
|
140
|
+
</success_criteria>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-link-coordinate
|
|
3
|
-
description:
|
|
3
|
+
description: Execute command chain nodes step by step
|
|
4
4
|
argument-hint: "\"intent text\" [--list] [-c [sessionId]] [--chain <name>] [--tool <tool>] [-y]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-merge
|
|
3
|
-
description:
|
|
4
|
-
argument-hint: "-m <milestone-number> [--force] [--dry-run] [--no-cleanup] [--continue]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Agent
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
---
|
|
15
|
-
<purpose>
|
|
16
|
-
Merge a completed milestone worktree branch back into the main branch, sync scratch artifacts, and reconcile the artifact registry. Uses a two-phase approach: git merge first (source code), artifact sync second (only after git succeeds). This prevents partial state corruption when merge conflicts occur.
|
|
17
|
-
|
|
18
|
-
Includes registry health check, pre-merge rebase (pull main into worktree to minimize conflicts), and atomic state reconciliation (merge artifact entries, don't overwrite).
|
|
19
|
-
</purpose>
|
|
20
|
-
|
|
21
|
-
<required_reading>
|
|
22
|
-
@~/.maestro/workflows/merge.md
|
|
23
|
-
</required_reading>
|
|
24
|
-
|
|
25
|
-
<context>
|
|
26
|
-
$ARGUMENTS -- milestone number and optional flags.
|
|
27
|
-
|
|
28
|
-
Flags (`-m`, `--force`, `--dry-run`, `--no-cleanup`, `--continue`), merge sequence, artifact sync detail, and conflict handling are defined in workflow `merge.md`.
|
|
29
|
-
</context>
|
|
30
|
-
|
|
31
|
-
<execution>
|
|
32
|
-
Follow '~/.maestro/workflows/merge.md' completely.
|
|
33
|
-
|
|
34
|
-
**Next-step routing on completion:**
|
|
35
|
-
- View dashboard → Skill({ skill: "manage-status" })
|
|
36
|
-
- Audit milestone → Skill({ skill: "maestro-milestone-audit" })
|
|
37
|
-
</execution>
|
|
38
|
-
|
|
39
|
-
<error_codes>
|
|
40
|
-
| Code | Severity | Condition | Recovery |
|
|
41
|
-
|------|----------|-----------|----------|
|
|
42
|
-
| E001 | error | Running inside a worktree | Run from main worktree |
|
|
43
|
-
| E002 | error | No worktree registry found | Nothing to merge |
|
|
44
|
-
| E003 | error | --continue but no merge state | Start fresh merge |
|
|
45
|
-
| E004 | error | No milestone number provided | Provide `-m <N>` |
|
|
46
|
-
| W001 | warning | Stale registry entries found | Auto-cleaned |
|
|
47
|
-
| W002 | warning | Incomplete artifacts (without --force) | Confirm or use --force |
|
|
48
|
-
| W003 | warning | Conflict pulling main into worktree | Resolve in worktree first |
|
|
49
|
-
</error_codes>
|
|
50
|
-
|
|
51
|
-
<success_criteria>
|
|
52
|
-
- [ ] Registry health check passed (stale entries cleaned)
|
|
53
|
-
- [ ] Pre-merge rebase successful (worktree has latest main)
|
|
54
|
-
- [ ] Git merge completed without conflicts (or conflicts resolved via --continue)
|
|
55
|
-
- [ ] All scratch artifacts synced to main `.workflow/scratch/`
|
|
56
|
-
- [ ] `state.json.artifacts[]` reconciled (worktree entries merged into main)
|
|
57
|
-
- [ ] Milestone `"forked"` flag removed in `state.json.milestones[]`
|
|
58
|
-
- [ ] `roadmap.md` completed phases marked
|
|
59
|
-
- [ ] Worktree removed and branch deleted (unless --no-cleanup)
|
|
60
|
-
- [ ] `worktrees.json` registry updated (entry removed)
|
|
61
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: maestro-merge
|
|
3
|
+
description: Merge milestone worktree branch back to main
|
|
4
|
+
argument-hint: "-m <milestone-number> [--force] [--dry-run] [--no-cleanup] [--continue]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
<purpose>
|
|
16
|
+
Merge a completed milestone worktree branch back into the main branch, sync scratch artifacts, and reconcile the artifact registry. Uses a two-phase approach: git merge first (source code), artifact sync second (only after git succeeds). This prevents partial state corruption when merge conflicts occur.
|
|
17
|
+
|
|
18
|
+
Includes registry health check, pre-merge rebase (pull main into worktree to minimize conflicts), and atomic state reconciliation (merge artifact entries, don't overwrite).
|
|
19
|
+
</purpose>
|
|
20
|
+
|
|
21
|
+
<required_reading>
|
|
22
|
+
@~/.maestro/workflows/merge.md
|
|
23
|
+
</required_reading>
|
|
24
|
+
|
|
25
|
+
<context>
|
|
26
|
+
$ARGUMENTS -- milestone number and optional flags.
|
|
27
|
+
|
|
28
|
+
Flags (`-m`, `--force`, `--dry-run`, `--no-cleanup`, `--continue`), merge sequence, artifact sync detail, and conflict handling are defined in workflow `merge.md`.
|
|
29
|
+
</context>
|
|
30
|
+
|
|
31
|
+
<execution>
|
|
32
|
+
Follow '~/.maestro/workflows/merge.md' completely.
|
|
33
|
+
|
|
34
|
+
**Next-step routing on completion:**
|
|
35
|
+
- View dashboard → Skill({ skill: "manage-status" })
|
|
36
|
+
- Audit milestone → Skill({ skill: "maestro-milestone-audit" })
|
|
37
|
+
</execution>
|
|
38
|
+
|
|
39
|
+
<error_codes>
|
|
40
|
+
| Code | Severity | Condition | Recovery |
|
|
41
|
+
|------|----------|-----------|----------|
|
|
42
|
+
| E001 | error | Running inside a worktree | Run from main worktree |
|
|
43
|
+
| E002 | error | No worktree registry found | Nothing to merge |
|
|
44
|
+
| E003 | error | --continue but no merge state | Start fresh merge |
|
|
45
|
+
| E004 | error | No milestone number provided | Provide `-m <N>` |
|
|
46
|
+
| W001 | warning | Stale registry entries found | Auto-cleaned |
|
|
47
|
+
| W002 | warning | Incomplete artifacts (without --force) | Confirm or use --force |
|
|
48
|
+
| W003 | warning | Conflict pulling main into worktree | Resolve in worktree first |
|
|
49
|
+
</error_codes>
|
|
50
|
+
|
|
51
|
+
<success_criteria>
|
|
52
|
+
- [ ] Registry health check passed (stale entries cleaned)
|
|
53
|
+
- [ ] Pre-merge rebase successful (worktree has latest main)
|
|
54
|
+
- [ ] Git merge completed without conflicts (or conflicts resolved via --continue)
|
|
55
|
+
- [ ] All scratch artifacts synced to main `.workflow/scratch/`
|
|
56
|
+
- [ ] `state.json.artifacts[]` reconciled (worktree entries merged into main)
|
|
57
|
+
- [ ] Milestone `"forked"` flag removed in `state.json.milestones[]`
|
|
58
|
+
- [ ] `roadmap.md` completed phases marked
|
|
59
|
+
- [ ] Worktree removed and branch deleted (unless --no-cleanup)
|
|
60
|
+
- [ ] `worktrees.json` registry updated (entry removed)
|
|
61
|
+
</success_criteria>
|
|
@@ -1,96 +1,96 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-milestone-release
|
|
3
|
-
description:
|
|
4
|
-
argument-hint: "[<version>] [--bump patch|minor|major] [--dry-run] [--no-tag] [--no-push]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- Bash
|
|
10
|
-
- Glob
|
|
11
|
-
- Grep
|
|
12
|
-
- Agent
|
|
13
|
-
- AskUserQuestion
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
<purpose>
|
|
17
|
-
Package a completed milestone into a releasable version. Bumps the project version (e.g. `package.json`, `pyproject.toml`, or language-specific manifest), generates or appends a changelog entry from phase/milestone summaries and git log, creates an annotated git tag, and optionally pushes to the remote. Runs after `/maestro-milestone-complete` has archived the milestone; serves as the final delivery step in the SDLC loop.
|
|
18
|
-
</purpose>
|
|
19
|
-
|
|
20
|
-
<required_reading>
|
|
21
|
-
@~/.maestro/workflows/milestone-release.md
|
|
22
|
-
</required_reading>
|
|
23
|
-
|
|
24
|
-
<context>
|
|
25
|
-
$ARGUMENTS -- optional explicit version string and flags.
|
|
26
|
-
|
|
27
|
-
**Flags:**
|
|
28
|
-
- `<version>` -- explicit version (e.g. `1.2.0`). If omitted, version is derived from `--bump` or prompted.
|
|
29
|
-
- `--bump patch|minor|major` -- semver bump relative to the current version (default: `minor`)
|
|
30
|
-
- `--dry-run` -- compute the next version, changelog diff, and tag name without writing files or creating tags
|
|
31
|
-
- `--no-tag` -- skip git tag creation (version bump + changelog only)
|
|
32
|
-
- `--no-push` -- skip `git push --follow-tags` after tagging
|
|
33
|
-
|
|
34
|
-
**State files:**
|
|
35
|
-
- `.workflow/state.json` -- current_milestone, previous release version
|
|
36
|
-
- `.workflow/milestones/{milestone}/summary.md` -- milestone summary (from `maestro-milestone-complete`)
|
|
37
|
-
- `.workflow/milestones/{milestone}/audit-report.md` -- audit verdict (must be PASS)
|
|
38
|
-
- `CHANGELOG.md` -- release notes file (created if missing)
|
|
39
|
-
- Version manifest -- `package.json` / `pyproject.toml` / `Cargo.toml` / etc. (auto-detected)
|
|
40
|
-
|
|
41
|
-
**Preconditions:**
|
|
42
|
-
- Current milestone must be completed (audit PASS + `/maestro-milestone-complete` run)
|
|
43
|
-
- Working tree must be clean (no uncommitted changes) unless `--dry-run`
|
|
44
|
-
</context>
|
|
45
|
-
|
|
46
|
-
<execution>
|
|
47
|
-
Follow '~/.maestro/workflows/release.md' completely.
|
|
48
|
-
|
|
49
|
-
**High-level flow:**
|
|
50
|
-
1. Validate preconditions (milestone completed, clean tree, audit PASS)
|
|
51
|
-
2. Resolve target version from `<version>` or `--bump` against current manifest
|
|
52
|
-
3. Collect changes since last release tag: milestone summary + phase summaries + git log between tags
|
|
53
|
-
4. Generate `CHANGELOG.md` entry (grouped by phase / change type)
|
|
54
|
-
5. Write version to manifest file(s) + commit with message `chore(release): v{version}`
|
|
55
|
-
6. Create annotated git tag `v{version}` with release notes body (unless `--no-tag`)
|
|
56
|
-
7. Push commit + tag to remote (unless `--no-push`)
|
|
57
|
-
|
|
58
|
-
**Report format on completion:**
|
|
59
|
-
```
|
|
60
|
-
=== RELEASE COMPLETE ===
|
|
61
|
-
Version: v{previous} → v{new}
|
|
62
|
-
Milestone: {milestone_name}
|
|
63
|
-
Tag: v{new} {pushed|local-only}
|
|
64
|
-
Changelog: {N} entries written to CHANGELOG.md
|
|
65
|
-
Manifest: {file_path} updated
|
|
66
|
-
|
|
67
|
-
Next steps:
|
|
68
|
-
/maestro-plan {next_phase} -- Start next milestone's first phase
|
|
69
|
-
/manage-status -- View project dashboard
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
For `--dry-run`, print the computed version, changelog diff, and tag name without side effects.
|
|
73
|
-
</execution>
|
|
74
|
-
|
|
75
|
-
<error_codes>
|
|
76
|
-
| Code | Severity | Condition | Recovery |
|
|
77
|
-
|------|----------|-----------|----------|
|
|
78
|
-
| E001 | error | Current milestone not completed (no milestone-complete run) | Run `/maestro-milestone-complete` first |
|
|
79
|
-
| E002 | error | Audit verdict not PASS | Re-run `/maestro-milestone-audit` and resolve findings |
|
|
80
|
-
| E003 | error | Working tree not clean (uncommitted changes) | Commit or stash changes, then retry |
|
|
81
|
-
| E004 | error | Version manifest not found / unsupported | Add supported manifest or pass `<version>` explicitly with `--no-tag` |
|
|
82
|
-
| E005 | error | Target version not greater than current (would break semver monotonicity) | Choose a higher version or run with explicit `<version>` |
|
|
83
|
-
| W001 | warning | No changes detected since last release tag | Confirm whether release is still desired |
|
|
84
|
-
| W002 | warning | Remote push failed (network / auth) | Retry manually with `git push --follow-tags` |
|
|
85
|
-
</error_codes>
|
|
86
|
-
|
|
87
|
-
<success_criteria>
|
|
88
|
-
- [ ] Preconditions validated (milestone complete, audit PASS, clean tree)
|
|
89
|
-
- [ ] Target version computed and greater than previous
|
|
90
|
-
- [ ] Version manifest(s) updated with new version
|
|
91
|
-
- [ ] CHANGELOG.md contains new entry with milestone summary + grouped changes
|
|
92
|
-
- [ ] Release commit created with conventional message
|
|
93
|
-
- [ ] Annotated git tag created (unless `--no-tag`)
|
|
94
|
-
- [ ] Commit + tag pushed to remote (unless `--no-push` or push failed → W002)
|
|
95
|
-
- [ ] state.json updated with last_release_version + last_release_at timestamp
|
|
96
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: maestro-milestone-release
|
|
3
|
+
description: Bump version, generate changelog, tag milestone
|
|
4
|
+
argument-hint: "[<version>] [--bump patch|minor|major] [--dry-run] [--no-tag] [--no-push]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- Glob
|
|
11
|
+
- Grep
|
|
12
|
+
- Agent
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
<purpose>
|
|
17
|
+
Package a completed milestone into a releasable version. Bumps the project version (e.g. `package.json`, `pyproject.toml`, or language-specific manifest), generates or appends a changelog entry from phase/milestone summaries and git log, creates an annotated git tag, and optionally pushes to the remote. Runs after `/maestro-milestone-complete` has archived the milestone; serves as the final delivery step in the SDLC loop.
|
|
18
|
+
</purpose>
|
|
19
|
+
|
|
20
|
+
<required_reading>
|
|
21
|
+
@~/.maestro/workflows/milestone-release.md
|
|
22
|
+
</required_reading>
|
|
23
|
+
|
|
24
|
+
<context>
|
|
25
|
+
$ARGUMENTS -- optional explicit version string and flags.
|
|
26
|
+
|
|
27
|
+
**Flags:**
|
|
28
|
+
- `<version>` -- explicit version (e.g. `1.2.0`). If omitted, version is derived from `--bump` or prompted.
|
|
29
|
+
- `--bump patch|minor|major` -- semver bump relative to the current version (default: `minor`)
|
|
30
|
+
- `--dry-run` -- compute the next version, changelog diff, and tag name without writing files or creating tags
|
|
31
|
+
- `--no-tag` -- skip git tag creation (version bump + changelog only)
|
|
32
|
+
- `--no-push` -- skip `git push --follow-tags` after tagging
|
|
33
|
+
|
|
34
|
+
**State files:**
|
|
35
|
+
- `.workflow/state.json` -- current_milestone, previous release version
|
|
36
|
+
- `.workflow/milestones/{milestone}/summary.md` -- milestone summary (from `maestro-milestone-complete`)
|
|
37
|
+
- `.workflow/milestones/{milestone}/audit-report.md` -- audit verdict (must be PASS)
|
|
38
|
+
- `CHANGELOG.md` -- release notes file (created if missing)
|
|
39
|
+
- Version manifest -- `package.json` / `pyproject.toml` / `Cargo.toml` / etc. (auto-detected)
|
|
40
|
+
|
|
41
|
+
**Preconditions:**
|
|
42
|
+
- Current milestone must be completed (audit PASS + `/maestro-milestone-complete` run)
|
|
43
|
+
- Working tree must be clean (no uncommitted changes) unless `--dry-run`
|
|
44
|
+
</context>
|
|
45
|
+
|
|
46
|
+
<execution>
|
|
47
|
+
Follow '~/.maestro/workflows/release.md' completely.
|
|
48
|
+
|
|
49
|
+
**High-level flow:**
|
|
50
|
+
1. Validate preconditions (milestone completed, clean tree, audit PASS)
|
|
51
|
+
2. Resolve target version from `<version>` or `--bump` against current manifest
|
|
52
|
+
3. Collect changes since last release tag: milestone summary + phase summaries + git log between tags
|
|
53
|
+
4. Generate `CHANGELOG.md` entry (grouped by phase / change type)
|
|
54
|
+
5. Write version to manifest file(s) + commit with message `chore(release): v{version}`
|
|
55
|
+
6. Create annotated git tag `v{version}` with release notes body (unless `--no-tag`)
|
|
56
|
+
7. Push commit + tag to remote (unless `--no-push`)
|
|
57
|
+
|
|
58
|
+
**Report format on completion:**
|
|
59
|
+
```
|
|
60
|
+
=== RELEASE COMPLETE ===
|
|
61
|
+
Version: v{previous} → v{new}
|
|
62
|
+
Milestone: {milestone_name}
|
|
63
|
+
Tag: v{new} {pushed|local-only}
|
|
64
|
+
Changelog: {N} entries written to CHANGELOG.md
|
|
65
|
+
Manifest: {file_path} updated
|
|
66
|
+
|
|
67
|
+
Next steps:
|
|
68
|
+
/maestro-plan {next_phase} -- Start next milestone's first phase
|
|
69
|
+
/manage-status -- View project dashboard
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
For `--dry-run`, print the computed version, changelog diff, and tag name without side effects.
|
|
73
|
+
</execution>
|
|
74
|
+
|
|
75
|
+
<error_codes>
|
|
76
|
+
| Code | Severity | Condition | Recovery |
|
|
77
|
+
|------|----------|-----------|----------|
|
|
78
|
+
| E001 | error | Current milestone not completed (no milestone-complete run) | Run `/maestro-milestone-complete` first |
|
|
79
|
+
| E002 | error | Audit verdict not PASS | Re-run `/maestro-milestone-audit` and resolve findings |
|
|
80
|
+
| E003 | error | Working tree not clean (uncommitted changes) | Commit or stash changes, then retry |
|
|
81
|
+
| E004 | error | Version manifest not found / unsupported | Add supported manifest or pass `<version>` explicitly with `--no-tag` |
|
|
82
|
+
| E005 | error | Target version not greater than current (would break semver monotonicity) | Choose a higher version or run with explicit `<version>` |
|
|
83
|
+
| W001 | warning | No changes detected since last release tag | Confirm whether release is still desired |
|
|
84
|
+
| W002 | warning | Remote push failed (network / auth) | Retry manually with `git push --follow-tags` |
|
|
85
|
+
</error_codes>
|
|
86
|
+
|
|
87
|
+
<success_criteria>
|
|
88
|
+
- [ ] Preconditions validated (milestone complete, audit PASS, clean tree)
|
|
89
|
+
- [ ] Target version computed and greater than previous
|
|
90
|
+
- [ ] Version manifest(s) updated with new version
|
|
91
|
+
- [ ] CHANGELOG.md contains new entry with milestone summary + grouped changes
|
|
92
|
+
- [ ] Release commit created with conventional message
|
|
93
|
+
- [ ] Annotated git tag created (unless `--no-tag`)
|
|
94
|
+
- [ ] Commit + tag pushed to remote (unless `--no-push` or push failed → W002)
|
|
95
|
+
- [ ] state.json updated with last_release_version + last_release_at timestamp
|
|
96
|
+
</success_criteria>
|