forge-server 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 (412) hide show
  1. package/.claude/hooks/worktree-create.sh +64 -0
  2. package/.claude/hooks/worktree-remove.sh +57 -0
  3. package/.claude/settings.local.json +29 -0
  4. package/.forge/knowledge/conventions.yaml +1 -0
  5. package/.forge/knowledge/decisions.yaml +1 -0
  6. package/.forge/knowledge/gotchas.yaml +1 -0
  7. package/.forge/knowledge/patterns.yaml +1 -0
  8. package/.forge/manifest.yaml +6 -0
  9. package/CLAUDE.md +144 -0
  10. package/bin/setup-forge.sh +132 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +553 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/context/codebase.d.ts +57 -0
  16. package/dist/context/codebase.d.ts.map +1 -0
  17. package/dist/context/codebase.js +301 -0
  18. package/dist/context/codebase.js.map +1 -0
  19. package/dist/context/injector.d.ts +147 -0
  20. package/dist/context/injector.d.ts.map +1 -0
  21. package/dist/context/injector.js +533 -0
  22. package/dist/context/injector.js.map +1 -0
  23. package/dist/context/memory.d.ts +32 -0
  24. package/dist/context/memory.d.ts.map +1 -0
  25. package/dist/context/memory.js +140 -0
  26. package/dist/context/memory.js.map +1 -0
  27. package/dist/context/session-index.d.ts +54 -0
  28. package/dist/context/session-index.d.ts.map +1 -0
  29. package/dist/context/session-index.js +265 -0
  30. package/dist/context/session-index.js.map +1 -0
  31. package/dist/context/session.d.ts +42 -0
  32. package/dist/context/session.d.ts.map +1 -0
  33. package/dist/context/session.js +121 -0
  34. package/dist/context/session.js.map +1 -0
  35. package/dist/index.d.ts +3 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +37 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/ingestion/chunker.d.ts +19 -0
  40. package/dist/ingestion/chunker.d.ts.map +1 -0
  41. package/dist/ingestion/chunker.js +189 -0
  42. package/dist/ingestion/chunker.js.map +1 -0
  43. package/dist/ingestion/embedder.d.ts +45 -0
  44. package/dist/ingestion/embedder.d.ts.map +1 -0
  45. package/dist/ingestion/embedder.js +152 -0
  46. package/dist/ingestion/embedder.js.map +1 -0
  47. package/dist/ingestion/git-analyzer.d.ts +77 -0
  48. package/dist/ingestion/git-analyzer.d.ts.map +1 -0
  49. package/dist/ingestion/git-analyzer.js +437 -0
  50. package/dist/ingestion/git-analyzer.js.map +1 -0
  51. package/dist/ingestion/indexer.d.ts +79 -0
  52. package/dist/ingestion/indexer.d.ts.map +1 -0
  53. package/dist/ingestion/indexer.js +766 -0
  54. package/dist/ingestion/indexer.js.map +1 -0
  55. package/dist/ingestion/markdown-chunker.d.ts +19 -0
  56. package/dist/ingestion/markdown-chunker.d.ts.map +1 -0
  57. package/dist/ingestion/markdown-chunker.js +243 -0
  58. package/dist/ingestion/markdown-chunker.js.map +1 -0
  59. package/dist/ingestion/markdown-knowledge.d.ts +21 -0
  60. package/dist/ingestion/markdown-knowledge.d.ts.map +1 -0
  61. package/dist/ingestion/markdown-knowledge.js +129 -0
  62. package/dist/ingestion/markdown-knowledge.js.map +1 -0
  63. package/dist/ingestion/parser.d.ts +20 -0
  64. package/dist/ingestion/parser.d.ts.map +1 -0
  65. package/dist/ingestion/parser.js +429 -0
  66. package/dist/ingestion/parser.js.map +1 -0
  67. package/dist/ingestion/watcher.d.ts +28 -0
  68. package/dist/ingestion/watcher.d.ts.map +1 -0
  69. package/dist/ingestion/watcher.js +147 -0
  70. package/dist/ingestion/watcher.js.map +1 -0
  71. package/dist/knowledge/hydrator.d.ts +37 -0
  72. package/dist/knowledge/hydrator.d.ts.map +1 -0
  73. package/dist/knowledge/hydrator.js +220 -0
  74. package/dist/knowledge/hydrator.js.map +1 -0
  75. package/dist/knowledge/registry.d.ts +129 -0
  76. package/dist/knowledge/registry.d.ts.map +1 -0
  77. package/dist/knowledge/registry.js +361 -0
  78. package/dist/knowledge/registry.js.map +1 -0
  79. package/dist/knowledge/search.d.ts +114 -0
  80. package/dist/knowledge/search.d.ts.map +1 -0
  81. package/dist/knowledge/search.js +428 -0
  82. package/dist/knowledge/search.js.map +1 -0
  83. package/dist/knowledge/store.d.ts +76 -0
  84. package/dist/knowledge/store.d.ts.map +1 -0
  85. package/dist/knowledge/store.js +230 -0
  86. package/dist/knowledge/store.js.map +1 -0
  87. package/dist/learning/confidence.d.ts +30 -0
  88. package/dist/learning/confidence.d.ts.map +1 -0
  89. package/dist/learning/confidence.js +165 -0
  90. package/dist/learning/confidence.js.map +1 -0
  91. package/dist/learning/patterns.d.ts +52 -0
  92. package/dist/learning/patterns.d.ts.map +1 -0
  93. package/dist/learning/patterns.js +290 -0
  94. package/dist/learning/patterns.js.map +1 -0
  95. package/dist/learning/trajectory.d.ts +55 -0
  96. package/dist/learning/trajectory.d.ts.map +1 -0
  97. package/dist/learning/trajectory.js +200 -0
  98. package/dist/learning/trajectory.js.map +1 -0
  99. package/dist/memory/memory-compat.d.ts +100 -0
  100. package/dist/memory/memory-compat.d.ts.map +1 -0
  101. package/dist/memory/memory-compat.js +146 -0
  102. package/dist/memory/memory-compat.js.map +1 -0
  103. package/dist/memory/observation-store.d.ts +57 -0
  104. package/dist/memory/observation-store.d.ts.map +1 -0
  105. package/dist/memory/observation-store.js +154 -0
  106. package/dist/memory/observation-store.js.map +1 -0
  107. package/dist/memory/session-tracker.d.ts +81 -0
  108. package/dist/memory/session-tracker.d.ts.map +1 -0
  109. package/dist/memory/session-tracker.js +262 -0
  110. package/dist/memory/session-tracker.js.map +1 -0
  111. package/dist/pipeline/engine.d.ts +179 -0
  112. package/dist/pipeline/engine.d.ts.map +1 -0
  113. package/dist/pipeline/engine.js +691 -0
  114. package/dist/pipeline/engine.js.map +1 -0
  115. package/dist/pipeline/events.d.ts +54 -0
  116. package/dist/pipeline/events.d.ts.map +1 -0
  117. package/dist/pipeline/events.js +157 -0
  118. package/dist/pipeline/events.js.map +1 -0
  119. package/dist/pipeline/parallel.d.ts +83 -0
  120. package/dist/pipeline/parallel.d.ts.map +1 -0
  121. package/dist/pipeline/parallel.js +277 -0
  122. package/dist/pipeline/parallel.js.map +1 -0
  123. package/dist/pipeline/state-machine.d.ts +65 -0
  124. package/dist/pipeline/state-machine.d.ts.map +1 -0
  125. package/dist/pipeline/state-machine.js +176 -0
  126. package/dist/pipeline/state-machine.js.map +1 -0
  127. package/dist/query/graph-queries.d.ts +84 -0
  128. package/dist/query/graph-queries.d.ts.map +1 -0
  129. package/dist/query/graph-queries.js +216 -0
  130. package/dist/query/graph-queries.js.map +1 -0
  131. package/dist/query/hybrid-search.d.ts +34 -0
  132. package/dist/query/hybrid-search.d.ts.map +1 -0
  133. package/dist/query/hybrid-search.js +263 -0
  134. package/dist/query/hybrid-search.js.map +1 -0
  135. package/dist/query/intent-detector.d.ts +35 -0
  136. package/dist/query/intent-detector.d.ts.map +1 -0
  137. package/dist/query/intent-detector.js +115 -0
  138. package/dist/query/intent-detector.js.map +1 -0
  139. package/dist/query/ranking.d.ts +57 -0
  140. package/dist/query/ranking.d.ts.map +1 -0
  141. package/dist/query/ranking.js +109 -0
  142. package/dist/query/ranking.js.map +1 -0
  143. package/dist/server.d.ts +3 -0
  144. package/dist/server.d.ts.map +1 -0
  145. package/dist/server.js +291 -0
  146. package/dist/server.js.map +1 -0
  147. package/dist/storage/falkordb-store.d.ts +73 -0
  148. package/dist/storage/falkordb-store.d.ts.map +1 -0
  149. package/dist/storage/falkordb-store.js +346 -0
  150. package/dist/storage/falkordb-store.js.map +1 -0
  151. package/dist/storage/file-cache.d.ts +32 -0
  152. package/dist/storage/file-cache.d.ts.map +1 -0
  153. package/dist/storage/file-cache.js +115 -0
  154. package/dist/storage/file-cache.js.map +1 -0
  155. package/dist/storage/interfaces.d.ts +151 -0
  156. package/dist/storage/interfaces.d.ts.map +1 -0
  157. package/dist/storage/interfaces.js +7 -0
  158. package/dist/storage/interfaces.js.map +1 -0
  159. package/dist/storage/qdrant-store.d.ts +110 -0
  160. package/dist/storage/qdrant-store.d.ts.map +1 -0
  161. package/dist/storage/qdrant-store.js +467 -0
  162. package/dist/storage/qdrant-store.js.map +1 -0
  163. package/dist/storage/schema.d.ts +4 -0
  164. package/dist/storage/schema.d.ts.map +1 -0
  165. package/dist/storage/schema.js +136 -0
  166. package/dist/storage/schema.js.map +1 -0
  167. package/dist/storage/sqlite.d.ts +35 -0
  168. package/dist/storage/sqlite.d.ts.map +1 -0
  169. package/dist/storage/sqlite.js +132 -0
  170. package/dist/storage/sqlite.js.map +1 -0
  171. package/dist/tools/collaboration-tools.d.ts +111 -0
  172. package/dist/tools/collaboration-tools.d.ts.map +1 -0
  173. package/dist/tools/collaboration-tools.js +174 -0
  174. package/dist/tools/collaboration-tools.js.map +1 -0
  175. package/dist/tools/context-tools.d.ts +293 -0
  176. package/dist/tools/context-tools.d.ts.map +1 -0
  177. package/dist/tools/context-tools.js +437 -0
  178. package/dist/tools/context-tools.js.map +1 -0
  179. package/dist/tools/graph-tools.d.ts +129 -0
  180. package/dist/tools/graph-tools.d.ts.map +1 -0
  181. package/dist/tools/graph-tools.js +237 -0
  182. package/dist/tools/graph-tools.js.map +1 -0
  183. package/dist/tools/ingestion-tools.d.ts +96 -0
  184. package/dist/tools/ingestion-tools.d.ts.map +1 -0
  185. package/dist/tools/ingestion-tools.js +90 -0
  186. package/dist/tools/ingestion-tools.js.map +1 -0
  187. package/dist/tools/learning-tools.d.ts +168 -0
  188. package/dist/tools/learning-tools.d.ts.map +1 -0
  189. package/dist/tools/learning-tools.js +158 -0
  190. package/dist/tools/learning-tools.js.map +1 -0
  191. package/dist/tools/memory-tools.d.ts +183 -0
  192. package/dist/tools/memory-tools.d.ts.map +1 -0
  193. package/dist/tools/memory-tools.js +197 -0
  194. package/dist/tools/memory-tools.js.map +1 -0
  195. package/dist/tools/phase-tools.d.ts +954 -0
  196. package/dist/tools/phase-tools.d.ts.map +1 -0
  197. package/dist/tools/phase-tools.js +1215 -0
  198. package/dist/tools/phase-tools.js.map +1 -0
  199. package/dist/tools/pipeline-tools.d.ts +140 -0
  200. package/dist/tools/pipeline-tools.d.ts.map +1 -0
  201. package/dist/tools/pipeline-tools.js +162 -0
  202. package/dist/tools/pipeline-tools.js.map +1 -0
  203. package/dist/tools/registration-tools.d.ts +220 -0
  204. package/dist/tools/registration-tools.d.ts.map +1 -0
  205. package/dist/tools/registration-tools.js +391 -0
  206. package/dist/tools/registration-tools.js.map +1 -0
  207. package/dist/util/circuit-breaker.d.ts +75 -0
  208. package/dist/util/circuit-breaker.d.ts.map +1 -0
  209. package/dist/util/circuit-breaker.js +159 -0
  210. package/dist/util/circuit-breaker.js.map +1 -0
  211. package/dist/util/config.d.ts +23 -0
  212. package/dist/util/config.d.ts.map +1 -0
  213. package/dist/util/config.js +164 -0
  214. package/dist/util/config.js.map +1 -0
  215. package/dist/util/logger.d.ts +13 -0
  216. package/dist/util/logger.d.ts.map +1 -0
  217. package/dist/util/logger.js +45 -0
  218. package/dist/util/logger.js.map +1 -0
  219. package/dist/util/token-counter.d.ts +24 -0
  220. package/dist/util/token-counter.d.ts.map +1 -0
  221. package/dist/util/token-counter.js +48 -0
  222. package/dist/util/token-counter.js.map +1 -0
  223. package/dist/util/types.d.ts +525 -0
  224. package/dist/util/types.d.ts.map +1 -0
  225. package/dist/util/types.js +5 -0
  226. package/dist/util/types.js.map +1 -0
  227. package/docker-compose.yml +20 -0
  228. package/docs/plans/2026-02-27-swarm-coordination/architecture.md +203 -0
  229. package/docs/plans/2026-02-27-swarm-coordination/vision.md +57 -0
  230. package/docs/plans/completed/2026-02-26-forge-plugin-bundling/architecture.md +1 -0
  231. package/docs/plans/completed/2026-02-26-forge-plugin-bundling/vision.md +300 -0
  232. package/docs/plans/completed/2026-02-27-forge-swarm-learning/architecture.md +480 -0
  233. package/docs/plans/completed/2026-02-27-forge-swarm-learning/verification-checklist.md +462 -0
  234. package/docs/plans/completed/2026-02-27-git-history-atlassian/git-jira-plan.md +181 -0
  235. package/package.json +39 -0
  236. package/plugin/.claude-plugin/plugin.json +8 -0
  237. package/plugin/.mcp.json +15 -0
  238. package/plugin/README.md +134 -0
  239. package/plugin/agents/architect.md +367 -0
  240. package/plugin/agents/backend-specialist.md +263 -0
  241. package/plugin/agents/brainstormer.md +122 -0
  242. package/plugin/agents/data-specialist.md +266 -0
  243. package/plugin/agents/designer.md +408 -0
  244. package/plugin/agents/frontend-specialist.md +241 -0
  245. package/plugin/agents/inspector.md +406 -0
  246. package/plugin/agents/knowledge-keeper.md +443 -0
  247. package/plugin/agents/platform-engineer.md +326 -0
  248. package/plugin/agents/product-manager.md +268 -0
  249. package/plugin/agents/product-owner.md +438 -0
  250. package/plugin/agents/pulse-checker.md +73 -0
  251. package/plugin/agents/qa-strategist.md +500 -0
  252. package/plugin/agents/self-improver.md +310 -0
  253. package/plugin/agents/strategist.md +360 -0
  254. package/plugin/agents/supervisor.md +380 -0
  255. package/plugin/commands/brainstorm.md +25 -0
  256. package/plugin/commands/forge.md +88 -0
  257. package/plugin/docs/atlassian-integration.md +110 -0
  258. package/plugin/docs/workflow.md +126 -0
  259. package/plugin/skills/agent-development/.skillfish.json +10 -0
  260. package/plugin/skills/agent-development/SKILL.md +415 -0
  261. package/plugin/skills/agent-development/examples/agent-creation-prompt.md +238 -0
  262. package/plugin/skills/agent-development/examples/complete-agent-examples.md +427 -0
  263. package/plugin/skills/agent-development/references/agent-creation-system-prompt.md +207 -0
  264. package/plugin/skills/agent-development/references/system-prompt-design.md +411 -0
  265. package/plugin/skills/agent-development/references/triggering-examples.md +491 -0
  266. package/plugin/skills/agent-development/scripts/validate-agent.sh +217 -0
  267. package/plugin/skills/agent-handoff/SKILL.md +335 -0
  268. package/plugin/skills/anti-stub/SKILL.md +317 -0
  269. package/plugin/skills/brainstorm/SKILL.md +31 -0
  270. package/plugin/skills/debugging/SKILL.md +276 -0
  271. package/plugin/skills/fix/SKILL.md +62 -0
  272. package/plugin/skills/frontend-design/.skillfish.json +10 -0
  273. package/plugin/skills/frontend-design/SKILL.md +42 -0
  274. package/plugin/skills/gotchas/SKILL.md +61 -0
  275. package/plugin/skills/graph-orchestrator/SKILL.md +38 -0
  276. package/plugin/skills/history/SKILL.md +58 -0
  277. package/plugin/skills/impact/SKILL.md +59 -0
  278. package/plugin/skills/implementation-execution/SKILL.md +291 -0
  279. package/plugin/skills/index-repo/SKILL.md +55 -0
  280. package/plugin/skills/interviewing/SKILL.md +225 -0
  281. package/plugin/skills/knowledge-curation/SKILL.md +393 -0
  282. package/plugin/skills/learn/SKILL.md +69 -0
  283. package/plugin/skills/mcp-integration/.skillfish.json +10 -0
  284. package/plugin/skills/mcp-integration/SKILL.md +554 -0
  285. package/plugin/skills/mcp-integration/examples/http-server.json +20 -0
  286. package/plugin/skills/mcp-integration/examples/sse-server.json +19 -0
  287. package/plugin/skills/mcp-integration/examples/stdio-server.json +26 -0
  288. package/plugin/skills/mcp-integration/references/authentication.md +549 -0
  289. package/plugin/skills/mcp-integration/references/server-types.md +536 -0
  290. package/plugin/skills/mcp-integration/references/tool-usage.md +538 -0
  291. package/plugin/skills/nestjs/.skillfish.json +10 -0
  292. package/plugin/skills/nestjs/SKILL.md +669 -0
  293. package/plugin/skills/nestjs/drizzle-reference.md +1894 -0
  294. package/plugin/skills/nestjs/reference.md +1447 -0
  295. package/plugin/skills/nestjs/workflow-optimization.md +229 -0
  296. package/plugin/skills/parallel-dispatch/SKILL.md +308 -0
  297. package/plugin/skills/project-discovery/SKILL.md +304 -0
  298. package/plugin/skills/search/SKILL.md +56 -0
  299. package/plugin/skills/security-audit/SKILL.md +362 -0
  300. package/plugin/skills/skill-development/.skillfish.json +10 -0
  301. package/plugin/skills/skill-development/SKILL.md +637 -0
  302. package/plugin/skills/skill-development/references/skill-creator-original.md +209 -0
  303. package/plugin/skills/tdd/SKILL.md +273 -0
  304. package/plugin/skills/terminal-presentation/SKILL.md +395 -0
  305. package/plugin/skills/test-strategy/SKILL.md +365 -0
  306. package/plugin/skills/verification-protocol/SKILL.md +256 -0
  307. package/plugin/skills/visual-explainer/CHANGELOG.md +97 -0
  308. package/plugin/skills/visual-explainer/LICENSE +21 -0
  309. package/plugin/skills/visual-explainer/README.md +137 -0
  310. package/plugin/skills/visual-explainer/SKILL.md +352 -0
  311. package/plugin/skills/visual-explainer/banner.png +0 -0
  312. package/plugin/skills/visual-explainer/package.json +11 -0
  313. package/plugin/skills/visual-explainer/prompts/diff-review.md +68 -0
  314. package/plugin/skills/visual-explainer/prompts/fact-check.md +63 -0
  315. package/plugin/skills/visual-explainer/prompts/generate-slides.md +18 -0
  316. package/plugin/skills/visual-explainer/prompts/generate-web-diagram.md +10 -0
  317. package/plugin/skills/visual-explainer/prompts/plan-review.md +86 -0
  318. package/plugin/skills/visual-explainer/prompts/project-recap.md +61 -0
  319. package/plugin/skills/visual-explainer/references/css-patterns.md +1188 -0
  320. package/plugin/skills/visual-explainer/references/libraries.md +470 -0
  321. package/plugin/skills/visual-explainer/references/responsive-nav.md +212 -0
  322. package/plugin/skills/visual-explainer/references/slide-patterns.md +1403 -0
  323. package/plugin/skills/visual-explainer/templates/architecture.html +596 -0
  324. package/plugin/skills/visual-explainer/templates/data-table.html +540 -0
  325. package/plugin/skills/visual-explainer/templates/mermaid-flowchart.html +435 -0
  326. package/plugin/skills/visual-explainer/templates/slide-deck.html +913 -0
  327. package/src/cli.ts +655 -0
  328. package/src/context/.gitkeep +0 -0
  329. package/src/context/codebase.ts +393 -0
  330. package/src/context/injector.ts +797 -0
  331. package/src/context/memory.ts +187 -0
  332. package/src/context/session-index.ts +327 -0
  333. package/src/context/session.ts +152 -0
  334. package/src/index.ts +47 -0
  335. package/src/ingestion/.gitkeep +0 -0
  336. package/src/ingestion/chunker.ts +277 -0
  337. package/src/ingestion/embedder.ts +167 -0
  338. package/src/ingestion/git-analyzer.ts +545 -0
  339. package/src/ingestion/indexer.ts +984 -0
  340. package/src/ingestion/markdown-chunker.ts +337 -0
  341. package/src/ingestion/markdown-knowledge.ts +175 -0
  342. package/src/ingestion/parser.ts +475 -0
  343. package/src/ingestion/watcher.ts +182 -0
  344. package/src/knowledge/.gitkeep +0 -0
  345. package/src/knowledge/hydrator.ts +246 -0
  346. package/src/knowledge/registry.ts +463 -0
  347. package/src/knowledge/search.ts +565 -0
  348. package/src/knowledge/store.ts +262 -0
  349. package/src/learning/.gitkeep +0 -0
  350. package/src/learning/confidence.ts +193 -0
  351. package/src/learning/patterns.ts +360 -0
  352. package/src/learning/trajectory.ts +268 -0
  353. package/src/memory/.gitkeep +0 -0
  354. package/src/memory/memory-compat.ts +233 -0
  355. package/src/memory/observation-store.ts +224 -0
  356. package/src/memory/session-tracker.ts +332 -0
  357. package/src/pipeline/.gitkeep +0 -0
  358. package/src/pipeline/engine.ts +1139 -0
  359. package/src/pipeline/events.ts +253 -0
  360. package/src/pipeline/parallel.ts +394 -0
  361. package/src/pipeline/state-machine.ts +199 -0
  362. package/src/query/.gitkeep +0 -0
  363. package/src/query/graph-queries.ts +262 -0
  364. package/src/query/hybrid-search.ts +337 -0
  365. package/src/query/intent-detector.ts +131 -0
  366. package/src/query/ranking.ts +161 -0
  367. package/src/server.ts +352 -0
  368. package/src/storage/.gitkeep +0 -0
  369. package/src/storage/falkordb-store.ts +388 -0
  370. package/src/storage/file-cache.ts +141 -0
  371. package/src/storage/interfaces.ts +201 -0
  372. package/src/storage/qdrant-store.ts +557 -0
  373. package/src/storage/schema.ts +139 -0
  374. package/src/storage/sqlite.ts +168 -0
  375. package/src/tools/.gitkeep +0 -0
  376. package/src/tools/collaboration-tools.ts +208 -0
  377. package/src/tools/context-tools.ts +493 -0
  378. package/src/tools/graph-tools.ts +295 -0
  379. package/src/tools/ingestion-tools.ts +122 -0
  380. package/src/tools/learning-tools.ts +181 -0
  381. package/src/tools/memory-tools.ts +234 -0
  382. package/src/tools/phase-tools.ts +1452 -0
  383. package/src/tools/pipeline-tools.ts +188 -0
  384. package/src/tools/registration-tools.ts +450 -0
  385. package/src/util/.gitkeep +0 -0
  386. package/src/util/circuit-breaker.ts +193 -0
  387. package/src/util/config.ts +177 -0
  388. package/src/util/logger.ts +53 -0
  389. package/src/util/token-counter.ts +52 -0
  390. package/src/util/types.ts +710 -0
  391. package/tests/context/.gitkeep +0 -0
  392. package/tests/integration/.gitkeep +0 -0
  393. package/tests/knowledge/.gitkeep +0 -0
  394. package/tests/learning/.gitkeep +0 -0
  395. package/tests/pipeline/.gitkeep +0 -0
  396. package/tests/tools/.gitkeep +0 -0
  397. package/tsconfig.json +21 -0
  398. package/vitest.config.ts +10 -0
  399. package/vscode-extension/.vscodeignore +7 -0
  400. package/vscode-extension/README.md +43 -0
  401. package/vscode-extension/out/edge-collector.js +274 -0
  402. package/vscode-extension/out/edge-collector.js.map +1 -0
  403. package/vscode-extension/out/extension.js +264 -0
  404. package/vscode-extension/out/extension.js.map +1 -0
  405. package/vscode-extension/out/forge-client.js +318 -0
  406. package/vscode-extension/out/forge-client.js.map +1 -0
  407. package/vscode-extension/package-lock.json +59 -0
  408. package/vscode-extension/package.json +71 -0
  409. package/vscode-extension/src/edge-collector.ts +320 -0
  410. package/vscode-extension/src/extension.ts +269 -0
  411. package/vscode-extension/src/forge-client.ts +364 -0
  412. package/vscode-extension/tsconfig.json +19 -0
@@ -0,0 +1,229 @@
1
+ # NestJS Skill Workflow Optimization Guide
2
+
3
+ ## Overview
4
+
5
+ This document outlines optimized workflows for building NestJS applications with Drizzle ORM by leveraging parallel execution, subagent delegation, and dependency management strategies.
6
+
7
+ ## Key Optimization Principles
8
+
9
+ ### 1. Parallel Execution Strategy
10
+
11
+ Tasks that can be executed simultaneously:
12
+ - **Package Installation**: Install NestJS, Drizzle, testing, and development dependencies in parallel
13
+ - **Module Scaffolding**: Create folder structures for multiple modules concurrently
14
+ - **Interface/Type Definition**: Define DTOs and interfaces while setting up database schemas
15
+ - **Test Preparation**: Set up test configuration while writing implementation code
16
+
17
+ ### 2. Sequential Dependencies
18
+
19
+ Tasks that must follow a specific order:
20
+ 1. **Project Setup**: `npm install → nest new → cd project → install additional packages`
21
+ 2. **Database Setup**: `.env → drizzle.config.ts → schema → migrations → database service → repositories`
22
+ 3. **Feature Development**: `DTOs → Repository → Service → Controller → Module → Guards`
23
+ 4. **Testing**: `Unit tests → Integration tests → E2E tests`
24
+
25
+ ## Optimized Workflow Examples
26
+
27
+ ### Workflow 1: New NestJS Project with Drizzle ORM
28
+
29
+ ```yaml
30
+ Phase 1: Parallel Setup (Agents: 2-3)
31
+ Agent 1: Project Initialization
32
+ - Create NestJS project
33
+ - Install core dependencies
34
+ - Configure TypeScript
35
+ - Set up basic folder structure
36
+
37
+ Agent 2: Database Preparation
38
+ - Install Drizzle packages
39
+ - Configure environment files
40
+ - Set up drizzle.config.ts
41
+ - Prepare database connection
42
+
43
+ Phase 2: Core Configuration (Sequential)
44
+ - Database schema definition
45
+ - Migration generation
46
+ - Database service setup
47
+
48
+ Phase 3: Parallel Feature Development (Agents: 2-4)
49
+ Agent 1: Data Layer
50
+ - Repository implementation
51
+ - Service layer logic
52
+ - Unit tests for data layer
53
+
54
+ Agent 2: API Layer
55
+ - Controller implementation
56
+ - DTOs and validation
57
+ - Route protection
58
+
59
+ Agent 3: Security
60
+ - Authentication setup
61
+ - Guards implementation
62
+ - Security middleware
63
+
64
+ Agent 4: Documentation
65
+ - OpenAPI decorators
66
+ - API documentation
67
+ - README generation
68
+
69
+ Phase 4: Integration & Testing (Parallel)
70
+ - Integration tests
71
+ - E2E test scenarios
72
+ - Performance optimization
73
+ ```
74
+
75
+ ### Workflow 2: Adding New Feature Module
76
+
77
+ ```yaml
78
+ Step 1: Parallel Preparation
79
+ - Define feature requirements
80
+ - Create module folder structure
81
+ - Prepare DTOs and interfaces
82
+ - Set up test files
83
+
84
+ Step 2: Data Layer (Database Agent)
85
+ - Create/update schema
86
+ - Generate migrations
87
+ - Implement repository
88
+ - Write repository tests
89
+
90
+ Step 3: Business Logic (Service Agent)
91
+ - Implement service methods
92
+ - Add business validation
93
+ - Handle transactions
94
+ - Write unit tests
95
+
96
+ Step 4: API Layer (Controller Agent)
97
+ - Create controller endpoints
98
+ - Add validation pipes
99
+ - Implement guards
100
+ - Write integration tests
101
+
102
+ Step 5: Security Integration (Security Agent)
103
+ - Add route protection
104
+ - Implement role-based access
105
+ - Add audit logging
106
+ - Security tests
107
+
108
+ Step 6: Documentation (Documentation Agent)
109
+ - Add OpenAPI decorators
110
+ - Update API docs
111
+ - Create examples
112
+ - Review documentation
113
+ ```
114
+
115
+ ## Subagent Delegation Patterns
116
+
117
+ ### When to Delegate to Database Agent
118
+ - Setting up new database connections
119
+ - Complex schema migrations
120
+ - Query optimization
121
+ - Transaction management
122
+ - Database testing setup
123
+
124
+ ### When to Delegate to Security Agent
125
+ - Implementing authentication
126
+ - Setting up authorization
127
+ - Security audit requirements
128
+ - OAuth integration
129
+ - Vulnerability fixes
130
+
131
+ ### When to Delegate to Testing Agent
132
+ - Comprehensive test suite creation
133
+ - Test infrastructure setup
134
+ - CI/CD test integration
135
+ - Performance testing
136
+ - Test data management
137
+
138
+ ## Best Practices for Optimization
139
+
140
+ ### 1. Dependency Management
141
+ ```typescript
142
+ // Use async configuration for parallel setup
143
+ @Module({
144
+ imports: [
145
+ ConfigModule.forRoot({ isGlobal: true }),
146
+ DatabaseModule,
147
+ AuthModule,
148
+ ],
149
+ })
150
+ export class AppModule {}
151
+ ```
152
+
153
+ ### 2. Modular Architecture
154
+ ```typescript
155
+ // Keep modules independent for parallel development
156
+ @Module({
157
+ imports: [DatabaseModule],
158
+ controllers: [UsersController],
159
+ providers: [UsersService, UsersRepository],
160
+ exports: [UsersService],
161
+ })
162
+ export class UsersModule {}
163
+ ```
164
+
165
+ ### 3. Configuration-Driven Development
166
+ ```typescript
167
+ // Enable environment-specific parallel development
168
+ export default () => ({
169
+ database: {
170
+ url: process.env.DATABASE_URL,
171
+ poolSize: parseInt(process.env.DB_POOL_SIZE) || 10,
172
+ },
173
+ features: {
174
+ auth: process.env.ENABLE_AUTH === 'true',
175
+ caching: process.env.ENABLE_CACHE === 'true',
176
+ },
177
+ });
178
+ ```
179
+
180
+ ### 4. Test-Driven Parallel Development
181
+ ```typescript
182
+ // Write tests alongside implementation
183
+ describe('UsersService', () => {
184
+ // Test setup can run in parallel with service implementation
185
+ beforeEach(async () => {
186
+ const module = await Test.createTestingModule({
187
+ providers: [UsersService, MockRepository],
188
+ }).compile();
189
+ });
190
+ });
191
+ ```
192
+
193
+ ## Performance Optimization Techniques
194
+
195
+ ### 1. Database Optimizations
196
+ - Use connection pooling
197
+ - Implement query batching
198
+ - Add proper indexes
199
+ - Use database transactions wisely
200
+
201
+ ### 2. API Optimizations
202
+ - Implement caching strategies
203
+ - Use pagination
204
+ - Add compression middleware
205
+ - Optimize serialization
206
+
207
+ ### 3. Testing Optimizations
208
+ - Parallel test execution
209
+ - Test database reuse
210
+ - Mock external services
211
+ - Selective test runs
212
+
213
+ ## Monitoring and Feedback
214
+
215
+ ### 1. Workflow Metrics
216
+ - Track time spent in each phase
217
+ - Measure parallel execution efficiency
218
+ - Monitor bottlenecks
219
+ - Collect agent performance data
220
+
221
+ ### 2. Quality Gates
222
+ - Code reviews before merging
223
+ - Automated testing
224
+ - Security scans
225
+ - Performance benchmarks
226
+
227
+ ## Conclusion
228
+
229
+ By following these optimized workflows and leveraging specialized subagents, NestJS development with Drizzle ORM can be significantly accelerated while maintaining high code quality and architectural integrity. The key is understanding task dependencies, maximizing parallel execution, and delegating specialized work to expert subagents.
@@ -0,0 +1,308 @@
1
+ ---
2
+ name: parallel-dispatch
3
+ description: >
4
+ This skill should be used when dispatching multiple implementation agents in parallel for
5
+ concurrent work. Used by the strategist and architect agents to coordinate horizontal scaling
6
+ of frontend, backend, data, and platform specialists.
7
+ user-invocable: false
8
+ ---
9
+
10
+ # Parallel Dispatch Skill
11
+
12
+ ## When to Parallelize
13
+
14
+ Parallel dispatch is appropriate when work can be divided into independent units that do not share mutable state, do not depend on each other's outputs, and do not modify the same files. Recognize these opportunities:
15
+
16
+ - **Independent modules**: two NestJS modules that share no providers, no database tables, and no imports between them. Example: a `notifications` module and a `billing` module can be built in parallel.
17
+ - **Separate service boundaries**: a frontend agent building React pages while a backend agent builds API endpoints, provided the API contract (types, routes, response shapes) is established first.
18
+ - **Isolated UI sections**: a settings page and a dashboard page that share a design system but no local state or cross-page logic.
19
+ - **Separate infrastructure domains**: AWS CDK changes in `aws-infrastructure` and Helm/ArgoCD changes in `eks-addons-gitops` — different repos, different tools, no file conflicts.
20
+ - **Independent test suites**: unit tests for module A and unit tests for module B can be written simultaneously if the modules are independent.
21
+ - **Schema domains**: database tables for the `auth` domain and tables for the `content` domain can be designed in parallel if there are no foreign key relationships between them.
22
+
23
+ ## When NOT to Parallelize
24
+
25
+ Parallel dispatch creates coordination overhead and merge risk. Avoid it when:
26
+
27
+ - **Shared state**: two agents need to modify the same file, the same database table schema, or the same shared module. Parallel writes to the same file produce merge conflicts that waste more time than sequential execution would.
28
+ - **Sequential dependencies**: agent B's work requires agent A's output as input. Example: the backend agent must define the API response types before the frontend agent can consume them. Create the shared types sequentially first, then dispatch in parallel.
29
+ - **Cross-cutting concerns**: changes to authentication middleware, global error handling, logging infrastructure, or shared configuration affect all modules. Complete these before dispatching module-level work.
30
+ - **Small scope**: if the total work is less than 30 minutes of sequential effort, parallelization overhead (prompt engineering, coordination, convergence verification) exceeds the time saved.
31
+ - **High coupling**: if modules share many imports, call each other's services, or participate in the same transaction, they are too coupled for safe parallel implementation. Refactor the design to reduce coupling first, or implement sequentially.
32
+ - **Unfamiliar territory**: if the architecture is uncertain or the agents will need to make design decisions that affect each other, sequential implementation with feedback loops is safer than parallel implementation with potential rework.
33
+
34
+ ## Task Isolation Principles
35
+
36
+ Each dispatched agent must operate in a well-bounded scope with no ambiguity about what it owns.
37
+
38
+ ### The Isolation Checklist
39
+
40
+ Before dispatching, verify each task against this checklist:
41
+
42
+ 1. **File ownership is exclusive.** No two agents create or modify the same file. If a shared file must be modified (e.g., `app.module.ts` to register new modules), designate one agent as the owner and have others report their additions for that agent to integrate.
43
+ 2. **Directory ownership is clear.** Each agent works in a distinct directory subtree. Example: agent A owns `src/modules/auth/`, agent B owns `src/modules/content/`.
44
+ 3. **Database table ownership is exclusive.** Each agent creates/modifies only the tables in its domain. If a foreign key crosses domains, define the relationship in the architecture document and have the agent that owns the referencing table create the FK after both tables exist.
45
+ 4. **Shared types are pre-created.** Any interfaces, DTOs, or enums used by multiple agents must be created sequentially before parallel dispatch. Place these in `src/shared/` or `src/common/` and instruct all agents to import (not duplicate) them.
46
+ 5. **Environment variables are documented.** If an agent needs new env vars, it documents them in its task output rather than modifying `.env` files directly (to avoid merge conflicts).
47
+
48
+ ### The Single-Responsibility Rule
49
+
50
+ Each dispatched task should have exactly one primary deliverable. Not "build the auth module and also set up the CI pipeline." One agent, one module, one clear scope. If a task feels like it has two parts, split it into two dispatched agents.
51
+
52
+ ## Partition Strategy by Agent Type
53
+
54
+ ### Frontend Partitioning
55
+
56
+ Partition frontend work by page, feature, or component group. Each agent receives:
57
+
58
+ - The relevant section of `xd-plan.md` describing the UI for their scope.
59
+ - The API contract (endpoints, request/response types) from `architecture.md` for data fetching.
60
+ - The design system tokens and shared component inventory (so they use existing components, not create duplicates).
61
+ - A list of pages/components they own and explicitly do NOT own.
62
+
63
+ Example partition for a dashboard application:
64
+
65
+ | Agent | Scope | Files Owned |
66
+ |-------|-------|-------------|
67
+ | Frontend-A | Dashboard page, widgets, data visualization | `src/pages/dashboard/`, `src/components/widgets/` |
68
+ | Frontend-B | Settings pages, user preferences, profile | `src/pages/settings/`, `src/components/profile/` |
69
+ | Frontend-C | Navigation, layout shell, shared layout components | `src/components/layout/`, `src/components/nav/` |
70
+
71
+ Frontend-C (layout) should be dispatched first or sequentially, as pages depend on the layout shell.
72
+
73
+ ### Backend Partitioning
74
+
75
+ Partition backend work by NestJS module or endpoint group. Each agent receives:
76
+
77
+ - The relevant section of `architecture.md` describing the module's responsibilities, API endpoints, and data model.
78
+ - The database schema for their domain (tables, relationships, indexes).
79
+ - The shared DTOs/interfaces pre-created in `src/common/`.
80
+ - Clear boundaries: which endpoints, which database tables, which service methods.
81
+
82
+ Example partition for a content management backend:
83
+
84
+ | Agent | Scope | Files Owned |
85
+ |-------|-------|-------------|
86
+ | Backend-A | Auth module: login, registration, JWT, RBAC | `src/modules/auth/` |
87
+ | Backend-B | Content module: CRUD, versioning, publishing | `src/modules/content/` |
88
+ | Backend-C | Media module: upload, processing, CDN integration | `src/modules/media/` |
89
+
90
+ ### Data Partitioning
91
+
92
+ Partition data work by schema domain, migration set, or seed data category. Each agent receives:
93
+
94
+ - The relevant entity-relationship section of `architecture.md`.
95
+ - Clear table ownership (which tables to create, which to reference but not modify).
96
+ - Seed data specifications (what realistic test data to generate for their domain).
97
+ - Migration ordering constraints (if table B references table A, the migration for A must run first — specify this ordering).
98
+
99
+ Example partition:
100
+
101
+ | Agent | Scope | Tables Owned |
102
+ |-------|-------|-------------|
103
+ | Data-A | Auth schema: users, roles, permissions, sessions | `users`, `roles`, `user_roles`, `sessions` |
104
+ | Data-B | Content schema: documents, versions, categories, tags | `documents`, `versions`, `categories`, `document_tags` |
105
+
106
+ ### Platform Partitioning
107
+
108
+ Partition platform/infrastructure work by repository and resource domain. Each agent receives:
109
+
110
+ - The specific IaC repo to work in (`aws-infrastructure` vs. `eks-addons-gitops`).
111
+ - The resources to create or modify (IAM roles, S3 buckets, Helm charts, ArgoCD apps).
112
+ - The naming conventions from the project's CLAUDE.md (kebab-case identifiers, Helm chart names, namespace names, etc.).
113
+ - Cross-references to the other platform agent's work (e.g., "the IRSA role ARN from aws-infrastructure will be referenced in the Helm values in eks-addons-gitops").
114
+
115
+ Example partition:
116
+
117
+ | Agent | Scope | Repo |
118
+ |-------|-------|------|
119
+ | Platform-A | IAM roles, IRSA, ECR, RDS security groups | `aws-infrastructure` |
120
+ | Platform-B | Helm charts, ArgoCD apps, namespace config, service accounts | `eks-addons-gitops` |
121
+
122
+ ## Task Description Format
123
+
124
+ Each dispatched task must include a structured description that leaves no room for ambiguity. Use this template when constructing Task tool prompts:
125
+
126
+ ```
127
+ TASK: {one-line summary}
128
+ AGENT TYPE: {frontend | backend | data | platform | test}
129
+ SCOPE: {module/page/domain name}
130
+
131
+ PLAN REFERENCE:
132
+ Read: docs/plans/YYYY-MM-DD-{TITLE}/architecture.md, section "{Section Name}"
133
+ Read: docs/plans/YYYY-MM-DD-{TITLE}/xd-plan.md, section "{Section Name}" (frontend only)
134
+
135
+ DELIVERABLES:
136
+ Create: {list of files/directories to create}
137
+ Modify: {list of existing files to modify, and what to add}
138
+
139
+ SHARED DEPENDENCIES:
140
+ Import from: {list of shared types/interfaces to use, with file paths}
141
+ Do NOT create: {types/interfaces that already exist or belong to another agent}
142
+
143
+ DO NOT TOUCH:
144
+ - {list of files/directories owned by other agents}
145
+ - {list of shared files that are off-limits}
146
+
147
+ CONVENTIONS:
148
+ - {relevant naming conventions, code style, patterns}
149
+ - {framework-specific requirements: NestJS module structure, Drizzle schema patterns, etc.}
150
+
151
+ COMPLETION CRITERIA:
152
+ - All files listed under DELIVERABLES exist and compile without errors
153
+ - All exports are properly defined
154
+ - Unit tests pass (if test agent)
155
+ - TypeScript strict mode: no any, no ts-ignore, no suppress
156
+
157
+ HANDOFF:
158
+ When complete, write a summary to: docs/plans/YYYY-MM-DD-{TITLE}/agent-output/{agent-type}-{scope}.md
159
+ Include: files created, decisions made, open questions, integration points for other agents
160
+ ```
161
+
162
+ ## Coordination Points: The Sequential-Before-Parallel Pattern
163
+
164
+ Not all work within a parallel dispatch is parallel. Some artifacts must be created sequentially before agents can fan out. Identify and complete these coordination points first.
165
+
166
+ ### Mandatory Sequential Steps
167
+
168
+ 1. **Shared type definitions.** DTOs, interfaces, enums, and Zod schemas used by more than one module. Create these in `src/common/` or `src/shared/` before dispatching.
169
+ 2. **Database schema foundation.** If multiple modules reference the same base tables (e.g., a `users` table referenced by both `auth` and `content`), create the base tables first.
170
+ 3. **Configuration and environment setup.** Shared configuration (database connection, JWT secret, API keys) must be established before any module that depends on it.
171
+ 4. **App module registration skeleton.** Create `app.module.ts` with placeholder imports for all modules, so each agent knows the registration structure.
172
+ 5. **API contract definitions.** If frontend and backend agents work in parallel, define the API contracts (routes, request/response types) before dispatching either.
173
+
174
+ ### Execution Pattern
175
+
176
+ ```
177
+ Phase 1 (Sequential): Create shared types, base schema, configuration
178
+ |
179
+ v
180
+ Phase 2 (Parallel): Dispatch module-level agents simultaneously
181
+ |
182
+ v
183
+ Phase 3 (Sequential): Integration, module registration, cross-module wiring
184
+ |
185
+ v
186
+ Phase 4 (Parallel): Dispatch test agents for each module simultaneously
187
+ |
188
+ v
189
+ Phase 5 (Sequential): Convergence verification, E2E tests, final integration
190
+ ```
191
+
192
+ ## Convergence: Verifying Parallel Work Integrates
193
+
194
+ After all parallel agents complete, run a convergence check before declaring the dispatch successful.
195
+
196
+ ### Convergence Checklist
197
+
198
+ 1. **Compilation check.** Run `tsc --noEmit` across the entire project. All modules must compile together, not just individually.
199
+ 2. **Import verification.** Verify that cross-module imports resolve correctly. Each module should import shared types from `src/common/`, not define its own duplicates.
200
+ 3. **Module registration.** Verify that `app.module.ts` imports all new modules and that NestJS bootstrap succeeds.
201
+ 4. **Database migration ordering.** Run all migrations in sequence and verify they apply without errors. Foreign key ordering matters.
202
+ 5. **API contract adherence.** For each frontend-backend pair, verify that the frontend's API calls match the backend's actual endpoints (route, method, request body, response shape).
203
+ 6. **No file conflicts.** Verify that no two agents created or modified the same file. If they did, manually merge and flag the isolation violation for future dispatch improvement.
204
+ 7. **Test suite passes.** Run the full test suite (`npm test`) and verify all tests pass together, not just individually.
205
+
206
+ ### The Inspector's Role
207
+
208
+ After parallel dispatch completes and convergence is verified, the Inspector agent runs the **verification-protocol** skill to perform a deeper quality check. The Inspector examines:
209
+
210
+ - Code consistency across modules (naming conventions, error handling patterns, logging patterns).
211
+ - Security posture (no hardcoded secrets, proper input validation, correct auth guard usage).
212
+ - Performance concerns (N+1 queries, missing indexes, unbounded queries).
213
+ - Documentation completeness (JSDoc on public APIs, README updates, migration notes).
214
+
215
+ ## Using the Task Tool for Parallel Dispatch
216
+
217
+ Invoke the Task tool for each parallel agent. Provide the model, a detailed prompt containing the full task description (using the template above), and set `run_in_background` for true parallelism.
218
+
219
+ ### Prompt Construction Guidelines
220
+
221
+ - **Include the full task description** in the Task prompt. Do not assume the sub-agent has context from the parent conversation. Each sub-agent starts fresh.
222
+ - **Include relevant plan document content.** Either inline the relevant sections of architecture.md/xd-plan.md or instruct the sub-agent to read them. Inlining is more reliable for long plans.
223
+ - **Specify file paths absolutely.** Sub-agents do not share working directory context. Use absolute paths for all file references.
224
+ - **Specify the anti-stub skill.** Instruct each sub-agent to implement fully — no placeholder functions, no TODO comments, no "implement later" stubs.
225
+ - **Specify the test-strategy skill.** If the sub-agent should write tests, reference the test-strategy skill so it follows the project's testing conventions.
226
+
227
+ ### Monitoring and Collecting Results
228
+
229
+ After dispatching all agents:
230
+
231
+ 1. Wait for all Task tool calls to complete. They run in background and report when finished.
232
+ 2. Collect the output from each agent. Check for errors, incomplete work, and open questions.
233
+ 3. Run the convergence checklist.
234
+ 4. Compile a dispatch report for the Strategist:
235
+
236
+ ```
237
+ DISPATCH REPORT
238
+ Dispatched: {N} agents
239
+ Completed: {N} / {N}
240
+ Failed: {list, if any}
241
+
242
+ AGENT RESULTS:
243
+ {Agent-A}: {status} — {summary of deliverables}
244
+ {Agent-B}: {status} — {summary of deliverables}
245
+ ...
246
+
247
+ CONVERGENCE:
248
+ Compilation: {pass/fail}
249
+ Imports: {pass/fail}
250
+ Module Registration: {pass/fail}
251
+ Migrations: {pass/fail}
252
+ Tests: {pass/fail}
253
+
254
+ ISSUES:
255
+ - {any issues found during convergence}
256
+
257
+ OPEN QUESTIONS:
258
+ - {questions raised by individual agents}
259
+ ```
260
+
261
+ ## Error Handling
262
+
263
+ Parallel dispatch must be resilient to individual agent failures.
264
+
265
+ ### Failure Isolation
266
+
267
+ - If one agent fails, the others continue. Failures are collected and reported, not propagated.
268
+ - A failed agent's scope becomes "incomplete" and is flagged for retry or manual intervention.
269
+ - Other agents' work remains valid as long as it does not depend on the failed agent's output (which it should not, per the isolation principles).
270
+
271
+ ### Common Failure Modes
272
+
273
+ | Failure | Cause | Recovery |
274
+ |---------|-------|----------|
275
+ | Compilation error in one module | Missing type, wrong import | Fix the error, re-run only the failed agent |
276
+ | File conflict between agents | Isolation violation — two agents touched the same file | Manually merge, update dispatch partitioning |
277
+ | Agent exceeded scope | Agent modified files outside its designated area | Revert out-of-scope changes, re-run with stricter instructions |
278
+ | Agent produced stubs | Agent left TODO/placeholder code | Re-dispatch with explicit anti-stub instructions |
279
+ | Agent blocked on missing dependency | Sequential dependency not completed before dispatch | Complete the dependency, re-run the blocked agent |
280
+
281
+ ### Retry Strategy
282
+
283
+ When retrying a failed agent:
284
+
285
+ 1. Do not re-dispatch all agents — only the failed one.
286
+ 2. Provide the failed agent with context about what went wrong (error messages, compilation output).
287
+ 3. Provide the failed agent with the completed outputs of the successful agents, so it can see what exists now.
288
+ 4. If the failure was due to an isolation violation, tighten the task description boundaries before retrying.
289
+
290
+ ## Scaling Considerations
291
+
292
+ ### How Many Agents to Dispatch Simultaneously
293
+
294
+ - 2-3 agents: safe default for most features. Low coordination overhead, easy convergence.
295
+ - 4-6 agents: appropriate for large features with clearly isolated modules. Higher coordination cost but significant time savings.
296
+ - 7+ agents: rarely justified. Coordination overhead and merge risk dominate. Consider batching into two rounds of 3-4 instead.
297
+
298
+ ### When to Batch Dispatches
299
+
300
+ If the total work requires more agents than can be safely parallelized:
301
+
302
+ 1. Group agents into batches by dependency order.
303
+ 2. Dispatch batch 1 (no cross-batch dependencies).
304
+ 3. Wait for batch 1 to complete and converge.
305
+ 4. Dispatch batch 2 (may depend on batch 1 outputs).
306
+ 5. Repeat until all batches are complete.
307
+
308
+ This creates a "wave" pattern: sequential between waves, parallel within each wave.