maestro-flow 0.3.9 → 0.3.11

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 (281) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-analyze.md +46 -3
  9. package/.claude/commands/maestro-coordinate.md +1 -3
  10. package/.claude/commands/maestro-execute.md +14 -0
  11. package/.claude/commands/maestro-plan.md +16 -0
  12. package/.claude/commands/manage-harvest.md +131 -131
  13. package/.claude/commands/manage-issue-discover.md +2 -2
  14. package/.claude/commands/manage-issue.md +5 -5
  15. package/.claude/commands/spec-add.md +67 -56
  16. package/.claude/commands/spec-load.md +66 -64
  17. package/.claude/commands/spec-setup.md +5 -9
  18. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  19. package/.codex/skills/learn-follow/SKILL.md +83 -0
  20. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  21. package/.codex/skills/learn-retro/SKILL.md +83 -0
  22. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  23. package/.codex/skills/maestro/SKILL.md +335 -0
  24. package/.codex/skills/maestro-analyze/SKILL.md +84 -75
  25. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  26. package/.codex/skills/maestro-chain/SKILL.md +233 -0
  27. package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
  28. package/.codex/skills/maestro-execute/SKILL.md +435 -438
  29. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  30. package/.codex/skills/maestro-init/SKILL.md +171 -167
  31. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  32. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  33. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  34. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  35. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  36. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  37. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  38. package/.codex/skills/maestro-plan/SKILL.md +66 -69
  39. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  40. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  41. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  42. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  43. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  44. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  45. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  46. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  47. package/.codex/skills/manage-issue/SKILL.md +80 -65
  48. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  49. package/.codex/skills/manage-learn/SKILL.md +190 -186
  50. package/.codex/skills/manage-memory/SKILL.md +95 -72
  51. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  52. package/.codex/skills/manage-status/SKILL.md +102 -89
  53. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  54. package/.codex/skills/quality-debug/SKILL.md +54 -66
  55. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  56. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  57. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  58. package/.codex/skills/quality-review/SKILL.md +93 -105
  59. package/.codex/skills/quality-sync/SKILL.md +101 -89
  60. package/.codex/skills/quality-test/SKILL.md +202 -198
  61. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  62. package/.codex/skills/spec-add/SKILL.md +58 -39
  63. package/.codex/skills/spec-load/SKILL.md +45 -40
  64. package/.codex/skills/spec-map/SKILL.md +180 -182
  65. package/.codex/skills/spec-setup/SKILL.md +94 -76
  66. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  67. package/.codex/skills/team-executor/SKILL.md +70 -112
  68. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  69. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  70. package/.codex/skills/team-review/SKILL.md +232 -225
  71. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  72. package/.codex/skills/team-testing/SKILL.md +242 -235
  73. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  74. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  75. package/README.md +14 -11
  76. package/README.zh-CN.md +14 -11
  77. package/chains/issue-lifecycle.json +13 -13
  78. package/chains/singles/issue-analyze.json +3 -3
  79. package/chains/singles/issue-execute.json +3 -3
  80. package/chains/singles/issue-plan.json +3 -3
  81. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
  82. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  84. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  85. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
  86. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  87. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  88. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  89. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  90. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  91. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  92. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  93. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
  94. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  95. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  96. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  97. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
  98. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  99. package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
  100. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
  101. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
  102. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  103. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  104. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  105. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  106. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  107. package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
  108. package/dashboard/dist-server/src/hooks/constants.js +151 -16
  109. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  110. package/dashboard/dist-server/src/types/index.d.ts +5 -0
  111. package/dist/src/commands/collab.d.ts +1 -34
  112. package/dist/src/commands/collab.d.ts.map +1 -1
  113. package/dist/src/commands/collab.js +8 -76
  114. package/dist/src/commands/collab.js.map +1 -1
  115. package/dist/src/commands/hooks.d.ts +5 -1
  116. package/dist/src/commands/hooks.d.ts.map +1 -1
  117. package/dist/src/commands/hooks.js +115 -10
  118. package/dist/src/commands/hooks.js.map +1 -1
  119. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
  120. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  121. package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
  122. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  123. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  124. package/dist/src/commands/install-ui/InstallExecution.js +5 -1
  125. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  126. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  127. package/dist/src/commands/install-ui/InstallFlow.js +7 -3
  128. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  129. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
  130. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  131. package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
  132. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  133. package/dist/src/commands/spec.d.ts.map +1 -1
  134. package/dist/src/commands/spec.js +7 -2
  135. package/dist/src/commands/spec.js.map +1 -1
  136. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
  137. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
  138. package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
  139. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
  140. package/dist/src/hooks/constants.d.ts +92 -12
  141. package/dist/src/hooks/constants.d.ts.map +1 -1
  142. package/dist/src/hooks/constants.js +151 -16
  143. package/dist/src/hooks/constants.js.map +1 -1
  144. package/dist/src/hooks/guards/index.d.ts +2 -0
  145. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  146. package/dist/src/hooks/guards/index.js +2 -0
  147. package/dist/src/hooks/guards/index.js.map +1 -1
  148. package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
  149. package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
  150. package/dist/src/hooks/guards/preflight-guard.js +95 -0
  151. package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
  152. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  153. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  154. package/dist/src/hooks/guards/spec-validator.js +66 -0
  155. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  156. package/dist/src/hooks/index.d.ts +1 -0
  157. package/dist/src/hooks/index.d.ts.map +1 -1
  158. package/dist/src/hooks/index.js +1 -0
  159. package/dist/src/hooks/index.js.map +1 -1
  160. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  161. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  162. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  163. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  164. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  165. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  166. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  167. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  168. package/dist/src/hooks/preflight-core.d.ts +37 -0
  169. package/dist/src/hooks/preflight-core.d.ts.map +1 -0
  170. package/dist/src/hooks/preflight-core.js +86 -0
  171. package/dist/src/hooks/preflight-core.js.map +1 -0
  172. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  173. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  174. package/dist/src/hooks/spec-bridge.js +97 -0
  175. package/dist/src/hooks/spec-bridge.js.map +1 -0
  176. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  177. package/dist/src/hooks/spec-injector.js +18 -12
  178. package/dist/src/hooks/spec-injector.js.map +1 -1
  179. package/dist/src/hooks/statusline.d.ts +8 -17
  180. package/dist/src/hooks/statusline.d.ts.map +1 -1
  181. package/dist/src/hooks/statusline.js +269 -112
  182. package/dist/src/hooks/statusline.js.map +1 -1
  183. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  184. package/dist/src/i18n/locales/en.js +5 -0
  185. package/dist/src/i18n/locales/en.js.map +1 -1
  186. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  187. package/dist/src/i18n/locales/zh.js +5 -0
  188. package/dist/src/i18n/locales/zh.js.map +1 -1
  189. package/dist/src/i18n/types.d.ts +5 -0
  190. package/dist/src/i18n/types.d.ts.map +1 -1
  191. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  192. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  193. package/dist/src/team/phase-orchestrator.js +165 -0
  194. package/dist/src/team/phase-orchestrator.js.map +1 -0
  195. package/dist/src/team/phase-types.d.ts +51 -0
  196. package/dist/src/team/phase-types.d.ts.map +1 -0
  197. package/dist/src/team/phase-types.js +41 -0
  198. package/dist/src/team/phase-types.js.map +1 -0
  199. package/dist/src/tools/collab-adapter.d.ts +17 -0
  200. package/dist/src/tools/collab-adapter.d.ts.map +1 -1
  201. package/dist/src/tools/collab-adapter.js +138 -0
  202. package/dist/src/tools/collab-adapter.js.map +1 -1
  203. package/dist/src/tools/index.d.ts.map +1 -1
  204. package/dist/src/tools/index.js +6 -0
  205. package/dist/src/tools/index.js.map +1 -1
  206. package/dist/src/tools/merge-validator.d.ts +24 -0
  207. package/dist/src/tools/merge-validator.d.ts.map +1 -0
  208. package/dist/src/tools/merge-validator.js +220 -0
  209. package/dist/src/tools/merge-validator.js.map +1 -0
  210. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  211. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  212. package/dist/src/tools/spec-entry-parser.js +196 -0
  213. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  214. package/dist/src/tools/spec-init.d.ts.map +1 -1
  215. package/dist/src/tools/spec-init.js +66 -92
  216. package/dist/src/tools/spec-init.js.map +1 -1
  217. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  218. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  219. package/dist/src/tools/spec-keyword-index.js +101 -0
  220. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  221. package/dist/src/tools/spec-loader.d.ts +3 -3
  222. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  223. package/dist/src/tools/spec-loader.js +49 -23
  224. package/dist/src/tools/spec-loader.js.map +1 -1
  225. package/dist/src/tools/team-agents.d.ts +27 -0
  226. package/dist/src/tools/team-agents.d.ts.map +1 -0
  227. package/dist/src/tools/team-agents.js +362 -0
  228. package/dist/src/tools/team-agents.js.map +1 -0
  229. package/dist/src/tools/team-mailbox.d.ts +40 -0
  230. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  231. package/dist/src/tools/team-mailbox.js +384 -0
  232. package/dist/src/tools/team-mailbox.js.map +1 -0
  233. package/dist/src/tools/team-msg.d.ts +17 -8
  234. package/dist/src/tools/team-msg.d.ts.map +1 -1
  235. package/dist/src/tools/team-msg.js +110 -13
  236. package/dist/src/tools/team-msg.js.map +1 -1
  237. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  238. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  239. package/dist/src/tools/team-tasks-mcp.js +408 -0
  240. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  241. package/dist/src/types/index.d.ts +5 -0
  242. package/dist/src/types/index.d.ts.map +1 -1
  243. package/package.json +2 -1
  244. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
  245. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
  246. package/templates/search-tools.md +1 -1
  247. package/workflows/analyze.md +816 -816
  248. package/workflows/brainstorm.md +471 -471
  249. package/workflows/cli-tools-usage.md +44 -27
  250. package/workflows/codebase-rebuild.md +332 -332
  251. package/workflows/codebase-refresh.md +240 -240
  252. package/workflows/delegate-usage.md +3 -3
  253. package/workflows/execute.md +1 -1
  254. package/workflows/harvest.md +420 -420
  255. package/workflows/integration-test.md +343 -343
  256. package/workflows/issue-analyze.md +6 -2
  257. package/workflows/issue-discover.md +414 -414
  258. package/workflows/issue-execute.md +6 -3
  259. package/workflows/issue-plan.md +5 -2
  260. package/workflows/maestro-coordinate.codex.md +281 -470
  261. package/workflows/maestro-coordinate.md +14 -14
  262. package/workflows/maestro-link-coordinate.md +2 -2
  263. package/workflows/maestro.codex.md +710 -0
  264. package/workflows/maestro.md +10 -11
  265. package/workflows/map.md +111 -111
  266. package/workflows/milestone-complete.md +176 -176
  267. package/workflows/plan.md +1 -1
  268. package/workflows/quick.md +497 -497
  269. package/workflows/refactor.md +300 -300
  270. package/workflows/retrospective.md +1 -1
  271. package/workflows/roadmap.md +335 -335
  272. package/workflows/spec-generate.md +640 -640
  273. package/workflows/specs-add.md +46 -81
  274. package/workflows/specs-load.md +15 -17
  275. package/workflows/specs-setup.md +40 -161
  276. package/.claude/commands/manage-issue-analyze.md +0 -62
  277. package/.claude/commands/manage-issue-execute.md +0 -73
  278. package/.claude/commands/manage-issue-plan.md +0 -62
  279. package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
  280. package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
  281. package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
@@ -1,497 +1,497 @@
1
- # Quick Task Workflow
2
-
3
- Execute small, ad-hoc tasks with workflow guarantees (atomic commits, state tracking). Quick mode spawns workflow-planner (quick mode) + workflow-executor(s), tracks tasks in `.workflow/scratch/`, and updates state.json.
4
-
5
- With `--discuss`: lightweight decision extraction before planning. Identifies gray areas, conducts interactive discussion, classifies decisions as Locked/Free/Deferred in context.md so the planner treats Locked decisions as constraints and Free decisions as implementer discretion.
6
-
7
- With `--full`: enables plan-checking (max 2 iterations) and post-execution verification.
8
-
9
- Flags are composable: `--discuss --full` gives discussion + plan-checking + verification.
10
-
11
- ---
12
-
13
- ## Prerequisites
14
-
15
- - `.workflow/state.json` must exist (project initialized)
16
- - Quick tasks can run mid-phase -- validation only checks project exists, not phase status
17
-
18
- ---
19
-
20
- ### Step 1: Parse Arguments
21
-
22
- **Parse $ARGUMENTS for flags and description:**
23
-
24
- Extract:
25
- - `--full` flag -> store as `$FULL_MODE` (true/false)
26
- - `--discuss` flag -> store as `$DISCUSS_MODE` (true/false)
27
- - Remaining text -> use as `$DESCRIPTION`
28
-
29
- If `$DESCRIPTION` is empty after parsing:
30
- ```
31
- AskUserQuestion(
32
- header: "Quick Task",
33
- question: "What do you want to do?",
34
- followUp: null
35
- )
36
- ```
37
-
38
- Store response as `$DESCRIPTION`.
39
- If still empty, re-prompt: "Please provide a task description."
40
-
41
- Display banner based on active flags:
42
-
43
- If `$DISCUSS_MODE` and `$FULL_MODE`:
44
- ```
45
- ------------------------------------------------------------
46
- WORKFLOW > QUICK TASK (DISCUSS + FULL)
47
- ------------------------------------------------------------
48
- Discussion + plan checking + verification enabled
49
- ```
50
-
51
- If `$DISCUSS_MODE` only:
52
- ```
53
- ------------------------------------------------------------
54
- WORKFLOW > QUICK TASK (DISCUSS)
55
- ------------------------------------------------------------
56
- Discussion phase enabled -- surfacing gray areas before planning
57
- ```
58
-
59
- If `$FULL_MODE` only:
60
- ```
61
- ------------------------------------------------------------
62
- WORKFLOW > QUICK TASK (FULL MODE)
63
- ------------------------------------------------------------
64
- Plan checking + verification enabled
65
- ```
66
-
67
- Default (no flags):
68
- ```
69
- ------------------------------------------------------------
70
- WORKFLOW > QUICK TASK
71
- ------------------------------------------------------------
72
- ```
73
-
74
- ---
75
-
76
- ### Step 2: Validate Project
77
-
78
- **Validate project state:**
79
-
80
- Check .workflow/ exists and has state.json:
81
- ```bash
82
- test -f .workflow/state.json && echo "exists" || echo "missing"
83
- ```
84
-
85
- If missing: Error -- "Quick mode requires an initialized project. Run /workflow:init first."
86
-
87
- Quick tasks can run mid-phase -- validation only checks project exists, not phase status.
88
-
89
- ---
90
-
91
- ### Step 3: Create Scratch Directory
92
-
93
- **Create scratch directory:**
94
-
95
- Generate slug from $DESCRIPTION (lowercase, hyphens, max 40 chars).
96
- Set date to current date (YYYY-MM-DD).
97
-
98
- ```bash
99
- QUICK_DIR=".workflow/scratch/quick-${slug}-${date}"
100
- mkdir -p "$QUICK_DIR/.task"
101
- mkdir -p "$QUICK_DIR/.summaries"
102
- ```
103
-
104
- Write index.json:
105
- ```json
106
- {
107
- "id": "quick-{slug}-{date}",
108
- "type": "quick",
109
- "title": "{$DESCRIPTION}",
110
- "status": "active",
111
- "created_at": "{ISO timestamp}",
112
- "updated_at": "{ISO timestamp}",
113
- "flags": {
114
- "discuss": {$DISCUSS_MODE},
115
- "full": {$FULL_MODE}
116
- },
117
- "plan": {
118
- "task_ids": [],
119
- "task_count": 0
120
- },
121
- "execution": {
122
- "method": "agent",
123
- "tasks_completed": 0,
124
- "tasks_total": 0
125
- }
126
- }
127
- ```
128
-
129
- Report: "Creating quick task: {$DESCRIPTION}\nDirectory: {$QUICK_DIR}"
130
-
131
- ---
132
-
133
- ### Step 4: Discussion Phase (only when $DISCUSS_MODE)
134
-
135
- **Lightweight discussion:**
136
-
137
- Skip entirely if NOT $DISCUSS_MODE.
138
-
139
- ```
140
- ------------------------------------------------------------
141
- WORKFLOW > DISCUSSING QUICK TASK
142
- ------------------------------------------------------------
143
- Surfacing gray areas for: {$DESCRIPTION}
144
- ```
145
-
146
- **4a. Identify gray areas:**
147
-
148
- Analyze $DESCRIPTION to identify 2-4 gray areas -- implementation decisions that would change the outcome. Use domain-aware heuristic:
149
- - Something users **SEE** -> layout, density, interactions, states
150
- - Something users **CALL** -> responses, errors, auth, versioning
151
- - Something users **RUN** -> output format, flags, modes, error handling
152
- - Something users **READ** -> structure, tone, depth, flow
153
- - Something being **ORGANIZED** -> criteria, grouping, naming, exceptions
154
-
155
- **4b. Present gray areas:**
156
-
157
- ```
158
- AskUserQuestion(
159
- header: "Gray Areas",
160
- question: "Which areas need clarification before planning?",
161
- options: [
162
- { label: "{area_1}", description: "{why_it_matters}" },
163
- { label: "{area_2}", description: "{why_it_matters}" },
164
- { label: "{area_3}", description: "{why_it_matters}" },
165
- { label: "All clear", description: "Skip discussion -- I know what I want" }
166
- ],
167
- multiSelect: true
168
- )
169
- ```
170
-
171
- If user selects "All clear" -> skip to Step 5 (no context.md written).
172
-
173
- **4c. Discuss selected areas:**
174
-
175
- For each selected area, ask 1-2 focused questions:
176
- ```
177
- AskUserQuestion(
178
- header: "{area_name}",
179
- question: "{specific question}",
180
- options: [
181
- { label: "{choice_1}", description: "{what this means}" },
182
- { label: "{choice_2}", description: "{what this means}" },
183
- { label: "You decide", description: "Claude's discretion" }
184
- ]
185
- )
186
- ```
187
-
188
- Max 2 questions per area. Collect all decisions.
189
-
190
- **4d. Classify decisions:**
191
-
192
- - **Locked**: firm decisions that cannot be changed during implementation
193
- - **Free**: open for implementation discretion (implementer can choose)
194
- - **Deferred**: postponed (captured but not acted on in this quick task)
195
-
196
- **4e. Write context.md:**
197
-
198
- ```markdown
199
- # Quick Task: {$DESCRIPTION} - Context
200
-
201
- **Gathered:** {date}
202
- **Status:** Ready for planning
203
-
204
- ## Task Boundary
205
-
206
- {$DESCRIPTION}
207
-
208
- ## Constraints
209
-
210
- ### Locked
211
- {decisions that are final and must be followed}
212
-
213
- ### Free
214
- {decisions left to implementer discretion, including "You decide" areas}
215
-
216
- ### Deferred
217
- {ideas captured but out of scope for this quick task}
218
-
219
- ## Code Context
220
- {relevant code references from discussion, if any}
221
- ```
222
-
223
- Write to `${QUICK_DIR}/context.md`.
224
- Report: "Context captured: ${QUICK_DIR}/context.md"
225
-
226
- ---
227
-
228
- ### Step 4.5: Load Project Specs
229
-
230
- ```
231
- specs_content = maestro spec load --category execution
232
- ```
233
-
234
- Passed inline to planner agent in Step 5.
235
-
236
- ---
237
-
238
- ### Step 5: Spawn Planner
239
-
240
- **Spawn workflow-planner in quick mode:**
241
-
242
- ```
243
- Task(
244
- prompt="
245
- <planning_context>
246
-
247
- **Mode:** ${FULL_MODE ? 'quick-full' : 'quick'}
248
- **Directory:** ${QUICK_DIR}
249
- **Description:** ${DESCRIPTION}
250
-
251
- Read these files:
252
- - .workflow/state.json (Project state)
253
- - ./CLAUDE.md (Project instructions, if exists)
254
-
255
- Project specs (pre-loaded in Step 4.5):
256
- ${specs_content || 'No specs found.'}
257
- ${DISCUSS_MODE ? '- ' + QUICK_DIR + '/context.md (User decisions -- locked)' : ''}
258
-
259
- </planning_context>
260
-
261
- <constraints>
262
- - Create a SINGLE plan with 1-3 focused tasks
263
- - Quick tasks should be atomic and self-contained
264
- - No research phase
265
- ${FULL_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
266
- ${FULL_MODE ? '- Each task MUST have files, action, convergence.criteria, implementation fields' : ''}
267
- </constraints>
268
-
269
- <output>
270
- Write plan to: ${QUICK_DIR}/plan.json
271
- Write tasks to: ${QUICK_DIR}/.task/TASK-{NNN}.json
272
- Return: ## PLANNING COMPLETE with plan path
273
- </output>
274
- ",
275
- subagent_type="workflow-planner",
276
- description="Quick plan: ${DESCRIPTION}"
277
- )
278
- ```
279
-
280
- After planner returns:
281
- 1. Verify plan.json exists at `${QUICK_DIR}/plan.json`
282
- 2. Update index.json plan fields
283
- 3. Report: "Plan created: ${QUICK_DIR}/plan.json"
284
-
285
- If plan not found: "Planner failed to create plan.json"
286
-
287
- ---
288
-
289
- ### Step 6: Plan Checker (only when $FULL_MODE)
290
-
291
- **Plan-checker loop:**
292
-
293
- Skip entirely if NOT $FULL_MODE.
294
-
295
- ```
296
- ------------------------------------------------------------
297
- WORKFLOW > CHECKING PLAN
298
- ------------------------------------------------------------
299
- Spawning plan checker...
300
- ```
301
-
302
- ```
303
- Task(
304
- prompt="
305
- Verify quick task plan.
306
-
307
- Read: ${QUICK_DIR}/plan.json and ${QUICK_DIR}/.task/TASK-*.json
308
-
309
- Check dimensions:
310
- - Requirement coverage: Does the plan address the task description?
311
- - Task completeness: Do tasks have files, action, convergence.criteria, implementation?
312
- - Scope sanity: Appropriately sized for quick task (1-3 tasks)?
313
- ${DISCUSS_MODE ? '- Context compliance: Does plan honor decisions from context.md?' : ''}
314
-
315
- Return one of:
316
- - ## VERIFICATION PASSED
317
- - ## ISSUES FOUND -- structured issue list
318
- ",
319
- subagent_type="workflow-plan-checker",
320
- description="Check quick plan: ${DESCRIPTION}"
321
- )
322
- ```
323
-
324
- **Handle checker return:**
325
-
326
- - **VERIFICATION PASSED:** Continue to Step 7.
327
- - **ISSUES FOUND:** Enter revision loop.
328
-
329
- **Revision loop (max 2 iterations):**
330
-
331
- If iteration_count < 2:
332
- - Display: "Sending back to planner for revision... (iteration {N}/2)"
333
- - Spawn planner with revision context + checker issues
334
- - Re-check with checker
335
- - Increment iteration_count
336
-
337
- If iteration_count >= 2:
338
- - Display: "Max iterations reached. {N} issues remain."
339
- - Offer: 1) Force proceed, 2) Abort
340
-
341
- ---
342
-
343
- ### Step 7: Spawn Executor
344
-
345
- **Spawn workflow-executor:**
346
-
347
- ```
348
- Task(
349
- prompt="
350
- Execute quick task.
351
-
352
- Read:
353
- - ${QUICK_DIR}/plan.json (Plan)
354
- - ${QUICK_DIR}/.task/TASK-*.json (Tasks)
355
- - .workflow/state.json (Project state)
356
- - ./CLAUDE.md (Project instructions, if exists)
357
-
358
- Constraints:
359
- - Execute all tasks in the plan
360
- - Commit each task atomically
361
- - Create summary for each task at: ${QUICK_DIR}/.summaries/TASK-{NNN}-summary.md
362
- ",
363
- subagent_type="workflow-executor",
364
- description="Execute: ${DESCRIPTION}"
365
- )
366
- ```
367
-
368
- After executor returns:
369
- 1. Verify summaries exist
370
- 2. Update index.json execution fields
371
- 3. Report completion status
372
-
373
- ---
374
-
375
- ### Step 8: Verification (only when $FULL_MODE)
376
-
377
- **Post-execution verification:**
378
-
379
- Skip entirely if NOT $FULL_MODE.
380
-
381
- ```
382
- ------------------------------------------------------------
383
- WORKFLOW > VERIFYING RESULTS
384
- ------------------------------------------------------------
385
- Spawning verifier...
386
- ```
387
-
388
- ```
389
- Task(
390
- prompt="
391
- Verify quick task goal achievement.
392
- Task directory: ${QUICK_DIR}
393
- Task goal: ${DESCRIPTION}
394
-
395
- Read: ${QUICK_DIR}/plan.json and ${QUICK_DIR}/.summaries/
396
-
397
- Check plan objectives against actual codebase.
398
- Write verification result to: ${QUICK_DIR}/verification.json
399
- ",
400
- subagent_type="workflow-verifier",
401
- description="Verify: ${DESCRIPTION}"
402
- )
403
- ```
404
-
405
- Read verification result:
406
- | Status | Action |
407
- |--------|--------|
408
- | passed | Store "Verified", continue |
409
- | gaps_found | Display gaps, offer: 1) Re-run executor, 2) Accept as-is |
410
-
411
- ---
412
-
413
- ### Step 9: Update State
414
-
415
- **Update state.json:**
416
-
417
- Read state.json. Add quick task to accumulated_context or quick_tasks array.
418
-
419
- Record:
420
- ```json
421
- {
422
- "id": "quick-{slug}-{date}",
423
- "description": "{$DESCRIPTION}",
424
- "completed_at": "{ISO timestamp}",
425
- "directory": "{$QUICK_DIR}",
426
- "verified": {$FULL_MODE ? verification_status : "skipped"}
427
- }
428
- ```
429
-
430
- Update last_updated timestamp.
431
-
432
- ---
433
-
434
- ### Step 10: Commit and Complete
435
-
436
- **Final commit and completion:**
437
-
438
- Update index.json status to "completed".
439
-
440
- Commit quick task artifacts:
441
- ```bash
442
- git add "${QUICK_DIR}/" .workflow/state.json
443
- git commit -m "quick({slug}): ${DESCRIPTION}"
444
- ```
445
-
446
- Display completion:
447
-
448
- If $FULL_MODE:
449
- ```
450
- ------------------------------------------------------------
451
- WORKFLOW > QUICK TASK COMPLETE (FULL MODE)
452
- ------------------------------------------------------------
453
-
454
- Quick Task: {$DESCRIPTION}
455
-
456
- Summary: ${QUICK_DIR}/.summaries/
457
- Verification: ${QUICK_DIR}/verification.json ({status})
458
- Directory: ${QUICK_DIR}
459
-
460
- ------------------------------------------------------------
461
- Ready for next task: /workflow:quick
462
- ```
463
-
464
- If NOT $FULL_MODE:
465
- ```
466
- ------------------------------------------------------------
467
- WORKFLOW > QUICK TASK COMPLETE
468
- ------------------------------------------------------------
469
-
470
- Quick Task: {$DESCRIPTION}
471
-
472
- Summary: ${QUICK_DIR}/.summaries/
473
- Directory: ${QUICK_DIR}
474
-
475
- ------------------------------------------------------------
476
- Ready for next task: /workflow:quick
477
- ```
478
-
479
- ---
480
-
481
- ## Success Criteria
482
-
483
- - [ ] --full and --discuss flags parsed from arguments when present
484
- - [ ] Flags are composable (--discuss --full works)
485
- - [ ] User provides task description (prompted if missing)
486
- - [ ] Project validated (state.json exists)
487
- - [ ] Scratch directory created at .workflow/scratch/quick-{slug}-{date}/
488
- - [ ] index.json created in scratch dir
489
- - [ ] (--discuss) Gray areas identified, decisions captured in context.md
490
- - [ ] (--discuss) context.md honors "All clear" skip and "You decide" discretion
491
- - [ ] plan.json + .task/TASK-*.json created by planner
492
- - [ ] (--full) Plan checker validates plan, revision loop capped at 2
493
- - [ ] .summaries/TASK-*-summary.md created by executor
494
- - [ ] (--full) verification.json created by verifier
495
- - [ ] state.json updated with quick task record
496
- - [ ] Artifacts committed
497
- - [ ] index.json status set to "completed"
1
+ # Quick Task Workflow
2
+
3
+ Execute small, ad-hoc tasks with workflow guarantees (atomic commits, state tracking). Quick mode spawns workflow-planner (quick mode) + workflow-executor(s), tracks tasks in `.workflow/scratch/`, and updates state.json.
4
+
5
+ With `--discuss`: lightweight decision extraction before planning. Identifies gray areas, conducts interactive discussion, classifies decisions as Locked/Free/Deferred in context.md so the planner treats Locked decisions as constraints and Free decisions as implementer discretion.
6
+
7
+ With `--full`: enables plan-checking (max 2 iterations) and post-execution verification.
8
+
9
+ Flags are composable: `--discuss --full` gives discussion + plan-checking + verification.
10
+
11
+ ---
12
+
13
+ ## Prerequisites
14
+
15
+ - `.workflow/state.json` must exist (project initialized)
16
+ - Quick tasks can run mid-phase -- validation only checks project exists, not phase status
17
+
18
+ ---
19
+
20
+ ### Step 1: Parse Arguments
21
+
22
+ **Parse $ARGUMENTS for flags and description:**
23
+
24
+ Extract:
25
+ - `--full` flag -> store as `$FULL_MODE` (true/false)
26
+ - `--discuss` flag -> store as `$DISCUSS_MODE` (true/false)
27
+ - Remaining text -> use as `$DESCRIPTION`
28
+
29
+ If `$DESCRIPTION` is empty after parsing:
30
+ ```
31
+ AskUserQuestion(
32
+ header: "Quick Task",
33
+ question: "What do you want to do?",
34
+ followUp: null
35
+ )
36
+ ```
37
+
38
+ Store response as `$DESCRIPTION`.
39
+ If still empty, re-prompt: "Please provide a task description."
40
+
41
+ Display banner based on active flags:
42
+
43
+ If `$DISCUSS_MODE` and `$FULL_MODE`:
44
+ ```
45
+ ------------------------------------------------------------
46
+ WORKFLOW > QUICK TASK (DISCUSS + FULL)
47
+ ------------------------------------------------------------
48
+ Discussion + plan checking + verification enabled
49
+ ```
50
+
51
+ If `$DISCUSS_MODE` only:
52
+ ```
53
+ ------------------------------------------------------------
54
+ WORKFLOW > QUICK TASK (DISCUSS)
55
+ ------------------------------------------------------------
56
+ Discussion phase enabled -- surfacing gray areas before planning
57
+ ```
58
+
59
+ If `$FULL_MODE` only:
60
+ ```
61
+ ------------------------------------------------------------
62
+ WORKFLOW > QUICK TASK (FULL MODE)
63
+ ------------------------------------------------------------
64
+ Plan checking + verification enabled
65
+ ```
66
+
67
+ Default (no flags):
68
+ ```
69
+ ------------------------------------------------------------
70
+ WORKFLOW > QUICK TASK
71
+ ------------------------------------------------------------
72
+ ```
73
+
74
+ ---
75
+
76
+ ### Step 2: Validate Project
77
+
78
+ **Validate project state:**
79
+
80
+ Check .workflow/ exists and has state.json:
81
+ ```bash
82
+ test -f .workflow/state.json && echo "exists" || echo "missing"
83
+ ```
84
+
85
+ If missing: Error -- "Quick mode requires an initialized project. Run /workflow:init first."
86
+
87
+ Quick tasks can run mid-phase -- validation only checks project exists, not phase status.
88
+
89
+ ---
90
+
91
+ ### Step 3: Create Scratch Directory
92
+
93
+ **Create scratch directory:**
94
+
95
+ Generate slug from $DESCRIPTION (lowercase, hyphens, max 40 chars).
96
+ Set date to current date (YYYY-MM-DD).
97
+
98
+ ```bash
99
+ QUICK_DIR=".workflow/scratch/quick-${slug}-${date}"
100
+ mkdir -p "$QUICK_DIR/.task"
101
+ mkdir -p "$QUICK_DIR/.summaries"
102
+ ```
103
+
104
+ Write index.json:
105
+ ```json
106
+ {
107
+ "id": "quick-{slug}-{date}",
108
+ "type": "quick",
109
+ "title": "{$DESCRIPTION}",
110
+ "status": "active",
111
+ "created_at": "{ISO timestamp}",
112
+ "updated_at": "{ISO timestamp}",
113
+ "flags": {
114
+ "discuss": {$DISCUSS_MODE},
115
+ "full": {$FULL_MODE}
116
+ },
117
+ "plan": {
118
+ "task_ids": [],
119
+ "task_count": 0
120
+ },
121
+ "execution": {
122
+ "method": "agent",
123
+ "tasks_completed": 0,
124
+ "tasks_total": 0
125
+ }
126
+ }
127
+ ```
128
+
129
+ Report: "Creating quick task: {$DESCRIPTION}\nDirectory: {$QUICK_DIR}"
130
+
131
+ ---
132
+
133
+ ### Step 4: Discussion Phase (only when $DISCUSS_MODE)
134
+
135
+ **Lightweight discussion:**
136
+
137
+ Skip entirely if NOT $DISCUSS_MODE.
138
+
139
+ ```
140
+ ------------------------------------------------------------
141
+ WORKFLOW > DISCUSSING QUICK TASK
142
+ ------------------------------------------------------------
143
+ Surfacing gray areas for: {$DESCRIPTION}
144
+ ```
145
+
146
+ **4a. Identify gray areas:**
147
+
148
+ Analyze $DESCRIPTION to identify 2-4 gray areas -- implementation decisions that would change the outcome. Use domain-aware heuristic:
149
+ - Something users **SEE** -> layout, density, interactions, states
150
+ - Something users **CALL** -> responses, errors, auth, versioning
151
+ - Something users **RUN** -> output format, flags, modes, error handling
152
+ - Something users **READ** -> structure, tone, depth, flow
153
+ - Something being **ORGANIZED** -> criteria, grouping, naming, exceptions
154
+
155
+ **4b. Present gray areas:**
156
+
157
+ ```
158
+ AskUserQuestion(
159
+ header: "Gray Areas",
160
+ question: "Which areas need clarification before planning?",
161
+ options: [
162
+ { label: "{area_1}", description: "{why_it_matters}" },
163
+ { label: "{area_2}", description: "{why_it_matters}" },
164
+ { label: "{area_3}", description: "{why_it_matters}" },
165
+ { label: "All clear", description: "Skip discussion -- I know what I want" }
166
+ ],
167
+ multiSelect: true
168
+ )
169
+ ```
170
+
171
+ If user selects "All clear" -> skip to Step 5 (no context.md written).
172
+
173
+ **4c. Discuss selected areas:**
174
+
175
+ For each selected area, ask 1-2 focused questions:
176
+ ```
177
+ AskUserQuestion(
178
+ header: "{area_name}",
179
+ question: "{specific question}",
180
+ options: [
181
+ { label: "{choice_1}", description: "{what this means}" },
182
+ { label: "{choice_2}", description: "{what this means}" },
183
+ { label: "You decide", description: "Claude's discretion" }
184
+ ]
185
+ )
186
+ ```
187
+
188
+ Max 2 questions per area. Collect all decisions.
189
+
190
+ **4d. Classify decisions:**
191
+
192
+ - **Locked**: firm decisions that cannot be changed during implementation
193
+ - **Free**: open for implementation discretion (implementer can choose)
194
+ - **Deferred**: postponed (captured but not acted on in this quick task)
195
+
196
+ **4e. Write context.md:**
197
+
198
+ ```markdown
199
+ # Quick Task: {$DESCRIPTION} - Context
200
+
201
+ **Gathered:** {date}
202
+ **Status:** Ready for planning
203
+
204
+ ## Task Boundary
205
+
206
+ {$DESCRIPTION}
207
+
208
+ ## Constraints
209
+
210
+ ### Locked
211
+ {decisions that are final and must be followed}
212
+
213
+ ### Free
214
+ {decisions left to implementer discretion, including "You decide" areas}
215
+
216
+ ### Deferred
217
+ {ideas captured but out of scope for this quick task}
218
+
219
+ ## Code Context
220
+ {relevant code references from discussion, if any}
221
+ ```
222
+
223
+ Write to `${QUICK_DIR}/context.md`.
224
+ Report: "Context captured: ${QUICK_DIR}/context.md"
225
+
226
+ ---
227
+
228
+ ### Step 4.5: Load Project Specs
229
+
230
+ ```
231
+ specs_content = maestro spec load --category coding
232
+ ```
233
+
234
+ Passed inline to planner agent in Step 5.
235
+
236
+ ---
237
+
238
+ ### Step 5: Spawn Planner
239
+
240
+ **Spawn workflow-planner in quick mode:**
241
+
242
+ ```
243
+ Task(
244
+ prompt="
245
+ <planning_context>
246
+
247
+ **Mode:** ${FULL_MODE ? 'quick-full' : 'quick'}
248
+ **Directory:** ${QUICK_DIR}
249
+ **Description:** ${DESCRIPTION}
250
+
251
+ Read these files:
252
+ - .workflow/state.json (Project state)
253
+ - ./CLAUDE.md (Project instructions, if exists)
254
+
255
+ Project specs (pre-loaded in Step 4.5):
256
+ ${specs_content || 'No specs found.'}
257
+ ${DISCUSS_MODE ? '- ' + QUICK_DIR + '/context.md (User decisions -- locked)' : ''}
258
+
259
+ </planning_context>
260
+
261
+ <constraints>
262
+ - Create a SINGLE plan with 1-3 focused tasks
263
+ - Quick tasks should be atomic and self-contained
264
+ - No research phase
265
+ ${FULL_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
266
+ ${FULL_MODE ? '- Each task MUST have files, action, convergence.criteria, implementation fields' : ''}
267
+ </constraints>
268
+
269
+ <output>
270
+ Write plan to: ${QUICK_DIR}/plan.json
271
+ Write tasks to: ${QUICK_DIR}/.task/TASK-{NNN}.json
272
+ Return: ## PLANNING COMPLETE with plan path
273
+ </output>
274
+ ",
275
+ subagent_type="workflow-planner",
276
+ description="Quick plan: ${DESCRIPTION}"
277
+ )
278
+ ```
279
+
280
+ After planner returns:
281
+ 1. Verify plan.json exists at `${QUICK_DIR}/plan.json`
282
+ 2. Update index.json plan fields
283
+ 3. Report: "Plan created: ${QUICK_DIR}/plan.json"
284
+
285
+ If plan not found: "Planner failed to create plan.json"
286
+
287
+ ---
288
+
289
+ ### Step 6: Plan Checker (only when $FULL_MODE)
290
+
291
+ **Plan-checker loop:**
292
+
293
+ Skip entirely if NOT $FULL_MODE.
294
+
295
+ ```
296
+ ------------------------------------------------------------
297
+ WORKFLOW > CHECKING PLAN
298
+ ------------------------------------------------------------
299
+ Spawning plan checker...
300
+ ```
301
+
302
+ ```
303
+ Task(
304
+ prompt="
305
+ Verify quick task plan.
306
+
307
+ Read: ${QUICK_DIR}/plan.json and ${QUICK_DIR}/.task/TASK-*.json
308
+
309
+ Check dimensions:
310
+ - Requirement coverage: Does the plan address the task description?
311
+ - Task completeness: Do tasks have files, action, convergence.criteria, implementation?
312
+ - Scope sanity: Appropriately sized for quick task (1-3 tasks)?
313
+ ${DISCUSS_MODE ? '- Context compliance: Does plan honor decisions from context.md?' : ''}
314
+
315
+ Return one of:
316
+ - ## VERIFICATION PASSED
317
+ - ## ISSUES FOUND -- structured issue list
318
+ ",
319
+ subagent_type="workflow-plan-checker",
320
+ description="Check quick plan: ${DESCRIPTION}"
321
+ )
322
+ ```
323
+
324
+ **Handle checker return:**
325
+
326
+ - **VERIFICATION PASSED:** Continue to Step 7.
327
+ - **ISSUES FOUND:** Enter revision loop.
328
+
329
+ **Revision loop (max 2 iterations):**
330
+
331
+ If iteration_count < 2:
332
+ - Display: "Sending back to planner for revision... (iteration {N}/2)"
333
+ - Spawn planner with revision context + checker issues
334
+ - Re-check with checker
335
+ - Increment iteration_count
336
+
337
+ If iteration_count >= 2:
338
+ - Display: "Max iterations reached. {N} issues remain."
339
+ - Offer: 1) Force proceed, 2) Abort
340
+
341
+ ---
342
+
343
+ ### Step 7: Spawn Executor
344
+
345
+ **Spawn workflow-executor:**
346
+
347
+ ```
348
+ Task(
349
+ prompt="
350
+ Execute quick task.
351
+
352
+ Read:
353
+ - ${QUICK_DIR}/plan.json (Plan)
354
+ - ${QUICK_DIR}/.task/TASK-*.json (Tasks)
355
+ - .workflow/state.json (Project state)
356
+ - ./CLAUDE.md (Project instructions, if exists)
357
+
358
+ Constraints:
359
+ - Execute all tasks in the plan
360
+ - Commit each task atomically
361
+ - Create summary for each task at: ${QUICK_DIR}/.summaries/TASK-{NNN}-summary.md
362
+ ",
363
+ subagent_type="workflow-executor",
364
+ description="Execute: ${DESCRIPTION}"
365
+ )
366
+ ```
367
+
368
+ After executor returns:
369
+ 1. Verify summaries exist
370
+ 2. Update index.json execution fields
371
+ 3. Report completion status
372
+
373
+ ---
374
+
375
+ ### Step 8: Verification (only when $FULL_MODE)
376
+
377
+ **Post-execution verification:**
378
+
379
+ Skip entirely if NOT $FULL_MODE.
380
+
381
+ ```
382
+ ------------------------------------------------------------
383
+ WORKFLOW > VERIFYING RESULTS
384
+ ------------------------------------------------------------
385
+ Spawning verifier...
386
+ ```
387
+
388
+ ```
389
+ Task(
390
+ prompt="
391
+ Verify quick task goal achievement.
392
+ Task directory: ${QUICK_DIR}
393
+ Task goal: ${DESCRIPTION}
394
+
395
+ Read: ${QUICK_DIR}/plan.json and ${QUICK_DIR}/.summaries/
396
+
397
+ Check plan objectives against actual codebase.
398
+ Write verification result to: ${QUICK_DIR}/verification.json
399
+ ",
400
+ subagent_type="workflow-verifier",
401
+ description="Verify: ${DESCRIPTION}"
402
+ )
403
+ ```
404
+
405
+ Read verification result:
406
+ | Status | Action |
407
+ |--------|--------|
408
+ | passed | Store "Verified", continue |
409
+ | gaps_found | Display gaps, offer: 1) Re-run executor, 2) Accept as-is |
410
+
411
+ ---
412
+
413
+ ### Step 9: Update State
414
+
415
+ **Update state.json:**
416
+
417
+ Read state.json. Add quick task to accumulated_context or quick_tasks array.
418
+
419
+ Record:
420
+ ```json
421
+ {
422
+ "id": "quick-{slug}-{date}",
423
+ "description": "{$DESCRIPTION}",
424
+ "completed_at": "{ISO timestamp}",
425
+ "directory": "{$QUICK_DIR}",
426
+ "verified": {$FULL_MODE ? verification_status : "skipped"}
427
+ }
428
+ ```
429
+
430
+ Update last_updated timestamp.
431
+
432
+ ---
433
+
434
+ ### Step 10: Commit and Complete
435
+
436
+ **Final commit and completion:**
437
+
438
+ Update index.json status to "completed".
439
+
440
+ Commit quick task artifacts:
441
+ ```bash
442
+ git add "${QUICK_DIR}/" .workflow/state.json
443
+ git commit -m "quick({slug}): ${DESCRIPTION}"
444
+ ```
445
+
446
+ Display completion:
447
+
448
+ If $FULL_MODE:
449
+ ```
450
+ ------------------------------------------------------------
451
+ WORKFLOW > QUICK TASK COMPLETE (FULL MODE)
452
+ ------------------------------------------------------------
453
+
454
+ Quick Task: {$DESCRIPTION}
455
+
456
+ Summary: ${QUICK_DIR}/.summaries/
457
+ Verification: ${QUICK_DIR}/verification.json ({status})
458
+ Directory: ${QUICK_DIR}
459
+
460
+ ------------------------------------------------------------
461
+ Ready for next task: /workflow:quick
462
+ ```
463
+
464
+ If NOT $FULL_MODE:
465
+ ```
466
+ ------------------------------------------------------------
467
+ WORKFLOW > QUICK TASK COMPLETE
468
+ ------------------------------------------------------------
469
+
470
+ Quick Task: {$DESCRIPTION}
471
+
472
+ Summary: ${QUICK_DIR}/.summaries/
473
+ Directory: ${QUICK_DIR}
474
+
475
+ ------------------------------------------------------------
476
+ Ready for next task: /workflow:quick
477
+ ```
478
+
479
+ ---
480
+
481
+ ## Success Criteria
482
+
483
+ - [ ] --full and --discuss flags parsed from arguments when present
484
+ - [ ] Flags are composable (--discuss --full works)
485
+ - [ ] User provides task description (prompted if missing)
486
+ - [ ] Project validated (state.json exists)
487
+ - [ ] Scratch directory created at .workflow/scratch/quick-{slug}-{date}/
488
+ - [ ] index.json created in scratch dir
489
+ - [ ] (--discuss) Gray areas identified, decisions captured in context.md
490
+ - [ ] (--discuss) context.md honors "All clear" skip and "You decide" discretion
491
+ - [ ] plan.json + .task/TASK-*.json created by planner
492
+ - [ ] (--full) Plan checker validates plan, revision loop capped at 2
493
+ - [ ] .summaries/TASK-*-summary.md created by executor
494
+ - [ ] (--full) verification.json created by verifier
495
+ - [ ] state.json updated with quick task record
496
+ - [ ] Artifacts committed
497
+ - [ ] index.json status set to "completed"