@dv.nghiem/flowdeck 0.1.0

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 (331) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/bin/flowdeck.js +108 -0
  4. package/dist/agents/architect.d.ts +3 -0
  5. package/dist/agents/architect.d.ts.map +1 -0
  6. package/dist/agents/code-explorer.d.ts +3 -0
  7. package/dist/agents/code-explorer.d.ts.map +1 -0
  8. package/dist/agents/coder.d.ts +3 -0
  9. package/dist/agents/coder.d.ts.map +1 -0
  10. package/dist/agents/debug.d.ts +4 -0
  11. package/dist/agents/debug.d.ts.map +1 -0
  12. package/dist/agents/doc-updater.d.ts +3 -0
  13. package/dist/agents/doc-updater.d.ts.map +1 -0
  14. package/dist/agents/flowdeck.d.ts +5 -0
  15. package/dist/agents/flowdeck.d.ts.map +1 -0
  16. package/dist/agents/index.d.ts +38 -0
  17. package/dist/agents/index.d.ts.map +1 -0
  18. package/dist/agents/mapper.d.ts +3 -0
  19. package/dist/agents/mapper.d.ts.map +1 -0
  20. package/dist/agents/orchestrator.d.ts +10 -0
  21. package/dist/agents/orchestrator.d.ts.map +1 -0
  22. package/dist/agents/performance.d.ts +4 -0
  23. package/dist/agents/performance.d.ts.map +1 -0
  24. package/dist/agents/planner.d.ts +3 -0
  25. package/dist/agents/planner.d.ts.map +1 -0
  26. package/dist/agents/policy-enforcer.d.ts +3 -0
  27. package/dist/agents/policy-enforcer.d.ts.map +1 -0
  28. package/dist/agents/researcher.d.ts +3 -0
  29. package/dist/agents/researcher.d.ts.map +1 -0
  30. package/dist/agents/reviewer.d.ts +3 -0
  31. package/dist/agents/reviewer.d.ts.map +1 -0
  32. package/dist/agents/risk-analyst.d.ts +3 -0
  33. package/dist/agents/risk-analyst.d.ts.map +1 -0
  34. package/dist/agents/security-auditor.d.ts +3 -0
  35. package/dist/agents/security-auditor.d.ts.map +1 -0
  36. package/dist/agents/specialist.d.ts +5 -0
  37. package/dist/agents/specialist.d.ts.map +1 -0
  38. package/dist/agents/tester.d.ts +3 -0
  39. package/dist/agents/tester.d.ts.map +1 -0
  40. package/dist/agents/types.d.ts +20 -0
  41. package/dist/agents/types.d.ts.map +1 -0
  42. package/dist/agents/writer.d.ts +3 -0
  43. package/dist/agents/writer.d.ts.map +1 -0
  44. package/dist/commands/analysis/analysis.test.d.ts +2 -0
  45. package/dist/commands/analysis/analysis.test.d.ts.map +1 -0
  46. package/dist/commands/analysis/analyze-change.d.ts +148 -0
  47. package/dist/commands/analysis/analyze-change.d.ts.map +1 -0
  48. package/dist/commands/analysis/evaluate-risk.d.ts +77 -0
  49. package/dist/commands/analysis/evaluate-risk.d.ts.map +1 -0
  50. package/dist/commands/analysis/guarded-edit.d.ts +72 -0
  51. package/dist/commands/analysis/guarded-edit.d.ts.map +1 -0
  52. package/dist/commands/execution/deploy-check.d.ts +91 -0
  53. package/dist/commands/execution/deploy-check.d.ts.map +1 -0
  54. package/dist/commands/execution/fix-bug.d.ts +187 -0
  55. package/dist/commands/execution/fix-bug.d.ts.map +1 -0
  56. package/dist/commands/execution/new-feature.d.ts +171 -0
  57. package/dist/commands/execution/new-feature.d.ts.map +1 -0
  58. package/dist/commands/execution/review-code.d.ts +130 -0
  59. package/dist/commands/execution/review-code.d.ts.map +1 -0
  60. package/dist/commands/execution/write-docs.d.ts +94 -0
  61. package/dist/commands/execution/write-docs.d.ts.map +1 -0
  62. package/dist/commands/governance/approve.d.ts +80 -0
  63. package/dist/commands/governance/approve.d.ts.map +1 -0
  64. package/dist/commands/intelligence/blast-radius.d.ts +67 -0
  65. package/dist/commands/intelligence/blast-radius.d.ts.map +1 -0
  66. package/dist/commands/intelligence/impact-radar.d.ts +71 -0
  67. package/dist/commands/intelligence/impact-radar.d.ts.map +1 -0
  68. package/dist/commands/intelligence/intelligence.test.d.ts +2 -0
  69. package/dist/commands/intelligence/intelligence.test.d.ts.map +1 -0
  70. package/dist/commands/intelligence/regression-predict.d.ts +75 -0
  71. package/dist/commands/intelligence/regression-predict.d.ts.map +1 -0
  72. package/dist/commands/intelligence/review-route.d.ts +65 -0
  73. package/dist/commands/intelligence/review-route.d.ts.map +1 -0
  74. package/dist/commands/intelligence/test-gap.d.ts +73 -0
  75. package/dist/commands/intelligence/test-gap.d.ts.map +1 -0
  76. package/dist/commands/intelligence/translate-intent.d.ts +87 -0
  77. package/dist/commands/intelligence/translate-intent.d.ts.map +1 -0
  78. package/dist/commands/intelligence/volatility-map-cmd.d.ts +68 -0
  79. package/dist/commands/intelligence/volatility-map-cmd.d.ts.map +1 -0
  80. package/dist/commands/planning/ask.d.ts +62 -0
  81. package/dist/commands/planning/ask.d.ts.map +1 -0
  82. package/dist/commands/planning/ask.test.d.ts +2 -0
  83. package/dist/commands/planning/ask.test.d.ts.map +1 -0
  84. package/dist/commands/planning/dashboard.d.ts +30 -0
  85. package/dist/commands/planning/dashboard.d.ts.map +1 -0
  86. package/dist/commands/planning/discuss.d.ts +39 -0
  87. package/dist/commands/planning/discuss.d.ts.map +1 -0
  88. package/dist/commands/planning/plan.d.ts +67 -0
  89. package/dist/commands/planning/plan.d.ts.map +1 -0
  90. package/dist/commands/planning/roadmap.d.ts +105 -0
  91. package/dist/commands/planning/roadmap.d.ts.map +1 -0
  92. package/dist/commands/setup/doctor.d.ts +10 -0
  93. package/dist/commands/setup/doctor.d.ts.map +1 -0
  94. package/dist/commands/setup/map-codebase.d.ts +62 -0
  95. package/dist/commands/setup/map-codebase.d.ts.map +1 -0
  96. package/dist/commands/setup/new-project.d.ts +19 -0
  97. package/dist/commands/setup/new-project.d.ts.map +1 -0
  98. package/dist/commands/setup/settings.d.ts +57 -0
  99. package/dist/commands/setup/settings.d.ts.map +1 -0
  100. package/dist/commands/state/checkpoint.d.ts +27 -0
  101. package/dist/commands/state/checkpoint.d.ts.map +1 -0
  102. package/dist/commands/state/multi-repo.d.ts +63 -0
  103. package/dist/commands/state/multi-repo.d.ts.map +1 -0
  104. package/dist/commands/state/progress.d.ts +57 -0
  105. package/dist/commands/state/progress.d.ts.map +1 -0
  106. package/dist/commands/state/resume.d.ts +11 -0
  107. package/dist/commands/state/resume.d.ts.map +1 -0
  108. package/dist/commands/state/workspace-commands.d.ts +207 -0
  109. package/dist/commands/state/workspace-commands.d.ts.map +1 -0
  110. package/dist/dashboard/lib/port-finder.d.ts +10 -0
  111. package/dist/dashboard/lib/port-finder.d.ts.map +1 -0
  112. package/dist/dashboard/lib/port-finder.test.d.ts +2 -0
  113. package/dist/dashboard/lib/port-finder.test.d.ts.map +1 -0
  114. package/dist/dashboard/lib/state-reader.d.ts +3 -0
  115. package/dist/dashboard/lib/state-reader.d.ts.map +1 -0
  116. package/dist/dashboard/server.d.ts +2 -0
  117. package/dist/dashboard/server.d.ts.map +1 -0
  118. package/dist/dashboard/server.mjs +13649 -0
  119. package/dist/dashboard/types.d.ts +72 -0
  120. package/dist/dashboard/types.d.ts.map +1 -0
  121. package/dist/dashboard/views/index.ejs +391 -0
  122. package/dist/dashboard/views/partials/blockers.ejs +10 -0
  123. package/dist/dashboard/views/partials/header.ejs +20 -0
  124. package/dist/dashboard/views/partials/phase-timeline.ejs +40 -0
  125. package/dist/dashboard/views/partials/progress.ejs +12 -0
  126. package/dist/hooks/approval-hook.d.ts +13 -0
  127. package/dist/hooks/approval-hook.d.ts.map +1 -0
  128. package/dist/hooks/compaction-hook.d.ts +23 -0
  129. package/dist/hooks/compaction-hook.d.ts.map +1 -0
  130. package/dist/hooks/context-window-monitor.d.ts +21 -0
  131. package/dist/hooks/context-window-monitor.d.ts.map +1 -0
  132. package/dist/hooks/decision-trace-hook.d.ts +13 -0
  133. package/dist/hooks/decision-trace-hook.d.ts.map +1 -0
  134. package/dist/hooks/file-tracker.d.ts +29 -0
  135. package/dist/hooks/file-tracker.d.ts.map +1 -0
  136. package/dist/hooks/guard-rails.d.ts +33 -0
  137. package/dist/hooks/guard-rails.d.ts.map +1 -0
  138. package/dist/hooks/index.d.ts +5 -0
  139. package/dist/hooks/index.d.ts.map +1 -0
  140. package/dist/hooks/notifications.d.ts +21 -0
  141. package/dist/hooks/notifications.d.ts.map +1 -0
  142. package/dist/hooks/patch-trust.d.ts +27 -0
  143. package/dist/hooks/patch-trust.d.ts.map +1 -0
  144. package/dist/hooks/patch-trust.test.d.ts +2 -0
  145. package/dist/hooks/patch-trust.test.d.ts.map +1 -0
  146. package/dist/hooks/session-events.d.ts +8 -0
  147. package/dist/hooks/session-events.d.ts.map +1 -0
  148. package/dist/hooks/session-idle-hook.d.ts +21 -0
  149. package/dist/hooks/session-idle-hook.d.ts.map +1 -0
  150. package/dist/hooks/session-start.d.ts +10 -0
  151. package/dist/hooks/session-start.d.ts.map +1 -0
  152. package/dist/hooks/shell-env-hook.d.ts +21 -0
  153. package/dist/hooks/shell-env-hook.d.ts.map +1 -0
  154. package/dist/hooks/telemetry-hook.d.ts +25 -0
  155. package/dist/hooks/telemetry-hook.d.ts.map +1 -0
  156. package/dist/hooks/todo-hook.d.ts +25 -0
  157. package/dist/hooks/todo-hook.d.ts.map +1 -0
  158. package/dist/hooks/tool-guard.d.ts +41 -0
  159. package/dist/hooks/tool-guard.d.ts.map +1 -0
  160. package/dist/hooks/tool-guard.test.d.ts +2 -0
  161. package/dist/hooks/tool-guard.test.d.ts.map +1 -0
  162. package/dist/index.d.ts +4 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +6639 -0
  165. package/dist/lib/confirmation.d.ts +20 -0
  166. package/dist/lib/confirmation.d.ts.map +1 -0
  167. package/dist/lib/impact-radar.d.ts +35 -0
  168. package/dist/lib/impact-radar.d.ts.map +1 -0
  169. package/dist/lib/signatures.d.ts +12 -0
  170. package/dist/lib/signatures.d.ts.map +1 -0
  171. package/dist/lib/timestamps.d.ts +23 -0
  172. package/dist/lib/timestamps.d.ts.map +1 -0
  173. package/dist/mcp/index.d.ts +20 -0
  174. package/dist/mcp/index.d.ts.map +1 -0
  175. package/dist/services/agent-performance.d.ts +29 -0
  176. package/dist/services/agent-performance.d.ts.map +1 -0
  177. package/dist/services/approval-manager.d.ts +30 -0
  178. package/dist/services/approval-manager.d.ts.map +1 -0
  179. package/dist/services/index.d.ts +7 -0
  180. package/dist/services/index.d.ts.map +1 -0
  181. package/dist/services/model-router.d.ts +35 -0
  182. package/dist/services/model-router.d.ts.map +1 -0
  183. package/dist/services/policy-compiler.d.ts +27 -0
  184. package/dist/services/policy-compiler.d.ts.map +1 -0
  185. package/dist/services/run-trace.d.ts +34 -0
  186. package/dist/services/run-trace.d.ts.map +1 -0
  187. package/dist/services/services.test.d.ts +2 -0
  188. package/dist/services/services.test.d.ts.map +1 -0
  189. package/dist/services/telemetry.d.ts +34 -0
  190. package/dist/services/telemetry.d.ts.map +1 -0
  191. package/dist/tools/agent-dispatch.test.d.ts +2 -0
  192. package/dist/tools/agent-dispatch.test.d.ts.map +1 -0
  193. package/dist/tools/codebase-state.d.ts +4 -0
  194. package/dist/tools/codebase-state.d.ts.map +1 -0
  195. package/dist/tools/context-generator.d.ts +3 -0
  196. package/dist/tools/context-generator.d.ts.map +1 -0
  197. package/dist/tools/council.d.ts +4 -0
  198. package/dist/tools/council.d.ts.map +1 -0
  199. package/dist/tools/decision-trace.d.ts +16 -0
  200. package/dist/tools/decision-trace.d.ts.map +1 -0
  201. package/dist/tools/delegate.d.ts +4 -0
  202. package/dist/tools/delegate.d.ts.map +1 -0
  203. package/dist/tools/failure-replay.d.ts +19 -0
  204. package/dist/tools/failure-replay.d.ts.map +1 -0
  205. package/dist/tools/failure-replay.test.d.ts +2 -0
  206. package/dist/tools/failure-replay.test.d.ts.map +1 -0
  207. package/dist/tools/hash-edit.d.ts +3 -0
  208. package/dist/tools/hash-edit.d.ts.map +1 -0
  209. package/dist/tools/planning-state-lib.d.ts +65 -0
  210. package/dist/tools/planning-state-lib.d.ts.map +1 -0
  211. package/dist/tools/planning-state.d.ts +3 -0
  212. package/dist/tools/planning-state.d.ts.map +1 -0
  213. package/dist/tools/policy-engine.d.ts +19 -0
  214. package/dist/tools/policy-engine.d.ts.map +1 -0
  215. package/dist/tools/repo-memory.d.ts +20 -0
  216. package/dist/tools/repo-memory.d.ts.map +1 -0
  217. package/dist/tools/repo-memory.test.d.ts +2 -0
  218. package/dist/tools/repo-memory.test.d.ts.map +1 -0
  219. package/dist/tools/run-parallel.d.ts +4 -0
  220. package/dist/tools/run-parallel.d.ts.map +1 -0
  221. package/dist/tools/run-pipeline.d.ts +4 -0
  222. package/dist/tools/run-pipeline.d.ts.map +1 -0
  223. package/dist/tools/volatility-map.d.ts +18 -0
  224. package/dist/tools/volatility-map.d.ts.map +1 -0
  225. package/dist/tools/volatility-map.test.d.ts +2 -0
  226. package/dist/tools/volatility-map.test.d.ts.map +1 -0
  227. package/dist/tools/workspace-state.d.ts +3 -0
  228. package/dist/tools/workspace-state.d.ts.map +1 -0
  229. package/docs/USER_GUIDE.md +20 -0
  230. package/docs/agents.md +562 -0
  231. package/docs/best-practices.md +47 -0
  232. package/docs/command-migration.md +175 -0
  233. package/docs/commands/fd-analyze-change.md +107 -0
  234. package/docs/commands/fd-ask.md +51 -0
  235. package/docs/commands/fd-checkpoint.md +10 -0
  236. package/docs/commands/fd-dashboard.md +11 -0
  237. package/docs/commands/fd-deploy-check.md +11 -0
  238. package/docs/commands/fd-discuss.md +28 -0
  239. package/docs/commands/fd-evaluate-risk.md +134 -0
  240. package/docs/commands/fd-fix-bug.md +24 -0
  241. package/docs/commands/fd-guarded-edit.md +105 -0
  242. package/docs/commands/fd-map-codebase.md +27 -0
  243. package/docs/commands/fd-multi-repo.md +63 -0
  244. package/docs/commands/fd-new-feature.md +25 -0
  245. package/docs/commands/fd-new-project.md +24 -0
  246. package/docs/commands/fd-plan.md +33 -0
  247. package/docs/commands/fd-progress.md +11 -0
  248. package/docs/commands/fd-resume.md +10 -0
  249. package/docs/commands/fd-review-code.md +29 -0
  250. package/docs/commands/fd-roadmap.md +10 -0
  251. package/docs/commands/fd-settings.md +10 -0
  252. package/docs/commands/fd-write-docs.md +10 -0
  253. package/docs/commands.md +476 -0
  254. package/docs/configuration.md +211 -0
  255. package/docs/feature-integration-architecture.md +255 -0
  256. package/docs/index.md +75 -0
  257. package/docs/installation.md +134 -0
  258. package/docs/intelligence.md +294 -0
  259. package/docs/multi-repo.md +201 -0
  260. package/docs/notifications.md +170 -0
  261. package/docs/parallel-execution.md +227 -0
  262. package/docs/quick-start.md +174 -0
  263. package/docs/rules.md +459 -0
  264. package/docs/skills.md +408 -0
  265. package/docs/workflows.md +376 -0
  266. package/package.json +58 -0
  267. package/postinstall.mjs +102 -0
  268. package/src/rules/README.md +37 -0
  269. package/src/rules/common/agent-orchestration.md +86 -0
  270. package/src/rules/common/coding-style.md +120 -0
  271. package/src/rules/common/git-workflow.md +77 -0
  272. package/src/rules/common/security.md +94 -0
  273. package/src/rules/common/testing.md +105 -0
  274. package/src/rules/golang/patterns.md +187 -0
  275. package/src/rules/java/patterns.md +204 -0
  276. package/src/rules/python/patterns.md +141 -0
  277. package/src/rules/rust/patterns.md +210 -0
  278. package/src/rules/typescript/patterns.md +168 -0
  279. package/src/skills/api-design/SKILL.md +143 -0
  280. package/src/skills/arch-constraint-guard/SKILL.md +61 -0
  281. package/src/skills/blast-radius-preview/SKILL.md +65 -0
  282. package/src/skills/change-impact-radar/SKILL.md +63 -0
  283. package/src/skills/code-review/SKILL.md +108 -0
  284. package/src/skills/code-tour/SKILL.md +101 -0
  285. package/src/skills/codebase-mapping/SKILL.md +87 -0
  286. package/src/skills/codebase-onboarding/SKILL.md +133 -0
  287. package/src/skills/confidence-aware-planning/SKILL.md +67 -0
  288. package/src/skills/context-load/SKILL.md +63 -0
  289. package/src/skills/debug-flow/SKILL.md +75 -0
  290. package/src/skills/decision-trace/SKILL.md +72 -0
  291. package/src/skills/dependency-audit/SKILL.md +126 -0
  292. package/src/skills/deploy-check/SKILL.md +87 -0
  293. package/src/skills/documentation-writer/SKILL.md +154 -0
  294. package/src/skills/failure-replay-engine/SKILL.md +59 -0
  295. package/src/skills/git-release/SKILL.md +94 -0
  296. package/src/skills/git-workflow/SKILL.md +177 -0
  297. package/src/skills/golang-patterns/SKILL.md +511 -0
  298. package/src/skills/human-review-routing/SKILL.md +65 -0
  299. package/src/skills/intent-translator/SKILL.md +57 -0
  300. package/src/skills/java-patterns/SKILL.md +479 -0
  301. package/src/skills/multi-repo/SKILL.md +187 -0
  302. package/src/skills/parallel-execute/SKILL.md +92 -0
  303. package/src/skills/patch-trust-score/SKILL.md +44 -0
  304. package/src/skills/performance-profiling/SKILL.md +153 -0
  305. package/src/skills/plan-task/SKILL.md +101 -0
  306. package/src/skills/python-patterns/SKILL.md +529 -0
  307. package/src/skills/refactor-guide/SKILL.md +117 -0
  308. package/src/skills/regression-prediction/SKILL.md +57 -0
  309. package/src/skills/repo-memory-graph/SKILL.md +49 -0
  310. package/src/skills/rust-patterns/SKILL.md +492 -0
  311. package/src/skills/security-scan/SKILL.md +91 -0
  312. package/src/skills/self-healing-policies/SKILL.md +76 -0
  313. package/src/skills/tdd-workflow/SKILL.md +126 -0
  314. package/src/skills/test-coverage/SKILL.md +94 -0
  315. package/src/skills/test-gap-detector/SKILL.md +58 -0
  316. package/src/skills/volatility-map/SKILL.md +52 -0
  317. package/src/workflows/debug-flow.md +119 -0
  318. package/src/workflows/deploy-check-flow.md +98 -0
  319. package/src/workflows/discuss-flow.md +97 -0
  320. package/src/workflows/execute-flow.md +233 -0
  321. package/src/workflows/execute-phase.md +142 -0
  322. package/src/workflows/fix-bug-flow.md +210 -0
  323. package/src/workflows/map-codebase-flow.md +92 -0
  324. package/src/workflows/multi-repo-flow.md +226 -0
  325. package/src/workflows/parallel-execution-flow.md +236 -0
  326. package/src/workflows/plan-flow.md +126 -0
  327. package/src/workflows/plan-phase.md +101 -0
  328. package/src/workflows/refactor-flow.md +122 -0
  329. package/src/workflows/review-code-flow.md +105 -0
  330. package/src/workflows/spec-driven-flow.md +43 -0
  331. package/src/workflows/write-docs-flow.md +95 -0
@@ -0,0 +1,227 @@
1
+ # Parallel Execution
2
+
3
+ FlowDeck can coordinate multiple agents working simultaneously on independent tasks. This is managed by the `@parallel-coordinator` agent using a wave-based execution model.
4
+
5
+ ---
6
+
7
+ ## When to Use Parallel Execution
8
+
9
+ Parallel execution pays off when:
10
+
11
+ - A feature decomposes into clearly independent tracks (research, implementation, documentation)
12
+ - The codebase has well-separated modules with distinct file ownership
13
+ - Review and security audit need to happen simultaneously (they always can)
14
+ - Estimated total work exceeds 30 minutes
15
+
16
+ ## When NOT to Use It
17
+
18
+ Avoid parallel execution when:
19
+
20
+ - Total estimated work is under 30 minutes — coordination overhead outweighs the gain
21
+ - File ownership is unclear — parallel agents editing the same files produce merge conflicts
22
+ - Task B depends directly on task A's output — sequential is correct here, not parallel
23
+
24
+ ---
25
+
26
+ ## The WAVE TABLE
27
+
28
+ When `@parallel-coordinator` plans work, it produces a WAVE TABLE that maps each wave to its agents, and records any inter-wave dependencies:
29
+
30
+ ```
31
+ ╔══════════════════════════════════════════════════════════════╗
32
+ ║ WAVE TABLE — [Feature Name] ║
33
+ ╠══════════════════════════════════════════════════════════════╣
34
+ ║ Wave 1 (parallel) │ @researcher + @code-explorer ║
35
+ ║ Wave 2 (serial) │ @architect ║
36
+ ║ Wave 3 (parallel) │ @coder + @tester ║
37
+ ║ Wave 4 (parallel) │ @reviewer + @security-auditor ║
38
+ ╠══════════════════════════════════════════════════════════════╣
39
+ ║ Dependency lock: │ Wave 3 blocked on Wave 2 output ║
40
+ ╚══════════════════════════════════════════════════════════════╝
41
+ ```
42
+
43
+ The dependency lock line explicitly documents which wave gates are in effect. `@parallel-coordinator` enforces these locks — Wave 3 will not begin until Wave 2 output is confirmed available.
44
+
45
+ ---
46
+
47
+ ## Standard 4-Wave Pattern
48
+
49
+ ### Wave 1 — Research (always parallel)
50
+
51
+ **Agents:** `@researcher` + `@code-explorer`
52
+
53
+ These two agents run simultaneously because neither depends on the other's output.
54
+
55
+ - **`@researcher`** — gathers external context: API documentation, library docs, relevant RFCs, prior art, and best practices for the problem domain
56
+ - **`@code-explorer`** — maps the existing codebase: which patterns are in use, which modules will be affected, which conventions must be followed
57
+
58
+ Both results feed into Wave 2 as inputs. `@architect` should not begin until both are complete.
59
+
60
+ ---
61
+
62
+ ### Wave 2 — Design (always serial)
63
+
64
+ **Agent:** `@architect`
65
+
66
+ Wave 2 is intentionally serial. Architecture decisions are the foundation everything else builds on — running `@coder` before `@architect` is done produces code that must be thrown away.
67
+
68
+ `@architect` consumes Wave 1 outputs and produces:
69
+
70
+ - **Interface contracts** — function signatures, type definitions, API shapes
71
+ - **Data models** — schemas, entity relationships, persistence strategy
72
+ - **ADRs (Architecture Decision Records)** — the key decisions made and the alternatives rejected, with rationale
73
+
74
+ Wave 2 output is written to `.planning/phases/*/ARCH.md` and is the authoritative specification for Wave 3.
75
+
76
+ ---
77
+
78
+ ### Wave 3 — Execution (usually parallel)
79
+
80
+ **Agents:** `@coder` + `@tester`
81
+
82
+ `@coder` and `@tester` can run in parallel because both work from the same Wave 2 interface contracts — neither needs to see the other's actual implementation.
83
+
84
+ - **`@coder`** — implements the interfaces and data models specified by `@architect`. Works top-down from contracts, not bottom-up from intuition.
85
+ - **`@tester`** — writes tests against the same Wave 2 interface contracts. Because tests are written to the contract (not the implementation), they are valid before `@coder` finishes.
86
+
87
+ When Wave 3 completes, tests should be passing against the new implementation. If they are not, `@coder` and `@tester` reconcile before Wave 4 begins.
88
+
89
+ > **Note:** Wave 3 is marked "usually parallel" because some features have sequential implementation requirements — for example, a migration that must run before the new code can be tested. `@parallel-coordinator` identifies these cases from the Wave 2 output and adjusts accordingly.
90
+
91
+ ---
92
+
93
+ ### Wave 4 — Verification (always parallel)
94
+
95
+ **Agents:** `@reviewer` + `@security-auditor`
96
+
97
+ Both agents review the same codebase snapshot but look for different issues — they can always run in parallel.
98
+
99
+ - **`@reviewer`** — checks code quality, logic correctness, error handling completeness, naming, and adherence to the project's coding standards
100
+ - **`@security-auditor`** — runs through the OWASP checklist, checks authentication and authorization logic, scans for injection vulnerabilities, and verifies that no secrets are present in the diff
101
+
102
+ Wave 4 produces a joint findings report. Findings are classified as:
103
+
104
+ | Severity | Meaning |
105
+ |----------|---------|
106
+ | **Critical** | Must be resolved before the code is merged |
107
+ | **Major** | Should be resolved; skipping requires explicit justification |
108
+ | **Minor** | Suggestions; no blocking requirement |
109
+
110
+ If Critical findings exist, the flow returns to Wave 3 (`@coder`) for remediation before re-entering Wave 4.
111
+
112
+ ---
113
+
114
+ ## Triggering Parallel Execution
115
+
116
+ ### Automatic (via `/fd-new-feature`)
117
+
118
+ ```
119
+ /fd-new-feature "payment integration with Stripe"
120
+ ```
121
+
122
+ The `@orchestrator` estimates scope for every `/fd-new-feature` call. If the feature exceeds approximately 30 minutes of estimated work, `@orchestrator` automatically hands off to `@parallel-coordinator`, which builds the WAVE TABLE and begins Wave 1.
123
+
124
+ You do not need to specify parallel execution — it is selected based on scope.
125
+
126
+ ### Manual (direct invocation)
127
+
128
+ For work that does not go through `/fd-new-feature`, invoke `@parallel-coordinator` directly:
129
+
130
+ ```
131
+ @parallel-coordinator I need to implement the notification system.
132
+ Track 1: email notifications via SendGrid
133
+ Track 2: push notifications via Firebase FCM
134
+ Track 3: SMS notifications via Twilio
135
+ ```
136
+
137
+ `@parallel-coordinator` will:
138
+ 1. Identify which tracks are fully independent
139
+ 2. Build a WAVE TABLE appropriate for the work
140
+ 3. Manage agent dispatch, output collection, and inter-wave handoffs
141
+
142
+ ---
143
+
144
+ ## Merge Protocol
145
+
146
+ After parallel waves complete, `@parallel-coordinator` classifies the combined output by conflict type:
147
+
148
+ - **Additive** — each agent touched different files and different modules. These are merged automatically with no manual review required.
149
+ - **Structural** — agents touched the same module but made compatible changes (e.g., both added new functions to the same file). `@parallel-coordinator` merges and flags the overlapping area for `@reviewer`.
150
+ - **Contradictory** — agents produced conflicting design decisions (e.g., `@coder` implemented a REST interface while `@tester` assumed a message queue). These are escalated to `@architect` for resolution before any merge occurs.
151
+
152
+ The merge classification is written to `.planning/phases/*/MERGE.md` so the resolution is traceable.
153
+
154
+ ---
155
+
156
+ ## Using the `run-parallel` Tool
157
+
158
+ The `run-parallel` plugin tool is available in all FlowDeck sessions. It provides lower-level control over parallel dispatch when you want to coordinate agents yourself without going through `@parallel-coordinator`:
159
+
160
+ ```
161
+ Use the run-parallel tool to execute @researcher and @code-explorer simultaneously
162
+ on the topic of rate-limiting strategies for REST APIs.
163
+ ```
164
+
165
+ ```
166
+ Use the run-parallel tool to run @reviewer on src/payments/ and
167
+ @security-auditor on src/payments/ at the same time, then combine their findings.
168
+ ```
169
+
170
+ `run-parallel` is best used when:
171
+ - You have exactly two independent tasks and do not need full WAVE TABLE management
172
+ - You want to parallelize review and audit on a specific directory after manual edits
173
+ - You are running a one-off investigation, not a full feature pipeline
174
+
175
+ For full feature work, prefer `/fd-new-feature` or direct `@parallel-coordinator` invocation over the `run-parallel` tool.
176
+
177
+ ---
178
+
179
+ ## Using the `delegate` Tool
180
+
181
+ The `delegate` tool runs a single agent in an isolated child session and returns its output. Use it when you need a focused sub-task completed by a specific agent without disrupting the current session context:
182
+
183
+ ```
184
+ Use the delegate tool to ask @security-auditor to review src/auth/login.ts
185
+ and report back any vulnerabilities found.
186
+ ```
187
+
188
+ ```
189
+ Use the delegate tool with context "existing schema: ..." to ask @architect to
190
+ propose a migration plan.
191
+ ```
192
+
193
+ `delegate` supports an optional `context` field — any string prepended to the agent's prompt. This is useful for passing output from a prior step without polluting the current conversation.
194
+
195
+ ---
196
+
197
+ ## Using the `run-pipeline` Tool
198
+
199
+ The `run-pipeline` tool chains agents sequentially: each step's output becomes part of the next step's input. This is the right tool when tasks must happen in order and each depends on the previous result:
200
+
201
+ ```
202
+ Use the run-pipeline tool with steps:
203
+ 1. agent: planner, prompt: "Analyze the codebase and produce an implementation plan for the auth refactor"
204
+ 2. agent: coder, prompt: "Implement the plan"
205
+ 3. agent: reviewer, prompt: "Review the implementation for correctness and security"
206
+ ```
207
+
208
+ Key behaviors:
209
+ - Each step gets its own fresh child session (no hidden state accumulates between steps)
210
+ - The previous step's text output is automatically prepended to the next step's prompt
211
+ - Set `abort_on_failure: false` to continue the pipeline even if a step fails
212
+ - Provide `initial_context` to seed the first step with prior information
213
+
214
+ ---
215
+
216
+ ## Implementation Notes
217
+
218
+ All three dispatch tools (`run-parallel`, `delegate`, `run-pipeline`) create real OpenCode child sessions via `client.session.create` and `client.session.prompt`. They:
219
+
220
+ - Use `parentID` to link child sessions to the current session
221
+ - Check both transport-level errors (`response.error`) and agent-level errors (`response.data.info.error`)
222
+ - Register an abort listener on the parent context so child sessions are cancelled if the parent aborts
223
+ - Return structured JSON with per-task/step results including `session_id`, `success`, and `duration_ms`
224
+
225
+ ---
226
+
227
+ ← [Back to Index](index.md)
@@ -0,0 +1,174 @@
1
+ # Quick Start
2
+
3
+ Get FlowDeck running on a project in 15 minutes.
4
+
5
+ ---
6
+
7
+ ## Step 0: Verify the Installation
8
+
9
+ Before opening OpenCode, confirm the install completed successfully:
10
+
11
+ ```bash
12
+ ls ~/.config/opencode/agent/ | grep -c "\.md" # expect 23+
13
+ ls ~/.config/opencode/skills/ # expect 24 directories
14
+ ls ~/.config/opencode/command/ # expect 16 files
15
+ ```
16
+
17
+ If any count is short, re-run the installer. See [Installation](installation.md) for details.
18
+
19
+ ---
20
+
21
+ ## Step 1: Open a Project in OpenCode
22
+
23
+ Navigate to your project directory and start OpenCode:
24
+
25
+ ```bash
26
+ cd my-project
27
+ opencode
28
+ ```
29
+
30
+ FlowDeck activates automatically because `@dv.nghiem/flowdeck` is registered in `~/.config/opencode/opencode.json`. All agents, skills, and commands are available immediately.
31
+
32
+ ---
33
+
34
+ ## Step 2: Initialize FlowDeck
35
+
36
+ Run the setup command inside the OpenCode session:
37
+
38
+ ```
39
+ /fd-new-project MyApp
40
+ ```
41
+
42
+ This creates the `.planning/` directory at your project root with the following structure:
43
+
44
+ ```
45
+ .planning/
46
+ ├── PROJECT.md # Project context: name, goals, constraints, tech stack
47
+ ├── STATE.md # Current execution state, tracked by all agents
48
+ ├── ROADMAP.md # Phase definitions and milestones
49
+ └── config.json # FlowDeck project configuration
50
+ ```
51
+
52
+ You will be prompted to fill in basic project details. The more context you provide in `PROJECT.md`, the better agents perform throughout the workflow.
53
+
54
+ ---
55
+
56
+ ## Step 3: Map the Codebase (existing projects only)
57
+
58
+ If you are adding FlowDeck to an existing project rather than starting from scratch, run:
59
+
60
+ ```
61
+ /fd-map-codebase
62
+ ```
63
+
64
+ `@mapper` analyzes your source tree and generates `.codebase/` documentation files:
65
+
66
+ - `.codebase/STACK.md` — tech stack with detected versions and frameworks
67
+ - `.codebase/ARCHITECTURE.md` — component structure and data flow between modules
68
+ - `.codebase/CONVENTIONS.md` — naming patterns, code style, and project-specific idioms
69
+
70
+ All subsequent agents read these files for context. Skip this step for brand-new projects.
71
+
72
+ ---
73
+
74
+ ## Step 4: Start a Discussion
75
+
76
+ Requirements gathering comes before planning. Run:
77
+
78
+ ```
79
+ /fd-discuss 1
80
+ ```
81
+
82
+ `@discusser` asks structured questions about your goals, constraints, and success criteria — one question at a time. Each answer is numbered and tracked as a decision (`D-01`, `D-02`, …).
83
+
84
+ When you finish answering, the decisions are saved to `.planning/phases/phase-1/DISCUSS.md`.
85
+
86
+ **Tips:**
87
+ - Answer specifically. `@discusser` follows up on vague responses.
88
+ - Explicit "out of scope" decisions are as useful as "in scope" ones — they prevent scope creep later.
89
+ - The session ends with: `"Requirements gathering complete. N decisions recorded."`
90
+
91
+ ---
92
+
93
+ ## Step 5: Create an Implementation Plan
94
+
95
+ With requirements captured, generate the plan:
96
+
97
+ ```
98
+ /fd-plan 1
99
+ ```
100
+
101
+ `@flowdeck-planner` reads `DISCUSS.md` and produces a wave-structured `PLAN.md` in `.planning/phases/phase-1/`. Then `@flowdeck-plan-checker` reviews it for quality — checking that task sizes are reasonable, success criteria are specific, and wave dependencies are correct.
102
+
103
+ You are shown the plan and prompted for confirmation. **Type `CONFIRMED` to allow execution to proceed.** Review carefully before confirming:
104
+
105
+ - Are success criteria observable and specific?
106
+ - Are individual tasks sized to 1–3 hours?
107
+ - Do wave dependencies reflect the actual build order?
108
+
109
+ ---
110
+
111
+ ## Step 6: Execute a Feature
112
+
113
+ Once the plan is confirmed, start implementation:
114
+
115
+ ```
116
+ /fd-new-feature "user authentication with JWT"
117
+ ```
118
+
119
+ `@orchestrator` reads `STATE.md` and `PLAN.md`, then delegates work to specialist agents in wave order:
120
+
121
+ 1. **Wave 1** — `@architect` designs the component structure and API contracts
122
+ 2. **Wave 2** — `@coder` and `@researcher` implement in parallel (independent tasks)
123
+ 3. **Wave 3** — `@tester` writes and runs tests against the completed implementation
124
+ 4. **Wave 4** — `@reviewer` reviews the full changeset
125
+
126
+ You see progress updates as each wave completes. Independent tasks within a wave run simultaneously via the `run-parallel` tool.
127
+
128
+ ---
129
+
130
+ ## Step 7: Review the Code
131
+
132
+ After implementation, run the review phase against staged changes:
133
+
134
+ ```
135
+ /fd-review-code staged
136
+ ```
137
+
138
+ `@reviewer`, `@security-auditor`, and `@tester` run in parallel. Their findings are aggregated into a single report ranked by severity: Critical → High → Medium → Pass.
139
+
140
+ Address any Critical or High findings before merging.
141
+
142
+ ---
143
+
144
+ ## Step 8: Save State
145
+
146
+ Before closing OpenCode, checkpoint your progress:
147
+
148
+ ```
149
+ /fd-checkpoint
150
+ ```
151
+
152
+ This writes the current execution state to `.planning/STATE.md`. To reload context in a future session:
153
+
154
+ ```
155
+ /fd-resume
156
+ ```
157
+
158
+ `/fd-resume` reads `STATE.md` and the active `PLAN.md` and restores full context for all agents.
159
+
160
+ ---
161
+
162
+ ## Tips
163
+
164
+ > **Check status at any time** — `/fd-progress` prints the current state, active plan, and a summary of recent results without modifying anything.
165
+
166
+ > **Context after a restart** — always run `/fd-resume` at the start of a new OpenCode session on a project that was previously active. Agents have no memory between sessions without it.
167
+
168
+ > **Follow the "What Next?" prompt** — after each FlowDeck command completes, the orchestrating agent presents a set of suggested next steps. Reading these keeps you on the intended workflow path.
169
+
170
+ > **Skip steps for small tasks** — for a quick bug fix, you do not need to run `/fd-discuss` and `/fd-plan`. Use `/fd-fix-bug` directly and let `@debug-specialist` handle the full cycle.
171
+
172
+ ---
173
+
174
+ ← [Back to Index](index.md)