specweave 0.10.1 → 0.12.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 (656) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CLAUDE.md +184 -288
  3. package/README.md +48 -21
  4. package/dist/cli/commands/init.d.ts.map +1 -1
  5. package/dist/cli/commands/init.js +75 -113
  6. package/dist/cli/commands/init.js.map +1 -1
  7. package/dist/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  8. package/dist/cli/helpers/issue-tracker/index.js +39 -0
  9. package/dist/cli/helpers/issue-tracker/index.js.map +1 -1
  10. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +1 -1
  11. package/dist/cli/helpers/issue-tracker/jira.js +2 -9
  12. package/dist/cli/helpers/issue-tracker/jira.js.map +1 -1
  13. package/dist/hooks/lib/git-diff-analyzer.d.ts +89 -0
  14. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
  15. package/dist/hooks/lib/git-diff-analyzer.js +226 -0
  16. package/dist/hooks/lib/git-diff-analyzer.js.map +1 -0
  17. package/dist/hooks/lib/prepare-reflection-context.d.ts +42 -0
  18. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
  19. package/dist/hooks/lib/prepare-reflection-context.js +123 -0
  20. package/dist/hooks/lib/prepare-reflection-context.js.map +1 -0
  21. package/dist/hooks/lib/reflection-config-loader.d.ts +45 -0
  22. package/dist/hooks/lib/reflection-config-loader.d.ts.map +1 -0
  23. package/dist/hooks/lib/reflection-config-loader.js +132 -0
  24. package/dist/hooks/lib/reflection-config-loader.js.map +1 -0
  25. package/dist/hooks/lib/reflection-parser.d.ts +33 -0
  26. package/dist/hooks/lib/reflection-parser.d.ts.map +1 -0
  27. package/dist/hooks/lib/reflection-parser.js +419 -0
  28. package/dist/hooks/lib/reflection-parser.js.map +1 -0
  29. package/dist/hooks/lib/reflection-prompt-builder.d.ts +56 -0
  30. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
  31. package/dist/hooks/lib/reflection-prompt-builder.js +239 -0
  32. package/dist/hooks/lib/reflection-prompt-builder.js.map +1 -0
  33. package/dist/hooks/lib/reflection-storage.d.ts +64 -0
  34. package/dist/hooks/lib/reflection-storage.d.ts.map +1 -0
  35. package/dist/hooks/lib/reflection-storage.js +305 -0
  36. package/dist/hooks/lib/reflection-storage.js.map +1 -0
  37. package/dist/hooks/lib/run-self-reflection.d.ts +43 -0
  38. package/dist/hooks/lib/run-self-reflection.d.ts.map +1 -0
  39. package/dist/hooks/lib/run-self-reflection.js +203 -0
  40. package/dist/hooks/lib/run-self-reflection.js.map +1 -0
  41. package/dist/hooks/lib/types/reflection-types.d.ts +164 -0
  42. package/dist/hooks/lib/types/reflection-types.d.ts.map +1 -0
  43. package/dist/hooks/lib/types/reflection-types.js +73 -0
  44. package/dist/hooks/lib/types/reflection-types.js.map +1 -0
  45. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +89 -0
  46. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +1 -0
  47. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +226 -0
  48. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +1 -0
  49. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +60 -0
  50. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +1 -0
  51. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +201 -0
  52. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +1 -0
  53. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +42 -0
  54. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +1 -0
  55. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +123 -0
  56. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +1 -0
  57. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +45 -0
  58. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +1 -0
  59. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +132 -0
  60. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +1 -0
  61. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +33 -0
  62. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +1 -0
  63. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +419 -0
  64. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +1 -0
  65. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +56 -0
  66. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +1 -0
  67. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +239 -0
  68. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +1 -0
  69. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +64 -0
  70. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +1 -0
  71. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +305 -0
  72. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +1 -0
  73. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +43 -0
  74. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +1 -0
  75. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +203 -0
  76. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +1 -0
  77. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +27 -0
  78. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -0
  79. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +116 -0
  80. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -0
  81. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +59 -0
  82. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +1 -0
  83. package/dist/plugins/specweave/lib/hooks/translate-file.js +350 -0
  84. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +1 -0
  85. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +13 -0
  86. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +1 -0
  87. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +175 -0
  88. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +1 -0
  89. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +164 -0
  90. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +1 -0
  91. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +73 -0
  92. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +1 -0
  93. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +29 -0
  94. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +1 -0
  95. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +203 -0
  96. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +1 -0
  97. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
  98. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
  99. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
  100. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
  101. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +124 -0
  102. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +1 -0
  103. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +382 -0
  104. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +1 -0
  105. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +112 -0
  106. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -0
  107. package/dist/plugins/specweave-ado/lib/ado-client.js +257 -0
  108. package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -0
  109. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +40 -0
  110. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +1 -0
  111. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +370 -0
  112. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +1 -0
  113. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +42 -0
  114. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +1 -0
  115. package/dist/plugins/specweave-ado/lib/project-selector.js +211 -0
  116. package/dist/plugins/specweave-ado/lib/project-selector.js.map +1 -0
  117. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +54 -0
  118. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +1 -0
  119. package/dist/plugins/specweave-github/lib/github-board-resolver.js +122 -0
  120. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +1 -0
  121. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +104 -0
  122. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -0
  123. package/dist/plugins/specweave-github/lib/github-client-v2.js +408 -0
  124. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -0
  125. package/dist/plugins/specweave-github/lib/github-client.d.ts +10 -0
  126. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -1
  127. package/dist/plugins/specweave-github/lib/github-client.js +24 -0
  128. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -1
  129. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +29 -0
  130. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +1 -0
  131. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +268 -0
  132. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +1 -0
  133. package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -1
  134. package/dist/plugins/specweave-github/lib/index.js.map +1 -1
  135. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +49 -0
  136. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +1 -0
  137. package/dist/plugins/specweave-github/lib/repo-selector.js +216 -0
  138. package/dist/plugins/specweave-github/lib/repo-selector.js.map +1 -0
  139. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -1
  140. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -1
  141. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -1
  142. package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -1
  143. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -1
  144. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -1
  145. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
  146. package/dist/plugins/specweave-github/lib/types.js.map +1 -1
  147. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
  148. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
  149. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
  150. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
  151. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +33 -0
  152. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +1 -0
  153. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +206 -0
  154. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +1 -0
  155. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +42 -0
  156. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +1 -0
  157. package/dist/plugins/specweave-jira/lib/project-selector.js +216 -0
  158. package/dist/plugins/specweave-jira/lib/project-selector.js.map +1 -0
  159. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +67 -0
  160. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +1 -0
  161. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +252 -0
  162. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +1 -0
  163. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +29 -0
  164. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -0
  165. package/dist/plugins/specweave-jira/lib/setup-wizard.js +219 -0
  166. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -0
  167. package/dist/src/adapters/adapter-base.d.ts +71 -0
  168. package/dist/src/adapters/adapter-base.d.ts.map +1 -0
  169. package/dist/src/adapters/adapter-base.js +139 -0
  170. package/dist/src/adapters/adapter-base.js.map +1 -0
  171. package/dist/src/adapters/adapter-interface.d.ts +149 -0
  172. package/dist/src/adapters/adapter-interface.d.ts.map +1 -0
  173. package/dist/src/adapters/adapter-interface.js +8 -0
  174. package/dist/src/adapters/adapter-interface.js.map +1 -0
  175. package/dist/src/adapters/adapter-loader.d.ts +91 -0
  176. package/dist/src/adapters/adapter-loader.d.ts.map +1 -0
  177. package/dist/src/adapters/adapter-loader.js +238 -0
  178. package/dist/src/adapters/adapter-loader.js.map +1 -0
  179. package/dist/src/adapters/agents-md-generator.d.ts +48 -0
  180. package/dist/src/adapters/agents-md-generator.d.ts.map +1 -0
  181. package/dist/src/adapters/agents-md-generator.js +193 -0
  182. package/dist/src/adapters/agents-md-generator.js.map +1 -0
  183. package/dist/src/adapters/claude/adapter.d.ts +128 -0
  184. package/dist/src/adapters/claude/adapter.d.ts.map +1 -0
  185. package/dist/src/adapters/claude/adapter.js +415 -0
  186. package/dist/src/adapters/claude/adapter.js.map +1 -0
  187. package/dist/src/adapters/claude-md-generator.d.ts +78 -0
  188. package/dist/src/adapters/claude-md-generator.d.ts.map +1 -0
  189. package/dist/src/adapters/claude-md-generator.js +307 -0
  190. package/dist/src/adapters/claude-md-generator.js.map +1 -0
  191. package/dist/src/adapters/codex/adapter.d.ts +50 -0
  192. package/dist/src/adapters/codex/adapter.d.ts.map +1 -0
  193. package/dist/src/adapters/codex/adapter.js +316 -0
  194. package/dist/src/adapters/codex/adapter.js.map +1 -0
  195. package/dist/src/adapters/cursor/adapter.d.ts +98 -0
  196. package/dist/src/adapters/cursor/adapter.d.ts.map +1 -0
  197. package/dist/src/adapters/cursor/adapter.js +406 -0
  198. package/dist/src/adapters/cursor/adapter.js.map +1 -0
  199. package/dist/src/adapters/doc-generator.d.ts +69 -0
  200. package/dist/src/adapters/doc-generator.d.ts.map +1 -0
  201. package/dist/src/adapters/doc-generator.js +247 -0
  202. package/dist/src/adapters/doc-generator.js.map +1 -0
  203. package/dist/src/adapters/gemini/adapter.d.ts +50 -0
  204. package/dist/src/adapters/gemini/adapter.d.ts.map +1 -0
  205. package/dist/src/adapters/gemini/adapter.js +281 -0
  206. package/dist/src/adapters/gemini/adapter.js.map +1 -0
  207. package/dist/src/adapters/generic/adapter.d.ts +86 -0
  208. package/dist/src/adapters/generic/adapter.d.ts.map +1 -0
  209. package/dist/src/adapters/generic/adapter.js +338 -0
  210. package/dist/src/adapters/generic/adapter.js.map +1 -0
  211. package/dist/src/cli/commands/abandon.d.ts +13 -0
  212. package/dist/src/cli/commands/abandon.d.ts.map +1 -0
  213. package/dist/src/cli/commands/abandon.js +15 -0
  214. package/dist/src/cli/commands/abandon.js.map +1 -0
  215. package/dist/src/cli/commands/import-docs.d.ts +21 -0
  216. package/dist/src/cli/commands/import-docs.d.ts.map +1 -0
  217. package/dist/src/cli/commands/import-docs.js +146 -0
  218. package/dist/src/cli/commands/import-docs.js.map +1 -0
  219. package/dist/src/cli/commands/init-multiproject.d.ts +11 -0
  220. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -0
  221. package/dist/src/cli/commands/init-multiproject.js +202 -0
  222. package/dist/src/cli/commands/init-multiproject.js.map +1 -0
  223. package/dist/src/cli/commands/init.d.ts +9 -0
  224. package/dist/src/cli/commands/init.d.ts.map +1 -0
  225. package/dist/src/cli/commands/init.js +1205 -0
  226. package/dist/src/cli/commands/init.js.map +1 -0
  227. package/dist/src/cli/commands/install.d.ts +9 -0
  228. package/dist/src/cli/commands/install.d.ts.map +1 -0
  229. package/dist/src/cli/commands/install.js +127 -0
  230. package/dist/src/cli/commands/install.js.map +1 -0
  231. package/dist/src/cli/commands/list.d.ts +8 -0
  232. package/dist/src/cli/commands/list.d.ts.map +1 -0
  233. package/dist/src/cli/commands/list.js +119 -0
  234. package/dist/src/cli/commands/list.js.map +1 -0
  235. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +37 -0
  236. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -0
  237. package/dist/src/cli/commands/migrate-to-multiproject.js +189 -0
  238. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -0
  239. package/dist/src/cli/commands/migrate-to-profiles.d.ts +25 -0
  240. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +1 -0
  241. package/dist/src/cli/commands/migrate-to-profiles.js +350 -0
  242. package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -0
  243. package/dist/src/cli/commands/pause.d.ts +13 -0
  244. package/dist/src/cli/commands/pause.d.ts.map +1 -0
  245. package/dist/src/cli/commands/pause.js +15 -0
  246. package/dist/src/cli/commands/pause.js.map +1 -0
  247. package/dist/src/cli/commands/qa.d.ts +54 -0
  248. package/dist/src/cli/commands/qa.d.ts.map +1 -0
  249. package/dist/src/cli/commands/qa.js +98 -0
  250. package/dist/src/cli/commands/qa.js.map +1 -0
  251. package/dist/src/cli/commands/resume.d.ts +12 -0
  252. package/dist/src/cli/commands/resume.d.ts.map +1 -0
  253. package/dist/src/cli/commands/resume.js +14 -0
  254. package/dist/src/cli/commands/resume.js.map +1 -0
  255. package/dist/src/cli/commands/status.d.ts +12 -0
  256. package/dist/src/cli/commands/status.d.ts.map +1 -0
  257. package/dist/src/cli/commands/status.js +23 -0
  258. package/dist/src/cli/commands/status.js.map +1 -0
  259. package/dist/src/cli/commands/switch-project.d.ts +13 -0
  260. package/dist/src/cli/commands/switch-project.d.ts.map +1 -0
  261. package/dist/src/cli/commands/switch-project.js +91 -0
  262. package/dist/src/cli/commands/switch-project.js.map +1 -0
  263. package/dist/src/cli/commands/validate-jira.d.ts +35 -0
  264. package/dist/src/cli/commands/validate-jira.d.ts.map +1 -0
  265. package/dist/src/cli/commands/validate-jira.js +112 -0
  266. package/dist/src/cli/commands/validate-jira.js.map +1 -0
  267. package/dist/src/cli/commands/validate-plugins.d.ts +41 -0
  268. package/dist/src/cli/commands/validate-plugins.d.ts.map +1 -0
  269. package/dist/src/cli/commands/validate-plugins.js +171 -0
  270. package/dist/src/cli/commands/validate-plugins.js.map +1 -0
  271. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +57 -0
  272. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
  273. package/dist/src/cli/helpers/issue-tracker/ado.js +243 -0
  274. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -0
  275. package/dist/src/cli/helpers/issue-tracker/github.d.ts +65 -0
  276. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -0
  277. package/dist/src/cli/helpers/issue-tracker/github.js +426 -0
  278. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -0
  279. package/dist/src/cli/helpers/issue-tracker/index.d.ts +22 -0
  280. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -0
  281. package/dist/src/cli/helpers/issue-tracker/index.js +314 -0
  282. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -0
  283. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +61 -0
  284. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
  285. package/dist/src/cli/helpers/issue-tracker/jira.js +404 -0
  286. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -0
  287. package/dist/src/cli/helpers/issue-tracker/types.d.ts +107 -0
  288. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -0
  289. package/dist/src/cli/helpers/issue-tracker/types.js +16 -0
  290. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -0
  291. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +112 -0
  292. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
  293. package/dist/src/cli/helpers/issue-tracker/utils.js +247 -0
  294. package/dist/src/cli/helpers/issue-tracker/utils.js.map +1 -0
  295. package/dist/src/core/agent-model-manager.d.ts +52 -0
  296. package/dist/src/core/agent-model-manager.d.ts.map +1 -0
  297. package/dist/src/core/agent-model-manager.js +120 -0
  298. package/dist/src/core/agent-model-manager.js.map +1 -0
  299. package/dist/src/core/brownfield/analyzer.d.ts +86 -0
  300. package/dist/src/core/brownfield/analyzer.d.ts.map +1 -0
  301. package/dist/src/core/brownfield/analyzer.js +365 -0
  302. package/dist/src/core/brownfield/analyzer.js.map +1 -0
  303. package/dist/src/core/brownfield/importer.d.ts +76 -0
  304. package/dist/src/core/brownfield/importer.d.ts.map +1 -0
  305. package/dist/src/core/brownfield/importer.js +287 -0
  306. package/dist/src/core/brownfield/importer.js.map +1 -0
  307. package/dist/src/core/config-manager.d.ts +47 -0
  308. package/dist/src/core/config-manager.d.ts.map +1 -0
  309. package/dist/src/core/config-manager.js +136 -0
  310. package/dist/src/core/config-manager.js.map +1 -0
  311. package/dist/src/core/cost-tracker.d.ts +108 -0
  312. package/dist/src/core/cost-tracker.d.ts.map +1 -0
  313. package/dist/src/core/cost-tracker.js +281 -0
  314. package/dist/src/core/cost-tracker.js.map +1 -0
  315. package/dist/src/core/credentials-manager.d.ts +107 -0
  316. package/dist/src/core/credentials-manager.d.ts.map +1 -0
  317. package/dist/src/core/credentials-manager.js +457 -0
  318. package/dist/src/core/credentials-manager.js.map +1 -0
  319. package/dist/src/core/i18n/language-detector.d.ts +29 -0
  320. package/dist/src/core/i18n/language-detector.d.ts.map +1 -0
  321. package/dist/src/core/i18n/language-detector.js +143 -0
  322. package/dist/src/core/i18n/language-detector.js.map +1 -0
  323. package/dist/src/core/i18n/language-manager.d.ts +101 -0
  324. package/dist/src/core/i18n/language-manager.d.ts.map +1 -0
  325. package/dist/src/core/i18n/language-manager.js +232 -0
  326. package/dist/src/core/i18n/language-manager.js.map +1 -0
  327. package/dist/src/core/i18n/language-registry.d.ts +44 -0
  328. package/dist/src/core/i18n/language-registry.d.ts.map +1 -0
  329. package/dist/src/core/i18n/language-registry.js +234 -0
  330. package/dist/src/core/i18n/language-registry.js.map +1 -0
  331. package/dist/src/core/i18n/locale-manager.d.ts +62 -0
  332. package/dist/src/core/i18n/locale-manager.d.ts.map +1 -0
  333. package/dist/src/core/i18n/locale-manager.js +137 -0
  334. package/dist/src/core/i18n/locale-manager.js.map +1 -0
  335. package/dist/src/core/i18n/system-prompt-injector.d.ts +33 -0
  336. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +1 -0
  337. package/dist/src/core/i18n/system-prompt-injector.js +131 -0
  338. package/dist/src/core/i18n/system-prompt-injector.js.map +1 -0
  339. package/dist/src/core/i18n/types.d.ts +151 -0
  340. package/dist/src/core/i18n/types.d.ts.map +1 -0
  341. package/dist/src/core/i18n/types.js +11 -0
  342. package/dist/src/core/i18n/types.js.map +1 -0
  343. package/dist/src/core/increment/limits.d.ts +68 -0
  344. package/dist/src/core/increment/limits.d.ts.map +1 -0
  345. package/dist/src/core/increment/limits.js +224 -0
  346. package/dist/src/core/increment/limits.js.map +1 -0
  347. package/dist/src/core/increment/metadata-manager.d.ts +114 -0
  348. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -0
  349. package/dist/src/core/increment/metadata-manager.js +320 -0
  350. package/dist/src/core/increment/metadata-manager.js.map +1 -0
  351. package/dist/src/core/increment/status-commands.d.ts +43 -0
  352. package/dist/src/core/increment/status-commands.d.ts.map +1 -0
  353. package/dist/src/core/increment/status-commands.js +277 -0
  354. package/dist/src/core/increment/status-commands.js.map +1 -0
  355. package/dist/src/core/increment-status.d.ts +72 -0
  356. package/dist/src/core/increment-status.d.ts.map +1 -0
  357. package/dist/src/core/increment-status.js +227 -0
  358. package/dist/src/core/increment-status.js.map +1 -0
  359. package/dist/src/core/model-selector.d.ts +57 -0
  360. package/dist/src/core/model-selector.d.ts.map +1 -0
  361. package/dist/src/core/model-selector.js +115 -0
  362. package/dist/src/core/model-selector.js.map +1 -0
  363. package/dist/src/core/phase-detector.d.ts +62 -0
  364. package/dist/src/core/phase-detector.d.ts.map +1 -0
  365. package/dist/src/core/phase-detector.js +229 -0
  366. package/dist/src/core/phase-detector.js.map +1 -0
  367. package/dist/src/core/plugin-loader.d.ts +131 -0
  368. package/dist/src/core/plugin-loader.d.ts.map +1 -0
  369. package/dist/src/core/plugin-loader.js +421 -0
  370. package/dist/src/core/plugin-loader.js.map +1 -0
  371. package/dist/src/core/project-manager.d.ts +127 -0
  372. package/dist/src/core/project-manager.d.ts.map +1 -0
  373. package/dist/src/core/project-manager.js +524 -0
  374. package/dist/src/core/project-manager.js.map +1 -0
  375. package/dist/src/core/project-structure-detector.d.ts +92 -0
  376. package/dist/src/core/project-structure-detector.d.ts.map +1 -0
  377. package/dist/src/core/project-structure-detector.js +289 -0
  378. package/dist/src/core/project-structure-detector.js.map +1 -0
  379. package/dist/src/core/qa/qa-runner.d.ts +16 -0
  380. package/dist/src/core/qa/qa-runner.d.ts.map +1 -0
  381. package/dist/src/core/qa/qa-runner.js +404 -0
  382. package/dist/src/core/qa/qa-runner.js.map +1 -0
  383. package/dist/src/core/qa/quality-gate-decider.d.ts +53 -0
  384. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -0
  385. package/dist/src/core/qa/quality-gate-decider.js +268 -0
  386. package/dist/src/core/qa/quality-gate-decider.js.map +1 -0
  387. package/dist/src/core/qa/risk-calculator.d.ts +126 -0
  388. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -0
  389. package/dist/src/core/qa/risk-calculator.js +247 -0
  390. package/dist/src/core/qa/risk-calculator.js.map +1 -0
  391. package/dist/src/core/qa/types.d.ts +315 -0
  392. package/dist/src/core/qa/types.d.ts.map +1 -0
  393. package/dist/src/core/qa/types.js +8 -0
  394. package/dist/src/core/qa/types.js.map +1 -0
  395. package/dist/src/core/rfc-generator-v2.d.ts +149 -0
  396. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -0
  397. package/dist/src/core/rfc-generator-v2.js +399 -0
  398. package/dist/src/core/rfc-generator-v2.js.map +1 -0
  399. package/dist/src/core/sync/bidirectional-engine.d.ts +110 -0
  400. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -0
  401. package/dist/src/core/sync/bidirectional-engine.js +356 -0
  402. package/dist/src/core/sync/bidirectional-engine.js.map +1 -0
  403. package/dist/src/core/sync/folder-mapper.d.ts +71 -0
  404. package/dist/src/core/sync/folder-mapper.d.ts.map +1 -0
  405. package/dist/src/core/sync/folder-mapper.js +168 -0
  406. package/dist/src/core/sync/folder-mapper.js.map +1 -0
  407. package/dist/src/core/sync/profile-manager.d.ts +72 -0
  408. package/dist/src/core/sync/profile-manager.d.ts.map +1 -0
  409. package/dist/src/core/sync/profile-manager.js +338 -0
  410. package/dist/src/core/sync/profile-manager.js.map +1 -0
  411. package/dist/src/core/sync/profile-selector.d.ts +52 -0
  412. package/dist/src/core/sync/profile-selector.d.ts.map +1 -0
  413. package/dist/src/core/sync/profile-selector.js +179 -0
  414. package/dist/src/core/sync/profile-selector.js.map +1 -0
  415. package/dist/src/core/sync/profile-validator.d.ts +52 -0
  416. package/dist/src/core/sync/profile-validator.d.ts.map +1 -0
  417. package/dist/src/core/sync/profile-validator.js +225 -0
  418. package/dist/src/core/sync/profile-validator.js.map +1 -0
  419. package/dist/src/core/sync/project-context.d.ts +81 -0
  420. package/dist/src/core/sync/project-context.d.ts.map +1 -0
  421. package/dist/src/core/sync/project-context.js +354 -0
  422. package/dist/src/core/sync/project-context.js.map +1 -0
  423. package/dist/src/core/sync/rate-limiter.d.ts +116 -0
  424. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -0
  425. package/dist/src/core/sync/rate-limiter.js +308 -0
  426. package/dist/src/core/sync/rate-limiter.js.map +1 -0
  427. package/dist/src/core/sync/time-range-selector.d.ts +48 -0
  428. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -0
  429. package/dist/src/core/sync/time-range-selector.js +224 -0
  430. package/dist/src/core/sync/time-range-selector.js.map +1 -0
  431. package/dist/src/core/types/config.d.ts +90 -0
  432. package/dist/src/core/types/config.d.ts.map +1 -0
  433. package/dist/src/core/types/config.js +37 -0
  434. package/dist/src/core/types/config.js.map +1 -0
  435. package/dist/src/core/types/increment-metadata.d.ts +120 -0
  436. package/dist/src/core/types/increment-metadata.d.ts.map +1 -0
  437. package/dist/src/core/types/increment-metadata.js +138 -0
  438. package/dist/src/core/types/increment-metadata.js.map +1 -0
  439. package/dist/src/core/types/plugin.d.ts +283 -0
  440. package/dist/src/core/types/plugin.d.ts.map +1 -0
  441. package/dist/src/core/types/plugin.js +49 -0
  442. package/dist/src/core/types/plugin.js.map +1 -0
  443. package/dist/src/core/types/sync-profile.d.ts +403 -0
  444. package/dist/src/core/types/sync-profile.d.ts.map +1 -0
  445. package/dist/src/core/types/sync-profile.js +55 -0
  446. package/dist/src/core/types/sync-profile.js.map +1 -0
  447. package/dist/src/hooks/lib/types/reflection-types.d.ts +125 -0
  448. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +1 -0
  449. package/dist/src/hooks/lib/types/reflection-types.js +54 -0
  450. package/dist/src/hooks/lib/types/reflection-types.js.map +1 -0
  451. package/dist/src/integrations/ado/ado-client.d.ts +127 -0
  452. package/dist/src/integrations/ado/ado-client.d.ts.map +1 -0
  453. package/dist/src/integrations/ado/ado-client.js +416 -0
  454. package/dist/src/integrations/ado/ado-client.js.map +1 -0
  455. package/dist/src/integrations/jira/jira-client.d.ts +139 -0
  456. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -0
  457. package/dist/src/integrations/jira/jira-client.js +386 -0
  458. package/dist/src/integrations/jira/jira-client.js.map +1 -0
  459. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +75 -0
  460. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
  461. package/dist/src/integrations/jira/jira-incremental-mapper.js +474 -0
  462. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -0
  463. package/dist/src/integrations/jira/jira-mapper.d.ts +105 -0
  464. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -0
  465. package/dist/src/integrations/jira/jira-mapper.js +494 -0
  466. package/dist/src/integrations/jira/jira-mapper.js.map +1 -0
  467. package/dist/src/metrics/calculators/change-failure-rate.d.ts +22 -0
  468. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +1 -0
  469. package/dist/src/metrics/calculators/change-failure-rate.js +70 -0
  470. package/dist/src/metrics/calculators/change-failure-rate.js.map +1 -0
  471. package/dist/src/metrics/calculators/deployment-frequency.d.ts +20 -0
  472. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +1 -0
  473. package/dist/src/metrics/calculators/deployment-frequency.js +61 -0
  474. package/dist/src/metrics/calculators/deployment-frequency.js.map +1 -0
  475. package/dist/src/metrics/calculators/lead-time.d.ts +22 -0
  476. package/dist/src/metrics/calculators/lead-time.d.ts.map +1 -0
  477. package/dist/src/metrics/calculators/lead-time.js +82 -0
  478. package/dist/src/metrics/calculators/lead-time.js.map +1 -0
  479. package/dist/src/metrics/calculators/mttr.d.ts +21 -0
  480. package/dist/src/metrics/calculators/mttr.d.ts.map +1 -0
  481. package/dist/src/metrics/calculators/mttr.js +60 -0
  482. package/dist/src/metrics/calculators/mttr.js.map +1 -0
  483. package/dist/src/metrics/dora-calculator.d.ts +28 -0
  484. package/dist/src/metrics/dora-calculator.d.ts.map +1 -0
  485. package/dist/src/metrics/dora-calculator.js +117 -0
  486. package/dist/src/metrics/dora-calculator.js.map +1 -0
  487. package/dist/src/metrics/github-client.d.ts +51 -0
  488. package/dist/src/metrics/github-client.d.ts.map +1 -0
  489. package/dist/src/metrics/github-client.js +133 -0
  490. package/dist/src/metrics/github-client.js.map +1 -0
  491. package/dist/src/metrics/report-generator.d.ts +17 -0
  492. package/dist/src/metrics/report-generator.d.ts.map +1 -0
  493. package/dist/src/metrics/report-generator.js +403 -0
  494. package/dist/src/metrics/report-generator.js.map +1 -0
  495. package/dist/src/metrics/types.d.ts +112 -0
  496. package/dist/src/metrics/types.d.ts.map +1 -0
  497. package/dist/src/metrics/types.js +10 -0
  498. package/dist/src/metrics/types.js.map +1 -0
  499. package/dist/src/metrics/utils/percentile.d.ts +25 -0
  500. package/dist/src/metrics/utils/percentile.d.ts.map +1 -0
  501. package/dist/src/metrics/utils/percentile.js +46 -0
  502. package/dist/src/metrics/utils/percentile.js.map +1 -0
  503. package/dist/src/metrics/utils/tier-classifier.d.ts +61 -0
  504. package/dist/src/metrics/utils/tier-classifier.d.ts.map +1 -0
  505. package/dist/src/metrics/utils/tier-classifier.js +100 -0
  506. package/dist/src/metrics/utils/tier-classifier.js.map +1 -0
  507. package/dist/src/testing/test-generator.d.ts +117 -0
  508. package/dist/src/testing/test-generator.d.ts.map +1 -0
  509. package/dist/src/testing/test-generator.js +370 -0
  510. package/dist/src/testing/test-generator.js.map +1 -0
  511. package/dist/src/types/cost-tracking.d.ts +43 -0
  512. package/dist/src/types/cost-tracking.d.ts.map +1 -0
  513. package/dist/src/types/cost-tracking.js +8 -0
  514. package/dist/src/types/cost-tracking.js.map +1 -0
  515. package/dist/src/types/model-selection.d.ts +53 -0
  516. package/dist/src/types/model-selection.d.ts.map +1 -0
  517. package/dist/src/types/model-selection.js +12 -0
  518. package/dist/src/types/model-selection.js.map +1 -0
  519. package/dist/src/utils/agents-md-compiler.d.ts +68 -0
  520. package/dist/src/utils/agents-md-compiler.d.ts.map +1 -0
  521. package/dist/src/utils/agents-md-compiler.js +420 -0
  522. package/dist/src/utils/agents-md-compiler.js.map +1 -0
  523. package/dist/src/utils/auth-helpers.d.ts +58 -0
  524. package/dist/src/utils/auth-helpers.d.ts.map +1 -0
  525. package/dist/src/utils/auth-helpers.js +108 -0
  526. package/dist/src/utils/auth-helpers.js.map +1 -0
  527. package/dist/src/utils/auto-install.d.ts +47 -0
  528. package/dist/src/utils/auto-install.d.ts.map +1 -0
  529. package/dist/src/utils/auto-install.js +211 -0
  530. package/dist/src/utils/auto-install.js.map +1 -0
  531. package/dist/src/utils/claude-cli-detector.d.ts +75 -0
  532. package/dist/src/utils/claude-cli-detector.d.ts.map +1 -0
  533. package/dist/src/utils/claude-cli-detector.js +285 -0
  534. package/dist/src/utils/claude-cli-detector.js.map +1 -0
  535. package/dist/src/utils/cost-reporter.d.ts +58 -0
  536. package/dist/src/utils/cost-reporter.d.ts.map +1 -0
  537. package/dist/src/utils/cost-reporter.js +224 -0
  538. package/dist/src/utils/cost-reporter.js.map +1 -0
  539. package/dist/src/utils/docs-preview/config-generator.d.ts +46 -0
  540. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -0
  541. package/dist/src/utils/docs-preview/config-generator.js +377 -0
  542. package/dist/src/utils/docs-preview/config-generator.js.map +1 -0
  543. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +38 -0
  544. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
  545. package/dist/src/utils/docs-preview/docusaurus-setup.js +177 -0
  546. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -0
  547. package/dist/src/utils/docs-preview/index.d.ts +7 -0
  548. package/dist/src/utils/docs-preview/index.d.ts.map +1 -0
  549. package/dist/src/utils/docs-preview/index.js +7 -0
  550. package/dist/src/utils/docs-preview/index.js.map +1 -0
  551. package/dist/src/utils/docs-preview/package-installer.d.ts +42 -0
  552. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -0
  553. package/dist/src/utils/docs-preview/package-installer.js +182 -0
  554. package/dist/src/utils/docs-preview/package-installer.js.map +1 -0
  555. package/dist/src/utils/docs-preview/server-manager.d.ts +30 -0
  556. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -0
  557. package/dist/src/utils/docs-preview/server-manager.js +212 -0
  558. package/dist/src/utils/docs-preview/server-manager.js.map +1 -0
  559. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +32 -0
  560. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
  561. package/dist/src/utils/docs-preview/sidebar-builder.js +202 -0
  562. package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -0
  563. package/dist/src/utils/docs-preview/types.d.ts +57 -0
  564. package/dist/src/utils/docs-preview/types.d.ts.map +1 -0
  565. package/dist/src/utils/docs-preview/types.js +2 -0
  566. package/dist/src/utils/docs-preview/types.js.map +1 -0
  567. package/dist/src/utils/env-file.d.ts +88 -0
  568. package/dist/src/utils/env-file.d.ts.map +1 -0
  569. package/dist/src/utils/env-file.js +180 -0
  570. package/dist/src/utils/env-file.js.map +1 -0
  571. package/dist/src/utils/env-multi-project-parser.d.ts +220 -0
  572. package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -0
  573. package/dist/src/utils/env-multi-project-parser.js +403 -0
  574. package/dist/src/utils/env-multi-project-parser.js.map +1 -0
  575. package/dist/src/utils/esm-helpers.d.ts +50 -0
  576. package/dist/src/utils/esm-helpers.d.ts.map +1 -0
  577. package/dist/src/utils/esm-helpers.js +57 -0
  578. package/dist/src/utils/esm-helpers.js.map +1 -0
  579. package/dist/src/utils/execFileNoThrow.d.ts +99 -0
  580. package/dist/src/utils/execFileNoThrow.d.ts.map +1 -0
  581. package/dist/src/utils/execFileNoThrow.js +137 -0
  582. package/dist/src/utils/execFileNoThrow.js.map +1 -0
  583. package/dist/src/utils/external-resource-validator.d.ts +102 -0
  584. package/dist/src/utils/external-resource-validator.d.ts.map +1 -0
  585. package/dist/src/utils/external-resource-validator.js +400 -0
  586. package/dist/src/utils/external-resource-validator.js.map +1 -0
  587. package/dist/src/utils/generate-skills-index.d.ts +24 -0
  588. package/dist/src/utils/generate-skills-index.d.ts.map +1 -0
  589. package/dist/src/utils/generate-skills-index.js +410 -0
  590. package/dist/src/utils/generate-skills-index.js.map +1 -0
  591. package/dist/src/utils/model-selection.d.ts +75 -0
  592. package/dist/src/utils/model-selection.d.ts.map +1 -0
  593. package/dist/src/utils/model-selection.js +204 -0
  594. package/dist/src/utils/model-selection.js.map +1 -0
  595. package/dist/src/utils/plugin-validator.d.ts +161 -0
  596. package/dist/src/utils/plugin-validator.d.ts.map +1 -0
  597. package/dist/src/utils/plugin-validator.js +558 -0
  598. package/dist/src/utils/plugin-validator.js.map +1 -0
  599. package/dist/src/utils/pricing-constants.d.ts +70 -0
  600. package/dist/src/utils/pricing-constants.d.ts.map +1 -0
  601. package/dist/src/utils/pricing-constants.js +71 -0
  602. package/dist/src/utils/pricing-constants.js.map +1 -0
  603. package/dist/src/utils/project-detection.d.ts +141 -0
  604. package/dist/src/utils/project-detection.d.ts.map +1 -0
  605. package/dist/src/utils/project-detection.js +321 -0
  606. package/dist/src/utils/project-detection.js.map +1 -0
  607. package/dist/src/utils/string-utils.d.ts +40 -0
  608. package/dist/src/utils/string-utils.d.ts.map +1 -0
  609. package/dist/src/utils/string-utils.js +58 -0
  610. package/dist/src/utils/string-utils.js.map +1 -0
  611. package/dist/src/utils/translation.d.ts +187 -0
  612. package/dist/src/utils/translation.d.ts.map +1 -0
  613. package/dist/src/utils/translation.js +414 -0
  614. package/dist/src/utils/translation.js.map +1 -0
  615. package/dist/utils/plugin-validator.d.ts.map +1 -1
  616. package/dist/utils/plugin-validator.js +0 -7
  617. package/dist/utils/plugin-validator.js.map +1 -1
  618. package/package.json +3 -2
  619. package/plugins/specweave/agents/reflective-reviewer/AGENT.md +535 -0
  620. package/plugins/specweave/hooks/post-first-increment.sh +10 -28
  621. package/plugins/specweave/hooks/post-increment-planning.sh +261 -1
  622. package/plugins/specweave/hooks/post-task-completion.sh +26 -0
  623. package/plugins/specweave/lib/hooks/git-diff-analyzer.ts +269 -0
  624. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +264 -0
  625. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +178 -0
  626. package/plugins/specweave/lib/hooks/reflection-config-loader.ts +156 -0
  627. package/plugins/specweave/lib/hooks/reflection-parser.ts +484 -0
  628. package/plugins/specweave/lib/hooks/reflection-prompt-builder.ts +306 -0
  629. package/plugins/specweave/lib/hooks/reflection-storage.ts +369 -0
  630. package/plugins/specweave/lib/hooks/run-self-reflection.ts +258 -0
  631. package/plugins/specweave/lib/hooks/sync-living-docs.ts +147 -0
  632. package/plugins/specweave/lib/hooks/translate-file.ts +428 -0
  633. package/plugins/specweave/lib/hooks/translate-living-docs.ts +224 -0
  634. package/plugins/specweave/lib/hooks/types/reflection-types.ts +193 -0
  635. package/plugins/specweave/lib/hooks/update-tasks-md.ts +256 -0
  636. package/plugins/specweave/skills/SKILLS-INDEX.md +2 -2
  637. package/plugins/specweave/skills/increment-planner/SKILL.md +21 -92
  638. package/plugins/specweave/skills/plugin-expert/SKILL.md +0 -4
  639. package/plugins/specweave/skills/plugin-installer/SKILL.md +41 -28
  640. package/plugins/specweave/skills/plugin-validator/SKILL.md +0 -1
  641. package/plugins/specweave/skills/project-kickstarter/SKILL.md +3 -3
  642. package/plugins/specweave/skills/spec-generator/SKILL.md +3 -3
  643. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +2 -0
  644. package/plugins/specweave-ado/commands/specweave-ado-sync.md +102 -9
  645. package/plugins/specweave-ado/skills/ado-sync/SKILL.md +7 -3
  646. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +21 -0
  647. package/plugins/specweave-docs-preview/commands/build.md +489 -0
  648. package/plugins/specweave-docs-preview/commands/preview.md +330 -0
  649. package/plugins/specweave-docs-preview/skills/docs-preview/SKILL.md +386 -0
  650. package/plugins/specweave-github/agents/github-manager/AGENT.md +14 -4
  651. package/plugins/specweave-github/commands/specweave-github-sync.md +60 -11
  652. package/plugins/specweave-github/skills/github-sync/SKILL.md +3 -1
  653. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +18 -8
  654. package/plugins/specweave-jira/commands/specweave-jira-sync.md +62 -19
  655. package/plugins/specweave-jira/skills/jira-sync/SKILL.md +5 -3
  656. package/plugins/specweave/skills/translator/SKILL.md.bak +0 -172
@@ -0,0 +1,524 @@
1
+ /**
2
+ * ProjectManager - Multi-project support for SpecWeave
3
+ *
4
+ * Handles project context, path resolution, and project switching.
5
+ * Key principle: Single project = multi-project with 1 project (no special cases)
6
+ */
7
+ import path from 'path';
8
+ import fs from 'fs-extra';
9
+ import { ConfigManager } from './config-manager';
10
+ import { autoDetectProjectIdSync, formatProjectName } from '../utils/project-detection';
11
+ export class ProjectManager {
12
+ constructor(projectRoot) {
13
+ this.cachedProject = null;
14
+ this.projectRoot = projectRoot;
15
+ this.configManager = new ConfigManager(projectRoot);
16
+ }
17
+ /**
18
+ * Get current active project
19
+ * Auto-detects project ID from git remote or sync config
20
+ *
21
+ * @returns ProjectContext
22
+ */
23
+ getActiveProject() {
24
+ // Return cached project if available
25
+ if (this.cachedProject) {
26
+ return this.cachedProject;
27
+ }
28
+ const config = this.configManager.load();
29
+ // Single project mode → return auto-detected project
30
+ if (!config.multiProject?.enabled) {
31
+ // Auto-detect project ID (git remote, sync config, or "default")
32
+ const projectId = autoDetectProjectIdSync(this.projectRoot, { silent: true });
33
+ this.cachedProject = {
34
+ id: projectId,
35
+ name: config.project?.name || formatProjectName(projectId),
36
+ description: config.project?.description || `${formatProjectName(projectId)} project`,
37
+ techStack: config.project?.techStack || [],
38
+ team: config.project?.team || 'Engineering Team'
39
+ };
40
+ return this.cachedProject;
41
+ }
42
+ // Multi-project mode → return active project
43
+ const activeProjectId = config.multiProject.activeProject;
44
+ if (!activeProjectId) {
45
+ throw new Error('Multi-project mode enabled but no active project set in config');
46
+ }
47
+ const project = config.multiProject.projects.find((p) => p.id === activeProjectId);
48
+ if (!project) {
49
+ throw new Error(`Active project '${activeProjectId}' not found in config. Available projects: ${config.multiProject.projects.map((p) => p.id).join(', ')}`);
50
+ }
51
+ this.cachedProject = project;
52
+ return project;
53
+ }
54
+ /**
55
+ * Get all projects
56
+ *
57
+ * @returns ProjectContext[]
58
+ */
59
+ getAllProjects() {
60
+ const config = this.configManager.load();
61
+ if (!config.multiProject?.enabled) {
62
+ // Auto-detect project ID for single project mode
63
+ const projectId = autoDetectProjectIdSync(this.projectRoot, { silent: true });
64
+ return [{
65
+ id: projectId,
66
+ name: config.project?.name || formatProjectName(projectId),
67
+ description: config.project?.description || `${formatProjectName(projectId)} project`,
68
+ techStack: config.project?.techStack || [],
69
+ team: config.project?.team || 'Engineering Team'
70
+ }];
71
+ }
72
+ return config.multiProject.projects;
73
+ }
74
+ /**
75
+ * Get project by ID
76
+ *
77
+ * @param projectId - Project identifier
78
+ * @returns ProjectContext or null
79
+ */
80
+ getProjectById(projectId) {
81
+ const projects = this.getAllProjects();
82
+ return projects.find(p => p.id === projectId) || null;
83
+ }
84
+ /**
85
+ * Get base path for active project
86
+ * Example: .specweave/docs/internal/projects/default/
87
+ *
88
+ * @returns string
89
+ */
90
+ getProjectBasePath(projectId) {
91
+ const project = projectId ? this.getProjectById(projectId) : this.getActiveProject();
92
+ if (!project) {
93
+ throw new Error(`Project '${projectId}' not found`);
94
+ }
95
+ return path.join(this.projectRoot, '.specweave/docs/internal/projects', project.id);
96
+ }
97
+ /**
98
+ * Get specs path for active project
99
+ * Example: .specweave/docs/internal/projects/default/specs/
100
+ *
101
+ * @returns string
102
+ */
103
+ getSpecsPath(projectId) {
104
+ return path.join(this.getProjectBasePath(projectId), 'specs');
105
+ }
106
+ /**
107
+ * Get modules path for active project
108
+ * Example: .specweave/docs/internal/projects/default/modules/
109
+ *
110
+ * @returns string
111
+ */
112
+ getModulesPath(projectId) {
113
+ return path.join(this.getProjectBasePath(projectId), 'modules');
114
+ }
115
+ /**
116
+ * Get team docs path for active project
117
+ * Example: .specweave/docs/internal/projects/default/team/
118
+ *
119
+ * @returns string
120
+ */
121
+ getTeamPath(projectId) {
122
+ return path.join(this.getProjectBasePath(projectId), 'team');
123
+ }
124
+ /**
125
+ * Get architecture path for active project
126
+ * Example: .specweave/docs/internal/projects/default/architecture/
127
+ *
128
+ * @returns string
129
+ */
130
+ getArchitecturePath(projectId) {
131
+ return path.join(this.getProjectBasePath(projectId), 'architecture');
132
+ }
133
+ /**
134
+ * Get legacy docs path for active project
135
+ * Example: .specweave/docs/internal/projects/default/legacy/
136
+ * Or with source: .specweave/docs/internal/projects/default/legacy/notion/
137
+ *
138
+ * @param source - Optional source type (notion, confluence, wiki, custom)
139
+ * @returns string
140
+ */
141
+ getLegacyPath(source, projectId) {
142
+ const basePath = path.join(this.getProjectBasePath(projectId), 'legacy');
143
+ return source ? path.join(basePath, source) : basePath;
144
+ }
145
+ /**
146
+ * Switch active project
147
+ *
148
+ * @param projectId - Project identifier
149
+ */
150
+ async switchProject(projectId) {
151
+ const config = this.configManager.load();
152
+ if (!config.multiProject?.enabled) {
153
+ throw new Error('Multi-project mode not enabled. Run /specweave:init-multiproject first.');
154
+ }
155
+ const project = config.multiProject.projects.find((p) => p.id === projectId);
156
+ if (!project) {
157
+ const availableProjects = config.multiProject.projects.map((p) => p.id).join(', ');
158
+ throw new Error(`Project '${projectId}' not found. Available projects: ${availableProjects}`);
159
+ }
160
+ // Update config
161
+ config.multiProject.activeProject = projectId;
162
+ await this.configManager.save(config);
163
+ // Clear cache
164
+ this.cachedProject = null;
165
+ console.log(`✅ Switched to project: ${project.name} (${projectId})`);
166
+ }
167
+ /**
168
+ * Create project structure with all folders
169
+ *
170
+ * @param projectId - Project identifier
171
+ */
172
+ async createProjectStructure(projectId) {
173
+ const basePath = this.getProjectBasePath(projectId);
174
+ // Create folders
175
+ await fs.ensureDir(path.join(basePath, 'specs'));
176
+ await fs.ensureDir(path.join(basePath, 'modules'));
177
+ await fs.ensureDir(path.join(basePath, 'team'));
178
+ await fs.ensureDir(path.join(basePath, 'architecture/adr'));
179
+ await fs.ensureDir(path.join(basePath, 'legacy'));
180
+ // Create README files
181
+ const project = this.getProjectById(projectId);
182
+ if (project) {
183
+ await this.createProjectREADME(project, basePath);
184
+ await this.createModulesREADME(basePath);
185
+ await this.createTeamREADME(basePath);
186
+ await this.createArchitectureREADME(basePath);
187
+ await this.createLegacyREADME(basePath);
188
+ }
189
+ console.log(`📁 Created project structure: ${basePath}`);
190
+ }
191
+ /**
192
+ * Add new project to config
193
+ *
194
+ * @param project - Project context
195
+ */
196
+ async addProject(project) {
197
+ const config = this.configManager.load();
198
+ // Initialize multiProject if not present
199
+ if (!config.multiProject) {
200
+ config.multiProject = {
201
+ enabled: false,
202
+ activeProject: 'default',
203
+ projects: []
204
+ };
205
+ }
206
+ // Check for duplicate ID
207
+ const existingProject = config.multiProject.projects.find((p) => p.id === project.id);
208
+ if (existingProject) {
209
+ throw new Error(`Project with ID '${project.id}' already exists`);
210
+ }
211
+ // Validate project ID (kebab-case)
212
+ const kebabCaseRegex = /^[a-z0-9-]+$/;
213
+ if (!kebabCaseRegex.test(project.id)) {
214
+ throw new Error(`Project ID '${project.id}' is invalid. Must be kebab-case (lowercase, hyphens only)`);
215
+ }
216
+ // Add project
217
+ config.multiProject.projects.push(project);
218
+ await this.configManager.save(config);
219
+ // Create structure
220
+ await this.createProjectStructure(project.id);
221
+ console.log(`✅ Added project: ${project.name} (${project.id})`);
222
+ }
223
+ /**
224
+ * Remove project from config
225
+ *
226
+ * @param projectId - Project identifier
227
+ */
228
+ async removeProject(projectId) {
229
+ const config = this.configManager.load();
230
+ if (!config.multiProject?.enabled) {
231
+ throw new Error('Multi-project mode not enabled');
232
+ }
233
+ if (projectId === 'default') {
234
+ throw new Error('Cannot remove default project');
235
+ }
236
+ if (config.multiProject.activeProject === projectId) {
237
+ throw new Error('Cannot remove active project. Switch to another project first.');
238
+ }
239
+ const projectIndex = config.multiProject.projects.findIndex((p) => p.id === projectId);
240
+ if (projectIndex === -1) {
241
+ throw new Error(`Project '${projectId}' not found`);
242
+ }
243
+ // Remove from config
244
+ config.multiProject.projects.splice(projectIndex, 1);
245
+ await this.configManager.save(config);
246
+ console.log(`✅ Removed project: ${projectId}`);
247
+ console.log('⚠️ Project files not deleted. Remove manually if needed.');
248
+ }
249
+ /**
250
+ * Clear cached project (force reload)
251
+ */
252
+ clearCache() {
253
+ this.cachedProject = null;
254
+ }
255
+ // README creation methods
256
+ async createProjectREADME(project, basePath) {
257
+ const content = `# ${project.name}
258
+
259
+ ${project.description}
260
+
261
+ ## Project Information
262
+
263
+ - **Team**: ${project.team}
264
+ - **Tech Stack**: ${project.techStack.length > 0 ? project.techStack.join(', ') : 'Not specified'}
265
+ ${project.contacts?.lead ? `- **Tech Lead**: ${project.contacts.lead}` : ''}
266
+ ${project.contacts?.pm ? `- **Product Manager**: ${project.contacts.pm}` : ''}
267
+
268
+ ## Folder Structure
269
+
270
+ - \`specs/\` - Living documentation specs (spec-001, spec-002, ...)
271
+ - \`modules/\` - Module-level documentation (auth, payments, etc.)
272
+ - \`team/\` - Team playbooks (onboarding, conventions, workflows)
273
+ - \`architecture/\` - Project-specific architecture (optional)
274
+ - \`legacy/\` - Brownfield imported documentation
275
+
276
+ ## Documentation
277
+
278
+ ### Specs
279
+ Living documentation for features and requirements. Each spec follows the format:
280
+ - \`spec-NNN-feature-name.md\`
281
+
282
+ ### Modules
283
+ Module-level documentation for components, services, and domains. Examples:
284
+ - \`auth-module.md\` - Authentication domain
285
+ - \`payment-module.md\` - Payment processing
286
+ - \`ml-pipeline-module.md\` - Machine learning pipeline
287
+
288
+ ### Team Playbooks
289
+ Team-specific conventions, workflows, and processes:
290
+ - \`onboarding.md\` - How to join this team
291
+ - \`conventions.md\` - Coding conventions, naming standards
292
+ - \`workflows.md\` - PR process, deployment, incident handling
293
+
294
+ ## External Sync
295
+
296
+ ${project.syncProfiles && project.syncProfiles.length > 0 ?
297
+ `This project syncs with external tools:
298
+ ${project.syncProfiles.map(profile => `- ${profile}`).join('\n')}` :
299
+ 'No external sync profiles configured yet.'}
300
+
301
+ ---
302
+
303
+ **Created**: ${new Date().toISOString().split('T')[0]}
304
+ **Last Updated**: ${new Date().toISOString().split('T')[0]}
305
+ `;
306
+ await fs.writeFile(path.join(basePath, 'README.md'), content);
307
+ }
308
+ async createModulesREADME(basePath) {
309
+ const content = `# Module Documentation
310
+
311
+ Module-level documentation for components, services, and domains.
312
+
313
+ ## What Goes Here
314
+
315
+ - **Module architecture** - How the module is structured
316
+ - **Key components** - Main classes, services, controllers
317
+ - **Integration points** - How it connects to other modules
318
+ - **Security considerations** - Auth, permissions, data handling
319
+ - **Performance notes** - Caching, optimization, scalability
320
+
321
+ ## Module Examples
322
+
323
+ ### Example: \`auth-module.md\`
324
+
325
+ \`\`\`markdown
326
+ # Authentication Module
327
+
328
+ ## Overview
329
+ Handles user authentication, session management, OAuth2 integration.
330
+
331
+ ## Architecture
332
+ - AuthService.ts - Core authentication logic
333
+ - SessionManager.ts - Session persistence
334
+ - OAuth2Provider.ts - OAuth2 integration
335
+
336
+ ## Integration Points
337
+ - Uses Redis for session storage
338
+ - Integrates with user-service for profile data
339
+ - Publishes auth events to message bus
340
+
341
+ ## Security Considerations
342
+ - All passwords hashed with bcrypt (cost: 12)
343
+ - JWT tokens expire after 15 minutes
344
+ - Refresh tokens expire after 7 days
345
+ \`\`\`
346
+
347
+ ## When to Create Module Docs
348
+
349
+ - **Large codebase** with distinct modules (auth, payments, notifications)
350
+ - **Domain-specific knowledge** (payment processing, ML pipeline)
351
+ - **Design system components** (button, modal, form)
352
+ - **Microservices** with complex interactions
353
+
354
+ ## Module vs Architecture Docs
355
+
356
+ | Aspect | Module Docs | Architecture Docs |
357
+ |--------|-------------|-------------------|
358
+ | **Scope** | Component-level | System-level |
359
+ | **Location** | \`projects/{id}/modules/\` | \`architecture/\` (shared) or \`projects/{id}/architecture/\` (project-specific) |
360
+ | **Audience** | Developers working on module | All technical stakeholders |
361
+ | **Examples** | auth-module.md, payment-module.md | HLD, ADR, system diagrams |
362
+
363
+ ---
364
+
365
+ **See**: [../README.md](../README.md) for project overview
366
+ `;
367
+ await fs.writeFile(path.join(basePath, 'modules', 'README.md'), content);
368
+ }
369
+ async createTeamREADME(basePath) {
370
+ const content = `# Team Playbook
371
+
372
+ Team-specific conventions, workflows, and processes.
373
+
374
+ ## What Goes Here
375
+
376
+ - **Onboarding** - How to join this team
377
+ - **Conventions** - Coding conventions, naming standards
378
+ - **Workflows** - PR process, deployment, incident handling
379
+ - **Contacts** - Team members, on-call rotation
380
+
381
+ ## Typical Team Docs
382
+
383
+ ### 1. \`onboarding.md\`
384
+ - Development environment setup
385
+ - Required accounts and permissions
386
+ - Codebase walkthrough
387
+ - First tasks for new team members
388
+
389
+ ### 2. \`conventions.md\`
390
+ - Naming conventions (files, functions, variables)
391
+ - Code patterns and best practices
392
+ - Tech stack preferences
393
+ - Testing approach
394
+
395
+ ### 3. \`workflows.md\`
396
+ - Git workflow and branching strategy
397
+ - PR review process
398
+ - Deployment procedures
399
+ - Incident response
400
+
401
+ ### 4. \`contacts.md\`
402
+ - Team members and roles
403
+ - On-call rotation
404
+ - Escalation paths
405
+
406
+ ## Example: \`conventions.md\`
407
+
408
+ \`\`\`markdown
409
+ # Team Conventions
410
+
411
+ ## Naming Conventions
412
+ - React components: PascalCase (UserProfile.tsx)
413
+ - Hooks: camelCase with "use" prefix (useAuth.ts)
414
+ - Test files: *.test.ts (not *.spec.ts)
415
+
416
+ ## Code Patterns
417
+ - Always use TypeScript strict mode
418
+ - Prefer functional components over class components
419
+ - Use React Query for API calls (not Redux)
420
+
421
+ ## Tech Stack
422
+ - Frontend: React 18, TypeScript, Tailwind CSS
423
+ - Backend: Node.js, Express, PostgreSQL
424
+ - Testing: Vitest, Playwright
425
+ \`\`\`
426
+
427
+ ---
428
+
429
+ **See**: [../README.md](../README.md) for project overview
430
+ `;
431
+ await fs.writeFile(path.join(basePath, 'team', 'README.md'), content);
432
+ }
433
+ async createArchitectureREADME(basePath) {
434
+ const content = `# Project-Specific Architecture
435
+
436
+ Project-specific architecture documentation and ADRs.
437
+
438
+ ## When to Use This vs Shared Architecture
439
+
440
+ ### Project-Specific Architecture (\`projects/{id}/architecture/\`)
441
+ - Decisions specific to this project/team
442
+ - Component-level design
443
+ - Project-specific ADRs
444
+
445
+ ### Shared Architecture (\`.specweave/docs/internal/architecture/\`)
446
+ - System-wide architecture
447
+ - Cross-cutting concerns
448
+ - Shared ADRs affecting all projects
449
+
450
+ ## ADR Naming Convention
451
+
452
+ \`NNNN-decision-title.md\`
453
+
454
+ Example: \`0001-use-postgres-for-user-data.md\`
455
+
456
+ ## ADR Template
457
+
458
+ \`\`\`markdown
459
+ # ADR-NNNN: Decision Title
460
+
461
+ **Status**: Accepted | Proposed | Deprecated
462
+ **Date**: YYYY-MM-DD
463
+ **Deciders**: Who made this decision
464
+
465
+ ## Context
466
+ What is the issue we're addressing?
467
+
468
+ ## Decision
469
+ What decision did we make?
470
+
471
+ ## Consequences
472
+ What are the trade-offs?
473
+ - ✅ Positive consequences
474
+ - ❌ Negative consequences
475
+
476
+ ## Alternatives Considered
477
+ What other options did we evaluate?
478
+ \`\`\`
479
+
480
+ ---
481
+
482
+ **See**: [../README.md](../README.md) for project overview
483
+ `;
484
+ await fs.writeFile(path.join(basePath, 'architecture', 'README.md'), content);
485
+ }
486
+ async createLegacyREADME(basePath) {
487
+ const content = `# Legacy Documentation
488
+
489
+ Brownfield documentation imported from external sources.
490
+
491
+ ## Purpose
492
+
493
+ This folder contains documentation imported from:
494
+ - Notion exports
495
+ - Confluence exports
496
+ - GitHub Wiki
497
+ - Other markdown sources
498
+
499
+ ## Organization
500
+
501
+ - \`notion/\` - Imported from Notion workspace
502
+ - \`confluence/\` - Imported from Confluence space
503
+ - \`wiki/\` - Imported from GitHub Wiki or other wikis
504
+ - \`custom/\` - Other imported documentation
505
+
506
+ ## Migration Strategy
507
+
508
+ 1. **Review imported files** for accuracy
509
+ 2. **Manually move misclassified files** if needed
510
+ 3. **Update spec numbers** to follow SpecWeave conventions
511
+ 4. **Delete this folder** when migration is complete
512
+
513
+ ## Import History
514
+
515
+ See \`.specweave/config.json\` → \`brownfield.importHistory\` for import details.
516
+
517
+ ---
518
+
519
+ **See**: [../README.md](../README.md) for project overview
520
+ `;
521
+ await fs.writeFile(path.join(basePath, 'legacy', 'README.md'), content);
522
+ }
523
+ }
524
+ //# sourceMappingURL=project-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-manager.js","sourceRoot":"","sources":["../../../src/core/project-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Project Structure Detector
3
+ *
4
+ * Automatically detects project management structure from:
5
+ * - Existing increments and work items
6
+ * - Source system metadata (Jira, ADO, GitHub)
7
+ * - Environment variables
8
+ *
9
+ * Supports various hierarchies:
10
+ * - Jira: Epic → Story → Sub-task
11
+ * - ADO: Epic → Feature → User Story → Task
12
+ * - GitHub: Milestone → Issue (or flat Issues)
13
+ * - Custom: Detected from patterns
14
+ */
15
+ /**
16
+ * Hierarchy levels:
17
+ * - FLAT: No hierarchy (GitHub issues, flat ADO)
18
+ * - SINGLE_PARENT: Milestone/Feature → Items
19
+ * - TWO_LEVEL: Epic → Stories → Tasks
20
+ * - THREE_LEVEL: Initiative → Epic → Feature → Stories
21
+ */
22
+ export type HierarchyLevel = 'flat' | 'single_parent' | 'two_level' | 'three_level';
23
+ /**
24
+ * Work item types vary by system
25
+ */
26
+ export interface WorkItemTypes {
27
+ topLevel?: string;
28
+ parentLevel?: string;
29
+ itemLevel: string;
30
+ subItemLevel?: string;
31
+ }
32
+ /**
33
+ * Grouping strategy for RFC organization
34
+ */
35
+ export type GroupingStrategy = 'by_type' | 'by_parent' | 'by_priority' | 'by_label' | 'flat' | 'custom';
36
+ /**
37
+ * Project structure configuration
38
+ */
39
+ export interface ProjectStructure {
40
+ source: 'jira' | 'ado' | 'github' | 'manual';
41
+ hierarchyLevel: HierarchyLevel;
42
+ workItemTypes: WorkItemTypes;
43
+ groupingStrategy: GroupingStrategy;
44
+ customGrouping?: (items: any[]) => Record<string, any[]>;
45
+ epicFieldName?: string;
46
+ featureFieldName?: string;
47
+ milestoneFieldName?: string;
48
+ }
49
+ /**
50
+ * Detected structure from analysis
51
+ */
52
+ export interface DetectedStructure {
53
+ structure: ProjectStructure;
54
+ confidence: number;
55
+ evidence: string[];
56
+ sampleIncrements: string[];
57
+ }
58
+ export declare class ProjectStructureDetector {
59
+ private projectRoot;
60
+ constructor(projectRoot?: string);
61
+ /**
62
+ * Detect project structure with pure auto-detection
63
+ */
64
+ detectStructure(): Promise<ProjectStructure>;
65
+ /**
66
+ * Auto-detect structure from existing increments
67
+ */
68
+ private autoDetectStructure;
69
+ /**
70
+ * Analyze increments to detect structure
71
+ */
72
+ private analyzeIncrements;
73
+ /**
74
+ * Infer work item types from source and hierarchy
75
+ */
76
+ private inferWorkItemTypes;
77
+ /**
78
+ * Infer grouping strategy from source and hierarchy
79
+ */
80
+ private inferGroupingStrategy;
81
+ /**
82
+ * Get default structure when no increments exist
83
+ */
84
+ private getDefaultStructure;
85
+ /**
86
+ * Get structure summary for display
87
+ */
88
+ getStructureSummary(structure: ProjectStructure): string;
89
+ private getHierarchyDescription;
90
+ private getGroupingDescription;
91
+ }
92
+ //# sourceMappingURL=project-structure-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-structure-detector.d.ts","sourceRoot":"","sources":["../../../src/core/project-structure-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,WAAW,GACX,aAAa,GACb,UAAU,GACV,MAAM,GACN,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC7C,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAGzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,WAAW,CAAS;gBAEhB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACU,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMzD;;OAEG;YACW,mBAAmB;IA2BjC;;OAEG;YACW,iBAAiB;IA2G/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAwB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM;IAO/D,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,sBAAsB;CAY/B"}