specweave 0.17.16 → 0.17.17

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 (195) hide show
  1. package/CLAUDE.md +405 -2495
  2. package/README.md +92 -2
  3. package/dist/locales/de/.gitkeep +0 -0
  4. package/dist/locales/de/cli.json +108 -0
  5. package/dist/locales/en/cli.json +287 -0
  6. package/dist/locales/en/errors.json +7 -0
  7. package/dist/locales/en/templates.json +6 -0
  8. package/dist/locales/es/.gitkeep +0 -0
  9. package/dist/locales/es/cli.json +41 -0
  10. package/dist/locales/fr/.gitkeep +0 -0
  11. package/dist/locales/fr/cli.json +108 -0
  12. package/dist/locales/ja/.gitkeep +0 -0
  13. package/dist/locales/ja/cli.json +108 -0
  14. package/dist/locales/ko/.gitkeep +0 -0
  15. package/dist/locales/ko/cli.json +108 -0
  16. package/dist/locales/pt/.gitkeep +0 -0
  17. package/dist/locales/pt/cli.json +108 -0
  18. package/dist/locales/ru/.gitkeep +0 -0
  19. package/dist/locales/ru/cli.json +269 -0
  20. package/dist/locales/zh/.gitkeep +0 -0
  21. package/dist/locales/zh/cli.json +108 -0
  22. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -1
  23. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +188 -36
  24. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -1
  25. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts +54 -0
  26. package/dist/plugins/specweave-ado/lib/ado-status-sync.d.ts.map +1 -0
  27. package/dist/plugins/specweave-ado/lib/ado-status-sync.js +86 -0
  28. package/dist/plugins/specweave-ado/lib/ado-status-sync.js.map +1 -0
  29. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +25 -0
  30. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +1 -0
  31. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +191 -0
  32. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +1 -0
  33. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts +139 -0
  34. package/dist/plugins/specweave-github/lib/duplicate-detector.d.ts.map +1 -0
  35. package/dist/plugins/specweave-github/lib/duplicate-detector.js +389 -0
  36. package/dist/plugins/specweave-github/lib/duplicate-detector.js.map +1 -0
  37. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts +26 -0
  38. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts.map +1 -0
  39. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js +249 -0
  40. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js.map +1 -0
  41. package/dist/plugins/specweave-github/lib/github-client.d.ts +1 -1
  42. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -1
  43. package/dist/plugins/specweave-github/lib/github-client.js +25 -13
  44. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -1
  45. package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts +83 -0
  46. package/dist/plugins/specweave-github/lib/github-epic-sync.d.ts.map +1 -0
  47. package/dist/plugins/specweave-github/lib/github-epic-sync.js +451 -0
  48. package/dist/plugins/specweave-github/lib/github-epic-sync.js.map +1 -0
  49. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts +43 -0
  50. package/dist/plugins/specweave-github/lib/github-status-sync.d.ts.map +1 -0
  51. package/dist/plugins/specweave-github/lib/github-status-sync.js +82 -0
  52. package/dist/plugins/specweave-github/lib/github-status-sync.js.map +1 -0
  53. package/dist/plugins/specweave-github/lib/task-sync.d.ts +5 -0
  54. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -1
  55. package/dist/plugins/specweave-github/lib/task-sync.js +38 -2
  56. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -1
  57. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +26 -0
  58. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +1 -0
  59. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +195 -0
  60. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +1 -0
  61. package/dist/plugins/specweave-jira/lib/jira-epic-sync.d.ts +66 -0
  62. package/dist/plugins/specweave-jira/lib/jira-epic-sync.d.ts.map +1 -0
  63. package/dist/plugins/specweave-jira/lib/jira-epic-sync.js +274 -0
  64. package/dist/plugins/specweave-jira/lib/jira-epic-sync.js.map +1 -0
  65. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts +56 -0
  66. package/dist/plugins/specweave-jira/lib/jira-status-sync.d.ts.map +1 -0
  67. package/dist/plugins/specweave-jira/lib/jira-status-sync.js +93 -0
  68. package/dist/plugins/specweave-jira/lib/jira-status-sync.js.map +1 -0
  69. package/dist/spec-parser.js +629 -0
  70. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  71. package/dist/src/cli/helpers/issue-tracker/index.js +48 -3
  72. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  73. package/dist/src/core/living-docs/hierarchy-mapper.d.ts +142 -0
  74. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -0
  75. package/dist/src/core/living-docs/hierarchy-mapper.js +453 -0
  76. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -0
  77. package/dist/src/core/living-docs/index.d.ts +10 -84
  78. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  79. package/dist/src/core/living-docs/index.js +10 -164
  80. package/dist/src/core/living-docs/index.js.map +1 -1
  81. package/dist/src/core/living-docs/spec-distributor.d.ts +106 -0
  82. package/dist/src/core/living-docs/spec-distributor.d.ts.map +1 -0
  83. package/dist/src/core/living-docs/spec-distributor.js +823 -0
  84. package/dist/src/core/living-docs/spec-distributor.js.map +1 -0
  85. package/dist/src/core/living-docs/types.d.ts +201 -0
  86. package/dist/src/core/living-docs/types.d.ts.map +1 -0
  87. package/dist/src/core/living-docs/types.js +15 -0
  88. package/dist/src/core/living-docs/types.js.map +1 -0
  89. package/dist/src/core/logging/prompt-logger.d.ts +70 -0
  90. package/dist/src/core/logging/prompt-logger.d.ts.map +1 -0
  91. package/dist/src/core/logging/prompt-logger.js +247 -0
  92. package/dist/src/core/logging/prompt-logger.js.map +1 -0
  93. package/dist/src/core/status-line/status-line-manager.d.ts +15 -24
  94. package/dist/src/core/status-line/status-line-manager.d.ts.map +1 -1
  95. package/dist/src/core/status-line/status-line-manager.js +33 -70
  96. package/dist/src/core/status-line/status-line-manager.js.map +1 -1
  97. package/dist/src/core/status-line/types.d.ts +19 -31
  98. package/dist/src/core/status-line/types.d.ts.map +1 -1
  99. package/dist/src/core/status-line/types.js +5 -9
  100. package/dist/src/core/status-line/types.js.map +1 -1
  101. package/dist/src/core/sync/conflict-resolver.d.ts +66 -0
  102. package/dist/src/core/sync/conflict-resolver.d.ts.map +1 -0
  103. package/dist/src/core/sync/conflict-resolver.js +108 -0
  104. package/dist/src/core/sync/conflict-resolver.js.map +1 -0
  105. package/dist/src/core/sync/enhanced-content-builder.d.ts +77 -0
  106. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -0
  107. package/dist/src/core/sync/enhanced-content-builder.js +199 -0
  108. package/dist/src/core/sync/enhanced-content-builder.js.map +1 -0
  109. package/dist/src/core/sync/label-detector.d.ts +66 -0
  110. package/dist/src/core/sync/label-detector.d.ts.map +1 -0
  111. package/dist/src/core/sync/label-detector.js +211 -0
  112. package/dist/src/core/sync/label-detector.js.map +1 -0
  113. package/dist/src/core/sync/retry-logic.d.ts +64 -0
  114. package/dist/src/core/sync/retry-logic.d.ts.map +1 -0
  115. package/dist/src/core/sync/retry-logic.js +165 -0
  116. package/dist/src/core/sync/retry-logic.js.map +1 -0
  117. package/dist/src/core/sync/spec-content-sync.d.ts +88 -0
  118. package/dist/src/core/sync/spec-content-sync.d.ts.map +1 -0
  119. package/dist/src/core/sync/spec-content-sync.js +5 -0
  120. package/dist/src/core/sync/spec-content-sync.js.map +1 -0
  121. package/dist/src/core/sync/spec-increment-mapper.d.ts +100 -0
  122. package/dist/src/core/sync/spec-increment-mapper.d.ts.map +1 -0
  123. package/dist/src/core/sync/spec-increment-mapper.js +424 -0
  124. package/dist/src/core/sync/spec-increment-mapper.js.map +1 -0
  125. package/dist/src/core/sync/status-cache.d.ts +91 -0
  126. package/dist/src/core/sync/status-cache.d.ts.map +1 -0
  127. package/dist/src/core/sync/status-cache.js +140 -0
  128. package/dist/src/core/sync/status-cache.js.map +1 -0
  129. package/dist/src/core/sync/status-mapper.d.ts +69 -0
  130. package/dist/src/core/sync/status-mapper.d.ts.map +1 -0
  131. package/dist/src/core/sync/status-mapper.js +90 -0
  132. package/dist/src/core/sync/status-mapper.js.map +1 -0
  133. package/dist/src/core/sync/status-sync-engine.d.ts +162 -0
  134. package/dist/src/core/sync/status-sync-engine.d.ts.map +1 -0
  135. package/dist/src/core/sync/status-sync-engine.js +347 -0
  136. package/dist/src/core/sync/status-sync-engine.js.map +1 -0
  137. package/dist/src/core/sync/sync-event-logger.d.ts +99 -0
  138. package/dist/src/core/sync/sync-event-logger.d.ts.map +1 -0
  139. package/dist/src/core/sync/sync-event-logger.js +103 -0
  140. package/dist/src/core/sync/sync-event-logger.js.map +1 -0
  141. package/dist/src/core/sync/workflow-detector.d.ts +95 -0
  142. package/dist/src/core/sync/workflow-detector.d.ts.map +1 -0
  143. package/dist/src/core/sync/workflow-detector.js +175 -0
  144. package/dist/src/core/sync/workflow-detector.js.map +1 -0
  145. package/dist/src/core/types/config.d.ts.map +1 -1
  146. package/dist/src/core/types/config.js +31 -0
  147. package/dist/src/core/types/config.js.map +1 -1
  148. package/dist/src/utils/github-url.d.ts +53 -0
  149. package/dist/src/utils/github-url.d.ts.map +1 -0
  150. package/dist/src/utils/github-url.js +90 -0
  151. package/dist/src/utils/github-url.js.map +1 -0
  152. package/dist/src/utils/spec-parser.d.ts +145 -0
  153. package/dist/src/utils/spec-parser.d.ts.map +1 -0
  154. package/dist/src/utils/spec-parser.js +640 -0
  155. package/dist/src/utils/spec-parser.js.map +1 -0
  156. package/dist/tsconfig.tsbuildinfo +1 -0
  157. package/package.json +1 -1
  158. package/plugins/specweave/agents/pm/AGENT.md +1 -1
  159. package/plugins/specweave/agents/pm/templates/increment-spec.md +158 -0
  160. package/plugins/specweave/agents/pm/templates/living-docs-spec.md +113 -0
  161. package/plugins/specweave/commands/specweave-done.md +163 -0
  162. package/plugins/specweave/hooks/lib/update-status-line.sh +79 -111
  163. package/plugins/specweave/hooks/post-increment-planning.sh +107 -35
  164. package/plugins/specweave/lib/hooks/sync-living-docs.js +139 -34
  165. package/plugins/specweave/lib/hooks/sync-living-docs.ts +234 -38
  166. package/plugins/specweave/skills/SKILLS-INDEX.md +4 -24
  167. package/plugins/specweave/skills/increment-planner/SKILL.md +94 -0
  168. package/plugins/specweave/skills/increment-work-router/SKILL.md +466 -0
  169. package/plugins/specweave-ado/lib/ado-status-sync.js +80 -0
  170. package/plugins/specweave-ado/lib/ado-status-sync.ts +121 -0
  171. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +170 -0
  172. package/plugins/specweave-github/commands/specweave-github-cleanup-duplicates.md +205 -0
  173. package/plugins/specweave-github/commands/specweave-github-sync-epic.md +248 -0
  174. package/plugins/specweave-github/lib/duplicate-detector.js +370 -0
  175. package/plugins/specweave-github/lib/duplicate-detector.ts +525 -0
  176. package/plugins/specweave-github/lib/enhanced-github-sync.js +220 -0
  177. package/plugins/specweave-github/lib/enhanced-github-sync.ts +322 -0
  178. package/plugins/specweave-github/lib/github-client.js +21 -10
  179. package/plugins/specweave-github/lib/github-client.ts +27 -16
  180. package/plugins/specweave-github/lib/github-epic-sync.js +489 -0
  181. package/plugins/specweave-github/lib/github-epic-sync.ts +690 -0
  182. package/plugins/specweave-github/lib/github-status-sync.js +71 -0
  183. package/plugins/specweave-github/lib/github-status-sync.ts +107 -0
  184. package/plugins/specweave-github/lib/task-sync.js +33 -2
  185. package/plugins/specweave-github/lib/task-sync.ts +44 -2
  186. package/plugins/specweave-jira/commands/specweave-jira-sync-epic.md +267 -0
  187. package/plugins/specweave-jira/lib/enhanced-jira-sync.ts.disabled +222 -0
  188. package/plugins/specweave-jira/lib/jira-epic-sync.js +304 -0
  189. package/plugins/specweave-jira/lib/jira-epic-sync.ts +459 -0
  190. package/plugins/specweave-jira/lib/jira-status-sync.js +79 -0
  191. package/plugins/specweave-jira/lib/jira-status-sync.ts +139 -0
  192. package/src/templates/AGENTS.md.template +88 -1
  193. package/src/templates/CLAUDE.md.template +49 -0
  194. package/plugins/specweave/skills/increment-quality-judge/SKILL.md +0 -524
  195. package/plugins/specweave/skills/plugin-installer/SKILL.md +0 -353
@@ -1 +1 @@
1
- {"version":3,"file":"sync-living-docs.js","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/sync-living-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-living-docs.js","sourceRoot":"","sources":["../../../../../plugins/specweave/lib/hooks/sync-living-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Azure DevOps Status Sync
3
+ *
4
+ * Synchronizes SpecWeave increment statuses with ADO work item states.
5
+ *
6
+ * ADO Work Item State Updates:
7
+ * - Uses JSON Patch format for updates
8
+ * - System.State field controls work item state
9
+ * - Available states: New, Active, On Hold, Resolved, Closed, Removed
10
+ *
11
+ * @module ado-status-sync
12
+ */
13
+ /**
14
+ * External status representation (ADO-specific)
15
+ */
16
+ export interface ExternalStatus {
17
+ state: string;
18
+ }
19
+ /**
20
+ * Azure DevOps Status Sync
21
+ *
22
+ * Handles status synchronization with ADO work items.
23
+ */
24
+ export declare class AdoStatusSync {
25
+ private client;
26
+ private organization;
27
+ private project;
28
+ constructor(organization: string, project: string, personalAccessToken: string);
29
+ /**
30
+ * Get current status from ADO work item
31
+ *
32
+ * @param workItemId - ADO work item ID (e.g., 123)
33
+ * @returns Current work item state
34
+ */
35
+ getStatus(workItemId: number): Promise<ExternalStatus>;
36
+ /**
37
+ * Update ADO work item state
38
+ *
39
+ * Uses JSON Patch format to update System.State field.
40
+ *
41
+ * @param workItemId - ADO work item ID (e.g., 123)
42
+ * @param status - Desired status
43
+ */
44
+ updateStatus(workItemId: number, status: ExternalStatus): Promise<void>;
45
+ /**
46
+ * Post comment about status change to ADO work item
47
+ *
48
+ * @param workItemId - ADO work item ID (e.g., 123)
49
+ * @param oldStatus - Previous SpecWeave status
50
+ * @param newStatus - New SpecWeave status
51
+ */
52
+ postStatusComment(workItemId: number, oldStatus: string, newStatus: string): Promise<void>;
53
+ }
54
+ //# sourceMappingURL=ado-status-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ado-status-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;gBAGtB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM;IAmB7B;;;;;OAKG;IACG,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAU5D;;;;;;;OAOG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E;;;;;;OAMG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Azure DevOps Status Sync
3
+ *
4
+ * Synchronizes SpecWeave increment statuses with ADO work item states.
5
+ *
6
+ * ADO Work Item State Updates:
7
+ * - Uses JSON Patch format for updates
8
+ * - System.State field controls work item state
9
+ * - Available states: New, Active, On Hold, Resolved, Closed, Removed
10
+ *
11
+ * @module ado-status-sync
12
+ */
13
+ import axios from 'axios';
14
+ /**
15
+ * Azure DevOps Status Sync
16
+ *
17
+ * Handles status synchronization with ADO work items.
18
+ */
19
+ export class AdoStatusSync {
20
+ constructor(organization, project, personalAccessToken) {
21
+ this.organization = organization;
22
+ this.project = project;
23
+ // Create ADO API client
24
+ this.client = axios.create({
25
+ baseURL: `https://dev.azure.com/${organization}/${project}/_apis`,
26
+ auth: {
27
+ username: '', // Empty for PAT auth
28
+ password: personalAccessToken
29
+ },
30
+ headers: {
31
+ 'Content-Type': 'application/json-patch+json',
32
+ 'Accept': 'application/json'
33
+ }
34
+ });
35
+ }
36
+ /**
37
+ * Get current status from ADO work item
38
+ *
39
+ * @param workItemId - ADO work item ID (e.g., 123)
40
+ * @returns Current work item state
41
+ */
42
+ async getStatus(workItemId) {
43
+ const response = await this.client.get(`/wit/workitems/${workItemId}?api-version=7.0`);
44
+ return {
45
+ state: response.data.fields['System.State']
46
+ };
47
+ }
48
+ /**
49
+ * Update ADO work item state
50
+ *
51
+ * Uses JSON Patch format to update System.State field.
52
+ *
53
+ * @param workItemId - ADO work item ID (e.g., 123)
54
+ * @param status - Desired status
55
+ */
56
+ async updateStatus(workItemId, status) {
57
+ // ADO uses JSON Patch format for updates
58
+ const patch = [
59
+ {
60
+ op: 'add',
61
+ path: '/fields/System.State',
62
+ value: status.state
63
+ }
64
+ ];
65
+ await this.client.patch(`/wit/workitems/${workItemId}?api-version=7.0`, patch);
66
+ }
67
+ /**
68
+ * Post comment about status change to ADO work item
69
+ *
70
+ * @param workItemId - ADO work item ID (e.g., 123)
71
+ * @param oldStatus - Previous SpecWeave status
72
+ * @param newStatus - New SpecWeave status
73
+ */
74
+ async postStatusComment(workItemId, oldStatus, newStatus) {
75
+ const text = `🔄 Status Update\n\n` +
76
+ `SpecWeave status changed:\n` +
77
+ `• From: ${oldStatus}\n` +
78
+ `• To: ${newStatus}\n` +
79
+ `• When: ${new Date().toISOString()}\n\n` +
80
+ `Synced from SpecWeave`;
81
+ await this.client.post(`/wit/workitems/${workItemId}/comments?api-version=7.0-preview.3`, {
82
+ text
83
+ });
84
+ }
85
+ }
86
+ //# sourceMappingURL=ado-status-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ado-status-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-status-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAwB,MAAM,OAAO,CAAC;AAS7C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAKxB,YACE,YAAoB,EACpB,OAAe,EACf,mBAA2B;QAE3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,wBAAwB;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,yBAAyB,YAAY,IAAI,OAAO,QAAQ;YACjE,IAAI,EAAE;gBACJ,QAAQ,EAAE,EAAE,EAAE,qBAAqB;gBACnC,QAAQ,EAAE,mBAAmB;aAC9B;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,6BAA6B;gBAC7C,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,kBAAkB,UAAU,kBAAkB,CAC/C,CAAC;QAEF,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAsB;QAC3D,yCAAyC;QACzC,MAAM,KAAK,GAAG;YACZ;gBACE,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB;SACF,CAAC;QAEF,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACrB,kBAAkB,UAAU,kBAAkB,EAC9C,KAAK,CACN,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,SAAiB,EACjB,SAAiB;QAEjB,MAAM,IAAI,GAAG,sBAAsB;YACjC,6BAA6B;YAC7B,WAAW,SAAS,IAAI;YACxB,SAAS,SAAS,IAAI;YACtB,WAAW,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM;YACzC,uBAAuB,CAAC;QAE1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,kBAAkB,UAAU,qCAAqC,EACjE;YACE,IAAI;SACL,CACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Enhanced Azure DevOps Spec Content Sync
3
+ *
4
+ * Uses EnhancedContentBuilder and SpecIncrementMapper for rich feature descriptions.
5
+ */
6
+ export interface EnhancedAdoSyncOptions {
7
+ specPath: string;
8
+ organization?: string;
9
+ project?: string;
10
+ dryRun?: boolean;
11
+ verbose?: boolean;
12
+ }
13
+ export interface EnhancedAdoSyncResult {
14
+ success: boolean;
15
+ action: 'created' | 'updated' | 'no-change' | 'error';
16
+ featureId?: number;
17
+ featureUrl?: string;
18
+ error?: string;
19
+ tasksLinked?: number;
20
+ }
21
+ /**
22
+ * Enhanced sync with rich content including task mappings
23
+ */
24
+ export declare function syncSpecToAdoWithEnhancedContent(options: EnhancedAdoSyncOptions): Promise<EnhancedAdoSyncResult>;
25
+ //# sourceMappingURL=enhanced-ado-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-ado-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/enhanced-ado-sync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAgIhC"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Enhanced Azure DevOps Spec Content Sync
3
+ *
4
+ * Uses EnhancedContentBuilder and SpecIncrementMapper for rich feature descriptions.
5
+ */
6
+ import { AdoClientV2 } from './ado-client-v2.js';
7
+ import { EnhancedContentBuilder } from '../../../src/core/sync/enhanced-content-builder.js';
8
+ import { SpecIncrementMapper } from '../../../src/core/sync/spec-increment-mapper.js';
9
+ import { parseSpecContent } from '../../../src/core/spec-content-sync.js';
10
+ import path from 'path';
11
+ import fs from 'fs/promises';
12
+ /**
13
+ * Enhanced sync with rich content including task mappings
14
+ */
15
+ export async function syncSpecToAdoWithEnhancedContent(options) {
16
+ const { specPath, organization, project, dryRun = false, verbose = false } = options;
17
+ try {
18
+ // 1. Parse spec content
19
+ const baseSpec = await parseSpecContent(specPath);
20
+ if (!baseSpec) {
21
+ return {
22
+ success: false,
23
+ action: 'error',
24
+ error: 'Failed to parse spec content',
25
+ };
26
+ }
27
+ if (verbose) {
28
+ console.log(`📄 Parsed spec: ${baseSpec.identifier.compact}`);
29
+ }
30
+ // 2. Build enhanced spec with task mappings
31
+ const specId = baseSpec.identifier.full || baseSpec.identifier.compact;
32
+ const rootDir = await findSpecWeaveRoot(specPath);
33
+ const mapper = new SpecIncrementMapper(rootDir);
34
+ const mapping = await mapper.mapSpecToIncrements(specId);
35
+ if (verbose) {
36
+ console.log(`🔗 Found ${mapping.increments.length} related increments`);
37
+ }
38
+ // 3. Build enhanced spec content
39
+ const taskMapping = buildTaskMapping(mapping.increments, organization, project);
40
+ const architectureDocs = await findArchitectureDocs(rootDir, specId);
41
+ const enhancedSpec = {
42
+ ...baseSpec,
43
+ summary: baseSpec.description,
44
+ taskMapping,
45
+ architectureDocs
46
+ };
47
+ // 4. Build external description
48
+ const builder = new EnhancedContentBuilder();
49
+ const description = builder.buildExternalDescription(enhancedSpec);
50
+ if (verbose) {
51
+ console.log(`📝 Generated description: ${description.length} characters`);
52
+ }
53
+ if (dryRun) {
54
+ console.log('🔍 DRY RUN - Would create/update feature with:');
55
+ console.log(` Title: ${baseSpec.title}`);
56
+ console.log(` Description length: ${description.length}`);
57
+ return {
58
+ success: true,
59
+ action: 'no-change',
60
+ tasksLinked: taskMapping?.tasks.length || 0
61
+ };
62
+ }
63
+ // 5. Create or update ADO feature
64
+ if (!organization || !project) {
65
+ return {
66
+ success: false,
67
+ action: 'error',
68
+ error: 'Azure DevOps organization/project not specified',
69
+ };
70
+ }
71
+ // Create a sync profile for the ADO client
72
+ const profile = {
73
+ provider: 'ado',
74
+ displayName: `${organization}/${project}`,
75
+ config: {
76
+ organization,
77
+ project
78
+ },
79
+ timeRange: { default: '1M', max: '6M' }
80
+ };
81
+ const pat = process.env.AZURE_DEVOPS_PAT || '';
82
+ const client = new AdoClientV2(profile, pat);
83
+ // Check if feature already exists
84
+ const existingFeature = await findExistingFeature(client, baseSpec.identifier.compact);
85
+ let result;
86
+ if (existingFeature) {
87
+ // Update existing feature
88
+ await client.updateWorkItem(existingFeature.id, {
89
+ title: `[${baseSpec.identifier.compact}] ${baseSpec.title}`,
90
+ description
91
+ });
92
+ result = {
93
+ success: true,
94
+ action: 'updated',
95
+ featureId: existingFeature.id,
96
+ featureUrl: `https://dev.azure.com/${organization}/${project}/_workitems/edit/${existingFeature.id}`,
97
+ tasksLinked: taskMapping?.tasks.length || 0
98
+ };
99
+ }
100
+ else {
101
+ // Create new feature (using createEpic which creates Feature work item type)
102
+ const feature = await client.createEpic({
103
+ title: `[${baseSpec.identifier.compact}] ${baseSpec.title}`,
104
+ description,
105
+ tags: ['spec', 'external-tool-sync']
106
+ });
107
+ result = {
108
+ success: true,
109
+ action: 'created',
110
+ featureId: feature.id,
111
+ featureUrl: `https://dev.azure.com/${organization}/${project}/_workitems/edit/${feature.id}`,
112
+ tasksLinked: taskMapping?.tasks.length || 0
113
+ };
114
+ }
115
+ if (verbose) {
116
+ console.log(`✅ ${result.action === 'created' ? 'Created' : 'Updated'} feature #${result.featureId}`);
117
+ }
118
+ return result;
119
+ }
120
+ catch (error) {
121
+ return {
122
+ success: false,
123
+ action: 'error',
124
+ error: error.message
125
+ };
126
+ }
127
+ }
128
+ // Helper functions
129
+ async function findSpecWeaveRoot(specPath) {
130
+ let currentDir = path.dirname(specPath);
131
+ while (true) {
132
+ const specweaveDir = path.join(currentDir, '.specweave');
133
+ try {
134
+ await fs.access(specweaveDir);
135
+ return currentDir;
136
+ }
137
+ catch {
138
+ const parentDir = path.dirname(currentDir);
139
+ if (parentDir === currentDir) {
140
+ throw new Error('.specweave directory not found');
141
+ }
142
+ currentDir = parentDir;
143
+ }
144
+ }
145
+ }
146
+ function buildTaskMapping(increments, organization, project) {
147
+ if (increments.length === 0)
148
+ return undefined;
149
+ const firstIncrement = increments[0];
150
+ const tasks = firstIncrement.tasks.map((task) => ({
151
+ id: task.id,
152
+ title: task.title,
153
+ userStories: task.userStories
154
+ }));
155
+ return {
156
+ incrementId: firstIncrement.id,
157
+ tasks,
158
+ tasksUrl: `https://dev.azure.com/${organization}/${project}/_git/repo?path=/.specweave/increments/${firstIncrement.id}/tasks.md`
159
+ };
160
+ }
161
+ async function findArchitectureDocs(rootDir, specId) {
162
+ const docs = [];
163
+ const archDir = path.join(rootDir, '.specweave/docs/internal/architecture');
164
+ try {
165
+ const adrDir = path.join(archDir, 'adr');
166
+ try {
167
+ const adrs = await fs.readdir(adrDir);
168
+ const relatedAdrs = adrs.filter(file => file.includes(specId.replace('spec-', '')));
169
+ for (const adr of relatedAdrs) {
170
+ docs.push({
171
+ type: 'adr',
172
+ path: path.join(adrDir, adr),
173
+ title: adr.replace('.md', '').replace(/-/g, ' ')
174
+ });
175
+ }
176
+ }
177
+ catch { }
178
+ }
179
+ catch { }
180
+ return docs;
181
+ }
182
+ async function findExistingFeature(client, specId) {
183
+ try {
184
+ const features = await client.queryWorkItems(`[System.Title] Contains '[${specId}]' AND [System.WorkItemType] = 'Feature'`);
185
+ return features[0] || null;
186
+ }
187
+ catch {
188
+ return null;
189
+ }
190
+ }
191
+ //# sourceMappingURL=enhanced-ado-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-ado-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/enhanced-ado-sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Global Duplicate Detection System for GitHub Issues
3
+ *
4
+ * CRITICAL ARCHITECTURE:
5
+ * ALL GitHub issue creation in SpecWeave MUST use this module.
6
+ * This is the SINGLE SOURCE OF TRUTH for duplicate prevention.
7
+ *
8
+ * THREE-PHASE PROTECTION:
9
+ * 1. Detection (Before Create): Search GitHub for existing issues
10
+ * 2. Verification (After Create): Count check to detect duplicates
11
+ * 3. Reflection (Auto-Correct): Close duplicate issues automatically
12
+ *
13
+ * USAGE:
14
+ * ```typescript
15
+ * // Simple: Create with full protection
16
+ * const result = await DuplicateDetector.createWithProtection({
17
+ * title: '[FS-031] Feature Title',
18
+ * body: 'Description...',
19
+ * titlePattern: '[FS-031]',
20
+ * labels: ['specweave', 'feature']
21
+ * });
22
+ *
23
+ * // Manual: Check before creating
24
+ * const existing = await DuplicateDetector.checkBeforeCreate('[FS-031]');
25
+ * if (!existing) {
26
+ * // Create issue...
27
+ * }
28
+ * ```
29
+ *
30
+ * @module duplicate-detector
31
+ */
32
+ export interface GitHubIssue {
33
+ number: number;
34
+ title: string;
35
+ url: string;
36
+ body?: string;
37
+ state?: 'open' | 'closed';
38
+ createdAt?: string;
39
+ }
40
+ export interface VerificationResult {
41
+ success: boolean;
42
+ expectedCount: number;
43
+ actualCount: number;
44
+ duplicates: GitHubIssue[];
45
+ message: string;
46
+ }
47
+ export interface CorrectionResult {
48
+ success: boolean;
49
+ duplicatesClosed: number;
50
+ keptIssue: number;
51
+ errors: string[];
52
+ }
53
+ export interface CreateOptions {
54
+ title: string;
55
+ body: string;
56
+ titlePattern: string;
57
+ incrementId?: string;
58
+ labels?: string[];
59
+ milestone?: string;
60
+ assignees?: string[];
61
+ repo?: string;
62
+ }
63
+ export interface CreateResult {
64
+ issue: GitHubIssue;
65
+ duplicatesFound: number;
66
+ duplicatesClosed: number;
67
+ wasReused: boolean;
68
+ }
69
+ export declare class DuplicateDetector {
70
+ /**
71
+ * PHASE 1: Detection (Before Creating Issue)
72
+ *
73
+ * Searches GitHub for existing issues matching the title pattern.
74
+ * This is the PRIMARY defense against duplicates.
75
+ *
76
+ * @param titlePattern - Pattern to search (e.g., "[FS-031]" or "[INC-0031]")
77
+ * @param incrementId - Optional increment ID for more precise matching
78
+ * @param repo - Optional repo (format: "owner/repo")
79
+ * @returns Existing issue if found, null otherwise
80
+ */
81
+ static checkBeforeCreate(titlePattern: string, incrementId?: string, repo?: string): Promise<GitHubIssue | null>;
82
+ /**
83
+ * PHASE 2: Verification (After Creating Issue)
84
+ *
85
+ * Counts issues matching the pattern and identifies duplicates.
86
+ * This is the SECONDARY defense - catches duplicates that slipped through.
87
+ *
88
+ * @param titlePattern - Pattern to search (e.g., "[FS-031]")
89
+ * @param expectedCount - Expected number of issues (usually 1)
90
+ * @param repo - Optional repo (format: "owner/repo")
91
+ * @returns Verification result with duplicate list
92
+ */
93
+ static verifyAfterCreate(titlePattern: string, expectedCount?: number, repo?: string): Promise<VerificationResult>;
94
+ /**
95
+ * PHASE 3: Reflection (Auto-Correct Duplicates)
96
+ *
97
+ * Automatically closes duplicate issues and keeps the oldest one.
98
+ * This is the CLEANUP phase - fixes problems that occurred.
99
+ *
100
+ * @param duplicates - List of duplicate issues to close
101
+ * @param keepIssueNumber - Issue number to keep (usually the oldest)
102
+ * @param repo - Optional repo (format: "owner/repo")
103
+ * @returns Correction result with count of closed issues
104
+ */
105
+ static correctDuplicates(duplicates: GitHubIssue[], keepIssueNumber: number, repo?: string): Promise<CorrectionResult>;
106
+ /**
107
+ * ALL-IN-ONE: Create Issue with Full Protection
108
+ *
109
+ * This is the RECOMMENDED way to create GitHub issues in SpecWeave.
110
+ * Combines all 3 phases: Detection → Creation → Verification → Reflection
111
+ *
112
+ * GUARANTEES:
113
+ * - No duplicates will be created
114
+ * - Existing duplicates will be detected and closed
115
+ * - Idempotent: can run multiple times safely
116
+ *
117
+ * @param options - Create options (title, body, labels, etc.)
118
+ * @returns Create result with issue details and duplicate stats
119
+ */
120
+ static createWithProtection(options: CreateOptions): Promise<CreateResult>;
121
+ /**
122
+ * Utility: Extract title pattern from full title
123
+ *
124
+ * Examples:
125
+ * - "[FS-031] Feature Title" → "[FS-031]"
126
+ * - "[INC-0031] Increment Title" → "[INC-0031]"
127
+ *
128
+ * @param title - Full issue title
129
+ * @returns Extracted pattern or null
130
+ */
131
+ static extractTitlePattern(title: string): string | null;
132
+ /**
133
+ * Utility: Check if GitHub CLI is available and authenticated
134
+ *
135
+ * @returns true if gh CLI is ready, false otherwise
136
+ */
137
+ static checkGitHubCLI(): boolean;
138
+ }
139
+ //# sourceMappingURL=duplicate-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate-detector.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-github/lib/duplicate-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD,qBAAa,iBAAiB;IAC5B;;;;;;;;;;OAUG;WACU,iBAAiB,CAC5B,YAAY,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA+D9B;;;;;;;;;;OAUG;WACU,iBAAiB,CAC5B,YAAY,EAAE,MAAM,EACpB,aAAa,GAAE,MAAU,EACzB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,CAAC;IAwF9B;;;;;;;;;;OAUG;WACU,iBAAiB,CAC5B,UAAU,EAAE,WAAW,EAAE,EACzB,eAAe,EAAE,MAAM,EACvB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC;IA0E5B;;;;;;;;;;;;;OAaG;WACU,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA+HhF;;;;;;;;;OASG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAKxD;;;;OAIG;IACH,MAAM,CAAC,cAAc,IAAI,OAAO;CAQjC"}