@vpxa/aikit 0.1.1

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 (649) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1207 -0
  3. package/bin/aikit.mjs +10 -0
  4. package/package.json +92 -0
  5. package/packages/aikit-client/dist/direct-client.d.ts +37 -0
  6. package/packages/aikit-client/dist/direct-client.js +1 -0
  7. package/packages/aikit-client/dist/index.d.ts +5 -0
  8. package/packages/aikit-client/dist/index.js +1 -0
  9. package/packages/aikit-client/dist/mcp-client.d.ts +19 -0
  10. package/packages/aikit-client/dist/mcp-client.js +4 -0
  11. package/packages/aikit-client/dist/parsers.d.ts +35 -0
  12. package/packages/aikit-client/dist/parsers.js +2 -0
  13. package/packages/aikit-client/dist/types.d.ts +62 -0
  14. package/packages/aikit-client/dist/types.js +1 -0
  15. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +19 -0
  16. package/packages/analyzers/dist/blast-radius-analyzer.js +6 -0
  17. package/packages/analyzers/dist/dependency-analyzer.d.ts +32 -0
  18. package/packages/analyzers/dist/dependency-analyzer.js +8 -0
  19. package/packages/analyzers/dist/diagram-generator.d.ts +16 -0
  20. package/packages/analyzers/dist/diagram-generator.js +2 -0
  21. package/packages/analyzers/dist/entry-point-analyzer.d.ts +40 -0
  22. package/packages/analyzers/dist/entry-point-analyzer.js +4 -0
  23. package/packages/analyzers/dist/index.d.ts +12 -0
  24. package/packages/analyzers/dist/index.js +1 -0
  25. package/packages/analyzers/dist/knowledge-producer.d.ts +40 -0
  26. package/packages/analyzers/dist/knowledge-producer.js +26 -0
  27. package/packages/analyzers/dist/pattern-analyzer.d.ts +15 -0
  28. package/packages/analyzers/dist/pattern-analyzer.js +2 -0
  29. package/packages/analyzers/dist/regex-call-graph.d.ts +10 -0
  30. package/packages/analyzers/dist/regex-call-graph.js +1 -0
  31. package/packages/analyzers/dist/structure-analyzer.d.ts +19 -0
  32. package/packages/analyzers/dist/structure-analyzer.js +4 -0
  33. package/packages/analyzers/dist/symbol-analyzer.d.ts +14 -0
  34. package/packages/analyzers/dist/symbol-analyzer.js +9 -0
  35. package/packages/analyzers/dist/ts-call-graph.d.ts +29 -0
  36. package/packages/analyzers/dist/ts-call-graph.js +1 -0
  37. package/packages/analyzers/dist/types.d.ts +110 -0
  38. package/packages/analyzers/dist/types.js +1 -0
  39. package/packages/chunker/dist/call-graph-extractor.d.ts +25 -0
  40. package/packages/chunker/dist/call-graph-extractor.js +1 -0
  41. package/packages/chunker/dist/chunker-factory.d.ts +19 -0
  42. package/packages/chunker/dist/chunker-factory.js +1 -0
  43. package/packages/chunker/dist/chunker.interface.d.ts +13 -0
  44. package/packages/chunker/dist/chunker.interface.js +1 -0
  45. package/packages/chunker/dist/code-chunker.d.ts +17 -0
  46. package/packages/chunker/dist/code-chunker.js +11 -0
  47. package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
  48. package/packages/chunker/dist/extractors/call-extractor.js +1 -0
  49. package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
  50. package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
  51. package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
  52. package/packages/chunker/dist/extractors/import-extractor.js +1 -0
  53. package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
  54. package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
  55. package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
  56. package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
  57. package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
  58. package/packages/chunker/dist/extractors/symbol-extractor.js +3 -0
  59. package/packages/chunker/dist/extractors/types.d.ts +44 -0
  60. package/packages/chunker/dist/extractors/types.js +1 -0
  61. package/packages/chunker/dist/generic-chunker.d.ts +15 -0
  62. package/packages/chunker/dist/generic-chunker.js +5 -0
  63. package/packages/chunker/dist/index.d.ts +19 -0
  64. package/packages/chunker/dist/index.js +1 -0
  65. package/packages/chunker/dist/markdown-chunker.d.ts +17 -0
  66. package/packages/chunker/dist/markdown-chunker.js +3 -0
  67. package/packages/chunker/dist/wasm/languages.d.ts +18 -0
  68. package/packages/chunker/dist/wasm/languages.js +1 -0
  69. package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
  70. package/packages/chunker/dist/wasm/query-executor.js +1 -0
  71. package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
  72. package/packages/chunker/dist/wasm/runtime.js +1 -0
  73. package/packages/chunker/dist/wasm/types.d.ts +84 -0
  74. package/packages/chunker/dist/wasm/types.js +1 -0
  75. package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
  76. package/packages/chunker/dist/wasm-chunker.js +6 -0
  77. package/packages/chunker/src/queries/go/calls.scm +11 -0
  78. package/packages/chunker/src/queries/go/entry-points.scm +20 -0
  79. package/packages/chunker/src/queries/go/imports.scm +6 -0
  80. package/packages/chunker/src/queries/go/patterns.scm +25 -0
  81. package/packages/chunker/src/queries/go/symbols.scm +26 -0
  82. package/packages/chunker/src/queries/java/calls.scm +10 -0
  83. package/packages/chunker/src/queries/java/entry-points.scm +27 -0
  84. package/packages/chunker/src/queries/java/imports.scm +11 -0
  85. package/packages/chunker/src/queries/java/patterns.scm +27 -0
  86. package/packages/chunker/src/queries/java/symbols.scm +28 -0
  87. package/packages/chunker/src/queries/javascript/calls.scm +21 -0
  88. package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
  89. package/packages/chunker/src/queries/javascript/imports.scm +32 -0
  90. package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
  91. package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
  92. package/packages/chunker/src/queries/python/calls.scm +11 -0
  93. package/packages/chunker/src/queries/python/entry-points.scm +21 -0
  94. package/packages/chunker/src/queries/python/imports.scm +14 -0
  95. package/packages/chunker/src/queries/python/patterns.scm +25 -0
  96. package/packages/chunker/src/queries/python/symbols.scm +17 -0
  97. package/packages/chunker/src/queries/rust/calls.scm +20 -0
  98. package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
  99. package/packages/chunker/src/queries/rust/imports.scm +26 -0
  100. package/packages/chunker/src/queries/rust/patterns.scm +18 -0
  101. package/packages/chunker/src/queries/rust/symbols.scm +73 -0
  102. package/packages/chunker/src/queries/typescript/calls.scm +21 -0
  103. package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
  104. package/packages/chunker/src/queries/typescript/imports.scm +35 -0
  105. package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
  106. package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
  107. package/packages/chunker/wasm/tree-sitter-c.wasm +0 -0
  108. package/packages/chunker/wasm/tree-sitter-c_sharp.wasm +0 -0
  109. package/packages/chunker/wasm/tree-sitter-cpp.wasm +0 -0
  110. package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
  111. package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
  112. package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
  113. package/packages/chunker/wasm/tree-sitter-kotlin.wasm +0 -0
  114. package/packages/chunker/wasm/tree-sitter-php.wasm +0 -0
  115. package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
  116. package/packages/chunker/wasm/tree-sitter-ruby.wasm +0 -0
  117. package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
  118. package/packages/chunker/wasm/tree-sitter-scala.wasm +0 -0
  119. package/packages/chunker/wasm/tree-sitter-swift.wasm +0 -0
  120. package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
  121. package/packages/chunker/wasm/tree-sitter.wasm +0 -0
  122. package/packages/cli/dist/aikit-init.d.ts +54 -0
  123. package/packages/cli/dist/aikit-init.js +1 -0
  124. package/packages/cli/dist/commands/analyze.d.ts +6 -0
  125. package/packages/cli/dist/commands/analyze.js +2 -0
  126. package/packages/cli/dist/commands/context-cmds.d.ts +6 -0
  127. package/packages/cli/dist/commands/context-cmds.js +1 -0
  128. package/packages/cli/dist/commands/environment.d.ts +6 -0
  129. package/packages/cli/dist/commands/environment.js +1 -0
  130. package/packages/cli/dist/commands/execution.d.ts +6 -0
  131. package/packages/cli/dist/commands/execution.js +1 -0
  132. package/packages/cli/dist/commands/flow.d.ts +6 -0
  133. package/packages/cli/dist/commands/flow.js +1 -0
  134. package/packages/cli/dist/commands/graph.d.ts +6 -0
  135. package/packages/cli/dist/commands/graph.js +6 -0
  136. package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
  137. package/packages/cli/dist/commands/init/adapters.js +1 -0
  138. package/packages/cli/dist/commands/init/config.d.ts +10 -0
  139. package/packages/cli/dist/commands/init/config.js +3 -0
  140. package/packages/cli/dist/commands/init/constants.d.ts +41 -0
  141. package/packages/cli/dist/commands/init/constants.js +1 -0
  142. package/packages/cli/dist/commands/init/curated.d.ts +7 -0
  143. package/packages/cli/dist/commands/init/curated.js +1 -0
  144. package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
  145. package/packages/cli/dist/commands/init/frontmatter.js +2 -0
  146. package/packages/cli/dist/commands/init/index.d.ts +36 -0
  147. package/packages/cli/dist/commands/init/index.js +5 -0
  148. package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
  149. package/packages/cli/dist/commands/init/manifest.js +1 -0
  150. package/packages/cli/dist/commands/init/scaffold.d.ts +46 -0
  151. package/packages/cli/dist/commands/init/scaffold.js +1 -0
  152. package/packages/cli/dist/commands/init/templates.d.ts +9 -0
  153. package/packages/cli/dist/commands/init/templates.js +194 -0
  154. package/packages/cli/dist/commands/init/user.d.ts +61 -0
  155. package/packages/cli/dist/commands/init/user.js +5 -0
  156. package/packages/cli/dist/commands/knowledge.d.ts +6 -0
  157. package/packages/cli/dist/commands/knowledge.js +1 -0
  158. package/packages/cli/dist/commands/search.d.ts +6 -0
  159. package/packages/cli/dist/commands/search.js +1 -0
  160. package/packages/cli/dist/commands/system.d.ts +6 -0
  161. package/packages/cli/dist/commands/system.js +4 -0
  162. package/packages/cli/dist/commands/upgrade.d.ts +6 -0
  163. package/packages/cli/dist/commands/upgrade.js +1 -0
  164. package/packages/cli/dist/commands/workspace.d.ts +6 -0
  165. package/packages/cli/dist/commands/workspace.js +1 -0
  166. package/packages/cli/dist/context.d.ts +7 -0
  167. package/packages/cli/dist/context.js +1 -0
  168. package/packages/cli/dist/helpers.d.ts +55 -0
  169. package/packages/cli/dist/helpers.js +5 -0
  170. package/packages/cli/dist/index.d.ts +10 -0
  171. package/packages/cli/dist/index.js +3 -0
  172. package/packages/cli/dist/types.d.ts +9 -0
  173. package/packages/cli/dist/types.js +1 -0
  174. package/packages/core/dist/constants.d.ts +74 -0
  175. package/packages/core/dist/constants.js +1 -0
  176. package/packages/core/dist/content-detector.d.ts +13 -0
  177. package/packages/core/dist/content-detector.js +1 -0
  178. package/packages/core/dist/errors.d.ts +20 -0
  179. package/packages/core/dist/errors.js +1 -0
  180. package/packages/core/dist/global-registry.d.ts +63 -0
  181. package/packages/core/dist/global-registry.js +1 -0
  182. package/packages/core/dist/index.d.ts +7 -0
  183. package/packages/core/dist/index.js +1 -0
  184. package/packages/core/dist/logger.d.ts +32 -0
  185. package/packages/core/dist/logger.js +1 -0
  186. package/packages/core/dist/types.d.ts +133 -0
  187. package/packages/core/dist/types.js +1 -0
  188. package/packages/dashboard/dist/assets/index-BjA4YODs.js +21 -0
  189. package/packages/dashboard/dist/assets/index-BjA4YODs.js.map +1 -0
  190. package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
  191. package/packages/dashboard/dist/index.html +18 -0
  192. package/packages/elicitation/dist/build.d.ts +14 -0
  193. package/packages/elicitation/dist/build.js +1 -0
  194. package/packages/elicitation/dist/fields.d.ts +32 -0
  195. package/packages/elicitation/dist/fields.js +1 -0
  196. package/packages/elicitation/dist/index.d.ts +5 -0
  197. package/packages/elicitation/dist/index.js +1 -0
  198. package/packages/elicitation/dist/normalize.d.ts +15 -0
  199. package/packages/elicitation/dist/normalize.js +1 -0
  200. package/packages/elicitation/dist/types.d.ts +88 -0
  201. package/packages/elicitation/dist/types.js +1 -0
  202. package/packages/embeddings/dist/embedder.interface.d.ts +26 -0
  203. package/packages/embeddings/dist/embedder.interface.js +1 -0
  204. package/packages/embeddings/dist/index.d.ts +3 -0
  205. package/packages/embeddings/dist/index.js +1 -0
  206. package/packages/embeddings/dist/onnx-embedder.d.ts +22 -0
  207. package/packages/embeddings/dist/onnx-embedder.js +1 -0
  208. package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
  209. package/packages/enterprise-bridge/dist/cache.js +1 -0
  210. package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
  211. package/packages/enterprise-bridge/dist/er-client.js +1 -0
  212. package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
  213. package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
  214. package/packages/enterprise-bridge/dist/index.d.ts +8 -0
  215. package/packages/enterprise-bridge/dist/index.js +1 -0
  216. package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
  217. package/packages/enterprise-bridge/dist/policy-store.js +1 -0
  218. package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
  219. package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
  220. package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
  221. package/packages/enterprise-bridge/dist/result-merger.js +1 -0
  222. package/packages/enterprise-bridge/dist/types.d.ts +81 -0
  223. package/packages/enterprise-bridge/dist/types.js +1 -0
  224. package/packages/flows/dist/adapters/claude-plugin.d.ts +12 -0
  225. package/packages/flows/dist/adapters/claude-plugin.js +1 -0
  226. package/packages/flows/dist/adapters/copilot.d.ts +10 -0
  227. package/packages/flows/dist/adapters/copilot.js +1 -0
  228. package/packages/flows/dist/adapters/index.d.ts +11 -0
  229. package/packages/flows/dist/adapters/index.js +1 -0
  230. package/packages/flows/dist/adapters/native.d.ts +10 -0
  231. package/packages/flows/dist/adapters/native.js +1 -0
  232. package/packages/flows/dist/builtins.d.ts +16 -0
  233. package/packages/flows/dist/builtins.js +1 -0
  234. package/packages/flows/dist/foundation.d.ts +20 -0
  235. package/packages/flows/dist/foundation.js +11 -0
  236. package/packages/flows/dist/git.d.ts +34 -0
  237. package/packages/flows/dist/git.js +1 -0
  238. package/packages/flows/dist/index.d.ts +12 -0
  239. package/packages/flows/dist/index.js +1 -0
  240. package/packages/flows/dist/loader.d.ts +13 -0
  241. package/packages/flows/dist/loader.js +2 -0
  242. package/packages/flows/dist/registry.d.ts +23 -0
  243. package/packages/flows/dist/registry.js +1 -0
  244. package/packages/flows/dist/state-machine.d.ts +23 -0
  245. package/packages/flows/dist/state-machine.js +1 -0
  246. package/packages/flows/dist/symlinks.d.ts +17 -0
  247. package/packages/flows/dist/symlinks.js +1 -0
  248. package/packages/flows/dist/types.d.ts +112 -0
  249. package/packages/flows/dist/types.js +1 -0
  250. package/packages/indexer/dist/file-hasher.d.ts +13 -0
  251. package/packages/indexer/dist/file-hasher.js +1 -0
  252. package/packages/indexer/dist/filesystem-crawler.d.ts +29 -0
  253. package/packages/indexer/dist/filesystem-crawler.js +1 -0
  254. package/packages/indexer/dist/graph-extractor.d.ts +18 -0
  255. package/packages/indexer/dist/graph-extractor.js +1 -0
  256. package/packages/indexer/dist/hash-cache.d.ts +24 -0
  257. package/packages/indexer/dist/hash-cache.js +1 -0
  258. package/packages/indexer/dist/incremental-indexer.d.ts +56 -0
  259. package/packages/indexer/dist/incremental-indexer.js +1 -0
  260. package/packages/indexer/dist/index.d.ts +6 -0
  261. package/packages/indexer/dist/index.js +1 -0
  262. package/packages/present/dist/index.html +709 -0
  263. package/packages/server/dist/api.d.ts +3 -0
  264. package/packages/server/dist/api.js +1 -0
  265. package/packages/server/dist/auto-gc.d.ts +30 -0
  266. package/packages/server/dist/auto-gc.js +1 -0
  267. package/packages/server/dist/completions.d.ts +14 -0
  268. package/packages/server/dist/completions.js +1 -0
  269. package/packages/server/dist/config.d.ts +14 -0
  270. package/packages/server/dist/config.js +1 -0
  271. package/packages/server/dist/cross-workspace.d.ts +43 -0
  272. package/packages/server/dist/cross-workspace.js +1 -0
  273. package/packages/server/dist/curated-manager.d.ts +92 -0
  274. package/packages/server/dist/curated-manager.js +5 -0
  275. package/packages/server/dist/dashboard-static.d.ts +27 -0
  276. package/packages/server/dist/dashboard-static.js +1 -0
  277. package/packages/server/dist/elicitor.d.ts +18 -0
  278. package/packages/server/dist/elicitor.js +1 -0
  279. package/packages/server/dist/index.d.ts +1 -0
  280. package/packages/server/dist/index.js +1 -0
  281. package/packages/server/dist/mcp-logging.d.ts +11 -0
  282. package/packages/server/dist/mcp-logging.js +1 -0
  283. package/packages/server/dist/output-schemas.d.ts +242 -0
  284. package/packages/server/dist/output-schemas.js +1 -0
  285. package/packages/server/dist/prompts.d.ts +13 -0
  286. package/packages/server/dist/prompts.js +13 -0
  287. package/packages/server/dist/replay-interceptor.d.ts +23 -0
  288. package/packages/server/dist/replay-interceptor.js +1 -0
  289. package/packages/server/dist/resource-links.d.ts +34 -0
  290. package/packages/server/dist/resource-links.js +1 -0
  291. package/packages/server/dist/resources/curated-resources.d.ts +13 -0
  292. package/packages/server/dist/resources/curated-resources.js +2 -0
  293. package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
  294. package/packages/server/dist/resources/resource-notifier.js +1 -0
  295. package/packages/server/dist/resources/resources.d.ts +8 -0
  296. package/packages/server/dist/resources/resources.js +2 -0
  297. package/packages/server/dist/sampling.d.ts +41 -0
  298. package/packages/server/dist/sampling.js +2 -0
  299. package/packages/server/dist/server.d.ts +47 -0
  300. package/packages/server/dist/server.js +3 -0
  301. package/packages/server/dist/structured-content-guard.d.ts +26 -0
  302. package/packages/server/dist/structured-content-guard.js +1 -0
  303. package/packages/server/dist/task-manager.d.ts +40 -0
  304. package/packages/server/dist/task-manager.js +1 -0
  305. package/packages/server/dist/tool-metadata.d.ts +38 -0
  306. package/packages/server/dist/tool-metadata.js +1 -0
  307. package/packages/server/dist/tool-prefix.d.ts +12 -0
  308. package/packages/server/dist/tool-prefix.js +1 -0
  309. package/packages/server/dist/tools/analyze.tools.d.ts +14 -0
  310. package/packages/server/dist/tools/analyze.tools.js +8 -0
  311. package/packages/server/dist/tools/audit.tool.d.ts +8 -0
  312. package/packages/server/dist/tools/audit.tool.js +1 -0
  313. package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
  314. package/packages/server/dist/tools/brainstorm.tool.js +9 -0
  315. package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
  316. package/packages/server/dist/tools/bridge.tools.js +15 -0
  317. package/packages/server/dist/tools/context.tools.d.ts +15 -0
  318. package/packages/server/dist/tools/context.tools.js +10 -0
  319. package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
  320. package/packages/server/dist/tools/evolution.tools.js +5 -0
  321. package/packages/server/dist/tools/execution.tools.d.ts +14 -0
  322. package/packages/server/dist/tools/execution.tools.js +4 -0
  323. package/packages/server/dist/tools/flow.tools.d.ts +7 -0
  324. package/packages/server/dist/tools/flow.tools.js +1 -0
  325. package/packages/server/dist/tools/forge.tools.d.ts +13 -0
  326. package/packages/server/dist/tools/forge.tools.js +10 -0
  327. package/packages/server/dist/tools/forget.tool.d.ts +8 -0
  328. package/packages/server/dist/tools/forget.tool.js +1 -0
  329. package/packages/server/dist/tools/graph.tool.d.ts +7 -0
  330. package/packages/server/dist/tools/graph.tool.js +5 -0
  331. package/packages/server/dist/tools/infra.tools.d.ts +10 -0
  332. package/packages/server/dist/tools/infra.tools.js +5 -0
  333. package/packages/server/dist/tools/list.tool.d.ts +7 -0
  334. package/packages/server/dist/tools/list.tool.js +2 -0
  335. package/packages/server/dist/tools/lookup.tool.d.ts +7 -0
  336. package/packages/server/dist/tools/lookup.tool.js +3 -0
  337. package/packages/server/dist/tools/manipulation.tools.d.ts +10 -0
  338. package/packages/server/dist/tools/manipulation.tools.js +4 -0
  339. package/packages/server/dist/tools/onboard.tool.d.ts +9 -0
  340. package/packages/server/dist/tools/onboard.tool.js +2 -0
  341. package/packages/server/dist/tools/persistence.tools.d.ts +10 -0
  342. package/packages/server/dist/tools/persistence.tools.js +5 -0
  343. package/packages/server/dist/tools/policy.tools.d.ts +7 -0
  344. package/packages/server/dist/tools/policy.tools.js +3 -0
  345. package/packages/server/dist/tools/present/browser.d.ts +4 -0
  346. package/packages/server/dist/tools/present/browser.js +93 -0
  347. package/packages/server/dist/tools/present/helpers.d.ts +18 -0
  348. package/packages/server/dist/tools/present/helpers.js +1 -0
  349. package/packages/server/dist/tools/present/html.d.ts +18 -0
  350. package/packages/server/dist/tools/present/html.js +5 -0
  351. package/packages/server/dist/tools/present/index.d.ts +2 -0
  352. package/packages/server/dist/tools/present/index.js +1 -0
  353. package/packages/server/dist/tools/present/markdown.d.ts +17 -0
  354. package/packages/server/dist/tools/present/markdown.js +8 -0
  355. package/packages/server/dist/tools/present/templates.d.ts +14 -0
  356. package/packages/server/dist/tools/present/templates.js +472 -0
  357. package/packages/server/dist/tools/present/tool.d.ts +27 -0
  358. package/packages/server/dist/tools/present/tool.js +19 -0
  359. package/packages/server/dist/tools/present-blocks.d.ts +46 -0
  360. package/packages/server/dist/tools/present-blocks.js +27 -0
  361. package/packages/server/dist/tools/present-charts.d.ts +31 -0
  362. package/packages/server/dist/tools/present-charts.js +34 -0
  363. package/packages/server/dist/tools/present-theme.d.ts +14 -0
  364. package/packages/server/dist/tools/present-theme.js +395 -0
  365. package/packages/server/dist/tools/present-utils.d.ts +11 -0
  366. package/packages/server/dist/tools/present-utils.js +1 -0
  367. package/packages/server/dist/tools/present.tool.d.ts +2 -0
  368. package/packages/server/dist/tools/present.tool.js +1 -0
  369. package/packages/server/dist/tools/produce.tool.d.ts +7 -0
  370. package/packages/server/dist/tools/produce.tool.js +4 -0
  371. package/packages/server/dist/tools/read.tool.d.ts +7 -0
  372. package/packages/server/dist/tools/read.tool.js +2 -0
  373. package/packages/server/dist/tools/reindex.tool.d.ts +11 -0
  374. package/packages/server/dist/tools/reindex.tool.js +3 -0
  375. package/packages/server/dist/tools/remember.tool.d.ts +9 -0
  376. package/packages/server/dist/tools/remember.tool.js +4 -0
  377. package/packages/server/dist/tools/replay.tool.d.ts +6 -0
  378. package/packages/server/dist/tools/replay.tool.js +3 -0
  379. package/packages/server/dist/tools/restore.tool.d.ts +6 -0
  380. package/packages/server/dist/tools/restore.tool.js +3 -0
  381. package/packages/server/dist/tools/search.tool.d.ts +11 -0
  382. package/packages/server/dist/tools/search.tool.js +10 -0
  383. package/packages/server/dist/tools/status.tool.d.ts +20 -0
  384. package/packages/server/dist/tools/status.tool.js +3 -0
  385. package/packages/server/dist/tools/update.tool.d.ts +8 -0
  386. package/packages/server/dist/tools/update.tool.js +1 -0
  387. package/packages/server/dist/tools/utility.tools.d.ts +15 -0
  388. package/packages/server/dist/tools/utility.tools.js +13 -0
  389. package/packages/server/dist/version-check.d.ts +32 -0
  390. package/packages/server/dist/version-check.js +1 -0
  391. package/packages/store/dist/graph-store.interface.d.ts +118 -0
  392. package/packages/store/dist/graph-store.interface.js +1 -0
  393. package/packages/store/dist/index.d.ts +6 -0
  394. package/packages/store/dist/index.js +1 -0
  395. package/packages/store/dist/lance-store.d.ts +44 -0
  396. package/packages/store/dist/lance-store.js +1 -0
  397. package/packages/store/dist/sqlite-graph-store.d.ts +45 -0
  398. package/packages/store/dist/sqlite-graph-store.js +58 -0
  399. package/packages/store/dist/store-factory.d.ts +12 -0
  400. package/packages/store/dist/store-factory.js +1 -0
  401. package/packages/store/dist/store.interface.d.ts +54 -0
  402. package/packages/store/dist/store.interface.js +1 -0
  403. package/packages/tools/dist/audit.d.ts +65 -0
  404. package/packages/tools/dist/audit.js +6 -0
  405. package/packages/tools/dist/batch.d.ts +23 -0
  406. package/packages/tools/dist/batch.js +1 -0
  407. package/packages/tools/dist/changelog.d.ts +36 -0
  408. package/packages/tools/dist/changelog.js +2 -0
  409. package/packages/tools/dist/check.d.ts +48 -0
  410. package/packages/tools/dist/check.js +2 -0
  411. package/packages/tools/dist/checkpoint.d.ts +19 -0
  412. package/packages/tools/dist/checkpoint.js +1 -0
  413. package/packages/tools/dist/codemod.d.ts +39 -0
  414. package/packages/tools/dist/codemod.js +2 -0
  415. package/packages/tools/dist/compact.d.ts +41 -0
  416. package/packages/tools/dist/compact.js +3 -0
  417. package/packages/tools/dist/config-extractor.d.ts +9 -0
  418. package/packages/tools/dist/config-extractor.js +7 -0
  419. package/packages/tools/dist/data-transform.d.ts +12 -0
  420. package/packages/tools/dist/data-transform.js +1 -0
  421. package/packages/tools/dist/dead-symbols.d.ts +28 -0
  422. package/packages/tools/dist/dead-symbols.js +2 -0
  423. package/packages/tools/dist/delegate.d.ts +36 -0
  424. package/packages/tools/dist/delegate.js +1 -0
  425. package/packages/tools/dist/diagram-builder.d.ts +9 -0
  426. package/packages/tools/dist/diagram-builder.js +9 -0
  427. package/packages/tools/dist/diff-parse.d.ts +28 -0
  428. package/packages/tools/dist/diff-parse.js +3 -0
  429. package/packages/tools/dist/digest.d.ts +50 -0
  430. package/packages/tools/dist/digest.js +6 -0
  431. package/packages/tools/dist/dogfood-log.d.ts +49 -0
  432. package/packages/tools/dist/dogfood-log.js +2 -0
  433. package/packages/tools/dist/encode.d.ts +16 -0
  434. package/packages/tools/dist/encode.js +1 -0
  435. package/packages/tools/dist/env-info.d.ts +30 -0
  436. package/packages/tools/dist/env-info.js +1 -0
  437. package/packages/tools/dist/eval.d.ts +15 -0
  438. package/packages/tools/dist/eval.js +2 -0
  439. package/packages/tools/dist/evidence-map.d.ts +92 -0
  440. package/packages/tools/dist/evidence-map.js +2 -0
  441. package/packages/tools/dist/file-cache.d.ts +41 -0
  442. package/packages/tools/dist/file-cache.js +3 -0
  443. package/packages/tools/dist/file-summary.d.ts +52 -0
  444. package/packages/tools/dist/file-summary.js +2 -0
  445. package/packages/tools/dist/file-walk.d.ts +6 -0
  446. package/packages/tools/dist/file-walk.js +1 -0
  447. package/packages/tools/dist/find-examples.d.ts +29 -0
  448. package/packages/tools/dist/find-examples.js +3 -0
  449. package/packages/tools/dist/find.d.ts +49 -0
  450. package/packages/tools/dist/find.js +1 -0
  451. package/packages/tools/dist/forge-classify.d.ts +44 -0
  452. package/packages/tools/dist/forge-classify.js +2 -0
  453. package/packages/tools/dist/forge-ground.d.ts +61 -0
  454. package/packages/tools/dist/forge-ground.js +1 -0
  455. package/packages/tools/dist/git-context.d.ts +25 -0
  456. package/packages/tools/dist/git-context.js +3 -0
  457. package/packages/tools/dist/graph-query.d.ts +86 -0
  458. package/packages/tools/dist/graph-query.js +1 -0
  459. package/packages/tools/dist/guide.d.ts +25 -0
  460. package/packages/tools/dist/guide.js +1 -0
  461. package/packages/tools/dist/health.d.ts +16 -0
  462. package/packages/tools/dist/health.js +2 -0
  463. package/packages/tools/dist/http-request.d.ts +25 -0
  464. package/packages/tools/dist/http-request.js +1 -0
  465. package/packages/tools/dist/index.d.ts +57 -0
  466. package/packages/tools/dist/index.js +1 -0
  467. package/packages/tools/dist/lane.d.ts +41 -0
  468. package/packages/tools/dist/lane.js +6 -0
  469. package/packages/tools/dist/measure.d.ts +42 -0
  470. package/packages/tools/dist/measure.js +2 -0
  471. package/packages/tools/dist/onboard-utils.d.ts +12 -0
  472. package/packages/tools/dist/onboard-utils.js +1 -0
  473. package/packages/tools/dist/onboard.d.ts +50 -0
  474. package/packages/tools/dist/onboard.js +18 -0
  475. package/packages/tools/dist/parse-output.d.ts +82 -0
  476. package/packages/tools/dist/parse-output.js +2 -0
  477. package/packages/tools/dist/path-resolver.d.ts +14 -0
  478. package/packages/tools/dist/path-resolver.js +1 -0
  479. package/packages/tools/dist/process-manager.d.ts +20 -0
  480. package/packages/tools/dist/process-manager.js +1 -0
  481. package/packages/tools/dist/queue.d.ts +40 -0
  482. package/packages/tools/dist/queue.js +1 -0
  483. package/packages/tools/dist/regex-test.d.ts +33 -0
  484. package/packages/tools/dist/regex-test.js +1 -0
  485. package/packages/tools/dist/regex-utils.d.ts +8 -0
  486. package/packages/tools/dist/regex-utils.js +1 -0
  487. package/packages/tools/dist/rename.d.ts +31 -0
  488. package/packages/tools/dist/rename.js +2 -0
  489. package/packages/tools/dist/replay.d.ts +59 -0
  490. package/packages/tools/dist/replay.js +4 -0
  491. package/packages/tools/dist/response-envelope.d.ts +43 -0
  492. package/packages/tools/dist/response-envelope.js +1 -0
  493. package/packages/tools/dist/restore-points.d.ts +22 -0
  494. package/packages/tools/dist/restore-points.js +1 -0
  495. package/packages/tools/dist/schema-validate.d.ts +25 -0
  496. package/packages/tools/dist/schema-validate.js +1 -0
  497. package/packages/tools/dist/scope-map.d.ts +51 -0
  498. package/packages/tools/dist/scope-map.js +1 -0
  499. package/packages/tools/dist/snippet.d.ts +35 -0
  500. package/packages/tools/dist/snippet.js +1 -0
  501. package/packages/tools/dist/stash.d.ts +14 -0
  502. package/packages/tools/dist/stash.js +1 -0
  503. package/packages/tools/dist/stratum-card.d.ts +30 -0
  504. package/packages/tools/dist/stratum-card.js +4 -0
  505. package/packages/tools/dist/symbol.d.ts +45 -0
  506. package/packages/tools/dist/symbol.js +3 -0
  507. package/packages/tools/dist/synthesis-engine.d.ts +13 -0
  508. package/packages/tools/dist/synthesis-engine.js +6 -0
  509. package/packages/tools/dist/test-run.d.ts +28 -0
  510. package/packages/tools/dist/test-run.js +2 -0
  511. package/packages/tools/dist/text-utils.d.ts +24 -0
  512. package/packages/tools/dist/text-utils.js +2 -0
  513. package/packages/tools/dist/time-utils.d.ts +20 -0
  514. package/packages/tools/dist/time-utils.js +1 -0
  515. package/packages/tools/dist/trace.d.ts +29 -0
  516. package/packages/tools/dist/trace.js +2 -0
  517. package/packages/tools/dist/truncation.d.ts +33 -0
  518. package/packages/tools/dist/truncation.js +7 -0
  519. package/packages/tools/dist/watch.d.ts +32 -0
  520. package/packages/tools/dist/watch.js +1 -0
  521. package/packages/tools/dist/web-fetch.d.ts +47 -0
  522. package/packages/tools/dist/web-fetch.js +8 -0
  523. package/packages/tools/dist/web-search.d.ts +25 -0
  524. package/packages/tools/dist/web-search.js +1 -0
  525. package/packages/tools/dist/workset.d.ts +47 -0
  526. package/packages/tools/dist/workset.js +1 -0
  527. package/packages/tui/dist/App-DU2KEylW.js +2 -0
  528. package/packages/tui/dist/App.d.ts +13 -0
  529. package/packages/tui/dist/App.js +2 -0
  530. package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
  531. package/packages/tui/dist/LogPanel-Bo8a8QXB.js +3 -0
  532. package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
  533. package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
  534. package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
  535. package/packages/tui/dist/devtools-DMOZMn70.js +7 -0
  536. package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
  537. package/packages/tui/dist/hooks/useKBClient.js +2 -0
  538. package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
  539. package/packages/tui/dist/hooks/usePolling.js +2 -0
  540. package/packages/tui/dist/index-BXafekwr.d.ts +64 -0
  541. package/packages/tui/dist/index.d.ts +7 -0
  542. package/packages/tui/dist/index.js +2 -0
  543. package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
  544. package/packages/tui/dist/panels/CuratedPanel.d.ts +7 -0
  545. package/packages/tui/dist/panels/CuratedPanel.js +2 -0
  546. package/packages/tui/dist/panels/LogPanel.d.ts +7 -0
  547. package/packages/tui/dist/panels/LogPanel.js +2 -0
  548. package/packages/tui/dist/panels/SearchPanel.d.ts +7 -0
  549. package/packages/tui/dist/panels/SearchPanel.js +2 -0
  550. package/packages/tui/dist/panels/StatusPanel.d.ts +7 -0
  551. package/packages/tui/dist/panels/StatusPanel.js +2 -0
  552. package/packages/tui/dist/react-D__J1GQe.js +24 -0
  553. package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
  554. package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
  555. package/scaffold/README.md +192 -0
  556. package/scaffold/adapters/claude-code.mjs +56 -0
  557. package/scaffold/adapters/copilot.mjs +270 -0
  558. package/scaffold/definitions/agents.mjs +189 -0
  559. package/scaffold/definitions/bodies.mjs +487 -0
  560. package/scaffold/definitions/hooks.mjs +43 -0
  561. package/scaffold/definitions/models.mjs +56 -0
  562. package/scaffold/definitions/plugins.mjs +38 -0
  563. package/scaffold/definitions/prompts.mjs +145 -0
  564. package/scaffold/definitions/protocols.mjs +679 -0
  565. package/scaffold/definitions/tools.mjs +229 -0
  566. package/scaffold/flows/aikit-advanced/flow.json +60 -0
  567. package/scaffold/flows/aikit-advanced/skills/execute/SKILL.md +124 -0
  568. package/scaffold/flows/aikit-advanced/skills/plan/SKILL.md +100 -0
  569. package/scaffold/flows/aikit-advanced/skills/spec/SKILL.md +100 -0
  570. package/scaffold/flows/aikit-advanced/skills/task/SKILL.md +99 -0
  571. package/scaffold/flows/aikit-advanced/skills/verify/SKILL.md +122 -0
  572. package/scaffold/flows/aikit-basic/flow.json +36 -0
  573. package/scaffold/flows/aikit-basic/skills/assess/SKILL.md +82 -0
  574. package/scaffold/flows/aikit-basic/skills/implement/SKILL.md +105 -0
  575. package/scaffold/flows/aikit-basic/skills/verify/SKILL.md +96 -0
  576. package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
  577. package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
  578. package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
  579. package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
  580. package/scaffold/general/agents/Debugger.agent.md +34 -0
  581. package/scaffold/general/agents/Documenter.agent.md +53 -0
  582. package/scaffold/general/agents/Explorer.agent.md +63 -0
  583. package/scaffold/general/agents/Frontend.agent.md +29 -0
  584. package/scaffold/general/agents/Implementer.agent.md +33 -0
  585. package/scaffold/general/agents/Orchestrator.agent.md +149 -0
  586. package/scaffold/general/agents/Planner.agent.md +79 -0
  587. package/scaffold/general/agents/README.md +57 -0
  588. package/scaffold/general/agents/Refactor.agent.md +36 -0
  589. package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
  590. package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
  591. package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
  592. package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
  593. package/scaffold/general/agents/Security.agent.md +55 -0
  594. package/scaffold/general/agents/_shared/architect-reviewer-base.md +60 -0
  595. package/scaffold/general/agents/_shared/code-agent-base.md +262 -0
  596. package/scaffold/general/agents/_shared/code-reviewer-base.md +64 -0
  597. package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
  598. package/scaffold/general/agents/_shared/forge-protocol.md +90 -0
  599. package/scaffold/general/agents/_shared/researcher-base.md +101 -0
  600. package/scaffold/general/agents/templates/adr-template.md +28 -0
  601. package/scaffold/general/agents/templates/execution-state.md +26 -0
  602. package/scaffold/general/prompts/ask.prompt.md +21 -0
  603. package/scaffold/general/prompts/debug.prompt.md +25 -0
  604. package/scaffold/general/prompts/design.prompt.md +23 -0
  605. package/scaffold/general/prompts/implement.prompt.md +26 -0
  606. package/scaffold/general/prompts/plan.prompt.md +25 -0
  607. package/scaffold/general/prompts/review.prompt.md +32 -0
  608. package/scaffold/general/skills/adr-skill/SKILL.md +329 -0
  609. package/scaffold/general/skills/adr-skill/assets/templates/adr-madr.md +89 -0
  610. package/scaffold/general/skills/adr-skill/assets/templates/adr-readme.md +20 -0
  611. package/scaffold/general/skills/adr-skill/assets/templates/adr-simple.md +46 -0
  612. package/scaffold/general/skills/adr-skill/references/adr-conventions.md +95 -0
  613. package/scaffold/general/skills/adr-skill/references/examples.md +193 -0
  614. package/scaffold/general/skills/adr-skill/references/review-checklist.md +77 -0
  615. package/scaffold/general/skills/adr-skill/references/template-variants.md +52 -0
  616. package/scaffold/general/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
  617. package/scaffold/general/skills/adr-skill/scripts/new_adr.js +391 -0
  618. package/scaffold/general/skills/adr-skill/scripts/set_adr_status.js +169 -0
  619. package/scaffold/general/skills/aikit/SKILL.md +521 -0
  620. package/scaffold/general/skills/brainstorming/SKILL.md +259 -0
  621. package/scaffold/general/skills/brainstorming/scripts/frame-template.html +365 -0
  622. package/scaffold/general/skills/brainstorming/scripts/helper.js +216 -0
  623. package/scaffold/general/skills/brainstorming/scripts/server.cjs +9 -0
  624. package/scaffold/general/skills/brainstorming/scripts/server.src.cjs +249 -0
  625. package/scaffold/general/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  626. package/scaffold/general/skills/brainstorming/visual-companion.md +430 -0
  627. package/scaffold/general/skills/c4-architecture/SKILL.md +295 -0
  628. package/scaffold/general/skills/c4-architecture/references/advanced-patterns.md +552 -0
  629. package/scaffold/general/skills/c4-architecture/references/c4-syntax.md +492 -0
  630. package/scaffold/general/skills/c4-architecture/references/common-mistakes.md +437 -0
  631. package/scaffold/general/skills/lesson-learned/SKILL.md +105 -0
  632. package/scaffold/general/skills/lesson-learned/references/anti-patterns.md +55 -0
  633. package/scaffold/general/skills/lesson-learned/references/se-principles.md +109 -0
  634. package/scaffold/general/skills/multi-agents-development/SKILL.md +435 -0
  635. package/scaffold/general/skills/multi-agents-development/architecture-review-prompt.md +81 -0
  636. package/scaffold/general/skills/multi-agents-development/code-quality-review-prompt.md +91 -0
  637. package/scaffold/general/skills/multi-agents-development/implementer-prompt.md +93 -0
  638. package/scaffold/general/skills/multi-agents-development/parallel-dispatch-example.md +167 -0
  639. package/scaffold/general/skills/multi-agents-development/spec-review-prompt.md +81 -0
  640. package/scaffold/general/skills/present/SKILL.md +424 -0
  641. package/scaffold/general/skills/requirements-clarity/SKILL.md +324 -0
  642. package/scaffold/general/skills/session-handoff/SKILL.md +189 -0
  643. package/scaffold/general/skills/session-handoff/references/handoff-template.md +139 -0
  644. package/scaffold/general/skills/session-handoff/references/resume-checklist.md +80 -0
  645. package/scaffold/general/skills/session-handoff/scripts/check_staleness.js +269 -0
  646. package/scaffold/general/skills/session-handoff/scripts/create_handoff.js +299 -0
  647. package/scaffold/general/skills/session-handoff/scripts/list_handoffs.js +113 -0
  648. package/scaffold/general/skills/session-handoff/scripts/validate_handoff.js +241 -0
  649. package/scaffold/generate.mjs +82 -0
@@ -0,0 +1,109 @@
1
+ ---
2
+ description: Curated catalog of software engineering principles. Load this before analyzing code changes so you can map observations to named principles.
3
+ ---
4
+
5
+ # Software Engineering Principles
6
+
7
+ Use this as a lookup table. When you spot a pattern in a diff, find the matching principle here. Each entry includes **code signals** -- what to look for in actual changes.
8
+
9
+ ## Design Principles (SOLID)
10
+
11
+ **Single Responsibility Principle (SRP)**
12
+ A module should have one reason to change.
13
+ Code signals: A class/file was split into two. A function was extracted. A component stopped handling both UI and data fetching.
14
+
15
+ **Open/Closed Principle (OCP)**
16
+ Open for extension, closed for modification.
17
+ Code signals: New behavior added without changing existing code. A plugin/hook/callback system introduced. Strategy pattern or configuration used instead of conditionals.
18
+
19
+ **Liskov Substitution Principle (LSP)**
20
+ Subtypes must be substitutable for their base types.
21
+ Code signals: An interface was introduced to unify implementations. A subclass override changed behavior in a way that broke callers (violation). Type narrowing or guards added.
22
+
23
+ **Interface Segregation Principle (ISP)**
24
+ No client should depend on methods it doesn't use.
25
+ Code signals: A large interface was split into smaller ones. Optional methods removed from an interface. A "fat" props object was broken into focused ones.
26
+
27
+ **Dependency Inversion Principle (DIP)**
28
+ Depend on abstractions, not concretions.
29
+ Code signals: A concrete dependency replaced with an interface/injection. A factory or provider pattern introduced. Import paths changed from specific implementations to abstract layers.
30
+
31
+ **Composition over Inheritance**
32
+ Favor object composition over class inheritance.
33
+ Code signals: Inheritance hierarchy replaced with delegation. Mixins or HOCs replaced with hooks or composition. A "base class" was removed.
34
+
35
+ ## Simplicity Principles
36
+
37
+ **DRY (Don't Repeat Yourself)**
38
+ Every piece of knowledge should have a single representation.
39
+ Code signals: Duplicate code extracted into a shared function. A constant replaced repeated literals. A template/generator replaced copy-pasted boilerplate.
40
+
41
+ **KISS (Keep It Simple, Stupid)**
42
+ The simplest solution that works is the best.
43
+ Code signals: A complex abstraction replaced with a straightforward implementation. Unnecessary indirection removed. A clever one-liner replaced with readable code.
44
+
45
+ **YAGNI (You Aren't Gonna Need It)**
46
+ Don't build it until you actually need it.
47
+ Code signals: Speculative features removed. Unused configuration options deleted. An over-engineered solution simplified to match actual requirements.
48
+
49
+ **Rule of Three**
50
+ Wait until the third duplication before abstracting.
51
+ Code signals: Similar code exists in 2 places and was left alone (good). A premature abstraction was introduced after only one use (violation). Third occurrence triggered extraction (textbook application).
52
+
53
+ **Principle of Least Surprise**
54
+ Code should behave the way most users would expect.
55
+ Code signals: A function renamed to better describe what it does. Return types made consistent. Side effects made explicit or removed.
56
+
57
+ ## Structural Principles
58
+
59
+ **Separation of Concerns**
60
+ Different responsibilities should live in different modules.
61
+ Code signals: Business logic extracted from UI components. Data access separated from domain logic. Configuration separated from behavior. A "god file" split into focused modules.
62
+
63
+ **High Cohesion**
64
+ Related functionality should live together.
65
+ Code signals: Scattered related functions gathered into one module. A utility file broken up so each piece lives near its consumers. A feature folder created.
66
+
67
+ **Loose Coupling**
68
+ Modules should depend on each other as little as possible.
69
+ Code signals: Direct imports replaced with events/callbacks. A shared dependency removed. Modules communicate through well-defined interfaces instead of reaching into internals.
70
+
71
+ **Encapsulation**
72
+ Hide internal details, expose only what's necessary.
73
+ Code signals: Public methods reduced. Internal helpers made private. A module's API surface shrunk. Implementation details hidden behind a facade.
74
+
75
+ **Information Hiding**
76
+ Modules should not expose their internal data structures.
77
+ Code signals: Raw data structures wrapped in accessor methods. Internal state made private. A data transformation moved inside the module that owns the data.
78
+
79
+ ## Pragmatic Principles
80
+
81
+ **Boy Scout Rule**
82
+ Leave the code better than you found it.
83
+ Code signals: Small cleanups alongside a feature change. A renamed variable for clarity. A dead code path removed. An outdated comment updated.
84
+
85
+ **Fail Fast**
86
+ Detect and report errors as early as possible.
87
+ Code signals: Input validation added at entry points. Assertions added for invariants. Early returns replacing deep nesting. Error handling moved closer to the source.
88
+
89
+ **Defensive Programming**
90
+ Anticipate and handle unexpected inputs gracefully.
91
+ Code signals: Null checks added. Default values provided. Edge cases handled. Error boundaries introduced.
92
+
93
+ **Premature Optimization (avoiding it)**
94
+ Don't optimize until you've measured.
95
+ Code signals: A simple implementation chosen over a "faster" complex one. Readability prioritized over micro-performance. A profiling step added before optimization work.
96
+
97
+ ## Refactoring Patterns
98
+
99
+ **Extract Method/Function**
100
+ Code signals: A long function split into named sub-functions. Inline logic replaced with a well-named call.
101
+
102
+ **Extract Class/Module**
103
+ Code signals: A file split into multiple files. A class split into two with distinct responsibilities.
104
+
105
+ **Replace Conditional with Polymorphism**
106
+ Code signals: A switch/if-else chain replaced with a strategy pattern or subclass dispatch. A type map introduced.
107
+
108
+ **Introduce Parameter Object**
109
+ Code signals: Multiple related parameters grouped into a single options/config object. Function signatures simplified.
@@ -0,0 +1,435 @@
1
+ # Multi-Agent Development
2
+
3
+ Comprehensive patterns for orchestrating multiple AI agents in parallel development workflows. Covers task decomposition, parallel dispatch, context crafting, status handling, review pipelines, and recovery.
4
+
5
+ **Core Principle**: Dispatch multiple agents for focused tasks. Each subagent gets fresh, focused context with explicit scope — never inherited session state.
6
+
7
+ Load this skill when orchestrating multi-agent work: planning parallel batches, crafting delegation prompts, handling implementer status, running review pipelines, or recovering from agent failures.
8
+
9
+ ---
10
+
11
+ ## §1 Agent Roles & Model Selection
12
+
13
+ ### Role Categories
14
+
15
+ | Role | Agents | When to Use | Parallelizable |
16
+ |------|--------|-------------|----------------|
17
+ | **Orchestration** | Orchestrator, Planner | Workflow control, planning | No (sequential) |
18
+ | **Implementation** | Implementer, Frontend, Refactor | Code creation/modification | Yes (disjoint files only) |
19
+ | **Research** | Explorer, Researcher-Alpha/Beta/Gamma/Delta | Codebase exploration, decisions | Yes (always) |
20
+ | **Review** | Code-Reviewer-Alpha/Beta, Architect-Reviewer-Alpha/Beta | Quality verification | Yes (always) |
21
+ | **Diagnostics** | Debugger, Security | Issue tracing, vulnerability analysis | Yes (read-only) |
22
+ | **Documentation** | Documenter | README, API docs, changelog | Yes (disjoint files) |
23
+
24
+ ### Model Selection by Task Complexity
25
+
26
+ Choose the **least powerful model that can handle the role**:
27
+
28
+ | Complexity Signal | Model Tier | Example Agents |
29
+ |-------------------|-----------|----------------|
30
+ | Mechanical (rename, move, add field) | Fast model | Explorer (Gemini Flash) |
31
+ | Standard (implement spec, write tests) | Mid-tier | Implementer (GPT-5.4), Refactor (GPT-5.4) |
32
+ | Judgment-heavy (architecture, security, debug) | Strongest | Debugger (Opus 4.6), Security (Opus 4.6) |
33
+ | Multi-model cross-validation | Mixed | Researcher-Alpha/Beta/Gamma/Delta (all different) |
34
+
35
+ **Upgrade signal**: If an agent returns `BLOCKED` or `DONE_WITH_CONCERNS` on a task classified as "Standard", consider re-dispatching to a stronger model.
36
+
37
+ ---
38
+
39
+ ## §2 Task Decomposition Rules
40
+
41
+ ### The Golden Rule
42
+ > **One task = one focused problem domain = 1-3 files maximum.**
43
+
44
+ ### Decomposition Checklist
45
+
46
+ For each task, specify ALL of:
47
+ - [ ] **Target files** — exact paths to create or modify
48
+ - [ ] **Acceptance criteria** — what "done" looks like (testable)
49
+ - [ ] **Agent assignment** — which agent handles this
50
+ - [ ] **Dependencies** — which tasks must complete first (if any)
51
+
52
+ ### Sizing Guide
53
+
54
+ | Task Size | Files | Example | Agent |
55
+ |-----------|-------|---------|-------|
56
+ | **Micro** | 1 file | Add a utility function | Implementer |
57
+ | **Small** | 1-2 files | New endpoint + test | Implementer |
58
+ | **Standard** | 2-3 files | Feature with service + controller + test | Implementer |
59
+ | **Too big** | 4+ files | **SPLIT IT** — decompose further | — |
60
+
61
+ ### Splitting Strategies
62
+ - **By layer**: Service logic (Implementer) + UI component (Frontend) + tests (Implementer)
63
+ - **By feature boundary**: Auth endpoints (Implementer A) + Profile endpoints (Implementer B)
64
+ - **By concern**: Data model changes (Implementer) + API route changes (Implementer) + UI updates (Frontend)
65
+
66
+ ---
67
+
68
+ ## §3 Independence Decision Tree
69
+
70
+ Before marking tasks as parallel, walk this tree:
71
+
72
+ ```
73
+ Task A and Task B — can they run in parallel?
74
+
75
+ ├─ Do they share ANY files? (create, modify, or delete the same file)
76
+ │ ├─ YES → SEQUENTIAL (or merge into one task)
77
+ │ └─ NO ↓
78
+
79
+ ├─ Do they share mutable state? (env vars, globals, same DB table, shared config)
80
+ │ ├─ YES → SEQUENTIAL
81
+ │ └─ NO ↓
82
+
83
+ ├─ Does B need A's output? (B reads a file A creates, B uses A's new export)
84
+ │ ├─ YES → SEQUENTIAL (A before B)
85
+ │ └─ NO ↓
86
+
87
+ ├─ Would A's result change B's approach? (A discovers something that affects B)
88
+ │ ├─ YES → SEQUENTIAL or single agent
89
+ │ └─ NO ↓
90
+
91
+ ├─ Resource contention? (same port, same build process, same lock file)
92
+ │ ├─ YES → SEQUENTIAL
93
+ │ └─ NO ↓
94
+
95
+ └─ ✅ SAFE TO PARALLELIZE
96
+ ```
97
+
98
+ ### Edge Cases
99
+
100
+ | Situation | Verdict | Why |
101
+ |-----------|---------|-----|
102
+ | Both import from same module (read-only) | ✅ Parallel | Reading shared code is fine |
103
+ | Both add exports to same index file | ❌ Sequential | Concurrent index.ts edits will conflict |
104
+ | A creates a type, B uses that type | ❌ Sequential | B depends on A's output |
105
+ | Both modify different test files | ✅ Parallel | Disjoint file sets |
106
+ | Both touch package.json | ❌ Sequential | Shared file |
107
+ | A adds a route, B adds middleware | ⚠️ Check | If B's middleware affects A's route → sequential |
108
+
109
+ ### Integration Verification (after parallel batch completes)
110
+
111
+ 1. **Conflict check**: Did any agent unexpectedly modify a file assigned to another agent?
112
+ 2. **Import check**: Do all new cross-references resolve?
113
+ 3. **Full suite**: `check({})` + `test_run({})` — everything must pass
114
+ 4. **Spot check**: Manually verify at least one task's output matches acceptance criteria
115
+
116
+ ---
117
+
118
+ ## §4 Parallel Dispatch Patterns
119
+
120
+ ### Dispatch Rules
121
+
122
+ 1. **Max 4 concurrent file-modifying agents** per batch
123
+ 2. **Read-only agents have no limit** — Explorer, Researcher*, Reviewer*, Security can always run in parallel
124
+ 3. **Build dependency graph first** — phases with no dependencies MUST be batched together
125
+ 4. **Never dispatch two implementers to the same file** — even different sections
126
+
127
+ ### Batch Strategy
128
+
129
+ ```
130
+ Phase Plan:
131
+ Phase 1: [Task A, Task B, Task C] ← no dependencies between A/B/C
132
+ Phase 2: [Task D, Task E] ← D depends on A, E depends on B
133
+ Phase 3: [Task F] ← F depends on D and E
134
+
135
+ Execution:
136
+ Batch 1: dispatch(A, B, C) in parallel → review → gate
137
+ Batch 2: dispatch(D, E) in parallel → review → gate
138
+ Batch 3: dispatch(F) → review → gate
139
+ ```
140
+
141
+ ### Anti-Patterns
142
+
143
+ | ❌ Don't | ✅ Do Instead |
144
+ |----------|--------------|
145
+ | Dispatch 6 implementers at once | Max 4, queue the rest |
146
+ | Give one agent 10 files | Split into 3-4 focused tasks |
147
+ | Let agents read the full plan | Give each agent ONLY its task context |
148
+ | Retry same prompt on failure | Diagnose first, then re-prompt with fix |
149
+ | Skip review after parallel batch | ALWAYS review + integration verify |
150
+ | Inherit session context to subagent | Build fresh, focused context per dispatch |
151
+
152
+ ---
153
+
154
+ ## §5 Context Crafting Guide
155
+
156
+ ### The Controller Principle
157
+ > **The Orchestrator provides ALL context. Subagents never need to search for context themselves.**
158
+
159
+ Each subagent gets a fresh, self-contained prompt. No inherited session state. No "read the plan first."
160
+
161
+ ### The 6-Point Prompt Template
162
+
163
+ Every delegation prompt MUST include:
164
+
165
+ ```markdown
166
+ ## 1. Scope
167
+ Files to create/modify: [exact paths]
168
+ Files to NOT touch: [boundaries]
169
+
170
+ ## 2. Goal
171
+ [What the code should do — acceptance criteria, testable outcomes]
172
+
173
+ ## 3. Architectural Context
174
+ [Relevant patterns, conventions, existing code structure]
175
+ [Include actual code snippets from compact/digest — don't tell agent to "go read X"]
176
+
177
+ ## 4. Constraints
178
+ - Follow [pattern/convention]
179
+ - Do NOT modify [boundary files]
180
+ - Use [specific library/approach]
181
+
182
+ ## 5. FORGE Context
183
+ Tier: [Floor/Standard/Critical]
184
+ Evidence requirements: [what evidence to collect]
185
+
186
+ ## 6. Self-Review & Status
187
+ Before declaring DONE, verify:
188
+ - [ ] All acceptance criteria met
189
+ - [ ] No files outside scope modified
190
+ - [ ] Tests pass (if applicable)
191
+ - [ ] Code follows stated conventions
192
+
193
+ End with status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
194
+ ```
195
+
196
+ ### What to Include vs Omit
197
+
198
+ | ✅ Include | ❌ Omit |
199
+ |-----------|---------|
200
+ | Exact file paths and code snippets | Full session history |
201
+ | Acceptance criteria | Other agents' tasks |
202
+ | Relevant conventions (from KB) | Unrelated architecture context |
203
+ | Compact/digest of relevant files | Raw file contents of large files |
204
+ | Error messages (if fixing a bug) | Previous failed attempts (unless relevant) |
205
+ | FORGE tier and ceremony | Full FORGE protocol explanation |
206
+
207
+ ### Context Size Budget
208
+
209
+ | Task Complexity | Context Target | Approach |
210
+ |-----------------|---------------|----------|
211
+ | Micro (1 file) | ~500 tokens | Inline code snippet + goal |
212
+ | Small (1-2 files) | ~1000 tokens | `compact` of target files + goal |
213
+ | Standard (2-3 files) | ~2000 tokens | `digest` of related files + architectural context |
214
+ | Complex (judgment-heavy) | ~3000 tokens | `digest` + relevant decisions from KB |
215
+
216
+ ---
217
+
218
+ ## §6 Subagent Execution Cycle
219
+
220
+ ### Lifecycle
221
+
222
+ ```
223
+ Orchestrator Subagent (fresh instance)
224
+ │ │
225
+ ├─ Craft focused prompt ──────────────►│
226
+ │ (6-point template) │
227
+ │ ├─ Understand scope
228
+ │ ├─ Implement changes
229
+ │ ├─ Self-review (checklist)
230
+ │◄─────────────────── Return status ───┤
231
+ │ │ (DONE/CONCERNS/NEEDS/BLOCKED)
232
+ │ │
233
+ ├─ Handle status (see §7) × (subagent terminates)
234
+
235
+ ├─ Automated gate (check/test_run)
236
+
237
+ ├─ Dispatch reviewers (see §8)
238
+
239
+ └─ FORGE evidence_map gate
240
+ ```
241
+
242
+ ### Key Rules
243
+
244
+ 1. **One subagent = one task**. Never reuse a subagent for a different task.
245
+ 2. **Controller provides context**. The subagent's prompt contains everything it needs — it should NOT need to search/explore the codebase.
246
+ 3. **Self-review before handoff**. Every implementer must complete the self-review checklist before declaring DONE.
247
+ 4. **Status is mandatory**. Every subagent response MUST end with exactly ONE status code.
248
+
249
+ ---
250
+
251
+ ## §7 Implementer Status Protocol
252
+
253
+ ### Status Codes
254
+
255
+ Every implementer (Implementer, Frontend, Refactor) MUST end their response with exactly ONE:
256
+
257
+ | Status | Meaning | Orchestrator Action |
258
+ |--------|---------|-------------------|
259
+ | **DONE** | All tasks complete, self-review passed | → Automated gate → Review pipeline |
260
+ | **DONE_WITH_CONCERNS** | Complete but flagging issues: [list] | → Surface concerns as `Assumed` claims in evidence_map → Likely HOLD → Address before review |
261
+ | **NEEDS_CONTEXT** | Cannot proceed without: [specific question] | → Provide missing context → Re-dispatch same task (counts as retry) |
262
+ | **BLOCKED** | Hit a wall: [description] | → Diagnose (see below) |
263
+
264
+ ### BLOCKED Diagnosis Tree
265
+
266
+ ```
267
+ Agent returned BLOCKED
268
+
269
+ ├─ Missing context? (needs info not in prompt)
270
+ │ → Provide context, re-dispatch
271
+
272
+ ├─ Wrong model? (task too complex for assigned model)
273
+ │ → Re-dispatch to stronger model (e.g., Implementer → Debugger)
274
+
275
+ ├─ Scope too broad? (agent overwhelmed)
276
+ │ → Split task further, re-dispatch smaller pieces
277
+
278
+ ├─ Plan wrong? (implementation approach won't work)
279
+ │ → Re-plan this phase, check KB for alternatives
280
+
281
+ └─ External blocker? (dependency not ready, API unavailable)
282
+ → Park task, proceed with independent work, revisit later
283
+ ```
284
+
285
+ ### FORGE Composition
286
+
287
+ Status protocol and FORGE are **independent but composable**:
288
+
289
+ - **Status** = subjective agent telemetry ("I think I'm done")
290
+ - **FORGE** = objective quality evidence ("the evidence says it's done")
291
+
292
+ ```
293
+ DONE → proceed to automated gate → FORGE evidence_map
294
+ DONE_WITH_CONCERNS → concerns become 'Assumed' claims → evidence_map likely HOLDs
295
+ NEEDS_CONTEXT → provide context, re-dispatch (no FORGE yet)
296
+ BLOCKED → diagnose:
297
+ contract/security issue → HARD_BLOCK
298
+ resource/scope issue → re-plan, no FORGE
299
+ ```
300
+
301
+ **Critical rule**: Every `DONE` status MUST be followed by `evidence_map({ action: "gate" })` before proceeding to review. No shortcuts.
302
+
303
+ ---
304
+
305
+ ## §8 Review Pipeline
306
+
307
+ ### Four-Stage Pipeline
308
+
309
+ ```
310
+ Stage 1: Implementer Self-Review (embedded in agent output)
311
+ └─ Checklist: scope respected, tests pass, conventions followed
312
+
313
+ Stage 2: Orchestrator Automated Gate
314
+ └─ check({}) + test_run({}) MUST pass
315
+ └─ Validate self-review checklist present in output
316
+ └─ FAIL → bounce back to implementer with specific gap
317
+ └─ PASS ↓
318
+
319
+ Stage 3: Dual Code Review (parallel)
320
+ ├─ Code-Reviewer-Alpha (GPT-5.4): code quality + Spec Alignment
321
+ └─ Code-Reviewer-Beta (Opus 4.6): code quality + Spec Alignment
322
+ │ Both review same code, different model perspectives
323
+ │ Spec Alignment = "Does this match what was asked?"
324
+
325
+ Stage 4: Conditional Reviews (parallel if both needed)
326
+ ├─ Architecture Review — if boundary changes, new modules, pattern shifts
327
+ └─ Security Review — if auth, crypto, input handling, or external data
328
+
329
+ FORGE Gate: evidence_map({ action: "gate" })
330
+ └─ YIELD → proceed to commit
331
+ └─ HOLD → address flagged items → re-gate (max 3 rounds)
332
+ └─ HARD_BLOCK → escalate to user
333
+ ```
334
+
335
+ ### Spec Alignment Dimension (for Code Reviewers)
336
+
337
+ Both Code-Reviewer-Alpha and Code-Reviewer-Beta evaluate an explicit **Spec Alignment** dimension:
338
+
339
+ 1. Does the implementation match the acceptance criteria from the task?
340
+ 2. Are there over-builds (features not requested)?
341
+ 3. Are there under-builds (requirements missed)?
342
+ 4. Does the output match the expected file changes?
343
+
344
+ This catches spec drift that automated tests might miss.
345
+
346
+ ### When to Skip Stages
347
+
348
+ | Stage | Skip When |
349
+ |-------|-----------|
350
+ | Architecture Review | No new modules, no boundary changes, no new patterns |
351
+ | Security Review | No auth, no crypto, no external input handling |
352
+ | FORGE Gate | Floor-tier tasks only (simple, mechanical changes) |
353
+
354
+ ---
355
+
356
+ ## §9 Recovery & Escalation
357
+
358
+ ### Retry Policy
359
+
360
+ - **Max 2 retries per agent per task** — after that, re-plan or escalate
361
+ - Each retry MUST include the specific failure reason in the new prompt
362
+ - Never retry with the same prompt — always add diagnostic context
363
+
364
+ ### Loop Detection
365
+
366
+ If an agent returns the same error/status 2+ times:
367
+ 1. **STOP** — do not retry again
368
+ 2. Check if the approach is fundamentally wrong
369
+ 3. Consider: different agent, different model, different decomposition, or user escalation
370
+
371
+ ### Emergency Procedures
372
+
373
+ When parallel batch causes cascading failures:
374
+
375
+ ```
376
+ STOP → Halt all running agents immediately
377
+ ASSESS → git diff --stat + check({}) — how bad is it?
378
+ CONTAIN → Limited (1-3 files): fix or re-delegate
379
+ Widespread (10+ files): git stash to preserve for analysis
380
+ RECOVER → Partial: git checkout -- {specific files}
381
+ Full: git stash (preserves) or git checkout . (discards)
382
+ Nuclear: git reset --hard HEAD (last resort)
383
+ DOCUMENT → remember what went wrong, update plan
384
+ ```
385
+
386
+ ### Scope Tripwires
387
+
388
+ | Signal | Action |
389
+ |--------|--------|
390
+ | Agent modified **2x more files** than planned | Pause, review before continuing |
391
+ | Agent returns `ESCALATE` or `BLOCKED` repeatedly | Do NOT re-delegate unchanged. Diagnose first |
392
+ | Agent's output contradicts the plan | Stop, compare with plan, re-align |
393
+ | Tests that were passing now fail | Immediate rollback of that agent's changes |
394
+
395
+ ---
396
+
397
+ ## §10 Common Mistakes & Red Flags
398
+
399
+ ### Delegation Anti-Patterns
400
+
401
+ | ❌ Mistake | Why It Fails | ✅ Fix |
402
+ |-----------|-------------|--------|
403
+ | **Too broad scope** — "implement the auth system" | Agent lacks clear boundaries, produces sprawling changes | Split: "add JWT middleware to auth.ts" + "add login endpoint to routes.ts" |
404
+ | **No constraints** — "add a feature" | Agent invents architecture, conflicts with existing patterns | Include conventions, boundaries, existing patterns in prompt |
405
+ | **Vague output** — "make it work" | No way to verify completion | Specific acceptance criteria: "endpoint returns 200 with {schema}" |
406
+ | **Session context inheritance** — "continue from where we left off" | Subagent has stale/polluted context | Fresh prompt with 6-point template every time |
407
+ | **Skipping reviews** — "it's a small change" | Small changes cause big regressions | ALWAYS run automated gate minimum |
408
+ | **Parallel on shared files** — "both agents edit config.ts" | Merge conflicts, lost changes | Sequential, or merge into one task |
409
+ | **Trusting the report** — "agent said DONE so it's done" | Agents are optimistic, miss edge cases | Automated gate + dual code review catches this |
410
+ | **Brute-force retries** — same prompt 3 times | If it failed twice, it'll fail a third time | Diagnose, change approach, then retry |
411
+ | **Orchestrator implements** — "just this one small fix" | Breaks the delegation contract, no review | ALWAYS delegate, no matter how small |
412
+
413
+ ### Red Flags in Agent Output
414
+
415
+ | Flag | What It Means | Action |
416
+ |------|--------------|--------|
417
+ | Agent modified files outside its scope | Scope creep or misunderstanding | Rollback out-of-scope files, re-delegate with tighter constraints |
418
+ | Agent added dependencies not in plan | Unauthorized architectural decision | Review necessity, likely rollback |
419
+ | Agent skipped self-review checklist | Rushing, likely incomplete | Bounce back with checklist requirement |
420
+ | Agent's DONE but tests fail | Didn't actually self-test | Bounce back with failing test output |
421
+ | Agent asks questions in output instead of using NEEDS_CONTEXT | Misunderstands status protocol | Treat as NEEDS_CONTEXT, educate in next prompt |
422
+
423
+ ---
424
+
425
+ ## Prompt Template Reference
426
+
427
+ Detailed prompt templates are provided as sidecar files:
428
+
429
+ | Template | File | Use When |
430
+ |----------|------|----------|
431
+ | Implementer dispatch | [`implementer-prompt.md`](implementer-prompt.md) | Dispatching Implementer, Frontend, or Refactor agents |
432
+ | Spec compliance review | [`spec-review-prompt.md`](spec-review-prompt.md) | Adversarial spec alignment check (Code-Reviewer-Alpha) |
433
+ | Code quality review | [`code-quality-review-prompt.md`](code-quality-review-prompt.md) | Dual code quality review (Code-Reviewer-Beta) |
434
+ | Architecture review | [`architecture-review-prompt.md`](architecture-review-prompt.md) | Boundary changes, pattern adherence review |
435
+ | Parallel dispatch example | [`parallel-dispatch-example.md`](parallel-dispatch-example.md) | Worked example of decomposing a feature into parallel tasks |
@@ -0,0 +1,81 @@
1
+ # Architecture Review Prompt Template
2
+
3
+ Use this template when dispatching **Architect-Reviewer-Alpha** and **Architect-Reviewer-Beta** for architecture review. Only needed when changes cross module boundaries, introduce new patterns, or modify shared infrastructure.
4
+
5
+ ---
6
+
7
+ ## Prompt Template
8
+
9
+ ```markdown
10
+ You are performing an architecture review. Focus on structural decisions, not code quality (that's handled separately).
11
+
12
+ ## Change Summary
13
+ [What was changed and why — high-level description]
14
+
15
+ ## Files Changed
16
+ [List of files with module/boundary information]
17
+
18
+ ## Architectural Context
19
+ [Paste relevant architecture docs, module graph, dependency structure from compact/digest]
20
+
21
+ ---
22
+
23
+ ## Review Dimensions
24
+
25
+ ### 1. Boundary Integrity
26
+ - Do changes respect existing module boundaries?
27
+ - Are there new cross-module dependencies that shouldn't exist?
28
+ - Is the dependency direction correct (inner → outer, not reverse)?
29
+
30
+ ### 2. Pattern Adherence
31
+ - Do new components follow established architectural patterns?
32
+ - Are there deviations from the documented architecture?
33
+ - If a new pattern is introduced, is it justified and documented?
34
+
35
+ ### 3. Coupling & Cohesion
36
+ - Are new dependencies minimal and well-justified?
37
+ - Could any coupling be reduced with interfaces or inversion?
38
+ - Are related concerns grouped together?
39
+
40
+ ### 4. Scalability Impact
41
+ - Will this change create bottlenecks under load?
42
+ - Are there single points of failure introduced?
43
+ - Does this work with horizontal scaling?
44
+
45
+ ### 5. Migration & Evolution
46
+ - Does this change make future changes harder?
47
+ - Are there implicit assumptions that will break?
48
+ - Is the change reversible if needed?
49
+
50
+ ### 6. API Surface
51
+ - Are new public APIs minimal and well-designed?
52
+ - Could any public surface be internal instead?
53
+ - Are breaking changes flagged?
54
+
55
+ ---
56
+
57
+ ## Output Format
58
+
59
+ ### Verdict: [APPROVE | APPROVE_WITH_NOTES | REQUEST_CHANGES]
60
+
61
+ **APPROVE** — Architecture is sound.
62
+ **APPROVE_WITH_NOTES** — Acceptable, but track these concerns.
63
+ **REQUEST_CHANGES** — Structural issues that must be resolved.
64
+
65
+ ### Findings:
66
+ | # | Dimension | Severity | Description | Impact |
67
+ |---|-----------|----------|-------------|--------|
68
+ | 1 | [Dimension] | [Blocker/Concern/Note] | [Issue] | [What breaks/degrades] |
69
+
70
+ ### Recommendation:
71
+ [Structural guidance for improvement]
72
+ ```
73
+
74
+ ---
75
+
76
+ ## Usage Notes
77
+
78
+ - **Only trigger architecture review when**: changes cross module boundaries, new patterns are introduced, shared infrastructure is modified, or public API surface changes
79
+ - Both Alpha and Beta reviewers run in parallel for multi-model perspective
80
+ - Architecture blockers are HIGH priority — must resolve before merge
81
+ - If both reviewers flag the same concern, it's almost certainly a real issue