specweave 0.23.14 → 0.23.18

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 (119) hide show
  1. package/.claude-plugin/marketplace.json +11 -0
  2. package/CLAUDE.md +77 -7
  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/core/progress/progress-tracker.d.ts +4 -1
  9. package/dist/src/core/progress/progress-tracker.d.ts.map +1 -1
  10. package/dist/src/core/progress/progress-tracker.js +33 -4
  11. package/dist/src/core/progress/progress-tracker.js.map +1 -1
  12. package/dist/src/core/spec-content-sync.d.ts +1 -1
  13. package/dist/src/core/spec-content-sync.d.ts.map +1 -1
  14. package/dist/src/core/spec-detector.d.ts +5 -0
  15. package/dist/src/core/spec-detector.d.ts.map +1 -1
  16. package/dist/src/core/spec-detector.js +91 -33
  17. package/dist/src/core/spec-detector.js.map +1 -1
  18. package/dist/src/integrations/ado/ado-dependency-loader.d.ts +1 -1
  19. package/dist/src/integrations/ado/ado-dependency-loader.d.ts.map +1 -1
  20. package/dist/src/integrations/ado/ado-dependency-loader.js +39 -7
  21. package/dist/src/integrations/ado/ado-dependency-loader.js.map +1 -1
  22. package/package.json +1 -1
  23. package/plugins/specweave/hooks/lib/migrate-increment-work.sh +1 -1
  24. package/plugins/specweave/hooks/lib/migrate-increment-work.sh.bak +245 -0
  25. package/plugins/specweave/hooks/lib/sync-spec-content.sh +2 -2
  26. package/plugins/specweave/hooks/lib/sync-spec-content.sh.bak +149 -0
  27. package/plugins/specweave/hooks/lib/update-status-line.sh +34 -4
  28. package/plugins/specweave/hooks/lib/validate-spec-status.sh +1 -1
  29. package/plugins/specweave/hooks/lib/validate-spec-status.sh.bak +163 -0
  30. package/plugins/specweave/hooks/post-first-increment.sh +1 -1
  31. package/plugins/specweave/hooks/post-first-increment.sh.bak +61 -0
  32. package/plugins/specweave/hooks/post-spec-update.sh +1 -1
  33. package/plugins/specweave/hooks/post-spec-update.sh.bak +158 -0
  34. package/plugins/specweave/hooks/post-user-story-complete.sh +1 -1
  35. package/plugins/specweave/hooks/post-user-story-complete.sh.bak +179 -0
  36. package/plugins/specweave/hooks/pre-command-deduplication.sh +1 -1
  37. package/plugins/specweave/hooks/pre-command-deduplication.sh.bak +83 -0
  38. package/plugins/specweave/hooks/user-prompt-submit.sh +1 -1
  39. package/plugins/specweave/hooks/user-prompt-submit.sh.bak +386 -0
  40. package/plugins/specweave/skills/specweave-framework/SKILL.md +1 -1
  41. package/plugins/specweave-ado/agents/ado-manager/AGENT.md +23 -0
  42. package/plugins/specweave-ado/agents/ado-multi-project-mapper/AGENT.md +23 -0
  43. package/plugins/specweave-ado/agents/ado-sync-judge/AGENT.md +23 -0
  44. package/plugins/specweave-backend/agents/database-optimizer/AGENT.md +23 -0
  45. package/plugins/specweave-confluent/agents/confluent-architect/AGENT.md +23 -0
  46. package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +23 -0
  47. package/plugins/specweave-github/.claude-plugin/plugin.json +15 -1
  48. package/plugins/specweave-github/agents/github-manager/AGENT.md +23 -0
  49. package/plugins/specweave-github/agents/github-task-splitter/AGENT.md +25 -0
  50. package/plugins/specweave-github/agents/user-story-updater/AGENT.md +25 -0
  51. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +16 -0
  52. package/plugins/specweave-github/hooks/post-task-completion.sh +53 -0
  53. package/plugins/specweave-github/lib/github-spec-content-sync.js +49 -0
  54. package/plugins/specweave-github/lib/github-spec-content-sync.ts +67 -0
  55. package/plugins/specweave-infrastructure/agents/devops/AGENT.md +26 -0
  56. package/plugins/specweave-infrastructure/agents/network-engineer/AGENT.md +26 -0
  57. package/plugins/specweave-infrastructure/agents/observability-engineer/AGENT.md +26 -0
  58. package/plugins/specweave-infrastructure/agents/performance-engineer/AGENT.md +26 -0
  59. package/plugins/specweave-infrastructure/agents/sre/AGENT.md +26 -0
  60. package/plugins/specweave-jira/agents/jira-manager/AGENT.md +26 -0
  61. package/plugins/specweave-kafka/agents/kafka-architect/AGENT.md +26 -0
  62. package/plugins/specweave-kafka/agents/kafka-devops/AGENT.md +26 -0
  63. package/plugins/specweave-kafka/agents/kafka-observability/AGENT.md +26 -0
  64. package/plugins/specweave-kubernetes/agents/kubernetes-architect/AGENT.md +26 -0
  65. package/plugins/specweave-ml/.claude-plugin/plugin.json +2 -2
  66. package/plugins/specweave-ml/agents/data-scientist/AGENT.md +26 -0
  67. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +26 -0
  68. package/plugins/specweave-ml/agents/mlops-engineer/AGENT.md +26 -0
  69. package/plugins/specweave-mobile/agents/mobile-architect/AGENT.md +26 -0
  70. package/plugins/specweave-payments/agents/payment-integration/AGENT.md +26 -0
  71. package/plugins/specweave-plugin-dev/.claude-plugin/plugin.json +19 -0
  72. package/plugins/specweave-plugin-dev/skills/plugin-expert/SKILL.md +1231 -0
  73. package/plugins/specweave-release/agents/release-manager/AGENT.md +27 -0
  74. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +24 -0
  75. package/plugins/specweave/skills/plugin-expert/SKILL.md +0 -340
  76. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +0 -21
  77. package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +0 -626
  78. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +0 -318
  79. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +0 -208
  80. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +0 -1149
  81. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +0 -340
  82. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +0 -1010
  83. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +0 -20
  84. package/plugins/specweave-cost-optimizer/skills/cost-optimizer/SKILL.md +0 -190
  85. package/plugins/specweave-docs/.claude-plugin/plugin.json +0 -19
  86. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +0 -613
  87. package/plugins/specweave-docs/skills/spec-driven-brainstorming/README.md +0 -264
  88. package/plugins/specweave-docs/skills/spec-driven-brainstorming/SKILL.md +0 -439
  89. package/plugins/specweave-docs/skills/spec-driven-debugging/README.md +0 -479
  90. package/plugins/specweave-docs/skills/spec-driven-debugging/SKILL.md +0 -652
  91. package/plugins/specweave-figma/.claude-plugin/.mcp.json +0 -12
  92. package/plugins/specweave-figma/.claude-plugin/plugin.json +0 -20
  93. package/plugins/specweave-figma/ARCHITECTURE.md +0 -453
  94. package/plugins/specweave-figma/README.md +0 -728
  95. package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +0 -632
  96. package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +0 -29
  97. package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +0 -27
  98. package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +0 -28
  99. package/plugins/specweave-frontend/.claude-plugin/plugin.json +0 -21
  100. package/plugins/specweave-frontend/skills/design-system-architect/SKILL.md +0 -107
  101. package/plugins/specweave-frontend/skills/frontend/SKILL.md +0 -177
  102. package/plugins/specweave-frontend/skills/nextjs/SKILL.md +0 -176
  103. package/plugins/specweave-testing/.claude-plugin/plugin.json +0 -20
  104. package/plugins/specweave-testing/skills/e2e-playwright/README.md +0 -506
  105. package/plugins/specweave-testing/skills/e2e-playwright/SKILL.md +0 -457
  106. package/plugins/specweave-testing/skills/e2e-playwright/execute.js +0 -373
  107. package/plugins/specweave-testing/skills/e2e-playwright/lib/utils.js +0 -514
  108. package/plugins/specweave-testing/skills/e2e-playwright/package.json +0 -33
  109. package/plugins/specweave-tooling/.claude-plugin/plugin.json +0 -19
  110. package/plugins/specweave-tooling/skills/skill-creator/LICENSE.txt +0 -202
  111. package/plugins/specweave-tooling/skills/skill-creator/SKILL.md +0 -209
  112. package/plugins/specweave-tooling/skills/skill-creator/scripts/init_skill.py +0 -303
  113. package/plugins/specweave-tooling/skills/skill-creator/scripts/package_skill.py +0 -110
  114. package/plugins/specweave-tooling/skills/skill-creator/scripts/quick_validate.py +0 -65
  115. package/plugins/specweave-tooling/skills/skill-router/SKILL.md +0 -479
  116. package/plugins/specweave-ui/.claude-plugin/plugin.json +0 -26
  117. package/plugins/specweave-ui/.mcp.json +0 -10
  118. package/plugins/specweave-ui/README.md +0 -492
  119. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +0 -676
@@ -7,6 +7,31 @@ description: Updates GitHub issues for user stories with proper ACs and tasks. A
7
7
 
8
8
  **Role**: Updates GitHub issues for individual user stories to include checkable acceptance criteria and task connections.
9
9
 
10
+ ## 🚀 How to Invoke This Agent
11
+
12
+ **Subagent Type**: `specweave-github:user-story-updater:user-story-updater`
13
+
14
+ **Usage Example**:
15
+
16
+ ```typescript
17
+ Task({
18
+ subagent_type: "specweave-github:user-story-updater:user-story-updater",
19
+ prompt: "Update GitHub issue #501 for user story FS-031/US-004 with checkable ACs and task connections",
20
+ model: "haiku" // optional: haiku, sonnet, opus
21
+ });
22
+ ```
23
+
24
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
25
+ - **Plugin**: specweave-github
26
+ - **Directory**: user-story-updater
27
+ - **Agent Name**: user-story-updater
28
+
29
+ **When to Use**:
30
+ - You need to sync user story details from SpecWeave to GitHub issues
31
+ - You want to add checkable acceptance criteria checkboxes to GitHub issues
32
+ - You need to link tasks in SpecWeave tasks.md to GitHub issues
33
+ - You're updating GitHub issue content with the latest user story information and progress
34
+
10
35
  **Activates For**:
11
36
  - "Update user story issue"
12
37
  - "Fix GitHub issue format for US-004"
@@ -0,0 +1,16 @@
1
+ [Sat Nov 22 02:20:23 EST 2025] [GitHub] 🔗 GitHub sync hook fired
2
+ [Sat Nov 22 02:20:23 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
3
+ [Sat Nov 22 02:20:26 EST 2025] [GitHub] 🔗 GitHub sync hook fired
4
+ [Sat Nov 22 02:20:26 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
5
+ [Sat Nov 22 02:20:26 EST 2025] [GitHub] 🔗 GitHub sync hook fired
6
+ [Sat Nov 22 02:20:26 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
7
+ [Sat Nov 22 02:20:28 EST 2025] [GitHub] 🔗 GitHub sync hook fired
8
+ [Sat Nov 22 02:20:28 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
9
+ [Sat Nov 22 02:20:31 EST 2025] [GitHub] 🔗 GitHub sync hook fired
10
+ [Sat Nov 22 02:20:31 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
11
+ [Sat Nov 22 02:20:31 EST 2025] [GitHub] 🔗 GitHub sync hook fired
12
+ [Sat Nov 22 02:20:31 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
13
+ [Sat Nov 22 02:20:33 EST 2025] [GitHub] 🔗 GitHub sync hook fired
14
+ [Sat Nov 22 02:20:33 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
15
+ [Sat Nov 22 02:20:36 EST 2025] [GitHub] 🔗 GitHub sync hook fired
16
+ [Sat Nov 22 02:20:36 EST 2025] [GitHub] ⚠️ sync-spec-content CLI not found at /Users/antonabyzov/Projects/github/specweave/plugins/specweave-github/hooks/dist/src/cli/commands/sync-spec-content.js, skipping sync
@@ -26,6 +26,53 @@ if [[ "${SPECWEAVE_DISABLE_HOOKS:-0}" == "1" ]]; then
26
26
  exit 0
27
27
  fi
28
28
 
29
+ # ============================================================================
30
+ # CIRCUIT BREAKER & FILE LOCKING
31
+ # ============================================================================
32
+
33
+ # CIRCUIT BREAKER: Auto-disable after consecutive failures
34
+ CIRCUIT_BREAKER_FILE=".specweave/state/.hook-circuit-breaker-github"
35
+ CIRCUIT_BREAKER_THRESHOLD=3
36
+
37
+ mkdir -p ".specweave/state" 2>/dev/null || true
38
+
39
+ if [[ -f "$CIRCUIT_BREAKER_FILE" ]]; then
40
+ FAILURE_COUNT=$(cat "$CIRCUIT_BREAKER_FILE" 2>/dev/null || echo 0)
41
+ if (( FAILURE_COUNT >= CIRCUIT_BREAKER_THRESHOLD )); then
42
+ # Circuit breaker is OPEN - hooks are disabled
43
+ exit 0
44
+ fi
45
+ fi
46
+
47
+ # FILE LOCK: Only allow 1 GitHub sync hook at a time
48
+ LOCK_FILE=".specweave/state/.hook-github-sync.lock"
49
+ LOCK_TIMEOUT=15 # seconds (GitHub sync can take longer)
50
+
51
+ LOCK_ACQUIRED=false
52
+ for i in {1..15}; do
53
+ if mkdir "$LOCK_FILE" 2>/dev/null; then
54
+ LOCK_ACQUIRED=true
55
+ trap 'rmdir "$LOCK_FILE" 2>/dev/null || true' EXIT
56
+ break
57
+ fi
58
+
59
+ # Check for stale lock
60
+ if [[ -d "$LOCK_FILE" ]]; then
61
+ LOCK_AGE=$(($(date +%s) - $(stat -f "%m" "$LOCK_FILE" 2>/dev/null || echo 0)))
62
+ if (( LOCK_AGE > LOCK_TIMEOUT )); then
63
+ rmdir "$LOCK_FILE" 2>/dev/null || true
64
+ continue
65
+ fi
66
+ fi
67
+
68
+ sleep 0.2
69
+ done
70
+
71
+ if [[ "$LOCK_ACQUIRED" == "false" ]]; then
72
+ # Another instance is running, skip
73
+ exit 0
74
+ fi
75
+
29
76
  # ============================================================================
30
77
  # PROJECT ROOT DETECTION
31
78
  # ============================================================================
@@ -252,6 +299,12 @@ else
252
299
  echo "[$(date)] [GitHub] ℹ️ Epic sync disabled (sync at User Story level only)" >> "$DEBUG_LOG" 2>/dev/null || true
253
300
  fi
254
301
 
302
+ # ============================================================================
303
+ # CIRCUIT BREAKER UPDATE
304
+ # ============================================================================
305
+ # Reset circuit breaker on successful completion (all errors are caught above)
306
+ echo "0" > "$CIRCUIT_BREAKER_FILE" 2>/dev/null || true
307
+
255
308
  # ============================================================================
256
309
  # OUTPUT TO CLAUDE
257
310
  # ============================================================================
@@ -85,6 +85,17 @@ async function syncSpecContentToGitHub(options) {
85
85
  async function createGitHubIssue(client, spec, options) {
86
86
  const { specPath, dryRun, verbose } = options;
87
87
  try {
88
+ const permissions = await loadSyncPermissions(specPath);
89
+ if (!permissions.canCreate) {
90
+ if (verbose) {
91
+ console.log(" \u26A0\uFE0F Skipping create - canUpsertInternalItems is disabled in config");
92
+ }
93
+ return {
94
+ success: false,
95
+ action: "skipped",
96
+ error: "canUpsertInternalItems is disabled in .specweave/config.json"
97
+ };
98
+ }
88
99
  const titleId = spec.project === "_features" ? spec.identifier.display : spec.identifier.compact;
89
100
  const title = `[${titleId}] ${spec.title}`;
90
101
  const body = buildExternalDescription(spec);
@@ -141,6 +152,17 @@ ${body}`);
141
152
  async function updateGitHubIssue(client, spec, issueNumber, options) {
142
153
  const { specPath, dryRun, verbose } = options;
143
154
  try {
155
+ const permissions = await loadSyncPermissions(specPath);
156
+ if (!permissions.canUpdate) {
157
+ if (verbose) {
158
+ console.log(" \u26A0\uFE0F Skipping update - canUpdateExternalItems is disabled in config");
159
+ }
160
+ return {
161
+ success: false,
162
+ action: "skipped",
163
+ error: "canUpdateExternalItems is disabled in .specweave/config.json"
164
+ };
165
+ }
144
166
  const issue = await client.getIssue(issueNumber);
145
167
  if (verbose) {
146
168
  console.log(`
@@ -234,6 +256,33 @@ function countUserStoriesInBody(body) {
234
256
  const matches = body.match(/###\s+US-\d+:/g);
235
257
  return matches ? matches.length : 0;
236
258
  }
259
+ async function loadSyncPermissions(specPath) {
260
+ try {
261
+ let currentDir = path.dirname(specPath);
262
+ let configPath = path.join(currentDir, ".specweave", "config.json");
263
+ while (!await fs.access(configPath).then(() => true).catch(() => false)) {
264
+ const parentDir = path.dirname(currentDir);
265
+ if (parentDir === currentDir) {
266
+ return { canCreate: true, canUpdate: true, canUpdateStatus: true };
267
+ }
268
+ currentDir = parentDir;
269
+ configPath = path.join(currentDir, ".specweave", "config.json");
270
+ }
271
+ const configContent = await fs.readFile(configPath, "utf-8");
272
+ const config = JSON.parse(configContent);
273
+ const settings = config.sync?.settings || {};
274
+ return {
275
+ canCreate: settings.canUpsertInternalItems !== false,
276
+ // Default: true
277
+ canUpdate: settings.canUpdateExternalItems !== false,
278
+ // Default: true
279
+ canUpdateStatus: settings.canUpdateStatus !== false
280
+ // Default: true
281
+ };
282
+ } catch {
283
+ return { canCreate: true, canUpdate: true, canUpdateStatus: true };
284
+ }
285
+ }
237
286
  async function isContentSyncEnabled(projectRoot) {
238
287
  try {
239
288
  const configPath = path.join(projectRoot, ".specweave", "config.json");
@@ -153,6 +153,19 @@ async function createGitHubIssue(
153
153
  const { specPath, dryRun, verbose } = options;
154
154
 
155
155
  try {
156
+ // Check permission: canUpsertInternalItems (CREATE permission)
157
+ const permissions = await loadSyncPermissions(specPath);
158
+ if (!permissions.canCreate) {
159
+ if (verbose) {
160
+ console.log(' ⚠️ Skipping create - canUpsertInternalItems is disabled in config');
161
+ }
162
+ return {
163
+ success: false,
164
+ action: 'skipped',
165
+ error: 'canUpsertInternalItems is disabled in .specweave/config.json',
166
+ };
167
+ }
168
+
156
169
  // Build issue title and body using compact format
157
170
  // Examples: [BE-JIRA-AUTH-123] User Authentication, [FE-user-login-ui] Login UI
158
171
  // Use display ID for cleaner titles (FS-043 instead of _F-FS-043)
@@ -234,6 +247,19 @@ async function updateGitHubIssue(
234
247
  const { specPath, dryRun, verbose } = options;
235
248
 
236
249
  try {
250
+ // Check permission: canUpdateExternalItems (UPDATE permission)
251
+ const permissions = await loadSyncPermissions(specPath);
252
+ if (!permissions.canUpdate) {
253
+ if (verbose) {
254
+ console.log(' ⚠️ Skipping update - canUpdateExternalItems is disabled in config');
255
+ }
256
+ return {
257
+ success: false,
258
+ action: 'skipped',
259
+ error: 'canUpdateExternalItems is disabled in .specweave/config.json',
260
+ };
261
+ }
262
+
237
263
  // Get current issue
238
264
  const issue = await client.getIssue(issueNumber);
239
265
 
@@ -383,6 +409,47 @@ function countUserStoriesInBody(body: string): number {
383
409
  return matches ? matches.length : 0;
384
410
  }
385
411
 
412
+ /**
413
+ * Load sync permissions from config
414
+ */
415
+ async function loadSyncPermissions(specPath: string): Promise<{
416
+ canCreate: boolean;
417
+ canUpdate: boolean;
418
+ canUpdateStatus: boolean;
419
+ }> {
420
+ try {
421
+ // Find project root
422
+ let currentDir = path.dirname(specPath);
423
+ let configPath = path.join(currentDir, '.specweave', 'config.json');
424
+
425
+ // Search upward for .specweave/config.json
426
+ while (!await fs.access(configPath).then(() => true).catch(() => false)) {
427
+ const parentDir = path.dirname(currentDir);
428
+ if (parentDir === currentDir) {
429
+ // Default: all enabled
430
+ return { canCreate: true, canUpdate: true, canUpdateStatus: true };
431
+ }
432
+ currentDir = parentDir;
433
+ configPath = path.join(currentDir, '.specweave', 'config.json');
434
+ }
435
+
436
+ // Read config
437
+ const configContent = await fs.readFile(configPath, 'utf-8');
438
+ const config = JSON.parse(configContent);
439
+
440
+ const settings = config.sync?.settings || {};
441
+
442
+ return {
443
+ canCreate: settings.canUpsertInternalItems !== false, // Default: true
444
+ canUpdate: settings.canUpdateExternalItems !== false, // Default: true
445
+ canUpdateStatus: settings.canUpdateStatus !== false // Default: true
446
+ };
447
+ } catch {
448
+ // Default: all enabled
449
+ return { canCreate: true, canUpdate: true, canUpdateStatus: true };
450
+ }
451
+ }
452
+
386
453
  /**
387
454
  * Check if spec content sync is enabled
388
455
  */
@@ -10,6 +10,32 @@ fallback_behavior: flexible
10
10
 
11
11
  # DevOps Agent - Infrastructure & Deployment Expert
12
12
 
13
+ ## 🚀 How to Invoke This Agent
14
+
15
+ **Subagent Type**: `specweave-infrastructure:devops:devops`
16
+
17
+ **Usage Example**:
18
+
19
+ ```typescript
20
+ Task({
21
+ subagent_type: "specweave-infrastructure:devops:devops",
22
+ prompt: "Deploy application to AWS ECS Fargate with Terraform and configure CI/CD pipeline with GitHub Actions",
23
+ model: "haiku" // optional: haiku, sonnet, opus
24
+ });
25
+ ```
26
+
27
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
28
+ - **Plugin**: specweave-infrastructure
29
+ - **Directory**: devops
30
+ - **Agent Name**: devops
31
+
32
+ **When to Use**:
33
+ - You need to design and implement cloud infrastructure (AWS, Azure, GCP)
34
+ - You want to create Infrastructure as Code with Terraform or CloudFormation
35
+ - You need to set up CI/CD pipelines for automated deployment
36
+ - You're deploying containerized applications to Kubernetes or Docker Compose
37
+ - You need to implement monitoring, logging, and observability infrastructure
38
+
13
39
  ## Purpose
14
40
 
15
41
  The devops-agent is SpecWeave's **infrastructure and deployment specialist** that:
@@ -9,6 +9,32 @@ fallback_behavior: flexible
9
9
 
10
10
  You are a network engineer specializing in modern cloud networking, security, and performance optimization.
11
11
 
12
+ ## 🚀 How to Invoke This Agent
13
+
14
+ **Subagent Type**: `specweave-infrastructure:network-engineer:network-engineer`
15
+
16
+ **Usage Example**:
17
+
18
+ ```typescript
19
+ Task({
20
+ subagent_type: "specweave-infrastructure:network-engineer:network-engineer",
21
+ prompt: "Design secure multi-cloud network architecture with zero-trust connectivity and service mesh",
22
+ model: "haiku" // optional: haiku, sonnet, opus
23
+ });
24
+ ```
25
+
26
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
27
+ - **Plugin**: specweave-infrastructure
28
+ - **Directory**: network-engineer
29
+ - **Agent Name**: network-engineer
30
+
31
+ **When to Use**:
32
+ - You need to design cloud networking architectures (VPCs, subnets, routing)
33
+ - You want to implement zero-trust security and network policies
34
+ - You need to configure load balancing, DNS, and SSL/TLS
35
+ - You're troubleshooting connectivity issues or performance problems
36
+ - You need to set up service mesh or advanced networking topologies
37
+
12
38
  ## Purpose
13
39
  Expert network engineer with comprehensive knowledge of cloud networking, modern protocols, security architectures, and performance optimization. Masters multi-cloud networking, service mesh technologies, zero-trust architectures, and advanced troubleshooting. Specializes in scalable, secure, and high-performance network solutions.
14
40
 
@@ -9,6 +9,32 @@ fallback_behavior: flexible
9
9
 
10
10
  You are an observability engineer specializing in production-grade monitoring, logging, tracing, and reliability systems for enterprise-scale applications.
11
11
 
12
+ ## 🚀 How to Invoke This Agent
13
+
14
+ **Subagent Type**: `specweave-infrastructure:observability-engineer:observability-engineer`
15
+
16
+ **Usage Example**:
17
+
18
+ ```typescript
19
+ Task({
20
+ subagent_type: "specweave-infrastructure:observability-engineer:observability-engineer",
21
+ prompt: "Design comprehensive monitoring stack with Prometheus, Grafana, and OpenTelemetry for microservices with SLI/SLO tracking",
22
+ model: "haiku" // optional: haiku, sonnet, opus
23
+ });
24
+ ```
25
+
26
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
27
+ - **Plugin**: specweave-infrastructure
28
+ - **Directory**: observability-engineer
29
+ - **Agent Name**: observability-engineer
30
+
31
+ **When to Use**:
32
+ - You need to design monitoring and observability architecture
33
+ - You want to set up distributed tracing for microservices
34
+ - You need to configure alerting and SLO tracking
35
+ - You're troubleshooting performance issues or anomalies
36
+ - You want to implement comprehensive log aggregation and analysis
37
+
12
38
  ## Purpose
13
39
  Expert observability engineer specializing in comprehensive monitoring strategies, distributed tracing, and production reliability systems. Masters both traditional monitoring approaches and cutting-edge observability patterns, with deep knowledge of modern observability stacks, SRE practices, and enterprise-scale monitoring architectures.
14
40
 
@@ -9,6 +9,32 @@ fallback_behavior: flexible
9
9
 
10
10
  You are a performance engineer specializing in modern application optimization, observability, and scalable system performance.
11
11
 
12
+ ## 🚀 How to Invoke This Agent
13
+
14
+ **Subagent Type**: `specweave-infrastructure:performance-engineer:performance-engineer`
15
+
16
+ **Usage Example**:
17
+
18
+ ```typescript
19
+ Task({
20
+ subagent_type: "specweave-infrastructure:performance-engineer:performance-engineer",
21
+ prompt: "Analyze and optimize API performance with distributed tracing, implement multi-tier caching, and load testing",
22
+ model: "haiku" // optional: haiku, sonnet, opus
23
+ });
24
+ ```
25
+
26
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
27
+ - **Plugin**: specweave-infrastructure
28
+ - **Directory**: performance-engineer
29
+ - **Agent Name**: performance-engineer
30
+
31
+ **When to Use**:
32
+ - You need to profile and optimize application performance
33
+ - You want to implement caching strategies across layers
34
+ - You need to conduct load testing and capacity planning
35
+ - You're optimizing database queries or API response times
36
+ - You want to improve Core Web Vitals or frontend performance
37
+
12
38
  ## Purpose
13
39
  Expert performance engineer with comprehensive knowledge of modern observability, application profiling, and system optimization. Masters performance testing, distributed tracing, caching architectures, and scalability patterns. Specializes in end-to-end performance optimization, real user monitoring, and building performant, scalable systems.
14
40
 
@@ -10,6 +10,32 @@ fallback_behavior: auto
10
10
 
11
11
  # SRE Agent - Site Reliability Engineering Expert
12
12
 
13
+ ## 🚀 How to Invoke This Agent
14
+
15
+ **Subagent Type**: `specweave-infrastructure:sre:sre`
16
+
17
+ **Usage Example**:
18
+
19
+ ```typescript
20
+ Task({
21
+ subagent_type: "specweave-infrastructure:sre:sre",
22
+ prompt: "Diagnose why dashboard loading is slow (10 seconds) and provide immediate and long-term mitigation plans",
23
+ model: "haiku" // optional: haiku, sonnet, opus
24
+ });
25
+ ```
26
+
27
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
28
+ - **Plugin**: specweave-infrastructure
29
+ - **Directory**: sre
30
+ - **Agent Name**: sre
31
+
32
+ **When to Use**:
33
+ - You have an active production incident and need rapid diagnosis
34
+ - You need to analyze root causes of system failures
35
+ - You want to create runbooks for recurring issues
36
+ - You need to write post-mortems after incidents
37
+ - You're troubleshooting performance, availability, or reliability issues
38
+
13
39
  **Purpose**: Holistic incident response, root cause analysis, and production system reliability.
14
40
 
15
41
  ## Core Capabilities
@@ -1,5 +1,31 @@
1
1
  # Jira Manager Agent
2
2
 
3
+ ## 🚀 How to Invoke This Agent
4
+
5
+ **Subagent Type**: `specweave-jira:jira-manager:jira-manager`
6
+
7
+ **Usage Example**:
8
+
9
+ ```typescript
10
+ Task({
11
+ subagent_type: "specweave-jira:jira-manager:jira-manager",
12
+ prompt: "Create Jira epic for increment 0005 and sync all tasks from spec.md and tasks.md",
13
+ model: "haiku" // optional: haiku, sonnet, opus
14
+ });
15
+ ```
16
+
17
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
18
+ - **Plugin**: specweave-jira
19
+ - **Directory**: jira-manager
20
+ - **Agent Name**: jira-manager
21
+
22
+ **When to Use**:
23
+ - You need to sync SpecWeave increments to Jira epics
24
+ - You want bidirectional synchronization between SpecWeave and Jira
25
+ - You need to update Jira issues with task completion status
26
+ - You're creating Jira stories from SpecWeave specifications
27
+ - You need to manage cross-system consistency between SpecWeave and Jira
28
+
3
29
  **Role**: Jira integration specialist for SpecWeave increments
4
30
 
5
31
  **Expertise**: Jira REST API, Epic/Story/Task management, JQL, automation, webhooks, custom fields
@@ -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
@@ -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
 
@@ -3,8 +3,8 @@
3
3
  "version": "0.22.14",
4
4
  "description": "Complete ML/AI workflow integration for SpecWeave - from experiment tracking to production deployment. Includes 13 comprehensive skills covering the full ML lifecycle: pipeline orchestration, experiment tracking, model evaluation, explainability, deployment, feature engineering, AutoML, computer vision, NLP, time series forecasting, anomaly detection, data visualization, and model registry.",
5
5
  "author": {
6
- "name": "SpecWeave Team",
7
- "email": "[email protected]",
6
+ "name": "Anton Abyzov",
7
+ "email": "anton.abyzov@gmail.com",
8
8
  "url": "https://spec-weave.com"
9
9
  },
10
10
  "homepage": "https://spec-weave.com",
@@ -9,6 +9,32 @@ fallback_behavior: strict
9
9
 
10
10
  You are a data scientist specializing in advanced analytics, machine learning, statistical modeling, and data-driven business insights.
11
11
 
12
+ ## 🚀 How to Invoke This Agent
13
+
14
+ **Subagent Type**: `specweave-ml:data-scientist:data-scientist`
15
+
16
+ **Usage Example**:
17
+
18
+ ```typescript
19
+ Task({
20
+ subagent_type: "specweave-ml:data-scientist:data-scientist",
21
+ prompt: "Analyze customer churn patterns and build predictive model to identify at-risk customers",
22
+ model: "haiku" // optional: haiku, sonnet, opus
23
+ });
24
+ ```
25
+
26
+ **Naming Convention**: `{plugin}:{directory}:{yaml-name-or-directory-name}`
27
+ - **Plugin**: specweave-ml
28
+ - **Directory**: data-scientist
29
+ - **Agent Name**: data-scientist
30
+
31
+ **When to Use**:
32
+ - You need to perform exploratory data analysis and statistical analysis
33
+ - You want to build machine learning models for prediction or classification
34
+ - You need to design A/B tests or experiments
35
+ - You want to create data visualizations and dashboards
36
+ - You need actionable insights from complex data
37
+
12
38
  ## Purpose
13
39
  Expert data scientist combining strong statistical foundations with modern machine learning techniques and business acumen. Masters the complete data science workflow from exploratory data analysis to production model deployment, with deep expertise in statistical methods, ML algorithms, and data visualization for actionable business insights.
14
40