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,126 @@
1
+ # dominKnow | Forge Workflow
2
+
3
+ ## Overview
4
+
5
+ dominKnow | Forge is an agentic orchestration system that enforces a structured workflow for software development tasks. It coordinates specialized AI agents through well-defined phases, ensuring quality gates are met before advancing.
6
+
7
+ ## Pipeline Tiers
8
+
9
+ ### Full Pipeline (New Features / Projects)
10
+
11
+ ```
12
+ Strategist → Product Manager → Architect + Designer (parallel) → QA Strategist → Specialists (parallel) → Inspector → Knowledge Keeper
13
+ ```
14
+
15
+ 1. **Strategist** — Interviews the user to capture vision, scope, success criteria, and constraints. Produces a vision document.
16
+ 2. **Product Manager** — (Optional, for ambiguous scope) Conducts structured requirements elicitation. Produces requirements.md.
17
+ 3. **Architect + Designer** — Run in parallel:
18
+ - **Architect** — Technical design, module decomposition, API contracts, data modeling. Produces architecture plan.
19
+ - **Designer** — (Required for UI-touching features) XD/UX plan, component hierarchy, aesthetic direction.
20
+ 4. **QA Strategist** — Designs test strategy and coverage plan based on architecture and design outputs.
21
+ 5. **Specialists** — Run in parallel, one per module:
22
+ - **Backend Specialist** — NestJS controllers, services, modules, guards, Drizzle queries
23
+ - **Frontend Specialist** — React/MUI components, state management, routing, API wiring
24
+ - **Data Specialist** — Drizzle schemas, migrations, seed data, cross-system data work
25
+ - **Platform Engineer** — Infrastructure, CI/CD, Kubernetes, security posture
26
+ 6. **Inspector** — Pre-completion quality gate. Verifies build compiles, APIs connect, no stubs exist, security is sound.
27
+ 7. **Knowledge Keeper** — Extracts learnings and persists them to CLAUDE.md, project docs, or knowledge base.
28
+
29
+ ### Abbreviated Pipeline (Bug Fixes / Targeted Changes)
30
+
31
+ ```
32
+ Architect → Specialists → Inspector
33
+ ```
34
+
35
+ ### Trivial (One-liners / Config Tweaks)
36
+
37
+ No pipeline needed — just do it directly.
38
+
39
+ ## Phase Transitions
40
+
41
+ Each phase transition is enforced by the Forge server:
42
+
43
+ ```
44
+ idle → interview → architecture → [design] → [qa_strategy] → implementation → inspection → knowledge_collection → complete
45
+ ```
46
+
47
+ - Phases in `[brackets]` are optional based on project requirements
48
+ - The server prevents skipping phases or transitioning out of order
49
+ - Each phase produces outputs that are stored and available to downstream agents
50
+
51
+ ## Agent Dispatch Patterns
52
+
53
+ ### Serial Dispatch
54
+ Phases like Strategist → Architect run sequentially — each needs the previous phase's output.
55
+
56
+ ### Parallel Dispatch
57
+ - Architect + Designer run simultaneously (both need the vision, neither needs the other)
58
+ - Implementation specialists run simultaneously (each works on an independent module)
59
+
60
+ ### Conditional Routing
61
+ - Designer is only dispatched for UI-touching features
62
+ - Product Manager is only dispatched for ambiguous scope
63
+ - QA Strategist is dispatched when the Architect flags `requires_qa: true`
64
+
65
+ ## Forge Tools
66
+
67
+ ### Pipeline Management
68
+ | Tool | Purpose |
69
+ |------|---------|
70
+ | `create_project` | Create a new pipeline project |
71
+ | `get_state` | Get current pipeline state and progress |
72
+
73
+ ### Phase Tools
74
+ | Tool | Purpose |
75
+ |------|---------|
76
+ | `start_interview` / `submit_vision` | Vision capture phase |
77
+ | `start_architecture` / `submit_plan` | Architecture design phase |
78
+ | `start_design` / `submit_design` | XD/UX design phase |
79
+ | `start_qa_strategy` / `submit_test_plan` | Test strategy phase |
80
+ | `start_implementation` / `submit_implementation` | Implementation phase |
81
+ | `start_inspection` / `submit_verdict` | Quality verification phase |
82
+ | `collect_knowledge` | Knowledge extraction phase |
83
+
84
+ ### Knowledge & Context
85
+ | Tool | Purpose |
86
+ |------|---------|
87
+ | `search_knowledge` | Semantic search over gotchas, patterns, decisions |
88
+ | `get_codebase_context` | Hybrid code search (vector + graph) |
89
+ | `get_project_history` | Full event history for a project |
90
+ | `get_patterns` | Retrieve pattern knowledge items |
91
+ | `get_gotchas` | Retrieve gotcha knowledge items |
92
+
93
+ ### Repo Management
94
+ | Tool | Purpose |
95
+ |------|---------|
96
+ | `register` | Register a repo, sync knowledge, auto-index |
97
+ | `init` | Initialize .forge/ directory structure |
98
+ | `list_repos` | List all registered repos |
99
+ | `get_manifest` | Read a repo's manifest |
100
+ | `index_repo` | Index a repo for code search |
101
+
102
+ ## Knowledge System
103
+
104
+ The Forge maintains a knowledge base across all registered repos:
105
+
106
+ - **Gotchas** — Warnings, caveats, pitfalls, known issues
107
+ - **Patterns** — Best practices, conventions, proven approaches
108
+ - **Decisions** — ADRs, trade-offs, rationale for choices
109
+ - **Conventions** — Rules, standards, naming conventions
110
+
111
+ Knowledge items are:
112
+ - Loaded from `.forge/knowledge/*.yaml` files during registration
113
+ - Auto-extracted from markdown docs during indexing
114
+ - Searchable via semantic vector search across repos
115
+ - Filtered by repo sharing mode (private, team, public)
116
+
117
+ ## Codebase Indexing
118
+
119
+ Registered repos can be indexed for code search:
120
+
121
+ - **Vector store** (Qdrant) — Code chunks embedded for semantic search
122
+ - **Graph store** (FalkorDB) — Code relationships for structural queries
123
+ - **Smart markdown chunking** — Section-aware parsing with heading breadcrumbs
124
+ - **Knowledge extraction** — Auto-extracts gotchas/patterns from markdown headings
125
+
126
+ Index is triggered automatically on registration (`auto: true`) or manually via `index_repo`.
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 2,
3
+ "name": "agent-development",
4
+ "owner": "anthropics",
5
+ "repo": "claude-code",
6
+ "path": "plugins/plugin-dev/skills/agent-development",
7
+ "branch": "main",
8
+ "sha": "55323e4656435c2c3d829630c472639e6b600f34",
9
+ "source": "manual"
10
+ }
@@ -0,0 +1,415 @@
1
+ ---
2
+ name: Agent Development
3
+ description: This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
4
+ version: 0.1.0
5
+ ---
6
+
7
+ # Agent Development for Claude Code Plugins
8
+
9
+ ## Overview
10
+
11
+ Agents are autonomous subprocesses that handle complex, multi-step tasks independently. Understanding agent structure, triggering conditions, and system prompt design enables creating powerful autonomous capabilities.
12
+
13
+ **Key concepts:**
14
+ - Agents are FOR autonomous work, commands are FOR user-initiated actions
15
+ - Markdown file format with YAML frontmatter
16
+ - Triggering via description field with examples
17
+ - System prompt defines agent behavior
18
+ - Model and color customization
19
+
20
+ ## Agent File Structure
21
+
22
+ ### Complete Format
23
+
24
+ ```markdown
25
+ ---
26
+ name: agent-identifier
27
+ description: Use this agent when [triggering conditions]. Examples:
28
+
29
+ <example>
30
+ Context: [Situation description]
31
+ user: "[User request]"
32
+ assistant: "[How assistant should respond and use this agent]"
33
+ <commentary>
34
+ [Why this agent should be triggered]
35
+ </commentary>
36
+ </example>
37
+
38
+ <example>
39
+ [Additional example...]
40
+ </example>
41
+
42
+ model: inherit
43
+ color: blue
44
+ tools: ["Read", "Write", "Grep"]
45
+ ---
46
+
47
+ You are [agent role description]...
48
+
49
+ **Your Core Responsibilities:**
50
+ 1. [Responsibility 1]
51
+ 2. [Responsibility 2]
52
+
53
+ **Analysis Process:**
54
+ [Step-by-step workflow]
55
+
56
+ **Output Format:**
57
+ [What to return]
58
+ ```
59
+
60
+ ## Frontmatter Fields
61
+
62
+ ### name (required)
63
+
64
+ Agent identifier used for namespacing and invocation.
65
+
66
+ **Format:** lowercase, numbers, hyphens only
67
+ **Length:** 3-50 characters
68
+ **Pattern:** Must start and end with alphanumeric
69
+
70
+ **Good examples:**
71
+ - `code-reviewer`
72
+ - `test-generator`
73
+ - `api-docs-writer`
74
+ - `security-analyzer`
75
+
76
+ **Bad examples:**
77
+ - `helper` (too generic)
78
+ - `-agent-` (starts/ends with hyphen)
79
+ - `my_agent` (underscores not allowed)
80
+ - `ag` (too short, < 3 chars)
81
+
82
+ ### description (required)
83
+
84
+ Defines when Claude should trigger this agent. **This is the most critical field.**
85
+
86
+ **Must include:**
87
+ 1. Triggering conditions ("Use this agent when...")
88
+ 2. Multiple `<example>` blocks showing usage
89
+ 3. Context, user request, and assistant response in each example
90
+ 4. `<commentary>` explaining why agent triggers
91
+
92
+ **Format:**
93
+ ```
94
+ Use this agent when [conditions]. Examples:
95
+
96
+ <example>
97
+ Context: [Scenario description]
98
+ user: "[What user says]"
99
+ assistant: "[How Claude should respond]"
100
+ <commentary>
101
+ [Why this agent is appropriate]
102
+ </commentary>
103
+ </example>
104
+
105
+ [More examples...]
106
+ ```
107
+
108
+ **Best practices:**
109
+ - Include 2-4 concrete examples
110
+ - Show proactive and reactive triggering
111
+ - Cover different phrasings of same intent
112
+ - Explain reasoning in commentary
113
+ - Be specific about when NOT to use the agent
114
+
115
+ ### model (required)
116
+
117
+ Which model the agent should use.
118
+
119
+ **Options:**
120
+ - `inherit` - Use same model as parent (recommended)
121
+ - `sonnet` - Claude Sonnet (balanced)
122
+ - `opus` - Claude Opus (most capable, expensive)
123
+ - `haiku` - Claude Haiku (fast, cheap)
124
+
125
+ **Recommendation:** Use `inherit` unless agent needs specific model capabilities.
126
+
127
+ ### color (required)
128
+
129
+ Visual identifier for agent in UI.
130
+
131
+ **Options:** `blue`, `cyan`, `green`, `yellow`, `magenta`, `red`
132
+
133
+ **Guidelines:**
134
+ - Choose distinct colors for different agents in same plugin
135
+ - Use consistent colors for similar agent types
136
+ - Blue/cyan: Analysis, review
137
+ - Green: Success-oriented tasks
138
+ - Yellow: Caution, validation
139
+ - Red: Critical, security
140
+ - Magenta: Creative, generation
141
+
142
+ ### tools (optional)
143
+
144
+ Restrict agent to specific tools.
145
+
146
+ **Format:** Array of tool names
147
+
148
+ ```yaml
149
+ tools: ["Read", "Write", "Grep", "Bash"]
150
+ ```
151
+
152
+ **Default:** If omitted, agent has access to all tools
153
+
154
+ **Best practice:** Limit tools to minimum needed (principle of least privilege)
155
+
156
+ **Common tool sets:**
157
+ - Read-only analysis: `["Read", "Grep", "Glob"]`
158
+ - Code generation: `["Read", "Write", "Grep"]`
159
+ - Testing: `["Read", "Bash", "Grep"]`
160
+ - Full access: Omit field or use `["*"]`
161
+
162
+ ## System Prompt Design
163
+
164
+ The markdown body becomes the agent's system prompt. Write in second person, addressing the agent directly.
165
+
166
+ ### Structure
167
+
168
+ **Standard template:**
169
+ ```markdown
170
+ You are [role] specializing in [domain].
171
+
172
+ **Your Core Responsibilities:**
173
+ 1. [Primary responsibility]
174
+ 2. [Secondary responsibility]
175
+ 3. [Additional responsibilities...]
176
+
177
+ **Analysis Process:**
178
+ 1. [Step one]
179
+ 2. [Step two]
180
+ 3. [Step three]
181
+ [...]
182
+
183
+ **Quality Standards:**
184
+ - [Standard 1]
185
+ - [Standard 2]
186
+
187
+ **Output Format:**
188
+ Provide results in this format:
189
+ - [What to include]
190
+ - [How to structure]
191
+
192
+ **Edge Cases:**
193
+ Handle these situations:
194
+ - [Edge case 1]: [How to handle]
195
+ - [Edge case 2]: [How to handle]
196
+ ```
197
+
198
+ ### Best Practices
199
+
200
+ ✅ **DO:**
201
+ - Write in second person ("You are...", "You will...")
202
+ - Be specific about responsibilities
203
+ - Provide step-by-step process
204
+ - Define output format
205
+ - Include quality standards
206
+ - Address edge cases
207
+ - Keep under 10,000 characters
208
+
209
+ ❌ **DON'T:**
210
+ - Write in first person ("I am...", "I will...")
211
+ - Be vague or generic
212
+ - Omit process steps
213
+ - Leave output format undefined
214
+ - Skip quality guidance
215
+ - Ignore error cases
216
+
217
+ ## Creating Agents
218
+
219
+ ### Method 1: AI-Assisted Generation
220
+
221
+ Use this prompt pattern (extracted from Claude Code):
222
+
223
+ ```
224
+ Create an agent configuration based on this request: "[YOUR DESCRIPTION]"
225
+
226
+ Requirements:
227
+ 1. Extract core intent and responsibilities
228
+ 2. Design expert persona for the domain
229
+ 3. Create comprehensive system prompt with:
230
+ - Clear behavioral boundaries
231
+ - Specific methodologies
232
+ - Edge case handling
233
+ - Output format
234
+ 4. Create identifier (lowercase, hyphens, 3-50 chars)
235
+ 5. Write description with triggering conditions
236
+ 6. Include 2-3 <example> blocks showing when to use
237
+
238
+ Return JSON with:
239
+ {
240
+ "identifier": "agent-name",
241
+ "whenToUse": "Use this agent when... Examples: <example>...</example>",
242
+ "systemPrompt": "You are..."
243
+ }
244
+ ```
245
+
246
+ Then convert to agent file format with frontmatter.
247
+
248
+ See `examples/agent-creation-prompt.md` for complete template.
249
+
250
+ ### Method 2: Manual Creation
251
+
252
+ 1. Choose agent identifier (3-50 chars, lowercase, hyphens)
253
+ 2. Write description with examples
254
+ 3. Select model (usually `inherit`)
255
+ 4. Choose color for visual identification
256
+ 5. Define tools (if restricting access)
257
+ 6. Write system prompt with structure above
258
+ 7. Save as `agents/agent-name.md`
259
+
260
+ ## Validation Rules
261
+
262
+ ### Identifier Validation
263
+
264
+ ```
265
+ ✅ Valid: code-reviewer, test-gen, api-analyzer-v2
266
+ ❌ Invalid: ag (too short), -start (starts with hyphen), my_agent (underscore)
267
+ ```
268
+
269
+ **Rules:**
270
+ - 3-50 characters
271
+ - Lowercase letters, numbers, hyphens only
272
+ - Must start and end with alphanumeric
273
+ - No underscores, spaces, or special characters
274
+
275
+ ### Description Validation
276
+
277
+ **Length:** 10-5,000 characters
278
+ **Must include:** Triggering conditions and examples
279
+ **Best:** 200-1,000 characters with 2-4 examples
280
+
281
+ ### System Prompt Validation
282
+
283
+ **Length:** 20-10,000 characters
284
+ **Best:** 500-3,000 characters
285
+ **Structure:** Clear responsibilities, process, output format
286
+
287
+ ## Agent Organization
288
+
289
+ ### Plugin Agents Directory
290
+
291
+ ```
292
+ plugin-name/
293
+ └── agents/
294
+ ├── analyzer.md
295
+ ├── reviewer.md
296
+ └── generator.md
297
+ ```
298
+
299
+ All `.md` files in `agents/` are auto-discovered.
300
+
301
+ ### Namespacing
302
+
303
+ Agents are namespaced automatically:
304
+ - Single plugin: `agent-name`
305
+ - With subdirectories: `plugin:subdir:agent-name`
306
+
307
+ ## Testing Agents
308
+
309
+ ### Test Triggering
310
+
311
+ Create test scenarios to verify agent triggers correctly:
312
+
313
+ 1. Write agent with specific triggering examples
314
+ 2. Use similar phrasing to examples in test
315
+ 3. Check Claude loads the agent
316
+ 4. Verify agent provides expected functionality
317
+
318
+ ### Test System Prompt
319
+
320
+ Ensure system prompt is complete:
321
+
322
+ 1. Give agent typical task
323
+ 2. Check it follows process steps
324
+ 3. Verify output format is correct
325
+ 4. Test edge cases mentioned in prompt
326
+ 5. Confirm quality standards are met
327
+
328
+ ## Quick Reference
329
+
330
+ ### Minimal Agent
331
+
332
+ ```markdown
333
+ ---
334
+ name: simple-agent
335
+ description: Use this agent when... Examples: <example>...</example>
336
+ model: inherit
337
+ color: blue
338
+ ---
339
+
340
+ You are an agent that [does X].
341
+
342
+ Process:
343
+ 1. [Step 1]
344
+ 2. [Step 2]
345
+
346
+ Output: [What to provide]
347
+ ```
348
+
349
+ ### Frontmatter Fields Summary
350
+
351
+ | Field | Required | Format | Example |
352
+ |-------|----------|--------|---------|
353
+ | name | Yes | lowercase-hyphens | code-reviewer |
354
+ | description | Yes | Text + examples | Use when... <example>... |
355
+ | model | Yes | inherit/sonnet/opus/haiku | inherit |
356
+ | color | Yes | Color name | blue |
357
+ | tools | No | Array of tool names | ["Read", "Grep"] |
358
+
359
+ ### Best Practices
360
+
361
+ **DO:**
362
+ - ✅ Include 2-4 concrete examples in description
363
+ - ✅ Write specific triggering conditions
364
+ - ✅ Use `inherit` for model unless specific need
365
+ - ✅ Choose appropriate tools (least privilege)
366
+ - ✅ Write clear, structured system prompts
367
+ - ✅ Test agent triggering thoroughly
368
+
369
+ **DON'T:**
370
+ - ❌ Use generic descriptions without examples
371
+ - ❌ Omit triggering conditions
372
+ - ❌ Give all agents same color
373
+ - ❌ Grant unnecessary tool access
374
+ - ❌ Write vague system prompts
375
+ - ❌ Skip testing
376
+
377
+ ## Additional Resources
378
+
379
+ ### Reference Files
380
+
381
+ For detailed guidance, consult:
382
+
383
+ - **`references/system-prompt-design.md`** - Complete system prompt patterns
384
+ - **`references/triggering-examples.md`** - Example formats and best practices
385
+ - **`references/agent-creation-system-prompt.md`** - The exact prompt from Claude Code
386
+
387
+ ### Example Files
388
+
389
+ Working examples in `examples/`:
390
+
391
+ - **`agent-creation-prompt.md`** - AI-assisted agent generation template
392
+ - **`complete-agent-examples.md`** - Full agent examples for different use cases
393
+
394
+ ### Utility Scripts
395
+
396
+ Development tools in `scripts/`:
397
+
398
+ - **`validate-agent.sh`** - Validate agent file structure
399
+ - **`test-agent-trigger.sh`** - Test if agent triggers correctly
400
+
401
+ ## Implementation Workflow
402
+
403
+ To create an agent for a plugin:
404
+
405
+ 1. Define agent purpose and triggering conditions
406
+ 2. Choose creation method (AI-assisted or manual)
407
+ 3. Create `agents/agent-name.md` file
408
+ 4. Write frontmatter with all required fields
409
+ 5. Write system prompt following best practices
410
+ 6. Include 2-4 triggering examples in description
411
+ 7. Validate with `scripts/validate-agent.sh`
412
+ 8. Test triggering with real scenarios
413
+ 9. Document agent in plugin README
414
+
415
+ Focus on clear triggering conditions and comprehensive system prompts for autonomous operation.