maestro-flow 0.5.3 → 0.5.31

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 (259) hide show
  1. package/.agents/skills/learn-follow/SKILL.md +114 -114
  2. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  3. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  4. package/.agents/skills/maestro/SKILL.md +2 -10
  5. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  6. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  7. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  8. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  9. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  10. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  11. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  12. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  13. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  14. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  15. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  16. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  17. package/.agents/skills/maestro-init/SKILL.md +117 -118
  18. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  19. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  20. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  21. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  22. package/.agents/skills/maestro-next/SKILL.md +241 -245
  23. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  24. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  25. package/.agents/skills/maestro-player/SKILL.md +167 -167
  26. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  27. package/.agents/skills/maestro-ralph/SKILL.md +2 -36
  28. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -872
  29. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  30. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  31. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  32. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  33. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  34. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  35. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  36. package/.agents/skills/maestro-update/SKILL.md +109 -106
  37. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  38. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  39. package/.agents/skills/manage-issue/SKILL.md +59 -60
  40. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  41. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  42. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  43. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  44. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  45. package/.agents/skills/manage-status/SKILL.md +52 -42
  46. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  47. package/.agents/skills/odyssey-debug/SKILL.md +445 -459
  48. package/.agents/skills/odyssey-improve/SKILL.md +477 -491
  49. package/.agents/skills/odyssey-planex/SKILL.md +576 -587
  50. package/.agents/skills/odyssey-review-test-fix/SKILL.md +400 -413
  51. package/.agents/skills/odyssey-ui/SKILL.md +431 -448
  52. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  53. package/.agents/skills/quality-debug/SKILL.md +145 -106
  54. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  55. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  56. package/.agents/skills/quality-review/SKILL.md +141 -114
  57. package/.agents/skills/quality-sync/SKILL.md +74 -38
  58. package/.agents/skills/quality-test/SKILL.md +133 -103
  59. package/.agents/skills/security-audit/SKILL.md +217 -166
  60. package/.agents/skills/spec-add/SKILL.md +66 -59
  61. package/.agents/skills/spec-load/SKILL.md +68 -68
  62. package/.agents/skills/spec-remove/SKILL.md +42 -42
  63. package/.agents/skills/spec-setup/SKILL.md +38 -41
  64. package/.agy/skills/learn-follow/SKILL.md +114 -114
  65. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  66. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  67. package/.agy/skills/maestro/SKILL.md +2 -10
  68. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  69. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  70. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  71. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  72. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  73. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  74. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  75. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  76. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  77. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  78. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  79. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  80. package/.agy/skills/maestro-init/SKILL.md +117 -118
  81. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  82. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  83. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  84. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  85. package/.agy/skills/maestro-next/SKILL.md +241 -245
  86. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  87. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  88. package/.agy/skills/maestro-player/SKILL.md +167 -167
  89. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  90. package/.agy/skills/maestro-ralph/SKILL.md +2 -36
  91. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -872
  92. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  93. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  94. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  95. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  96. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  97. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  98. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  99. package/.agy/skills/maestro-update/SKILL.md +109 -106
  100. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  101. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  102. package/.agy/skills/manage-issue/SKILL.md +59 -60
  103. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  104. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  105. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  106. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  107. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  108. package/.agy/skills/manage-status/SKILL.md +52 -42
  109. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  110. package/.agy/skills/odyssey-debug/SKILL.md +445 -459
  111. package/.agy/skills/odyssey-improve/SKILL.md +477 -491
  112. package/.agy/skills/odyssey-planex/SKILL.md +576 -587
  113. package/.agy/skills/odyssey-review-test-fix/SKILL.md +400 -413
  114. package/.agy/skills/odyssey-ui/SKILL.md +431 -448
  115. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  116. package/.agy/skills/quality-debug/SKILL.md +145 -106
  117. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  118. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  119. package/.agy/skills/quality-review/SKILL.md +141 -114
  120. package/.agy/skills/quality-sync/SKILL.md +74 -38
  121. package/.agy/skills/quality-test/SKILL.md +133 -103
  122. package/.agy/skills/security-audit/SKILL.md +217 -166
  123. package/.agy/skills/spec-add/SKILL.md +66 -59
  124. package/.agy/skills/spec-load/SKILL.md +68 -68
  125. package/.agy/skills/spec-remove/SKILL.md +42 -42
  126. package/.agy/skills/spec-setup/SKILL.md +38 -41
  127. package/.claude/commands/learn-follow.md +127 -127
  128. package/.claude/commands/learn-investigate.md +151 -152
  129. package/.claude/commands/learn-second-opinion.md +118 -122
  130. package/.claude/commands/maestro-amend.md +164 -164
  131. package/.claude/commands/maestro-analyze.md +215 -266
  132. package/.claude/commands/maestro-blueprint.md +189 -204
  133. package/.claude/commands/maestro-brainstorm.md +209 -213
  134. package/.claude/commands/maestro-collab.md +172 -172
  135. package/.claude/commands/maestro-companion.md +531 -531
  136. package/.claude/commands/maestro-composer.md +188 -179
  137. package/.claude/commands/maestro-execute.md +183 -184
  138. package/.claude/commands/maestro-fork.md +111 -110
  139. package/.claude/commands/maestro-grill.md +175 -176
  140. package/.claude/commands/maestro-guard.md +103 -102
  141. package/.claude/commands/maestro-impeccable.md +311 -268
  142. package/.claude/commands/maestro-init.md +130 -131
  143. package/.claude/commands/maestro-merge.md +87 -80
  144. package/.claude/commands/maestro-milestone-audit.md +4 -10
  145. package/.claude/commands/maestro-milestone-complete.md +6 -7
  146. package/.claude/commands/maestro-milestone-release.md +136 -145
  147. package/.claude/commands/maestro-next.md +253 -257
  148. package/.claude/commands/maestro-overlay.md +188 -178
  149. package/.claude/commands/maestro-plan.md +225 -211
  150. package/.claude/commands/maestro-player.md +182 -182
  151. package/.claude/commands/maestro-quick.md +83 -77
  152. package/.claude/commands/maestro-ralph-beta.md +875 -886
  153. package/.claude/commands/maestro-ralph-execute.md +247 -247
  154. package/.claude/commands/maestro-ralph.md +2 -36
  155. package/.claude/commands/maestro-roadmap.md +173 -186
  156. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  157. package/.claude/commands/maestro-tools-execute.md +122 -117
  158. package/.claude/commands/maestro-tools-register.md +162 -157
  159. package/.claude/commands/maestro-ui-codify.md +117 -100
  160. package/.claude/commands/maestro-universal-workflow.md +548 -561
  161. package/.claude/commands/maestro-update.md +122 -119
  162. package/.claude/commands/maestro.md +2 -10
  163. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  164. package/.claude/commands/manage-harvest.md +97 -95
  165. package/.claude/commands/manage-issue-discover.md +83 -81
  166. package/.claude/commands/manage-issue.md +72 -73
  167. package/.claude/commands/manage-kg-extractors.md +128 -0
  168. package/.claude/commands/manage-knowhow-capture.md +92 -82
  169. package/.claude/commands/manage-knowhow.md +83 -79
  170. package/.claude/commands/manage-knowledge-audit.md +105 -88
  171. package/.claude/commands/manage-status.md +62 -52
  172. package/.claude/commands/manage-wiki.md +82 -71
  173. package/.claude/commands/odyssey-debug.md +459 -473
  174. package/.claude/commands/odyssey-improve.md +491 -505
  175. package/.claude/commands/odyssey-planex.md +590 -601
  176. package/.claude/commands/odyssey-review-test-fix.md +414 -427
  177. package/.claude/commands/odyssey-ui.md +445 -462
  178. package/.claude/commands/quality-auto-test.md +153 -136
  179. package/.claude/commands/quality-debug.md +159 -120
  180. package/.claude/commands/quality-refactor.md +105 -67
  181. package/.claude/commands/quality-retrospective.md +123 -77
  182. package/.claude/commands/quality-review.md +155 -128
  183. package/.claude/commands/quality-sync.md +88 -52
  184. package/.claude/commands/quality-test.md +147 -117
  185. package/.claude/commands/security-audit.md +230 -179
  186. package/.claude/commands/spec-add.md +77 -70
  187. package/.claude/commands/spec-load.md +78 -78
  188. package/.claude/commands/spec-remove.md +55 -55
  189. package/.claude/commands/spec-setup.md +49 -52
  190. package/dist/src/cli.js +1 -1
  191. package/dist/src/cli.js.map +1 -1
  192. package/dist/src/commands/kg.d.ts.map +1 -1
  193. package/dist/src/commands/kg.js +11 -5
  194. package/dist/src/commands/kg.js.map +1 -1
  195. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +2 -0
  196. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -1
  197. package/dist/src/graph/kg/extraction/code/code-extractor.js +32 -3
  198. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
  199. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  200. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  201. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  202. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  203. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  204. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  205. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  206. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  207. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
  208. package/dist/src/graph/kg/extraction/orchestrator.js +17 -5
  209. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
  210. package/dist/src/graph/kg/schema.sql +16 -11
  211. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
  212. package/dist/src/graph/kg/surface/cli.js +153 -56
  213. package/dist/src/graph/kg/surface/cli.js.map +1 -1
  214. package/dist/src/hooks/workspace.d.ts +4 -2
  215. package/dist/src/hooks/workspace.d.ts.map +1 -1
  216. package/dist/src/hooks/workspace.js +6 -2
  217. package/dist/src/hooks/workspace.js.map +1 -1
  218. package/package.json +91 -91
  219. package/workflows/analyze.md +25 -49
  220. package/workflows/auto-test.md +699 -699
  221. package/workflows/blueprint.md +403 -431
  222. package/workflows/brainstorm.md +54 -195
  223. package/workflows/business-test.md +570 -570
  224. package/workflows/claude-instructions.md +23 -51
  225. package/workflows/codex-instructions.md +27 -77
  226. package/workflows/coding-philosophy.md +69 -69
  227. package/workflows/command-authoring.md +823 -823
  228. package/workflows/debug.md +43 -98
  229. package/workflows/delegate-usage.md +39 -241
  230. package/workflows/execute.md +4 -53
  231. package/workflows/grill.md +12 -56
  232. package/workflows/harvest.md +22 -68
  233. package/workflows/init.md +148 -148
  234. package/workflows/instruction-authoring-guide.md +97 -0
  235. package/workflows/issue-execute.md +110 -110
  236. package/workflows/issue-gaps-analyze.codex.md +260 -260
  237. package/workflows/issue-gaps-analyze.md +216 -216
  238. package/workflows/issue-plan.md +110 -110
  239. package/workflows/issue.md +338 -346
  240. package/workflows/knowhow.md +0 -32
  241. package/workflows/learn.md +277 -277
  242. package/workflows/maestro-chain-execute.md +20 -20
  243. package/workflows/refactor.md +22 -44
  244. package/workflows/retrospective.md +16 -65
  245. package/workflows/review.md +446 -486
  246. package/workflows/roadmap.md +35 -132
  247. package/workflows/skill-authoring.md +265 -265
  248. package/workflows/spec-generate.md +470 -470
  249. package/workflows/specs-remove.md +104 -104
  250. package/workflows/sync.md +11 -41
  251. package/workflows/test-gen.md +226 -226
  252. package/workflows/test.md +385 -475
  253. package/workflows/ui-design.md +391 -391
  254. package/workflows/ui-style.md +199 -199
  255. package/workflows/wiki-connect.md +151 -151
  256. package/workflows/wiki-digest.md +178 -178
  257. package/workflows/wiki-manage.md +109 -109
  258. package/workflows/cli-tools-usage.md +0 -252
  259. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,7 +1,5 @@
1
1
  # KnowHow Workflow
2
2
 
3
- Reusable knowledge capture, retrieval, and management for cross-session recovery and knowledge reuse.
4
-
5
3
  ## Dual Store Architecture
6
4
 
7
5
  | Store | Path | Format | Index |
@@ -151,13 +149,6 @@ When and how to use this template.
151
149
  Additional context.
152
150
  ```
153
151
 
154
- **Field guide:**
155
- - `lang` — Programming language or config format (required)
156
- - `Usage` — 1-2 sentences describing when to apply
157
- - `Parameters` — Placeholder table (optional)
158
- - `Code` — The actual template, ready to copy
159
- - `Dependencies` — What's needed before using
160
-
161
152
  #### recipe (RCP-{YYYYMMDD}-{slug}.md)
162
153
 
163
154
  Step-by-step operational guide. Sections:
@@ -196,13 +187,6 @@ What success looks like.
196
187
  - [[template-xxx]] — Templates used
197
188
  ```
198
189
 
199
- **Field guide:**
200
- - `Goal` — One sentence, actionable
201
- - `Prerequisites` — Everything needed before starting
202
- - `Steps` — Numbered, each step verifiable independently
203
- - `Expected Outcome` — Measurable result
204
- - `Common Pitfalls` — Known gotchas from experience
205
-
206
190
  #### reference (REF-{YYYYMMDD}-{slug}.md)
207
191
 
208
192
  External documentation digest. Sections:
@@ -239,13 +223,6 @@ last_verified: {ISO date}
239
223
  Additional context.
240
224
  ```
241
225
 
242
- **Field guide:**
243
- - `source` — Original URL or document ID (required)
244
- - `Key Points` — Distilled essentials, not raw dump
245
- - `Applicable Scenarios` — "Use this when..."
246
- - `Quick Examples` — Most-used snippets first
247
- - `last_verified` — When the source was last checked
248
-
249
226
  #### decision (DCS-{YYYYMMDD}-{slug}.md)
250
227
 
251
228
  Architecture Decision Record. Sections:
@@ -289,13 +266,6 @@ Why this choice over alternatives.
289
266
  - [[recipe-xxx]] — Implementation recipe
290
267
  ```
291
268
 
292
- **Field guide:**
293
- - `status` — proposed → accepted → superseded lifecycle
294
- - `Context` — Enough background for future reader (no assumed knowledge)
295
- - `Alternatives` — Must list at least 2 rejected options with reasons
296
- - `Rationale` — The "why" matters more than the "what"
297
- - `Consequences` — Both positive and negative; be honest about trade-offs
298
-
299
269
  #### tip (TIP-{YYYYMMDD}-{slug}.md)
300
270
 
301
271
  Quick note. Minimal structure:
@@ -392,8 +362,6 @@ store_knowhow { operation: "add", type: "template", title: "...", description: "
392
362
 
393
363
  ## Part D: Learning Insights Container (specs/learnings.md)
394
364
 
395
- A special container file at `.workflow/specs/learnings.md` holds multiple `<spec-entry>` sub-entries for atomic learning insights. This replaces the former `lessons.jsonl` approach.
396
-
397
365
  ### Container Format
398
366
 
399
367
  ```markdown
@@ -1,277 +1,277 @@
1
- # Learn Workflow
2
-
3
- Atomic insight capture, search, and retrieval. Lightweight gstack-style "eureka moment" log that complements the retrospective workflow: where retrospective extracts insights from completed phases in bulk, `manage-learn` captures one insight at a time during active work.
4
-
5
- Storage:
6
- - `.workflow/specs/learnings.md` — append-only container of `<spec-entry>` sub-entries (shared with retrospective output)
7
- - Auto-indexed by WikiIndexer (no manual index required)
8
-
9
- **Shared store rationale:** Manual captures (`source: "manual"`), tips (`source: "tip"`), retrospective-distilled insights (`source: "retrospective"`, `lens: <name>` from `quality-retrospective`), and learn-retro insights (`source: "retro-git"` or `source: "retro-decision"` from `learn-retro`) all live in the same store so search and list see the entire knowledge corpus. The `source` field disambiguates origin.
10
-
11
- This workflow does NOT spawn sub-agents; it may invoke maestro CLI utilities (e.g. `maestro wiki search`, `maestro wiki list`) for list/search subcommands. The core capture flow is a thin file operation: parse → infer → append → confirm.
12
-
13
- ---
14
-
15
- ## Prerequisites
16
-
17
- - `.workflow/` initialized (`.workflow/state.json` exists). If missing, error E001.
18
- - The `specs/` directory and `learnings.md` are created on first use; do not require them to exist upfront.
19
-
20
- ---
21
-
22
- ## Argument Shape
23
-
24
- ```
25
- /manage-learn "<insight text>" → capture, infer category, auto-link phase
26
- /manage-learn "<insight>" --category pattern --keywords auth,jwt → capture with explicit category and keywords
27
- /manage-learn list → show recent 20 insights
28
- /manage-learn list --keywords auth → filtered list
29
- /manage-learn search <query> → search via maestro wiki search
30
- /manage-learn show <INS-id> → full insight + linked phase context
31
- ```
32
-
33
- | Flag | Effect |
34
- |------|--------|
35
- | `--category <name>` | One of: pattern, antipattern, decision, tool, gotcha, technique, tip. Default: inferred (tip mode defaults to `tip`). |
36
- | `--keywords t1,t2` | Comma-separated keywords. Insight mode implicitly adds `manual`, tip mode implicitly adds `tip`. |
37
- | `--phase <N>` | Override auto-detected phase link. Use `--phase 0` to force "no phase". |
38
- | `--confidence <level>` | high / medium / low. Default: medium (insight), low (tip). |
39
- | `--lens <name>` | Filter by retrospective lens: technical, process, quality, decision, git (list/search only). |
40
- | `--limit <N>` | List mode row limit (default 20). |
41
-
42
- ---
43
-
44
- ## Stage 1: parse_input
45
-
46
- ```
47
- Verify .workflow/ exists (else E001). Route by first token:
48
- "list" → list | "search" → search (next token = query) | "show" → show (next token = INS-id)
49
- "tip" → tip capture (source="tip", category="tip", confidence="low", implicit keyword "tip")
50
- else → capture mode (full quoted text = insight body)
51
- Empty args → AskUserQuestion. Invalid --category → E002.
52
- ```
53
-
54
- ---
55
-
56
- ## Stage 2: capture mode
57
-
58
- ### Step 2.1: Bootstrap storage
59
-
60
- ```bash
61
- SPECS_DIR=".workflow/specs"
62
- INSIGHTS_FILE="$SPECS_DIR/learnings.md"
63
-
64
- mkdir -p "$SPECS_DIR"
65
-
66
- if [ ! -f "$INSIGHTS_FILE" ]; then
67
- cat > "$INSIGHTS_FILE" << 'EOF'
68
- ---
69
- title: "Learning Insights"
70
- type: spec
71
- roles: [implement]
72
- tags: [insights, learning]
73
- created: $(date -u +%Y-%m-%dT%H:%M:%SZ)
74
- ---
75
- # Learning Insights
76
-
77
- Atomic insights captured during active work.
78
-
79
- ## Entries
80
-
81
- EOF
82
- fi
83
- ```
84
-
85
- ### Step 2.2: Generate ID
86
-
87
- `INS-{8 lowercase hex chars}` from a stable hash of `(insight_text + timestamp)`. Re-running with the same text produces a different id (timestamp differs), so accidental duplicates are still appended — duplicate detection is the user's job at search time.
88
-
89
- ### Step 2.3: Auto-detect phase link
90
-
91
- Unless `--phase` is set:
92
- ```
93
- From .workflow/state.json artifacts, detect current phase:
94
- 1. Find first artifact with type=execute, status=in_progress
95
- 2. Else find first phase without a completed execute artifact
96
- 3. Resolve phase_slug from matching artifact (fallback: "phase-{N}")
97
- If no state.json → phase=null, phase_slug=null
98
- ```
99
-
100
- If `--phase 0` is passed, force `phase = null, phase_slug = null` regardless.
101
-
102
- ### Step 2.4: Infer category (if --category not set)
103
-
104
- Simple keyword heuristics — no LLM call. Match the insight text (lowercased) against keyword sets in priority order:
105
-
106
- | Category | Keywords (any match wins) |
107
- |----------|---------------------------|
108
- | antipattern | "avoid", "don't", "never", "anti-pattern", "antipattern", "bug", "broken", "fails", "wrong" |
109
- | gotcha | "gotcha", "surprise", "unexpected", "hidden", "easy to miss", "watch out", "footgun" |
110
- | decision | "decided", "chose", "rationale", "trade-off", "tradeoff", "instead of", "rejected" |
111
- | tool | "library", "package", "tool", "cli", "framework", "version" |
112
- | pattern | "pattern", "convention", "always", "should", "use", "prefer", "standardize" |
113
- | technique | (default fallback) |
114
-
115
- First match wins. If nothing matches, category = `technique`.
116
-
117
- ### Step 2.5: Build spec-entry
118
-
119
- ```
120
- entry = <spec-entry
121
- category="{category}"
122
- keywords="{category},{parsed --keywords values joined by comma}"
123
- date="{YYYY-MM-DD}"
124
- id="INS-{hex}"
125
- source="manual"
126
- >
127
-
128
- ### {title: first 80 chars of insight text, truncated on word boundary}
129
-
130
- {full insight text}
131
-
132
- - **Phase**: {phase or "none"} ({phase_slug or "—"})
133
- - **Confidence**: {--confidence value or "medium"}
134
- - **Tags**: {parsed --keywords values + ["manual"]}
135
-
136
- </spec-entry>
137
- ```
138
-
139
- ### Step 2.6: Persist
140
-
141
- Append the `<spec-entry>` block to `.workflow/specs/learnings.md`.
142
-
143
- WikiIndexer auto-indexes the entry — no manual index update required.
144
-
145
- ### Step 2.7: Confirmation banner
146
-
147
- Display: ID, category, confidence, tags, phase (+slug if present), title, file path, and hints for `list` / `search` commands.
148
-
149
- ---
150
-
151
- ## Stage 3: list mode
152
-
153
- ### Step 3.1: Read entries
154
-
155
- Query via `maestro wiki list --type knowhow --role implement --json`. Filter by `--keywords`, `--category`, `--phase`, `--lens` flags. Sort by timestamp descending. Limit to 20 (or `--limit N`).
156
-
157
- ### Step 3.2: Display table
158
-
159
- ```
160
- === KNOWHOW INSIGHTS ({shown}/{total}) ===
161
-
162
- ID Category Phase Conf Tags Title
163
- ────────────── ────────── ────── ───── ─────────────────── ────────────────────────────
164
- INS-a1b2c3d4 pattern 1 high auth,jwt,security JWT refresh tokens must rota...
165
- INS-b2c3d4e5 gotcha — med redis Redis MULTI not transactional...
166
- INS-c3d4e5f6 decision 2 high manual,arch Chose Express over Fastify b...
167
- ...
168
-
169
- Filters: {active filters or "none"}
170
-
171
- View: Skill({ skill: "manage-learn", args: "show <INS-id>" })
172
- Search: Skill({ skill: "manage-learn", args: "search <query>" })
173
- Capture: Skill({ skill: "manage-learn", args: "<insight text>" })
174
- ```
175
-
176
- If empty:
177
- ```
178
- No insights yet.
179
- Capture your first: Skill({ skill: "manage-learn", args: "\"...\"" })
180
- ```
181
-
182
- ---
183
-
184
- ## Stage 4: search mode
185
-
186
- ### Step 4.1: Validate query
187
-
188
- Next token after "search". Empty → AskUserQuestion.
189
-
190
- ### Step 4.2: Search via wiki
191
-
192
- Execute `maestro wiki search "<query>" --type knowhow --json`. Results are ranked by BM25 relevance. Sort by rank desc, then date desc.
193
-
194
- ### Step 4.3: Display results
195
-
196
- ```
197
- === SEARCH RESULTS for "{query}" — {count} match{es} ===
198
-
199
- [{INS-id}] [{category}] phase {phase or "—"} ({source})
200
- {title}
201
- Tags: {tags}
202
- Captured: {captured_at}
203
-
204
- [{INS-id}] ...
205
- ...
206
-
207
- View full: Skill({ skill: "manage-learn", args: "show <INS-id>" })
208
- ```
209
-
210
- If no matches:
211
- ```
212
- No insights match "{query}".
213
- List all: Skill({ skill: "manage-learn", args: "list" })
214
- ```
215
-
216
- ---
217
-
218
- ## Stage 5: show mode
219
-
220
- ### Step 5.1: Locate entry
221
-
222
- Find `<spec-entry>` matching target INS-id in `learnings.md`. Missing arg → E003. Not found → E004.
223
-
224
- ### Step 5.2: Resolve linked phase context (if any)
225
-
226
- If `entry.phase_slug` set (parsed from entry content): look up phase directory from `state.json` artifacts, read its `index.json` for title/status, check for `retrospective.md`.
227
-
228
- ### Step 5.3: Resolve routed artifact (if any)
229
-
230
- Map `routed_to` → path: `spec` → `.workflow/specs/{id}`, `issue` → `.workflow/issues/issues.jsonl#{id}`, `knowhow` → `.workflow/knowhow/{id}.md`.
231
-
232
- ### Step 5.4: Display
233
-
234
- ```
235
- =========================================
236
- INSIGHT: {entry.id}
237
- CATEGORY: {entry.category}
238
- CONFIDENCE: {entry.confidence}
239
- SOURCE: {entry.source}{IF entry.lens: " (" + entry.lens + " lens)"}
240
- =========================================
241
-
242
- CAPTURED: {entry.date}
243
- PHASE: {entry.phase or "none"}{IF phase_slug: " (" + phase_slug + ")"}
244
- TAGS: {entry.keywords}
245
-
246
- TITLE:
247
- {entry.title}
248
-
249
- SUMMARY:
250
- {entry.content}
251
-
252
- EVIDENCE:
253
- {parsed from entry content, or "(none — manual capture)"}
254
-
255
- ROUTED:
256
- Target: {entry.routed_to or "none"}
257
- ID: {entry.routed_id or "—"}
258
- Path: {routed_path or "—"}
259
-
260
- {IF phase_context:}
261
- PHASE CONTEXT:
262
- Title: {phase_context.title}
263
- Status: {phase_context.status}
264
- Retrospective: {phase_context.retrospective_exists ? "yes" : "no"}
265
- =========================================
266
- ```
267
-
268
- ---
269
-
270
- ## Relationship to other workflows
271
-
272
- | Workflow | Relationship |
273
- |----------|--------------|
274
- | `quality-retrospective` | Producer. Appends `<spec-entry>` to the same `specs/learnings.md` with `source: "retrospective"` and a populated `lens` field. |
275
- | `manage-knowhow-capture` | Sibling. Captures session state for recovery; `learn` captures timeless insights. Both write to `.workflow/knowhow/` with different prefixes. |
276
- | `phase-transition` | Reader (informally). Phase-transition's free-form `.workflow/specs/learnings.md` is a distinct file with a different audience; do not merge them. |
277
- | `maestro-plan` | Future consumer. Should query via `maestro wiki search` or `maestro wiki list --type knowhow --role implement` to inform planning decisions. (Out of scope for this command.) |
1
+ # Learn Workflow
2
+
3
+ Atomic insight capture, search, and retrieval. Lightweight gstack-style "eureka moment" log that complements the retrospective workflow: where retrospective extracts insights from completed phases in bulk, `manage-learn` captures one insight at a time during active work.
4
+
5
+ Storage:
6
+ - `.workflow/specs/learnings.md` — append-only container of `<spec-entry>` sub-entries (shared with retrospective output)
7
+ - Auto-indexed by WikiIndexer (no manual index required)
8
+
9
+ **Shared store rationale:** Manual captures (`source: "manual"`), tips (`source: "tip"`), retrospective-distilled insights (`source: "retrospective"`, `lens: <name>` from `quality-retrospective`), and learn-retro insights (`source: "retro-git"` or `source: "retro-decision"` from `learn-retro`) all live in the same store so search and list see the entire knowledge corpus. The `source` field disambiguates origin.
10
+
11
+ This workflow does NOT spawn sub-agents; it may invoke maestro CLI utilities (e.g. `maestro wiki search`, `maestro wiki list`) for list/search subcommands. The core capture flow is a thin file operation: parse → infer → append → confirm.
12
+
13
+ ---
14
+
15
+ ## Prerequisites
16
+
17
+ - `.workflow/` initialized (`.workflow/state.json` exists). If missing, error E001.
18
+ - The `specs/` directory and `learnings.md` are created on first use; do not require them to exist upfront.
19
+
20
+ ---
21
+
22
+ ## Argument Shape
23
+
24
+ ```
25
+ /manage-learn "<insight text>" → capture, infer category, auto-link phase
26
+ /manage-learn "<insight>" --category pattern --keywords auth,jwt → capture with explicit category and keywords
27
+ /manage-learn list → show recent 20 insights
28
+ /manage-learn list --keywords auth → filtered list
29
+ /manage-learn search <query> → search via maestro wiki search
30
+ /manage-learn show <INS-id> → full insight + linked phase context
31
+ ```
32
+
33
+ | Flag | Effect |
34
+ |------|--------|
35
+ | `--category <name>` | One of: pattern, antipattern, decision, tool, gotcha, technique, tip. Default: inferred (tip mode defaults to `tip`). |
36
+ | `--keywords t1,t2` | Comma-separated keywords. Insight mode implicitly adds `manual`, tip mode implicitly adds `tip`. |
37
+ | `--phase <N>` | Override auto-detected phase link. Use `--phase 0` to force "no phase". |
38
+ | `--confidence <level>` | high / medium / low. Default: medium (insight), low (tip). |
39
+ | `--lens <name>` | Filter by retrospective lens: technical, process, quality, decision, git (list/search only). |
40
+ | `--limit <N>` | List mode row limit (default 20). |
41
+
42
+ ---
43
+
44
+ ## Stage 1: parse_input
45
+
46
+ ```
47
+ Verify .workflow/ exists (else E001). Route by first token:
48
+ "list" → list | "search" → search (next token = query) | "show" → show (next token = INS-id)
49
+ "tip" → tip capture (source="tip", category="tip", confidence="low", implicit keyword "tip")
50
+ else → capture mode (full quoted text = insight body)
51
+ Empty args → AskUserQuestion. Invalid --category → E002.
52
+ ```
53
+
54
+ ---
55
+
56
+ ## Stage 2: capture mode
57
+
58
+ ### Step 2.1: Bootstrap storage
59
+
60
+ ```bash
61
+ SPECS_DIR=".workflow/specs"
62
+ INSIGHTS_FILE="$SPECS_DIR/learnings.md"
63
+
64
+ mkdir -p "$SPECS_DIR"
65
+
66
+ if [ ! -f "$INSIGHTS_FILE" ]; then
67
+ cat > "$INSIGHTS_FILE" << 'EOF'
68
+ ---
69
+ title: "Learning Insights"
70
+ type: spec
71
+ roles: [implement]
72
+ tags: [insights, learning]
73
+ created: $(date -u +%Y-%m-%dT%H:%M:%SZ)
74
+ ---
75
+ # Learning Insights
76
+
77
+ Atomic insights captured during active work.
78
+
79
+ ## Entries
80
+
81
+ EOF
82
+ fi
83
+ ```
84
+
85
+ ### Step 2.2: Generate ID
86
+
87
+ `INS-{8 lowercase hex chars}` from a stable hash of `(insight_text + timestamp)`. Re-running with the same text produces a different id (timestamp differs), so accidental duplicates are still appended — duplicate detection is the user's job at search time.
88
+
89
+ ### Step 2.3: Auto-detect phase link
90
+
91
+ Unless `--phase` is set:
92
+ ```
93
+ From .workflow/state.json artifacts, detect current phase:
94
+ 1. Find first artifact with type=execute, status=in_progress
95
+ 2. Else find first phase without a completed execute artifact
96
+ 3. Resolve phase_slug from matching artifact (fallback: "phase-{N}")
97
+ If no state.json → phase=null, phase_slug=null
98
+ ```
99
+
100
+ If `--phase 0` is passed, force `phase = null, phase_slug = null` regardless.
101
+
102
+ ### Step 2.4: Infer category (if --category not set)
103
+
104
+ Simple keyword heuristics — no LLM call. Match the insight text (lowercased) against keyword sets in priority order:
105
+
106
+ | Category | Keywords (any match wins) |
107
+ |----------|---------------------------|
108
+ | antipattern | "avoid", "don't", "never", "anti-pattern", "antipattern", "bug", "broken", "fails", "wrong" |
109
+ | gotcha | "gotcha", "surprise", "unexpected", "hidden", "easy to miss", "watch out", "footgun" |
110
+ | decision | "decided", "chose", "rationale", "trade-off", "tradeoff", "instead of", "rejected" |
111
+ | tool | "library", "package", "tool", "cli", "framework", "version" |
112
+ | pattern | "pattern", "convention", "always", "should", "use", "prefer", "standardize" |
113
+ | technique | (default fallback) |
114
+
115
+ First match wins. If nothing matches, category = `technique`.
116
+
117
+ ### Step 2.5: Build spec-entry
118
+
119
+ ```
120
+ entry = <spec-entry
121
+ category="{category}"
122
+ keywords="{category},{parsed --keywords values joined by comma}"
123
+ date="{YYYY-MM-DD}"
124
+ id="INS-{hex}"
125
+ source="manual"
126
+ >
127
+
128
+ ### {title: first 80 chars of insight text, truncated on word boundary}
129
+
130
+ {full insight text}
131
+
132
+ - **Phase**: {phase or "none"} ({phase_slug or "—"})
133
+ - **Confidence**: {--confidence value or "medium"}
134
+ - **Tags**: {parsed --keywords values + ["manual"]}
135
+
136
+ </spec-entry>
137
+ ```
138
+
139
+ ### Step 2.6: Persist
140
+
141
+ Append the `<spec-entry>` block to `.workflow/specs/learnings.md`.
142
+
143
+ WikiIndexer auto-indexes the entry — no manual index update required.
144
+
145
+ ### Step 2.7: Confirmation banner
146
+
147
+ Display: ID, category, confidence, tags, phase (+slug if present), title, file path, and hints for `list` / `search` commands.
148
+
149
+ ---
150
+
151
+ ## Stage 3: list mode
152
+
153
+ ### Step 3.1: Read entries
154
+
155
+ Query via `maestro wiki list --type knowhow --role implement --json`. Filter by `--keywords`, `--category`, `--phase`, `--lens` flags. Sort by timestamp descending. Limit to 20 (or `--limit N`).
156
+
157
+ ### Step 3.2: Display table
158
+
159
+ ```
160
+ === KNOWHOW INSIGHTS ({shown}/{total}) ===
161
+
162
+ ID Category Phase Conf Tags Title
163
+ ────────────── ────────── ────── ───── ─────────────────── ────────────────────────────
164
+ INS-a1b2c3d4 pattern 1 high auth,jwt,security JWT refresh tokens must rota...
165
+ INS-b2c3d4e5 gotcha — med redis Redis MULTI not transactional...
166
+ INS-c3d4e5f6 decision 2 high manual,arch Chose Express over Fastify b...
167
+ ...
168
+
169
+ Filters: {active filters or "none"}
170
+
171
+ View: Skill({ skill: "manage-learn", args: "show <INS-id>" })
172
+ Search: Skill({ skill: "manage-learn", args: "search <query>" })
173
+ Capture: Skill({ skill: "manage-learn", args: "<insight text>" })
174
+ ```
175
+
176
+ If empty:
177
+ ```
178
+ No insights yet.
179
+ Capture your first: Skill({ skill: "manage-learn", args: "\"...\"" })
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Stage 4: search mode
185
+
186
+ ### Step 4.1: Validate query
187
+
188
+ Next token after "search". Empty → AskUserQuestion.
189
+
190
+ ### Step 4.2: Search via wiki
191
+
192
+ Execute `maestro wiki search "<query>" --type knowhow --json`. Results are ranked by BM25 relevance. Sort by rank desc, then date desc.
193
+
194
+ ### Step 4.3: Display results
195
+
196
+ ```
197
+ === SEARCH RESULTS for "{query}" — {count} match{es} ===
198
+
199
+ [{INS-id}] [{category}] phase {phase or "—"} ({source})
200
+ {title}
201
+ Tags: {tags}
202
+ Captured: {captured_at}
203
+
204
+ [{INS-id}] ...
205
+ ...
206
+
207
+ View full: Skill({ skill: "manage-learn", args: "show <INS-id>" })
208
+ ```
209
+
210
+ If no matches:
211
+ ```
212
+ No insights match "{query}".
213
+ List all: Skill({ skill: "manage-learn", args: "list" })
214
+ ```
215
+
216
+ ---
217
+
218
+ ## Stage 5: show mode
219
+
220
+ ### Step 5.1: Locate entry
221
+
222
+ Find `<spec-entry>` matching target INS-id in `learnings.md`. Missing arg → E003. Not found → E004.
223
+
224
+ ### Step 5.2: Resolve linked phase context (if any)
225
+
226
+ If `entry.phase_slug` set (parsed from entry content): look up phase directory from `state.json` artifacts, read its `index.json` for title/status, check for `retrospective.md`.
227
+
228
+ ### Step 5.3: Resolve routed artifact (if any)
229
+
230
+ Map `routed_to` → path: `spec` → `.workflow/specs/{id}`, `issue` → `.workflow/issues/issues.jsonl#{id}`, `knowhow` → `.workflow/knowhow/{id}.md`.
231
+
232
+ ### Step 5.4: Display
233
+
234
+ ```
235
+ =========================================
236
+ INSIGHT: {entry.id}
237
+ CATEGORY: {entry.category}
238
+ CONFIDENCE: {entry.confidence}
239
+ SOURCE: {entry.source}{IF entry.lens: " (" + entry.lens + " lens)"}
240
+ =========================================
241
+
242
+ CAPTURED: {entry.date}
243
+ PHASE: {entry.phase or "none"}{IF phase_slug: " (" + phase_slug + ")"}
244
+ TAGS: {entry.keywords}
245
+
246
+ TITLE:
247
+ {entry.title}
248
+
249
+ SUMMARY:
250
+ {entry.content}
251
+
252
+ EVIDENCE:
253
+ {parsed from entry content, or "(none — manual capture)"}
254
+
255
+ ROUTED:
256
+ Target: {entry.routed_to or "none"}
257
+ ID: {entry.routed_id or "—"}
258
+ Path: {routed_path or "—"}
259
+
260
+ {IF phase_context:}
261
+ PHASE CONTEXT:
262
+ Title: {phase_context.title}
263
+ Status: {phase_context.status}
264
+ Retrospective: {phase_context.retrospective_exists ? "yes" : "no"}
265
+ =========================================
266
+ ```
267
+
268
+ ---
269
+
270
+ ## Relationship to other workflows
271
+
272
+ | Workflow | Relationship |
273
+ |----------|--------------|
274
+ | `quality-retrospective` | Producer. Appends `<spec-entry>` to the same `specs/learnings.md` with `source: "retrospective"` and a populated `lens` field. |
275
+ | `manage-knowhow-capture` | Sibling. Captures session state for recovery; `learn` captures timeless insights. Both write to `.workflow/knowhow/` with different prefixes. |
276
+ | `phase-transition` | Reader (informally). Phase-transition's free-form `.workflow/specs/learnings.md` is a distinct file with a different audience; do not merge them. |
277
+ | `maestro-plan` | Future consumer. Should query via `maestro wiki search` or `maestro wiki list --type knowhow --role implement` to inform planning decisions. (Out of scope for this command.) |
@@ -1,20 +1,20 @@
1
- # Workflow: maestro-chain-execute [DEPRECATED]
2
-
3
- > **DEPRECATED**: This workflow has been replaced by the unified executor `maestro-ralph-execute`.
4
- > Both maestro and ralph sessions now use `maestro-ralph-execute` for step execution.
5
- > This file is kept for reference only and will be removed in a future version.
6
-
7
- ## Migration
8
-
9
- - Caller dispatching from `maestro.md` → use `Skill({ skill: "maestro-ralph-execute" })`
10
- - Resume from session → `Skill({ skill: "maestro-ralph-execute" })` (auto-discovers latest running session via `.workflow/.maestro/*/status.json`)
11
-
12
- ## References
13
-
14
- - `~/.maestro/workflows/maestro.md` — coordinator that creates sessions and dispatches to the unified executor
15
- - `~/.maestro/workflows/maestro-ralph-execute.md` — current canonical executor (handles both maestro static chains and ralph adaptive chains)
16
-
17
- The unified executor preserves all behaviour previously documented here:
18
- status.json persistence, TodoWrite dual-tracking, per-step engine selection (`Skill` vs `CLI`),
19
- context propagation across steps, post-step Gemini analysis for CLI steps,
20
- and retry/skip/abort on failure.
1
+ # Workflow: maestro-chain-execute [DEPRECATED]
2
+
3
+ > **DEPRECATED**: This workflow has been replaced by the unified executor `maestro-ralph-execute`.
4
+ > Both maestro and ralph sessions now use `maestro-ralph-execute` for step execution.
5
+ > This file is kept for reference only and will be removed in a future version.
6
+
7
+ ## Migration
8
+
9
+ - Caller dispatching from `maestro.md` → use `Skill({ skill: "maestro-ralph-execute" })`
10
+ - Resume from session → `Skill({ skill: "maestro-ralph-execute" })` (auto-discovers latest running session via `.workflow/.maestro/*/status.json`)
11
+
12
+ ## References
13
+
14
+ - `~/.maestro/workflows/maestro.md` — coordinator that creates sessions and dispatches to the unified executor
15
+ - `~/.maestro/workflows/maestro-ralph-execute.md` — current canonical executor (handles both maestro static chains and ralph adaptive chains)
16
+
17
+ The unified executor preserves all behaviour previously documented here:
18
+ status.json persistence, TodoWrite dual-tracking, per-step engine selection (`Skill` vs `CLI`),
19
+ context propagation across steps, post-step Gemini analysis for CLI steps,
20
+ and retry/skip/abort on failure.