specweave 0.28.68 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/CLAUDE.md +3 -2
  2. package/README.md +19 -2
  3. package/dist/src/cli/commands/discrepancies.d.ts +89 -0
  4. package/dist/src/cli/commands/discrepancies.d.ts.map +1 -0
  5. package/dist/src/cli/commands/discrepancies.js +385 -0
  6. package/dist/src/cli/commands/discrepancies.js.map +1 -0
  7. package/dist/src/cli/commands/notifications.d.ts +70 -0
  8. package/dist/src/cli/commands/notifications.d.ts.map +1 -0
  9. package/dist/src/cli/commands/notifications.js +236 -0
  10. package/dist/src/cli/commands/notifications.js.map +1 -0
  11. package/dist/src/cli/commands/sync-logs.d.ts +54 -0
  12. package/dist/src/cli/commands/sync-logs.d.ts.map +1 -0
  13. package/dist/src/cli/commands/sync-logs.js +240 -0
  14. package/dist/src/cli/commands/sync-logs.js.map +1 -0
  15. package/dist/src/cli/commands/sync-monitor.d.ts +42 -0
  16. package/dist/src/cli/commands/sync-monitor.d.ts.map +1 -0
  17. package/dist/src/cli/commands/sync-monitor.js +191 -0
  18. package/dist/src/cli/commands/sync-monitor.js.map +1 -0
  19. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts +45 -0
  20. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts.map +1 -0
  21. package/dist/src/cli/helpers/init/brownfield-analysis.js +431 -0
  22. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -0
  23. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  24. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  25. package/dist/src/cli/helpers/init/index.js +2 -0
  26. package/dist/src/cli/helpers/init/index.js.map +1 -1
  27. package/dist/src/cli/workers/brownfield-worker.d.ts +66 -0
  28. package/dist/src/cli/workers/brownfield-worker.d.ts.map +1 -0
  29. package/dist/src/cli/workers/brownfield-worker.js +417 -0
  30. package/dist/src/cli/workers/brownfield-worker.js.map +1 -0
  31. package/dist/src/core/background/brownfield-launcher.d.ts +86 -0
  32. package/dist/src/core/background/brownfield-launcher.d.ts.map +1 -0
  33. package/dist/src/core/background/brownfield-launcher.js +295 -0
  34. package/dist/src/core/background/brownfield-launcher.js.map +1 -0
  35. package/dist/src/core/background/index.d.ts +2 -0
  36. package/dist/src/core/background/index.d.ts.map +1 -1
  37. package/dist/src/core/background/index.js +2 -0
  38. package/dist/src/core/background/index.js.map +1 -1
  39. package/dist/src/core/background/types.d.ts +23 -2
  40. package/dist/src/core/background/types.d.ts.map +1 -1
  41. package/dist/src/core/config/index.d.ts +1 -0
  42. package/dist/src/core/config/index.d.ts.map +1 -1
  43. package/dist/src/core/config/index.js +1 -0
  44. package/dist/src/core/config/index.js.map +1 -1
  45. package/dist/src/core/config/types.d.ts +6 -0
  46. package/dist/src/core/config/types.d.ts.map +1 -1
  47. package/dist/src/core/config/types.js.map +1 -1
  48. package/dist/src/core/dashboard/dashboard-data.d.ts +156 -0
  49. package/dist/src/core/dashboard/dashboard-data.d.ts.map +1 -0
  50. package/dist/src/core/dashboard/dashboard-data.js +191 -0
  51. package/dist/src/core/dashboard/dashboard-data.js.map +1 -0
  52. package/dist/src/core/dashboard/index.d.ts +9 -0
  53. package/dist/src/core/dashboard/index.d.ts.map +1 -0
  54. package/dist/src/core/dashboard/index.js +9 -0
  55. package/dist/src/core/dashboard/index.js.map +1 -0
  56. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts +77 -0
  57. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -0
  58. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +286 -0
  59. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -0
  60. package/dist/src/core/discrepancy/analyzers/index.d.ts +8 -0
  61. package/dist/src/core/discrepancy/analyzers/index.d.ts.map +1 -0
  62. package/dist/src/core/discrepancy/analyzers/index.js +8 -0
  63. package/dist/src/core/discrepancy/analyzers/index.js.map +1 -0
  64. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts +96 -0
  65. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts.map +1 -0
  66. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js +247 -0
  67. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js.map +1 -0
  68. package/dist/src/core/discrepancy/brownfield-manager.d.ts +88 -0
  69. package/dist/src/core/discrepancy/brownfield-manager.d.ts.map +1 -0
  70. package/dist/src/core/discrepancy/brownfield-manager.js +520 -0
  71. package/dist/src/core/discrepancy/brownfield-manager.js.map +1 -0
  72. package/dist/src/core/discrepancy/brownfield-types.d.ts +174 -0
  73. package/dist/src/core/discrepancy/brownfield-types.d.ts.map +1 -0
  74. package/dist/src/core/discrepancy/brownfield-types.js +11 -0
  75. package/dist/src/core/discrepancy/brownfield-types.js.map +1 -0
  76. package/dist/src/core/discrepancy/detector.d.ts +92 -0
  77. package/dist/src/core/discrepancy/detector.d.ts.map +1 -0
  78. package/dist/src/core/discrepancy/detector.js +346 -0
  79. package/dist/src/core/discrepancy/detector.js.map +1 -0
  80. package/dist/src/core/discrepancy/increment-generator.d.ts +51 -0
  81. package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -0
  82. package/dist/src/core/discrepancy/increment-generator.js +234 -0
  83. package/dist/src/core/discrepancy/increment-generator.js.map +1 -0
  84. package/dist/src/core/discrepancy/index.d.ts +18 -0
  85. package/dist/src/core/discrepancy/index.d.ts.map +1 -0
  86. package/dist/src/core/discrepancy/index.js +24 -0
  87. package/dist/src/core/discrepancy/index.js.map +1 -0
  88. package/dist/src/core/discrepancy/severity-classifier.d.ts +81 -0
  89. package/dist/src/core/discrepancy/severity-classifier.d.ts.map +1 -0
  90. package/dist/src/core/discrepancy/severity-classifier.js +289 -0
  91. package/dist/src/core/discrepancy/severity-classifier.js.map +1 -0
  92. package/dist/src/core/discrepancy/spec-parser.d.ts +74 -0
  93. package/dist/src/core/discrepancy/spec-parser.d.ts.map +1 -0
  94. package/dist/src/core/discrepancy/spec-parser.js +213 -0
  95. package/dist/src/core/discrepancy/spec-parser.js.map +1 -0
  96. package/dist/src/core/discrepancy/update-recommender.d.ts +77 -0
  97. package/dist/src/core/discrepancy/update-recommender.d.ts.map +1 -0
  98. package/dist/src/core/discrepancy/update-recommender.js +323 -0
  99. package/dist/src/core/discrepancy/update-recommender.js.map +1 -0
  100. package/dist/src/core/living-docs/living-docs-sync.d.ts +13 -16
  101. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  102. package/dist/src/core/living-docs/living-docs-sync.js +31 -112
  103. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  104. package/dist/src/core/logs/index.d.ts +10 -0
  105. package/dist/src/core/logs/index.d.ts.map +1 -0
  106. package/dist/src/core/logs/index.js +10 -0
  107. package/dist/src/core/logs/index.js.map +1 -0
  108. package/dist/src/core/logs/log-aggregator.d.ts +130 -0
  109. package/dist/src/core/logs/log-aggregator.d.ts.map +1 -0
  110. package/dist/src/core/logs/log-aggregator.js +206 -0
  111. package/dist/src/core/logs/log-aggregator.js.map +1 -0
  112. package/dist/src/core/logs/log-exporter.d.ts +81 -0
  113. package/dist/src/core/logs/log-exporter.d.ts.map +1 -0
  114. package/dist/src/core/logs/log-exporter.js +141 -0
  115. package/dist/src/core/logs/log-exporter.js.map +1 -0
  116. package/dist/src/core/notifications/command-integration.d.ts +82 -0
  117. package/dist/src/core/notifications/command-integration.d.ts.map +1 -0
  118. package/dist/src/core/notifications/command-integration.js +80 -0
  119. package/dist/src/core/notifications/command-integration.js.map +1 -0
  120. package/dist/src/core/notifications/index.d.ts +12 -0
  121. package/dist/src/core/notifications/index.d.ts.map +1 -0
  122. package/dist/src/core/notifications/index.js +12 -0
  123. package/dist/src/core/notifications/index.js.map +1 -0
  124. package/dist/src/core/notifications/notification-display.d.ts +70 -0
  125. package/dist/src/core/notifications/notification-display.d.ts.map +1 -0
  126. package/dist/src/core/notifications/notification-display.js +177 -0
  127. package/dist/src/core/notifications/notification-display.js.map +1 -0
  128. package/dist/src/core/notifications/notification-manager.d.ts +126 -0
  129. package/dist/src/core/notifications/notification-manager.d.ts.map +1 -0
  130. package/dist/src/core/notifications/notification-manager.js +287 -0
  131. package/dist/src/core/notifications/notification-manager.js.map +1 -0
  132. package/dist/src/core/notifications/notification-types.d.ts +159 -0
  133. package/dist/src/core/notifications/notification-types.d.ts.map +1 -0
  134. package/dist/src/core/notifications/notification-types.js +93 -0
  135. package/dist/src/core/notifications/notification-types.js.map +1 -0
  136. package/dist/src/core/scheduler/index.d.ts +11 -0
  137. package/dist/src/core/scheduler/index.d.ts.map +1 -0
  138. package/dist/src/core/scheduler/index.js +11 -0
  139. package/dist/src/core/scheduler/index.js.map +1 -0
  140. package/dist/src/core/scheduler/job-scheduler.d.ts +179 -0
  141. package/dist/src/core/scheduler/job-scheduler.d.ts.map +1 -0
  142. package/dist/src/core/scheduler/job-scheduler.js +282 -0
  143. package/dist/src/core/scheduler/job-scheduler.js.map +1 -0
  144. package/dist/src/core/scheduler/schedule-persistence.d.ts +83 -0
  145. package/dist/src/core/scheduler/schedule-persistence.d.ts.map +1 -0
  146. package/dist/src/core/scheduler/schedule-persistence.js +180 -0
  147. package/dist/src/core/scheduler/schedule-persistence.js.map +1 -0
  148. package/dist/src/core/scheduler/scheduled-job.d.ts +188 -0
  149. package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -0
  150. package/dist/src/core/scheduler/scheduled-job.js +182 -0
  151. package/dist/src/core/scheduler/scheduled-job.js.map +1 -0
  152. package/dist/src/core/sync/permission-enforcer.d.ts +206 -0
  153. package/dist/src/core/sync/permission-enforcer.d.ts.map +1 -0
  154. package/dist/src/core/sync/permission-enforcer.js +268 -0
  155. package/dist/src/core/sync/permission-enforcer.js.map +1 -0
  156. package/dist/src/core/sync/sync-audit-logger.d.ts +217 -0
  157. package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -0
  158. package/dist/src/core/sync/sync-audit-logger.js +327 -0
  159. package/dist/src/core/sync/sync-audit-logger.js.map +1 -0
  160. package/dist/src/core/sync/sync-interceptor.d.ts +190 -0
  161. package/dist/src/core/sync/sync-interceptor.d.ts.map +1 -0
  162. package/dist/src/core/sync/sync-interceptor.js +224 -0
  163. package/dist/src/core/sync/sync-interceptor.js.map +1 -0
  164. package/dist/src/core/types/increment-metadata.d.ts +5 -2
  165. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  166. package/dist/src/core/types/sync-config.d.ts +267 -0
  167. package/dist/src/core/types/sync-config.d.ts.map +1 -0
  168. package/dist/src/core/types/sync-config.js +304 -0
  169. package/dist/src/core/types/sync-config.js.map +1 -0
  170. package/dist/src/hooks/index.d.ts +11 -0
  171. package/dist/src/hooks/index.d.ts.map +1 -0
  172. package/dist/src/hooks/index.js +11 -0
  173. package/dist/src/hooks/index.js.map +1 -0
  174. package/dist/src/hooks/platform.d.ts +125 -0
  175. package/dist/src/hooks/platform.d.ts.map +1 -0
  176. package/dist/src/hooks/platform.js +325 -0
  177. package/dist/src/hooks/platform.js.map +1 -0
  178. package/dist/src/hooks/processor.d.ts +20 -0
  179. package/dist/src/hooks/processor.d.ts.map +1 -0
  180. package/dist/src/hooks/processor.js +317 -0
  181. package/dist/src/hooks/processor.js.map +1 -0
  182. package/dist/src/hooks/scheduler-startup.d.ts +19 -0
  183. package/dist/src/hooks/scheduler-startup.d.ts.map +1 -0
  184. package/dist/src/hooks/scheduler-startup.js +92 -0
  185. package/dist/src/hooks/scheduler-startup.js.map +1 -0
  186. package/dist/src/hooks/session-start.d.ts +16 -0
  187. package/dist/src/hooks/session-start.d.ts.map +1 -0
  188. package/dist/src/hooks/session-start.js +92 -0
  189. package/dist/src/hooks/session-start.js.map +1 -0
  190. package/dist/src/importers/duplicate-detector.d.ts +13 -2
  191. package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
  192. package/dist/src/importers/duplicate-detector.js +21 -2
  193. package/dist/src/importers/duplicate-detector.js.map +1 -1
  194. package/dist/src/importers/item-converter.d.ts +41 -2
  195. package/dist/src/importers/item-converter.d.ts.map +1 -1
  196. package/dist/src/importers/item-converter.js +225 -38
  197. package/dist/src/importers/item-converter.js.map +1 -1
  198. package/dist/src/living-docs/fs-id-allocator.d.ts +7 -0
  199. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  200. package/dist/src/living-docs/fs-id-allocator.js +30 -4
  201. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  202. package/dist/src/sync/ado-sync-wrapper.d.ts +137 -0
  203. package/dist/src/sync/ado-sync-wrapper.d.ts.map +1 -0
  204. package/dist/src/sync/ado-sync-wrapper.js +148 -0
  205. package/dist/src/sync/ado-sync-wrapper.js.map +1 -0
  206. package/dist/src/sync/github-sync-wrapper.d.ts +195 -0
  207. package/dist/src/sync/github-sync-wrapper.d.ts.map +1 -0
  208. package/dist/src/sync/github-sync-wrapper.js +220 -0
  209. package/dist/src/sync/github-sync-wrapper.js.map +1 -0
  210. package/dist/src/sync/jira-sync-wrapper.d.ts +155 -0
  211. package/dist/src/sync/jira-sync-wrapper.d.ts.map +1 -0
  212. package/dist/src/sync/jira-sync-wrapper.js +175 -0
  213. package/dist/src/sync/jira-sync-wrapper.js.map +1 -0
  214. package/dist/src/utils/feature-id-derivation.d.ts +58 -0
  215. package/dist/src/utils/feature-id-derivation.d.ts.map +1 -0
  216. package/dist/src/utils/feature-id-derivation.js +77 -0
  217. package/dist/src/utils/feature-id-derivation.js.map +1 -0
  218. package/package.json +3 -1
  219. package/plugins/specweave/commands/specweave-discrepancies.md +141 -0
  220. package/plugins/specweave/commands/specweave-discrepancy-to-increment.md +160 -0
  221. package/plugins/specweave/commands/specweave-jobs.md +45 -2
  222. package/plugins/specweave/commands/specweave-notifications.md +92 -0
  223. package/plugins/specweave/commands/specweave-sync-logs.md +131 -0
  224. package/plugins/specweave/commands/specweave-sync-monitor.md +57 -0
  225. package/plugins/specweave/hooks/hooks.json +3 -3
  226. package/plugins/specweave/hooks/lib/scheduler-startup.sh +72 -0
  227. package/plugins/specweave/hooks/universal/dispatcher.mjs +246 -0
  228. package/plugins/specweave/hooks/universal/session-start.cmd +16 -0
  229. package/plugins/specweave/hooks/universal/session-start.ps1 +16 -0
  230. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +14 -5
  231. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +5 -2
  232. package/plugins/specweave/skills/discrepancy-viewer.md +154 -0
  233. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +46 -0
  234. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +69 -0
  235. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts +0 -26
  236. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts.map +0 -1
  237. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js +0 -249
  238. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js.map +0 -1
  239. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +0 -28
  240. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +0 -1
  241. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -156
  242. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +0 -1
  243. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -119
  244. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  245. package/dist/src/core/sync/bidirectional-engine.js +0 -359
  246. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  247. package/dist/src/core/sync/conflict-resolver.d.ts +0 -66
  248. package/dist/src/core/sync/conflict-resolver.d.ts.map +0 -1
  249. package/dist/src/core/sync/conflict-resolver.js +0 -108
  250. package/dist/src/core/sync/conflict-resolver.js.map +0 -1
  251. package/dist/src/core/sync/enhanced-content-builder.d.ts +0 -55
  252. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +0 -1
  253. package/dist/src/core/sync/enhanced-content-builder.js +0 -203
  254. package/dist/src/core/sync/enhanced-content-builder.js.map +0 -1
  255. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  256. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  257. package/dist/src/core/sync/folder-mapper.js +0 -203
  258. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  259. package/dist/src/core/sync/label-detector.d.ts +0 -66
  260. package/dist/src/core/sync/label-detector.d.ts.map +0 -1
  261. package/dist/src/core/sync/label-detector.js +0 -224
  262. package/dist/src/core/sync/label-detector.js.map +0 -1
  263. package/dist/src/core/sync/performance-optimizer.d.ts +0 -153
  264. package/dist/src/core/sync/performance-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/sync/performance-optimizer.js +0 -220
  266. package/dist/src/core/sync/performance-optimizer.js.map +0 -1
  267. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  268. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  269. package/dist/src/core/sync/profile-selector.js +0 -179
  270. package/dist/src/core/sync/profile-selector.js.map +0 -1
  271. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  272. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  273. package/dist/src/core/sync/profile-validator.js +0 -170
  274. package/dist/src/core/sync/profile-validator.js.map +0 -1
  275. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  276. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  277. package/dist/src/core/sync/rate-limiter.js +0 -308
  278. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  279. package/dist/src/core/sync/retry-handler.d.ts +0 -98
  280. package/dist/src/core/sync/retry-handler.d.ts.map +0 -1
  281. package/dist/src/core/sync/retry-handler.js +0 -196
  282. package/dist/src/core/sync/retry-handler.js.map +0 -1
  283. package/dist/src/core/sync/retry-logic.d.ts +0 -64
  284. package/dist/src/core/sync/retry-logic.d.ts.map +0 -1
  285. package/dist/src/core/sync/retry-logic.js +0 -165
  286. package/dist/src/core/sync/retry-logic.js.map +0 -1
  287. package/dist/src/core/sync/status-cache.d.ts +0 -91
  288. package/dist/src/core/sync/status-cache.d.ts.map +0 -1
  289. package/dist/src/core/sync/status-cache.js +0 -140
  290. package/dist/src/core/sync/status-cache.js.map +0 -1
  291. package/dist/src/core/sync/status-mapper.d.ts +0 -69
  292. package/dist/src/core/sync/status-mapper.d.ts.map +0 -1
  293. package/dist/src/core/sync/status-mapper.js +0 -90
  294. package/dist/src/core/sync/status-mapper.js.map +0 -1
  295. package/dist/src/core/sync/status-sync-engine.d.ts +0 -162
  296. package/dist/src/core/sync/status-sync-engine.d.ts.map +0 -1
  297. package/dist/src/core/sync/status-sync-engine.js +0 -347
  298. package/dist/src/core/sync/status-sync-engine.js.map +0 -1
  299. package/dist/src/core/sync/sync-event-logger.d.ts +0 -113
  300. package/dist/src/core/sync/sync-event-logger.d.ts.map +0 -1
  301. package/dist/src/core/sync/sync-event-logger.js +0 -141
  302. package/dist/src/core/sync/sync-event-logger.js.map +0 -1
  303. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  304. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  305. package/dist/src/core/sync/time-range-selector.js +0 -224
  306. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  307. package/dist/src/core/sync/types.d.ts +0 -52
  308. package/dist/src/core/sync/types.d.ts.map +0 -1
  309. package/dist/src/core/sync/types.js +0 -5
  310. package/dist/src/core/sync/types.js.map +0 -1
  311. package/dist/src/core/sync/workflow-detector.d.ts +0 -95
  312. package/dist/src/core/sync/workflow-detector.d.ts.map +0 -1
  313. package/dist/src/core/sync/workflow-detector.js +0 -175
  314. package/dist/src/core/sync/workflow-detector.js.map +0 -1
  315. package/plugins/specweave-github/lib/enhanced-github-sync.js +0 -220
  316. package/plugins/specweave-github/lib/enhanced-github-sync.ts +0 -322
  317. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -134
  318. package/plugins/specweave-jira/lib/enhanced-jira-sync.ts +0 -196
@@ -0,0 +1,154 @@
1
+ # Discrepancy Viewer Skill
2
+
3
+ View and manage brownfield documentation discrepancies.
4
+
5
+ **Activates for**: discrepancies, documentation gaps, missing docs, stale docs, knowledge gaps, brownfield analysis results, DISC-0001, view discrepancy, list discrepancies
6
+
7
+ ## Context
8
+
9
+ Brownfield discrepancies are documentation gaps detected during brownfield analysis:
10
+
11
+ | Type | Description |
12
+ |------|-------------|
13
+ | `missing-docs` | Code exists but has no documentation |
14
+ | `stale-docs` | Code changed but docs weren't updated |
15
+ | `knowledge-gap` | Module only one person has committed to |
16
+ | `orphan-doc` | Documentation for deleted code |
17
+ | `missing-adr` | Significant pattern without ADR |
18
+
19
+ ## How to View Discrepancies
20
+
21
+ ### List All Pending
22
+
23
+ ```typescript
24
+ import { BrownfieldDiscrepancyManager } from 'specweave/core/discrepancy';
25
+
26
+ const manager = new BrownfieldDiscrepancyManager(projectPath);
27
+ const discrepancies = await manager.listDiscrepancies();
28
+
29
+ // Display in table format
30
+ console.log('📋 BROWNFIELD DISCREPANCIES');
31
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
32
+ console.log('ID Type Priority Module Summary');
33
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
34
+
35
+ for (const disc of discrepancies) {
36
+ const priorityIcon = {
37
+ critical: '🔴',
38
+ high: '🟠',
39
+ medium: '🟡',
40
+ low: '🟢'
41
+ }[disc.priority];
42
+
43
+ console.log(`${disc.id} ${disc.type.padEnd(15)} ${priorityIcon} ${disc.priority.padEnd(8)} ${disc.module.padEnd(16)} ${disc.summary.slice(0, 30)}...`);
44
+ }
45
+ ```
46
+
47
+ ### Filter by Module
48
+
49
+ ```typescript
50
+ const discrepancies = await manager.listDiscrepancies({
51
+ module: 'payment-service'
52
+ });
53
+ ```
54
+
55
+ ### Filter by Type
56
+
57
+ ```typescript
58
+ const discrepancies = await manager.listDiscrepancies({
59
+ type: 'missing-docs'
60
+ });
61
+ ```
62
+
63
+ ### Filter by Priority
64
+
65
+ ```typescript
66
+ const discrepancies = await manager.listDiscrepancies({
67
+ priority: 'critical'
68
+ });
69
+ ```
70
+
71
+ ### View Single Discrepancy
72
+
73
+ ```typescript
74
+ const disc = await manager.getDiscrepancy('DISC-0001');
75
+
76
+ console.log(`
77
+ 🔍 DISCREPANCY DETAILS
78
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
79
+
80
+ ID: ${disc.id}
81
+ Type: ${disc.type}
82
+ Priority: ${disc.priority}
83
+ Module: ${disc.module}
84
+ Status: ${disc.status}
85
+ Confidence: ${disc.confidence}%
86
+
87
+ Summary: ${disc.summary}
88
+ Details: ${disc.details}
89
+
90
+ Code Location: ${disc.codeLocation || 'N/A'}
91
+ Doc Location: ${disc.docLocation || 'N/A'}
92
+
93
+ Detected: ${disc.detectedAt}
94
+ Last Check: ${disc.lastChecked}
95
+ `);
96
+ ```
97
+
98
+ ### Ignore a Discrepancy
99
+
100
+ ```typescript
101
+ await manager.ignoreDiscrepancy('DISC-0001', 'False positive - test code');
102
+ ```
103
+
104
+ ## Output Format
105
+
106
+ ### Table Format (Default)
107
+
108
+ ```
109
+ 📋 BROWNFIELD DISCREPANCIES (15 pending)
110
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
111
+
112
+ ID Type Priority Module Summary
113
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
114
+ DISC-0001 missing-docs 🔴 critical payment-service 12 undocumented exports
115
+ DISC-0002 stale-docs 🟠 high auth Login flow docs outdated
116
+ DISC-0003 knowledge-gap 🟡 medium legacy-adapter Single contributor module
117
+ DISC-0004 missing-adr 🟢 low cache No ADR for caching strategy
118
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
+
120
+ Use '/specweave:discrepancies show <ID>' for details
121
+ Use '/specweave:discrepancy-to-increment <ID> <ID>...' to create an increment
122
+ ```
123
+
124
+ ### Statistics
125
+
126
+ ```
127
+ 📊 DISCREPANCY STATS
128
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
129
+
130
+ Total: 47
131
+ Pending: 15
132
+ In Progress: 5
133
+ Resolved: 25
134
+ Ignored: 2
135
+
136
+ By Type:
137
+ missing-docs: 22 (47%)
138
+ stale-docs: 8 (17%)
139
+ knowledge-gap: 7 (15%)
140
+ orphan-doc: 5 (11%)
141
+ missing-adr: 5 (11%)
142
+
143
+ By Priority:
144
+ Critical: 3
145
+ High: 8
146
+ Medium: 12
147
+ Low: 24
148
+ ```
149
+
150
+ ## Related
151
+
152
+ - `/specweave:discrepancy-to-increment` - Convert discrepancies to increments
153
+ - `/specweave:jobs` - Monitor brownfield analysis jobs
154
+ - `brownfield-analyzer` skill - Run new analysis
@@ -24,3 +24,49 @@
24
24
  [Mon Dec 1 15:44:14 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
25
25
  [Mon Dec 1 15:44:15 EST 2025] [GitHub] 🔗 GitHub sync hook fired
26
26
  [Mon Dec 1 15:44:15 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
27
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
28
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
29
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
30
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
31
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
32
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
33
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
34
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
35
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
36
+ [Mon Dec 1 20:26:17 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
37
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] 🔗 GitHub sync hook fired
38
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
39
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] 🔗 GitHub sync hook fired
40
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
41
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] 🔗 GitHub sync hook fired
42
+ [Mon Dec 1 20:26:18 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
43
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] 🔗 GitHub sync hook fired
44
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
45
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] 🔗 GitHub sync hook fired
46
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
47
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] 🔗 GitHub sync hook fired
48
+ [Mon Dec 1 20:26:27 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
49
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] 🔗 GitHub sync hook fired
50
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
51
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] 🔗 GitHub sync hook fired
52
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
53
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] 🔗 GitHub sync hook fired
54
+ [Mon Dec 1 20:37:58 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
55
+ [Mon Dec 1 20:40:32 EST 2025] [GitHub] 🔗 GitHub sync hook fired
56
+ [Mon Dec 1 20:40:32 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
57
+ [Mon Dec 1 20:40:32 EST 2025] [GitHub] 🔗 GitHub sync hook fired
58
+ [Mon Dec 1 20:40:32 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
59
+ [Mon Dec 1 20:40:33 EST 2025] [GitHub] 🔗 GitHub sync hook fired
60
+ [Mon Dec 1 20:40:33 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
61
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
62
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
63
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
64
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
65
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
66
+ [Mon Dec 1 22:13:45 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
67
+ [Mon Dec 1 22:16:15 EST 2025] [GitHub] 🔗 GitHub sync hook fired
68
+ [Mon Dec 1 22:16:15 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
69
+ [Mon Dec 1 22:16:15 EST 2025] [GitHub] 🔗 GitHub sync hook fired
70
+ [Mon Dec 1 22:16:15 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
71
+ [Mon Dec 1 22:16:16 EST 2025] [GitHub] 🔗 GitHub sync hook fired
72
+ [Mon Dec 1 22:16:16 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
@@ -37,3 +37,72 @@
37
37
  [2025-12-01 15:44:15] 🎯 Post-Increment-Completion Hook Triggered
38
38
  [2025-12-01 15:44:15] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
39
39
  [2025-12-01 15:44:15] Run: npm run build
40
+ [2025-12-01 20:26:17] 🎯 Post-Increment-Completion Hook Triggered
41
+ [2025-12-01 20:26:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
42
+ [2025-12-01 20:26:17] Run: npm run build
43
+ [2025-12-01 20:26:17] 🎯 Post-Increment-Completion Hook Triggered
44
+ [2025-12-01 20:26:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
45
+ [2025-12-01 20:26:17] Run: npm run build
46
+ [2025-12-01 20:26:17] 🎯 Post-Increment-Completion Hook Triggered
47
+ [2025-12-01 20:26:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
48
+ [2025-12-01 20:26:17] Run: npm run build
49
+ [2025-12-01 20:26:17] 🎯 Post-Increment-Completion Hook Triggered
50
+ [2025-12-01 20:26:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
51
+ [2025-12-01 20:26:17] Run: npm run build
52
+ [2025-12-01 20:26:17] 🎯 Post-Increment-Completion Hook Triggered
53
+ [2025-12-01 20:26:17] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
54
+ [2025-12-01 20:26:17] Run: npm run build
55
+ [2025-12-01 20:26:18] 🎯 Post-Increment-Completion Hook Triggered
56
+ [2025-12-01 20:26:18] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
57
+ [2025-12-01 20:26:18] Run: npm run build
58
+ [2025-12-01 20:26:18] 🎯 Post-Increment-Completion Hook Triggered
59
+ [2025-12-01 20:26:18] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
60
+ [2025-12-01 20:26:18] Run: npm run build
61
+ [2025-12-01 20:26:18] 🎯 Post-Increment-Completion Hook Triggered
62
+ [2025-12-01 20:26:18] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
63
+ [2025-12-01 20:26:18] Run: npm run build
64
+ [2025-12-01 20:26:27] 🎯 Post-Increment-Completion Hook Triggered
65
+ [2025-12-01 20:26:27] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
66
+ [2025-12-01 20:26:27] Run: npm run build
67
+ [2025-12-01 20:26:27] 🎯 Post-Increment-Completion Hook Triggered
68
+ [2025-12-01 20:26:27] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
69
+ [2025-12-01 20:26:27] Run: npm run build
70
+ [2025-12-01 20:26:27] 🎯 Post-Increment-Completion Hook Triggered
71
+ [2025-12-01 20:26:27] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
72
+ [2025-12-01 20:26:27] Run: npm run build
73
+ [2025-12-01 20:37:58] 🎯 Post-Increment-Completion Hook Triggered
74
+ [2025-12-01 20:37:58] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
75
+ [2025-12-01 20:37:58] Run: npm run build
76
+ [2025-12-01 20:37:58] 🎯 Post-Increment-Completion Hook Triggered
77
+ [2025-12-01 20:37:58] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
78
+ [2025-12-01 20:37:58] Run: npm run build
79
+ [2025-12-01 20:37:58] 🎯 Post-Increment-Completion Hook Triggered
80
+ [2025-12-01 20:37:58] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
81
+ [2025-12-01 20:37:58] Run: npm run build
82
+ [2025-12-01 20:40:32] 🎯 Post-Increment-Completion Hook Triggered
83
+ [2025-12-01 20:40:32] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
84
+ [2025-12-01 20:40:32] Run: npm run build
85
+ [2025-12-01 20:40:33] 🎯 Post-Increment-Completion Hook Triggered
86
+ [2025-12-01 20:40:33] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
87
+ [2025-12-01 20:40:33] Run: npm run build
88
+ [2025-12-01 20:40:33] 🎯 Post-Increment-Completion Hook Triggered
89
+ [2025-12-01 20:40:33] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
90
+ [2025-12-01 20:40:33] Run: npm run build
91
+ [2025-12-01 22:13:45] 🎯 Post-Increment-Completion Hook Triggered
92
+ [2025-12-01 22:13:45] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
93
+ [2025-12-01 22:13:45] Run: npm run build
94
+ [2025-12-01 22:13:45] 🎯 Post-Increment-Completion Hook Triggered
95
+ [2025-12-01 22:13:45] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
96
+ [2025-12-01 22:13:45] Run: npm run build
97
+ [2025-12-01 22:13:45] 🎯 Post-Increment-Completion Hook Triggered
98
+ [2025-12-01 22:13:45] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
99
+ [2025-12-01 22:13:45] Run: npm run build
100
+ [2025-12-01 22:16:15] 🎯 Post-Increment-Completion Hook Triggered
101
+ [2025-12-01 22:16:15] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
102
+ [2025-12-01 22:16:15] Run: npm run build
103
+ [2025-12-01 22:16:16] 🎯 Post-Increment-Completion Hook Triggered
104
+ [2025-12-01 22:16:16] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
105
+ [2025-12-01 22:16:16] Run: npm run build
106
+ [2025-12-01 22:16:16] 🎯 Post-Increment-Completion Hook Triggered
107
+ [2025-12-01 22:16:16] ⚠️ DORA calculator not found at /Users/antonabyzov/Documents/Projects/specweave/plugins/specweave-release/hooks/dist/src/metrics/dora-calculator.js
108
+ [2025-12-01 22:16:16] Run: npm run build
@@ -1,26 +0,0 @@
1
- /**
2
- * Enhanced GitHub Spec Content Sync
3
- *
4
- * Uses EnhancedContentBuilder and SpecIncrementMapper for rich external descriptions.
5
- * NEW (v0.21.0): Supports task checkboxes and automatic labeling.
6
- */
7
- export interface EnhancedGitHubSyncOptions {
8
- specPath: string;
9
- owner?: string;
10
- repo?: string;
11
- dryRun?: boolean;
12
- verbose?: boolean;
13
- }
14
- export interface EnhancedSyncResult {
15
- success: boolean;
16
- action: 'created' | 'updated' | 'no-change' | 'error';
17
- issueNumber?: number;
18
- issueUrl?: string;
19
- error?: string;
20
- tasksLinked?: number;
21
- }
22
- /**
23
- * Enhanced sync with rich content including task mappings
24
- */
25
- export declare function syncSpecWithEnhancedContent(options: EnhancedGitHubSyncOptions): Promise<EnhancedSyncResult>;
26
- //# sourceMappingURL=enhanced-github-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-github-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/enhanced-github-sync.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAsL7B"}
@@ -1,249 +0,0 @@
1
- /**
2
- * Enhanced GitHub Spec Content Sync
3
- *
4
- * Uses EnhancedContentBuilder and SpecIncrementMapper for rich external descriptions.
5
- * NEW (v0.21.0): Supports task checkboxes and automatic labeling.
6
- */
7
- import { GitHubClientV2 } from './github-client-v2.js';
8
- import { EnhancedContentBuilder } from '../../../src/core/sync/enhanced-content-builder.js';
9
- import { SpecIncrementMapper } from '../../../src/core/sync/spec-increment-mapper.js';
10
- import { parseSpecContent } from '../../../src/core/spec-content-sync.js';
11
- import { LabelDetector } from '../../../src/core/sync/label-detector.js';
12
- import path from 'path';
13
- import fs from 'fs/promises';
14
- /**
15
- * Enhanced sync with rich content including task mappings
16
- */
17
- export async function syncSpecWithEnhancedContent(options) {
18
- const { specPath, owner, repo, dryRun = false, verbose = false } = options;
19
- try {
20
- // 1. Parse spec content
21
- const baseSpec = await parseSpecContent(specPath);
22
- if (!baseSpec) {
23
- return {
24
- success: false,
25
- action: 'error',
26
- error: 'Failed to parse spec content',
27
- };
28
- }
29
- if (verbose) {
30
- console.log(`📄 Parsed spec: ${baseSpec.identifier.compact}`);
31
- }
32
- // 2. Build enhanced spec with task mappings
33
- const specId = baseSpec.identifier.full || baseSpec.identifier.compact;
34
- const rootDir = await findSpecWeaveRoot(specPath);
35
- const mapper = new SpecIncrementMapper(rootDir);
36
- const mapping = await mapper.mapSpecToIncrements(specId);
37
- if (verbose) {
38
- console.log(`🔗 Found ${mapping.increments.length} related increments`);
39
- console.log(`📋 Mapped ${Object.keys(mapping.userStoryMappings).length} user stories to tasks`);
40
- }
41
- // 3. Build task mapping for EnhancedSpecContent
42
- const taskMapping = buildTaskMapping(mapping.increments, owner, repo);
43
- // 4. Build architecture docs references
44
- const architectureDocs = await findArchitectureDocs(rootDir, specId);
45
- // 5. Build source links
46
- const sourceLinks = buildSourceLinks(mapping.increments[0]?.id, owner, repo);
47
- // 6. Create enhanced spec content
48
- const enhancedSpec = {
49
- ...baseSpec,
50
- summary: baseSpec.description,
51
- taskMapping,
52
- architectureDocs,
53
- sourceLinks
54
- };
55
- // 7. Build external description with task checkboxes
56
- const builder = new EnhancedContentBuilder();
57
- // NEW: Override buildTasksSection call to include checkboxes
58
- const originalBuildExternal = builder.buildExternalDescription.bind(builder);
59
- const description = (() => {
60
- const sections = [];
61
- // Summary
62
- sections.push(builder.buildSummarySection(enhancedSpec));
63
- // User stories
64
- if (enhancedSpec.userStories && enhancedSpec.userStories.length > 0) {
65
- sections.push(builder.buildUserStoriesSection(enhancedSpec.userStories));
66
- }
67
- // Tasks with checkboxes (NEW!)
68
- if (enhancedSpec.taskMapping) {
69
- sections.push(builder.buildTasksSection(enhancedSpec.taskMapping, {
70
- showCheckboxes: true,
71
- showProgressBar: true,
72
- showCompletionStatus: true,
73
- provider: 'github'
74
- }));
75
- }
76
- // Architecture
77
- if (enhancedSpec.architectureDocs && enhancedSpec.architectureDocs.length > 0) {
78
- sections.push(builder.buildArchitectureSection(enhancedSpec.architectureDocs));
79
- }
80
- // Source links
81
- if (enhancedSpec.sourceLinks) {
82
- sections.push(builder.buildSourceLinksSection(enhancedSpec.sourceLinks));
83
- }
84
- return sections.filter(s => s.length > 0).join('\n\n---\n\n');
85
- })();
86
- if (verbose) {
87
- console.log(`📝 Generated description: ${description.length} characters`);
88
- }
89
- if (dryRun) {
90
- console.log('🔍 DRY RUN - Would create/update issue with:');
91
- console.log(` Title: ${baseSpec.title}`);
92
- console.log(` Description length: ${description.length}`);
93
- console.log(` Tasks linked: ${taskMapping?.tasks.length || 0}`);
94
- return {
95
- success: true,
96
- action: 'no-change',
97
- tasksLinked: taskMapping?.tasks.length || 0
98
- };
99
- }
100
- // 8. Create or update GitHub issue
101
- if (!owner || !repo) {
102
- return {
103
- success: false,
104
- action: 'error',
105
- error: 'GitHub owner/repo not specified',
106
- };
107
- }
108
- const client = GitHubClientV2.fromRepo(owner, repo);
109
- // NEW: Detect increment type and apply labels
110
- const labelDetector = new LabelDetector(undefined, false); // Use GitHub format
111
- const detection = labelDetector.detectType(await fs.readFile(specPath, 'utf-8'), mapping.increments[0]?.id);
112
- const githubLabels = labelDetector.getGitHubLabels(detection.type);
113
- const allLabels = ['spec', ...githubLabels]; // Include both 'spec' and type labels
114
- if (verbose) {
115
- console.log(`🏷️ Detected type: ${detection.type} (${detection.confidence}% confidence)`);
116
- console.log(` Labels: ${allLabels.join(', ')}`);
117
- }
118
- // Check if issue already exists
119
- const existingIssue = await findExistingIssue(client, baseSpec.identifier.compact);
120
- let result;
121
- if (existingIssue) {
122
- // Update existing issue (body + labels)
123
- await client.updateIssueBody(existingIssue.number, description);
124
- // Update labels if autoApplyLabels is enabled
125
- // TODO: Read from config, for now always apply
126
- await client.addLabels(existingIssue.number, allLabels);
127
- result = {
128
- success: true,
129
- action: 'updated',
130
- issueNumber: existingIssue.number,
131
- issueUrl: existingIssue.html_url,
132
- tasksLinked: taskMapping?.tasks.length || 0
133
- };
134
- }
135
- else {
136
- // Create new issue with labels
137
- const issue = await client.createEpicIssue(`[${baseSpec.project === '_features' ? baseSpec.identifier.display : baseSpec.identifier.compact}] ${baseSpec.title}`, description, undefined, allLabels // Apply labels at creation
138
- );
139
- result = {
140
- success: true,
141
- action: 'created',
142
- issueNumber: issue.number,
143
- issueUrl: issue.html_url,
144
- tasksLinked: taskMapping?.tasks.length || 0
145
- };
146
- // Update spec with GitHub link
147
- await mapper.updateSpecWithIncrementLinks(specId, mapping.increments[0]?.id);
148
- }
149
- if (verbose) {
150
- console.log(`✅ ${result.action === 'created' ? 'Created' : 'Updated'} issue #${result.issueNumber}`);
151
- console.log(` URL: ${result.issueUrl}`);
152
- console.log(` Tasks linked: ${result.tasksLinked}`);
153
- }
154
- return result;
155
- }
156
- catch (error) {
157
- return {
158
- success: false,
159
- action: 'error',
160
- error: error.message
161
- };
162
- }
163
- }
164
- // Helper functions
165
- async function findSpecWeaveRoot(specPath) {
166
- let currentDir = path.dirname(specPath);
167
- while (true) {
168
- const specweaveDir = path.join(currentDir, '.specweave');
169
- try {
170
- await fs.access(specweaveDir);
171
- return currentDir;
172
- }
173
- catch {
174
- const parentDir = path.dirname(currentDir);
175
- if (parentDir === currentDir) {
176
- throw new Error('.specweave directory not found');
177
- }
178
- currentDir = parentDir;
179
- }
180
- }
181
- }
182
- function buildTaskMapping(increments, owner, repo) {
183
- if (increments.length === 0)
184
- return undefined;
185
- const firstIncrement = increments[0];
186
- const tasks = firstIncrement.tasks.map((task) => ({
187
- id: task.id,
188
- title: task.title,
189
- userStories: task.userStories,
190
- githubIssue: task.githubIssue
191
- }));
192
- return {
193
- incrementId: firstIncrement.id,
194
- tasks,
195
- tasksUrl: `https://github.com/${owner}/${repo}/blob/develop/.specweave/increments/${firstIncrement.id}/tasks.md`
196
- };
197
- }
198
- async function findArchitectureDocs(rootDir, specId) {
199
- const docs = [];
200
- const archDir = path.join(rootDir, '.specweave/docs/internal/architecture');
201
- try {
202
- // Check for ADRs
203
- const adrDir = path.join(archDir, 'adr');
204
- try {
205
- const adrs = await fs.readdir(adrDir);
206
- const relatedAdrs = adrs.filter(file => file.includes(specId.replace('spec-', '')));
207
- for (const adr of relatedAdrs) {
208
- docs.push({
209
- type: 'adr',
210
- path: path.join(adrDir, adr),
211
- title: adr.replace('.md', '').replace(/-/g, ' ')
212
- });
213
- }
214
- }
215
- catch { }
216
- // Check for HLD
217
- const hlds = await fs.readdir(archDir);
218
- const relatedHlds = hlds.filter(file => file.includes('hld') && file.includes(specId.replace('spec-', '')));
219
- for (const hld of relatedHlds) {
220
- docs.push({
221
- type: 'hld',
222
- path: path.join(archDir, hld),
223
- title: hld.replace('.md', '').replace(/-/g, ' ')
224
- });
225
- }
226
- }
227
- catch { }
228
- return docs;
229
- }
230
- function buildSourceLinks(incrementId, owner, repo) {
231
- if (!incrementId)
232
- return undefined;
233
- const baseUrl = `https://github.com/${owner}/${repo}/blob/develop/.specweave`;
234
- return {
235
- spec: `${baseUrl}/docs/internal/specs/default/spec-${incrementId.replace(/^\d+-/, '')}.md`,
236
- plan: `${baseUrl}/increments/${incrementId}/plan.md`,
237
- tasks: `${baseUrl}/increments/${incrementId}/tasks.md`
238
- };
239
- }
240
- async function findExistingIssue(client, specId) {
241
- try {
242
- const issues = await client.listIssuesInTimeRange('ALL');
243
- return issues.find((issue) => issue.title.includes(`[${specId}]`) && issue.labels?.some((l) => l.name === 'spec')) || null;
244
- }
245
- catch {
246
- return null;
247
- }
248
- }
249
- //# sourceMappingURL=enhanced-github-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-github-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/enhanced-github-sync.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Enhanced JIRA Spec Content Sync
3
- *
4
- * Uses EnhancedContentBuilder and SpecIncrementMapper for rich epic descriptions.
5
- *
6
- * NOTE: This version focuses on enhanced content building.
7
- * Actual JIRA API integration requires jira-spec-sync.ts
8
- */
9
- export interface EnhancedJiraSyncOptions {
10
- specPath: string;
11
- domain?: string;
12
- project?: string;
13
- dryRun?: boolean;
14
- verbose?: boolean;
15
- }
16
- export interface EnhancedJiraSyncResult {
17
- success: boolean;
18
- action: 'created' | 'updated' | 'no-change' | 'error';
19
- epicKey?: string;
20
- epicUrl?: string;
21
- error?: string;
22
- tasksLinked?: number;
23
- }
24
- /**
25
- * Enhanced sync with rich content including task mappings
26
- */
27
- export declare function syncSpecToJiraWithEnhancedContent(options: EnhancedJiraSyncOptions): Promise<EnhancedJiraSyncResult>;
28
- //# sourceMappingURL=enhanced-jira-sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanced-jira-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-jira/lib/enhanced-jira-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CA+FjC"}