specweave 0.29.1 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +65 -16
  2. package/bin/specweave.js +16 -0
  3. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +1 -1
  4. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts.map +1 -1
  5. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js +1 -1
  6. package/dist/plugins/specweave-ado/lib/ado-spec-commit-sync.js.map +1 -1
  7. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts +1 -1
  8. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.d.ts.map +1 -1
  9. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js +1 -1
  10. package/dist/plugins/specweave-ado/lib/ado-spec-content-sync.js.map +1 -1
  11. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts +134 -0
  12. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +1 -0
  13. package/dist/plugins/specweave-ado/lib/conflict-resolver.js +423 -0
  14. package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +1 -0
  15. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +23 -1
  16. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
  17. package/dist/plugins/specweave-github/lib/github-client-v2.js +95 -0
  18. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  19. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +1 -1
  20. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.d.ts.map +1 -1
  21. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js +1 -1
  22. package/dist/plugins/specweave-github/lib/github-spec-commit-sync.js.map +1 -1
  23. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts +1 -1
  24. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
  25. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +1 -1
  26. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
  27. package/dist/plugins/specweave-github/lib/types.d.ts +20 -0
  28. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -1
  29. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +1 -1
  30. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts.map +1 -1
  31. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js +1 -1
  32. package/dist/plugins/specweave-jira/lib/jira-spec-commit-sync.js.map +1 -1
  33. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts +1 -1
  34. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.d.ts.map +1 -1
  35. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js +1 -1
  36. package/dist/plugins/specweave-jira/lib/jira-spec-content-sync.js.map +1 -1
  37. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +2 -2
  38. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -1
  39. package/dist/plugins/specweave-jira/lib/setup-wizard.js +1 -1
  40. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -1
  41. package/dist/src/adapters/claude/adapter.js +1 -1
  42. package/dist/src/adapters/claude/adapter.js.map +1 -1
  43. package/dist/src/cli/commands/detect-project.js +1 -1
  44. package/dist/src/cli/commands/detect-project.js.map +1 -1
  45. package/dist/src/cli/commands/detect-specs.js +1 -1
  46. package/dist/src/cli/commands/detect-specs.js.map +1 -1
  47. package/dist/src/cli/commands/import-docs.js +1 -1
  48. package/dist/src/cli/commands/import-docs.js.map +1 -1
  49. package/dist/src/cli/commands/init-multiproject.js +1 -1
  50. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  51. package/dist/src/cli/commands/init.d.ts.map +1 -1
  52. package/dist/src/cli/commands/init.js +31 -1
  53. package/dist/src/cli/commands/init.js.map +1 -1
  54. package/dist/src/cli/commands/jobs.js +15 -1
  55. package/dist/src/cli/commands/jobs.js.map +1 -1
  56. package/dist/src/cli/commands/migrate-to-multiproject.js +1 -1
  57. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  58. package/dist/src/cli/commands/switch-project.js +1 -1
  59. package/dist/src/cli/commands/switch-project.js.map +1 -1
  60. package/dist/src/cli/commands/sync-scheduled.d.ts +38 -0
  61. package/dist/src/cli/commands/sync-scheduled.d.ts.map +1 -0
  62. package/dist/src/cli/commands/sync-scheduled.js +170 -0
  63. package/dist/src/cli/commands/sync-scheduled.js.map +1 -0
  64. package/dist/src/cli/helpers/init/external-import-grouping.d.ts +53 -0
  65. package/dist/src/cli/helpers/init/external-import-grouping.d.ts.map +1 -0
  66. package/dist/src/cli/helpers/init/external-import-grouping.js +287 -0
  67. package/dist/src/cli/helpers/init/external-import-grouping.js.map +1 -0
  68. package/dist/src/cli/helpers/init/external-import.d.ts +1 -34
  69. package/dist/src/cli/helpers/init/external-import.d.ts.map +1 -1
  70. package/dist/src/cli/helpers/init/external-import.js +15 -486
  71. package/dist/src/cli/helpers/init/external-import.js.map +1 -1
  72. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts +58 -0
  73. package/dist/src/cli/helpers/init/living-docs-preflight.d.ts.map +1 -0
  74. package/dist/src/cli/helpers/init/living-docs-preflight.js +290 -0
  75. package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -0
  76. package/dist/src/cli/helpers/init/sync-profile-helpers.d.ts +48 -0
  77. package/dist/src/cli/helpers/init/sync-profile-helpers.d.ts.map +1 -0
  78. package/dist/src/cli/helpers/init/sync-profile-helpers.js +238 -0
  79. package/dist/src/cli/helpers/init/sync-profile-helpers.js.map +1 -0
  80. package/dist/src/cli/helpers/init/types.d.ts +1 -0
  81. package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
  82. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
  83. package/dist/src/cli/helpers/issue-tracker/ado.js +113 -3
  84. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  85. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  86. package/dist/src/cli/helpers/issue-tracker/index.js +2 -287
  87. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  88. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts +25 -0
  89. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -0
  90. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +306 -0
  91. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -0
  92. package/dist/src/cli/helpers/issue-tracker/types.d.ts +27 -0
  93. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -1
  94. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -1
  95. package/dist/src/cli/workers/living-docs-worker.d.ts +16 -0
  96. package/dist/src/cli/workers/living-docs-worker.d.ts.map +1 -0
  97. package/dist/src/cli/workers/living-docs-worker.js +395 -0
  98. package/dist/src/cli/workers/living-docs-worker.js.map +1 -0
  99. package/dist/src/core/background/job-dependency.d.ts +45 -0
  100. package/dist/src/core/background/job-dependency.d.ts.map +1 -0
  101. package/dist/src/core/background/job-dependency.js +144 -0
  102. package/dist/src/core/background/job-dependency.js.map +1 -0
  103. package/dist/src/core/background/job-launcher.d.ts +21 -1
  104. package/dist/src/core/background/job-launcher.d.ts.map +1 -1
  105. package/dist/src/core/background/job-launcher.js +93 -0
  106. package/dist/src/core/background/job-launcher.js.map +1 -1
  107. package/dist/src/core/background/types.d.ts +73 -2
  108. package/dist/src/core/background/types.d.ts.map +1 -1
  109. package/dist/src/core/brownfield/importer.js +1 -1
  110. package/dist/src/core/brownfield/importer.js.map +1 -1
  111. package/dist/src/core/comment-builder.d.ts +1 -1
  112. package/dist/src/core/comment-builder.d.ts.map +1 -1
  113. package/dist/src/core/{cost-tracker.d.ts → cost/cost-tracker.d.ts} +2 -2
  114. package/dist/src/core/cost/cost-tracker.d.ts.map +1 -0
  115. package/dist/src/core/{cost-tracker.js → cost/cost-tracker.js} +2 -2
  116. package/dist/src/core/cost/cost-tracker.js.map +1 -0
  117. package/dist/src/core/credentials/credentials-manager.d.ts.map +1 -0
  118. package/dist/src/core/credentials/credentials-manager.js.map +1 -0
  119. package/dist/src/core/increment/discipline-checker.js +1 -1
  120. package/dist/src/core/increment/discipline-checker.js.map +1 -1
  121. package/dist/src/core/increment/increment-archiver.d.ts +9 -8
  122. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  123. package/dist/src/core/increment/increment-archiver.js +40 -42
  124. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  125. package/dist/src/core/increment/increment-status.d.ts.map +1 -0
  126. package/dist/src/core/{increment-status.js → increment/increment-status.js} +1 -1
  127. package/dist/src/core/increment/increment-status.js.map +1 -0
  128. package/dist/src/core/increment/increment-utils.d.ts.map +1 -0
  129. package/dist/src/core/increment/increment-utils.js.map +1 -0
  130. package/dist/src/core/increment/metadata-validator.js +1 -1
  131. package/dist/src/core/increment/metadata-validator.js.map +1 -1
  132. package/dist/src/core/living-docs/checkpoint-manager.d.ts +120 -0
  133. package/dist/src/core/living-docs/checkpoint-manager.d.ts.map +1 -0
  134. package/dist/src/core/living-docs/checkpoint-manager.js +231 -0
  135. package/dist/src/core/living-docs/checkpoint-manager.js.map +1 -0
  136. package/dist/src/core/living-docs/discovery.d.ts +91 -0
  137. package/dist/src/core/living-docs/discovery.d.ts.map +1 -0
  138. package/dist/src/core/living-docs/discovery.js +656 -0
  139. package/dist/src/core/living-docs/discovery.js.map +1 -0
  140. package/dist/src/core/living-docs/feature-archiver.d.ts +23 -4
  141. package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
  142. package/dist/src/core/living-docs/feature-archiver.js +133 -30
  143. package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
  144. package/dist/src/core/living-docs/foundation-builder.d.ts +37 -0
  145. package/dist/src/core/living-docs/foundation-builder.d.ts.map +1 -0
  146. package/dist/src/core/living-docs/foundation-builder.js +357 -0
  147. package/dist/src/core/living-docs/foundation-builder.js.map +1 -0
  148. package/dist/src/core/living-docs/living-docs-sync.d.ts +58 -0
  149. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  150. package/dist/src/core/living-docs/living-docs-sync.js +204 -7
  151. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  152. package/dist/src/core/living-docs/module-analyzer.d.ts +97 -0
  153. package/dist/src/core/living-docs/module-analyzer.d.ts.map +1 -0
  154. package/dist/src/core/living-docs/module-analyzer.js +427 -0
  155. package/dist/src/core/living-docs/module-analyzer.js.map +1 -0
  156. package/dist/src/core/living-docs/suggestions-generator.d.ts +112 -0
  157. package/dist/src/core/living-docs/suggestions-generator.d.ts.map +1 -0
  158. package/dist/src/core/living-docs/suggestions-generator.js +362 -0
  159. package/dist/src/core/living-docs/suggestions-generator.js.map +1 -0
  160. package/dist/src/core/living-docs/workitem-matcher.d.ts +116 -0
  161. package/dist/src/core/living-docs/workitem-matcher.d.ts.map +1 -0
  162. package/dist/src/core/living-docs/workitem-matcher.js +356 -0
  163. package/dist/src/core/living-docs/workitem-matcher.js.map +1 -0
  164. package/dist/src/core/{plugin-loader.d.ts → plugins/plugin-loader.d.ts} +1 -1
  165. package/dist/src/core/plugins/plugin-loader.d.ts.map +1 -0
  166. package/dist/src/core/{plugin-loader.js → plugins/plugin-loader.js} +2 -2
  167. package/dist/src/core/plugins/plugin-loader.js.map +1 -0
  168. package/dist/src/core/{project-manager.d.ts → project/project-manager.d.ts} +1 -1
  169. package/dist/src/core/project/project-manager.d.ts.map +1 -0
  170. package/dist/src/core/{project-manager.js → project/project-manager.js} +3 -3
  171. package/dist/src/core/project/project-manager.js.map +1 -0
  172. package/dist/src/core/project/project-structure-detector.d.ts.map +1 -0
  173. package/dist/src/core/project/project-structure-detector.js.map +1 -0
  174. package/dist/src/core/{rfc-generator-v2.d.ts → rfc/rfc-generator-v2.d.ts} +1 -1
  175. package/dist/src/core/rfc/rfc-generator-v2.d.ts.map +1 -0
  176. package/dist/src/core/{rfc-generator-v2.js → rfc/rfc-generator-v2.js} +1 -1
  177. package/dist/src/core/rfc/rfc-generator-v2.js.map +1 -0
  178. package/dist/src/core/scheduler/index.d.ts +1 -0
  179. package/dist/src/core/scheduler/index.d.ts.map +1 -1
  180. package/dist/src/core/scheduler/index.js +1 -0
  181. package/dist/src/core/scheduler/index.js.map +1 -1
  182. package/dist/src/core/scheduler/scheduled-job.d.ts +1 -1
  183. package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -1
  184. package/dist/src/core/scheduler/scheduled-job.js.map +1 -1
  185. package/dist/src/core/scheduler/session-sync-executor.d.ts +138 -0
  186. package/dist/src/core/scheduler/session-sync-executor.d.ts.map +1 -0
  187. package/dist/src/core/scheduler/session-sync-executor.js +333 -0
  188. package/dist/src/core/scheduler/session-sync-executor.js.map +1 -0
  189. package/dist/src/core/{spec-content-sync.d.ts → specs/spec-content-sync.d.ts} +2 -2
  190. package/dist/src/core/specs/spec-content-sync.d.ts.map +1 -0
  191. package/dist/src/core/{spec-content-sync.js → specs/spec-content-sync.js} +1 -1
  192. package/dist/src/core/specs/spec-content-sync.js.map +1 -0
  193. package/dist/src/core/{spec-detector.d.ts → specs/spec-detector.d.ts} +1 -1
  194. package/dist/src/core/specs/spec-detector.d.ts.map +1 -0
  195. package/dist/src/core/{spec-detector.js → specs/spec-detector.js} +1 -1
  196. package/dist/src/core/specs/spec-detector.js.map +1 -0
  197. package/dist/src/core/{spec-identifier-detector.d.ts → specs/spec-identifier-detector.d.ts} +2 -2
  198. package/dist/src/core/specs/spec-identifier-detector.d.ts.map +1 -0
  199. package/dist/src/core/{spec-identifier-detector.js → specs/spec-identifier-detector.js} +1 -1
  200. package/dist/src/core/specs/spec-identifier-detector.js.map +1 -0
  201. package/dist/src/core/specs/spec-metadata-manager.js +1 -1
  202. package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
  203. package/dist/src/core/specs/spec-task-mapper.d.ts.map +1 -0
  204. package/dist/src/core/specs/spec-task-mapper.js.map +1 -0
  205. package/dist/src/core/sync/sync-audit-logger.d.ts +62 -0
  206. package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -1
  207. package/dist/src/core/sync/sync-audit-logger.js +59 -0
  208. package/dist/src/core/sync/sync-audit-logger.js.map +1 -1
  209. package/dist/src/importers/item-converter.d.ts +51 -27
  210. package/dist/src/importers/item-converter.d.ts.map +1 -1
  211. package/dist/src/importers/item-converter.js +219 -179
  212. package/dist/src/importers/item-converter.js.map +1 -1
  213. package/dist/src/importers/markdown-generator.d.ts +75 -0
  214. package/dist/src/importers/markdown-generator.d.ts.map +1 -0
  215. package/dist/src/importers/markdown-generator.js +250 -0
  216. package/dist/src/importers/markdown-generator.js.map +1 -0
  217. package/dist/src/integrations/ado/ado-client.d.ts +93 -0
  218. package/dist/src/integrations/ado/ado-client.d.ts.map +1 -1
  219. package/dist/src/integrations/ado/ado-client.js +172 -1
  220. package/dist/src/integrations/ado/ado-client.js.map +1 -1
  221. package/dist/src/integrations/jira/jira-client.d.ts +44 -0
  222. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
  223. package/dist/src/integrations/jira/jira-client.js +119 -1
  224. package/dist/src/integrations/jira/jira-client.js.map +1 -1
  225. package/dist/src/integrations/jira/jira-incremental-mapper.js +2 -2
  226. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -1
  227. package/dist/src/integrations/jira/jira-mapper.js +1 -1
  228. package/dist/src/integrations/jira/jira-mapper.js.map +1 -1
  229. package/dist/src/living-docs/epic-id-allocator.d.ts +177 -0
  230. package/dist/src/living-docs/epic-id-allocator.d.ts.map +1 -0
  231. package/dist/src/living-docs/epic-id-allocator.js +363 -0
  232. package/dist/src/living-docs/epic-id-allocator.js.map +1 -0
  233. package/dist/src/sync/external-change-puller.d.ts +94 -0
  234. package/dist/src/sync/external-change-puller.d.ts.map +1 -0
  235. package/dist/src/sync/external-change-puller.js +181 -0
  236. package/dist/src/sync/external-change-puller.js.map +1 -0
  237. package/dist/src/sync/index.d.ts +4 -0
  238. package/dist/src/sync/index.d.ts.map +1 -1
  239. package/dist/src/sync/index.js +2 -0
  240. package/dist/src/sync/index.js.map +1 -1
  241. package/dist/src/sync/living-docs-updater.d.ts +93 -0
  242. package/dist/src/sync/living-docs-updater.d.ts.map +1 -0
  243. package/dist/src/sync/living-docs-updater.js +218 -0
  244. package/dist/src/sync/living-docs-updater.js.map +1 -0
  245. package/dist/src/testing/test-generator.js +1 -1
  246. package/dist/src/testing/test-generator.js.map +1 -1
  247. package/dist/src/utils/cost-reporter.d.ts +1 -1
  248. package/dist/src/utils/cost-reporter.d.ts.map +1 -1
  249. package/dist/src/utils/model-selection.js +4 -4
  250. package/dist/src/utils/model-selection.js.map +1 -1
  251. package/dist/src/utils/pricing-constants.d.ts +2 -2
  252. package/dist/src/utils/pricing-constants.js +2 -2
  253. package/package.json +1 -1
  254. package/plugins/specweave/.claude-plugin/plugin.json +1 -28
  255. package/plugins/specweave/agents/code-standards-detective/AGENT.md +3 -3
  256. package/plugins/specweave/agents/infrastructure/AGENT.md +4 -0
  257. package/plugins/specweave/agents/performance/AGENT.md +2 -2
  258. package/plugins/specweave/agents/reflective-reviewer/AGENT.md +3 -3
  259. package/plugins/specweave/agents/translator/AGENT.md +2 -2
  260. package/plugins/specweave/commands/specweave-costs.md +2 -2
  261. package/plugins/specweave/commands/specweave-do.md +2 -2
  262. package/plugins/specweave/hooks/lib/scheduler-startup.sh +59 -8
  263. package/plugins/specweave/skills/code-reviewer/SKILL.md +1 -1
  264. package/plugins/specweave/skills/role-orchestrator/README.md +1 -1
  265. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +8 -2
  266. package/plugins/specweave-ado/agents/ado-multi-project-mapper/AGENT.md +2 -2
  267. package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +2 -2
  268. package/plugins/specweave-ado/lib/ado-spec-commit-sync.d.ts +1 -1
  269. package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +1 -1
  270. package/plugins/specweave-ado/lib/ado-spec-commit-sync.ts +1 -1
  271. package/plugins/specweave-ado/lib/ado-spec-content-sync.js +1 -1
  272. package/plugins/specweave-ado/lib/ado-spec-content-sync.ts +1 -1
  273. package/plugins/specweave-ado/lib/conflict-resolver.js +87 -0
  274. package/plugins/specweave-ado/lib/conflict-resolver.ts +124 -0
  275. package/plugins/specweave-ado/skills/specweave-ado-mapper/SKILL.md +1 -1
  276. package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +3 -3
  277. package/plugins/specweave-backend/skills/dotnet-backend/SKILL.md +1 -1
  278. package/plugins/specweave-backend/skills/nodejs-backend/SKILL.md +1 -1
  279. package/plugins/specweave-backend/skills/python-backend/SKILL.md +1 -1
  280. package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +6 -1
  281. package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +2 -2
  282. package/plugins/specweave-diagrams/skills/diagrams-architect/SKILL.md +1 -1
  283. package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +4 -0
  284. package/plugins/specweave-github/agents/github-manager/AGENT.md +1 -1
  285. package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +11 -1
  286. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +6 -1
  287. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +96 -0
  288. package/plugins/specweave-github/lib/github-client-v2.js +97 -0
  289. package/plugins/specweave-github/lib/github-client-v2.ts +115 -1
  290. package/plugins/specweave-github/lib/github-spec-commit-sync.d.ts +1 -1
  291. package/plugins/specweave-github/lib/github-spec-commit-sync.js +1 -1
  292. package/plugins/specweave-github/lib/github-spec-commit-sync.ts +1 -1
  293. package/plugins/specweave-github/lib/github-spec-content-sync.js +1 -1
  294. package/plugins/specweave-github/lib/github-spec-content-sync.ts +1 -1
  295. package/plugins/specweave-github/lib/types.ts +21 -0
  296. package/plugins/specweave-infrastructure/agents/devops/AGENT.md +1 -1
  297. package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +3 -3
  298. package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +2 -2
  299. package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +3 -3
  300. package/plugins/specweave-infrastructure/agents/sre/AGENT.md +2 -2
  301. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +11 -1
  302. package/plugins/specweave-jira/commands/import-projects.js +1 -1
  303. package/plugins/specweave-jira/commands/import-projects.ts +1 -1
  304. package/plugins/specweave-jira/lib/jira-spec-commit-sync.d.ts +1 -1
  305. package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +1 -1
  306. package/plugins/specweave-jira/lib/jira-spec-commit-sync.ts +1 -1
  307. package/plugins/specweave-jira/lib/jira-spec-content-sync.js +1 -1
  308. package/plugins/specweave-jira/lib/jira-spec-content-sync.ts +1 -1
  309. package/plugins/specweave-jira/lib/setup-wizard.js +2 -2
  310. package/plugins/specweave-jira/lib/setup-wizard.ts +2 -2
  311. package/plugins/specweave-jira/skills/specweave-jira-mapper/SKILL.md +1 -1
  312. package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +5 -1
  313. package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +6 -1
  314. package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +6 -1
  315. package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +3 -3
  316. package/plugins/specweave-ml/agents/data-scientist/AGENT.md +2 -1
  317. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +2 -1
  318. package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +3 -3
  319. package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +6 -1
  320. package/plugins/specweave-payments/agents/payment-integration/AGENT.md +3 -3
  321. package/plugins/specweave-release/agents/release-manager/AGENT.md +6 -1
  322. package/plugins/specweave-release/commands/specweave-release-npm.md +8 -0
  323. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +144 -0
  324. package/plugins/specweave-testing/agents/qa-engineer/AGENT.md +5 -0
  325. package/src/templates/AGENTS.md.template +97 -0
  326. package/dist/src/core/cost-tracker.d.ts.map +0 -1
  327. package/dist/src/core/cost-tracker.js.map +0 -1
  328. package/dist/src/core/credentials-manager.d.ts.map +0 -1
  329. package/dist/src/core/credentials-manager.js.map +0 -1
  330. package/dist/src/core/increment-status.d.ts.map +0 -1
  331. package/dist/src/core/increment-status.js.map +0 -1
  332. package/dist/src/core/increment-utils.d.ts.map +0 -1
  333. package/dist/src/core/increment-utils.js.map +0 -1
  334. package/dist/src/core/plugin-loader.d.ts.map +0 -1
  335. package/dist/src/core/plugin-loader.js.map +0 -1
  336. package/dist/src/core/project-manager.d.ts.map +0 -1
  337. package/dist/src/core/project-manager.js.map +0 -1
  338. package/dist/src/core/project-structure-detector.d.ts.map +0 -1
  339. package/dist/src/core/project-structure-detector.js.map +0 -1
  340. package/dist/src/core/rfc-generator-v2.d.ts.map +0 -1
  341. package/dist/src/core/rfc-generator-v2.js.map +0 -1
  342. package/dist/src/core/spec-content-sync.d.ts.map +0 -1
  343. package/dist/src/core/spec-content-sync.js.map +0 -1
  344. package/dist/src/core/spec-detector.d.ts.map +0 -1
  345. package/dist/src/core/spec-detector.js.map +0 -1
  346. package/dist/src/core/spec-identifier-detector.d.ts.map +0 -1
  347. package/dist/src/core/spec-identifier-detector.js.map +0 -1
  348. package/dist/src/core/spec-task-mapper.d.ts.map +0 -1
  349. package/dist/src/core/spec-task-mapper.js.map +0 -1
  350. package/dist/src/utils/spec-parser.d.ts +0 -145
  351. package/dist/src/utils/spec-parser.d.ts.map +0 -1
  352. package/dist/src/utils/spec-parser.js +0 -640
  353. package/dist/src/utils/spec-parser.js.map +0 -1
  354. package/plugins/specweave/agents/pm/AGENT.md.bak2 +0 -1754
  355. package/plugins/specweave/hooks/hooks.json.bak +0 -72
  356. package/plugins/specweave/hooks/hooks.json.v1-backup +0 -16
  357. package/plugins/specweave/hooks/v2/hooks.json +0 -16
  358. /package/dist/src/core/{credentials-manager.d.ts → credentials/credentials-manager.d.ts} +0 -0
  359. /package/dist/src/core/{credentials-manager.js → credentials/credentials-manager.js} +0 -0
  360. /package/dist/src/core/{increment-status.d.ts → increment/increment-status.d.ts} +0 -0
  361. /package/dist/src/core/{increment-utils.d.ts → increment/increment-utils.d.ts} +0 -0
  362. /package/dist/src/core/{increment-utils.js → increment/increment-utils.js} +0 -0
  363. /package/dist/src/core/{project-structure-detector.d.ts → project/project-structure-detector.d.ts} +0 -0
  364. /package/dist/src/core/{project-structure-detector.js → project/project-structure-detector.js} +0 -0
  365. /package/dist/src/core/{spec-task-mapper.d.ts → specs/spec-task-mapper.d.ts} +0 -0
  366. /package/dist/src/core/{spec-task-mapper.js → specs/spec-task-mapper.js} +0 -0
@@ -1,6 +1,11 @@
1
1
  ---
2
2
  name: user-story-updater
3
3
  description: Updates GitHub issues for user stories with proper ACs and tasks. Activates for update user story issue, fix GitHub issue format, add checkable ACs, refresh user story issue, sync user story to GitHub.
4
+ model: claude-opus-4-5-20251101
5
+ model_preference: opus
6
+ cost_profile: execution
7
+ fallback_behavior: flexible
8
+ max_response_tokens: 2000
4
9
  ---
5
10
 
6
11
  # User Story Updater Agent
@@ -17,7 +22,7 @@ description: Updates GitHub issues for user stories with proper ACs and tasks. A
17
22
  Task({
18
23
  subagent_type: "specweave-github:user-story-updater:user-story-updater",
19
24
  prompt: "Update GitHub issue #501 for user story FS-031/US-004 with checkable ACs and task connections",
20
- model: "haiku" // optional: haiku, sonnet, opus
25
+ model: "opus" // default: opus (best quality)
21
26
  });
22
27
  ```
23
28
 
@@ -70,3 +70,99 @@
70
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
71
  [Mon Dec 1 22:16:16 EST 2025] [GitHub] 🔗 GitHub sync hook fired
72
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
73
+ [Mon Dec 1 22:19:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
74
+ [Mon Dec 1 22:19: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
75
+ [Mon Dec 1 22:19:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
76
+ [Mon Dec 1 22:19: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
77
+ [Mon Dec 1 22:19:18 EST 2025] [GitHub] 🔗 GitHub sync hook fired
78
+ [Mon Dec 1 22:19: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
79
+ [Mon Dec 1 22:48:44 EST 2025] [GitHub] 🔗 GitHub sync hook fired
80
+ [Mon Dec 1 22:48:44 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
81
+ [Mon Dec 1 22:48:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
82
+ [Mon Dec 1 22:48: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
83
+ [Mon Dec 1 22:48:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
84
+ [Mon Dec 1 22:48: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
85
+ [Mon Dec 1 22:49:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
86
+ [Mon Dec 1 22:49:11 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
87
+ [Mon Dec 1 22:49:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
88
+ [Mon Dec 1 22:49:11 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
89
+ [Mon Dec 1 22:49:11 EST 2025] [GitHub] 🔗 GitHub sync hook fired
90
+ [Mon Dec 1 22:49:11 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
91
+ [Mon Dec 1 23:06:19 EST 2025] [GitHub] 🔗 GitHub sync hook fired
92
+ [Mon Dec 1 23:06:19 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
93
+ [Mon Dec 1 23:06:20 EST 2025] [GitHub] 🔗 GitHub sync hook fired
94
+ [Mon Dec 1 23:06:20 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
95
+ [Mon Dec 1 23:06:20 EST 2025] [GitHub] 🔗 GitHub sync hook fired
96
+ [Mon Dec 1 23:06:20 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
97
+ [Mon Dec 1 23:09:23 EST 2025] [GitHub] 🔗 GitHub sync hook fired
98
+ [Mon Dec 1 23:09:23 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
99
+ [Mon Dec 1 23:09:23 EST 2025] [GitHub] 🔗 GitHub sync hook fired
100
+ [Mon Dec 1 23:09:23 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
101
+ [Mon Dec 1 23:09:23 EST 2025] [GitHub] 🔗 GitHub sync hook fired
102
+ [Mon Dec 1 23:09:23 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
103
+ [Mon Dec 1 23:09:53 EST 2025] [GitHub] 🔗 GitHub sync hook fired
104
+ [Mon Dec 1 23:09:53 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
105
+ [Mon Dec 1 23:09:53 EST 2025] [GitHub] 🔗 GitHub sync hook fired
106
+ [Mon Dec 1 23:09:53 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
107
+ [Mon Dec 1 23:09:54 EST 2025] [GitHub] 🔗 GitHub sync hook fired
108
+ [Mon Dec 1 23:09:54 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
109
+ [Mon Dec 1 23:10:28 EST 2025] [GitHub] 🔗 GitHub sync hook fired
110
+ [Mon Dec 1 23:10:28 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
111
+ [Mon Dec 1 23:10:28 EST 2025] [GitHub] 🔗 GitHub sync hook fired
112
+ [Mon Dec 1 23:10:28 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
113
+ [Mon Dec 1 23:10:28 EST 2025] [GitHub] 🔗 GitHub sync hook fired
114
+ [Mon Dec 1 23:10:28 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
115
+ [Mon Dec 1 23:11:28 EST 2025] [GitHub] 🔗 GitHub sync hook fired
116
+ [Mon Dec 1 23:11:28 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
117
+ [Mon Dec 1 23:11:29 EST 2025] [GitHub] 🔗 GitHub sync hook fired
118
+ [Mon Dec 1 23:11:29 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
119
+ [Mon Dec 1 23:11:29 EST 2025] [GitHub] 🔗 GitHub sync hook fired
120
+ [Mon Dec 1 23:11:29 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
121
+ [Mon Dec 1 23:20:04 EST 2025] [GitHub] 🔗 GitHub sync hook fired
122
+ [Mon Dec 1 23:20:04 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
123
+ [Mon Dec 1 23:20:04 EST 2025] [GitHub] 🔗 GitHub sync hook fired
124
+ [Mon Dec 1 23:20:04 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
125
+ [Mon Dec 1 23:20:04 EST 2025] [GitHub] 🔗 GitHub sync hook fired
126
+ [Mon Dec 1 23:20:04 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
127
+ [Mon Dec 1 23:20:33 EST 2025] [GitHub] 🔗 GitHub sync hook fired
128
+ [Mon Dec 1 23:20: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
129
+ [Mon Dec 1 23:20:33 EST 2025] [GitHub] 🔗 GitHub sync hook fired
130
+ [Mon Dec 1 23:20: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
131
+ [Mon Dec 1 23:20:34 EST 2025] [GitHub] 🔗 GitHub sync hook fired
132
+ [Mon Dec 1 23:20:34 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
133
+ [Tue Dec 2 00:40:04 EST 2025] [GitHub] 🔗 GitHub sync hook fired
134
+ [Tue Dec 2 00:40:04 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
135
+ [Tue Dec 2 00:40:04 EST 2025] [GitHub] 🔗 GitHub sync hook fired
136
+ [Tue Dec 2 00:40:04 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
137
+ [Tue Dec 2 00:40:05 EST 2025] [GitHub] 🔗 GitHub sync hook fired
138
+ [Tue Dec 2 00:40:05 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
139
+ [Tue Dec 2 00:40:32 EST 2025] [GitHub] 🔗 GitHub sync hook fired
140
+ [Tue Dec 2 00: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
141
+ [Tue Dec 2 00:40:32 EST 2025] [GitHub] 🔗 GitHub sync hook fired
142
+ [Tue Dec 2 00: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
143
+ [Tue Dec 2 00:40:32 EST 2025] [GitHub] 🔗 GitHub sync hook fired
144
+ [Tue Dec 2 00: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
145
+ [Tue Dec 2 00:40:50 EST 2025] [GitHub] 🔗 GitHub sync hook fired
146
+ [Tue Dec 2 00:40:50 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
147
+ [Tue Dec 2 00:40:50 EST 2025] [GitHub] 🔗 GitHub sync hook fired
148
+ [Tue Dec 2 00:40:50 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
149
+ [Tue Dec 2 00:40:50 EST 2025] [GitHub] 🔗 GitHub sync hook fired
150
+ [Tue Dec 2 00:40:50 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
151
+ [Tue Dec 2 00:41:15 EST 2025] [GitHub] 🔗 GitHub sync hook fired
152
+ [Tue Dec 2 00:41: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
153
+ [Tue Dec 2 00:41:15 EST 2025] [GitHub] 🔗 GitHub sync hook fired
154
+ [Tue Dec 2 00:41: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
155
+ [Tue Dec 2 00:41:16 EST 2025] [GitHub] 🔗 GitHub sync hook fired
156
+ [Tue Dec 2 00:41: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
157
+ [Tue Dec 2 01:27:16 EST 2025] [GitHub] 🔗 GitHub sync hook fired
158
+ [Tue Dec 2 01:27: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
159
+ [Tue Dec 2 01:27:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
160
+ [Tue Dec 2 01:27: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
161
+ [Tue Dec 2 01:27:17 EST 2025] [GitHub] 🔗 GitHub sync hook fired
162
+ [Tue Dec 2 01:27: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
163
+ [Tue Dec 2 01:27:44 EST 2025] [GitHub] 🔗 GitHub sync hook fired
164
+ [Tue Dec 2 01:27:44 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
165
+ [Tue Dec 2 01:27:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
166
+ [Tue Dec 2 01:27: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
167
+ [Tue Dec 2 01:27:45 EST 2025] [GitHub] 🔗 GitHub sync hook fired
168
+ [Tue Dec 2 01:27: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
@@ -629,6 +629,103 @@ ${body}`;
629
629
  sleep(ms) {
630
630
  return new Promise((resolve) => setTimeout(resolve, ms));
631
631
  }
632
+ // ==========================================================================
633
+ // Pull Sync - External Change Detection (Increment 0089)
634
+ // ==========================================================================
635
+ /**
636
+ * Fetch recently changed issues for pull sync
637
+ *
638
+ * Uses GitHub Issues API with `since` parameter to find issues
639
+ * that have been updated since a given timestamp.
640
+ *
641
+ * @param since - Timestamp to query changes from
642
+ * @param linkedIssueNumbers - Optional list of issue numbers to filter (linked items only)
643
+ * @returns Array of external changes with changedAt, changedBy, and current values
644
+ */
645
+ async fetchRecentChanges(since, linkedIssueNumbers) {
646
+ const sinceISO = since.toISOString();
647
+ const jqFilter = linkedIssueNumbers && linkedIssueNumbers.length > 0 ? `.[] | select(.number | IN(${linkedIssueNumbers.join(",")})) | {number, title, state, updated_at, user: .user.login, assignee: .assignee.login, labels: [.labels[].name]}` : `.[] | {number, title, state, updated_at, user: .user.login, assignee: .assignee.login, labels: [.labels[].name]}`;
648
+ const result = await execFileNoThrow("gh", [
649
+ "api",
650
+ `repos/${this.fullRepo}/issues`,
651
+ "--method",
652
+ "GET",
653
+ "-f",
654
+ `since=${sinceISO}`,
655
+ "-f",
656
+ "state=all",
657
+ "-f",
658
+ "sort=updated",
659
+ "-f",
660
+ "direction=desc",
661
+ "-f",
662
+ "per_page=100",
663
+ "--jq",
664
+ jqFilter
665
+ ]);
666
+ if (result.exitCode !== 0) {
667
+ throw new Error(
668
+ `Failed to fetch recent changes: ${result.stderr || result.stdout}`
669
+ );
670
+ }
671
+ const lines = result.stdout.trim().split("\n").filter((l) => l.trim());
672
+ const issues = [];
673
+ for (const line of lines) {
674
+ try {
675
+ issues.push(JSON.parse(line));
676
+ } catch {
677
+ }
678
+ }
679
+ const changes = issues.map((issue) => ({
680
+ platform: "github",
681
+ externalId: `GH-${issue.number}`,
682
+ issueNumber: issue.number,
683
+ changedAt: issue.updated_at || (/* @__PURE__ */ new Date()).toISOString(),
684
+ changedBy: issue.user || "unknown",
685
+ changedFields: [],
686
+ // GitHub doesn't provide changelog in list API
687
+ currentState: {
688
+ status: issue.state,
689
+ labels: issue.labels || [],
690
+ assignee: issue.assignee || null
691
+ }
692
+ }));
693
+ return changes;
694
+ }
695
+ /**
696
+ * Get issue events for detailed change tracking
697
+ *
698
+ * Use this for detailed changelog when needed.
699
+ * GET /repos/{owner}/{repo}/issues/{issue_number}/events
700
+ *
701
+ * @param issueNumber - Issue number
702
+ * @param perPage - Limit number of events
703
+ * @returns Array of events with action details
704
+ */
705
+ async getIssueEvents(issueNumber, perPage = 30) {
706
+ const result = await execFileNoThrow("gh", [
707
+ "api",
708
+ `repos/${this.fullRepo}/issues/${issueNumber}/events`,
709
+ "-f",
710
+ `per_page=${perPage}`,
711
+ "--jq",
712
+ ".[].{event, created_at, actor: .actor.login}"
713
+ ]);
714
+ if (result.exitCode !== 0) {
715
+ throw new Error(
716
+ `Failed to get issue events: ${result.stderr || result.stdout}`
717
+ );
718
+ }
719
+ const lines = result.stdout.trim().split("\n").filter((l) => l.trim());
720
+ const events = [];
721
+ for (const line of lines) {
722
+ try {
723
+ events.push(JSON.parse(line));
724
+ } catch {
725
+ }
726
+ }
727
+ return events;
728
+ }
632
729
  }
633
730
  export {
634
731
  GitHubClientV2
@@ -9,7 +9,7 @@
9
9
  */
10
10
 
11
11
  import { execFileNoThrow } from '../../../src/utils/execFileNoThrow.js';
12
- import { GitHubIssue, GitHubMilestone } from './types';
12
+ import { GitHubIssue, GitHubMilestone, GitHubExternalChange } from './types';
13
13
  import { SyncProfile, GitHubConfig, TimeRangePreset } from '../../../src/core/types/sync-profile';
14
14
 
15
15
  export class GitHubClientV2 {
@@ -812,4 +812,118 @@ export class GitHubClientV2 {
812
812
  private sleep(ms: number): Promise<void> {
813
813
  return new Promise((resolve) => setTimeout(resolve, ms));
814
814
  }
815
+
816
+ // ==========================================================================
817
+ // Pull Sync - External Change Detection (Increment 0089)
818
+ // ==========================================================================
819
+
820
+ /**
821
+ * Fetch recently changed issues for pull sync
822
+ *
823
+ * Uses GitHub Issues API with `since` parameter to find issues
824
+ * that have been updated since a given timestamp.
825
+ *
826
+ * @param since - Timestamp to query changes from
827
+ * @param linkedIssueNumbers - Optional list of issue numbers to filter (linked items only)
828
+ * @returns Array of external changes with changedAt, changedBy, and current values
829
+ */
830
+ async fetchRecentChanges(
831
+ since: Date,
832
+ linkedIssueNumbers?: number[]
833
+ ): Promise<GitHubExternalChange[]> {
834
+ // Build JQ filter for issues updated since timestamp
835
+ const sinceISO = since.toISOString();
836
+
837
+ // Query parameters - MUST use .[] to iterate array from GitHub API
838
+ const jqFilter = linkedIssueNumbers && linkedIssueNumbers.length > 0
839
+ ? `.[] | select(.number | IN(${linkedIssueNumbers.join(',')})) | {number, title, state, updated_at, user: .user.login, assignee: .assignee.login, labels: [.labels[].name]}`
840
+ : `.[] | {number, title, state, updated_at, user: .user.login, assignee: .assignee.login, labels: [.labels[].name]}`;
841
+
842
+ // Use GitHub API to fetch issues updated since timestamp
843
+ const result = await execFileNoThrow('gh', [
844
+ 'api',
845
+ `repos/${this.fullRepo}/issues`,
846
+ '--method', 'GET',
847
+ '-f', `since=${sinceISO}`,
848
+ '-f', 'state=all',
849
+ '-f', 'sort=updated',
850
+ '-f', 'direction=desc',
851
+ '-f', 'per_page=100',
852
+ '--jq', jqFilter,
853
+ ]);
854
+
855
+ if (result.exitCode !== 0) {
856
+ throw new Error(
857
+ `Failed to fetch recent changes: ${result.stderr || result.stdout}`
858
+ );
859
+ }
860
+
861
+ // Parse NDJSON output (one JSON object per line)
862
+ const lines = result.stdout.trim().split('\n').filter(l => l.trim());
863
+ const issues: any[] = [];
864
+
865
+ for (const line of lines) {
866
+ try {
867
+ issues.push(JSON.parse(line));
868
+ } catch {
869
+ // Skip malformed lines
870
+ }
871
+ }
872
+
873
+ // Map to GitHubExternalChange format
874
+ const changes: GitHubExternalChange[] = issues.map(issue => ({
875
+ platform: 'github' as const,
876
+ externalId: `GH-${issue.number}`,
877
+ issueNumber: issue.number,
878
+ changedAt: issue.updated_at || new Date().toISOString(),
879
+ changedBy: issue.user || 'unknown',
880
+ changedFields: [] as Array<{ field: string; oldValue: unknown; newValue: unknown }>, // GitHub doesn't provide changelog in list API
881
+ currentState: {
882
+ status: issue.state as 'open' | 'closed',
883
+ labels: issue.labels || [],
884
+ assignee: issue.assignee || null,
885
+ },
886
+ }));
887
+
888
+ return changes;
889
+ }
890
+
891
+ /**
892
+ * Get issue events for detailed change tracking
893
+ *
894
+ * Use this for detailed changelog when needed.
895
+ * GET /repos/{owner}/{repo}/issues/{issue_number}/events
896
+ *
897
+ * @param issueNumber - Issue number
898
+ * @param perPage - Limit number of events
899
+ * @returns Array of events with action details
900
+ */
901
+ async getIssueEvents(issueNumber: number, perPage = 30): Promise<any[]> {
902
+ const result = await execFileNoThrow('gh', [
903
+ 'api',
904
+ `repos/${this.fullRepo}/issues/${issueNumber}/events`,
905
+ '-f', `per_page=${perPage}`,
906
+ '--jq', '.[].{event, created_at, actor: .actor.login}',
907
+ ]);
908
+
909
+ if (result.exitCode !== 0) {
910
+ throw new Error(
911
+ `Failed to get issue events: ${result.stderr || result.stdout}`
912
+ );
913
+ }
914
+
915
+ // Parse NDJSON output
916
+ const lines = result.stdout.trim().split('\n').filter(l => l.trim());
917
+ const events: any[] = [];
918
+
919
+ for (const line of lines) {
920
+ try {
921
+ events.push(JSON.parse(line));
922
+ } catch {
923
+ // Skip malformed lines
924
+ }
925
+ }
926
+
927
+ return events;
928
+ }
815
929
  }
@@ -5,7 +5,7 @@
5
5
  * This enables traceability from spec user stories to actual code changes.
6
6
  */
7
7
  import { GitCommit, GitRepository } from '../../../src/utils/git-utils.js';
8
- import { UserStory } from '../../../src/core/spec-task-mapper.js';
8
+ import { UserStory } from '../../../src/core/specs/spec-task-mapper.js';
9
9
  export interface SyncOptions {
10
10
  incrementPath: string;
11
11
  dryRun?: boolean;
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  getSpecTaskMapping,
12
12
  getCompletedUserStories
13
- } from "../../../src/core/spec-task-mapper.js";
13
+ } from "../../../src/core/specs/spec-task-mapper.js";
14
14
  import {
15
15
  buildUserStoryComment,
16
16
  buildCommitBatchComment,
@@ -22,7 +22,7 @@ import {
22
22
  getCompletedUserStories,
23
23
  SpecTaskMapping,
24
24
  UserStory,
25
- } from '../../../src/core/spec-task-mapper.js';
25
+ } from '../../../src/core/specs/spec-task-mapper.js';
26
26
  import {
27
27
  buildUserStoryComment,
28
28
  buildCommitBatchComment,
@@ -5,7 +5,7 @@ import {
5
5
  buildExternalDescription,
6
6
  hasExternalLink,
7
7
  updateSpecWithExternalLink
8
- } from "../../../src/core/spec-content-sync.js";
8
+ } from "../../../src/core/specs/spec-content-sync.js";
9
9
  import { ProgressCommentBuilder } from "./progress-comment-builder.js";
10
10
  import path from "path";
11
11
  import fs from "fs/promises";
@@ -19,7 +19,7 @@ import {
19
19
  wasSpecModifiedSinceSync,
20
20
  SpecContent,
21
21
  ContentSyncResult,
22
- } from '../../../src/core/spec-content-sync.js';
22
+ } from '../../../src/core/specs/spec-content-sync.js';
23
23
  import { ProgressCommentBuilder } from './progress-comment-builder.js';
24
24
  import path from 'path';
25
25
  import fs from 'fs/promises';
@@ -122,3 +122,24 @@ export interface ThreeLayerSyncResult {
122
122
  conflicts: string[];
123
123
  errors: string[];
124
124
  }
125
+
126
+ /**
127
+ * External change representation for pull sync (Increment 0089)
128
+ */
129
+ export interface GitHubExternalChange {
130
+ platform: 'github';
131
+ externalId: string;
132
+ issueNumber: number;
133
+ changedAt: string; // ISO timestamp
134
+ changedBy: string; // Username
135
+ changedFields: Array<{
136
+ field: string;
137
+ oldValue: unknown;
138
+ newValue: unknown;
139
+ }>;
140
+ currentState: {
141
+ status: 'open' | 'closed';
142
+ labels: string[];
143
+ assignee: string | null;
144
+ };
145
+ }
@@ -21,7 +21,7 @@ max_response_tokens: 2000
21
21
  Task({
22
22
  subagent_type: "specweave-infrastructure:devops:devops",
23
23
  prompt: "Deploy application to AWS ECS Fargate with Terraform and configure CI/CD pipeline with GitHub Actions",
24
- model: "haiku" // optional: haiku, sonnet, opus
24
+ model: "opus" // default: opus (best quality)
25
25
  });
26
26
  ```
27
27
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: network-engineer
3
3
  description: Expert network engineer specializing in modern cloud networking, security architectures, and performance optimization. Masters multi-cloud connectivity, service mesh, zero-trust networking, SSL/TLS, global load balancing, and advanced troubleshooting. Handles CDN optimization, network automation, and compliance. Use PROACTIVELY for network design, connectivity issues, or performance optimization.
4
- model: claude-haiku-4-5-20251001
5
- model_preference: haiku
4
+ model: claude-opus-4-5-20251101
5
+ model_preference: opus
6
6
  cost_profile: execution
7
7
  fallback_behavior: flexible
8
8
  max_response_tokens: 2000
@@ -24,7 +24,7 @@ You are a network engineer specializing in modern cloud networking, security, an
24
24
  Task({
25
25
  subagent_type: "specweave-infrastructure:network-engineer:network-engineer",
26
26
  prompt: "Design secure multi-cloud network architecture with zero-trust connectivity and service mesh",
27
- model: "haiku" // optional: haiku, sonnet, opus
27
+ model: "opus" // default: opus (best quality)
28
28
  });
29
29
  ```
30
30
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: observability-engineer
3
3
  description: Production observability architect - metrics, logs, traces, SLOs. Opinionated on OpenTelemetry-first, Prometheus+Grafana stack, alert fatigue prevention. Activates for monitoring, observability, SLI/SLO, alerting, Prometheus, Grafana, tracing, logging, Datadog, New Relic.
4
- model: claude-sonnet-4-5-20250929
5
- model_preference: haiku
4
+ model: claude-opus-4-5-20251101
5
+ model_preference: opus
6
6
  cost_profile: execution
7
7
  fallback_behavior: flexible
8
8
  max_response_tokens: 2000
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: performance-engineer
3
3
  description: Expert performance engineer specializing in modern observability, application optimization, and scalable system performance. Masters OpenTelemetry, distributed tracing, load testing, multi-tier caching, Core Web Vitals, and performance monitoring. Handles end-to-end optimization, real user monitoring, and scalability patterns. Use PROACTIVELY for performance optimization, observability, or scalability challenges.
4
- model: claude-sonnet-4-5-20250929
5
- model_preference: haiku
4
+ model: claude-opus-4-5-20251101
5
+ model_preference: opus
6
6
  cost_profile: execution
7
7
  fallback_behavior: flexible
8
8
  max_response_tokens: 2000
@@ -24,7 +24,7 @@ You are a performance engineer specializing in modern application optimization,
24
24
  Task({
25
25
  subagent_type: "specweave-infrastructure:performance-engineer:performance-engineer",
26
26
  prompt: "Analyze and optimize API performance with distributed tracing, implement multi-tier caching, and load testing",
27
- model: "haiku" // optional: haiku, sonnet, opus
27
+ model: "opus" // default: opus (best quality)
28
28
  });
29
29
  ```
30
30
 
@@ -2,7 +2,7 @@
2
2
  name: sre
3
3
  description: Site Reliability Engineering expert for incident response, troubleshooting, and mitigation. Handles production incidents across UI, backend, database, infrastructure, and security layers. Performs root cause analysis, creates mitigation plans, writes post-mortems, and maintains runbooks. Activates for incident, outage, slow, down, performance, latency, error rate, 5xx, 500, 502, 503, 504, crash, memory leak, CPU spike, disk full, database deadlock, SRE, on-call, SEV1, SEV2, SEV3, production issue, debugging, root cause analysis, RCA, post-mortem, runbook, health check, service degradation, timeout, connection refused, high load, monitor, alert, p95, p99, response time, throughput, Prometheus, Grafana, Datadog, New Relic, PagerDuty, observability, logging, tracing, metrics.
4
4
  tools: Read, Bash, Grep
5
- model: claude-sonnet-4-5-20250929
5
+ model: claude-opus-4-5-20251101
6
6
  model_preference: auto
7
7
  cost_profile: hybrid
8
8
  fallback_behavior: auto
@@ -25,7 +25,7 @@ When generating comprehensive incident reports that exceed 1000 lines (e.g., com
25
25
  Task({
26
26
  subagent_type: "specweave-infrastructure:sre:sre",
27
27
  prompt: "Diagnose why dashboard loading is slow (10 seconds) and provide immediate and long-term mitigation plans",
28
- model: "haiku" // optional: haiku, sonnet, opus
28
+ model: "opus" // default: opus (best quality)
29
29
  });
30
30
  ```
31
31
 
@@ -1,3 +1,13 @@
1
+ ---
2
+ name: jira-manager
3
+ description: Jira integration specialist for SpecWeave increments. Handles epic creation, bidirectional sync, task completion status updates, and cross-system consistency between SpecWeave and Jira.
4
+ model: claude-opus-4-5-20251101
5
+ model_preference: opus
6
+ cost_profile: execution
7
+ fallback_behavior: flexible
8
+ max_response_tokens: 2000
9
+ ---
10
+
1
11
  # Jira Manager Agent
2
12
 
3
13
  ## 🚀 How to Invoke This Agent
@@ -10,7 +20,7 @@
10
20
  Task({
11
21
  subagent_type: "specweave-jira:jira-manager:jira-manager",
12
22
  prompt: "Create Jira epic for increment 0005 and sync all tasks from spec.md and tasks.md",
13
- model: "haiku" // optional: haiku, sonnet, opus
23
+ model: "opus" // default: opus (best quality)
14
24
  });
15
25
  ```
16
26
 
@@ -6,7 +6,7 @@ import { JiraClient } from "../../../src/integrations/jira/jira-client.js";
6
6
  import { FilterProcessor } from "../../../src/integrations/jira/filter-processor.js";
7
7
  import { mergeEnvList, getEnvValue } from "../../../src/utils/env-manager.js";
8
8
  import { consoleLogger } from "../../../src/utils/logger.js";
9
- import { credentialsManager } from "../../../src/core/credentials-manager.js";
9
+ import { credentialsManager } from "../../../src/core/credentials/credentials-manager.js";
10
10
  async function importProjects(options = {}) {
11
11
  const logger = options.logger ?? consoleLogger;
12
12
  const projectRoot = process.cwd();
@@ -26,7 +26,7 @@ import { FilterProcessor, type FilterOptions } from '../../../src/integrations/j
26
26
  import { AsyncProjectLoader } from '../../../src/cli/helpers/async-project-loader.js';
27
27
  import { mergeEnvList, getEnvValue } from '../../../src/utils/env-manager.js';
28
28
  import { consoleLogger, type Logger } from '../../../src/utils/logger.js';
29
- import { credentialsManager } from '../../../src/core/credentials-manager.js';
29
+ import { credentialsManager } from '../../../src/core/credentials/credentials-manager.js';
30
30
 
31
31
  export interface ImportProjectsOptions {
32
32
  filter?: 'active' | 'archived' | 'all';
@@ -5,7 +5,7 @@
5
5
  * This enables traceability from spec user stories to actual code changes.
6
6
  */
7
7
  import { GitCommit, GitRepository } from '../../../src/utils/git-utils.js';
8
- import { UserStory } from '../../../src/core/spec-task-mapper.js';
8
+ import { UserStory } from '../../../src/core/specs/spec-task-mapper.js';
9
9
  export interface JiraConfig {
10
10
  domain: string;
11
11
  email: string;
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  getSpecTaskMapping,
12
12
  getCompletedUserStories
13
- } from "../../../src/core/spec-task-mapper.js";
13
+ } from "../../../src/core/specs/spec-task-mapper.js";
14
14
  import {
15
15
  buildUserStoryComment,
16
16
  buildCommitBatchComment,
@@ -22,7 +22,7 @@ import {
22
22
  getCompletedUserStories,
23
23
  SpecTaskMapping,
24
24
  UserStory,
25
- } from '../../../src/core/spec-task-mapper.js';
25
+ } from '../../../src/core/specs/spec-task-mapper.js';
26
26
  import {
27
27
  buildUserStoryComment,
28
28
  buildCommitBatchComment,
@@ -4,7 +4,7 @@ import {
4
4
  detectContentChanges,
5
5
  hasExternalLink,
6
6
  updateSpecWithExternalLink
7
- } from "../../../src/core/spec-content-sync.js";
7
+ } from "../../../src/core/specs/spec-content-sync.js";
8
8
  import path from "path";
9
9
  import fs from "fs/promises";
10
10
  async function syncSpecContentToJira(options) {
@@ -18,7 +18,7 @@ import {
18
18
  updateSpecWithExternalLink,
19
19
  SpecContent,
20
20
  ContentSyncResult,
21
- } from '../../../src/core/spec-content-sync.js';
21
+ } from '../../../src/core/specs/spec-content-sync.js';
22
22
  import path from 'path';
23
23
  import fs from 'fs/promises';
24
24
 
@@ -1,6 +1,6 @@
1
1
  import { confirm, select, input, password } from "@inquirer/prompts";
2
- import { credentialsManager } from "../../../src/core/credentials-manager.js";
3
- import { JiraCredentials as JiraCredentials2 } from "../../../src/core/credentials-manager.js";
2
+ import { credentialsManager } from "../../../src/core/credentials/credentials-manager.js";
3
+ import { JiraCredentials as JiraCredentials2 } from "../../../src/core/credentials/credentials-manager.js";
4
4
  async function detectJiraCredentials() {
5
5
  if (credentialsManager.hasJiraCredentials()) {
6
6
  try {