specweave 0.23.16 → 0.24.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 (227) hide show
  1. package/.claude-plugin/marketplace.json +93 -38
  2. package/CLAUDE.md +159 -11
  3. package/dist/plugins/specweave-github/lib/github-spec-content-sync.d.ts.map +1 -1
  4. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js +57 -0
  5. package/dist/plugins/specweave-github/lib/github-spec-content-sync.js.map +1 -1
  6. package/dist/src/cli/commands/sync-spec-content.js +3 -0
  7. package/dist/src/cli/commands/sync-spec-content.js.map +1 -1
  8. package/dist/src/cli/helpers/ado-area-path-mapper.d.ts +89 -0
  9. package/dist/src/cli/helpers/ado-area-path-mapper.d.ts.map +1 -0
  10. package/dist/src/cli/helpers/ado-area-path-mapper.js +213 -0
  11. package/dist/src/cli/helpers/ado-area-path-mapper.js.map +1 -0
  12. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.d.ts +29 -0
  13. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.d.ts.map +1 -0
  14. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js +109 -0
  15. package/dist/src/cli/helpers/issue-tracker/ado-auto-discover.js.map +1 -0
  16. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +1 -0
  17. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -1
  18. package/dist/src/cli/helpers/issue-tracker/ado.js +2 -0
  19. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -1
  20. package/dist/src/cli/helpers/smart-filter.d.ts +83 -0
  21. package/dist/src/cli/helpers/smart-filter.d.ts.map +1 -0
  22. package/dist/src/cli/helpers/smart-filter.js +265 -0
  23. package/dist/src/cli/helpers/smart-filter.js.map +1 -0
  24. package/dist/src/core/progress/progress-tracker.d.ts +4 -1
  25. package/dist/src/core/progress/progress-tracker.d.ts.map +1 -1
  26. package/dist/src/core/progress/progress-tracker.js +33 -4
  27. package/dist/src/core/progress/progress-tracker.js.map +1 -1
  28. package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
  29. package/dist/src/core/qa/quality-gate-decider.js +2 -2
  30. package/dist/src/core/qa/quality-gate-decider.js.map +1 -1
  31. package/dist/src/core/qa/risk-calculator.d.ts +2 -2
  32. package/dist/src/core/qa/risk-calculator.js +2 -2
  33. package/dist/src/core/spec-content-sync.d.ts +1 -1
  34. package/dist/src/core/spec-content-sync.d.ts.map +1 -1
  35. package/dist/src/core/validators/ac-presence-validator.d.ts +56 -0
  36. package/dist/src/core/validators/ac-presence-validator.d.ts.map +1 -0
  37. package/dist/src/core/validators/ac-presence-validator.js +149 -0
  38. package/dist/src/core/validators/ac-presence-validator.js.map +1 -0
  39. package/dist/src/integrations/ado/ado-dependency-loader.d.ts +1 -1
  40. package/dist/src/integrations/ado/ado-dependency-loader.d.ts.map +1 -1
  41. package/dist/src/integrations/ado/ado-dependency-loader.js +39 -7
  42. package/dist/src/integrations/ado/ado-dependency-loader.js.map +1 -1
  43. package/dist/src/integrations/ado/area-path-mapper.d.ts +137 -0
  44. package/dist/src/integrations/ado/area-path-mapper.d.ts.map +1 -0
  45. package/dist/src/integrations/ado/area-path-mapper.js +267 -0
  46. package/dist/src/integrations/ado/area-path-mapper.js.map +1 -0
  47. package/dist/src/integrations/jira/filter-processor.d.ts +126 -0
  48. package/dist/src/integrations/jira/filter-processor.d.ts.map +1 -0
  49. package/dist/src/integrations/jira/filter-processor.js +207 -0
  50. package/dist/src/integrations/jira/filter-processor.js.map +1 -0
  51. package/dist/src/integrations/jira/jira-client.d.ts +13 -0
  52. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -1
  53. package/dist/src/integrations/jira/jira-client.js +33 -0
  54. package/dist/src/integrations/jira/jira-client.js.map +1 -1
  55. package/dist/src/utils/ac-embedder.d.ts +63 -0
  56. package/dist/src/utils/ac-embedder.d.ts.map +1 -0
  57. package/dist/src/utils/ac-embedder.js +217 -0
  58. package/dist/src/utils/ac-embedder.js.map +1 -0
  59. package/dist/src/utils/env-manager.d.ts +86 -0
  60. package/dist/src/utils/env-manager.d.ts.map +1 -0
  61. package/dist/src/utils/env-manager.js +188 -0
  62. package/dist/src/utils/env-manager.js.map +1 -0
  63. package/package.json +1 -1
  64. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  65. package/plugins/specweave/agents/AGENTS-INDEX.md +1 -1
  66. package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +9 -9
  67. package/plugins/specweave/commands/specweave-do.md +37 -0
  68. package/plugins/specweave/commands/specweave-done.md +159 -0
  69. package/plugins/specweave/commands/specweave-embed-acs.md +446 -0
  70. package/plugins/specweave/commands/specweave-next.md +148 -3
  71. package/plugins/specweave/commands/specweave-qa.md +2 -2
  72. package/plugins/specweave/hooks/lib/migrate-increment-work.sh +1 -1
  73. package/plugins/specweave/hooks/lib/migrate-increment-work.sh.bak +245 -0
  74. package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
  75. package/plugins/specweave/hooks/lib/sync-spec-content.sh.bak +149 -0
  76. package/plugins/specweave/hooks/lib/update-status-line.sh +34 -4
  77. package/plugins/specweave/hooks/lib/validate-spec-status.sh +1 -1
  78. package/plugins/specweave/hooks/lib/validate-spec-status.sh.bak +163 -0
  79. package/plugins/specweave/hooks/post-first-increment.sh +1 -1
  80. package/plugins/specweave/hooks/post-first-increment.sh.bak +61 -0
  81. package/plugins/specweave/hooks/post-spec-update.sh +1 -1
  82. package/plugins/specweave/hooks/post-spec-update.sh.bak +158 -0
  83. package/plugins/specweave/hooks/post-user-story-complete.sh +1 -1
  84. package/plugins/specweave/hooks/post-user-story-complete.sh.bak +179 -0
  85. package/plugins/specweave/hooks/pre-command-deduplication.sh +1 -1
  86. package/plugins/specweave/hooks/pre-command-deduplication.sh.bak +83 -0
  87. package/plugins/specweave/hooks/pre-increment-start.sh +168 -0
  88. package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
  89. package/plugins/specweave/hooks/user-prompt-submit.sh.bak +386 -0
  90. package/plugins/specweave/skills/SKILLS-INDEX.md +1 -1
  91. package/plugins/specweave/skills/specweave-framework/SKILL.md +1 -1
  92. package/plugins/specweave-ado/.claude-plugin/plugin.json +1 -1
  93. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +23 -0
  94. package/plugins/specweave-ado/agents/ado-multi-project-mapper/AGENT.md +23 -0
  95. package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +23 -0
  96. package/plugins/specweave-ado/commands/specweave-ado-import-projects.md +331 -0
  97. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +10 -0
  98. package/plugins/specweave-alternatives/commands/alternatives-analyze.md +336 -0
  99. package/plugins/specweave-alternatives/skills/architecture-alternatives/SKILL.md +651 -0
  100. package/plugins/specweave-alternatives/skills/bmad-method/SKILL.md +420 -0
  101. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +487 -0
  102. package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +23 -0
  103. package/plugins/specweave-backend/commands/api-scaffold.md +80 -0
  104. package/plugins/specweave-backend/commands/crud-generate.md +109 -0
  105. package/plugins/specweave-backend/commands/migration-generate.md +139 -0
  106. package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +23 -0
  107. package/plugins/specweave-confluent/commands/connector-deploy.md +154 -0
  108. package/plugins/specweave-confluent/commands/ksqldb-query.md +179 -0
  109. package/plugins/specweave-confluent/commands/schema-register.md +123 -0
  110. package/plugins/specweave-core/.claude-plugin/plugin.json +21 -0
  111. package/plugins/specweave-core/commands/architecture-review.md +288 -0
  112. package/plugins/specweave-core/commands/code-review.md +213 -0
  113. package/plugins/specweave-core/commands/refactor-plan.md +249 -0
  114. package/plugins/specweave-core/skills/code-quality/SKILL.md +157 -0
  115. package/plugins/specweave-core/skills/design-patterns/SKILL.md +244 -0
  116. package/plugins/specweave-core/skills/software-architecture/SKILL.md +83 -0
  117. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +22 -0
  118. package/plugins/specweave-cost-optimizer/commands/cost-analyze.md +360 -0
  119. package/plugins/specweave-cost-optimizer/commands/cost-optimize.md +480 -0
  120. package/plugins/specweave-cost-optimizer/skills/aws-cost-expert/SKILL.md +416 -0
  121. package/plugins/specweave-cost-optimizer/skills/cloud-pricing/SKILL.md +325 -0
  122. package/plugins/specweave-cost-optimizer/skills/cost-optimization/SKILL.md +337 -0
  123. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +1 -1
  124. package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +23 -0
  125. package/plugins/specweave-diagrams/commands/diagrams-generate.md +168 -0
  126. package/plugins/specweave-docs/.claude-plugin/plugin.json +10 -0
  127. package/plugins/specweave-docs/commands/docs-generate.md +441 -0
  128. package/plugins/specweave-docs/commands/docs-init.md +334 -0
  129. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +581 -0
  130. package/plugins/specweave-docs/skills/spec-driven-brainstorming/SKILL.md +689 -0
  131. package/plugins/specweave-docs/skills/technical-writing/SKILL.md +1039 -0
  132. package/plugins/specweave-docs-preview/.claude-plugin/plugin.json +1 -1
  133. package/plugins/specweave-figma/.claude-plugin/plugin.json +23 -0
  134. package/plugins/specweave-figma/commands/figma-import.md +690 -0
  135. package/plugins/specweave-figma/commands/figma-to-react.md +834 -0
  136. package/plugins/specweave-figma/commands/figma-tokens.md +815 -0
  137. package/plugins/specweave-frontend/.claude-plugin/plugin.json +21 -0
  138. package/plugins/specweave-frontend/agents/frontend-architect/AGENT.md +387 -0
  139. package/plugins/specweave-frontend/agents/frontend-architect/README.md +385 -0
  140. package/plugins/specweave-frontend/agents/frontend-architect/examples.md +590 -0
  141. package/plugins/specweave-frontend/agents/frontend-architect/templates/component-template.tsx +152 -0
  142. package/plugins/specweave-frontend/agents/frontend-architect/templates/hook-template.ts +311 -0
  143. package/plugins/specweave-frontend/agents/frontend-architect/templates/page-template.tsx +228 -0
  144. package/plugins/specweave-frontend/commands/component-generate.md +510 -0
  145. package/plugins/specweave-frontend/commands/design-system-init.md +494 -0
  146. package/plugins/specweave-frontend/commands/frontend-scaffold.md +207 -0
  147. package/plugins/specweave-frontend/commands/nextjs-setup.md +396 -0
  148. package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +278 -0
  149. package/plugins/specweave-frontend/skills/frontend/SKILL.md +420 -0
  150. package/plugins/specweave-frontend/skills/nextjs/SKILL.md +546 -0
  151. package/plugins/specweave-github/.claude-plugin/plugin.json +1 -1
  152. package/plugins/specweave-github/agents/github-manager/AGENT.md +23 -0
  153. package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +25 -0
  154. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +25 -0
  155. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +194 -0
  156. package/plugins/specweave-github/lib/github-spec-content-sync.js +49 -0
  157. package/plugins/specweave-github/lib/github-spec-content-sync.ts +67 -0
  158. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +1 -1
  159. package/plugins/specweave-infrastructure/agents/devops/AGENT.md +26 -0
  160. package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +26 -0
  161. package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +26 -0
  162. package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +26 -0
  163. package/plugins/specweave-infrastructure/agents/sre/AGENT.md +26 -0
  164. package/plugins/specweave-jira/.claude-plugin/plugin.json +1 -1
  165. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +26 -0
  166. package/plugins/specweave-jira/commands/import-projects.js +183 -0
  167. package/plugins/specweave-jira/commands/import-projects.md +97 -0
  168. package/plugins/specweave-jira/commands/import-projects.ts +288 -0
  169. package/plugins/specweave-jira/commands/specweave-jira-import-projects.md +298 -0
  170. package/plugins/specweave-kafka/.claude-plugin/plugin.json +1 -1
  171. package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +26 -0
  172. package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +26 -0
  173. package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +26 -0
  174. package/plugins/specweave-kafka-streams/.claude-plugin/plugin.json +1 -1
  175. package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +26 -0
  176. package/plugins/specweave-kubernetes/commands/cluster-setup.md +262 -0
  177. package/plugins/specweave-kubernetes/commands/deployment-generate.md +242 -0
  178. package/plugins/specweave-kubernetes/commands/helm-scaffold.md +333 -0
  179. package/plugins/specweave-ml/.claude-plugin/plugin.json +3 -3
  180. package/plugins/specweave-ml/agents/data-scientist/AGENT.md +26 -0
  181. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +26 -0
  182. package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +26 -0
  183. package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +26 -0
  184. package/plugins/specweave-mobile/commands/app-scaffold.md +233 -0
  185. package/plugins/specweave-mobile/commands/build-config.md +256 -0
  186. package/plugins/specweave-mobile/commands/screen-generate.md +289 -0
  187. package/plugins/specweave-n8n/.claude-plugin/plugin.json +1 -1
  188. package/plugins/specweave-payments/agents/payment-integration/AGENT.md +26 -0
  189. package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +20 -0
  190. package/plugins/specweave-plugin-dev/commands/plugin-create.md +333 -0
  191. package/plugins/specweave-plugin-dev/commands/plugin-publish.md +339 -0
  192. package/plugins/specweave-plugin-dev/commands/plugin-test.md +293 -0
  193. package/plugins/specweave-plugin-dev/skills/claude-sdk/SKILL.md +162 -0
  194. package/plugins/specweave-plugin-dev/skills/marketplace-publishing/SKILL.md +263 -0
  195. package/plugins/specweave-plugin-dev/skills/plugin-development/SKILL.md +316 -0
  196. package/plugins/specweave-release/.claude-plugin/plugin.json +1 -1
  197. package/plugins/specweave-release/agents/release-manager/AGENT.md +27 -0
  198. package/plugins/specweave-release/commands/specweave-release-npm.md +110 -0
  199. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +168 -0
  200. package/plugins/specweave-testing/.claude-plugin/plugin.json +21 -0
  201. package/plugins/specweave-testing/agents/qa-engineer/AGENT.md +797 -0
  202. package/plugins/specweave-testing/agents/qa-engineer/README.md +443 -0
  203. package/plugins/specweave-testing/agents/qa-engineer/templates/playwright-e2e-test.ts +470 -0
  204. package/plugins/specweave-testing/agents/qa-engineer/templates/test-data-factory.ts +507 -0
  205. package/plugins/specweave-testing/agents/qa-engineer/templates/vitest-unit-test.ts +400 -0
  206. package/plugins/specweave-testing/agents/qa-engineer/test-strategies.md +726 -0
  207. package/plugins/specweave-testing/commands/e2e-setup.md +1081 -0
  208. package/plugins/specweave-testing/commands/test-coverage.md +979 -0
  209. package/plugins/specweave-testing/commands/test-generate.md +1156 -0
  210. package/plugins/specweave-testing/commands/test-init.md +409 -0
  211. package/plugins/specweave-testing/skills/e2e-playwright/SKILL.md +769 -0
  212. package/plugins/specweave-testing/skills/tdd-expert/SKILL.md +934 -0
  213. package/plugins/specweave-testing/skills/unit-testing-expert/SKILL.md +1011 -0
  214. package/plugins/specweave-tooling/.claude-plugin/plugin.json +22 -0
  215. package/plugins/specweave-tooling/commands/specweave-tooling-skill-create.md +691 -0
  216. package/plugins/specweave-tooling/commands/specweave-tooling-skill-package.md +751 -0
  217. package/plugins/specweave-tooling/commands/specweave-tooling-skill-validate.md +858 -0
  218. package/plugins/specweave-ui/.claude-plugin/plugin.json +10 -0
  219. package/plugins/specweave-ui/commands/ui-automate.md +199 -0
  220. package/plugins/specweave-ui/commands/ui-inspect.md +70 -0
  221. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +314 -0
  222. package/plugins/specweave-ui/skills/ui-testing/SKILL.md +716 -0
  223. package/plugins/specweave-ui/skills/visual-regression/SKILL.md +728 -0
  224. package/plugins/specweave/commands/check-hooks.md +0 -257
  225. package/plugins/specweave/commands/specweave-archive-increments.md +0 -82
  226. package/plugins/specweave/skills/plugin-expert/SKILL.md +0 -340
  227. /package/plugins/specweave/{agents/code-reviewer.md → skills/code-reviewer/SKILL.md} +0 -0
@@ -0,0 +1,298 @@
1
+ ---
2
+ name: specweave-jira:import-projects
3
+ description: Import additional JIRA projects post-init with filtering, resume support, and dry-run preview
4
+ ---
5
+
6
+ # Import JIRA Projects Command
7
+
8
+ You are a JIRA project import expert. Help users add additional JIRA projects to their SpecWeave workspace after initial setup.
9
+
10
+ ## Purpose
11
+
12
+ This command allows users to import additional JIRA projects **after** initial SpecWeave setup (`specweave init`), with advanced filtering, resume capability, and dry-run preview.
13
+
14
+ **Use Cases**:
15
+ - Adding new JIRA projects to existing workspace
16
+ - Importing archived/paused projects later
17
+ - Selective import with filters (active only, specific types, custom JQL)
18
+
19
+ ## Command Syntax
20
+
21
+ ```bash
22
+ # Basic import (interactive)
23
+ /specweave-jira:import-projects
24
+
25
+ # With filters
26
+ /specweave-jira:import-projects --filter active
27
+ /specweave-jira:import-projects --type agile --lead "john.doe@company.com"
28
+ /specweave-jira:import-projects --jql "project IN (BACKEND, FRONTEND) AND status != Archived"
29
+
30
+ # Dry-run (preview)
31
+ /specweave-jira:import-projects --dry-run
32
+
33
+ # Resume interrupted import
34
+ /specweave-jira:import-projects --resume
35
+
36
+ # Combined
37
+ /specweave-jira:import-projects --filter active --dry-run
38
+ ```
39
+
40
+ ## Your Task
41
+
42
+ When the user runs this command:
43
+
44
+ ### Step 1: Validate Prerequisites
45
+ ```typescript
46
+ import { readEnvFile, parseEnvFile } from '../../../src/utils/env-file.js';
47
+
48
+ // 1. Check if Jira credentials exist
49
+ const envContent = readEnvFile(process.cwd());
50
+ const parsed = parseEnvFile(envContent);
51
+
52
+ if (!parsed.JIRA_API_TOKEN || !parsed.JIRA_EMAIL || !parsed.JIRA_DOMAIN) {
53
+ console.log('❌ Missing Jira credentials. Run `specweave init` first.');
54
+ return;
55
+ }
56
+
57
+ // 2. Get existing projects
58
+ const existingProjects = parsed.JIRA_PROJECTS?.split(',') || [];
59
+ console.log(`\n📋 Current projects: ${existingProjects.join(', ') || 'None'}\n`);
60
+ ```
61
+
62
+ ### Step 2: Fetch Available Projects
63
+ ```typescript
64
+ import { getProjectCount } from '../../../src/cli/helpers/project-count-fetcher.js';
65
+ import { AsyncProjectLoader } from '../../../src/cli/helpers/async-project-loader.js';
66
+
67
+ // Count check (< 1 second)
68
+ const countResult = await getProjectCount({
69
+ provider: 'jira',
70
+ credentials: {
71
+ domain: parsed.JIRA_DOMAIN,
72
+ email: parsed.JIRA_EMAIL,
73
+ token: parsed.JIRA_API_TOKEN,
74
+ instanceType: 'cloud'
75
+ }
76
+ });
77
+
78
+ console.log(`✓ Found ${countResult.accessible} accessible projects`);
79
+
80
+ // Fetch all projects (with smart pagination)
81
+ const loader = new AsyncProjectLoader(
82
+ {
83
+ domain: parsed.JIRA_DOMAIN,
84
+ email: parsed.JIRA_EMAIL,
85
+ token: parsed.JIRA_API_TOKEN,
86
+ instanceType: 'cloud'
87
+ },
88
+ 'jira',
89
+ {
90
+ batchSize: 50,
91
+ updateFrequency: 5,
92
+ showEta: true
93
+ }
94
+ );
95
+
96
+ const result = await loader.fetchAllProjects(countResult.accessible);
97
+ let allProjects = result.projects;
98
+ ```
99
+
100
+ ### Step 3: Apply Filters (if specified)
101
+ ```typescript
102
+ import { FilterProcessor } from '../../../src/integrations/jira/filter-processor.js';
103
+
104
+ const options = {
105
+ filter: args.filter, // 'active' | 'all'
106
+ type: args.type, // 'agile' | 'software' | 'business'
107
+ lead: args.lead, // Email address
108
+ jql: args.jql // Custom JQL
109
+ };
110
+
111
+ const filterProcessor = new FilterProcessor({ domain: parsed.JIRA_DOMAIN, token: parsed.JIRA_API_TOKEN });
112
+ const filteredProjects = await filterProcessor.applyFilters(allProjects, options);
113
+
114
+ console.log(`\n🔍 Filters applied:`);
115
+ if (options.filter === 'active') console.log(` • Active projects only`);
116
+ if (options.type) console.log(` • Type: ${options.type}`);
117
+ if (options.lead) console.log(` • Lead: ${options.lead}`);
118
+ if (options.jql) console.log(` • JQL: ${options.jql}`);
119
+ console.log(`\n📊 Results: ${filteredProjects.length} projects (down from ${allProjects.length})\n`);
120
+ ```
121
+
122
+ ### Step 4: Exclude Existing Projects
123
+ ```typescript
124
+ const newProjects = filteredProjects.filter(p => !existingProjects.includes(p.key));
125
+
126
+ if (newProjects.length === 0) {
127
+ console.log('✅ No new projects to import. All filtered projects are already configured.');
128
+ return;
129
+ }
130
+
131
+ console.log(`📥 ${newProjects.length} new project(s) available for import:\n`);
132
+ newProjects.forEach(p => {
133
+ console.log(` ✨ ${p.key} - ${p.name} (${p.projectTypeKey}, lead: ${p.lead?.displayName || 'N/A'})`);
134
+ });
135
+ ```
136
+
137
+ ### Step 5: Dry-Run or Execute
138
+ ```typescript
139
+ if (args.dryRun) {
140
+ console.log('\n🔎 DRY RUN: No changes will be made.\n');
141
+ console.log('The following projects would be imported:');
142
+ newProjects.forEach(p => {
143
+ const status = p.archived ? '⏭️ (archived - skipped)' : '✨';
144
+ console.log(` ${status} ${p.key} - ${p.name}`);
145
+ });
146
+ console.log(`\nTotal: ${newProjects.filter(p => !p.archived).length} projects would be imported\n`);
147
+ return;
148
+ }
149
+
150
+ // Confirm import
151
+ const { confirmed } = await inquirer.prompt([{
152
+ type: 'confirm',
153
+ name: 'confirmed',
154
+ message: `Import ${newProjects.length} project(s)?`,
155
+ default: true
156
+ }]);
157
+
158
+ if (!confirmed) {
159
+ console.log('⏭️ Import cancelled.');
160
+ return;
161
+ }
162
+ ```
163
+
164
+ ### Step 6: Merge with Existing
165
+ ```typescript
166
+ import { updateEnvFile, mergeProjectList } from '../../../src/utils/env-manager.js';
167
+
168
+ const newKeys = newProjects.map(p => p.key);
169
+ const mergedProjects = mergeProjectList(existingProjects, newKeys);
170
+
171
+ // Update .env file (atomic write)
172
+ await updateEnvFile('JIRA_PROJECTS', mergedProjects.join(','));
173
+
174
+ console.log('\n✅ Projects imported successfully!\n');
175
+ console.log(`Updated: ${existingProjects.length} → ${mergedProjects.length} projects`);
176
+ console.log(`\nCurrent projects:\n ${mergedProjects.join(', ')}\n`);
177
+ ```
178
+
179
+ ### Step 7: Resume Support
180
+ ```typescript
181
+ if (args.resume) {
182
+ const { CacheManager } = await import('../../../src/core/cache/cache-manager.js');
183
+ const cacheManager = new CacheManager(process.cwd());
184
+
185
+ const importState = await cacheManager.get('jira-import-state');
186
+
187
+ if (!importState) {
188
+ console.log('⚠️ No import state found. Use without --resume to start fresh.');
189
+ return;
190
+ }
191
+
192
+ console.log(`\n📂 Resuming from: ${importState.lastProject} (${importState.completed}/${importState.total})`);
193
+
194
+ // Skip already-imported projects
195
+ const remainingProjects = allProjects.filter(p => !importState.succeeded.includes(p.key));
196
+
197
+ // Continue import with remaining projects
198
+ // (use same logic as Step 6)
199
+ }
200
+ ```
201
+
202
+ ## Examples
203
+
204
+ ### Example 1: Basic Import
205
+ **User**: `/specweave-jira:import-projects`
206
+
207
+ **Output**:
208
+ ```
209
+ 📋 Current projects: BACKEND, FRONTEND
210
+
211
+ ✓ Found 127 accessible projects
212
+ 📥 5 new project(s) available for import:
213
+
214
+ ✨ MOBILE - Mobile App (agile, lead: John Doe)
215
+ ✨ INFRA - Infrastructure (software, lead: Jane Smith)
216
+ ✨ QA - Quality Assurance (business, lead: Bob Wilson)
217
+ ✨ DOCS - Documentation (business, lead: Alice Cooper)
218
+ ✨ LEGACY - Legacy System (archived - skipped)
219
+
220
+ Import 5 project(s)? (Y/n)
221
+
222
+ ✅ Projects imported successfully!
223
+
224
+ Updated: 2 → 6 projects
225
+
226
+ Current projects:
227
+ BACKEND, FRONTEND, MOBILE, INFRA, QA, DOCS
228
+ ```
229
+
230
+ ### Example 2: Filter Active Only
231
+ **User**: `/specweave-jira:import-projects --filter active`
232
+
233
+ **Output**:
234
+ ```
235
+ 🔍 Filters applied:
236
+ • Active projects only
237
+
238
+ 📊 Results: 120 projects (down from 127)
239
+
240
+ 📥 4 new project(s) available for import:
241
+ (LEGACY project excluded because it's archived)
242
+ ```
243
+
244
+ ### Example 3: Dry-Run
245
+ **User**: `/specweave-jira:import-projects --dry-run`
246
+
247
+ **Output**:
248
+ ```
249
+ 🔎 DRY RUN: No changes will be made.
250
+
251
+ The following projects would be imported:
252
+ ✨ MOBILE - Mobile App
253
+ ✨ INFRA - Infrastructure
254
+ ✨ QA - Quality Assurance
255
+ ⏭️ LEGACY - Legacy System (archived - skipped)
256
+
257
+ Total: 3 projects would be imported
258
+ ```
259
+
260
+ ### Example 4: Custom JQL Filter
261
+ **User**: `/specweave-jira:import-projects --jql "project IN (MOBILE, INFRA) AND status != Archived"`
262
+
263
+ **Output**:
264
+ ```
265
+ 🔍 Filters applied:
266
+ • JQL: project IN (MOBILE, INFRA) AND status != Archived
267
+
268
+ 📊 Results: 2 projects (down from 127)
269
+
270
+ 📥 2 new project(s) available for import:
271
+ ✨ MOBILE - Mobile App
272
+ ✨ INFRA - Infrastructure
273
+ ```
274
+
275
+ ## Important Notes
276
+
277
+ - **Merge Logic**: No duplicates. Existing projects are preserved.
278
+ - **Atomic Updates**: Uses temp file + rename to prevent corruption.
279
+ - **Progress Tracking**: Shows progress bar for large imports (> 50 projects).
280
+ - **Resume Support**: Interrupted imports can be resumed with `--resume`.
281
+ - **Backup**: Creates `.env.backup` before modifying `.env`.
282
+
283
+ ## Related Commands
284
+
285
+ - `/specweave:init` - Initial SpecWeave setup
286
+ - `/specweave-jira:sync` - Sync increments with Jira epics
287
+ - `/specweave-jira:refresh-cache` - Clear cached project data
288
+
289
+ ## Error Handling
290
+
291
+ - **Missing Credentials**: Prompt user to run `specweave init` first
292
+ - **API Errors**: Show clear error message with suggestion
293
+ - **No New Projects**: Inform user all projects already imported
294
+ - **Permission Errors**: Check `.env` file permissions
295
+
296
+ ---
297
+
298
+ **Post-Init Flexibility**: This command provides flexibility to add projects after initial setup, supporting evolving team structures and project lifecycles.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "specweave-kafka",
3
3
  "description": "Apache Kafka event streaming integration with MCP servers, CLI tools (kcat), Terraform modules, and comprehensive observability stack",
4
- "version": "0.22.14",
4
+ "version": "0.24.0",
5
5
  "author": {
6
6
  "name": "SpecWeave Team",
7
7
  "url": "https://spec-weave.com"
@@ -5,6 +5,32 @@ description: Kafka architecture and design specialist. Expert in system design,
5
5
 
6
6
  # Kafka Architect Agent
7
7
 
8
+ ## 🚀 How to Invoke This Agent
9
+
10
+ **Subagent Type**: `specweave-kafka:kafka-architect:kafka-architect`
11
+
12
+ **Usage Example**:
13
+
14
+ ```typescript
15
+ Task({
16
+ subagent_type: "specweave-kafka:kafka-architect:kafka-architect",
17
+ prompt: "Design event-driven architecture for e-commerce with Kafka microservices and CQRS pattern",
18
+ model: "haiku" // optional: haiku, sonnet, opus
19
+ });
20
+ ```
21
+
22
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
23
+ - **Plugin**: specweave-kafka
24
+ - **Directory**: kafka-architect
25
+ - **Agent Name**: kafka-architect
26
+
27
+ **When to Use**:
28
+ - You're designing Kafka infrastructure for event-driven systems
29
+ - You need guidance on partition strategy and topic design
30
+ - You want to implement event sourcing or CQRS patterns
31
+ - You're planning capacity for a Kafka cluster
32
+ - You need to design scalable real-time data pipelines
33
+
8
34
  I'm a specialized architecture agent with deep expertise in designing scalable, reliable, and performant Apache Kafka systems.
9
35
 
10
36
  ## My Expertise
@@ -5,6 +5,32 @@ description: Kafka DevOps and SRE specialist. Expert in infrastructure deploymen
5
5
 
6
6
  # Kafka DevOps Agent
7
7
 
8
+ ## 🚀 How to Invoke This Agent
9
+
10
+ **Subagent Type**: `specweave-kafka:kafka-devops:kafka-devops`
11
+
12
+ **Usage Example**:
13
+
14
+ ```typescript
15
+ Task({
16
+ subagent_type: "specweave-kafka:kafka-devops:kafka-devops",
17
+ prompt: "Deploy production Kafka cluster on AWS with Terraform, configure monitoring with Prometheus and Grafana",
18
+ model: "haiku" // optional: haiku, sonnet, opus
19
+ });
20
+ ```
21
+
22
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
23
+ - **Plugin**: specweave-kafka
24
+ - **Directory**: kafka-devops
25
+ - **Agent Name**: kafka-devops
26
+
27
+ **When to Use**:
28
+ - You need to deploy and manage Kafka infrastructure
29
+ - You want to set up CI/CD pipelines for Kafka upgrades
30
+ - You're configuring Kafka cluster monitoring and alerting
31
+ - You have operational issues or need incident response
32
+ - You need to implement disaster recovery and backup strategies
33
+
8
34
  I'm a specialized DevOps/SRE agent with deep expertise in Apache Kafka operations, deployment automation, and production reliability.
9
35
 
10
36
  ## My Expertise
@@ -5,6 +5,32 @@ description: Kafka observability and monitoring specialist. Expert in Prometheus
5
5
 
6
6
  # Kafka Observability Agent
7
7
 
8
+ ## 🚀 How to Invoke This Agent
9
+
10
+ **Subagent Type**: `specweave-kafka:kafka-observability:kafka-observability`
11
+
12
+ **Usage Example**:
13
+
14
+ ```typescript
15
+ Task({
16
+ subagent_type: "specweave-kafka:kafka-observability:kafka-observability",
17
+ prompt: "Set up Kafka monitoring with Prometheus JMX exporter and create Grafana dashboards with alerting rules",
18
+ model: "haiku" // optional: haiku, sonnet, opus
19
+ });
20
+ ```
21
+
22
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
23
+ - **Plugin**: specweave-kafka
24
+ - **Directory**: kafka-observability
25
+ - **Agent Name**: kafka-observability
26
+
27
+ **When to Use**:
28
+ - You need to set up monitoring for Kafka clusters
29
+ - You want to configure alerting for critical Kafka metrics
30
+ - You're troubleshooting high latency, consumer lag, or performance issues
31
+ - You need to analyze Kafka performance bottlenecks
32
+ - You're implementing SLOs for Kafka availability and latency
33
+
8
34
  I'm a specialized observability agent with deep expertise in monitoring, alerting, and troubleshooting Apache Kafka in production.
9
35
 
10
36
  ## My Expertise
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "specweave-kafka-streams",
3
3
  "description": "Kafka Streams library integration for SpecWeave - Stream processing with Java/Kotlin, topology patterns, state stores, windowing, joins, and testing frameworks",
4
- "version": "0.22.14",
4
+ "version": "0.24.0",
5
5
  "author": {
6
6
  "name": "SpecWeave Team",
7
7
  "url": "https://spec-weave.com"
@@ -9,6 +9,32 @@ fallback_behavior: strict
9
9
 
10
10
  You are a Kubernetes architect specializing in cloud-native infrastructure, modern GitOps workflows, and enterprise container orchestration at scale.
11
11
 
12
+ ## 🚀 How to Invoke This Agent
13
+
14
+ **Subagent Type**: `specweave-kubernetes:kubernetes-architect:kubernetes-architect`
15
+
16
+ **Usage Example**:
17
+
18
+ ```typescript
19
+ Task({
20
+ subagent_type: "specweave-kubernetes:kubernetes-architect:kubernetes-architect",
21
+ prompt: "Design multi-cluster Kubernetes platform with GitOps using ArgoCD and progressive delivery with Argo Rollouts",
22
+ model: "haiku" // optional: haiku, sonnet, opus
23
+ });
24
+ ```
25
+
26
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
27
+ - **Plugin**: specweave-kubernetes
28
+ - **Directory**: kubernetes-architect
29
+ - **Agent Name**: kubernetes-architect
30
+
31
+ **When to Use**:
32
+ - You're designing Kubernetes clusters and container orchestration platforms
33
+ - You need to implement GitOps workflows with ArgoCD or Flux
34
+ - You want to set up service mesh (Istio, Linkerd) for microservices
35
+ - You're planning progressive delivery and canary deployments
36
+ - You need to design multi-tenancy and resource isolation strategies
37
+
12
38
  ## Purpose
13
39
  Expert Kubernetes architect with comprehensive knowledge of container orchestration, cloud-native technologies, and modern GitOps practices. Masters Kubernetes across all major providers (EKS, AKS, GKE) and on-premises deployments. Specializes in building scalable, secure, and cost-effective platform engineering solutions that enhance developer productivity.
14
40