specweave 0.32.0 → 0.32.3

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 (347) hide show
  1. package/CLAUDE.md +215 -2
  2. package/README.md +22 -0
  3. package/bin/specweave.js +52 -1
  4. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts +100 -0
  5. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.d.ts.map +1 -0
  6. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js +291 -0
  7. package/dist/plugins/specweave-ado/lib/ado-duplicate-detector.js.map +1 -0
  8. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts +103 -0
  9. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.d.ts.map +1 -0
  10. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js +310 -0
  11. package/dist/plugins/specweave-jira/lib/jira-duplicate-detector.js.map +1 -0
  12. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts +126 -0
  13. package/dist/plugins/specweave-jira/lib/jira-permission-gate.d.ts.map +1 -0
  14. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js +207 -0
  15. package/dist/plugins/specweave-jira/lib/jira-permission-gate.js.map +1 -0
  16. package/dist/src/adapters/codex/README.md +1 -1
  17. package/dist/src/adapters/codex/adapter.js +1 -1
  18. package/dist/src/cli/commands/archive.d.ts +2 -0
  19. package/dist/src/cli/commands/archive.d.ts.map +1 -1
  20. package/dist/src/cli/commands/archive.js +33 -0
  21. package/dist/src/cli/commands/archive.js.map +1 -1
  22. package/dist/src/cli/commands/cache.d.ts +17 -0
  23. package/dist/src/cli/commands/cache.d.ts.map +1 -0
  24. package/dist/src/cli/commands/cache.js +126 -0
  25. package/dist/src/cli/commands/cache.js.map +1 -0
  26. package/dist/src/cli/commands/context.d.ts +92 -0
  27. package/dist/src/cli/commands/context.d.ts.map +1 -0
  28. package/dist/src/cli/commands/context.js +205 -0
  29. package/dist/src/cli/commands/context.js.map +1 -0
  30. package/dist/src/cli/commands/init.d.ts.map +1 -1
  31. package/dist/src/cli/commands/init.js +112 -70
  32. package/dist/src/cli/commands/init.js.map +1 -1
  33. package/dist/src/cli/commands/plan/increment-detector.js +2 -2
  34. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
  35. package/dist/src/cli/commands/sync-spec-commits.js +1 -1
  36. package/dist/src/cli/commands/sync-spec-commits.js.map +1 -1
  37. package/dist/src/cli/commands/sync-specs.js +2 -2
  38. package/dist/src/cli/commands/sync-specs.js.map +1 -1
  39. package/dist/src/cli/helpers/github/increment-profile-selector.js +1 -1
  40. package/dist/src/cli/helpers/github/increment-profile-selector.js.map +1 -1
  41. package/dist/src/cli/helpers/init/external-import.d.ts +3 -0
  42. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  43. package/dist/src/cli/helpers/init/external-import.js +17 -4
  44. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  45. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  46. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  47. package/dist/src/cli/helpers/init/index.js +2 -0
  48. package/dist/src/cli/helpers/init/index.js.map +1 -1
  49. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts +70 -0
  50. package/dist/src/cli/helpers/init/jira-ado-auto-detect.d.ts.map +1 -1
  51. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js +214 -4
  52. package/dist/src/cli/helpers/init/jira-ado-auto-detect.js.map +1 -1
  53. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts +4 -0
  54. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts.map +1 -1
  55. package/dist/src/cli/helpers/init/living-docs-preflight.js +34 -3
  56. package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
  57. package/dist/src/cli/helpers/init/testing-config.d.ts +3 -0
  58. package/dist/src/cli/helpers/init/testing-config.d.ts.map +1 -1
  59. package/dist/src/cli/helpers/init/testing-config.js +9 -2
  60. package/dist/src/cli/helpers/init/testing-config.js.map +1 -1
  61. package/dist/src/cli/helpers/init/translation-config.d.ts +3 -0
  62. package/dist/src/cli/helpers/init/translation-config.d.ts.map +1 -1
  63. package/dist/src/cli/helpers/init/translation-config.js +21 -4
  64. package/dist/src/cli/helpers/init/translation-config.js.map +1 -1
  65. package/dist/src/cli/helpers/init/wizard-navigation.d.ts +45 -0
  66. package/dist/src/cli/helpers/init/wizard-navigation.d.ts.map +1 -0
  67. package/dist/src/cli/helpers/init/wizard-navigation.js +97 -0
  68. package/dist/src/cli/helpers/init/wizard-navigation.js.map +1 -0
  69. package/dist/src/cli/workers/living-docs-worker.js +66 -1
  70. package/dist/src/cli/workers/living-docs-worker.js.map +1 -1
  71. package/dist/src/config/types.d.ts +203 -1208
  72. package/dist/src/config/types.d.ts.map +1 -1
  73. package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -1
  74. package/dist/src/core/discrepancy/increment-generator.js +5 -2
  75. package/dist/src/core/discrepancy/increment-generator.js.map +1 -1
  76. package/dist/src/core/increment/duplicate-detector.js +2 -2
  77. package/dist/src/core/increment/duplicate-detector.js.map +1 -1
  78. package/dist/src/core/increment/increment-archiver.d.ts +49 -4
  79. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  80. package/dist/src/core/increment/increment-archiver.js +123 -22
  81. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  82. package/dist/src/core/increment/increment-status.js +2 -2
  83. package/dist/src/core/increment/increment-status.js.map +1 -1
  84. package/dist/src/core/increment/increment-utils.d.ts +150 -0
  85. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  86. package/dist/src/core/increment/increment-utils.js +216 -4
  87. package/dist/src/core/increment/increment-utils.js.map +1 -1
  88. package/dist/src/core/increment/metadata-validator.js +1 -1
  89. package/dist/src/core/increment/metadata-validator.js.map +1 -1
  90. package/dist/src/core/living-docs/feature-archiver.d.ts +4 -0
  91. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
  92. package/dist/src/core/living-docs/feature-archiver.js +32 -10
  93. package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
  94. package/dist/src/core/living-docs/feature-id-manager.d.ts.map +1 -1
  95. package/dist/src/core/living-docs/feature-id-manager.js +8 -4
  96. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  97. package/dist/src/core/living-docs/governance/ecosystem-detector.d.ts +38 -0
  98. package/dist/src/core/living-docs/governance/ecosystem-detector.d.ts.map +1 -0
  99. package/dist/src/core/living-docs/governance/ecosystem-detector.js +325 -0
  100. package/dist/src/core/living-docs/governance/ecosystem-detector.js.map +1 -0
  101. package/dist/src/core/living-docs/governance/frontend-standards-parser.d.ts +74 -0
  102. package/dist/src/core/living-docs/governance/frontend-standards-parser.d.ts.map +1 -0
  103. package/dist/src/core/living-docs/governance/frontend-standards-parser.js +366 -0
  104. package/dist/src/core/living-docs/governance/frontend-standards-parser.js.map +1 -0
  105. package/dist/src/core/living-docs/governance/go-standards-parser.d.ts +64 -0
  106. package/dist/src/core/living-docs/governance/go-standards-parser.d.ts.map +1 -0
  107. package/dist/src/core/living-docs/governance/go-standards-parser.js +229 -0
  108. package/dist/src/core/living-docs/governance/go-standards-parser.js.map +1 -0
  109. package/dist/src/core/living-docs/governance/index.d.ts +50 -0
  110. package/dist/src/core/living-docs/governance/index.d.ts.map +1 -0
  111. package/dist/src/core/living-docs/governance/index.js +56 -0
  112. package/dist/src/core/living-docs/governance/index.js.map +1 -0
  113. package/dist/src/core/living-docs/governance/java-standards-parser.d.ts +89 -0
  114. package/dist/src/core/living-docs/governance/java-standards-parser.d.ts.map +1 -0
  115. package/dist/src/core/living-docs/governance/java-standards-parser.js +356 -0
  116. package/dist/src/core/living-docs/governance/java-standards-parser.js.map +1 -0
  117. package/dist/src/core/living-docs/governance/python-standards-parser.d.ts +83 -0
  118. package/dist/src/core/living-docs/governance/python-standards-parser.d.ts.map +1 -0
  119. package/dist/src/core/living-docs/governance/python-standards-parser.js +347 -0
  120. package/dist/src/core/living-docs/governance/python-standards-parser.js.map +1 -0
  121. package/dist/src/core/living-docs/governance/standards-generator.d.ts +38 -0
  122. package/dist/src/core/living-docs/governance/standards-generator.d.ts.map +1 -0
  123. package/dist/src/core/living-docs/governance/standards-generator.js +476 -0
  124. package/dist/src/core/living-docs/governance/standards-generator.js.map +1 -0
  125. package/dist/src/core/living-docs/hierarchy-mapper.js +3 -3
  126. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  127. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts +18 -0
  128. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts.map +1 -0
  129. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js +299 -0
  130. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js.map +1 -0
  131. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.d.ts +15 -0
  132. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.d.ts.map +1 -0
  133. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js +138 -0
  134. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js.map +1 -0
  135. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.d.ts +24 -0
  136. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.d.ts.map +1 -0
  137. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.js +198 -0
  138. package/dist/src/core/living-docs/intelligent-analyzer/file-sampler.js.map +1 -0
  139. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.d.ts +17 -0
  140. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.d.ts.map +1 -0
  141. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.js +241 -0
  142. package/dist/src/core/living-docs/intelligent-analyzer/inconsistency-detector.js.map +1 -0
  143. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts +28 -0
  144. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts.map +1 -0
  145. package/dist/src/core/living-docs/intelligent-analyzer/index.js +197 -0
  146. package/dist/src/core/living-docs/intelligent-analyzer/index.js.map +1 -0
  147. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts +22 -0
  148. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts.map +1 -0
  149. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js +482 -0
  150. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js.map +1 -0
  151. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.d.ts +42 -0
  152. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.d.ts.map +1 -0
  153. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.js +343 -0
  154. package/dist/src/core/living-docs/intelligent-analyzer/strategy-generator.js.map +1 -0
  155. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts +190 -0
  156. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts.map +1 -0
  157. package/dist/src/core/living-docs/intelligent-analyzer/types.js +7 -0
  158. package/dist/src/core/living-docs/intelligent-analyzer/types.js.map +1 -0
  159. package/dist/src/core/living-docs/living-docs-sync.d.ts +11 -3
  160. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  161. package/dist/src/core/living-docs/living-docs-sync.js +53 -10
  162. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  163. package/dist/src/core/living-docs/module-analyzer.d.ts +22 -0
  164. package/dist/src/core/living-docs/module-analyzer.d.ts.map +1 -1
  165. package/dist/src/core/living-docs/module-analyzer.js +123 -19
  166. package/dist/src/core/living-docs/module-analyzer.js.map +1 -1
  167. package/dist/src/core/llm/provider-factory.js +2 -2
  168. package/dist/src/core/llm/provider-factory.js.map +1 -1
  169. package/dist/src/core/llm/providers/anthropic-provider.js +1 -1
  170. package/dist/src/core/llm/providers/bedrock-provider.d.ts.map +1 -1
  171. package/dist/src/core/llm/providers/bedrock-provider.js +8 -4
  172. package/dist/src/core/llm/providers/bedrock-provider.js.map +1 -1
  173. package/dist/src/core/sync/spec-increment-mapper.js +3 -3
  174. package/dist/src/core/sync/spec-increment-mapper.js.map +1 -1
  175. package/dist/src/importers/item-converter.d.ts +25 -0
  176. package/dist/src/importers/item-converter.d.ts.map +1 -1
  177. package/dist/src/importers/item-converter.js +135 -5
  178. package/dist/src/importers/item-converter.js.map +1 -1
  179. package/dist/src/importers/jira-importer.d.ts +14 -0
  180. package/dist/src/importers/jira-importer.d.ts.map +1 -1
  181. package/dist/src/importers/jira-importer.js +75 -0
  182. package/dist/src/importers/jira-importer.js.map +1 -1
  183. package/dist/src/init/architecture/types.d.ts +33 -140
  184. package/dist/src/init/architecture/types.d.ts.map +1 -1
  185. package/dist/src/init/compliance/types.d.ts +30 -27
  186. package/dist/src/init/compliance/types.d.ts.map +1 -1
  187. package/dist/src/init/repo/types.d.ts +11 -34
  188. package/dist/src/init/repo/types.d.ts.map +1 -1
  189. package/dist/src/init/research/src/config/types.d.ts +15 -82
  190. package/dist/src/init/research/src/config/types.d.ts.map +1 -1
  191. package/dist/src/init/research/types.d.ts +38 -93
  192. package/dist/src/init/research/types.d.ts.map +1 -1
  193. package/dist/src/init/team/types.d.ts +4 -42
  194. package/dist/src/init/team/types.d.ts.map +1 -1
  195. package/dist/src/integrations/jira/jira-token-provider.d.ts +93 -0
  196. package/dist/src/integrations/jira/jira-token-provider.d.ts.map +1 -0
  197. package/dist/src/integrations/jira/jira-token-provider.js +160 -0
  198. package/dist/src/integrations/jira/jira-token-provider.js.map +1 -0
  199. package/dist/src/sync/ado-reconciler.d.ts +92 -0
  200. package/dist/src/sync/ado-reconciler.d.ts.map +1 -0
  201. package/dist/src/sync/ado-reconciler.js +335 -0
  202. package/dist/src/sync/ado-reconciler.js.map +1 -0
  203. package/dist/src/sync/jira-reconciler.d.ts +106 -0
  204. package/dist/src/sync/jira-reconciler.d.ts.map +1 -0
  205. package/dist/src/sync/jira-reconciler.js +405 -0
  206. package/dist/src/sync/jira-reconciler.js.map +1 -0
  207. package/dist/src/types/dashboard-cache.d.ts +181 -0
  208. package/dist/src/types/dashboard-cache.d.ts.map +1 -0
  209. package/dist/src/types/dashboard-cache.js +65 -0
  210. package/dist/src/types/dashboard-cache.js.map +1 -0
  211. package/dist/src/types/model-selection.d.ts +6 -4
  212. package/dist/src/types/model-selection.d.ts.map +1 -1
  213. package/dist/src/types/model-selection.js +3 -1
  214. package/dist/src/types/model-selection.js.map +1 -1
  215. package/dist/src/utils/docs-validator.d.ts +131 -0
  216. package/dist/src/utils/docs-validator.d.ts.map +1 -0
  217. package/dist/src/utils/docs-validator.js +529 -0
  218. package/dist/src/utils/docs-validator.js.map +1 -0
  219. package/dist/src/utils/external-tool-drift-detector.d.ts +1 -1
  220. package/dist/src/utils/external-tool-drift-detector.d.ts.map +1 -1
  221. package/dist/src/utils/external-tool-drift-detector.js +5 -4
  222. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  223. package/dist/src/utils/feature-id-collision.js +1 -1
  224. package/dist/src/utils/feature-id-collision.js.map +1 -1
  225. package/dist/src/utils/feature-id-derivation.d.ts +8 -3
  226. package/dist/src/utils/feature-id-derivation.d.ts.map +1 -1
  227. package/dist/src/utils/feature-id-derivation.js +14 -6
  228. package/dist/src/utils/feature-id-derivation.js.map +1 -1
  229. package/dist/src/utils/html-to-mdx.d.ts +1 -0
  230. package/dist/src/utils/html-to-mdx.d.ts.map +1 -1
  231. package/dist/src/utils/html-to-mdx.js +43 -5
  232. package/dist/src/utils/html-to-mdx.js.map +1 -1
  233. package/dist/src/utils/model-selection.d.ts +3 -4
  234. package/dist/src/utils/model-selection.d.ts.map +1 -1
  235. package/dist/src/utils/model-selection.js +3 -4
  236. package/dist/src/utils/model-selection.js.map +1 -1
  237. package/package.json +1 -1
  238. package/plugins/specweave/agents/code-standards-detective/AGENT.md +48 -0
  239. package/plugins/specweave/agents/pm/AGENT.md +10 -7
  240. package/plugins/specweave/commands/specweave-archive-features.md +5 -7
  241. package/plugins/specweave/commands/specweave-archive.md +2 -1
  242. package/plugins/specweave/commands/specweave-costs.md +4 -4
  243. package/plugins/specweave/commands/specweave-do.md +44 -10
  244. package/plugins/specweave/commands/specweave-done.md +109 -0
  245. package/plugins/specweave/commands/specweave-import-external.md +45 -18
  246. package/plugins/specweave/commands/specweave-increment.md +331 -33
  247. package/plugins/specweave/commands/specweave-jobs.md +2 -2
  248. package/plugins/specweave/commands/specweave-progress.md +4 -4
  249. package/plugins/specweave/commands/specweave-restore-feature.md +5 -4
  250. package/plugins/specweave/commands/specweave-sync-docs.md +1 -1
  251. package/plugins/specweave/commands/specweave-sync-specs.md +216 -322
  252. package/plugins/specweave/commands/specweave-validate-features.md +13 -8
  253. package/plugins/specweave/commands/specweave-validate.md +27 -1
  254. package/plugins/specweave/hooks/docs-changed.sh.backup +79 -0
  255. package/plugins/specweave/hooks/hooks.json +43 -4
  256. package/plugins/specweave/hooks/human-input-required.sh.backup +75 -0
  257. package/plugins/specweave/hooks/lib/common-setup.sh +375 -0
  258. package/plugins/specweave/hooks/lib/crash-prevention.sh +336 -0
  259. package/plugins/specweave/hooks/post-first-increment.sh.backup +61 -0
  260. package/plugins/specweave/hooks/post-increment-change.sh.backup +98 -0
  261. package/plugins/specweave/hooks/post-increment-completion.sh.backup +231 -0
  262. package/plugins/specweave/hooks/post-increment-planning.sh.backup +1048 -0
  263. package/plugins/specweave/hooks/post-increment-status-change.sh.backup +147 -0
  264. package/plugins/specweave/hooks/post-spec-update.sh.backup +158 -0
  265. package/plugins/specweave/hooks/post-task-completion.sh +4 -23
  266. package/plugins/specweave/hooks/post-user-story-complete.sh.backup +179 -0
  267. package/plugins/specweave/hooks/pre-command-deduplication.sh +1 -6
  268. package/plugins/specweave/hooks/pre-command-deduplication.sh.backup +83 -0
  269. package/plugins/specweave/hooks/pre-implementation.sh.backup +67 -0
  270. package/plugins/specweave/hooks/pre-task-completion.sh +8 -37
  271. package/plugins/specweave/hooks/pre-task-completion.sh.backup +194 -0
  272. package/plugins/specweave/hooks/pre-tool-use.sh +2 -11
  273. package/plugins/specweave/hooks/pre-tool-use.sh.backup +133 -0
  274. package/plugins/specweave/hooks/spec-project-validator.sh +80 -25
  275. package/plugins/specweave/hooks/universal/dispatcher.mjs +135 -42
  276. package/plugins/specweave/hooks/universal/fail-fast-wrapper.sh +183 -0
  277. package/plugins/specweave/hooks/user-prompt-submit.sh +140 -38
  278. package/plugins/specweave/hooks/user-prompt-submit.sh.backup +386 -0
  279. package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +12 -0
  280. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +89 -0
  281. package/plugins/specweave/hooks/v2/guards/bash-file-guard.sh +211 -0
  282. package/plugins/specweave/hooks/v2/guards/bash-file-guard.test.sh +163 -0
  283. package/plugins/specweave/hooks/v2/guards/completion-guard.sh +26 -28
  284. package/plugins/specweave/hooks/v2/guards/features-folder-guard.sh +50 -0
  285. package/plugins/specweave/hooks/v2/guards/increment-duplicate-guard.sh +135 -0
  286. package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js +2 -2
  287. package/plugins/specweave/lib/vendor/core/increment/duplicate-detector.js.map +1 -1
  288. package/plugins/specweave/scripts/README.md +166 -0
  289. package/plugins/specweave/scripts/cleanup-state.sh +142 -0
  290. package/plugins/specweave/scripts/force-kill.sh +142 -0
  291. package/plugins/specweave/scripts/jobs.js +171 -0
  292. package/plugins/specweave/scripts/progress.js +170 -0
  293. package/plugins/specweave/scripts/read-costs.sh +132 -0
  294. package/plugins/specweave/scripts/read-jobs.sh +324 -0
  295. package/plugins/specweave/scripts/read-progress.sh +185 -0
  296. package/plugins/specweave/scripts/read-status.sh +146 -0
  297. package/plugins/specweave/scripts/read-workflow.sh +173 -0
  298. package/plugins/specweave/scripts/rebuild-dashboard-cache.sh +327 -0
  299. package/plugins/specweave/scripts/session-watchdog.sh +192 -0
  300. package/plugins/specweave/scripts/status.js +154 -0
  301. package/plugins/specweave/scripts/update-dashboard-cache.sh +281 -0
  302. package/plugins/specweave/skills/code-standards-analyzer/SKILL.md +58 -6
  303. package/plugins/specweave/skills/increment-planner/SKILL.md +388 -48
  304. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +17 -7
  305. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +6 -1
  306. package/plugins/specweave/skills/increment-planner/templates/tasks-multi-project.md +1 -1
  307. package/plugins/specweave/skills/increment-planner/templates/tasks-single-project.md +1 -1
  308. package/plugins/specweave/skills/instant-status/SKILL.md +70 -0
  309. package/plugins/specweave-ado/commands/cleanup-duplicates.md +212 -0
  310. package/plugins/specweave-ado/commands/reconcile.md +120 -0
  311. package/plugins/specweave-ado/hooks/post-living-docs-update.sh.backup +353 -0
  312. package/plugins/specweave-ado/hooks/post-task-completion.sh.backup +172 -0
  313. package/plugins/specweave-ado/lib/ado-duplicate-detector.js +279 -0
  314. package/plugins/specweave-ado/lib/ado-duplicate-detector.ts +407 -0
  315. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
  316. package/plugins/specweave-docs/commands/build.md +32 -4
  317. package/plugins/specweave-docs/commands/preview.md +43 -1
  318. package/plugins/specweave-docs/commands/validate.md +250 -0
  319. package/plugins/specweave-github/agents/github-manager/AGENT.md +2 -2
  320. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +1262 -0
  321. package/plugins/specweave-github/hooks/post-task-completion.sh.backup +258 -0
  322. package/plugins/specweave-github/lib/enhanced-github-sync.js +220 -0
  323. package/plugins/specweave-infrastructure/skills/hetzner-provisioner/README.md +1 -1
  324. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +1 -1
  325. package/plugins/specweave-jira/agents/jira-multi-project-mapper/AGENT.md +530 -0
  326. package/plugins/specweave-jira/agents/jira-sync-judge/AGENT.md +438 -0
  327. package/plugins/specweave-jira/commands/cleanup-duplicates.md +219 -0
  328. package/plugins/specweave-jira/commands/close.md +297 -0
  329. package/plugins/specweave-jira/commands/create.md +198 -0
  330. package/plugins/specweave-jira/commands/reconcile.md +123 -0
  331. package/plugins/specweave-jira/commands/status.md +215 -0
  332. package/plugins/specweave-jira/hooks/post-task-completion.sh.backup +172 -0
  333. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +134 -0
  334. package/plugins/specweave-jira/lib/jira-duplicate-detector.js +296 -0
  335. package/plugins/specweave-jira/lib/jira-duplicate-detector.ts +434 -0
  336. package/plugins/specweave-jira/lib/jira-permission-gate.js +160 -0
  337. package/plugins/specweave-jira/lib/jira-permission-gate.ts +276 -0
  338. package/plugins/specweave-jira/lib/jira-profile-resolver.js +222 -0
  339. package/plugins/specweave-jira/lib/jira-profile-resolver.ts +427 -0
  340. package/plugins/specweave-jira/reference/jira-specweave-mapping.md +16 -11
  341. package/plugins/specweave-release/commands/specweave-release-npm.md +140 -14
  342. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +1254 -0
  343. package/plugins/specweave-release/hooks/post-task-completion.sh.backup +110 -0
  344. package/plugins/specweave/hooks/post-edit-spec.sh +0 -265
  345. package/plugins/specweave/hooks/post-write-spec.sh +0 -267
  346. package/plugins/specweave/hooks/pre-edit-spec.sh +0 -151
  347. package/plugins/specweave/hooks/pre-write-spec.sh +0 -151
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-standards-parser.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/go-standards-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Governance Module - Multi-Technology Coding Standards Detection
3
+ *
4
+ * This module provides comprehensive coding standards detection for polyglot codebases.
5
+ * It detects and documents standards for TypeScript, Python, Go, Java, Kotlin, .NET,
6
+ * Rust, React, Angular, Vue, and Svelte.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import {
11
+ * detectEcosystems,
12
+ * parsePythonStandards,
13
+ * parseGoStandards,
14
+ * parseJavaStandards,
15
+ * parseFrontendStandards,
16
+ * generateStandardsMarkdown,
17
+ * generateUnifiedSummary
18
+ * } from './governance/index.js';
19
+ *
20
+ * // 1. Detect all ecosystems in the project
21
+ * const ecosystems = await detectEcosystems('/path/to/project');
22
+ *
23
+ * // 2. Parse standards for each ecosystem
24
+ * const files: GeneratedFile[] = [];
25
+ * for (const eco of ecosystems) {
26
+ * let standards;
27
+ * switch (eco.name) {
28
+ * case 'python':
29
+ * standards = await parsePythonStandards(projectPath, eco.configFiles);
30
+ * break;
31
+ * case 'go':
32
+ * standards = await parseGoStandards(projectPath, eco.configFiles);
33
+ * break;
34
+ * // ... etc
35
+ * }
36
+ * const markdown = generateStandardsMarkdown(eco.name, standards);
37
+ * files.push({ path: `governance/standards/${eco.name}.md`, content: markdown });
38
+ * }
39
+ *
40
+ * // 3. Generate unified summary
41
+ * const summary = generateUnifiedSummary(ecosystems, files);
42
+ * ```
43
+ */
44
+ export { EcosystemDetector, detectEcosystems, type DetectedEcosystem, type EcosystemName, type ConfidenceLevel, type EcosystemDetectorOptions, } from './ecosystem-detector.js';
45
+ export { PythonStandardsParser, parsePythonStandards, type PythonStandards, type FormatterConfig, type LinterConfig, type TypeCheckerConfig, type ImportSorterConfig, type NamingConventions, type DocstringConfig, type PythonStandardsParserOptions, } from './python-standards-parser.js';
46
+ export { GoStandardsParser, parseGoStandards, type GoStandards, type GolangciLintConfig, type StaticcheckConfig, type GoNamingConventions, type ErrorHandlingConfig, type FormattingConfig as GoFormattingConfig, type GoStandardsParserOptions, } from './go-standards-parser.js';
47
+ export { JavaStandardsParser, parseJavaStandards, type JavaStandards, type CheckstyleConfig, type CheckstyleRule, type PmdConfig, type SpotbugsConfig, type KotlinConfig, type DetektConfig, type KtlintConfig, type JavaNamingConventions, type JavaFormattingConfig, type JavaStandardsParserOptions, } from './java-standards-parser.js';
48
+ export { FrontendStandardsParser, parseFrontendStandards, type FrontendStandards, type FrontendFramework, type StateManagementConfig, type CssMethodologyConfig, type TestingConfig, type BundlerConfig, type ComponentNamingConfig, type HooksConfig, type RoutingConfig, type FrontendStandardsParserOptions, } from './frontend-standards-parser.js';
49
+ export { StandardsGenerator, generateStandardsMarkdown, generateUnifiedSummary, type GeneratedFile, type StandardsGeneratorOptions, } from './standards-generator.js';
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAGH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,4BAA4B,GAClC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,IAAI,kBAAkB,EAC3C,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,8BAA8B,GACpC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Governance Module - Multi-Technology Coding Standards Detection
3
+ *
4
+ * This module provides comprehensive coding standards detection for polyglot codebases.
5
+ * It detects and documents standards for TypeScript, Python, Go, Java, Kotlin, .NET,
6
+ * Rust, React, Angular, Vue, and Svelte.
7
+ *
8
+ * Usage:
9
+ * ```typescript
10
+ * import {
11
+ * detectEcosystems,
12
+ * parsePythonStandards,
13
+ * parseGoStandards,
14
+ * parseJavaStandards,
15
+ * parseFrontendStandards,
16
+ * generateStandardsMarkdown,
17
+ * generateUnifiedSummary
18
+ * } from './governance/index.js';
19
+ *
20
+ * // 1. Detect all ecosystems in the project
21
+ * const ecosystems = await detectEcosystems('/path/to/project');
22
+ *
23
+ * // 2. Parse standards for each ecosystem
24
+ * const files: GeneratedFile[] = [];
25
+ * for (const eco of ecosystems) {
26
+ * let standards;
27
+ * switch (eco.name) {
28
+ * case 'python':
29
+ * standards = await parsePythonStandards(projectPath, eco.configFiles);
30
+ * break;
31
+ * case 'go':
32
+ * standards = await parseGoStandards(projectPath, eco.configFiles);
33
+ * break;
34
+ * // ... etc
35
+ * }
36
+ * const markdown = generateStandardsMarkdown(eco.name, standards);
37
+ * files.push({ path: `governance/standards/${eco.name}.md`, content: markdown });
38
+ * }
39
+ *
40
+ * // 3. Generate unified summary
41
+ * const summary = generateUnifiedSummary(ecosystems, files);
42
+ * ```
43
+ */
44
+ // Ecosystem Detection
45
+ export { EcosystemDetector, detectEcosystems, } from './ecosystem-detector.js';
46
+ // Python Standards
47
+ export { PythonStandardsParser, parsePythonStandards, } from './python-standards-parser.js';
48
+ // Go Standards
49
+ export { GoStandardsParser, parseGoStandards, } from './go-standards-parser.js';
50
+ // Java Standards
51
+ export { JavaStandardsParser, parseJavaStandards, } from './java-standards-parser.js';
52
+ // Frontend Standards (React, Angular, Vue, Svelte)
53
+ export { FrontendStandardsParser, parseFrontendStandards, } from './frontend-standards-parser.js';
54
+ // Markdown Generation
55
+ export { StandardsGenerator, generateStandardsMarkdown, generateUnifiedSummary, } from './standards-generator.js';
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAKjB,MAAM,yBAAyB,CAAC;AAEjC,mBAAmB;AACnB,OAAO,EACL,qBAAqB,EACrB,oBAAoB,GASrB,MAAM,8BAA8B,CAAC;AAEtC,eAAe;AACf,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GAQjB,MAAM,0BAA0B,CAAC;AAElC,iBAAiB;AACjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,GAYnB,MAAM,4BAA4B,CAAC;AAEpC,mDAAmD;AACnD,OAAO,EACL,uBAAuB,EACvB,sBAAsB,GAWvB,MAAM,gCAAgC,CAAC;AAExC,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,GAGvB,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Java Standards Parser - Parse Java/Kotlin config files for coding standards
3
+ *
4
+ * Supports: checkstyle.xml, pmd.xml, spotbugs.xml, .editorconfig, detekt.yml
5
+ */
6
+ import { Logger } from '../../../utils/logger.js';
7
+ export interface JavaStandards {
8
+ javaVersion?: string;
9
+ buildTool: 'maven' | 'gradle' | 'unknown';
10
+ checkstyle?: CheckstyleConfig;
11
+ pmd?: PmdConfig;
12
+ spotbugs?: SpotbugsConfig;
13
+ kotlin?: KotlinConfig;
14
+ namingConventions: JavaNamingConventions;
15
+ formatting: JavaFormattingConfig;
16
+ warnings: string[];
17
+ }
18
+ export interface CheckstyleConfig {
19
+ enabled: boolean;
20
+ configStyle: 'google' | 'sun' | 'custom';
21
+ rules: CheckstyleRule[];
22
+ suppressions: string[];
23
+ }
24
+ export interface CheckstyleRule {
25
+ module: string;
26
+ properties: Record<string, string>;
27
+ }
28
+ export interface PmdConfig {
29
+ enabled: boolean;
30
+ rulesets: string[];
31
+ excludedRules: string[];
32
+ minimumPriority?: number;
33
+ }
34
+ export interface SpotbugsConfig {
35
+ enabled: boolean;
36
+ effort: 'min' | 'default' | 'max';
37
+ reportLevel: 'low' | 'medium' | 'high';
38
+ excludeFilterFile?: string;
39
+ }
40
+ export interface KotlinConfig {
41
+ enabled: boolean;
42
+ detekt?: DetektConfig;
43
+ ktlint?: KtlintConfig;
44
+ }
45
+ export interface DetektConfig {
46
+ enabled: boolean;
47
+ configFile?: string;
48
+ rules: string[];
49
+ }
50
+ export interface KtlintConfig {
51
+ enabled: boolean;
52
+ androidMode: boolean;
53
+ }
54
+ export interface JavaNamingConventions {
55
+ classes: string;
56
+ methods: string;
57
+ constants: string;
58
+ packages: string;
59
+ interfaces: string;
60
+ typeParameters: string;
61
+ }
62
+ export interface JavaFormattingConfig {
63
+ indentation: 'spaces' | 'tabs';
64
+ indentSize: number;
65
+ maxLineLength: number;
66
+ braceStyle: 'same_line' | 'next_line';
67
+ }
68
+ export interface JavaStandardsParserOptions {
69
+ logger?: Logger;
70
+ }
71
+ export declare class JavaStandardsParser {
72
+ private logger;
73
+ constructor(options?: JavaStandardsParserOptions);
74
+ parse(projectPath: string, configFiles: string[]): Promise<JavaStandards>;
75
+ private parsePomXml;
76
+ private parseGradleBuild;
77
+ private parseCheckstyle;
78
+ private parsePmd;
79
+ private parseSpotbugs;
80
+ private parseEditorconfig;
81
+ private parseDetekt;
82
+ private extractEditorconfigSection;
83
+ private fileExists;
84
+ }
85
+ /**
86
+ * Convenience function for quick Java standards parsing
87
+ */
88
+ export declare function parseJavaStandards(projectPath: string, configFiles: string[], options?: JavaStandardsParserOptions): Promise<JavaStandards>;
89
+ //# sourceMappingURL=java-standards-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-standards-parser.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/java-standards-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,MAAM,EAAiB,MAAM,0BAA0B,CAAC;AAKjE,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,EAAE,qBAAqB,CAAC;IACzC,UAAU,EAAE,oBAAoB,CAAC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC;CACvC;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,0BAA+B;IAI9C,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;YAoEjE,WAAW;YA6CX,gBAAgB;YAkDhB,eAAe;YAkEf,QAAQ;YA4CR,aAAa;YAoBb,iBAAiB;YAkCjB,WAAW;IA0CzB,OAAO,CAAC,0BAA0B;YAOpB,UAAU;CAQzB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EAAE,EACrB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,aAAa,CAAC,CAGxB"}
@@ -0,0 +1,356 @@
1
+ /**
2
+ * Java Standards Parser - Parse Java/Kotlin config files for coding standards
3
+ *
4
+ * Supports: checkstyle.xml, pmd.xml, spotbugs.xml, .editorconfig, detekt.yml
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { promisify } from 'util';
9
+ import { consoleLogger } from '../../../utils/logger.js';
10
+ const readFile = promisify(fs.readFile);
11
+ const stat = promisify(fs.stat);
12
+ export class JavaStandardsParser {
13
+ constructor(options = {}) {
14
+ this.logger = options.logger ?? consoleLogger;
15
+ }
16
+ async parse(projectPath, configFiles) {
17
+ const warnings = [];
18
+ const result = {
19
+ buildTool: 'unknown',
20
+ namingConventions: {
21
+ classes: 'PascalCase (UpperCamelCase)',
22
+ methods: 'camelCase (lowerCamelCase)',
23
+ constants: 'UPPER_SNAKE_CASE',
24
+ packages: 'all.lowercase.dotted',
25
+ interfaces: 'PascalCase (often prefixed with I)',
26
+ typeParameters: 'Single uppercase letter (T, E, K, V)',
27
+ },
28
+ formatting: {
29
+ indentation: 'spaces',
30
+ indentSize: 4,
31
+ maxLineLength: 120,
32
+ braceStyle: 'same_line',
33
+ },
34
+ warnings,
35
+ };
36
+ // Detect build tool
37
+ if (configFiles.includes('pom.xml')) {
38
+ result.buildTool = 'maven';
39
+ await this.parsePomXml(path.join(projectPath, 'pom.xml'), result);
40
+ }
41
+ else if (configFiles.includes('build.gradle') || configFiles.includes('build.gradle.kts')) {
42
+ result.buildTool = 'gradle';
43
+ const gradleFile = configFiles.includes('build.gradle.kts')
44
+ ? 'build.gradle.kts'
45
+ : 'build.gradle';
46
+ await this.parseGradleBuild(path.join(projectPath, gradleFile), result);
47
+ }
48
+ // Parse checkstyle config
49
+ const checkstyleFile = configFiles.find((f) => f === 'checkstyle.xml' || f === 'checkstyle/checkstyle.xml');
50
+ if (checkstyleFile) {
51
+ await this.parseCheckstyle(path.join(projectPath, checkstyleFile), result);
52
+ }
53
+ // Parse PMD config
54
+ const pmdFile = configFiles.find((f) => f === 'pmd.xml' || f === 'pmd/pmd.xml');
55
+ if (pmdFile) {
56
+ await this.parsePmd(path.join(projectPath, pmdFile), result);
57
+ }
58
+ // Parse SpotBugs config
59
+ if (configFiles.includes('spotbugs.xml') || configFiles.includes('spotbugs-exclude.xml')) {
60
+ const spotbugsFile = configFiles.includes('spotbugs.xml')
61
+ ? 'spotbugs.xml'
62
+ : 'spotbugs-exclude.xml';
63
+ await this.parseSpotbugs(path.join(projectPath, spotbugsFile), result);
64
+ }
65
+ // Parse .editorconfig for formatting preferences
66
+ if (configFiles.includes('.editorconfig')) {
67
+ await this.parseEditorconfig(path.join(projectPath, '.editorconfig'), result);
68
+ }
69
+ // Parse Kotlin config (detekt)
70
+ if (configFiles.includes('detekt.yml')) {
71
+ await this.parseDetekt(path.join(projectPath, 'detekt.yml'), result);
72
+ }
73
+ return result;
74
+ }
75
+ async parsePomXml(filePath, result) {
76
+ try {
77
+ const content = await readFile(filePath, 'utf-8');
78
+ // Extract Java version
79
+ const javaVersionMatch = content.match(/<java\.version>([^<]+)<\/java\.version>/);
80
+ const mavenCompilerSource = content.match(/<maven\.compiler\.source>([^<]+)<\/maven\.compiler\.source>/);
81
+ result.javaVersion = javaVersionMatch?.[1] ?? mavenCompilerSource?.[1];
82
+ // Check for checkstyle plugin
83
+ if (content.includes('maven-checkstyle-plugin')) {
84
+ result.checkstyle = result.checkstyle ?? {
85
+ enabled: true,
86
+ configStyle: 'custom',
87
+ rules: [],
88
+ suppressions: [],
89
+ };
90
+ }
91
+ // Check for PMD plugin
92
+ if (content.includes('maven-pmd-plugin')) {
93
+ result.pmd = result.pmd ?? {
94
+ enabled: true,
95
+ rulesets: [],
96
+ excludedRules: [],
97
+ };
98
+ }
99
+ // Check for SpotBugs plugin
100
+ if (content.includes('spotbugs-maven-plugin')) {
101
+ result.spotbugs = result.spotbugs ?? {
102
+ enabled: true,
103
+ effort: 'default',
104
+ reportLevel: 'medium',
105
+ };
106
+ }
107
+ this.logger.debug(`Parsed pom.xml: Java ${result.javaVersion}`);
108
+ }
109
+ catch (error) {
110
+ result.warnings.push(`Failed to parse pom.xml: ${error}`);
111
+ }
112
+ }
113
+ async parseGradleBuild(filePath, result) {
114
+ try {
115
+ const content = await readFile(filePath, 'utf-8');
116
+ // Extract Java version
117
+ const sourceCompatMatch = content.match(/sourceCompatibility\s*=\s*['"]?(\d+)['"]?/);
118
+ const javaVersionMatch = content.match(/JavaVersion\.VERSION_(\d+)/);
119
+ result.javaVersion = sourceCompatMatch?.[1] ?? javaVersionMatch?.[1];
120
+ // Check for checkstyle plugin
121
+ if (content.includes('checkstyle')) {
122
+ result.checkstyle = result.checkstyle ?? {
123
+ enabled: true,
124
+ configStyle: 'custom',
125
+ rules: [],
126
+ suppressions: [],
127
+ };
128
+ }
129
+ // Check for PMD plugin
130
+ if (content.includes('pmd')) {
131
+ result.pmd = result.pmd ?? {
132
+ enabled: true,
133
+ rulesets: [],
134
+ excludedRules: [],
135
+ };
136
+ }
137
+ // Check for SpotBugs plugin
138
+ if (content.includes('spotbugs')) {
139
+ result.spotbugs = result.spotbugs ?? {
140
+ enabled: true,
141
+ effort: 'default',
142
+ reportLevel: 'medium',
143
+ };
144
+ }
145
+ // Check for Kotlin
146
+ if (filePath.endsWith('.kts') || content.includes('kotlin')) {
147
+ result.kotlin = result.kotlin ?? {
148
+ enabled: true,
149
+ };
150
+ }
151
+ this.logger.debug(`Parsed Gradle build: Java ${result.javaVersion}`);
152
+ }
153
+ catch (error) {
154
+ result.warnings.push(`Failed to parse Gradle build file: ${error}`);
155
+ }
156
+ }
157
+ async parseCheckstyle(filePath, result) {
158
+ try {
159
+ const content = await readFile(filePath, 'utf-8');
160
+ const rules = [];
161
+ const suppressions = [];
162
+ let configStyle = 'custom';
163
+ // Detect style based on content
164
+ if (content.includes('google_checks') || content.includes('GoogleStyle')) {
165
+ configStyle = 'google';
166
+ }
167
+ else if (content.includes('sun_checks')) {
168
+ configStyle = 'sun';
169
+ }
170
+ // Parse modules (simplified XML parsing)
171
+ const moduleRegex = /<module\s+name="([^"]+)"([^>]*>[\s\S]*?<\/module>|[^>]*\/>)/g;
172
+ let match;
173
+ while ((match = moduleRegex.exec(content)) !== null) {
174
+ const moduleName = match[1];
175
+ const moduleContent = match[2];
176
+ const properties = {};
177
+ // Extract properties
178
+ const propRegex = /<property\s+name="([^"]+)"\s+value="([^"]+)"/g;
179
+ let propMatch;
180
+ while ((propMatch = propRegex.exec(moduleContent)) !== null) {
181
+ properties[propMatch[1]] = propMatch[2];
182
+ }
183
+ // Skip Checker and TreeWalker modules (containers)
184
+ if (moduleName !== 'Checker' && moduleName !== 'TreeWalker') {
185
+ rules.push({ module: moduleName, properties });
186
+ }
187
+ }
188
+ // Extract suppressions
189
+ const suppressionRegex = /<suppress\s+files="([^"]+)"/g;
190
+ while ((match = suppressionRegex.exec(content)) !== null) {
191
+ suppressions.push(match[1]);
192
+ }
193
+ // Update formatting based on checkstyle rules
194
+ const lineLength = rules.find((r) => r.module === 'LineLength');
195
+ if (lineLength?.properties?.max) {
196
+ result.formatting.maxLineLength = parseInt(lineLength.properties.max, 10);
197
+ }
198
+ const indentation = rules.find((r) => r.module === 'Indentation');
199
+ if (indentation?.properties?.basicOffset) {
200
+ result.formatting.indentSize = parseInt(indentation.properties.basicOffset, 10);
201
+ }
202
+ result.checkstyle = {
203
+ enabled: true,
204
+ configStyle,
205
+ rules,
206
+ suppressions,
207
+ };
208
+ this.logger.debug(`Parsed checkstyle.xml: ${configStyle} style, ${rules.length} rules`);
209
+ }
210
+ catch (error) {
211
+ result.warnings.push(`Failed to parse checkstyle.xml: ${error}`);
212
+ }
213
+ }
214
+ async parsePmd(filePath, result) {
215
+ try {
216
+ const content = await readFile(filePath, 'utf-8');
217
+ const rulesets = [];
218
+ const excludedRules = [];
219
+ // Parse rulesets
220
+ const rulesetRefRegex = /<ruleset-ref\s+ref="([^"]+)"/g;
221
+ let match;
222
+ while ((match = rulesetRefRegex.exec(content)) !== null) {
223
+ rulesets.push(match[1]);
224
+ }
225
+ // Parse individual rules
226
+ const ruleRegex = /<rule\s+ref="([^"]+)"/g;
227
+ while ((match = ruleRegex.exec(content)) !== null) {
228
+ const rulePath = match[1];
229
+ const ruleName = rulePath.split('/').pop()?.replace('.xml', '') ?? rulePath;
230
+ rulesets.push(ruleName);
231
+ }
232
+ // Parse exclusions
233
+ const excludeRegex = /<exclude\s+name="([^"]+)"/g;
234
+ while ((match = excludeRegex.exec(content)) !== null) {
235
+ excludedRules.push(match[1]);
236
+ }
237
+ // Parse minimum priority
238
+ const priorityMatch = content.match(/minimumPriority\s*=\s*["']?(\d)["']?/);
239
+ result.pmd = {
240
+ enabled: true,
241
+ rulesets,
242
+ excludedRules,
243
+ minimumPriority: priorityMatch ? parseInt(priorityMatch[1], 10) : undefined,
244
+ };
245
+ this.logger.debug(`Parsed pmd.xml: ${rulesets.length} rulesets, ${excludedRules.length} excluded`);
246
+ }
247
+ catch (error) {
248
+ result.warnings.push(`Failed to parse pmd.xml: ${error}`);
249
+ }
250
+ }
251
+ async parseSpotbugs(filePath, result) {
252
+ try {
253
+ const content = await readFile(filePath, 'utf-8');
254
+ // SpotBugs exclude filter is typically just exclusion patterns
255
+ const isExcludeFilter = filePath.includes('exclude');
256
+ result.spotbugs = {
257
+ enabled: true,
258
+ effort: 'default',
259
+ reportLevel: 'medium',
260
+ excludeFilterFile: isExcludeFilter ? path.basename(filePath) : undefined,
261
+ };
262
+ this.logger.debug('Parsed SpotBugs config');
263
+ }
264
+ catch (error) {
265
+ result.warnings.push(`Failed to parse SpotBugs config: ${error}`);
266
+ }
267
+ }
268
+ async parseEditorconfig(filePath, result) {
269
+ try {
270
+ const content = await readFile(filePath, 'utf-8');
271
+ // Look for Java-specific or general settings
272
+ const javaSection = this.extractEditorconfigSection(content, '*.java');
273
+ const generalSection = this.extractEditorconfigSection(content, '*');
274
+ const section = javaSection || generalSection || content;
275
+ // Parse indent style
276
+ const indentStyleMatch = section.match(/indent_style\s*=\s*(spaces|tabs)/i);
277
+ if (indentStyleMatch) {
278
+ result.formatting.indentation = indentStyleMatch[1].toLowerCase();
279
+ }
280
+ // Parse indent size
281
+ const indentSizeMatch = section.match(/indent_size\s*=\s*(\d+)/);
282
+ if (indentSizeMatch) {
283
+ result.formatting.indentSize = parseInt(indentSizeMatch[1], 10);
284
+ }
285
+ // Parse max line length
286
+ const maxLineLengthMatch = section.match(/max_line_length\s*=\s*(\d+)/);
287
+ if (maxLineLengthMatch) {
288
+ result.formatting.maxLineLength = parseInt(maxLineLengthMatch[1], 10);
289
+ }
290
+ this.logger.debug('Parsed .editorconfig for Java formatting');
291
+ }
292
+ catch (error) {
293
+ result.warnings.push(`Failed to parse .editorconfig: ${error}`);
294
+ }
295
+ }
296
+ async parseDetekt(filePath, result) {
297
+ try {
298
+ const content = await readFile(filePath, 'utf-8');
299
+ const rules = [];
300
+ // Simple detection of enabled rule sets
301
+ const ruleSets = [
302
+ 'complexity',
303
+ 'coroutines',
304
+ 'empty-blocks',
305
+ 'exceptions',
306
+ 'naming',
307
+ 'performance',
308
+ 'potential-bugs',
309
+ 'style',
310
+ ];
311
+ for (const ruleSet of ruleSets) {
312
+ if (content.includes(`${ruleSet}:`)) {
313
+ const activeMatch = content.match(new RegExp(`${ruleSet}:[\\s\\S]*?active:\\s*(true|false)`));
314
+ if (!activeMatch || activeMatch[1] === 'true') {
315
+ rules.push(ruleSet);
316
+ }
317
+ }
318
+ }
319
+ result.kotlin = {
320
+ enabled: true,
321
+ detekt: {
322
+ enabled: true,
323
+ configFile: 'detekt.yml',
324
+ rules,
325
+ },
326
+ };
327
+ this.logger.debug(`Parsed detekt.yml: ${rules.length} rule sets`);
328
+ }
329
+ catch (error) {
330
+ result.warnings.push(`Failed to parse detekt.yml: ${error}`);
331
+ }
332
+ }
333
+ extractEditorconfigSection(content, pattern) {
334
+ const escapedPattern = pattern.replace(/\*/g, '\\*').replace(/\./g, '\\.');
335
+ const sectionRegex = new RegExp(`\\[${escapedPattern}\\]([\\s\\S]*?)(?=\\n\\[|$)`, 'i');
336
+ const match = content.match(sectionRegex);
337
+ return match ? match[1] : null;
338
+ }
339
+ async fileExists(filePath) {
340
+ try {
341
+ await stat(filePath);
342
+ return true;
343
+ }
344
+ catch {
345
+ return false;
346
+ }
347
+ }
348
+ }
349
+ /**
350
+ * Convenience function for quick Java standards parsing
351
+ */
352
+ export async function parseJavaStandards(projectPath, configFiles, options) {
353
+ const parser = new JavaStandardsParser(options);
354
+ return parser.parse(projectPath, configFiles);
355
+ }
356
+ //# sourceMappingURL=java-standards-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-standards-parser.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/governance/java-standards-parser.ts"],"names":[],"mappings":"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"}