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,304 @@
1
+ ---
2
+ name: project-discovery
3
+ description: This skill should be used when exploring and understanding an existing codebase for the first time or when verifying current project patterns. Used by the designer, architect, and inspector agents to read and understand project structure, frameworks, conventions, and existing patterns.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # Project Discovery Skill
8
+
9
+ ## Purpose
10
+
11
+ Provide a systematic, repeatable methodology for exploring and understanding a codebase. Apply this skill when encountering a project for the first time, when verifying that implementation follows established patterns, or when auditing an existing system for consistency. The output of project discovery is a mental model of the codebase that enables informed decisions by downstream agents (Designer, Architect, Inspector).
12
+
13
+ ---
14
+
15
+ ## Exploration Methodology
16
+
17
+ Follow these eight steps in order. Each step builds on the previous one. Do not skip steps, but adjust depth based on the agent's needs -- an Architect needs deeper API and data flow analysis; a Designer needs deeper design system analysis; an Inspector needs deeper testing and quality analysis.
18
+
19
+ ### Step 1: Project Configuration
20
+
21
+ Read the project's root configuration files to establish the technology stack, dependency landscape, and build toolchain.
22
+
23
+ **Files to read (in priority order)**:
24
+ - `package.json` -- framework, dependencies, scripts, package name, version
25
+ - `tsconfig.json` and `tsconfig.build.json` -- TypeScript configuration, module system, decorator support
26
+ - `nest-cli.json` -- NestJS builder configuration (SWC vs tsc)
27
+ - `.swcrc` -- SWC configuration for testing and building
28
+ - `drizzle.config.ts` -- Database configuration, migration paths
29
+ - `docker-compose.yml` -- Local development services, database configuration
30
+ - `.env.example` or `.env.development` -- Environment variable shape (never read `.env` directly)
31
+ - `Dockerfile` -- Build stages, base images, runtime configuration
32
+ - `bitbucket-pipelines.yml` or `.github/workflows/` -- CI/CD pipeline structure
33
+ - `vitest.config.ts` or `jest.config.ts` -- Test framework configuration
34
+
35
+ **What to extract**:
36
+ - Framework and version (NestJS, React, Next.js, etc.)
37
+ - Module system (CommonJS vs ESM)
38
+ - Builder (SWC, tsc, esbuild, webpack)
39
+ - Database driver and ORM (Drizzle, Prisma, TypeORM, etc.)
40
+ - Test framework and configuration
41
+ - Key scripts: `start`, `build`, `test`, `db:migrate`, `db:generate`, `lint`
42
+ - Dev dependencies that signal tooling choices (Storybook, Playwright, Husky, etc.)
43
+
44
+ ### Step 2: Directory Structure
45
+
46
+ Map the project's file organization to identify the architectural pattern.
47
+
48
+ **Commands to run**:
49
+ - List the top-level directory structure.
50
+ - List the `src/` directory structure (or equivalent entry directory).
51
+ - Identify any monorepo markers (`packages/`, `apps/`, `libs/`, workspace config in `package.json`).
52
+
53
+ **Patterns to identify**:
54
+ - **Modular NestJS**: `src/{module-name}/{module-name}.module.ts` + controller + service + DTOs
55
+ - **Feature-based**: `src/features/{feature}/` with co-located components, services, tests
56
+ - **Layer-based**: `src/controllers/`, `src/services/`, `src/repositories/`
57
+ - **Monorepo**: `packages/{package-name}/` or `apps/{app-name}/`
58
+ - **Flat**: Everything in `src/` with no sub-organization (flag as a concern)
59
+
60
+ **What to extract**:
61
+ - Architectural pattern name and description
62
+ - Module/feature list with brief purpose for each
63
+ - Shared/common directories and their purpose
64
+ - Test file location pattern (co-located vs separate `test/` directory)
65
+ - Configuration and infrastructure directories
66
+
67
+ ### Step 3: Entry Points
68
+
69
+ Identify how the application bootstraps and what happens at startup.
70
+
71
+ **Files to read**:
72
+ - `src/main.ts` -- NestJS bootstrap, middleware, global pipes, global filters, CORS, dotenv loading
73
+ - `src/app.module.ts` -- Root module, imported modules, global providers
74
+ - `src/app.controller.ts` -- Root routes (if any)
75
+
76
+ **What to extract**:
77
+ - Bootstrap sequence: what happens before `NestFactory.create()`?
78
+ - Global middleware, pipes, filters, interceptors
79
+ - Module import order and any conditional imports
80
+ - Environment variable loading strategy (dotenv timing, ConfigModule usage)
81
+ - Port configuration, CORS settings, API prefix
82
+
83
+ ### Step 4: Routing and Request Flow
84
+
85
+ Trace how HTTP requests (or other input) flow through the system.
86
+
87
+ **Discovery method**:
88
+ - Search for `@Controller` decorators to find all route handlers.
89
+ - Search for `@Get`, `@Post`, `@Put`, `@Patch`, `@Delete` to map endpoints.
90
+ - Search for `@UseGuards` to identify authentication/authorization patterns.
91
+ - Search for `@UseInterceptors` to identify cross-cutting concerns.
92
+ - Search for `@UsePipes` to identify validation patterns.
93
+
94
+ **What to extract**:
95
+ - Complete route table: method, path, controller, handler, guards
96
+ - Authentication strategy (JWT, API key, session, etc.)
97
+ - Authorization model (RBAC, ABAC, resource-based, etc.)
98
+ - Validation approach (class-validator DTOs, Zod, manual)
99
+ - Error handling pattern (exception filters, global handlers)
100
+ - API versioning strategy (if any)
101
+
102
+ ### Step 5: State and Data Management
103
+
104
+ Understand how data flows through the application and how state is managed.
105
+
106
+ **Files to read**:
107
+ - `src/drizzle/` or `src/database/` -- ORM configuration, schema definitions, providers
108
+ - `src/**/schema.ts` or `src/**/entities/` -- Data model definitions
109
+ - `drizzle/` migration directory -- Migration history
110
+ - Any `src/**/dto/` directories -- Data transfer object shapes
111
+
112
+ **What to extract**:
113
+ - Database schema: tables, columns, types, constraints, indexes, relations
114
+ - ORM pattern: repository pattern, direct query, query builder
115
+ - Connection management: connection pooling, lazy initialization, Proxy patterns
116
+ - Migration strategy: how migrations are generated and applied
117
+ - Seed data: is there a seeding mechanism?
118
+ - Caching layer: Redis, in-memory, none
119
+
120
+ ### Step 6: Design System (Frontend Projects)
121
+
122
+ For projects with a frontend, discover the existing design system and component library.
123
+
124
+ **Files and directories to search**:
125
+ - `src/theme/` or `src/styles/` -- Theme definitions, CSS variables, tokens
126
+ - `src/components/` -- Component library structure
127
+ - `src/design-system/` or `src/ui/` -- Dedicated design system directories
128
+ - `.storybook/` -- Storybook configuration
129
+ - `tailwind.config.*` -- Tailwind customization
130
+ - Any `xd-bible.md` or `xd-plan.md` -- Existing design documentation
131
+ - `src/**/*.css`, `src/**/*.scss`, `src/**/*.styled.*` -- Styling approach
132
+
133
+ **What to extract**:
134
+ - Styling methodology: CSS Modules, styled-components, Tailwind, CSS variables, SCSS
135
+ - Color system: palette definition, semantic tokens, dark mode support
136
+ - Typography: font families, scale, weight usage
137
+ - Spacing: scale system (4px grid, 8px grid, custom)
138
+ - Component hierarchy: atoms, molecules, organisms (or equivalent)
139
+ - Existing component inventory with usage patterns
140
+ - Responsive strategy: breakpoints, mobile-first vs desktop-first
141
+ - Animation/transition patterns
142
+
143
+ ### Step 7: Testing Setup
144
+
145
+ Understand the testing infrastructure and existing test patterns.
146
+
147
+ **Files to read**:
148
+ - `vitest.config.ts` or `jest.config.ts` -- Test framework configuration
149
+ - Any `*.spec.ts` or `*.test.ts` files (read 2-3 representative examples)
150
+ - `test/` directory structure (if separate from source)
151
+ - Any `e2e/` or `integration/` test directories
152
+
153
+ **What to extract**:
154
+ - Test framework and runner (Vitest, Jest, Mocha)
155
+ - Test file naming convention (`.spec.ts` vs `.test.ts`)
156
+ - Test organization pattern (co-located vs centralized)
157
+ - Mocking patterns (what is mocked, how)
158
+ - Coverage configuration and current coverage levels
159
+ - E2E test framework (Playwright, Cypress, Supertest)
160
+ - Test database strategy (in-memory, Docker, shared dev DB)
161
+ - Fixture and factory patterns
162
+
163
+ ### Step 8: Build and Deployment
164
+
165
+ Understand how the application is built, packaged, and deployed.
166
+
167
+ **Files to read**:
168
+ - `Dockerfile` -- Build stages, runtime image, exposed ports
169
+ - `docker-compose.yml` -- Local development services
170
+ - `bitbucket-pipelines.yml` or CI config -- Pipeline stages, deployment targets
171
+ - `helm/` or `charts/` -- Kubernetes deployment configuration
172
+ - `k8s/` -- Raw Kubernetes manifests (if any)
173
+ - Any `Makefile` or build scripts
174
+
175
+ **What to extract**:
176
+ - Build pipeline: stages, parallelism, caching
177
+ - Container strategy: multi-stage build, base image, runtime user
178
+ - Deployment target: Kubernetes (EKS), ECS, Lambda, bare EC2
179
+ - Helm chart structure: values, templates, dependencies
180
+ - Environment promotion: dev -> staging -> production pipeline
181
+ - Secret management: External Secrets, AWS Secrets Manager, env vars
182
+
183
+ ---
184
+
185
+ ## Pattern Extraction
186
+
187
+ After completing the eight-step exploration, synthesize the findings into pattern observations.
188
+
189
+ ### Naming Conventions
190
+
191
+ Document the project's naming conventions:
192
+ - File naming: kebab-case, camelCase, PascalCase
193
+ - Class naming: PascalCase with suffix (e.g., `NotificationService`, `UserController`)
194
+ - Variable naming: camelCase, snake_case
195
+ - Database naming: snake_case for tables and columns, singular vs plural table names
196
+ - API route naming: kebab-case, camelCase, plural nouns for resources
197
+ - Environment variable naming: UPPER_SNAKE_CASE with prefix
198
+
199
+ ### Import Patterns
200
+
201
+ Document how the project handles imports:
202
+ - Path aliases (`@/`, `~/`, `#/`)
203
+ - Barrel exports (`index.ts` files)
204
+ - Relative vs absolute imports
205
+ - Module boundary enforcement (do modules import from each other directly, or through public APIs?)
206
+
207
+ ### Error Handling Patterns
208
+
209
+ Document the project's error handling approach:
210
+ - Custom exception classes
211
+ - Exception filter hierarchy
212
+ - Error response shape
213
+ - Logging integration
214
+
215
+ ---
216
+
217
+ ## Architecture Fingerprinting
218
+
219
+ Produce a concise architecture fingerprint -- a summary that any agent can read to understand the project's shape without re-running discovery.
220
+
221
+ ### Fingerprint Format
222
+
223
+ ```
224
+ ## Architecture Fingerprint
225
+
226
+ - **Framework**: NestJS 10.x with SWC builder
227
+ - **Language**: TypeScript 5.x, CommonJS module system
228
+ - **Database**: PostgreSQL 15 via Drizzle ORM (postgres.js driver)
229
+ - **Auth**: JWT with JWKS (Auth0), role-based authorization
230
+ - **API Style**: REST, JSON, `/api/v1` prefix
231
+ - **Testing**: Vitest with SWC plugin, co-located spec files
232
+ - **Deployment**: Docker -> EKS via Helm + ArgoCD
233
+ - **Modules**: {count} modules: {list with one-line descriptions}
234
+ - **Design System**: {description or "N/A for backend-only projects"}
235
+ ```
236
+
237
+ Write this fingerprint to the plan folder as part of the architecture or design document, so other agents do not need to re-discover what has already been mapped.
238
+
239
+ ---
240
+
241
+ ## What to Document vs. What to Skip
242
+
243
+ ### Always Document
244
+ - Framework versions and configuration choices
245
+ - Architectural pattern and module boundaries
246
+ - Database schema and migration state
247
+ - API routes and authentication strategy
248
+ - Naming conventions that deviate from defaults
249
+ - Design system tokens and component inventory (frontend)
250
+ - Testing patterns and coverage state
251
+ - Build and deployment pipeline
252
+
253
+ ### Skip (Do Not Spend Time On)
254
+ - Individual utility function implementations (unless they reveal a pattern)
255
+ - Third-party library internals
256
+ - Generated code (migration SQL files, compiled output)
257
+ - IDE configuration files (`.vscode/`, `.idea/`)
258
+ - Detailed reading of every test file (read 2-3 representative examples)
259
+ - Git history (unless asked to investigate a regression)
260
+
261
+ ---
262
+
263
+ ## Red Flags to Surface
264
+
265
+ During discovery, actively look for and report these issues:
266
+
267
+ - **Stubs and placeholders**: Functions that return hardcoded data, TODO comments in production code, `throw new Error('Not implemented')`. These indicate incomplete work.
268
+ - **Dead code**: Unused imports, unreachable functions, commented-out blocks. These indicate maintenance debt.
269
+ - **Inconsistent patterns**: Two modules using different naming conventions, two services using different error handling approaches. These indicate drift.
270
+ - **Missing tests**: Modules with no corresponding test files, or test files with zero assertions. These indicate quality gaps.
271
+ - **Hardcoded configuration**: Database URLs, API keys, or service endpoints hardcoded in source files instead of environment variables. These indicate deployment risks.
272
+ - **Circular dependencies**: Module A imports from Module B which imports from Module A. These indicate architectural issues.
273
+ - **Oversized modules**: A single module with 10+ services or a single service with 500+ lines. These indicate decomposition opportunities.
274
+ - **Missing error handling**: Catch blocks that swallow errors, API endpoints with no validation, database queries with no error handling.
275
+ - **Security concerns**: Secrets in source code, disabled CORS, missing authentication on endpoints that should be protected.
276
+
277
+ Report red flags with severity, location, and a brief note on impact. Do not attempt to fix them during discovery -- that is the implementation agents' job. Discovery is read-only.
278
+
279
+ ---
280
+
281
+ ## Adapting Depth by Agent Role
282
+
283
+ ### Architect Discovery
284
+ Focus on Steps 1-5 and Step 8 (configuration, structure, entry points, routing, data, deployment). Skim Step 6 (design system) and Step 7 (testing) unless the project is frontend-heavy. The Architect needs to understand system boundaries, data flow, and infrastructure.
285
+
286
+ ### Designer Discovery
287
+ Focus on Steps 1-2 and Step 6 (configuration, structure, design system). Skim Steps 3-5 (entry points, routing, data) for context but do not deep-dive into backend patterns. The Designer needs to understand the frontend stack, existing components, and visual language.
288
+
289
+ ### Inspector Discovery
290
+ Focus on Steps 4-5 and Step 7 (routing, data, testing). Read Steps 1-3 for context. The Inspector needs to understand what should be tested, what is currently tested, and where quality gaps exist. Step 8 (deployment) matters for verifying that builds pass and configurations are correct.
291
+
292
+ ---
293
+
294
+ ## Output Requirements
295
+
296
+ Discovery must produce structured output, not just internal understanding. Write findings using the **terminal-presentation** skill for user-facing summaries, and write detailed findings to plan documents when requested by the invoking agent.
297
+
298
+ At minimum, produce:
299
+ 1. An architecture fingerprint (see format above).
300
+ 2. A list of discovered modules/features with one-line descriptions.
301
+ 3. A list of red flags (if any) with severity and location.
302
+ 4. A list of patterns and conventions observed.
303
+
304
+ If the invoking agent requests a full discovery document, write it to `docs/plans/{plan-folder}/discovery.md` with all eight steps documented.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: search
3
+ description: Search code and knowledge across indexed repos using AI-ranked results. Far better than grep.
4
+ version: 0.1.0
5
+ ---
6
+
7
+ # /search — Intelligent Code & Knowledge Search
8
+
9
+ Search an indexed codebase using Forge's 5-signal ranking engine. Returns results ranked by vector similarity, graph centrality, recency, change frequency, and observation count — far more relevant than raw text matching.
10
+
11
+ ## Prerequisites
12
+
13
+ The repo must be registered and indexed with Forge. If not, suggest running `/index-repo` first.
14
+
15
+ ## Behavior
16
+
17
+ **Code search** (default): Call `mcp__dk-forge__get_codebase_context` with the user's query.
18
+
19
+ ```
20
+ /search authentication middleware
21
+ /search how do API endpoints handle errors
22
+ /search database connection setup
23
+ ```
24
+
25
+ **Knowledge search**: When the query is about patterns, decisions, or conventions rather than specific code, call `mcp__dk-forge__search_knowledge`.
26
+
27
+ ```
28
+ /search pattern: how do we handle auth
29
+ /search decision: why did we choose postgres
30
+ /search convention: naming for API routes
31
+ ```
32
+
33
+ **Combined search**: For broad queries, run both `get_codebase_context` and `search_knowledge` in parallel and present unified results.
34
+
35
+ ## Query Interpretation
36
+
37
+ - Identify intent: code location vs. pattern/convention vs. architecture decision.
38
+ - For code queries, pass `detail: "full"` to get complete file contents. Use `detail: "skeleton"` for overview, `detail: "paths"` for just file paths.
39
+ - For knowledge queries, optionally filter by `category`: `gotcha`, `pattern`, `decision`, `convention`.
40
+ - Set `include_tests: true` only when the user explicitly asks about test code.
41
+
42
+ ## Output Format
43
+
44
+ Present results clearly:
45
+ 1. **File path** with line numbers for code results.
46
+ 2. **Relevance context** — why this result matched (which signals contributed).
47
+ 3. **Code snippet** — the relevant section, not the entire file.
48
+ 4. For knowledge results, include the confidence score and category.
49
+
50
+ ## Cross-Repo Search
51
+
52
+ When working in a multi-repo environment, results from other indexed repos may appear. Include the repo name when presenting cross-repo results. Disable with `include_cross_repo: false` if the user only wants current-repo results.
53
+
54
+ ## Fallback
55
+
56
+ If the repo is not indexed (no Qdrant collections), fall back to built-in `Grep` and `Glob` tools and suggest indexing for better results.