maestro-flow 0.3.11 → 0.3.12
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/conceptual-planning-agent.md +1 -0
- package/.claude/agents/workflow-analyzer.md +114 -114
- package/.claude/agents/workflow-collab-planner.md +144 -144
- package/.claude/agents/workflow-debugger.md +102 -103
- package/.claude/agents/workflow-executor.md +127 -128
- package/.claude/agents/workflow-integration-checker.md +82 -82
- package/.claude/agents/workflow-nyquist-auditor.md +85 -84
- package/.claude/agents/workflow-phase-researcher.md +85 -85
- package/.claude/agents/workflow-plan-checker.md +90 -90
- package/.claude/agents/workflow-planner.md +178 -178
- package/.claude/agents/workflow-roadmapper.md +81 -83
- package/.claude/agents/workflow-verifier.md +119 -119
- package/.claude/commands/learn-retro.md +2 -2
- package/.claude/commands/learn-second-opinion.md +2 -2
- package/.claude/commands/maestro-brainstorm.md +1 -0
- package/.claude/commands/maestro-fork.md +133 -111
- package/.claude/commands/maestro-merge.md +85 -77
- package/.claude/commands/maestro-plan.md +88 -2
- package/.claude/commands/maestro-roadmap.md +113 -2
- package/.claude/commands/maestro.md +1 -0
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +3 -2
- package/.claude/commands/quality-retrospective.md +6 -4
- package/.claude/commands/quality-review.md +1 -1
- package/.claude/commands/quality-test-gen.md +5 -4
- package/.codex/skills/maestro-brainstorm/SKILL.md +1 -1
- package/.codex/skills/maestro-fork/SKILL.md +98 -68
- package/.codex/skills/maestro-init/SKILL.md +4 -3
- package/.codex/skills/maestro-merge/SKILL.md +69 -62
- package/.codex/skills/maestro-ui-design/SKILL.md +1 -1
- package/.codex/skills/maestro-verify/SKILL.md +12 -12
- package/.codex/skills/manage-learn/SKILL.md +1 -1
- package/.codex/skills/manage-status/SKILL.md +4 -4
- package/.codex/skills/quality-business-test/SKILL.md +2 -2
- package/.codex/skills/quality-integration-test/SKILL.md +1 -1
- package/.codex/skills/quality-retrospective/SKILL.md +7 -7
- package/.codex/skills/quality-review/SKILL.md +2 -2
- package/.codex/skills/quality-test/SKILL.md +2 -2
- package/.codex/skills/quality-test-gen/SKILL.md +1 -1
- package/README.md +2 -0
- package/README.zh-CN.md +2 -0
- package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
- package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
- package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
- package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
- package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
- package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
- package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
- package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
- package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
- package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
- package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
- package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
- package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
- package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
- package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
- package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
- package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
- package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
- package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
- package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
- package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
- package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
- package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
- package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
- package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
- package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
- package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
- package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
- package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
- package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
- package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
- package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
- package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
- package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
- package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
- package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
- package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
- package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
- package/dashboard/dist-server/dashboard/src/shared/collab-types.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/coordinate-types.d.ts +22 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +27 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
- package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +1 -1
- package/dashboard/dist-server/src/hooks/constants.js +2 -2
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dist/shared/agent-types.d.ts +4 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/src/commands/install-backend.d.ts.map +1 -1
- package/dist/src/commands/install-backend.js +29 -18
- package/dist/src/commands/install-backend.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js +23 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
- package/dist/src/hooks/constants.d.ts +1 -1
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +2 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/skill-context.d.ts +3 -0
- package/dist/src/hooks/skill-context.d.ts.map +1 -1
- package/dist/src/hooks/skill-context.js +95 -9
- package/dist/src/hooks/skill-context.js.map +1 -1
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +6 -3
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/tools/merge-validator.d.ts.map +1 -1
- package/dist/src/tools/merge-validator.js +114 -16
- package/dist/src/tools/merge-validator.js.map +1 -1
- package/package.json +1 -1
- package/shared/agent-types.ts +4 -0
- package/templates/worktree-scope.json +9 -10
- package/templates/worktrees.json +26 -27
- package/workflows/brainstorm.md +10 -1
- package/workflows/debug.md +16 -6
- package/workflows/fork.md +100 -36
- package/workflows/integration-test.md +14 -2
- package/workflows/issue.md +14 -4
- package/workflows/learn.md +19 -5
- package/workflows/maestro.md +1 -0
- package/workflows/merge.md +113 -55
- package/workflows/retrospective.md +61 -22
- package/workflows/review.md +17 -4
- package/workflows/test.md +12 -2
- package/workflows/ui-style.md +9 -2
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
- package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
- package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
- package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
- package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
- package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
- package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
- package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
- package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
|
@@ -1,68 +1,98 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-fork
|
|
3
|
-
description: Create git worktree for milestone-level parallel development, or sync existing worktree with main. Copies .workflow/ context into worktree since
|
|
4
|
-
argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Create a git worktree for an entire milestone, enabling inter-milestone parallel development.
|
|
10
|
-
|
|
11
|
-
this command explicitly copies project context
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
|
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
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-fork
|
|
3
|
+
description: Create git worktree for milestone-level parallel development, or sync existing worktree with main. Copies .workflow/ context and scratch artifacts into worktree since .workflow/ is gitignored.
|
|
4
|
+
argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Create a git worktree for an entire milestone, enabling inter-milestone parallel development.
|
|
10
|
+
The worktree scope is milestone-level — all scratch artifacts for that milestone are owned by
|
|
11
|
+
the worktree. Since `.workflow/` is gitignored, this command explicitly copies project context
|
|
12
|
+
and milestone scratch artifacts into the worktree.
|
|
13
|
+
|
|
14
|
+
Also supports `--sync` mode to pull latest main into an active worktree.
|
|
15
|
+
</purpose>
|
|
16
|
+
|
|
17
|
+
<required_reading>
|
|
18
|
+
@~/.maestro/workflows/fork.md
|
|
19
|
+
</required_reading>
|
|
20
|
+
|
|
21
|
+
<context>
|
|
22
|
+
$ARGUMENTS — milestone number and optional flags.
|
|
23
|
+
|
|
24
|
+
**Modes:**
|
|
25
|
+
| Mode | Trigger | Behavior |
|
|
26
|
+
|------|---------|----------|
|
|
27
|
+
| Fork | `-m 2` or `2` | Create worktree for milestone 2 |
|
|
28
|
+
| Sync | `-m 2 --sync` | Sync existing worktree with main |
|
|
29
|
+
|
|
30
|
+
**Flags:**
|
|
31
|
+
- `-m <N>` or bare `<N>`: Milestone number
|
|
32
|
+
- `--base <branch>`: Override base branch (default: HEAD)
|
|
33
|
+
- `--sync`: Pull main into existing worktree, re-copy shared artifacts
|
|
34
|
+
|
|
35
|
+
**Worktree layout:**
|
|
36
|
+
```
|
|
37
|
+
.worktrees/m{N}-{slug}/
|
|
38
|
+
├── .workflow/
|
|
39
|
+
│ ├── worktree-scope.json (milestone scope marker)
|
|
40
|
+
│ ├── state.json (scoped — this milestone's artifacts only)
|
|
41
|
+
│ ├── project.md, roadmap.md, config.json, specs/ (read-only copies)
|
|
42
|
+
│ └── scratch/ (milestone's existing + new artifacts)
|
|
43
|
+
└── <source code>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Artifact scoping:**
|
|
47
|
+
Fork copies scratch artifacts belonging to the target milestone (filtered from `state.json.artifacts[]` where `milestone == target`). New work creates scratch artifacts normally, registered in the worktree's local `state.json`.
|
|
48
|
+
</context>
|
|
49
|
+
|
|
50
|
+
<execution>
|
|
51
|
+
Follow '~/.maestro/workflows/fork.md' completely.
|
|
52
|
+
|
|
53
|
+
**Fork flow:**
|
|
54
|
+
1. Validate: initialized, roadmap exists, not inside worktree, milestone not forked
|
|
55
|
+
2. Resolve milestone: `state.json.milestones[N-1]`
|
|
56
|
+
3. Create worktree: `git worktree add -b milestone/{slug} .worktrees/m{N}-{slug} HEAD`
|
|
57
|
+
4. Copy `.workflow/`: shared files + milestone scratch artifacts
|
|
58
|
+
5. Write `worktree-scope.json` with milestone scope
|
|
59
|
+
6. Write scoped `state.json` (this milestone's artifacts only)
|
|
60
|
+
7. Update main: `worktrees.json` registry, mark milestone `"forked"`
|
|
61
|
+
|
|
62
|
+
**Sync flow:**
|
|
63
|
+
1. Find worktree from `worktrees.json`
|
|
64
|
+
2. `cd worktree && git merge main`
|
|
65
|
+
3. Re-copy shared files (project.md, roadmap.md, config.json, specs/)
|
|
66
|
+
|
|
67
|
+
**Next steps:**
|
|
68
|
+
- Fork → `cd {wt.path} && $maestro-analyze`
|
|
69
|
+
- Sync → resume work in worktree
|
|
70
|
+
</execution>
|
|
71
|
+
|
|
72
|
+
<error_codes>
|
|
73
|
+
| Code | Severity | Condition | Recovery |
|
|
74
|
+
|------|----------|-----------|----------|
|
|
75
|
+
| E001 | error | Project not initialized | Run maestro-init |
|
|
76
|
+
| E002 | error | No roadmap found | Run maestro-roadmap |
|
|
77
|
+
| E003 | error | Running inside a worktree | Run from main worktree |
|
|
78
|
+
| E004 | error | No milestone number | Provide `-m <N>` |
|
|
79
|
+
| E006 | error | Milestone out of range | Check available milestones |
|
|
80
|
+
| E008 | error | Milestone already has active worktree | Merge or cleanup first |
|
|
81
|
+
</error_codes>
|
|
82
|
+
|
|
83
|
+
<success_criteria>
|
|
84
|
+
Fork mode:
|
|
85
|
+
- [ ] Milestone resolved from state.json.milestones[]
|
|
86
|
+
- [ ] Git worktree created with branch `milestone/{slug}`
|
|
87
|
+
- [ ] Shared `.workflow/` files copied (project.md, roadmap.md, config.json, specs/)
|
|
88
|
+
- [ ] Milestone scratch artifacts copied (filtered from artifact registry)
|
|
89
|
+
- [ ] `worktree-scope.json` written with milestone scope
|
|
90
|
+
- [ ] Scoped `state.json` written (this milestone's artifacts only)
|
|
91
|
+
- [ ] `worktrees.json` registry updated in main worktree
|
|
92
|
+
- [ ] Milestone marked `"forked"` in main state.json
|
|
93
|
+
|
|
94
|
+
Sync mode:
|
|
95
|
+
- [ ] Git merge main into worktree branch
|
|
96
|
+
- [ ] Shared artifacts re-copied
|
|
97
|
+
- [ ] Conflicts reported if any
|
|
98
|
+
</success_criteria>
|
|
@@ -87,7 +87,7 @@ Read the following templates:
|
|
|
87
87
|
### Step 5: Create .workflow/ Structure
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
|
-
mkdir -p .workflow/specs .workflow/
|
|
90
|
+
mkdir -p .workflow/specs .workflow/scratch .workflow/codebase
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
### Step 6: Write project.md
|
|
@@ -103,9 +103,10 @@ Write to `.workflow/project.md`.
|
|
|
103
103
|
### Step 7: Write state.json
|
|
104
104
|
|
|
105
105
|
Initialize state from template:
|
|
106
|
-
- `current_phase`: null
|
|
107
106
|
- `current_milestone`: null
|
|
107
|
+
- `current_task_id`: null
|
|
108
108
|
- `status`: "initialized"
|
|
109
|
+
- `artifacts`: []
|
|
109
110
|
|
|
110
111
|
Write to `.workflow/state.json`.
|
|
111
112
|
|
|
@@ -122,7 +123,7 @@ Write to `.workflow/config.json`.
|
|
|
122
123
|
|
|
123
124
|
Create convention files in `.workflow/specs/`:
|
|
124
125
|
- `conventions.md` — detected or specified coding conventions
|
|
125
|
-
- `learnings.md` — empty, populated during
|
|
126
|
+
- `learnings.md` — empty, populated during execute summaries extraction
|
|
126
127
|
|
|
127
128
|
### Step 10: Completion Report
|
|
128
129
|
|
|
@@ -1,62 +1,69 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-merge
|
|
3
|
-
description: Two-phase merge of milestone worktree branch back — git merge first, artifact sync only on success.
|
|
4
|
-
argument-hint: "-m <milestone-number> [--force] [--dry-run] [--no-cleanup] [--continue]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Merge a completed milestone worktree branch back into main, sync
|
|
10
|
-
and reconcile
|
|
11
|
-
artifact sync second (only after git succeeds). Prevents partial state corruption
|
|
12
|
-
when merge conflicts occur.
|
|
13
|
-
</purpose>
|
|
14
|
-
|
|
15
|
-
<required_reading>
|
|
16
|
-
@~/.maestro/workflows/merge.md
|
|
17
|
-
</required_reading>
|
|
18
|
-
|
|
19
|
-
<context>
|
|
20
|
-
$ARGUMENTS — milestone number and optional flags.
|
|
21
|
-
|
|
22
|
-
**Flags:**
|
|
23
|
-
- `-m <N>` or bare `<N>`: Milestone number
|
|
24
|
-
- `--force`: Merge even if
|
|
25
|
-
- `--dry-run`: Show what would be merged
|
|
26
|
-
- `--no-cleanup`: Keep worktree and branch after merge
|
|
27
|
-
- `--continue`: Resume merge paused due to git conflict
|
|
28
|
-
|
|
29
|
-
**Merge sequence:**
|
|
30
|
-
1. Registry health check → 2.
|
|
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
|
-
- [ ] Registry
|
|
62
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-merge
|
|
3
|
+
description: Two-phase merge of milestone worktree branch back — git merge first, scratch artifact sync and registry reconciliation only on success.
|
|
4
|
+
argument-hint: "-m <milestone-number> [--force] [--dry-run] [--no-cleanup] [--continue]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Merge a completed milestone worktree branch back into main, sync scratch artifacts,
|
|
10
|
+
and reconcile artifact registry. Two-phase approach: git merge first (source code),
|
|
11
|
+
artifact sync second (only after git succeeds). Prevents partial state corruption
|
|
12
|
+
when merge conflicts occur.
|
|
13
|
+
</purpose>
|
|
14
|
+
|
|
15
|
+
<required_reading>
|
|
16
|
+
@~/.maestro/workflows/merge.md
|
|
17
|
+
</required_reading>
|
|
18
|
+
|
|
19
|
+
<context>
|
|
20
|
+
$ARGUMENTS — milestone number and optional flags.
|
|
21
|
+
|
|
22
|
+
**Flags:**
|
|
23
|
+
- `-m <N>` or bare `<N>`: Milestone number
|
|
24
|
+
- `--force`: Merge even if milestone has incomplete artifacts
|
|
25
|
+
- `--dry-run`: Show what would be merged
|
|
26
|
+
- `--no-cleanup`: Keep worktree and branch after merge
|
|
27
|
+
- `--continue`: Resume merge paused due to git conflict
|
|
28
|
+
|
|
29
|
+
**Merge sequence:**
|
|
30
|
+
1. Registry health check → 2. Milestone artifact completeness validation →
|
|
31
|
+
3. Pre-merge rebase → 4. Git merge (source) → 5. Scratch artifact sync →
|
|
32
|
+
6. Artifact registry reconciliation → 7. Cleanup
|
|
33
|
+
|
|
34
|
+
**Phase 2 detail:**
|
|
35
|
+
- Copy worktree `scratch/*` to main `.workflow/scratch/`
|
|
36
|
+
- Merge `state.json.artifacts[]` entries (worktree wins for same id)
|
|
37
|
+
- Remove milestone `"forked"` flag in main state.json
|
|
38
|
+
</context>
|
|
39
|
+
|
|
40
|
+
<execution>
|
|
41
|
+
Follow '~/.maestro/workflows/merge.md' completely.
|
|
42
|
+
|
|
43
|
+
**Next steps:**
|
|
44
|
+
- View dashboard → `$manage-status`
|
|
45
|
+
- Audit milestone → `$maestro-milestone-audit`
|
|
46
|
+
</execution>
|
|
47
|
+
|
|
48
|
+
<error_codes>
|
|
49
|
+
| Code | Severity | Condition | Recovery |
|
|
50
|
+
|------|----------|-----------|----------|
|
|
51
|
+
| E001 | error | Running inside a worktree | Run from main worktree |
|
|
52
|
+
| E002 | error | No worktree registry found | Nothing to merge |
|
|
53
|
+
| E003 | error | --continue but no merge state | Start fresh merge |
|
|
54
|
+
| E004 | error | No milestone number | Provide `-m <N>` |
|
|
55
|
+
| W001 | warning | Stale registry entries | Auto-cleaned |
|
|
56
|
+
| W002 | warning | Incomplete artifacts without --force | Confirm or use --force |
|
|
57
|
+
| W003 | warning | Conflict pulling main into worktree | Resolve first |
|
|
58
|
+
</error_codes>
|
|
59
|
+
|
|
60
|
+
<success_criteria>
|
|
61
|
+
- [ ] Registry health check passed
|
|
62
|
+
- [ ] Pre-merge rebase successful
|
|
63
|
+
- [ ] Git merge completed (or conflicts resolved via --continue)
|
|
64
|
+
- [ ] Scratch artifacts synced to main `.workflow/scratch/`
|
|
65
|
+
- [ ] `state.json.artifacts[]` reconciled (worktree entries merged)
|
|
66
|
+
- [ ] Milestone `"forked"` flag removed
|
|
67
|
+
- [ ] Worktree removed and branch deleted (unless --no-cleanup)
|
|
68
|
+
- [ ] Registry updated
|
|
69
|
+
</success_criteria>
|
|
@@ -54,7 +54,7 @@ When `--yes` or `-y`: Skip interactive selection, auto-pick top-scored variant,
|
|
|
54
54
|
### Step 1: Parse Input and Resolve Target
|
|
55
55
|
|
|
56
56
|
1. Parse flags from `$ARGUMENTS`: `--styles N`, `--stack`, `--targets`, `--persist`, `--full`, `-y`
|
|
57
|
-
2. **Phase mode** (number): resolve `.workflow/phases/{NN}-*/`
|
|
57
|
+
2. **Phase mode** (number): resolve via state.json artifact registry to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-*/`
|
|
58
58
|
3. **Scratch mode** (text): create `.workflow/scratch/ui-design-{slug}-{date}/` with minimal index.json
|
|
59
59
|
4. Create output directories:
|
|
60
60
|
```bash
|
|
@@ -83,15 +83,15 @@ When `--yes` or `-y`: Auto-confirm check decomposition, skip interactive validat
|
|
|
83
83
|
|
|
84
84
|
```csv
|
|
85
85
|
id,title,description,layer,phase_dir,check_type,deps,context_from,wave,status,findings,gaps_found,fix_plan,error
|
|
86
|
-
"1","Truth: User can see existing messages","Verify observable behavior: user can see existing messages by checking supporting artifacts, API calls, and render logic.","truth",".workflow/
|
|
87
|
-
"2","Truth: User can send new messages","Verify observable behavior: user can send new messages by checking form submission, API POST, and state update.","truth",".workflow/
|
|
88
|
-
"3","Artifact Exists: src/components/Chat.tsx","Check L1 existence: verify file src/components/Chat.tsx exists on disk.","artifact",".workflow/
|
|
89
|
-
"4","Artifact Exists: src/api/chat.ts","Check L1 existence: verify file src/api/chat.ts exists on disk.","artifact",".workflow/
|
|
90
|
-
"5","Artifact Substance: src/components/Chat.tsx","Check L2 substance: verify src/components/Chat.tsx has real implementation (not stub/placeholder). Minimum logic threshold, no placeholder markers.","artifact",".workflow/
|
|
91
|
-
"6","Artifact Substance: src/api/chat.ts","Check L2 substance: verify src/api/chat.ts has real implementation (not stub/placeholder).","artifact",".workflow/
|
|
92
|
-
"7","Wiring: Chat.tsx -> /api/chat","Check L3 wiring: verify Chat.tsx imports and calls /api/chat endpoints. Check import statements and actual usage beyond imports.","wiring",".workflow/
|
|
93
|
-
"8","Anti-Pattern Scan","Scan all modified files for TODO/FIXME/XXX/HACK, placeholder content, empty returns, log-only functions, hardcoded test data, disabled tests. Categorize as Blocker/Warning/Info.","antipattern",".workflow/
|
|
94
|
-
"9","Nyquist Test Coverage Audit","Map requirements to test files. Classify each as COVERED/PARTIAL/MISSING. Detect test framework, run coverage if available.","nyquist",".workflow/
|
|
86
|
+
"1","Truth: User can see existing messages","Verify observable behavior: user can see existing messages by checking supporting artifacts, API calls, and render logic.","truth",".workflow/scratch/plan-chat-2026/","observable_behavior","","","1","","","","",""
|
|
87
|
+
"2","Truth: User can send new messages","Verify observable behavior: user can send new messages by checking form submission, API POST, and state update.","truth",".workflow/scratch/plan-chat-2026/","observable_behavior","","","1","","","","",""
|
|
88
|
+
"3","Artifact Exists: src/components/Chat.tsx","Check L1 existence: verify file src/components/Chat.tsx exists on disk.","artifact",".workflow/scratch/plan-chat-2026/","exists","","","1","","","","",""
|
|
89
|
+
"4","Artifact Exists: src/api/chat.ts","Check L1 existence: verify file src/api/chat.ts exists on disk.","artifact",".workflow/scratch/plan-chat-2026/","exists","","","1","","","","",""
|
|
90
|
+
"5","Artifact Substance: src/components/Chat.tsx","Check L2 substance: verify src/components/Chat.tsx has real implementation (not stub/placeholder). Minimum logic threshold, no placeholder markers.","artifact",".workflow/scratch/plan-chat-2026/","substance","3","3","2","","","","",""
|
|
91
|
+
"6","Artifact Substance: src/api/chat.ts","Check L2 substance: verify src/api/chat.ts has real implementation (not stub/placeholder).","artifact",".workflow/scratch/plan-chat-2026/","substance","4","4","2","","","","",""
|
|
92
|
+
"7","Wiring: Chat.tsx -> /api/chat","Check L3 wiring: verify Chat.tsx imports and calls /api/chat endpoints. Check import statements and actual usage beyond imports.","wiring",".workflow/scratch/plan-chat-2026/","import_usage","3;4","3;4","2","","","","",""
|
|
93
|
+
"8","Anti-Pattern Scan","Scan all modified files for TODO/FIXME/XXX/HACK, placeholder content, empty returns, log-only functions, hardcoded test data, disabled tests. Categorize as Blocker/Warning/Info.","antipattern",".workflow/scratch/plan-chat-2026/","pattern_scan","1;2;5;6;7","1;2;5;6;7","3","","","","",""
|
|
94
|
+
"9","Nyquist Test Coverage Audit","Map requirements to test files. Classify each as COVERED/PARTIAL/MISSING. Detect test framework, run coverage if available.","nyquist",".workflow/scratch/plan-chat-2026/","test_coverage","1;2;5;6;7","1;2;5;6;7","3","","","","",""
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
**Columns**:
|
|
@@ -102,7 +102,7 @@ id,title,description,layer,phase_dir,check_type,deps,context_from,wave,status,fi
|
|
|
102
102
|
| `title` | Input | Short check title |
|
|
103
103
|
| `description` | Input | Detailed verification instructions for this check |
|
|
104
104
|
| `layer` | Input | Verification layer: truth/artifact/wiring/antipattern/nyquist |
|
|
105
|
-
| `phase_dir` | Input |
|
|
105
|
+
| `phase_dir` | Input | Target directory path (e.g., `.workflow/scratch/plan-chat-2026/`; legacy: `.workflow/phases/03-chat/`) |
|
|
106
106
|
| `check_type` | Input | Specific check type: observable_behavior/exists/substance/import_usage/pattern_scan/test_coverage |
|
|
107
107
|
| `deps` | Input | Semicolon-separated dependency task IDs |
|
|
108
108
|
| `context_from` | Input | Semicolon-separated task IDs whose findings this task needs |
|
|
@@ -191,7 +191,7 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
191
191
|
|
|
192
192
|
**Decomposition Rules**:
|
|
193
193
|
|
|
194
|
-
1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
|
|
194
|
+
1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
195
195
|
2. **Artifact loading**: Read from phase directory:
|
|
196
196
|
- `index.json` -- success_criteria (ground truth for verification)
|
|
197
197
|
- `plan.json` -- original plan with task_ids
|
|
@@ -528,7 +528,7 @@ echo '{"ts":"<ISO>","worker":"{id}","type":"verification_gap","data":{"gap_id":"
|
|
|
528
528
|
|
|
529
529
|
| Error | Resolution |
|
|
530
530
|
|-------|------------|
|
|
531
|
-
| Phase directory not found |
|
|
531
|
+
| Phase directory not found | Resolve via state.json artifact registry; legacy fallback to `.workflow/phases/`; abort if neither found |
|
|
532
532
|
| No execution results found | Abort with error: "No completed tasks found -- run execute first" |
|
|
533
533
|
| No summaries found | Warn, proceed with task file analysis only |
|
|
534
534
|
| No success_criteria in index.json | Derive must-haves from phase goal (fallback) |
|
|
@@ -98,7 +98,7 @@ Verify `.workflow/` exists (E001 if not).
|
|
|
98
98
|
| gotcha, surprising, unexpected, watch out | gotcha |
|
|
99
99
|
| technique, approach, method, pattern for | technique |
|
|
100
100
|
|
|
101
|
-
2. **Auto-link phase**: Read `.workflow/state.json` for `current_phase`. Resolve matching directory slug
|
|
101
|
+
2. **Auto-link phase**: Read `.workflow/state.json` for `current_phase`. Resolve matching directory slug via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/`. `--phase 0` forces null.
|
|
102
102
|
|
|
103
103
|
3. **Generate stable INS-id**: `INS-{8 lowercase hex}` from `hash(insightText + timestamp)`.
|
|
104
104
|
|
|
@@ -19,8 +19,8 @@ $manage-status
|
|
|
19
19
|
Reads from:
|
|
20
20
|
- `.workflow/state.json` — project-level state machine
|
|
21
21
|
- `.workflow/roadmap.md` — milestone and phase structure
|
|
22
|
-
- `.workflow/
|
|
23
|
-
- `.workflow/
|
|
22
|
+
- `.workflow/scratch/*/index.json` — per-phase metadata and progress (resolved via state.json artifact registry; legacy fallback: `.workflow/phases/*/index.json`)
|
|
23
|
+
- `.workflow/scratch/*/.task/TASK-*.json` — individual task statuses (legacy fallback: `.workflow/phases/*/.task/TASK-*.json`)
|
|
24
24
|
</context>
|
|
25
25
|
|
|
26
26
|
<execution>
|
|
@@ -38,8 +38,8 @@ test -f .workflow/state.json || exit 1 # E002: state missing
|
|
|
38
38
|
Read all state sources:
|
|
39
39
|
- `.workflow/state.json` -- project-level state machine
|
|
40
40
|
- `.workflow/roadmap.md` -- milestone and phase structure
|
|
41
|
-
- `.workflow/
|
|
42
|
-
- `.workflow/
|
|
41
|
+
- `.workflow/scratch/*/index.json` -- per-phase metadata and progress (resolved via state.json artifact registry; legacy fallback: `.workflow/phases/*/index.json`)
|
|
42
|
+
- `.workflow/scratch/*/.task/TASK-*.json` -- individual task statuses (legacy fallback: `.workflow/phases/*/.task/TASK-*.json`)
|
|
43
43
|
|
|
44
44
|
### Step 3: Calculate Progress
|
|
45
45
|
|
|
@@ -71,7 +71,7 @@ $quality-business-test "3 --auto" # skip plan confirmation
|
|
|
71
71
|
### Step 1: Resolve Target & Load Spec Package
|
|
72
72
|
|
|
73
73
|
1. Parse `$ARGUMENTS` for phase number and flags
|
|
74
|
-
2.
|
|
74
|
+
2. Resolve `PHASE_DIR` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
75
75
|
3. Load `index.json` -> find `spec_ref` -> locate `.workflow/.spec/SPEC-xxx/`
|
|
76
76
|
4. **Full mode**: Read `requirements/_index.md` + all `REQ-*.md` + `NFR-*.md` + `architecture/_index.md` + `epics/EPIC-*.md`
|
|
77
77
|
5. **Degraded mode** (no spec package): Read `index.json.success_criteria` + `plan.json` convergence criteria + `.summaries/TASK-*.md`
|
|
@@ -206,7 +206,7 @@ FOR each REQ:
|
|
|
206
206
|
| Code | Severity | Condition | Recovery |
|
|
207
207
|
|------|----------|-----------|----------|
|
|
208
208
|
| E001 | error | Phase number required | Prompt user for phase number |
|
|
209
|
-
| E002 | error | Phase directory not found |
|
|
209
|
+
| E002 | error | Phase directory not found | Resolve via state.json artifact registry; legacy fallback to `.workflow/phases/` |
|
|
210
210
|
| E003 | error | No spec package AND no success_criteria | Run maestro-spec-generate or maestro-plan first |
|
|
211
211
|
| E004 | error | L1 critical failures block L2/L3 | Fix blockers via quality-debug |
|
|
212
212
|
| W001 | warning | Degraded mode (no spec package) | Consider running maestro-spec-generate |
|
|
@@ -213,7 +213,7 @@ Write(`${sessionFolder}/reflection-log.md`,
|
|
|
213
213
|
|
|
214
214
|
**Decomposition Rules**:
|
|
215
215
|
|
|
216
|
-
1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
|
|
216
|
+
1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
217
217
|
|
|
218
218
|
2. **Codebase exploration**:
|
|
219
219
|
- Cross-module imports and dependencies
|
|
@@ -66,8 +66,8 @@ $quality-retrospective "3 --compare 2 --auto-yes"
|
|
|
66
66
|
When `--auto-yes`: Accept all routing recommendations without prompting. Route all insights automatically.
|
|
67
67
|
|
|
68
68
|
**Storage written**:
|
|
69
|
-
-
|
|
70
|
-
-
|
|
69
|
+
- `{target_dir}/retrospective.md` -- human-readable record (target_dir resolved via state.json artifact registry to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`)
|
|
70
|
+
- `{target_dir}/retrospective.json` -- structured record
|
|
71
71
|
- `.workflow/specs/SPEC-retro-*.md` -- spec stubs (one per spec-routed insight)
|
|
72
72
|
- `.workflow/issues/issues.jsonl` -- appended issue rows (`source: "retrospective"`)
|
|
73
73
|
- `.workflow/memory/TIP-*.md` -- memory tips (via `manage-memory-capture` skill)
|
|
@@ -75,8 +75,8 @@ When `--auto-yes`: Accept all routing recommendations without prompting. Route a
|
|
|
75
75
|
- `.workflow/learning/learning-index.json` -- updated searchable index
|
|
76
76
|
|
|
77
77
|
**Storage read (never modified)**:
|
|
78
|
-
-
|
|
79
|
-
-
|
|
78
|
+
- `{target_dir}/index.json`, `plan.json`, `verification.json`, `review.json`, `uat.md`
|
|
79
|
+
- `{target_dir}/.task/TASK-*.json`, `.summaries/TASK-*-summary.md`
|
|
80
80
|
- `.workflow/issues/issues.jsonl`, `.workflow/state.json`
|
|
81
81
|
|
|
82
82
|
### Agent Registry
|
|
@@ -151,7 +151,7 @@ functions.update_plan({
|
|
|
151
151
|
Validate `--lens` values. If `--compare <M>` present, require single mode.
|
|
152
152
|
|
|
153
153
|
**Stage 2: Validate phase artifacts**. For each target phase:
|
|
154
|
-
- Phase directory `.workflow/phases/{NN}-{slug}/`
|
|
154
|
+
- Phase directory must exist (resolved via state.json artifact registry to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`)
|
|
155
155
|
- `index.json` must show `status: "completed"`
|
|
156
156
|
- `.task/` directory must exist with at least one `TASK-*.json`
|
|
157
157
|
- If existing `retrospective.json` found and not `--all`: emit W002, prompt overwrite
|
|
@@ -404,7 +404,7 @@ If `!AUTO_YES`: present routing table and ask confirmation before routing each g
|
|
|
404
404
|
```javascript
|
|
405
405
|
functions.apply_patch:
|
|
406
406
|
*** Begin Patch
|
|
407
|
-
*** Add File:
|
|
407
|
+
*** Add File: <target_dir>/retrospective.json
|
|
408
408
|
+{
|
|
409
409
|
+ "phase": <N>,
|
|
410
410
|
+ "phase_slug": "<slug>",
|
|
@@ -415,7 +415,7 @@ functions.apply_patch:
|
|
|
415
415
|
+ "distilled_insights": <insights_array>,
|
|
416
416
|
+ "routing_summary": <routing_summary>
|
|
417
417
|
+}
|
|
418
|
-
*** Add File:
|
|
418
|
+
*** Add File: <target_dir>/retrospective.md
|
|
419
419
|
+# Retrospective: Phase <N> -- <slug>
|
|
420
420
|
+
|
|
421
421
|
+> Generated: <ISO> | Lenses: technical, process, quality, decision
|
|
@@ -175,7 +175,7 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
175
175
|
|
|
176
176
|
**Decomposition Rules**:
|
|
177
177
|
|
|
178
|
-
1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
|
|
178
|
+
1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
179
179
|
2. **File collection**: Read `.task/TASK-*.json` -> collect all `files[].path` where action != "read"
|
|
180
180
|
3. **Level detection**:
|
|
181
181
|
|
|
@@ -332,7 +332,7 @@ spawn_agents_on_csv({
|
|
|
332
332
|
| standard | critical + high |
|
|
333
333
|
| deep | critical + high + medium |
|
|
334
334
|
|
|
335
|
-
7. **Phase index update**: Update
|
|
335
|
+
7. **Phase index update**: Update `{phase_dir}/index.json` with review status.
|
|
336
336
|
|
|
337
337
|
8. Display summary.
|
|
338
338
|
|
|
@@ -49,15 +49,15 @@ No auto mode -- UAT is inherently interactive. `--auto-fix` only automates gap c
|
|
|
49
49
|
### Step 1: Resolve Target
|
|
50
50
|
|
|
51
51
|
1. Parse `$ARGUMENTS` for phase number, scratch task ID, or flags
|
|
52
|
-
2. **Phase mode**:
|
|
52
|
+
2. **Phase mode**: resolve `PHASE_DIR` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
53
53
|
3. **Scratch mode**: set `SCRATCH_DIR = .workflow/scratch/{id}/`
|
|
54
54
|
4. Validate target exists and has `verification.json` -- if missing: **E002**
|
|
55
55
|
|
|
56
56
|
### Step 2: Check Active Sessions
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
find .workflow/phases -name "uat.md" -type f 2>/dev/null | head -5
|
|
60
59
|
find .workflow/scratch -name "uat.md" -type f 2>/dev/null | head -5
|
|
60
|
+
find .workflow/phases -name "uat.md" -type f 2>/dev/null | head -5
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
- If active sessions exist and no target specified: display session table, ask user to resume or start new
|
|
@@ -170,7 +170,7 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
170
170
|
|
|
171
171
|
**Decomposition Rules**:
|
|
172
172
|
|
|
173
|
-
1. **Phase resolution**: Resolve `{phaseArg}` to `.workflow/phases/{NN}-{slug}/`
|
|
173
|
+
1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{type}-{slug}-{date}/`; legacy fallback to `.workflow/phases/{NN}-{slug}/`
|
|
174
174
|
|
|
175
175
|
2. **Test infrastructure discovery**:
|
|
176
176
|
- Find config files: `jest.config.*`, `vitest.config.*`, `pytest.ini`, `.mocharc.*`
|
package/README.md
CHANGED
|
@@ -323,6 +323,8 @@ maestro/
|
|
|
323
323
|
- **[Worktree Parallel Dev Guide](guide/worktree-guide.md)** — Milestone-level worktree parallelism: fork, sync, merge, scope enforcement, dashboard integration
|
|
324
324
|
- **[Collab — User Guide](guide/team-lite-guide.md)** — Multi-person collaboration for 2-8 person teams: join, sync, activity awareness, conflict preflight, task management, namespace isolation
|
|
325
325
|
- **[Collab — Design](guide/team-lite-design.md)** — Architecture, data model, namespace boundary between human-collab (`.workflow/collab/`) and agent-pipeline (`.workflow/.team/`) domains
|
|
326
|
+
- **[MCP Tools Reference](guide/mcp-tools-guide.en.md)** — All 9 MCP endpoint tools: file ops (edit/write/read), team collaboration (msg/mailbox/task/agent), and persistent memory
|
|
327
|
+
- **[CLI Commands Reference](guide/cli-commands-guide.en.md)** — All 21 terminal commands — install, delegate, coordinate, wiki, hooks, overlay, collab, and more
|
|
326
328
|
|
|
327
329
|
---
|
|
328
330
|
|
package/README.zh-CN.md
CHANGED
|
@@ -322,6 +322,8 @@ maestro/
|
|
|
322
322
|
- **[Worktree 并行开发指南](guide/worktree-guide.md)** -- 里程碑级 worktree 并行: fork、sync、merge、scope 保护、Dashboard 集成
|
|
323
323
|
- **[Collab 协作 -- 使用指南](guide/team-lite-guide.md)** -- 2-8 人小团队协作: 加入、同步、活动感知、冲突预检、任务管理、命名空间隔离
|
|
324
324
|
- **[Collab 协作 -- 设计文档](guide/team-lite-design.md)** -- 架构、数据模型、人类协作域 (`.workflow/collab/`) 与智能体管线 (`.workflow/.team/`) 的命名空间边界
|
|
325
|
+
- **[MCP 工具参考](guide/mcp-tools-guide.md)** -- 全部 9 个 MCP 端点工具:文件操作 (edit/write/read)、团队协作 (msg/mailbox/task/agent)、持久记忆
|
|
326
|
+
- **[CLI 命令参考](guide/cli-commands-guide.md)** -- 全部 21 个终端命令 — 安装、委派、协调、Wiki、Hook、Overlay、协作等
|
|
325
327
|
|
|
326
328
|
---
|
|
327
329
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as W,r as d,A as J,j as e,F as C,o as xe,W as j,p as pe,V as ue,X as fe,n as Z,B as he}from"./index-
|
|
1
|
+
import{d as W,r as d,A as J,j as e,F as C,o as xe,W as j,p as pe,V as ue,X as fe,n as Z,B as he}from"./index-C2Mcb4TJ.js";import{C as me}from"./code-Ble63Idz.js";import{S as X}from"./search-BS6fI6Bg.js";import{u as Q}from"./shallow-BXasQBvr.js";import{F as M,T as ge}from"./TreeBrowser-B9DHdULE.js";import{M as ve}from"./MarkdownRenderer-D7AehrnR.js";import{C as ee}from"./chevron-right-C7bVDreZ.js";import{D as te}from"./folder-B9ewx9LL.js";import{C as re}from"./circle-Qfgy4LB_.js";import{C as $}from"./circle-check-CEGgy3NV.js";import{A as be}from"./index-JTmGteaT.js";import{m as N}from"./proxy-D72Y8a4Y.js";/**
|
|
2
2
|
* @license lucide-react v0.577.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|