specweave 1.0.459 → 1.0.460

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.
@@ -55,6 +55,15 @@ export declare class AdoSpecSync {
55
55
  * Feature → Epic (Basic process), User Story → Issue (Basic process)
56
56
  */
57
57
  private resolveWorkItemType;
58
+ /**
59
+ * Resolve a work item state name for the given type.
60
+ * Basic process (Issue type) uses: "To Do", "Doing", "Done"
61
+ * Agile/Scrum process uses: "New", "Active", "Closed" / "Resolved" / "Done"
62
+ *
63
+ * Maps canonical states: 'New' → todo, 'Active' → in-progress, 'Closed' → done
64
+ */
65
+ private stateCache;
66
+ private resolveWorkItemState;
58
67
  /**
59
68
  * Sync spec to ADO Feature (CREATE or UPDATE)
60
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;AAIlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAA4B;gBAEtC,MAAM,EAAE,SAAS,EAAE,WAAW,GAAE,MAAsB,EAAE,SAAS,CAAC,EAAE,MAAM;IAoBtF;;;OAGG;YACW,oBAAoB;IAYlC;;;OAGG;YACW,mBAAmB;IAiBjC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+D5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsE1D;;OAEG;YACW,gBAAgB;IAqD9B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;YACW,eAAe;IAiE7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,WAAW;IAiEzB;;OAEG;YACW,WAAW;IA2DzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAgBrB"}
1
+ {"version":3,"file":"ado-spec-sync.d.ts","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAGL,cAAc,EAEf,MAAM,0CAA0C,CAAC;AAIlD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QACN,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAA4B;gBAEtC,MAAM,EAAE,SAAS,EAAE,WAAW,GAAE,MAAsB,EAAE,SAAS,CAAC,EAAE,MAAM;IAoBtF;;;OAGG;YACW,oBAAoB;IAYlC;;;OAGG;YACW,mBAAmB;IAiBjC;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAAkC;YACtC,oBAAoB;IA+BlC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA+D5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAsE1D;;OAEG;YACW,gBAAgB;IAqD9B;;OAEG;YACW,gBAAgB;IAkD9B;;OAEG;YACW,eAAe;IAsE7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA4BlC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;YACW,eAAe;IAwB7B;;OAEG;YACW,gBAAgB;IAiB9B;;OAEG;YACW,eAAe;IAW7B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,WAAW;IAiEzB;;OAEG;YACW,WAAW;IA2DzB;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAgBrB"}
@@ -18,6 +18,14 @@ import axios from 'axios';
18
18
  export class AdoSpecSync {
19
19
  constructor(config, projectRoot = process.cwd(), projectId) {
20
20
  this.availableTypes = null;
21
+ /**
22
+ * Resolve a work item state name for the given type.
23
+ * Basic process (Issue type) uses: "To Do", "Doing", "Done"
24
+ * Agile/Scrum process uses: "New", "Active", "Closed" / "Resolved" / "Done"
25
+ *
26
+ * Maps canonical states: 'New' → todo, 'Active' → in-progress, 'Closed' → done
27
+ */
28
+ this.stateCache = new Map();
21
29
  this.specManager = new SpecMetadataManager(projectRoot, projectId);
22
30
  this.config = config;
23
31
  // Create ADO API client
@@ -72,6 +80,33 @@ export class AdoSpecSync {
72
80
  }
73
81
  return desiredType; // Let ADO reject if truly unavailable
74
82
  }
83
+ async resolveWorkItemState(workItemType, canonicalState) {
84
+ if (!this.stateCache.has(workItemType)) {
85
+ try {
86
+ const resp = await this.client.get(`/wit/workitemtypes/${encodeURIComponent(workItemType)}/states?api-version=7.0`, { headers: { 'Accept': 'application/json' } });
87
+ const states = new Set(resp.data.value.map((s) => s.name));
88
+ this.stateCache.set(workItemType, states);
89
+ }
90
+ catch {
91
+ // Fallback: assume Agile states
92
+ this.stateCache.set(workItemType, new Set(['New', 'Active', 'Resolved', 'Closed']));
93
+ }
94
+ }
95
+ const validStates = this.stateCache.get(workItemType);
96
+ // Preferred state names per canonical state, in priority order
97
+ const candidates = {
98
+ 'New': ['To Do', 'New', 'Open'],
99
+ 'Active': ['Doing', 'Active', 'In Progress', 'In-Progress'],
100
+ 'Closed': ['Done', 'Closed', 'Resolved', 'Completed'],
101
+ };
102
+ for (const candidate of candidates[canonicalState]) {
103
+ if (validStates.has(candidate))
104
+ return candidate;
105
+ }
106
+ // Last resort: return first available state for 'New', last for 'Closed'
107
+ const arr = [...validStates];
108
+ return canonicalState === 'Closed' ? (arr[arr.length - 1] ?? canonicalState) : (arr[0] ?? canonicalState);
109
+ }
75
110
  /**
76
111
  * Sync spec to ADO Feature (CREATE or UPDATE)
77
112
  */
@@ -304,11 +339,14 @@ export class AdoSpecSync {
304
339
  // Check if story already exists (by searching for US-ID in title)
305
340
  const existingStory = await this.findStoryByTitle(us.id);
306
341
  if (existingStory) {
342
+ const resolvedStoryType = await this.resolveWorkItemType('User Story');
343
+ const canonicalState = us.status === 'done' ? 'Closed' : us.status === 'in-progress' ? 'Active' : 'New';
344
+ const resolvedState = await this.resolveWorkItemState(resolvedStoryType, canonicalState);
307
345
  // UPDATE existing story (also re-apply parent to fix orphaned stories)
308
346
  await this.updateStory(existingStory.id, {
309
347
  title: storyTitle,
310
348
  description: storyDescription,
311
- state: us.status === 'done' ? 'Closed' : us.status === 'in-progress' ? 'Active' : 'New',
349
+ state: resolvedState,
312
350
  parentId: featureId
313
351
  });
314
352
  updated.push(us.id);
@@ -331,10 +369,12 @@ export class AdoSpecSync {
331
369
  const allDone = spec.metadata.userStories.every(us => us.status === 'done');
332
370
  if (allDone && spec.metadata.userStories.length > 0 && created.length === 0) {
333
371
  try {
372
+ const epicType = await this.resolveWorkItemType('Feature');
373
+ const epicClosedState = await this.resolveWorkItemState(epicType, 'Closed');
334
374
  await this.client.patch(`/wit/workitems/${featureId}?api-version=7.0`, [
335
- { op: 'replace', path: '/fields/System.State', value: 'Closed' }
375
+ { op: 'replace', path: '/fields/System.State', value: epicClosedState }
336
376
  ], { headers: { 'Content-Type': 'application/json-patch+json' } });
337
- console.log(` ✅ All stories done — closed parent Epic #${featureId}`);
377
+ console.log(` ✅ All stories done — closed parent Epic #${featureId} (state: ${epicClosedState})`);
338
378
  }
339
379
  catch {
340
380
  // Non-blocking — state transition may not be valid for all ADO project configs
@@ -1 +1 @@
1
- {"version":3,"file":"ado-spec-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ado-spec-sync.js","sourceRoot":"","sources":["../../../../plugins/specweave-ado/lib/ado-spec-sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.459",
3
+ "version": "1.0.460",
4
4
  "description": "100+ domain-expert AI skills — PM, Architect, Frontend, QA, Security and more. Skills learn your team's patterns permanently. Spec-first planning, autonomous execution, multi-agent teams, synced to GitHub/JIRA. Claude Code, Cursor, Copilot & more.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -4,6 +4,14 @@ import axios from "axios";
4
4
  class AdoSpecSync {
5
5
  constructor(config, projectRoot = process.cwd(), projectId) {
6
6
  this.availableTypes = null;
7
+ /**
8
+ * Resolve a work item state name for the given type.
9
+ * Basic process (Issue type) uses: "To Do", "Doing", "Done"
10
+ * Agile/Scrum process uses: "New", "Active", "Closed" / "Resolved" / "Done"
11
+ *
12
+ * Maps canonical states: 'New' → todo, 'Active' → in-progress, 'Closed' → done
13
+ */
14
+ this.stateCache = /* @__PURE__ */ new Map();
7
15
  this.specManager = new SpecMetadataManager(projectRoot, projectId);
8
16
  this.config = config;
9
17
  this.client = axios.create({
@@ -50,6 +58,31 @@ class AdoSpecSync {
50
58
  }
51
59
  return desiredType;
52
60
  }
61
+ async resolveWorkItemState(workItemType, canonicalState) {
62
+ if (!this.stateCache.has(workItemType)) {
63
+ try {
64
+ const resp = await this.client.get(
65
+ `/wit/workitemtypes/${encodeURIComponent(workItemType)}/states?api-version=7.0`,
66
+ { headers: { "Accept": "application/json" } }
67
+ );
68
+ const states = new Set(resp.data.value.map((s) => s.name));
69
+ this.stateCache.set(workItemType, states);
70
+ } catch {
71
+ this.stateCache.set(workItemType, /* @__PURE__ */ new Set(["New", "Active", "Resolved", "Closed"]));
72
+ }
73
+ }
74
+ const validStates = this.stateCache.get(workItemType);
75
+ const candidates = {
76
+ "New": ["To Do", "New", "Open"],
77
+ "Active": ["Doing", "Active", "In Progress", "In-Progress"],
78
+ "Closed": ["Done", "Closed", "Resolved", "Completed"]
79
+ };
80
+ for (const candidate of candidates[canonicalState]) {
81
+ if (validStates.has(candidate)) return candidate;
82
+ }
83
+ const arr = [...validStates];
84
+ return canonicalState === "Closed" ? arr[arr.length - 1] ?? canonicalState : arr[0] ?? canonicalState;
85
+ }
53
86
  /**
54
87
  * Sync spec to ADO Feature (CREATE or UPDATE)
55
88
  */
@@ -268,10 +301,13 @@ class AdoSpecSync {
268
301
  const storyDescription = this.generateStoryDescription(us);
269
302
  const existingStory = await this.findStoryByTitle(us.id);
270
303
  if (existingStory) {
304
+ const resolvedStoryType = await this.resolveWorkItemType("User Story");
305
+ const canonicalState = us.status === "done" ? "Closed" : us.status === "in-progress" ? "Active" : "New";
306
+ const resolvedState = await this.resolveWorkItemState(resolvedStoryType, canonicalState);
271
307
  await this.updateStory(existingStory.id, {
272
308
  title: storyTitle,
273
309
  description: storyDescription,
274
- state: us.status === "done" ? "Closed" : us.status === "in-progress" ? "Active" : "New",
310
+ state: resolvedState,
275
311
  parentId: featureId
276
312
  });
277
313
  updated.push(us.id);
@@ -291,10 +327,12 @@ class AdoSpecSync {
291
327
  const allDone = spec.metadata.userStories.every((us) => us.status === "done");
292
328
  if (allDone && spec.metadata.userStories.length > 0 && created.length === 0) {
293
329
  try {
330
+ const epicType = await this.resolveWorkItemType("Feature");
331
+ const epicClosedState = await this.resolveWorkItemState(epicType, "Closed");
294
332
  await this.client.patch(`/wit/workitems/${featureId}?api-version=7.0`, [
295
- { op: "replace", path: "/fields/System.State", value: "Closed" }
333
+ { op: "replace", path: "/fields/System.State", value: epicClosedState }
296
334
  ], { headers: { "Content-Type": "application/json-patch+json" } });
297
- console.log(` \u2705 All stories done \u2014 closed parent Epic #${featureId}`);
335
+ console.log(` \u2705 All stories done \u2014 closed parent Epic #${featureId} (state: ${epicClosedState})`);
298
336
  } catch {
299
337
  }
300
338
  }
@@ -116,6 +116,45 @@ export class AdoSpecSync {
116
116
  return desiredType; // Let ADO reject if truly unavailable
117
117
  }
118
118
 
119
+ /**
120
+ * Resolve a work item state name for the given type.
121
+ * Basic process (Issue type) uses: "To Do", "Doing", "Done"
122
+ * Agile/Scrum process uses: "New", "Active", "Closed" / "Resolved" / "Done"
123
+ *
124
+ * Maps canonical states: 'New' → todo, 'Active' → in-progress, 'Closed' → done
125
+ */
126
+ private stateCache = new Map<string, Set<string>>();
127
+ private async resolveWorkItemState(workItemType: string, canonicalState: 'New' | 'Active' | 'Closed'): Promise<string> {
128
+ if (!this.stateCache.has(workItemType)) {
129
+ try {
130
+ const resp = await this.client.get(
131
+ `/wit/workitemtypes/${encodeURIComponent(workItemType)}/states?api-version=7.0`,
132
+ { headers: { 'Accept': 'application/json' } }
133
+ );
134
+ const states = new Set<string>(resp.data.value.map((s: { name: string }) => s.name));
135
+ this.stateCache.set(workItemType, states);
136
+ } catch {
137
+ // Fallback: assume Agile states
138
+ this.stateCache.set(workItemType, new Set(['New', 'Active', 'Resolved', 'Closed']));
139
+ }
140
+ }
141
+ const validStates = this.stateCache.get(workItemType)!;
142
+
143
+ // Preferred state names per canonical state, in priority order
144
+ const candidates: Record<string, string[]> = {
145
+ 'New': ['To Do', 'New', 'Open'],
146
+ 'Active': ['Doing', 'Active', 'In Progress', 'In-Progress'],
147
+ 'Closed': ['Done', 'Closed', 'Resolved', 'Completed'],
148
+ };
149
+
150
+ for (const candidate of candidates[canonicalState]) {
151
+ if (validStates.has(candidate)) return candidate;
152
+ }
153
+ // Last resort: return first available state for 'New', last for 'Closed'
154
+ const arr = [...validStates];
155
+ return canonicalState === 'Closed' ? (arr[arr.length - 1] ?? canonicalState) : (arr[0] ?? canonicalState);
156
+ }
157
+
119
158
  /**
120
159
  * Sync spec to ADO Feature (CREATE or UPDATE)
121
160
  */
@@ -391,11 +430,14 @@ export class AdoSpecSync {
391
430
  const existingStory = await this.findStoryByTitle(us.id);
392
431
 
393
432
  if (existingStory) {
433
+ const resolvedStoryType = await this.resolveWorkItemType('User Story');
434
+ const canonicalState = us.status === 'done' ? 'Closed' : us.status === 'in-progress' ? 'Active' : 'New';
435
+ const resolvedState = await this.resolveWorkItemState(resolvedStoryType, canonicalState);
394
436
  // UPDATE existing story (also re-apply parent to fix orphaned stories)
395
437
  await this.updateStory(existingStory.id, {
396
438
  title: storyTitle,
397
439
  description: storyDescription,
398
- state: us.status === 'done' ? 'Closed' : us.status === 'in-progress' ? 'Active' : 'New',
440
+ state: resolvedState,
399
441
  parentId: featureId
400
442
  });
401
443
 
@@ -420,10 +462,12 @@ export class AdoSpecSync {
420
462
  const allDone = spec.metadata.userStories.every(us => us.status === 'done');
421
463
  if (allDone && spec.metadata.userStories.length > 0 && created.length === 0) {
422
464
  try {
465
+ const epicType = await this.resolveWorkItemType('Feature');
466
+ const epicClosedState = await this.resolveWorkItemState(epicType, 'Closed');
423
467
  await this.client.patch(`/wit/workitems/${featureId}?api-version=7.0`, [
424
- { op: 'replace', path: '/fields/System.State', value: 'Closed' }
468
+ { op: 'replace', path: '/fields/System.State', value: epicClosedState }
425
469
  ], { headers: { 'Content-Type': 'application/json-patch+json' } });
426
- console.log(` ✅ All stories done — closed parent Epic #${featureId}`);
470
+ console.log(` ✅ All stories done — closed parent Epic #${featureId} (state: ${epicClosedState})`);
427
471
  } catch {
428
472
  // Non-blocking — state transition may not be valid for all ADO project configs
429
473
  }