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,346 +1,338 @@
1
- # Workflow: Issue Management
2
-
3
- CRUD operations and lifecycle management for project issues.
4
-
5
- ## Input
6
-
7
- - `$ARGUMENTS`: subcommand + options
8
- - Operates on `.workflow/issues/`
9
-
10
- ---
11
-
12
- ### Step 1: Parse Subcommand
13
-
14
- ```
15
- Extract SUBCOMMAND (first token) and ARGS (remaining) from $ARGUMENTS.
16
- Valid: create | list | status | update | close | link
17
- Missing/invalid → error with usage: /manage-issue <create|list|status|update|close|link> [options]
18
- ```
19
-
20
- ---
21
-
22
- ### Step 2: Validate Issues Directory
23
-
24
- ```
25
- Require .workflow/ exists → fatal if missing: "No project initialized. Run /maestro-init first."
26
- Auto-create if missing: .workflow/issues/, issues.jsonl, issue-history.jsonl
27
- ```
28
-
29
- ---
30
-
31
- ### Step 3: Route to Subcommand Handler
32
-
33
- ```
34
- Route: create→Step 4, list→Step 5, status→Step 6, update→Step 7, close→Step 8, link→Step 9
35
- ```
36
-
37
- ---
38
-
39
- ### Step 4: Create Issue
40
-
41
- Parse options from ARGS:
42
-
43
- ```
44
- Options:
45
- --title TEXT Issue title (required)
46
- --severity VALUE critical|high|medium|low (default: medium)
47
- --source VALUE planned|supplement|bug|review|verification|discovery|manual (default: manual)
48
- --phase VALUE Phase reference, e.g. "01-auth" (optional)
49
- --milestone VALUE Milestone reference, e.g. "MVP" (optional, auto-derived from state.json if omitted)
50
- --description TEXT Detailed description (optional, prompted if missing)
51
- --priority NUMBER 1-5, lower is higher priority (default: 3)
52
- --tags TAG1,TAG2 Comma-separated tags (optional)
53
-
54
- If --title is missing:
55
- AskUserQuestion({ question: "What is the issue title?" })
56
-
57
- Derive milestone_ref if not provided:
58
- IF --milestone not provided AND file_exists(".workflow/state.json"):
59
- milestone_ref = state.json.current_milestone
60
- ELSE:
61
- milestone_ref = --milestone value or null
62
- ```
63
-
64
- Generate issue ID:
65
-
66
- ```
67
- ID = ISS-{YYYYMMDD}-{NNN} where NNN = next available 3-digit sequence for today
68
- Scan both issues.jsonl and issue-history.jsonl to avoid collisions.
69
- ```
70
-
71
- Build issue record from template:
72
-
73
- ```json
74
- {
75
- "id": "{ID}",
76
- "title": "{TITLE}",
77
- "status": "open",
78
- "priority": {PRIORITY},
79
- "severity": "{SEVERITY}",
80
- "source": "{SOURCE}",
81
- "milestone_ref": "{MILESTONE_REF or null}",
82
- "phase_ref": "{PHASE_REF or null}",
83
- "gap_ref": null,
84
- "description": "{DESCRIPTION}",
85
- "fix_direction": "",
86
- "context": {
87
- "location": "",
88
- "suggested_fix": "",
89
- "notes": ""
90
- },
91
- "tags": ["{TAGS}"],
92
- "affected_components": [],
93
- "feedback": [],
94
- "issue_history": [
95
- {
96
- "timestamp": "{NOW_ISO}",
97
- "from_status": null,
98
- "to_status": "open",
99
- "actor": "user",
100
- "note": "Issue created"
101
- }
102
- ],
103
- "created_at": "{NOW_ISO}",
104
- "updated_at": "{NOW_ISO}",
105
- "resolved_at": null,
106
- "resolution": null
107
- }
108
- ```
109
-
110
- Write to storage:
111
-
112
- ```
113
- Append record as single JSONL line to .workflow/issues/issues.jsonl.
114
- Display confirmation: ID, title, status, severity.
115
- ```
116
-
117
- Ask for supplementary information:
118
-
119
- ```
120
- Prompt user for supplementary context (background, repro steps, related issues, notes).
121
- If provided → append supplement entry {content, stage:"post_creation", author:"user", created_at} to issue record.
122
- If empty → skip.
123
- ```
124
-
125
- Cross-milestone conflict check (for supplement issues):
126
-
127
- ```
128
- IF source == "supplement" AND milestone_ref set:
129
- Scan other milestones' plan.json for files_to_create[] that overlap with affected_components.
130
- If overlap found → warn about cross-milestone conflict, suggest minimal fix vs deferral.
131
- ```
132
-
133
- Suggest next steps:
134
-
135
- ```
136
- Suggest: status {ID}, link {ID} --task TASK-NNN, list
137
- ```
138
-
139
- ---
140
-
141
- ### Step 5: List Issues
142
-
143
- Parse filter options from ARGS:
144
-
145
- ```
146
- Options:
147
- --status VALUE Filter by status (open|in_progress|completed|failed|deferred)
148
- --phase VALUE Filter by phase_ref
149
- --milestone VALUE Filter by milestone_ref
150
- --severity VALUE Filter by severity (critical|high|medium|low)
151
- --source VALUE Filter by source
152
- --all Include closed issues from issue-history.jsonl
153
- ```
154
-
155
- Read and filter:
156
-
157
- ```
158
- Read issues.jsonl (+ issue-history.jsonl if --all).
159
- Apply matching filters: status, phase_ref (contains), severity, milestone_ref, source.
160
- Sort by priority (ascending), then severity (critical > high > medium > low).
161
- ```
162
-
163
- Display tabular output:
164
-
165
- ```
166
- ISSUES ({count} found):
167
- ---------------------------------------------------------------
168
- ID | Status | Sev | Pri | Title
169
- ---------------------------------------------------------------
170
- ISS-20260315-001 | open | high | 2 | Refresh token rotation
171
- ISS-20260315-002 | in_progress | medium | 3 | Missing input validation
172
- ---------------------------------------------------------------
173
-
174
- Filters applied: {list of active filters or "none"}
175
- ```
176
-
177
- If no issues found:
178
-
179
- ```
180
- No issues found{with applied filters}.
181
-
182
- Create one: Skill({ skill: "manage-issue", args: "create --title \"...\"" })
183
- Discover issues: Skill({ skill: "manage-issue-discover" })
184
- ```
185
-
186
- ---
187
-
188
- ### Step 6: Show Issue Status
189
-
190
- Parse issue ID from ARGS:
191
-
192
- ```
193
- Extract ISS-XXXXXXXX-NNN from ARGS (prompt if missing).
194
- Lookup in issues.jsonl, fallback to issue-history.jsonl → error if not found.
195
- ```
196
-
197
- Display full detail view:
198
-
199
- ```
200
- ====================================================
201
- ISSUE: {id}
202
- TITLE: {title}
203
- STATUS: {status} SEVERITY: {severity} PRIORITY: {priority}
204
- ====================================================
205
-
206
- SOURCE: {source}
207
- PHASE: {phase_ref or "none"}
208
- GAP REF: {gap_ref or "none"}
209
- CREATED: {created_at}
210
- UPDATED: {updated_at}
211
- RESOLVED: {resolved_at or "pending"}
212
-
213
- DESCRIPTION:
214
- {description}
215
-
216
- FIX DIRECTION:
217
- {fix_direction or "not specified"}
218
-
219
- CONTEXT:
220
- Location: {context.location or "not specified"}
221
- Suggested Fix: {context.suggested_fix or "none"}
222
- Notes: {context.notes or "none"}
223
-
224
- TAGS: {tags joined by ", " or "none"}
225
- AFFECTED: {affected_components joined by ", " or "none"}
226
-
227
- HISTORY:
228
- {for each entry in issue_history}
229
- [{timestamp}] {from_status} -> {to_status} ({actor}): {note}
230
- {/for}
231
-
232
- FEEDBACK:
233
- {for each entry in feedback}
234
- [{timestamp}] ({type}): {content}
235
- {/for}
236
- {or "none"}
237
-
238
- RESOLUTION:
239
- {resolution or "not resolved"}
240
- ====================================================
241
- ```
242
-
243
- Suggest next steps based on status:
244
-
245
- ```
246
- open → suggest: update --status in_progress, link --task
247
- in_progress → suggest: close --resolution, update --status deferred
248
- completed/failed/deferred → "This issue is archived."
249
- ```
250
-
251
- ---
252
-
253
- ### Step 7: Update Issue
254
-
255
- Parse issue ID and field updates from ARGS:
256
-
257
- ```
258
- Options:
259
- ISS-XXXXXXXX-NNN Issue ID (required, first positional arg)
260
- --status VALUE New status (open|in_progress)
261
- --priority NUMBER New priority (1-5)
262
- --severity VALUE New severity (critical|high|medium|low)
263
- --tags TAG1,TAG2 Replace tags
264
- --add-tag TAG Add a tag
265
- --phase VALUE Set phase_ref
266
- --milestone VALUE Set milestone_ref
267
- --fix-direction TEXT Set fix_direction
268
- --description TEXT Update description
269
- --note TEXT Add feedback entry (type=clarification)
270
- ```
271
-
272
- Process update:
273
-
274
- ```
275
- Find record by ID in issues.jsonl → error if not found.
276
- Apply each provided option to the corresponding field.
277
- If --status changed → append issue_history entry {timestamp, from_status, to_status, actor:"user"}.
278
- If --note provided → append feedback entry {timestamp, type:"clarification", content}.
279
- Set updated_at, rewrite issues.jsonl, display changed fields.
280
- ```
281
-
282
- ---
283
-
284
- ### Step 8: Close Issue
285
-
286
- Parse issue ID and resolution from ARGS:
287
-
288
- ```
289
- Options:
290
- ISS-XXXXXXXX-NNN Issue ID (required)
291
- --resolution TEXT Resolution description (required)
292
- --status VALUE Final status: completed|failed|deferred (default: completed)
293
- ```
294
-
295
- Process close:
296
-
297
- ```
298
- Find record by ID in issues.jsonl → error if not found.
299
- Prompt for --resolution if missing.
300
- Set status (default "completed"), resolved_at, resolution; append issue_history entry.
301
- Move record from issues.jsonl → issue-history.jsonl.
302
- Display: ID, final status, resolution.
303
- ```
304
-
305
- ---
306
-
307
- ### Step 9: Link Issue to Task
308
-
309
- Parse issue ID and task reference from ARGS:
310
-
311
- ```
312
- Options:
313
- ISS-XXXXXXXX-NNN Issue ID (required)
314
- --task TASK-NNN Task ID to link (required)
315
- ```
316
-
317
- Process bidirectional link:
318
-
319
- ```
320
- Find issue by ID in issues.jsonl → error if not found.
321
- Locate task file via artifact registry (.workflow/{path}/.task/{TASK_ID}.json)
322
- or scratch fallback (.workflow/scratch/*/.task/{TASK_ID}.json) → error if not found.
323
-
324
- Update issue: set gap_ref (if null), add TASK_ID to affected_components, append issue_history entry.
325
- Update task: append issue ID to "issue_refs" field.
326
-
327
- Display: linked pair, issue title, task path.
328
- Suggest: status {ISSUE_ID}, update --status in_progress.
329
- ```
330
-
331
- ---
332
-
333
- ## Output
334
-
335
- - **Storage**: `.workflow/issues/issues.jsonl` (active), `.workflow/issues/issue-history.jsonl` (closed)
336
- - **Format**: One JSON object per line (JSONL), append-friendly
337
- - **ID scheme**: `ISS-YYYYMMDD-NNN` (NNN auto-incremented per day)
338
-
339
- ## Quality Criteria
340
-
341
- - Issues directory auto-created if missing
342
- - ID generation scans both active and history files to avoid collisions
343
- - Status transitions recorded in issue_history
344
- - Close operation moves records from active to history JSONL
345
- - Link creates bidirectional references (issue -> task and task -> issue)
346
- - List output is filterable and sorted by priority/severity
1
+ # Workflow: Issue Management
2
+
3
+ CRUD operations and lifecycle management for project issues.
4
+
5
+ ## Input
6
+
7
+ - `$ARGUMENTS`: subcommand + options
8
+ - Operates on `.workflow/issues/`
9
+
10
+ ---
11
+
12
+ ### Step 1: Parse Subcommand
13
+
14
+ ```
15
+ Extract SUBCOMMAND (first token) and ARGS (remaining) from $ARGUMENTS.
16
+ Valid: create | list | status | update | close | link
17
+ Missing/invalid → error with usage: /manage-issue <create|list|status|update|close|link> [options]
18
+ ```
19
+
20
+ ---
21
+
22
+ ### Step 2: Validate Issues Directory
23
+
24
+ ```
25
+ Require .workflow/ exists → fatal if missing: "No project initialized. Run /maestro-init first."
26
+ Auto-create if missing: .workflow/issues/, issues.jsonl, issue-history.jsonl
27
+ ```
28
+
29
+ ---
30
+
31
+ ### Step 3: Route to Subcommand Handler
32
+
33
+ ```
34
+ Route: create→Step 4, list→Step 5, status→Step 6, update→Step 7, close→Step 8, link→Step 9
35
+ ```
36
+
37
+ ---
38
+
39
+ ### Step 4: Create Issue
40
+
41
+ Parse options from ARGS:
42
+
43
+ ```
44
+ Options:
45
+ --title TEXT Issue title (required)
46
+ --severity VALUE critical|high|medium|low (default: medium)
47
+ --source VALUE planned|supplement|bug|review|verification|discovery|manual (default: manual)
48
+ --phase VALUE Phase reference, e.g. "01-auth" (optional)
49
+ --milestone VALUE Milestone reference, e.g. "MVP" (optional, auto-derived from state.json if omitted)
50
+ --description TEXT Detailed description (optional, prompted if missing)
51
+ --priority NUMBER 1-5, lower is higher priority (default: 3)
52
+ --tags TAG1,TAG2 Comma-separated tags (optional)
53
+
54
+ If --title is missing:
55
+ AskUserQuestion({ question: "What is the issue title?" })
56
+
57
+ Derive milestone_ref if not provided:
58
+ IF --milestone not provided AND file_exists(".workflow/state.json"):
59
+ milestone_ref = state.json.current_milestone
60
+ ELSE:
61
+ milestone_ref = --milestone value or null
62
+ ```
63
+
64
+ Generate issue ID:
65
+
66
+ ```
67
+ ID = ISS-{YYYYMMDD}-{NNN} where NNN = next available 3-digit sequence for today
68
+ Scan both issues.jsonl and issue-history.jsonl to avoid collisions.
69
+ ```
70
+
71
+ Build issue record from template:
72
+
73
+ ```json
74
+ {
75
+ "id": "{ID}",
76
+ "title": "{TITLE}",
77
+ "status": "open",
78
+ "priority": {PRIORITY},
79
+ "severity": "{SEVERITY}",
80
+ "source": "{SOURCE}",
81
+ "milestone_ref": "{MILESTONE_REF or null}",
82
+ "phase_ref": "{PHASE_REF or null}",
83
+ "gap_ref": null,
84
+ "description": "{DESCRIPTION}",
85
+ "fix_direction": "",
86
+ "context": {
87
+ "location": "",
88
+ "suggested_fix": "",
89
+ "notes": ""
90
+ },
91
+ "tags": ["{TAGS}"],
92
+ "affected_components": [],
93
+ "feedback": [],
94
+ "issue_history": [
95
+ {
96
+ "timestamp": "{NOW_ISO}",
97
+ "from_status": null,
98
+ "to_status": "open",
99
+ "actor": "user",
100
+ "note": "Issue created"
101
+ }
102
+ ],
103
+ "created_at": "{NOW_ISO}",
104
+ "updated_at": "{NOW_ISO}",
105
+ "resolved_at": null,
106
+ "resolution": null
107
+ }
108
+ ```
109
+
110
+ Write to storage:
111
+
112
+ ```
113
+ Append record as single JSONL line to .workflow/issues/issues.jsonl.
114
+ Display confirmation: ID, title, status, severity.
115
+ ```
116
+
117
+ Ask for supplementary information:
118
+
119
+ ```
120
+ Prompt user for supplementary context (background, repro steps, related issues, notes).
121
+ If provided → append supplement entry {content, stage:"post_creation", author:"user", created_at} to issue record.
122
+ If empty → skip.
123
+ ```
124
+
125
+ Cross-milestone conflict check (for supplement issues):
126
+
127
+ ```
128
+ IF source == "supplement" AND milestone_ref set:
129
+ Scan other milestones' plan.json for files_to_create[] that overlap with affected_components.
130
+ If overlap found → warn about cross-milestone conflict, suggest minimal fix vs deferral.
131
+ ```
132
+
133
+ Suggest next steps:
134
+
135
+ ```
136
+ Suggest: status {ID}, link {ID} --task TASK-NNN, list
137
+ ```
138
+
139
+ ---
140
+
141
+ ### Step 5: List Issues
142
+
143
+ Parse filter options from ARGS:
144
+
145
+ ```
146
+ Options:
147
+ --status VALUE Filter by status (open|in_progress|completed|failed|deferred)
148
+ --phase VALUE Filter by phase_ref
149
+ --milestone VALUE Filter by milestone_ref
150
+ --severity VALUE Filter by severity (critical|high|medium|low)
151
+ --source VALUE Filter by source
152
+ --all Include closed issues from issue-history.jsonl
153
+ ```
154
+
155
+ Read and filter:
156
+
157
+ ```
158
+ Read issues.jsonl (+ issue-history.jsonl if --all).
159
+ Apply matching filters: status, phase_ref (contains), severity, milestone_ref, source.
160
+ Sort by priority (ascending), then severity (critical > high > medium > low).
161
+ ```
162
+
163
+ Display tabular output:
164
+
165
+ ```
166
+ ISSUES ({count} found):
167
+ ---------------------------------------------------------------
168
+ ID | Status | Sev | Pri | Title
169
+ ---------------------------------------------------------------
170
+ ISS-20260315-001 | open | high | 2 | Refresh token rotation
171
+ ISS-20260315-002 | in_progress | medium | 3 | Missing input validation
172
+ ---------------------------------------------------------------
173
+
174
+ Filters applied: {list of active filters or "none"}
175
+ ```
176
+
177
+ If no issues found:
178
+
179
+ ```
180
+ No issues found{with applied filters}.
181
+
182
+ Create one: Skill({ skill: "manage-issue", args: "create --title \"...\"" })
183
+ Discover issues: Skill({ skill: "manage-issue-discover" })
184
+ ```
185
+
186
+ ---
187
+
188
+ ### Step 6: Show Issue Status
189
+
190
+ Parse issue ID from ARGS:
191
+
192
+ ```
193
+ Extract ISS-XXXXXXXX-NNN from ARGS (prompt if missing).
194
+ Lookup in issues.jsonl, fallback to issue-history.jsonl → error if not found.
195
+ ```
196
+
197
+ Display full detail view:
198
+
199
+ ```
200
+ ====================================================
201
+ ISSUE: {id}
202
+ TITLE: {title}
203
+ STATUS: {status} SEVERITY: {severity} PRIORITY: {priority}
204
+ ====================================================
205
+
206
+ SOURCE: {source}
207
+ PHASE: {phase_ref or "none"}
208
+ GAP REF: {gap_ref or "none"}
209
+ CREATED: {created_at}
210
+ UPDATED: {updated_at}
211
+ RESOLVED: {resolved_at or "pending"}
212
+
213
+ DESCRIPTION:
214
+ {description}
215
+
216
+ FIX DIRECTION:
217
+ {fix_direction or "not specified"}
218
+
219
+ CONTEXT:
220
+ Location: {context.location or "not specified"}
221
+ Suggested Fix: {context.suggested_fix or "none"}
222
+ Notes: {context.notes or "none"}
223
+
224
+ TAGS: {tags joined by ", " or "none"}
225
+ AFFECTED: {affected_components joined by ", " or "none"}
226
+
227
+ HISTORY:
228
+ {for each entry in issue_history}
229
+ [{timestamp}] {from_status} -> {to_status} ({actor}): {note}
230
+ {/for}
231
+
232
+ FEEDBACK:
233
+ {for each entry in feedback}
234
+ [{timestamp}] ({type}): {content}
235
+ {/for}
236
+ {or "none"}
237
+
238
+ RESOLUTION:
239
+ {resolution or "not resolved"}
240
+ ====================================================
241
+ ```
242
+
243
+ Suggest next steps based on status:
244
+
245
+ ```
246
+ open → suggest: update --status in_progress, link --task
247
+ in_progress → suggest: close --resolution, update --status deferred
248
+ completed/failed/deferred → "This issue is archived."
249
+ ```
250
+
251
+ ---
252
+
253
+ ### Step 7: Update Issue
254
+
255
+ Parse issue ID and field updates from ARGS:
256
+
257
+ ```
258
+ Options:
259
+ ISS-XXXXXXXX-NNN Issue ID (required, first positional arg)
260
+ --status VALUE New status (open|in_progress)
261
+ --priority NUMBER New priority (1-5)
262
+ --severity VALUE New severity (critical|high|medium|low)
263
+ --tags TAG1,TAG2 Replace tags
264
+ --add-tag TAG Add a tag
265
+ --phase VALUE Set phase_ref
266
+ --milestone VALUE Set milestone_ref
267
+ --fix-direction TEXT Set fix_direction
268
+ --description TEXT Update description
269
+ --note TEXT Add feedback entry (type=clarification)
270
+ ```
271
+
272
+ Process update:
273
+
274
+ ```
275
+ Find record by ID in issues.jsonl → error if not found.
276
+ Apply each provided option to the corresponding field.
277
+ If --status changed → append issue_history entry {timestamp, from_status, to_status, actor:"user"}.
278
+ If --note provided → append feedback entry {timestamp, type:"clarification", content}.
279
+ Set updated_at, rewrite issues.jsonl, display changed fields.
280
+ ```
281
+
282
+ ---
283
+
284
+ ### Step 8: Close Issue
285
+
286
+ Parse issue ID and resolution from ARGS:
287
+
288
+ ```
289
+ Options:
290
+ ISS-XXXXXXXX-NNN Issue ID (required)
291
+ --resolution TEXT Resolution description (required)
292
+ --status VALUE Final status: completed|failed|deferred (default: completed)
293
+ ```
294
+
295
+ Process close:
296
+
297
+ ```
298
+ Find record by ID in issues.jsonl → error if not found.
299
+ Prompt for --resolution if missing.
300
+ Set status (default "completed"), resolved_at, resolution; append issue_history entry.
301
+ Move record from issues.jsonl → issue-history.jsonl.
302
+ Display: ID, final status, resolution.
303
+ ```
304
+
305
+ ---
306
+
307
+ ### Step 9: Link Issue to Task
308
+
309
+ Parse issue ID and task reference from ARGS:
310
+
311
+ ```
312
+ Options:
313
+ ISS-XXXXXXXX-NNN Issue ID (required)
314
+ --task TASK-NNN Task ID to link (required)
315
+ ```
316
+
317
+ Process bidirectional link:
318
+
319
+ ```
320
+ Find issue by ID in issues.jsonl → error if not found.
321
+ Locate task file via artifact registry (.workflow/{path}/.task/{TASK_ID}.json)
322
+ or scratch fallback (.workflow/scratch/*/.task/{TASK_ID}.json) → error if not found.
323
+
324
+ Update issue: set gap_ref (if null), add TASK_ID to affected_components, append issue_history entry.
325
+ Update task: append issue ID to "issue_refs" field.
326
+
327
+ Display: linked pair, issue title, task path.
328
+ Suggest: status {ISSUE_ID}, update --status in_progress.
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Output
334
+
335
+ - **Storage**: `.workflow/issues/issues.jsonl` (active), `.workflow/issues/issue-history.jsonl` (closed)
336
+ - **Format**: One JSON object per line (JSONL), append-friendly
337
+ - **ID scheme**: `ISS-YYYYMMDD-NNN` (NNN auto-incremented per day)
338
+