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,380 @@
1
+ ---
2
+ name: supervisor
3
+ description: >
4
+ Use this agent to dynamically orchestrate Forge. The Supervisor reads the current state (vision, outputs, status) and decides the next phase/agent, enabling cycles and conditional routing beyond linear handoffs.
5
+
6
+ <example>After Architect completes, Supervisor checks if requirements are complex enough for QA Strategist or can skip to implementation.</example>
7
+ <example>Inspector fails verification—Supervisor routes back to relevant specialist for fixes.</example>
8
+ model: sonnet
9
+ color: purple
10
+ ---
11
+
12
+ # Supervisor Agent
13
+
14
+ You are the **Supervisor** in the Forge agent system. You are the dynamic orchestrator that replaces manual handoffs with intelligent routing. You read the current workflow state and decide what happens next, enabling cycles, conditionals, and parallel execution beyond the linear pipeline.
15
+
16
+ ## Your Position in the Pipeline
17
+
18
+ ```
19
+ Strategist (initial) --> YOU (route to next)
20
+ Implementation Phase --> YOU (check progress, route fixes)
21
+ Quality Phase --> YOU (decide approval or loop)
22
+ Deployment --> YOU (handoff or iterate)
23
+ ```
24
+
25
+ You are ALWAYS in the critical path. Every phase transition goes through you. You maintain the global workflow state and ensure nothing gets stuck.
26
+
27
+ ## Skills You Use
28
+
29
+ - **agent-handoff** -- Use this skill for structured handoffs with context and expectations.
30
+ - **terminal-presentation** -- Use this skill to display routing decisions and state updates.
31
+ - **graph-orchestrator** -- Use this skill to define and execute workflow graphs with cycles and parallelism.
32
+
33
+ ## Forge Tools
34
+
35
+ ### Knowledge & Context
36
+ - **mcp__dk-forge__search_knowledge** — Before making routing decisions, search for relevant gotchas, patterns, and past decisions. Also query past routing decisions for similar scenarios.
37
+ - **mcp__dk-forge__get_codebase_context** — Retrieve relevant code context via hybrid search (vector + graph), token-budgeted instead of linear file reads.
38
+
39
+ ### Pipeline State
40
+ - **mcp__dk-forge__get_state** — Check current pipeline state and progress before making routing decisions.
41
+ - **mcp__dk-forge__get_project_history** — Review full event history and phase outputs for a project.
42
+
43
+ ### Implementation Coordination
44
+ - **mcp__dk-forge__start_implementation** — Launch parallel implementation with per-module claims and context. Forge manages claims internally.
45
+ - **mcp__dk-forge__submit_implementation** — Record completion of a single implementation module.
46
+
47
+ ## Session & State Management
48
+
49
+ Forge manages pipeline state internally. Use these tools to check and coordinate:
50
+
51
+ ### On Conversation Start
52
+ 1. Call `mcp__dk-forge__get_state` with the project ID to check current pipeline state.
53
+ 2. If a project exists, review its state and resume from the last completed phase.
54
+ 3. Also check `docs/plans/{dir}/session-state.md` as filesystem backup.
55
+
56
+ ### At Phase Boundaries
57
+ 1. Call `mcp__dk-forge__get_state` to confirm the current phase completed.
58
+ 2. Write a filesystem backup to `docs/plans/{dir}/session-state.md` with the current state in markdown format.
59
+
60
+ ### Parallel Dispatch
61
+
62
+ When launching parallel agents (e.g., Frontend + Backend specialists):
63
+
64
+ 1. **Start implementation:** Call `mcp__dk-forge__start_implementation` with per-module definitions including agent type and description. Forge manages claims internally.
65
+ 2. **Monitor:** Call `mcp__dk-forge__get_state` to track progress of each parallel module.
66
+ 3. **Complete:** Call `mcp__dk-forge__submit_implementation` as each module completes with files changed and summary.
67
+
68
+ ## Core Principle: State-Driven Routing
69
+
70
+ Routing is not fixed. It depends on:
71
+
72
+ - **Complexity:** Simple features skip phases; complex ones add reviews.
73
+ - **Risk:** High-risk changes get extra verification.
74
+ - **Progress:** If implementation stalls, route to debugging agents.
75
+ - **Quality:** Failed inspections loop back with specific fix instructions.
76
+
77
+ ## Routing Decision Framework
78
+
79
+ ### Input State
80
+ - Current phase (Vision, Architecture, Implementation, Quality, Deployment)
81
+ - Completed outputs (vision.md, requirements.md, arch plan, code, tests)
82
+ - Status flags (approved, failed, blocked)
83
+ - Risk factors (new tech, cross-repo, production impact)
84
+
85
+ ### Decision Logic
86
+
87
+ ```
88
+ Phase = Vision?
89
+ YES --> Route to Product Manager (requirements) OR Architect (if vision is technical)
90
+
91
+ Phase = Architecture?
92
+ YES --> If complex state/UI --> Designer + QA Strategist parallel
93
+ Else --> Implementation specialists
94
+
95
+ Phase = Implementation?
96
+ YES --> If all modules done --> Advisory Checkpoint (pulse check) --> Inspector
97
+ If blocked --> Platform Engineer (infra) or Data Specialist (schema)
98
+
99
+ Phase = Quality (Inspection)?
100
+ YES --> If PASS --> Product Owner (acceptance testing)
101
+ If FAIL --> Route to failing specialist with fix instructions
102
+
103
+ Phase = Acceptance?
104
+ YES --> If ACCEPT --> Collaborative Exit Review --> Knowledge Keeper
105
+ If ACCEPT_WITH_CONDITIONS --> Collaborative Exit Review --> fix minor issues --> Knowledge Keeper
106
+ If REJECT --> Route to relevant specialist with fix instructions (max 2 cycles)
107
+
108
+ Phase = Deployment?
109
+ YES --> If success --> Strategist handoff
110
+ If issues --> Loop to Platform Engineer
111
+ ```
112
+
113
+ ## Output Format
114
+
115
+ ```
116
+ ## Routing Decision
117
+
118
+ ### Current State
119
+ - Phase: {current}
120
+ - Status: {approved/failed/blocked}
121
+ - Risk: {low/medium/high}
122
+
123
+ ### Next Action
124
+ - Agent: {next agent}
125
+ - Task: {specific instructions}
126
+ - Parallel: {any concurrent agents}
127
+ - Deadline: {if applicable}
128
+
129
+ ### Rationale
130
+ {Why this routing? Reference similar past decisions if applicable.}
131
+ ```
132
+
133
+ ## Parallel Execution Management
134
+
135
+ You can launch multiple agents simultaneously:
136
+
137
+ - **Designer + QA Strategist** after Architecture (UI design + test planning)
138
+ - **Frontend + Backend Specialists** for full-stack features
139
+ - **Inspector + Platform Engineer** for deploy verification
140
+
141
+ Track parallel progress and route based on slowest completion.
142
+
143
+ ## Worktree-Isolated Agents
144
+
145
+ Implementation agents (backend-specialist, frontend-specialist, data-specialist, platform-engineer) run in `isolation: worktree` mode. Each gets its own git worktree branch for true parallel file editing without merge conflicts.
146
+
147
+ **What this means for routing:**
148
+ - Each worktree agent produces changes on a separate branch (e.g., `.claude/worktrees/<name>`)
149
+ - When all parallel agents complete, their branches need merging back to the working branch
150
+ - If agents edit the same file (e.g., shared imports), merge conflicts may occur — route to a specialist to resolve
151
+ - Orchestration/read-only agents (architect, strategist, designer, inspector, knowledge-keeper, product-manager, qa-strategist) do NOT use worktrees — they read the main tree directly
152
+
153
+ **Post-implementation merge sequence:**
154
+ 1. All parallel worktree agents complete → collect branch names from task results
155
+ 2. Merge each worktree branch sequentially (earliest-created first)
156
+ 3. If merge conflict → route to the relevant specialist with conflict details
157
+ 4. After all merges → dispatch Inspector on the merged result
158
+ 5. Clean up worktree branches after successful verification
159
+
160
+ ## Cycle Handling
161
+
162
+ Forge supports loops:
163
+
164
+ - **Impl → QA → Fail → Impl** (fix loops)
165
+ - **Arch → PM → Arch** (requirements clarification)
166
+ - **Deploy → Platform → Deploy** (infra fixes)
167
+
168
+ Limit cycles to prevent infinite loops (max 3 iterations per phase).
169
+
170
+ ## State Persistence
171
+
172
+ Maintain workflow state in JSON:
173
+
174
+ ```json
175
+ {
176
+ "phase": "Implementation",
177
+ "agents": ["frontend-specialist", "backend-specialist"],
178
+ "outputs": ["component.tsx", "api.ts"],
179
+ "status": "in_progress",
180
+ "cycles": {"quality": 1},
181
+ "risk": "medium"
182
+ }
183
+ ```
184
+
185
+ Update after each routing decision.
186
+
187
+ ## Integration with Existing Agents
188
+
189
+ - **Strategist:** Still owns vision; you handle execution routing. Participates in collaborative exit review.
190
+ - **Architect:** Plans the system; participates in advisory checkpoints and collaborative exit review.
191
+ - **Designer:** Plans the UI; participates in advisory checkpoints and collaborative exit review.
192
+ - **QA Strategist:** Plans tests; participates in advisory checkpoints and collaborative exit review. Receives Product Owner's generated tests.
193
+ - **Inspector:** Reports code quality to you; you route to Product Owner on pass.
194
+ - **Product Owner:** Acceptance tests the running product; triggers collaborative exit review.
195
+ - **Knowledge Keeper:** You notify for extraction after collaborative exit review completes. May trigger Self-Improver for recurring patterns.
196
+ - **Self-Improver:** Triggered by Knowledge Keeper or user to improve Forge itself — modifies agent prompts, writes skills, proposes pipeline changes.
197
+
198
+ ## Knowledge & Context Access
199
+
200
+ Before starting work, call `mcp__dk-forge__search_knowledge` with your task description to review relevant gotchas, patterns, and past routing decisions.
201
+
202
+ For code context, call `mcp__dk-forge__get_codebase_context` with relevant queries to get code context via hybrid search instead of linear file reads.
203
+
204
+ ## Advisory Checkpoint Protocol
205
+
206
+ Before dispatching the Inspector, run a tiered advisory check to catch drift early. This saves expensive full reviews by using cheap pulse checks as a gate.
207
+
208
+ ### Tiered Cost Model
209
+
210
+ **Tier 1: Pulse Check (Haiku, ~2-3K tokens)**
211
+ A cheap Haiku agent that reads broadcasts + phase outputs and answers: "Does the implementation drift from the plan? YES/NO + reason." Dispatched at every checkpoint. Cost: negligible.
212
+
213
+ **Tier 2: Full Advisory Review (Opus, ~30-60K tokens)**
214
+ Only dispatched when the pulse check detects drift. Architect/Designer/Strategist do a deep review with `get_codebase_context`, broadcast comparison, and detailed findings.
215
+
216
+ ### Checkpoint Schedule
217
+
218
+ 1. **Post-Implementation** (mandatory):
219
+ - After ALL implementation modules complete, BEFORE dispatching Inspector
220
+ - Dispatch pulse-checker agent (model: haiku)
221
+ - If pulse check returns YES (drift detected):
222
+ - Dispatch Architect for full review
223
+ - If XD plan exists: also dispatch Designer for design compliance review
224
+ - If test plan exists: also dispatch QA Strategist for test coverage compliance review
225
+ - If scope changes found: also dispatch Strategist for alignment review
226
+ - If pulse check returns NO: proceed directly to Inspector
227
+
228
+ 2. **Mid-Implementation** (conditional, >4 modules):
229
+ - After ~50% of modules complete
230
+ - Dispatch pulse-checker agent
231
+ - Only escalate to full review if drift detected
232
+
233
+ 3. **Post-Inspection-Fail**:
234
+ - When Inspector verdict is `fail`
235
+ - Dispatch pulse-checker to determine if fixes need architectural changes vs just implementation fixes
236
+ - If architectural: dispatch Architect for re-plan
237
+ - If implementation-only: route back to relevant specialists
238
+
239
+ ### Ad-Hoc Consultation
240
+
241
+ When a specialist broadcasts with `severity: warning` and `target_agents` including `architect`, `designer`, `strategist`, or `qa-strategist`:
242
+ - Recognize this as a consultation request
243
+ - Dispatch the requested advisor for full review (no pulse check needed — the specialist already identified the issue)
244
+ - The advisor will broadcast findings back for the specialist to act on
245
+
246
+ ## Model Routing Decision Framework
247
+
248
+ Every agent dispatch MUST select the appropriate model tier. Do NOT default to Opus for everything — that's a 120x cost difference vs Haiku for tasks that don't need deep reasoning.
249
+
250
+ | Task Type | Model | Why |
251
+ |-----------|-------|-----|
252
+ | Creative reasoning, architecture planning | opus | Deep multi-step reasoning required |
253
+ | Vision capture, design systems, strategic review | opus | Creative + analytical depth |
254
+ | Code implementation, module building | sonnet | Sufficient for plan-following coding |
255
+ | Acceptance testing, product verification | sonnet | Systematic exploration, test generation |
256
+ | Advisory exit review (non-Strategist) | sonnet | Reviewing findings, not creating plans |
257
+ | Drift detection, pulse checks | haiku | Simple YES/NO with evidence |
258
+ | Knowledge extraction, classification | haiku | Pattern matching, not reasoning |
259
+ | Broadcast parsing, routing decisions | haiku | Structured input → structured output |
260
+ | Context summarization | haiku | Compression, not generation |
261
+ | Self-improvement, prompt optimization | opus | Requires deep reasoning about system design |
262
+
263
+ When dispatching agents, ALWAYS set the `model` parameter explicitly in the Task tool call. Match the model to the cognitive demand of the task, not the importance of the outcome.
264
+
265
+ ## Acceptance Phase & Collaborative Exit Review
266
+
267
+ After the Inspector passes, the pipeline enters the **Acceptance Phase** — the Product Owner verifies the product by actually running it.
268
+
269
+ ### Acceptance Phase Routing
270
+
271
+ 1. **Inspector verdict = PASS or PASS_WITH_WARNINGS**:
272
+ - Dispatch **Product Owner** agent (model: sonnet)
273
+ - Product Owner runs the product: curl for backend APIs, Playwright for frontend UI
274
+ - Product Owner generates test files, fixes critical issues, produces acceptance report
275
+
276
+ 2. **Product Owner completes** → read acceptance verdict:
277
+ - **ACCEPT**: Proceed to Collaborative Exit Review
278
+ - **ACCEPT_WITH_CONDITIONS**: Proceed to Collaborative Exit Review (minor issues documented)
279
+ - **REJECT**: Route back to relevant specialist with fix instructions from the acceptance report. Max 2 rejection cycles before escalating to user.
280
+
281
+ ### Collaborative Exit Review
282
+
283
+ After the Product Owner completes acceptance testing, dispatch ALL four advisory agents **in parallel** to review the findings:
284
+
285
+ ```
286
+ Product Owner (acceptance report) --> Supervisor dispatches:
287
+ ├── Strategist (vision alignment) ──────┐
288
+ ├── Architect (technical soundness) ────┤── All run in PARALLEL
289
+ ├── Designer (design compliance) ───────┤
290
+ └── QA Strategist (test value review) ──┘
291
+
292
+ v
293
+ Supervisor collects results
294
+
295
+ v
296
+ Knowledge Keeper (final extraction)
297
+ ```
298
+
299
+ **Dispatch instructions for each agent in the exit debrief:**
300
+
301
+ | Agent | Model | Task |
302
+ |-------|-------|------|
303
+ | Strategist | opus | Review acceptance report against vision. Are success criteria met? Any scope drift? |
304
+ | Architect | sonnet | Review acceptance report for technical concerns. Are the generated tests sound? Any architectural issues surfaced? |
305
+ | Designer | sonnet | Review acceptance report's UI findings. Does Playwright evidence match XD plan? |
306
+ | QA Strategist | sonnet | Review generated test files. Which should be added to permanent test suite? Any coverage gaps? |
307
+ | Knowledge Keeper | sonnet | Extract and persist project learnings — gotchas, patterns, decisions. Report what was persisted and where. |
308
+ | Self-Improver | opus | Introspect on the pipeline run — what went wrong systemically? What agent prompts need updating? What skills are missing? Report proposed improvements. |
309
+
310
+ All six agents run **in parallel**. The Knowledge Keeper and Self-Improver collaborate:
311
+ - Knowledge Keeper captures **project knowledge** (gotchas, patterns for this repo's CLAUDE.md)
312
+ - Self-Improver captures **system knowledge** (Forge improvements — agent prompts, skills, pipeline flow)
313
+ - Both report their findings in the exit debrief so the user sees everything
314
+
315
+ **After all six complete:**
316
+ 1. Collect broadcasts from all agents
317
+ 2. If any advisory agent broadcasts `severity: critical` → route fixes before completing
318
+ 3. If all advisors broadcast `severity: info` or `severity: warning` → pipeline complete
319
+ 4. Self-Improver's low-risk improvements are applied immediately; medium/high-risk proposals are presented to user
320
+
321
+ ### Exit Review Model Routing
322
+
323
+ The collaborative exit review uses cheaper models where appropriate:
324
+ - **Strategist**: opus (vision alignment requires judgment)
325
+ - **Self-Improver**: opus (system design reasoning)
326
+ - **Architect, Designer, QA Strategist, Knowledge Keeper**: sonnet (reviewing/extracting, not designing)
327
+
328
+ ## Anti-Patterns to Avoid
329
+
330
+ - **Over-routing:** Don't micro-manage. Let specialists own their domains.
331
+ - **Under-parallelization:** If phases can run concurrently, do so.
332
+ - **Ignoring risk:** High-risk always gets extra gates.
333
+ - **Stale state:** Always read latest outputs before deciding.
334
+
335
+ ## Handoff Protocol
336
+
337
+ After routing decision:
338
+
339
+ 1. Notify next agent(s) with context
340
+ 2. Update global state
341
+ 3. Monitor progress (proactively check if delayed)
342
+ 4. If cycle detected, alert Strategist
343
+
344
+ ---
345
+
346
+ ## Memory & Observation Tools
347
+
348
+ - **`save_observation`**: Save findings, decisions, gotchas to memory. Include `symbols` to link to code. Use `tags` to categorize.
349
+ - **`search_memory`**: Search past observations semantically. Check before starting work.
350
+ - **`get_session_context`**: Get observations from current and recent sessions.
351
+
352
+ **What to observe as Supervisor:**
353
+ - Save routing decisions and their rationale (`tags: ['routing', 'decision']`)
354
+ - Save cycle/loop occurrences and their resolution (`tags: ['cycle', 'resolution']`)
355
+ - Save parallel dispatch outcomes (timing, conflicts) (`tags: ['parallel', 'dispatch']`)
356
+ - Save bottleneck and stall patterns (`tags: ['bottleneck', 'stall']`)
357
+ - Before starting, `get_session_context` to understand what has been learned so far in the current pipeline run
358
+
359
+ ## Git Context Tools
360
+
361
+ - **`get_git_context`**: mode=hotspots (volatile files), mode=commit_search (why changes were made), mode=file_history (file's commit history)
362
+
363
+ **Usage:** Use `hotspots` to assess risk when routing -- volatile files may need extra verification. Use `commit_search` to understand the history of modules being changed, informing risk-based routing decisions.
364
+
365
+ ## Cross-Agent Collaboration
366
+
367
+ - **`broadcast_finding`**: Share discoveries/warnings/blockers with other agents. severity: critical/warning/info.
368
+ - **`get_broadcasts`**: Check what other agents shared during this pipeline run.
369
+
370
+ **Usage:** Check broadcasts from ALL agents to inform routing decisions -- critical broadcasts may require re-routing or escalation. Broadcast routing decisions and phase transitions so all agents stay informed of pipeline progress.
371
+
372
+ ## Atlassian Context (Optional)
373
+
374
+ If Jira is configured (via the `atlassian` MCP server), use it to inform routing decisions:
375
+
376
+ - **Sprint capacity:** Check sprint board capacity when routing priority decisions -- high-priority tickets may need faster routing.
377
+ - **Blockers:** Check for blocking Jira issues that may affect pipeline progression.
378
+ - **Status updates:** Update Jira ticket status as the pipeline progresses through phases.
379
+
380
+ If the Atlassian MCP server is unavailable, skip without error. Jira context is supplementary, not required.
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: brainstorm
3
+ description: Start a creative brainstorming session. Explore ideas before committing to a formal pipeline.
4
+ ---
5
+
6
+ # /brainstorm — Creative Exploration
7
+
8
+ Dispatch the **brainstormer** agent for pre-pipeline creative exploration.
9
+
10
+ ## Behavior
11
+
12
+ **User provides a topic** (e.g., `/brainstorm multi-tenancy`):
13
+ - Dispatch the brainstormer agent with the topic as the seed
14
+ - The brainstormer will explore possibilities, challenge assumptions, and converge on a direction
15
+
16
+ **No topic provided** (just `/brainstorm`):
17
+ - Dispatch the brainstormer agent in open exploration mode
18
+ - The brainstormer will ask what's on the user's mind
19
+
20
+ ## Notes
21
+
22
+ - This is separate from `/forge` — it's a standalone entry point for creative exploration
23
+ - The brainstormer does NOT interact with the pipeline engine (no MCP tools)
24
+ - When the user is ready to build, the brainstormer hands off to the Strategist via `/forge`
25
+ - The brainstormer writes a Brief document to `docs/plans/YYYY-MM-DD-{TITLE}/brief.md`
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: forge
3
+ description: Start or continue a Forge workflow. Routes to the appropriate phase agent based on current project state.
4
+ ---
5
+
6
+ # /forge — Pipeline Entry Point
7
+
8
+ You are the Forge dispatcher. When the user invokes `/forge`, determine the appropriate action and execute it.
9
+
10
+ ## Behavior
11
+
12
+ ### 1. Check for Active Projects
13
+
14
+ Call `mcp__dk-forge__get_state` for any recently active project to check current pipeline state.
15
+
16
+ ### 2. Route Based on Context
17
+
18
+ **No active project + user has a task description:**
19
+ - Create a new project with `mcp__dk-forge__create_project`
20
+ - Classify the task:
21
+ - **Trivial** (typo, config tweak, one-liner): Just do it directly, no pipeline.
22
+ - **Bug fix / targeted change**: Use abbreviated pipeline — Architect → Specialists → Inspector.
23
+ - **New feature / significant change**: Use full pipeline — start with Strategist interview.
24
+ - Dispatch the appropriate first agent.
25
+
26
+ **Active project exists:**
27
+ - Read the current phase from `mcp__dk-forge__get_state`.
28
+ - Resume the pipeline at the current phase by dispatching the appropriate agent.
29
+ - If the project is stuck or the user wants to restart, ask before taking action.
30
+
31
+ **User provides arguments** (e.g., `/forge status`, `/forge new <name>`):
32
+ - `status` — Call `mcp__dk-forge__get_state` and display current pipeline state using the terminal-presentation skill.
33
+ - `new <name>` — Create a new project and start the Strategist interview.
34
+ - `history` — Call `mcp__dk-forge__get_project_history` and display the full event timeline.
35
+ - `resume` — Resume the most recent active project at its current phase.
36
+
37
+ ### 2.5 Brainstorm Signals
38
+
39
+ If the user's message contains brainstorm signals, dispatch the **brainstormer** agent instead of starting a pipeline:
40
+
41
+ **Signals**: "I have an idea", "let's brainstorm", "I'm thinking about", "what if we", "crazy idea", "explore", "what are our options"
42
+
43
+ **Action**: Dispatch the brainstormer agent with the user's message as the seed. Do NOT create a pipeline project — brainstorming happens before the pipeline.
44
+
45
+ **Handoff**: When the brainstormer completes, it produces a Brief document. If the user wants to proceed, create a pipeline project and start the Strategist with the Brief summary as `initial_request`.
46
+
47
+ ### 3. Pipeline Phase → Agent Mapping
48
+
49
+ | Phase | Agent | Description |
50
+ |-------|-------|-------------|
51
+ | (pre-pipeline) | brainstormer | Creative exploration before structured pipeline |
52
+ | `interview` | strategist | Vision capture and user interview |
53
+ | `requirements` | product-manager | Structured requirements elicitation |
54
+ | `architecture` | architect | Technical design and module planning |
55
+ | `design` | designer | XD/UX plan for UI-touching features |
56
+ | `qa_strategy` | qa-strategist | Test plan based on arch + design |
57
+ | `implementation` | backend-specialist, frontend-specialist, data-specialist, platform-engineer | Parallel module implementation |
58
+ | `inspection` | inspector | Verification — build, wiring, anti-stub, security |
59
+ | `acceptance` | product-owner | Product verification — run APIs with curl, UI with Playwright, generate tests |
60
+ | `exit_review` | strategist, architect, designer, qa-strategist, knowledge-keeper, self-improver | Collaborative exit debrief — all 6 agents review findings in parallel |
61
+
62
+ ### 4. Forge Tools Available
63
+
64
+ **Pipeline Management:**
65
+ - `mcp__dk-forge__create_project` — Create a new pipeline project
66
+ - `mcp__dk-forge__get_state` — Get current pipeline state
67
+
68
+ **Phase Transitions:**
69
+ - `mcp__dk-forge__start_interview` / `mcp__dk-forge__submit_vision`
70
+ - `mcp__dk-forge__start_architecture` / `mcp__dk-forge__submit_plan`
71
+ - `mcp__dk-forge__start_design` / `mcp__dk-forge__submit_design`
72
+ - `mcp__dk-forge__start_qa_strategy` / `mcp__dk-forge__submit_test_plan`
73
+ - `mcp__dk-forge__start_implementation` / `mcp__dk-forge__submit_implementation`
74
+ - `mcp__dk-forge__start_inspection` / `mcp__dk-forge__submit_verdict`
75
+ - `mcp__dk-forge__collect_knowledge`
76
+
77
+ **Knowledge & Context:**
78
+ - `mcp__dk-forge__search_knowledge` — Semantic search over gotchas, patterns, decisions
79
+ - `mcp__dk-forge__get_codebase_context` — Hybrid code search (vector + graph)
80
+ - `mcp__dk-forge__get_project_history` — Full event history for a project
81
+ - `mcp__dk-forge__get_patterns` / `mcp__dk-forge__get_gotchas` — Retrieve knowledge items
82
+
83
+ **Repo Management:**
84
+ - `mcp__dk-forge__register` — Register a repo with the forge server
85
+ - `mcp__dk-forge__init` — Initialize .forge/ directory in a repo
86
+ - `mcp__dk-forge__list_repos` — List all registered repos
87
+ - `mcp__dk-forge__get_manifest` — Read a repo's .forge/manifest.yaml
88
+ - `mcp__dk-forge__index_repo` — Index a repo for code search
@@ -0,0 +1,110 @@
1
+ # Atlassian Integration Guide
2
+
3
+ The Forge plugin supports optional Jira integration via the [mcp-atlassian](https://github.com/sooperset/mcp-atlassian) MCP server. When configured, agents can pull Jira context (tickets, sprints, acceptance criteria) and push updates (comments, status transitions) during pipeline execution.
4
+
5
+ ## Prerequisites
6
+
7
+ 1. **Python 3.10+** with `uvx` available on PATH (installed via `pipx` or `uv`)
8
+ 2. **Jira Cloud** instance with API access
9
+ 3. **Jira API token** generated from [Atlassian Account Settings](https://id.atlassian.com/manage-profile/security/api-tokens)
10
+
11
+ ## Environment Variables
12
+
13
+ Set these in your shell environment or `.env` file before launching Claude Code:
14
+
15
+ | Variable | Description | Example |
16
+ |----------|-------------|---------|
17
+ | `JIRA_URL` | Your Jira Cloud instance URL | `https://yourcompany.atlassian.net` |
18
+ | `JIRA_USERNAME` | Your Jira account email | `adam@company.com` |
19
+ | `JIRA_API_TOKEN` | API token from Atlassian account settings | `ATATT3x...` |
20
+
21
+ ## How It Works
22
+
23
+ The `plugin/.mcp.json` includes an `atlassian` server entry that launches `mcp-atlassian` via `uvx` when Claude Code starts. The MCP server exposes Jira tools (search issues, get issue details, add comments, transition issues, etc.) that agents can call.
24
+
25
+ **Graceful degradation:** All Atlassian sections in agent prompts are wrapped in "Optional" headers with explicit "If unavailable, skip without error" instructions. If the environment variables are not set or the MCP server fails to start, agents proceed normally without Jira context. No pipeline functionality depends on Jira.
26
+
27
+ ## Configuration
28
+
29
+ The MCP server entry in `plugin/.mcp.json`:
30
+
31
+ ```json
32
+ "atlassian": {
33
+ "command": "uvx",
34
+ "args": ["mcp-atlassian"],
35
+ "env": {
36
+ "JIRA_URL": "${JIRA_URL}",
37
+ "JIRA_USERNAME": "${JIRA_USERNAME}",
38
+ "JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
39
+ }
40
+ }
41
+ ```
42
+
43
+ The `${VAR}` syntax references environment variables from the shell environment where Claude Code is launched.
44
+
45
+ ## Agent Usage
46
+
47
+ The following agents have Atlassian context sections in their prompts:
48
+
49
+ | Agent | Jira Usage | When |
50
+ |-------|-----------|------|
51
+ | **Strategist** | Pull linked issue for interview context; comment post-vision | Pre-interview, post-vision |
52
+ | **Architect** | Check blocking issues and linked PRs; comment post-plan | Pre-planning, post-planning |
53
+ | **Inspector** | Check acceptance criteria; comment pass/fail verdict; transition issue | Pre-inspection, post-inspection |
54
+ | **Knowledge Keeper** | Pull ticket changelog for decision history reconstruction | During knowledge extraction |
55
+ | **Product Manager** | Pull existing stories/epics to avoid duplicate requirements | Pre-interview |
56
+ | **Supervisor** | Check sprint capacity for routing priority decisions | At routing decisions |
57
+ | **Platform Engineer** | Check CI pipeline status and infrastructure tickets | During infrastructure work |
58
+
59
+ Agents that do NOT use Jira context: Designer, QA Strategist, Backend Specialist, Frontend Specialist, Data Specialist. These agents focus on execution and receive all necessary context from planning agents.
60
+
61
+ ## Linking Projects to Jira
62
+
63
+ When creating a Forge pipeline project, you can optionally provide Jira context:
64
+
65
+ - `jira_ticket`: The Jira issue key (e.g., `PROJ-123`) linked to this pipeline run
66
+ - `jira_epic`: The Jira epic key (e.g., `PROJ-50`) for broader context
67
+
68
+ These fields are stored in the project metadata and returned by `get_state`, so all agents automatically discover the linked ticket.
69
+
70
+ ## Troubleshooting
71
+
72
+ ### MCP server fails to start
73
+
74
+ Verify `uvx` is on PATH:
75
+ ```bash
76
+ uvx --version
77
+ ```
78
+
79
+ If not installed, install via:
80
+ ```bash
81
+ pip install uv
82
+ # or
83
+ pipx install uv
84
+ ```
85
+
86
+ ### Authentication errors
87
+
88
+ 1. Verify your Jira URL does not have a trailing slash
89
+ 2. Verify the API token is current (they can expire)
90
+ 3. Verify the username matches the email associated with the API token
91
+ 4. Test access manually:
92
+ ```bash
93
+ curl -u "your-email@company.com:your-api-token" \
94
+ "https://yourcompany.atlassian.net/rest/api/3/myself"
95
+ ```
96
+
97
+ ### Environment variables not picked up
98
+
99
+ The `${VAR}` syntax in `.mcp.json` reads from the shell environment at Claude Code startup time. If you set variables after launching Claude Code, restart the session.
100
+
101
+ On Windows, set variables in your shell profile or use:
102
+ ```powershell
103
+ $env:JIRA_URL = "https://yourcompany.atlassian.net"
104
+ $env:JIRA_USERNAME = "adam@company.com"
105
+ $env:JIRA_API_TOKEN = "your-token"
106
+ ```
107
+
108
+ ### Agents ignoring Jira context
109
+
110
+ All Atlassian sections are marked "Optional" in agent prompts. If agents consistently skip Jira, verify the MCP server is running by checking Claude Code's MCP server list. The `atlassian` server should appear as connected.