specweave 1.0.256 → 1.0.259

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 (113) hide show
  1. package/CLAUDE.md +56 -221
  2. package/README.md +31 -0
  3. package/bin/specweave.js +17 -0
  4. package/dist/src/adapters/README.md +4 -4
  5. package/dist/src/adapters/agents-md-generator.d.ts.map +1 -1
  6. package/dist/src/adapters/agents-md-generator.js +0 -2
  7. package/dist/src/adapters/agents-md-generator.js.map +1 -1
  8. package/dist/src/adapters/claude/README.md +3 -3
  9. package/dist/src/adapters/claude/adapter.js +3 -3
  10. package/dist/src/adapters/claude-md-generator.js +1 -1
  11. package/dist/src/adapters/claude-md-generator.js.map +1 -1
  12. package/dist/src/adapters/registry.yaml +1 -1
  13. package/dist/src/cli/commands/create-increment.d.ts +24 -0
  14. package/dist/src/cli/commands/create-increment.d.ts.map +1 -0
  15. package/dist/src/cli/commands/create-increment.js +53 -0
  16. package/dist/src/cli/commands/create-increment.js.map +1 -0
  17. package/dist/src/cli/commands/init.d.ts.map +1 -1
  18. package/dist/src/cli/commands/init.js +48 -31
  19. package/dist/src/cli/commands/init.js.map +1 -1
  20. package/dist/src/cli/commands/update.d.ts.map +1 -1
  21. package/dist/src/cli/commands/update.js +36 -0
  22. package/dist/src/cli/commands/update.js.map +1 -1
  23. package/dist/src/cli/helpers/init/directory-structure.d.ts.map +1 -1
  24. package/dist/src/cli/helpers/init/directory-structure.js +13 -1
  25. package/dist/src/cli/helpers/init/directory-structure.js.map +1 -1
  26. package/dist/src/cli/helpers/init/summary-banner.d.ts +11 -0
  27. package/dist/src/cli/helpers/init/summary-banner.d.ts.map +1 -1
  28. package/dist/src/cli/helpers/init/summary-banner.js +49 -3
  29. package/dist/src/cli/helpers/init/summary-banner.js.map +1 -1
  30. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  31. package/dist/src/cli/helpers/issue-tracker/index.js +0 -1
  32. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  33. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.d.ts.map +1 -1
  34. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js +6 -2
  35. package/dist/src/cli/helpers/issue-tracker/sync-config-writer.js.map +1 -1
  36. package/dist/src/core/ac-progress-sync.d.ts +13 -0
  37. package/dist/src/core/ac-progress-sync.d.ts.map +1 -1
  38. package/dist/src/core/ac-progress-sync.js +28 -0
  39. package/dist/src/core/ac-progress-sync.js.map +1 -1
  40. package/dist/src/core/config/types.d.ts +24 -1
  41. package/dist/src/core/config/types.d.ts.map +1 -1
  42. package/dist/src/core/config/types.js +6 -1
  43. package/dist/src/core/config/types.js.map +1 -1
  44. package/dist/src/core/doctor/checkers/project-structure-checker.d.ts +1 -0
  45. package/dist/src/core/doctor/checkers/project-structure-checker.d.ts.map +1 -1
  46. package/dist/src/core/doctor/checkers/project-structure-checker.js +53 -3
  47. package/dist/src/core/doctor/checkers/project-structure-checker.js.map +1 -1
  48. package/dist/src/core/fabric/security-scanner.d.ts.map +1 -1
  49. package/dist/src/core/fabric/security-scanner.js +70 -9
  50. package/dist/src/core/fabric/security-scanner.js.map +1 -1
  51. package/dist/src/core/increment/increment-utils.d.ts +6 -0
  52. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  53. package/dist/src/core/increment/increment-utils.js +5 -0
  54. package/dist/src/core/increment/increment-utils.js.map +1 -1
  55. package/dist/src/core/living-docs/discovery.d.ts +2 -0
  56. package/dist/src/core/living-docs/discovery.d.ts.map +1 -1
  57. package/dist/src/core/living-docs/discovery.js +91 -17
  58. package/dist/src/core/living-docs/discovery.js.map +1 -1
  59. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts +5 -0
  60. package/dist/src/core/living-docs/intelligent-analyzer/index.d.ts.map +1 -1
  61. package/dist/src/core/living-docs/intelligent-analyzer/index.js +3 -3
  62. package/dist/src/core/living-docs/intelligent-analyzer/index.js.map +1 -1
  63. package/dist/src/core/living-docs/lsp-bootstrapper.d.ts +64 -0
  64. package/dist/src/core/living-docs/lsp-bootstrapper.d.ts.map +1 -0
  65. package/dist/src/core/living-docs/lsp-bootstrapper.js +118 -0
  66. package/dist/src/core/living-docs/lsp-bootstrapper.js.map +1 -0
  67. package/dist/src/core/project/project-service.d.ts +10 -1
  68. package/dist/src/core/project/project-service.d.ts.map +1 -1
  69. package/dist/src/core/project/project-service.js +37 -2
  70. package/dist/src/core/project/project-service.js.map +1 -1
  71. package/dist/src/core/universal-auto-create.d.ts +64 -0
  72. package/dist/src/core/universal-auto-create.d.ts.map +1 -0
  73. package/dist/src/core/universal-auto-create.js +228 -0
  74. package/dist/src/core/universal-auto-create.js.map +1 -0
  75. package/package.json +1 -1
  76. package/plugins/specweave/PLUGIN.md +0 -3
  77. package/plugins/specweave/commands/living-docs.md +0 -2
  78. package/plugins/specweave/hooks/stop-sync.sh +34 -5
  79. package/plugins/specweave/hooks/user-prompt-submit.sh +115 -326
  80. package/plugins/specweave/hooks/v2/dispatchers/post-tool-use.sh +19 -5
  81. package/plugins/specweave/hooks/v2/handlers/ac-sync-dispatcher.sh +14 -4
  82. package/plugins/specweave/hooks/v2/handlers/universal-auto-create-dispatcher.sh +181 -0
  83. package/plugins/specweave/lib/hooks/sync-living-docs.js +4 -2
  84. package/plugins/specweave/scripts/skill-context.sh +160 -0
  85. package/plugins/specweave/skills/architect/SKILL.md +1 -1
  86. package/plugins/specweave/skills/archive-increments/SKILL.md +13 -3
  87. package/plugins/specweave/skills/auto/SKILL.md +92 -1038
  88. package/plugins/specweave/skills/do/SKILL.md +66 -1106
  89. package/plugins/specweave/skills/docs/SKILL.md +124 -56
  90. package/plugins/specweave/skills/done/SKILL.md +76 -1406
  91. package/plugins/specweave/skills/framework/SKILL.md +1 -1
  92. package/plugins/specweave/skills/increment/SKILL.md +1 -1
  93. package/plugins/specweave/skills/increment-planner/SKILL.md +29 -19
  94. package/plugins/specweave/skills/jobs/SKILL.md +52 -0
  95. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +1 -1
  96. package/plugins/specweave/skills/save/SKILL.md +51 -1372
  97. package/plugins/specweave/skills/smart-reopen-detector/SKILL.md +1 -1
  98. package/plugins/specweave/skills/tdd-orchestrator/SKILL.md +1 -1
  99. package/plugins/specweave/skills/validate/SKILL.md +65 -848
  100. package/plugins/specweave-backend/skills/database-optimizer/SKILL.md +1 -1
  101. package/plugins/specweave-backend/skills/graphql/SKILL.md +1 -1
  102. package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +1 -1
  103. package/plugins/specweave-frontend/skills/frontend/SKILL.md +1 -1
  104. package/plugins/specweave-frontend/skills/frontend-architect/SKILL.md +1 -1
  105. package/plugins/specweave-frontend/skills/frontend-design/SKILL.md +1 -1
  106. package/plugins/specweave-frontend/skills/i18n-expert/SKILL.md +1 -1
  107. package/plugins/specweave-payments/skills/billing-automation/SKILL.md +1 -1
  108. package/plugins/specweave-testing/skills/accessibility-testing/SKILL.md +1 -1
  109. package/src/templates/CLAUDE.md.template +50 -356
  110. package/src/templates/config.json.template +5 -1
  111. package/plugins/specweave/commands/brownfield-analyzer.md +0 -408
  112. package/plugins/specweave/commands/brownfield-onboarder.md +0 -837
  113. package/plugins/specweave/commands/export-skills.md +0 -179
@@ -1 +1 @@
1
- {"version":3,"file":"project-service.d.ts","sourceRoot":"","sources":["../../../../src/core/project/project-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA0C;IAElE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAIT;IACP,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAUP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IAaxE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAIhC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDjC;;OAEG;YACW,iBAAiB;IAyD/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;;;OAQG;IACG,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4EzF;;;;OAIG;YACW,sBAAsB;IAwCpC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;CAwBtD"}
1
+ {"version":3,"file":"project-service.d.ts","sourceRoot":"","sources":["../../../../src/core/project/project-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,gBAAgB,GAChB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,sBAAsB,GACtB,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,SAAS,CAA0C;IAElE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAIT;IACP,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAUP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc;IAaxE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAIhC;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgDjC;;OAEG;YACW,iBAAiB;IAyD/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,WAAW,IAAI,eAAe;IAI9B;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;;;OAQG;IACG,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFzF;;;;OAIG;YACW,sBAAsB;IA0CpC;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAQtC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;CAwBtD"}
@@ -281,6 +281,11 @@ export class ProjectService {
281
281
  // v1.0.144: NEW - ensures metadata changes propagate universally
282
282
  await this.registry.requestSync(projectId, ['github', 'ado', 'jira']);
283
283
  break;
284
+ case 'increment.sync':
285
+ // Catch-all sync event - sent by stop-sync.sh at session end
286
+ // v1.0.257: NEW - ensures queued events are processed
287
+ await this.registry.requestSync(projectId, ['github', 'ado', 'jira']);
288
+ break;
284
289
  }
285
290
  }
286
291
  /**
@@ -311,11 +316,41 @@ export class ProjectService {
311
316
  }
312
317
  return projectField.toLowerCase().replace(/\s+/g, '-');
313
318
  }
314
- return null;
319
+ // Fallback: derive project from config when spec.md has no project field
320
+ return this.getProjectIdFromConfig();
315
321
  }
316
322
  catch {
317
- return null;
323
+ // Even on read error, try config-based fallback
324
+ return this.getProjectIdFromConfig();
325
+ }
326
+ }
327
+ /**
328
+ * Derive a project ID from .specweave/config.json
329
+ *
330
+ * Fallback chain:
331
+ * 1. project.name from config
332
+ * 2. sync.github.owner/repo -> "owner/repo" slug
333
+ * 3. null if nothing configured
334
+ */
335
+ getProjectIdFromConfig() {
336
+ const config = this.loadSpecweaveConfig();
337
+ // Try project.name first
338
+ if (config.project?.name) {
339
+ return config.project.name.toLowerCase().replace(/\s+/g, '-');
340
+ }
341
+ // Derive from GitHub owner/repo
342
+ if (config.sync?.github?.owner && config.sync?.github?.repo) {
343
+ return `${config.sync.github.owner}/${config.sync.github.repo}`;
344
+ }
345
+ // Derive from JIRA project key
346
+ if (config.sync?.jira?.projectKey) {
347
+ return config.sync.jira.projectKey.toLowerCase();
348
+ }
349
+ // Derive from ADO organization/project
350
+ if (config.sync?.ado?.organization && config.sync?.ado?.project) {
351
+ return `${config.sync.ado.organization}/${config.sync.ado.project}`.toLowerCase();
318
352
  }
353
+ return null;
319
354
  }
320
355
  /**
321
356
  * Request sync for all projects
@@ -1 +1 @@
1
- {"version":3,"file":"project-service.js","sourceRoot":"","sources":["../../../../src/core/project/project-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-service.js","sourceRoot":"","sources":["../../../../src/core/project/project-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Universal Auto-Create for External Tools
3
+ *
4
+ * Creates per-user-story items in ALL enabled providers (JIRA, ADO).
5
+ * GitHub is handled separately by the existing github-auto-create-handler.sh.
6
+ *
7
+ * Called by universal-auto-create-dispatcher.sh when spec.md is written.
8
+ *
9
+ * @module universal-auto-create
10
+ */
11
+ export interface UniversalAutoCreateConfig {
12
+ sync: {
13
+ jira?: {
14
+ enabled?: boolean;
15
+ };
16
+ ado?: {
17
+ enabled?: boolean;
18
+ };
19
+ };
20
+ jira?: {
21
+ domain?: string;
22
+ projectKey?: string;
23
+ };
24
+ ado?: {
25
+ organization?: string;
26
+ project?: string;
27
+ };
28
+ }
29
+ export interface UserStoryInfo {
30
+ id: string;
31
+ title: string;
32
+ }
33
+ export interface ProviderCreateResult {
34
+ created: Array<{
35
+ usId: string;
36
+ ref: string;
37
+ url: string;
38
+ }>;
39
+ skipped: Array<{
40
+ usId: string;
41
+ reason: string;
42
+ }>;
43
+ errors: Array<{
44
+ usId: string;
45
+ error: string;
46
+ }>;
47
+ }
48
+ export type UniversalAutoCreateResult = {
49
+ jira?: ProviderCreateResult;
50
+ ado?: ProviderCreateResult;
51
+ };
52
+ /**
53
+ * Parse user stories (ID + title) from spec.md content.
54
+ * Matches patterns like "### US-001: User story title"
55
+ */
56
+ export declare function parseUserStories(content: string): UserStoryInfo[];
57
+ /**
58
+ * Create per-user-story items in JIRA and/or ADO for an increment.
59
+ *
60
+ * GitHub is NOT handled here (delegated to existing bash handler).
61
+ * This function is called by the universal-auto-create-dispatcher.sh.
62
+ */
63
+ export declare function createExternalIssuesForIncrement(incrementId: string, specPath: string, metadataPath: string, config: UniversalAutoCreateConfig): Promise<UniversalAutoCreateResult>;
64
+ //# sourceMappingURL=universal-auto-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal-auto-create.d.ts","sourceRoot":"","sources":["../../../src/core/universal-auto-create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC7B,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC7B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,GAAG,CAAC,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAUF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE,CAQjE;AAmLD;;;;;GAKG;AACH,wBAAsB,gCAAgC,CACpD,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAqEpC"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Universal Auto-Create for External Tools
3
+ *
4
+ * Creates per-user-story items in ALL enabled providers (JIRA, ADO).
5
+ * GitHub is handled separately by the existing github-auto-create-handler.sh.
6
+ *
7
+ * Called by universal-auto-create-dispatcher.sh when spec.md is written.
8
+ *
9
+ * @module universal-auto-create
10
+ */
11
+ import { readFile, writeFile } from 'fs/promises';
12
+ import { existsSync } from 'fs';
13
+ import { deriveFeatureId } from '../utils/feature-id-derivation.js';
14
+ // ============================================================================
15
+ // Helpers
16
+ // ============================================================================
17
+ function emptyResult() {
18
+ return { created: [], skipped: [], errors: [] };
19
+ }
20
+ /**
21
+ * Parse user stories (ID + title) from spec.md content.
22
+ * Matches patterns like "### US-001: User story title"
23
+ */
24
+ export function parseUserStories(content) {
25
+ const stories = [];
26
+ const pattern = /###\s+(US-\d+):\s*(.+)/g;
27
+ let match;
28
+ while ((match = pattern.exec(content)) !== null) {
29
+ stories.push({ id: match[1], title: match[2].trim() });
30
+ }
31
+ return stories;
32
+ }
33
+ // ============================================================================
34
+ // Provider Functions
35
+ // ============================================================================
36
+ async function createJiraUserStories(incrementId, featureId, userStories, existingLinks, config) {
37
+ const result = emptyResult();
38
+ const { JiraClient } = await import('../integrations/jira/jira-client.js');
39
+ const domain = config.jira?.domain || '';
40
+ const projectKey = config.jira?.projectKey || '';
41
+ if (!domain || !projectKey) {
42
+ result.errors.push({ usId: 'config', error: 'JIRA domain or projectKey not configured' });
43
+ return result;
44
+ }
45
+ const client = new JiraClient();
46
+ for (const us of userStories) {
47
+ // Idempotency: skip if already linked
48
+ if (existingLinks[us.id]) {
49
+ result.skipped.push({ usId: us.id, reason: 'already-linked' });
50
+ continue;
51
+ }
52
+ try {
53
+ const summary = `[${featureId}][${us.id}] ${us.title}`;
54
+ const issue = await client.createIssue({
55
+ issueType: 'Story',
56
+ summary,
57
+ labels: ['specweave', 'auto-created'],
58
+ }, projectKey);
59
+ const issueUrl = `https://${domain}/browse/${issue.key}`;
60
+ result.created.push({ usId: us.id, ref: issue.key, url: issueUrl });
61
+ }
62
+ catch (err) {
63
+ const msg = err instanceof Error ? err.message : String(err);
64
+ result.errors.push({ usId: us.id, error: msg });
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ async function createAdoUserStories(incrementId, featureId, userStories, existingLinks, config) {
70
+ const result = emptyResult();
71
+ const { AdoClient } = await import('../integrations/ado/ado-client.js');
72
+ const { getAdoPat } = await import('../integrations/ado/ado-pat-provider.js');
73
+ const organization = config.ado?.organization || '';
74
+ const project = config.ado?.project || '';
75
+ if (!organization || !project) {
76
+ result.errors.push({ usId: 'config', error: 'ADO organization or project not configured' });
77
+ return result;
78
+ }
79
+ const pat = getAdoPat(organization);
80
+ if (!pat) {
81
+ result.errors.push({ usId: 'config', error: 'AZURE_DEVOPS_PAT not set' });
82
+ return result;
83
+ }
84
+ const client = new AdoClient({ pat, organization, project });
85
+ for (const us of userStories) {
86
+ // Idempotency: skip if already linked
87
+ if (existingLinks[us.id]) {
88
+ result.skipped.push({ usId: us.id, reason: 'already-linked' });
89
+ continue;
90
+ }
91
+ try {
92
+ const title = `[${featureId}][${us.id}] ${us.title}`;
93
+ const workItem = await client.createWorkItem({
94
+ workItemType: 'User Story',
95
+ title,
96
+ tags: ['specweave', 'auto-created'],
97
+ });
98
+ result.created.push({
99
+ usId: us.id,
100
+ ref: String(workItem.id),
101
+ url: workItem.url,
102
+ });
103
+ }
104
+ catch (err) {
105
+ const msg = err instanceof Error ? err.message : String(err);
106
+ result.errors.push({ usId: us.id, error: msg });
107
+ }
108
+ }
109
+ return result;
110
+ }
111
+ // ============================================================================
112
+ // Metadata Update
113
+ // ============================================================================
114
+ async function updateMetadata(metadataPath, results) {
115
+ if (!existsSync(metadataPath))
116
+ return;
117
+ const raw = await readFile(metadataPath, 'utf-8');
118
+ const metadata = JSON.parse(raw);
119
+ if (!metadata.externalLinks) {
120
+ metadata.externalLinks = {};
121
+ }
122
+ const now = new Date().toISOString();
123
+ // Update JIRA links
124
+ if (results.jira && results.jira.created.length > 0) {
125
+ if (!metadata.externalLinks.jira) {
126
+ metadata.externalLinks.jira = { userStories: {} };
127
+ }
128
+ if (!metadata.externalLinks.jira.userStories) {
129
+ metadata.externalLinks.jira.userStories = {};
130
+ }
131
+ for (const item of results.jira.created) {
132
+ metadata.externalLinks.jira.userStories[item.usId] = {
133
+ issueKey: item.ref,
134
+ issueUrl: item.url,
135
+ syncedAt: now,
136
+ };
137
+ }
138
+ }
139
+ // Update ADO links
140
+ if (results.ado && results.ado.created.length > 0) {
141
+ if (!metadata.externalLinks.ado) {
142
+ metadata.externalLinks.ado = { userStories: {} };
143
+ }
144
+ if (!metadata.externalLinks.ado.userStories) {
145
+ metadata.externalLinks.ado.userStories = {};
146
+ }
147
+ for (const item of results.ado.created) {
148
+ metadata.externalLinks.ado.userStories[item.usId] = {
149
+ workItemId: parseInt(item.ref, 10),
150
+ workItemUrl: item.url,
151
+ syncedAt: now,
152
+ };
153
+ }
154
+ }
155
+ await writeFile(metadataPath, JSON.stringify(metadata, null, 2) + '\n', 'utf-8');
156
+ }
157
+ // ============================================================================
158
+ // Main Entry Point
159
+ // ============================================================================
160
+ /**
161
+ * Create per-user-story items in JIRA and/or ADO for an increment.
162
+ *
163
+ * GitHub is NOT handled here (delegated to existing bash handler).
164
+ * This function is called by the universal-auto-create-dispatcher.sh.
165
+ */
166
+ export async function createExternalIssuesForIncrement(incrementId, specPath, metadataPath, config) {
167
+ const result = {};
168
+ // Parse user stories from spec.md
169
+ const content = await readFile(specPath, 'utf-8');
170
+ const userStories = parseUserStories(content);
171
+ if (userStories.length === 0) {
172
+ return result;
173
+ }
174
+ // Derive feature ID
175
+ let featureId;
176
+ try {
177
+ featureId = deriveFeatureId(incrementId);
178
+ }
179
+ catch {
180
+ const numMatch = incrementId.match(/^(\d+)/);
181
+ featureId = numMatch ? `FS-${parseInt(numMatch[1], 10)}` : `FS-${incrementId.substring(0, 3)}`;
182
+ }
183
+ // Load existing external links from metadata (for idempotency)
184
+ let existingJiraLinks = {};
185
+ let existingAdoLinks = {};
186
+ if (existsSync(metadataPath)) {
187
+ try {
188
+ const metaRaw = await readFile(metadataPath, 'utf-8');
189
+ const metadata = JSON.parse(metaRaw);
190
+ existingJiraLinks = metadata.externalLinks?.jira?.userStories || {};
191
+ existingAdoLinks = metadata.externalLinks?.ado?.userStories || {};
192
+ }
193
+ catch {
194
+ // Metadata parse error — proceed without existing links
195
+ }
196
+ }
197
+ // Create in each enabled provider (isolated errors)
198
+ if (config.sync?.jira?.enabled) {
199
+ try {
200
+ result.jira = await createJiraUserStories(incrementId, featureId, userStories, existingJiraLinks, config);
201
+ }
202
+ catch (err) {
203
+ const providerResult = emptyResult();
204
+ providerResult.errors.push({
205
+ usId: 'unknown',
206
+ error: err instanceof Error ? err.message : String(err),
207
+ });
208
+ result.jira = providerResult;
209
+ }
210
+ }
211
+ if (config.sync?.ado?.enabled) {
212
+ try {
213
+ result.ado = await createAdoUserStories(incrementId, featureId, userStories, existingAdoLinks, config);
214
+ }
215
+ catch (err) {
216
+ const providerResult = emptyResult();
217
+ providerResult.errors.push({
218
+ usId: 'unknown',
219
+ error: err instanceof Error ? err.message : String(err),
220
+ });
221
+ result.ado = providerResult;
222
+ }
223
+ }
224
+ // Update metadata with new links
225
+ await updateMetadata(metadataPath, result);
226
+ return result;
227
+ }
228
+ //# sourceMappingURL=universal-auto-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal-auto-create.js","sourceRoot":"","sources":["../../../src/core/universal-auto-create.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.256",
3
+ "version": "1.0.259",
4
4
  "description": "Spec-driven development framework for AI coding agents. First-class support for Claude Code — compatible with any LLM-powered coding tool. Living documentation, autonomous execution, quality gates, and multilingual support (9 languages).",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -103,12 +103,9 @@ SpecWeave framework core plugin. Provides increment planning (PM, Architect, Tec
103
103
  | /sw:grill | Comprehensive implementation auditor |
104
104
  | /sw:feature-dev | Feature Development Workflow (7-phase structured approach) |
105
105
  | /sw:role-orchestrator | Multi-agent orchestration for complex tasks |
106
- | /sw:brownfield-analyzer | Analyze brownfield projects for SpecWeave migration |
107
- | /sw:brownfield-onboarder | Onboard brownfield projects with CLAUDE.md merge |
108
106
  | /sw:docs-writer | Technical documentation writer |
109
107
  | /sw:translate | Translate SpecWeave project content |
110
108
  | /sw:skill | Create and validate Claude Code skills |
111
- | /sw:export-skills | Export skills to Agent Skills open standard format |
112
109
  | /sw:check-hooks | Comprehensive hook health check |
113
110
  | /sw:validate-features | Validate feature folder consistency |
114
111
  | /sw:api-docs | Generate API documentation (OpenAPI, Postman) |
@@ -562,8 +562,6 @@ Some repositories may be missing from analysis.
562
562
 
563
563
  - `/sw:jobs` - Monitor all background jobs
564
564
  - `/sw:import-docs` - Import existing documentation
565
- - `specweave:brownfield-analyzer` skill - Analyze doc gaps
566
- - `specweave:brownfield-onboarder` skill - Merge existing docs
567
565
 
568
566
  ---
569
567
 
@@ -93,18 +93,21 @@ run_with_timeout() {
93
93
 
94
94
  INCREMENTS_TO_SYNC=""
95
95
  PROCESSED_FILE="$QUEUE_DIR/.processed-$$"
96
+ EVENT_TYPES_FILE="$QUEUE_DIR/.event-types-$$"
97
+ > "$EVENT_TYPES_FILE" 2>/dev/null || true
96
98
 
97
99
  # Process new-style pending.jsonl
98
100
  if [ -f "$PENDING_FILE" ] && [ -s "$PENDING_FILE" ]; then
99
101
  log "Processing pending.jsonl..."
100
102
 
101
- # Extract unique increment IDs from pending events
103
+ # Extract unique increment IDs and track event types
102
104
  while IFS= read -r line; do
103
105
  [ -z "$line" ] && continue
104
106
 
105
107
  # Extract increment ID from event data
106
108
  # Format: {"type":"task.updated","data":"0001-feature-name","ts":"..."}
107
109
  INC_ID=$(echo "$line" | grep -o '"data":"[^"]*"' | cut -d'"' -f4 | grep -o '^[0-9][0-9][0-9][0-9]-[^:]*' | head -1)
110
+ EVENT_TYPE=$(echo "$line" | grep -o '"type":"[^"]*"' | cut -d'"' -f4)
108
111
 
109
112
  if [ -n "$INC_ID" ]; then
110
113
  # Add to list if not already present
@@ -112,6 +115,10 @@ if [ -f "$PENDING_FILE" ] && [ -s "$PENDING_FILE" ]; then
112
115
  INCREMENTS_TO_SYNC="$INCREMENTS_TO_SYNC $INC_ID"
113
116
  log "Queued for sync: $INC_ID"
114
117
  fi
118
+ # Track event type for this increment
119
+ if [ -n "$EVENT_TYPE" ]; then
120
+ echo "${INC_ID}|${EVENT_TYPE}" >> "$EVENT_TYPES_FILE" 2>/dev/null
121
+ fi
115
122
  fi
116
123
  done < "$PENDING_FILE"
117
124
  fi
@@ -144,14 +151,33 @@ shopt -u nullglob # Restore default glob behavior
144
151
  SYNC_COUNT=0
145
152
  SYNC_FAILED=0
146
153
 
154
+ # Determine best event type for an increment from queued events
155
+ # Priority: done/completed > created > reopened > sync (catch-all)
156
+ get_best_event_type() {
157
+ local inc_id="$1"
158
+ if [ -f "$EVENT_TYPES_FILE" ]; then
159
+ if grep -q "^${inc_id}|increment\.done$" "$EVENT_TYPES_FILE" 2>/dev/null; then
160
+ echo "increment.done"
161
+ elif grep -q "^${inc_id}|increment\.created$" "$EVENT_TYPES_FILE" 2>/dev/null; then
162
+ echo "increment.created"
163
+ elif grep -q "^${inc_id}|increment\.reopened$" "$EVENT_TYPES_FILE" 2>/dev/null; then
164
+ echo "increment.reopened"
165
+ else
166
+ echo "increment.sync"
167
+ fi
168
+ else
169
+ echo "increment.sync"
170
+ fi
171
+ }
172
+
147
173
  for INC_ID in $INCREMENTS_TO_SYNC; do
148
174
  [ -z "$INC_ID" ] && continue
149
175
 
150
- log "Syncing increment: $INC_ID"
176
+ # Preserve original event type from pending.jsonl (best priority wins)
177
+ EVENT_TYPE=$(get_best_event_type "$INC_ID")
178
+ log "Syncing increment: $INC_ID (event: $EVENT_TYPE)"
151
179
 
152
- # Call project-bridge-handler with generic "sync" event
153
- # The handler will determine what needs syncing based on current state
154
- if run_with_timeout 30 bash "$BRIDGE_HANDLER" "increment.sync" "$INC_ID"; then
180
+ if run_with_timeout 30 bash "$BRIDGE_HANDLER" "$EVENT_TYPE" "$INC_ID"; then
155
181
  SYNC_COUNT=$((SYNC_COUNT + 1))
156
182
  log "Sync succeeded: $INC_ID"
157
183
  else
@@ -179,6 +205,9 @@ if [ -f "$PROCESSED_FILE" ]; then
179
205
  log "Cleaned up legacy .event files"
180
206
  fi
181
207
 
208
+ # Clean up event-types temp file
209
+ rm -f "$EVENT_TYPES_FILE" 2>/dev/null
210
+
182
211
  # ============================================================================
183
212
  # REPORT RESULTS
184
213
  # ============================================================================