maestro-flow 0.4.24 → 0.4.25

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.
Files changed (110) hide show
  1. package/.agents/skills/maestro-impeccable/SKILL.md +5 -1
  2. package/.agents/skills/maestro-next/SKILL.md +7 -1
  3. package/.agents/skills/maestro-player/SKILL.md +9 -2
  4. package/.agents/skills/maestro-tools-execute/SKILL.md +4 -4
  5. package/.agents/skills/spec-load/SKILL.md +11 -4
  6. package/.agy/skills/maestro-impeccable/SKILL.md +5 -1
  7. package/.agy/skills/maestro-next/SKILL.md +7 -1
  8. package/.agy/skills/maestro-player/SKILL.md +9 -2
  9. package/.agy/skills/maestro-tools-execute/SKILL.md +4 -4
  10. package/.agy/skills/spec-load/SKILL.md +11 -4
  11. package/.claude/commands/maestro-impeccable.md +5 -1
  12. package/.claude/commands/maestro-next.md +7 -1
  13. package/.claude/commands/maestro-player.md +9 -2
  14. package/.claude/commands/maestro-tools-execute.md +4 -4
  15. package/.claude/commands/spec-load.md +11 -4
  16. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +96 -25
  17. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  18. package/dashboard/dist-server/dashboard/src/shared/constants.d.ts +1 -0
  19. package/dashboard/dist-server/dashboard/src/shared/constants.js +1 -0
  20. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  21. package/dashboard/dist-server/src/graph/types.d.ts +98 -0
  22. package/dashboard/dist-server/src/graph/types.js +19 -1
  23. package/dashboard/dist-server/src/graph/types.js.map +1 -1
  24. package/dist/src/commands/kg.d.ts.map +1 -1
  25. package/dist/src/commands/kg.js +345 -2
  26. package/dist/src/commands/kg.js.map +1 -1
  27. package/dist/src/commands/spec.d.ts.map +1 -1
  28. package/dist/src/commands/spec.js +82 -38
  29. package/dist/src/commands/spec.js.map +1 -1
  30. package/dist/src/graph/db/connection.d.ts +22 -0
  31. package/dist/src/graph/db/connection.d.ts.map +1 -0
  32. package/dist/src/graph/db/connection.js +113 -0
  33. package/dist/src/graph/db/connection.js.map +1 -0
  34. package/dist/src/graph/db/index.d.ts +4 -0
  35. package/dist/src/graph/db/index.d.ts.map +1 -0
  36. package/dist/src/graph/db/index.js +4 -0
  37. package/dist/src/graph/db/index.js.map +1 -0
  38. package/dist/src/graph/db/migrations.d.ts +5 -0
  39. package/dist/src/graph/db/migrations.d.ts.map +1 -0
  40. package/dist/src/graph/db/migrations.js +18 -0
  41. package/dist/src/graph/db/migrations.js.map +1 -0
  42. package/dist/src/graph/db/queries.d.ts +50 -0
  43. package/dist/src/graph/db/queries.d.ts.map +1 -0
  44. package/dist/src/graph/db/queries.js +313 -0
  45. package/dist/src/graph/db/queries.js.map +1 -0
  46. package/dist/src/graph/db/schema.sql +131 -0
  47. package/dist/src/graph/facade.d.ts +53 -0
  48. package/dist/src/graph/facade.d.ts.map +1 -0
  49. package/dist/src/graph/facade.js +172 -0
  50. package/dist/src/graph/facade.js.map +1 -0
  51. package/dist/src/graph/graph-queries.d.ts +24 -0
  52. package/dist/src/graph/graph-queries.d.ts.map +1 -0
  53. package/dist/src/graph/graph-queries.js +173 -0
  54. package/dist/src/graph/graph-queries.js.map +1 -0
  55. package/dist/src/graph/index.d.ts +8 -0
  56. package/dist/src/graph/index.d.ts.map +1 -1
  57. package/dist/src/graph/index.js +9 -0
  58. package/dist/src/graph/index.js.map +1 -1
  59. package/dist/src/graph/loader.d.ts +8 -0
  60. package/dist/src/graph/loader.d.ts.map +1 -1
  61. package/dist/src/graph/loader.js +20 -0
  62. package/dist/src/graph/loader.js.map +1 -1
  63. package/dist/src/graph/migration.d.ts +8 -0
  64. package/dist/src/graph/migration.d.ts.map +1 -0
  65. package/dist/src/graph/migration.js +134 -0
  66. package/dist/src/graph/migration.js.map +1 -0
  67. package/dist/src/graph/search/index.d.ts +4 -0
  68. package/dist/src/graph/search/index.d.ts.map +1 -0
  69. package/dist/src/graph/search/index.js +3 -0
  70. package/dist/src/graph/search/index.js.map +1 -0
  71. package/dist/src/graph/search/query-parser.d.ts +11 -0
  72. package/dist/src/graph/search/query-parser.d.ts.map +1 -0
  73. package/dist/src/graph/search/query-parser.js +111 -0
  74. package/dist/src/graph/search/query-parser.js.map +1 -0
  75. package/dist/src/graph/search/query-utils.d.ts +12 -0
  76. package/dist/src/graph/search/query-utils.d.ts.map +1 -0
  77. package/dist/src/graph/search/query-utils.js +184 -0
  78. package/dist/src/graph/search/query-utils.js.map +1 -0
  79. package/dist/src/graph/sync/content-hash.d.ts +7 -0
  80. package/dist/src/graph/sync/content-hash.d.ts.map +1 -0
  81. package/dist/src/graph/sync/content-hash.js +33 -0
  82. package/dist/src/graph/sync/content-hash.js.map +1 -0
  83. package/dist/src/graph/sync/incremental-sync.d.ts +23 -0
  84. package/dist/src/graph/sync/incremental-sync.d.ts.map +1 -0
  85. package/dist/src/graph/sync/incremental-sync.js +338 -0
  86. package/dist/src/graph/sync/incremental-sync.js.map +1 -0
  87. package/dist/src/graph/sync/index.d.ts +7 -0
  88. package/dist/src/graph/sync/index.d.ts.map +1 -0
  89. package/dist/src/graph/sync/index.js +5 -0
  90. package/dist/src/graph/sync/index.js.map +1 -0
  91. package/dist/src/graph/sync/watch-policy.d.ts +2 -0
  92. package/dist/src/graph/sync/watch-policy.d.ts.map +1 -0
  93. package/dist/src/graph/sync/watch-policy.js +38 -0
  94. package/dist/src/graph/sync/watch-policy.js.map +1 -0
  95. package/dist/src/graph/sync/watcher.d.ts +44 -0
  96. package/dist/src/graph/sync/watcher.d.ts.map +1 -0
  97. package/dist/src/graph/sync/watcher.js +153 -0
  98. package/dist/src/graph/sync/watcher.js.map +1 -0
  99. package/dist/src/graph/traversal.d.ts +37 -0
  100. package/dist/src/graph/traversal.d.ts.map +1 -0
  101. package/dist/src/graph/traversal.js +335 -0
  102. package/dist/src/graph/traversal.js.map +1 -0
  103. package/dist/src/graph/types.d.ts +98 -0
  104. package/dist/src/graph/types.d.ts.map +1 -1
  105. package/dist/src/graph/types.js +19 -1
  106. package/dist/src/graph/types.js.map +1 -1
  107. package/dist/src/utils/update-notices.js +11 -0
  108. package/dist/src/utils/update-notices.js.map +1 -1
  109. package/package.json +4 -2
  110. package/workflows/analyze.md +19 -13
@@ -147,7 +147,11 @@ Layer 1 did not match. Check for chain-level keywords — even if the prompt als
147
147
  | design system, tokens, design foundation, design infrastructure | foundation |
148
148
  | real-time, live, browser | live |
149
149
 
150
- Ambiguous + no `-y` → ask_user.
150
+ Ambiguous + no `-y`:
151
+
152
+ ask_user (single-select, header: "意图确认"):
153
+ - Options: top 2-3 matched chains from Layer 2 table, each with label = chain name, description = matched keywords
154
+ - Last option: **"直接构建"** — skip chain, route to Layer 3 craft
151
155
 
152
156
  ### Layer 3: Concrete build task → Direct craft
153
157
 
@@ -220,7 +220,13 @@ brainstorm → blueprint → init → analyze-macro → roadmap
220
220
  执行参数: <args>
221
221
  ```
222
222
 
223
- `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则 ask_user 提供:执行 top pick / 选备选 / 修改参数 / 取消。
223
+ `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则:
224
+
225
+ ask_user (single-select, header: "执行确认"):
226
+ - **执行推荐** (Recommended) — run top pick with shown args
227
+ - **选择备选** — pick from alternative commands
228
+ - **修改参数** — adjust args before executing
229
+ - **取消** — do nothing
224
230
 
225
231
  </presentation>
226
232
 
@@ -147,13 +147,20 @@ S_COMPLETE:
147
147
  - **skill/command**: `invoke_skill(skill, resolved_args)` → extract session_id, output_path, artifacts
148
148
  - **cli**: `shell(run_in_background: true)` → STOP, wait for callback → `maestro delegate output <id>`
149
149
  - **agent**: `delegate_subagent(subagent_type, resolved_args)`
150
- - **checkpoint**: write checkpoint snapshot. If auto_continue==false: ask_user (Continue/Pause/Abort)
150
+ - **checkpoint**: write checkpoint snapshot. If auto_continue==false:
151
+ ask_user (single-select, header: "Checkpoint"):
152
+ - **Continue** — proceed to next step
153
+ - **Pause** — save progress, exit (resume with `-c`)
154
+ - **Abort** — stop workflow
151
155
  4. Set step status="completed" (or "skipped"/"failed"), write status.json
152
156
 
153
157
  ### A_COMPLETE_SESSION
154
158
 
155
159
  Set status="completed", completed_at. Display summary: session, template, steps completed, context, per-step results, artifacts, session dir.
156
- ask_user: Keep session / Run again / Done.
160
+ ask_user (single-select, header: "完成"):
161
+ - **Keep session** — preserve artifacts for reference
162
+ - **Run again** — re-execute with same template
163
+ - **Done** — clean up and exit
157
164
 
158
165
  </actions>
159
166
 
@@ -73,10 +73,10 @@ maestro wiki load <knowhow-id>
73
73
 
74
74
  ### Step 3: Confirm Execution
75
75
 
76
- Ask user:
77
- - Execute steps as-is?
78
- - Adjust parameters/scope?
79
- - View only, do not execute?
76
+ ask_user (single-select, header: "执行方式"):
77
+ - **Execute as-is** (Recommended) — run all steps with current parameters
78
+ - **Adjust parameters** — modify scope or parameters before executing
79
+ - **View only** display steps without executing
80
80
 
81
81
  ### Step 4: Step-by-Step Execution
82
82
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: spec-load
3
3
  description: Load specs and lessons for current context
4
- argument-hint: "[--category <category>] [--keyword <word>]"
4
+ argument-hint: "[--scope <scope>] [--category <category>] [--keyword <word>]"
5
5
  allowed-tools:
6
6
  - read_file
7
7
  - shell
@@ -11,8 +11,9 @@ allowed-tools:
11
11
  <!-- Open-standard mirror generated by scripts/build-agents-standard.mjs — do not edit; re-run after editing .claude/ source. -->
12
12
 
13
13
  <purpose>
14
- Load relevant specs filtered by category (file-level) and/or keyword (entry-level).
14
+ Load relevant specs filtered by scope, category (file-level) and/or keyword (entry-level).
15
15
  Category-based loading: loads the category's primary doc in full + matching entries from other files.
16
+ By default, loads from both global (~/.maestro/specs/) and project (.workflow/specs/) layers.
16
17
  </purpose>
17
18
 
18
19
  <required_reading>
@@ -23,6 +24,11 @@ Category-based loading: loads the category's primary doc in full + matching entr
23
24
  $ARGUMENTS -- optional flags and keyword
24
25
 
25
26
  **Flags:**
27
+ - `--scope <scope>` — Load scope (default: global + project merged):
28
+ - `project`: project baseline only (.workflow/specs/)
29
+ - `global`: global + project merged (~/.maestro/specs/ + .workflow/specs/)
30
+ - `team`: project + team shared (.workflow/collab/specs/)
31
+ - `personal`: project + team + personal (requires uid)
26
32
  - `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug, learning, ui.
27
33
  - `--keyword <word>` — Filter by keyword within entries
28
34
 
@@ -40,7 +46,8 @@ $ARGUMENTS -- optional flags and keyword
40
46
 
41
47
  **Examples:**
42
48
  ```
43
- /spec-load --category coding # coding全文 + 跨文件coding条目
49
+ /spec-load --category coding # coding全文 + 跨文件coding条目 (global + project)
50
+ /spec-load --scope global --category arch # 明确包含全局 arch 规范
44
51
  /spec-load --category review # review-standards + quality-rules + 跨文件review条目
45
52
  /spec-load --category coding --keyword auth
46
53
  /spec-load --keyword auth
@@ -59,7 +66,7 @@ Follow '~/.maestro/workflows/specs-load.md' completely.
59
66
  <error_codes>
60
67
  | Code | Severity | Description | Stage |
61
68
  |------|----------|-------------|-------|
62
- | E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
69
+ | E001 | warning | `.workflow/specs/` not initialized -- run `/spec-setup` first (global specs still available) | detect_context |
63
70
  | W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
64
71
  </error_codes>
65
72
 
@@ -146,7 +146,11 @@ Layer 1 did not match. Check for chain-level keywords — even if the prompt als
146
146
  | design system, tokens, design foundation, design infrastructure | foundation |
147
147
  | real-time, live, browser | live |
148
148
 
149
- Ambiguous + no `-y` → ask_question.
149
+ Ambiguous + no `-y`:
150
+
151
+ ask_question (single-select, header: "意图确认"):
152
+ - Options: top 2-3 matched chains from Layer 2 table, each with label = chain name, description = matched keywords
153
+ - Last option: **"直接构建"** — skip chain, route to Layer 3 craft
150
154
 
151
155
  ### Layer 3: Concrete build task → Direct craft
152
156
 
@@ -216,7 +216,13 @@ brainstorm → blueprint → init → analyze-macro → roadmap
216
216
  执行参数: <args>
217
217
  ```
218
218
 
219
- `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则 ask_question 提供:执行 top pick / 选备选 / 修改参数 / 取消。
219
+ `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则:
220
+
221
+ ask_question (single-select, header: "执行确认"):
222
+ - **执行推荐** (Recommended) — run top pick with shown args
223
+ - **选择备选** — pick from alternative commands
224
+ - **修改参数** — adjust args before executing
225
+ - **取消** — do nothing
220
226
 
221
227
  </presentation>
222
228
 
@@ -146,13 +146,20 @@ S_COMPLETE:
146
146
  - **skill/command**: `Skill(skill, resolved_args)` → extract session_id, output_path, artifacts
147
147
  - **cli**: `run_command(run_in_background: true)` → STOP, wait for callback → `maestro delegate output <id>`
148
148
  - **agent**: `invoke_subagent([{ TypeName: "<TypeName>", Role: "<Role>", Prompt: "<Prompt>", Workspace: "inherit" }])`
149
- - **checkpoint**: write checkpoint snapshot. If auto_continue==false: ask_question (Continue/Pause/Abort)
149
+ - **checkpoint**: write checkpoint snapshot. If auto_continue==false:
150
+ ask_question (single-select, header: "Checkpoint"):
151
+ - **Continue** — proceed to next step
152
+ - **Pause** — save progress, exit (resume with `-c`)
153
+ - **Abort** — stop workflow
150
154
  4. Set step status="completed" (or "skipped"/"failed"), write status.json
151
155
 
152
156
  ### A_COMPLETE_SESSION
153
157
 
154
158
  Set status="completed", completed_at. Display summary: session, template, steps completed, context, per-step results, artifacts, session dir.
155
- ask_question: Keep session / Run again / Done.
159
+ ask_question (single-select, header: "完成"):
160
+ - **Keep session** — preserve artifacts for reference
161
+ - **Run again** — re-execute with same template
162
+ - **Done** — clean up and exit
156
163
 
157
164
  </actions>
158
165
 
@@ -73,10 +73,10 @@ maestro wiki load <knowhow-id>
73
73
 
74
74
  ### Step 3: Confirm Execution
75
75
 
76
- Ask user:
77
- - Execute steps as-is?
78
- - Adjust parameters/scope?
79
- - View only, do not execute?
76
+ ask_question (single-select, header: "执行方式"):
77
+ - **Execute as-is** (Recommended) — run all steps with current parameters
78
+ - **Adjust parameters** — modify scope or parameters before executing
79
+ - **View only** display steps without executing
80
80
 
81
81
  ### Step 4: Step-by-Step Execution
82
82
 
@@ -1,15 +1,16 @@
1
1
  ---
2
2
  name: spec-load
3
3
  description: Load specs and lessons for current context
4
- argument-hint: [--category <category>] [--keyword <word>]
4
+ argument-hint: [--scope <scope>] [--category <category>] [--keyword <word>]
5
5
  allowed-tools:
6
6
  - grep_search
7
7
  - run_command
8
8
  - view_file
9
9
  ---
10
10
  <purpose>
11
- Load relevant specs filtered by category (file-level) and/or keyword (entry-level).
11
+ Load relevant specs filtered by scope, category (file-level) and/or keyword (entry-level).
12
12
  Category-based loading: loads the category's primary doc in full + matching entries from other files.
13
+ By default, loads from both global (~/.maestro/specs/) and project (.workflow/specs/) layers.
13
14
  </purpose>
14
15
 
15
16
  <required_reading>
@@ -20,6 +21,11 @@ Category-based loading: loads the category's primary doc in full + matching entr
20
21
  $ARGUMENTS -- optional flags and keyword
21
22
 
22
23
  **Flags:**
24
+ - `--scope <scope>` — Load scope (default: global + project merged):
25
+ - `project`: project baseline only (.workflow/specs/)
26
+ - `global`: global + project merged (~/.maestro/specs/ + .workflow/specs/)
27
+ - `team`: project + team shared (.workflow/collab/specs/)
28
+ - `personal`: project + team + personal (requires uid)
23
29
  - `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug, learning, ui.
24
30
  - `--keyword <word>` — Filter by keyword within entries
25
31
 
@@ -37,7 +43,8 @@ $ARGUMENTS -- optional flags and keyword
37
43
 
38
44
  **Examples:**
39
45
  ```
40
- /spec-load --category coding # coding全文 + 跨文件coding条目
46
+ /spec-load --category coding # coding全文 + 跨文件coding条目 (global + project)
47
+ /spec-load --scope global --category arch # 明确包含全局 arch 规范
41
48
  /spec-load --category review # review-standards + quality-rules + 跨文件review条目
42
49
  /spec-load --category coding --keyword auth
43
50
  /spec-load --keyword auth
@@ -56,7 +63,7 @@ Follow '~/.maestro/workflows/specs-load.md' completely.
56
63
  <error_codes>
57
64
  | Code | Severity | Description | Stage |
58
65
  |------|----------|-------------|-------|
59
- | E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
66
+ | E001 | warning | `.workflow/specs/` not initialized -- run `/spec-setup` first (global specs still available) | detect_context |
60
67
  | W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
61
68
  </error_codes>
62
69
 
@@ -145,7 +145,11 @@ Layer 1 did not match. Check for chain-level keywords — even if the prompt als
145
145
  | design system, tokens, design foundation, design infrastructure | foundation |
146
146
  | real-time, live, browser | live |
147
147
 
148
- Ambiguous + no `-y` → AskUserQuestion.
148
+ Ambiguous + no `-y`:
149
+
150
+ AskUserQuestion (single-select, header: "意图确认"):
151
+ - Options: top 2-3 matched chains from Layer 2 table, each with label = chain name, description = matched keywords
152
+ - Last option: **"直接构建"** — skip chain, route to Layer 3 craft
149
153
 
150
154
  ### Layer 3: Concrete build task → Direct craft
151
155
 
@@ -218,7 +218,13 @@ brainstorm → blueprint → init → analyze-macro → roadmap
218
218
  执行参数: <args>
219
219
  ```
220
220
 
221
- `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则 AskUserQuestion 提供:执行 top pick / 选备选 / 修改参数 / 取消。
221
+ `--dry-run` 展示后结束;`-y` 直接 S_EXECUTE;否则:
222
+
223
+ AskUserQuestion (single-select, header: "执行确认"):
224
+ - **执行推荐** (Recommended) — run top pick with shown args
225
+ - **选择备选** — pick from alternative commands
226
+ - **修改参数** — adjust args before executing
227
+ - **取消** — do nothing
222
228
 
223
229
  </presentation>
224
230
 
@@ -145,13 +145,20 @@ S_COMPLETE:
145
145
  - **skill/command**: `Skill(skill, resolved_args)` → extract session_id, output_path, artifacts
146
146
  - **cli**: `Bash(run_in_background: true)` → STOP, wait for callback → `maestro delegate output <id>`
147
147
  - **agent**: `Agent(subagent_type, resolved_args)`
148
- - **checkpoint**: write checkpoint snapshot. If auto_continue==false: AskUserQuestion (Continue/Pause/Abort)
148
+ - **checkpoint**: write checkpoint snapshot. If auto_continue==false:
149
+ AskUserQuestion (single-select, header: "Checkpoint"):
150
+ - **Continue** — proceed to next step
151
+ - **Pause** — save progress, exit (resume with `-c`)
152
+ - **Abort** — stop workflow
149
153
  4. Set step status="completed" (or "skipped"/"failed"), write status.json
150
154
 
151
155
  ### A_COMPLETE_SESSION
152
156
 
153
157
  Set status="completed", completed_at. Display summary: session, template, steps completed, context, per-step results, artifacts, session dir.
154
- AskUserQuestion: Keep session / Run again / Done.
158
+ AskUserQuestion (single-select, header: "完成"):
159
+ - **Keep session** — preserve artifacts for reference
160
+ - **Run again** — re-execute with same template
161
+ - **Done** — clean up and exit
155
162
 
156
163
  </actions>
157
164
 
@@ -71,10 +71,10 @@ maestro wiki load <knowhow-id>
71
71
 
72
72
  ### Step 3: Confirm Execution
73
73
 
74
- Ask user:
75
- - Execute steps as-is?
76
- - Adjust parameters/scope?
77
- - View only, do not execute?
74
+ AskUserQuestion (single-select, header: "执行方式"):
75
+ - **Execute as-is** (Recommended) — run all steps with current parameters
76
+ - **Adjust parameters** — modify scope or parameters before executing
77
+ - **View only** display steps without executing
78
78
 
79
79
  ### Step 4: Step-by-Step Execution
80
80
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: spec-load
3
3
  description: Load specs and lessons for current context
4
- argument-hint: "[--category <category>] [--keyword <word>]"
4
+ argument-hint: "[--scope <scope>] [--category <category>] [--keyword <word>]"
5
5
  allowed-tools:
6
6
  - Read
7
7
  - Bash
@@ -9,8 +9,9 @@ allowed-tools:
9
9
  - Grep
10
10
  ---
11
11
  <purpose>
12
- Load relevant specs filtered by category (file-level) and/or keyword (entry-level).
12
+ Load relevant specs filtered by scope, category (file-level) and/or keyword (entry-level).
13
13
  Category-based loading: loads the category's primary doc in full + matching entries from other files.
14
+ By default, loads from both global (~/.maestro/specs/) and project (.workflow/specs/) layers.
14
15
  </purpose>
15
16
 
16
17
  <required_reading>
@@ -21,6 +22,11 @@ Category-based loading: loads the category's primary doc in full + matching entr
21
22
  $ARGUMENTS -- optional flags and keyword
22
23
 
23
24
  **Flags:**
25
+ - `--scope <scope>` — Load scope (default: global + project merged):
26
+ - `project`: project baseline only (.workflow/specs/)
27
+ - `global`: global + project merged (~/.maestro/specs/ + .workflow/specs/)
28
+ - `team`: project + team shared (.workflow/collab/specs/)
29
+ - `personal`: project + team + personal (requires uid)
24
30
  - `--category <category>` — Load by category: primary category doc (full) + cross-file entries with matching category attr. Categories: coding, arch, test, review, debug, learning, ui.
25
31
  - `--keyword <word>` — Filter by keyword within entries
26
32
 
@@ -38,7 +44,8 @@ $ARGUMENTS -- optional flags and keyword
38
44
 
39
45
  **Examples:**
40
46
  ```
41
- /spec-load --category coding # coding全文 + 跨文件coding条目
47
+ /spec-load --category coding # coding全文 + 跨文件coding条目 (global + project)
48
+ /spec-load --scope global --category arch # 明确包含全局 arch 规范
42
49
  /spec-load --category review # review-standards + quality-rules + 跨文件review条目
43
50
  /spec-load --category coding --keyword auth
44
51
  /spec-load --keyword auth
@@ -57,7 +64,7 @@ Follow '~/.maestro/workflows/specs-load.md' completely.
57
64
  <error_codes>
58
65
  | Code | Severity | Description | Stage |
59
66
  |------|----------|-------------|-------|
60
- | E001 | fatal | `.workflow/specs/` not initialized -- run `/spec-setup` first | detect_context |
67
+ | E001 | warning | `.workflow/specs/` not initialized -- run `/spec-setup` first (global specs still available) | detect_context |
61
68
  | W001 | warning | No matching specs found for keyword -- showing all specs in category instead | load_specs |
62
69
  </error_codes>
63
70
 
@@ -15,9 +15,15 @@
15
15
  * ### [YYYY-MM-DD] type: Title text
16
16
  *
17
17
  * Follows the Hono factory pattern used by issues.ts and mcp.ts.
18
+ *
19
+ * Scope support: ?scope=project|global|all (default: all)
20
+ * - project: .workflow/specs/
21
+ * - global: ~/.maestro/specs/
22
+ * - all: merge both (project + global)
18
23
  */
19
24
  import { readFile, writeFile, readdir, mkdir } from 'node:fs/promises';
20
25
  import { join, extname, basename } from 'node:path';
26
+ import { homedir } from 'node:os';
21
27
  import { Hono } from 'hono';
22
28
  import { parseFrontmatter } from '../wiki/frontmatter-util.js';
23
29
  import { parseSpecEntries, FILE_CATEGORY_MAP, HEADING_RE, } from '../wiki/spec-entry-parser.js';
@@ -31,9 +37,18 @@ const ENTRY_TYPES = [
31
37
  // ---------------------------------------------------------------------------
32
38
  // File I/O helpers
33
39
  // ---------------------------------------------------------------------------
40
+ function getGlobalSpecsDir() {
41
+ const maestroHome = process.env.MAESTRO_HOME ?? join(homedir(), '.maestro');
42
+ return join(maestroHome, 'specs');
43
+ }
34
44
  async function getSpecsDir(workflowRoot) {
35
45
  return join(workflowRoot, 'specs');
36
46
  }
47
+ function parseScope(raw) {
48
+ if (raw === 'project' || raw === 'global')
49
+ return raw;
50
+ return 'all';
51
+ }
37
52
  async function listSpecFiles(specsDir) {
38
53
  try {
39
54
  const names = await readdir(specsDir);
@@ -114,18 +129,75 @@ export function createSpecsRoutes(workflowRoot, writer) {
114
129
  const app = new Hono();
115
130
  const resolveRoot = () => typeof workflowRoot === 'function' ? workflowRoot() : workflowRoot;
116
131
  // -------------------------------------------------------------------------
132
+ // Helper: load entries from a single specs directory, tagging with scope
133
+ // -------------------------------------------------------------------------
134
+ async function loadEntriesFromDir(specsDir, scope) {
135
+ const files = await listSpecFiles(specsDir);
136
+ const entries = [];
137
+ for (const fileName of files) {
138
+ const raw = await readSpecFile(specsDir, fileName);
139
+ const { data, content } = parseFrontmatter(raw);
140
+ const parsed = parseSpecEntries(content, fileName, data);
141
+ for (const e of parsed) {
142
+ entries.push({ ...e, scope });
143
+ }
144
+ }
145
+ return entries;
146
+ }
147
+ async function loadFilesFromDir(specsDir, scope) {
148
+ const fileNames = await listSpecFiles(specsDir);
149
+ const files = [];
150
+ for (const fileName of fileNames) {
151
+ const raw = await readSpecFile(specsDir, fileName);
152
+ const { data, content } = parseFrontmatter(raw);
153
+ const entries = parseSpecEntries(content, fileName);
154
+ files.push({
155
+ name: fileName,
156
+ path: `specs/${fileName}`,
157
+ title: typeof data.title === 'string' ? data.title : basename(fileName, extname(fileName)),
158
+ category: typeof data.category === 'string' ? data.category : (FILE_CATEGORY_MAP[basename(fileName, extname(fileName))] ?? 'general'),
159
+ entryCount: entries.length,
160
+ scope,
161
+ });
162
+ }
163
+ return files;
164
+ }
165
+ // -------------------------------------------------------------------------
166
+ // GET /api/specs/scopes — list available scopes with status
167
+ // -------------------------------------------------------------------------
168
+ app.get('/api/specs/scopes', async (c) => {
169
+ try {
170
+ const projectDir = await getSpecsDir(resolveRoot());
171
+ const globalDir = getGlobalSpecsDir();
172
+ const projectFiles = await listSpecFiles(projectDir);
173
+ const globalFiles = await listSpecFiles(globalDir);
174
+ return c.json({
175
+ scopes: [
176
+ { scope: 'project', dir: projectDir, exists: projectFiles.length > 0, fileCount: projectFiles.length },
177
+ { scope: 'global', dir: globalDir, exists: globalFiles.length > 0, fileCount: globalFiles.length },
178
+ ],
179
+ });
180
+ }
181
+ catch (err) {
182
+ const message = err instanceof Error ? err.message : String(err);
183
+ return c.json({ error: message }, 500);
184
+ }
185
+ });
186
+ // -------------------------------------------------------------------------
117
187
  // GET /api/specs — list all entries across all spec files
188
+ // ?scope=project|global|all (default: all)
118
189
  // -------------------------------------------------------------------------
119
190
  app.get('/api/specs', async (c) => {
120
191
  try {
121
- const specsDir = await getSpecsDir(resolveRoot());
122
- const files = await listSpecFiles(specsDir);
192
+ const scope = parseScope(c.req.query('scope'));
123
193
  const allEntries = [];
124
- for (const fileName of files) {
125
- const raw = await readSpecFile(specsDir, fileName);
126
- const { data, content } = parseFrontmatter(raw);
127
- const entries = parseSpecEntries(content, fileName, data);
128
- allEntries.push(...entries);
194
+ if (scope === 'project' || scope === 'all') {
195
+ const specsDir = await getSpecsDir(resolveRoot());
196
+ allEntries.push(...await loadEntriesFromDir(specsDir, 'project'));
197
+ }
198
+ if (scope === 'global' || scope === 'all') {
199
+ const globalDir = getGlobalSpecsDir();
200
+ allEntries.push(...await loadEntriesFromDir(globalDir, 'global'));
129
201
  }
130
202
  return c.json({ entries: allEntries });
131
203
  }
@@ -136,25 +208,21 @@ export function createSpecsRoutes(workflowRoot, writer) {
136
208
  });
137
209
  // -------------------------------------------------------------------------
138
210
  // GET /api/specs/files — list spec files with metadata
211
+ // ?scope=project|global|all (default: all)
139
212
  // -------------------------------------------------------------------------
140
213
  app.get('/api/specs/files', async (c) => {
141
214
  try {
142
- const specsDir = await getSpecsDir(resolveRoot());
143
- const fileNames = await listSpecFiles(specsDir);
144
- const files = [];
145
- for (const fileName of fileNames) {
146
- const raw = await readSpecFile(specsDir, fileName);
147
- const { data, content } = parseFrontmatter(raw);
148
- const entries = parseSpecEntries(content, fileName);
149
- files.push({
150
- name: fileName,
151
- path: `specs/${fileName}`,
152
- title: typeof data.title === 'string' ? data.title : basename(fileName, extname(fileName)),
153
- category: typeof data.category === 'string' ? data.category : (FILE_CATEGORY_MAP[basename(fileName, extname(fileName))] ?? 'general'),
154
- entryCount: entries.length,
155
- });
215
+ const scope = parseScope(c.req.query('scope'));
216
+ const allFiles = [];
217
+ if (scope === 'project' || scope === 'all') {
218
+ const specsDir = await getSpecsDir(resolveRoot());
219
+ allFiles.push(...await loadFilesFromDir(specsDir, 'project'));
220
+ }
221
+ if (scope === 'global' || scope === 'all') {
222
+ const globalDir = getGlobalSpecsDir();
223
+ allFiles.push(...await loadFilesFromDir(globalDir, 'global'));
156
224
  }
157
- return c.json({ files });
225
+ return c.json({ files: allFiles });
158
226
  }
159
227
  catch (err) {
160
228
  const message = err instanceof Error ? err.message : String(err);
@@ -163,15 +231,18 @@ export function createSpecsRoutes(workflowRoot, writer) {
163
231
  });
164
232
  // -------------------------------------------------------------------------
165
233
  // GET /api/specs/file/:name — read a specific spec file
234
+ // ?scope=project|global (default: project)
166
235
  // -------------------------------------------------------------------------
167
236
  app.get('/api/specs/file/:name', async (c) => {
168
237
  try {
169
238
  const name = c.req.param('name');
170
- // Sanitize: only allow alphanumeric, hyphens, underscores + .md
171
239
  if (!/^[\w-]+\.md$/i.test(name)) {
172
240
  return c.json({ error: 'Invalid file name' }, 400);
173
241
  }
174
- const specsDir = await getSpecsDir(resolveRoot());
242
+ const scope = c.req.query('scope') === 'global' ? 'global' : 'project';
243
+ const specsDir = scope === 'global'
244
+ ? getGlobalSpecsDir()
245
+ : await getSpecsDir(resolveRoot());
175
246
  let raw;
176
247
  try {
177
248
  raw = await readSpecFile(specsDir, name);
@@ -181,7 +252,7 @@ export function createSpecsRoutes(workflowRoot, writer) {
181
252
  }
182
253
  const { data, content } = parseFrontmatter(raw);
183
254
  const entries = parseSpecEntries(content, name, data);
184
- return c.json({ name, content: raw, entries });
255
+ return c.json({ name, scope, content: raw, entries });
185
256
  }
186
257
  catch (err) {
187
258
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../../../../src/server/routes/specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../../../../src/server/routes/specs.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ export declare const SPECS_API_ENDPOINTS: {
30
30
  readonly SPECS: "/api/specs";
31
31
  readonly SPECS_FILES: "/api/specs/files";
32
32
  readonly SPECS_FILE: "/api/specs/file/:name";
33
+ readonly SPECS_SCOPES: "/api/specs/scopes";
33
34
  };
34
35
  export declare const WIKI_API_ENDPOINTS: {
35
36
  readonly WIKI: "/api/wiki";