specweave 1.0.119 → 1.0.121

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.
package/README.md CHANGED
@@ -290,6 +290,27 @@ Three gates before any increment closes:
290
290
 
291
291
  **No configuration needed** - enabled by default. [Learn more about Tool Search](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool).
292
292
 
293
+ ### Coming Soon: Native Lazy Plugin Loading (v1.1)
294
+
295
+ **99% token savings** for non-SpecWeave work with our upcoming router-based architecture:
296
+
297
+ | Scenario | Current | After v1.1 | Savings |
298
+ |----------|---------|------------|---------|
299
+ | Non-SpecWeave work | ~60k tokens | ~500 tokens | **99%** |
300
+ | SpecWeave work | ~60k tokens | ~60k (on-demand) | 0% |
301
+ | Mixed session | ~60k tokens | ~30k avg | **50%** |
302
+
303
+ **How it will work:**
304
+ - **Router skill** (~500 tokens) installed by default - detects SpecWeave intent from keywords
305
+ - **On-demand loading** - Full plugins hot-reload when you mention "increment", "spec.md", "living docs", etc.
306
+ - **Context forking** - Heavy skills (PM, Architect) run in isolated sub-agents via `context: fork`
307
+ - **Skills cache** at `~/.specweave/skills-cache/` - instant activation without network latency
308
+ - **Migration path** - `specweave migrate-lazy` for existing installations
309
+
310
+ **Keywords that trigger full loading:** `increment`, `specweave`, `/sw:`, `spec.md`, `tasks.md`, `living docs`, `feature planning`, `sprint`, `jira sync`, `github sync`
311
+
312
+ [View full specification →](https://github.com/anton-abyzov/specweave/tree/develop/.specweave/increments/0171-lazy-plugin-loading)
313
+
293
314
  ### Claude Code 2.1.x Optimizations
294
315
 
295
316
  SpecWeave leverages the latest Claude Code features for maximum performance:
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-marketplace.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAiBH,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsVD,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsP3F"}
1
+ {"version":3,"file":"refresh-marketplace.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AAiBH,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA8WD,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkQ3F"}
@@ -203,30 +203,58 @@ function installPlugin(pluginName, force = false) {
203
203
  function fixHookPermissions(marketplacePath) {
204
204
  const errors = [];
205
205
  let fixed = 0;
206
+ let skipped = 0;
207
+ // Skip on Windows - chmod has no effect on NTFS
208
+ if (process.platform === 'win32') {
209
+ return { fixed: 0, skipped: 0, errors: [] };
210
+ }
206
211
  const pluginsDir = path.join(marketplacePath, 'plugins');
207
212
  if (!fs.existsSync(pluginsDir)) {
208
- return { fixed, errors: ['Plugins directory not found'] };
213
+ return { fixed, skipped, errors: ['Plugins directory not found'] };
209
214
  }
210
215
  // Find all plugin directories
211
216
  const pluginDirs = fs.readdirSync(pluginsDir).filter(name => {
212
217
  const pluginPath = path.join(pluginsDir, name);
213
218
  return fs.statSync(pluginPath).isDirectory();
214
219
  });
220
+ /**
221
+ * Check if file already has execute permission for owner
222
+ */
223
+ const isExecutable = (filePath) => {
224
+ try {
225
+ const stats = fs.statSync(filePath);
226
+ // Check owner execute bit (0o100)
227
+ return (stats.mode & 0o100) !== 0;
228
+ }
229
+ catch {
230
+ return false;
231
+ }
232
+ };
233
+ /**
234
+ * Fix permission on a single file if needed
235
+ */
236
+ const fixFilePermission = (filePath, displayName) => {
237
+ try {
238
+ if (isExecutable(filePath)) {
239
+ skipped++;
240
+ return;
241
+ }
242
+ // Make executable (0o755 = rwxr-xr-x)
243
+ fs.chmodSync(filePath, 0o755);
244
+ fixed++;
245
+ }
246
+ catch (error) {
247
+ errors.push(`${displayName}: ${error}`);
248
+ }
249
+ };
215
250
  for (const pluginName of pluginDirs) {
216
251
  const hooksDir = path.join(pluginsDir, pluginName, 'hooks');
217
- if (!fs.existsSync(hooksDir))
218
- continue;
219
- // Find all .sh files in hooks directory
220
- const hookFiles = fs.readdirSync(hooksDir).filter(f => f.endsWith('.sh'));
221
- for (const hookFile of hookFiles) {
222
- const hookPath = path.join(hooksDir, hookFile);
223
- try {
224
- // Make executable (0o755 = rwxr-xr-x)
225
- fs.chmodSync(hookPath, 0o755);
226
- fixed++;
227
- }
228
- catch (error) {
229
- errors.push(`${pluginName}/${hookFile}: ${error}`);
252
+ if (fs.existsSync(hooksDir)) {
253
+ // Find all .sh files in hooks directory
254
+ const hookFiles = fs.readdirSync(hooksDir).filter(f => f.endsWith('.sh'));
255
+ for (const hookFile of hookFiles) {
256
+ const hookPath = path.join(hooksDir, hookFile);
257
+ fixFilePermission(hookPath, `${pluginName}/${hookFile}`);
230
258
  }
231
259
  }
232
260
  // Also check scripts directory
@@ -235,17 +263,11 @@ function fixHookPermissions(marketplacePath) {
235
263
  const scriptFiles = fs.readdirSync(scriptsDir).filter(f => f.endsWith('.sh'));
236
264
  for (const scriptFile of scriptFiles) {
237
265
  const scriptPath = path.join(scriptsDir, scriptFile);
238
- try {
239
- fs.chmodSync(scriptPath, 0o755);
240
- fixed++;
241
- }
242
- catch (error) {
243
- errors.push(`${pluginName}/scripts/${scriptFile}: ${error}`);
244
- }
266
+ fixFilePermission(scriptPath, `${pluginName}/scripts/${scriptFile}`);
245
267
  }
246
268
  }
247
269
  }
248
- return { fixed, errors };
270
+ return { fixed, skipped, errors };
249
271
  }
250
272
  /**
251
273
  * Check plugin cache health before refresh and auto-invalidate critical issues
@@ -467,15 +489,28 @@ export async function refreshMarketplaceCommand(options = {}) {
467
489
  console.log(chalk.green.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
468
490
  }
469
491
  console.log('');
470
- // Step 3.5: Fix hook permissions (chmod +x)
471
- console.log(chalk.yellow('🔧 Step 3.5: Fixing hook permissions...'));
472
- const permResult = fixHookPermissions(marketplacePath);
473
- if (permResult.fixed > 0) {
474
- console.log(chalk.green(`✓ Fixed permissions on ${permResult.fixed} hook/script files`));
475
- }
476
- if (permResult.errors.length > 0 && options.verbose) {
477
- for (const err of permResult.errors) {
478
- console.log(chalk.yellow(` ${err}`));
492
+ // Step 3.5: Fix hook permissions (chmod +x) - Unix only
493
+ if (process.platform !== 'win32') {
494
+ console.log(chalk.yellow('🔧 Step 3.5: Fixing hook permissions...'));
495
+ const permResult = fixHookPermissions(marketplacePath);
496
+ if (permResult.fixed > 0) {
497
+ console.log(chalk.green(`✓ Fixed permissions on ${permResult.fixed} hook/script files`));
498
+ }
499
+ if (permResult.skipped > 0 && options.verbose) {
500
+ console.log(chalk.dim(` (${permResult.skipped} files already executable)`));
501
+ }
502
+ if (permResult.fixed === 0 && permResult.skipped > 0) {
503
+ console.log(chalk.green(`✓ All ${permResult.skipped} hook/script files already executable`));
504
+ }
505
+ if (permResult.errors.length > 0 && options.verbose) {
506
+ for (const err of permResult.errors) {
507
+ console.log(chalk.yellow(` ⚠ ${err}`));
508
+ }
509
+ }
510
+ }
511
+ else {
512
+ if (options.verbose) {
513
+ console.log(chalk.dim('🔧 Step 3.5: Skipped (Windows - permissions not applicable)'));
479
514
  }
480
515
  }
481
516
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-marketplace.js","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refresh-marketplace.js","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Keyword Detector for Lazy Plugin Loading
3
+ *
4
+ * Detects SpecWeave intent from user prompts to trigger on-demand plugin loading.
5
+ * Implements confidence-based detection with negative patterns to avoid false positives.
6
+ *
7
+ * @module core/lazy-loading/keyword-detector
8
+ */
9
+ /**
10
+ * Result of keyword detection analysis
11
+ */
12
+ export interface DetectionResult {
13
+ /** Whether SpecWeave intent was detected */
14
+ detected: boolean;
15
+ /** Keywords that matched in the prompt */
16
+ matchedKeywords: string[];
17
+ /** Confidence level (0-1) */
18
+ confidence: number;
19
+ /** Plugins suggested based on matched keywords */
20
+ suggestedPlugins: string[];
21
+ /** Detection latency in milliseconds */
22
+ latencyMs?: number;
23
+ }
24
+ /**
25
+ * Keyword categories for SpecWeave intent detection
26
+ */
27
+ export declare const SPECWEAVE_KEYWORDS: {
28
+ /**
29
+ * High confidence keywords - definitely SpecWeave (confidence >= 0.9)
30
+ */
31
+ readonly high: readonly ["/sw:", "specweave", "increment", "spec.md", "tasks.md", "plan.md", "metadata.json", "living docs", "living documentation", "acceptance criteria", "user story"];
32
+ /**
33
+ * Medium confidence keywords - likely SpecWeave (confidence >= 0.6)
34
+ */
35
+ readonly medium: readonly ["feature planning", "sprint planning", "jira sync", "github sync", "ado sync", "azure devops sync", "auto mode", "tdd mode", "parallel auto", "sw:increment", "sw:do", "sw:done", "sw:progress", "sw:validate"];
36
+ /**
37
+ * Low confidence keywords - might be SpecWeave (confidence >= 0.3)
38
+ * Only triggers if no higher confidence matches
39
+ */
40
+ readonly low: readonly ["backlog", "kanban", "scrum", "spec", "task", "plan", "milestone", "epic", "feature"];
41
+ /**
42
+ * Negative patterns - definitely NOT SpecWeave intent
43
+ * If matched, detection returns false regardless of other matches
44
+ */
45
+ readonly negative: readonly ["openapi spec", "api spec", "test spec", "spec file", "specification file", "task runner", "gulp task", "npm task", "gradle task", "rake task", "cron task", "scheduled task", "build plan", "terraform plan", "query plan", "execution plan", "test plan", "project plan"];
46
+ };
47
+ /**
48
+ * Plugin group definitions for suggestion
49
+ */
50
+ export declare const PLUGIN_GROUPS: Record<string, string[]>;
51
+ /**
52
+ * Detects SpecWeave intent from a user prompt
53
+ *
54
+ * @param prompt - User's input prompt
55
+ * @returns Detection result with confidence and suggested plugins
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * const result = detectSpecWeaveIntent("Let's create an increment for auth");
60
+ * // { detected: true, confidence: 0.9, matchedKeywords: ['increment'], ... }
61
+ * ```
62
+ */
63
+ export declare function detectSpecWeaveIntent(prompt: string): DetectionResult;
64
+ /**
65
+ * Determines which plugins to suggest based on matched keywords
66
+ *
67
+ * @param keywords - Keywords matched in the prompt
68
+ * @param normalizedPrompt - Lowercase prompt for additional checks
69
+ * @returns Array of plugin names to suggest
70
+ */
71
+ export declare function determinePlugins(keywords: string[], normalizedPrompt: string): string[];
72
+ /**
73
+ * Gets all available plugin groups
74
+ *
75
+ * @returns Record of group names to plugin arrays (deep copy)
76
+ */
77
+ export declare function getPluginGroups(): Record<string, string[]>;
78
+ /**
79
+ * Gets plugins for a specific group
80
+ *
81
+ * @param group - Group name (core, github, jira, etc.)
82
+ * @returns Array of plugin names or empty array if group not found
83
+ */
84
+ export declare function getPluginsForGroup(group: string): string[];
85
+ /**
86
+ * Gets all available plugins across all groups
87
+ *
88
+ * @returns Array of all unique plugin names
89
+ */
90
+ export declare function getAllPlugins(): string[];
91
+ //# sourceMappingURL=keyword-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword-detector.d.ts","sourceRoot":"","sources":["../../../../src/core/lazy-loading/keyword-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B;;OAEG;;IAkBH;;OAEG;;IAkBH;;;OAGG;;IAGH;;;OAGG;;CAqBK,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAgBlD,CAAC;AAsCF;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA+DrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAqBvF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAM1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE1D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAMxC"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Keyword Detector for Lazy Plugin Loading
3
+ *
4
+ * Detects SpecWeave intent from user prompts to trigger on-demand plugin loading.
5
+ * Implements confidence-based detection with negative patterns to avoid false positives.
6
+ *
7
+ * @module core/lazy-loading/keyword-detector
8
+ */
9
+ /**
10
+ * Keyword categories for SpecWeave intent detection
11
+ */
12
+ export const SPECWEAVE_KEYWORDS = {
13
+ /**
14
+ * High confidence keywords - definitely SpecWeave (confidence >= 0.9)
15
+ */
16
+ high: [
17
+ // Commands
18
+ '/sw:',
19
+ 'specweave',
20
+ 'increment',
21
+ // Files
22
+ 'spec.md',
23
+ 'tasks.md',
24
+ 'plan.md',
25
+ 'metadata.json',
26
+ // Concepts
27
+ 'living docs',
28
+ 'living documentation',
29
+ 'acceptance criteria',
30
+ 'user story',
31
+ ],
32
+ /**
33
+ * Medium confidence keywords - likely SpecWeave (confidence >= 0.6)
34
+ */
35
+ medium: [
36
+ 'feature planning',
37
+ 'sprint planning',
38
+ 'jira sync',
39
+ 'github sync',
40
+ 'ado sync',
41
+ 'azure devops sync',
42
+ 'auto mode',
43
+ 'tdd mode',
44
+ 'parallel auto',
45
+ 'sw:increment',
46
+ 'sw:do',
47
+ 'sw:done',
48
+ 'sw:progress',
49
+ 'sw:validate',
50
+ ],
51
+ /**
52
+ * Low confidence keywords - might be SpecWeave (confidence >= 0.3)
53
+ * Only triggers if no higher confidence matches
54
+ */
55
+ low: ['backlog', 'kanban', 'scrum', 'spec', 'task', 'plan', 'milestone', 'epic', 'feature'],
56
+ /**
57
+ * Negative patterns - definitely NOT SpecWeave intent
58
+ * If matched, detection returns false regardless of other matches
59
+ */
60
+ negative: [
61
+ 'openapi spec',
62
+ 'api spec',
63
+ 'test spec',
64
+ 'spec file',
65
+ 'specification file',
66
+ 'task runner',
67
+ 'gulp task',
68
+ 'npm task',
69
+ 'gradle task',
70
+ 'rake task',
71
+ 'cron task',
72
+ 'scheduled task',
73
+ 'build plan',
74
+ 'terraform plan',
75
+ 'query plan',
76
+ 'execution plan',
77
+ 'test plan',
78
+ 'project plan',
79
+ ],
80
+ };
81
+ /**
82
+ * Plugin group definitions for suggestion
83
+ */
84
+ export const PLUGIN_GROUPS = {
85
+ core: ['specweave'],
86
+ github: ['specweave-github'],
87
+ jira: ['specweave-jira'],
88
+ ado: ['specweave-ado'],
89
+ frontend: ['specweave-frontend'],
90
+ backend: ['specweave-backend'],
91
+ infra: ['specweave-infrastructure', 'specweave-k8s'],
92
+ ml: ['specweave-ml'],
93
+ kafka: ['specweave-kafka'],
94
+ confluent: ['specweave-confluent'],
95
+ mobile: ['specweave-mobile'],
96
+ payments: ['specweave-payments'],
97
+ release: ['specweave-release'],
98
+ testing: ['specweave-testing'],
99
+ diagrams: ['specweave-diagrams'],
100
+ };
101
+ /**
102
+ * Keyword to plugin mapping for intelligent suggestions
103
+ */
104
+ const KEYWORD_PLUGIN_MAP = {
105
+ jira: ['specweave-jira'],
106
+ github: ['specweave-github'],
107
+ ado: ['specweave-ado'],
108
+ 'azure devops': ['specweave-ado'],
109
+ frontend: ['specweave-frontend'],
110
+ react: ['specweave-frontend'],
111
+ vue: ['specweave-frontend'],
112
+ backend: ['specweave-backend'],
113
+ api: ['specweave-backend'],
114
+ database: ['specweave-backend'],
115
+ k8s: ['specweave-k8s'],
116
+ kubernetes: ['specweave-k8s'],
117
+ docker: ['specweave-infrastructure'],
118
+ terraform: ['specweave-infrastructure'],
119
+ kafka: ['specweave-kafka'],
120
+ ml: ['specweave-ml'],
121
+ 'machine learning': ['specweave-ml'],
122
+ mobile: ['specweave-mobile'],
123
+ 'react native': ['specweave-mobile'],
124
+ ios: ['specweave-mobile'],
125
+ android: ['specweave-mobile'],
126
+ payment: ['specweave-payments'],
127
+ stripe: ['specweave-payments'],
128
+ release: ['specweave-release'],
129
+ changelog: ['specweave-release'],
130
+ test: ['specweave-testing'],
131
+ e2e: ['specweave-testing'],
132
+ playwright: ['specweave-testing'],
133
+ diagram: ['specweave-diagrams'],
134
+ mermaid: ['specweave-diagrams'],
135
+ };
136
+ /**
137
+ * Detects SpecWeave intent from a user prompt
138
+ *
139
+ * @param prompt - User's input prompt
140
+ * @returns Detection result with confidence and suggested plugins
141
+ *
142
+ * @example
143
+ * ```ts
144
+ * const result = detectSpecWeaveIntent("Let's create an increment for auth");
145
+ * // { detected: true, confidence: 0.9, matchedKeywords: ['increment'], ... }
146
+ * ```
147
+ */
148
+ export function detectSpecWeaveIntent(prompt) {
149
+ const startTime = performance.now();
150
+ const normalized = prompt.toLowerCase();
151
+ const matchedKeywords = [];
152
+ let confidence = 0;
153
+ // Check negative patterns first - immediate rejection
154
+ for (const negativePattern of SPECWEAVE_KEYWORDS.negative) {
155
+ if (normalized.includes(negativePattern.toLowerCase())) {
156
+ return {
157
+ detected: false,
158
+ matchedKeywords: [],
159
+ confidence: 0,
160
+ suggestedPlugins: [],
161
+ latencyMs: performance.now() - startTime,
162
+ };
163
+ }
164
+ }
165
+ // Check high confidence keywords
166
+ for (const keyword of SPECWEAVE_KEYWORDS.high) {
167
+ if (normalized.includes(keyword.toLowerCase())) {
168
+ matchedKeywords.push(keyword);
169
+ confidence = Math.max(confidence, 0.9);
170
+ }
171
+ }
172
+ // Check medium confidence keywords
173
+ for (const keyword of SPECWEAVE_KEYWORDS.medium) {
174
+ if (normalized.includes(keyword.toLowerCase())) {
175
+ matchedKeywords.push(keyword);
176
+ confidence = Math.max(confidence, 0.6);
177
+ }
178
+ }
179
+ // Check low confidence keywords only if no higher matches
180
+ if (matchedKeywords.length === 0) {
181
+ for (const keyword of SPECWEAVE_KEYWORDS.low) {
182
+ // For single-word low confidence keywords, ensure word boundaries
183
+ const pattern = new RegExp(`\\b${escapeRegex(keyword)}\\b`, 'i');
184
+ if (pattern.test(prompt)) {
185
+ matchedKeywords.push(keyword);
186
+ confidence = Math.max(confidence, 0.3);
187
+ }
188
+ }
189
+ }
190
+ // Boost confidence if multiple keywords matched
191
+ if (matchedKeywords.length >= 3) {
192
+ confidence = Math.min(confidence + 0.1, 1.0);
193
+ }
194
+ // Determine suggested plugins (only if detected)
195
+ const detected = confidence >= 0.3;
196
+ const suggestedPlugins = detected ? determinePlugins(matchedKeywords, normalized) : [];
197
+ return {
198
+ detected,
199
+ matchedKeywords,
200
+ confidence,
201
+ suggestedPlugins,
202
+ latencyMs: performance.now() - startTime,
203
+ };
204
+ }
205
+ /**
206
+ * Determines which plugins to suggest based on matched keywords
207
+ *
208
+ * @param keywords - Keywords matched in the prompt
209
+ * @param normalizedPrompt - Lowercase prompt for additional checks
210
+ * @returns Array of plugin names to suggest
211
+ */
212
+ export function determinePlugins(keywords, normalizedPrompt) {
213
+ const plugins = new Set(['specweave']); // Always include core
214
+ // Map keywords to plugins
215
+ for (const keyword of keywords) {
216
+ const lowerKeyword = keyword.toLowerCase();
217
+ for (const [pattern, pluginList] of Object.entries(KEYWORD_PLUGIN_MAP)) {
218
+ if (lowerKeyword.includes(pattern)) {
219
+ pluginList.forEach((p) => plugins.add(p));
220
+ }
221
+ }
222
+ }
223
+ // Additional context-based suggestions from prompt
224
+ for (const [pattern, pluginList] of Object.entries(KEYWORD_PLUGIN_MAP)) {
225
+ if (normalizedPrompt.includes(pattern)) {
226
+ pluginList.forEach((p) => plugins.add(p));
227
+ }
228
+ }
229
+ return Array.from(plugins);
230
+ }
231
+ /**
232
+ * Gets all available plugin groups
233
+ *
234
+ * @returns Record of group names to plugin arrays (deep copy)
235
+ */
236
+ export function getPluginGroups() {
237
+ const result = {};
238
+ for (const [key, value] of Object.entries(PLUGIN_GROUPS)) {
239
+ result[key] = [...value];
240
+ }
241
+ return result;
242
+ }
243
+ /**
244
+ * Gets plugins for a specific group
245
+ *
246
+ * @param group - Group name (core, github, jira, etc.)
247
+ * @returns Array of plugin names or empty array if group not found
248
+ */
249
+ export function getPluginsForGroup(group) {
250
+ return PLUGIN_GROUPS[group.toLowerCase()] || [];
251
+ }
252
+ /**
253
+ * Gets all available plugins across all groups
254
+ *
255
+ * @returns Array of all unique plugin names
256
+ */
257
+ export function getAllPlugins() {
258
+ const allPlugins = new Set();
259
+ for (const plugins of Object.values(PLUGIN_GROUPS)) {
260
+ plugins.forEach((p) => allPlugins.add(p));
261
+ }
262
+ return Array.from(allPlugins);
263
+ }
264
+ /**
265
+ * Escapes special regex characters in a string
266
+ */
267
+ function escapeRegex(str) {
268
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
269
+ }
270
+ //# sourceMappingURL=keyword-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword-detector.js","sourceRoot":"","sources":["../../../../src/core/lazy-loading/keyword-detector.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.119",
3
+ "version": "1.0.121",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -562,7 +562,7 @@ In `.specweave/config.json`:
562
562
  The session ends when ANY of these occur:
563
563
 
564
564
  1. **All tasks complete + tests passed** - tasks.md has all `[x]` AND tests were executed
565
- 2. **Completion promise** - Output contains `<auto-complete>DONE</auto-complete>`
565
+ 2. **Completion promise** - Output contains `<!-- auto-complete:DONE -->`
566
566
  3. **Max iterations** - Reached configured limit (default: 500)
567
567
  4. **Max hours** - Time limit exceeded (default: 120 hours / 5 days)
568
568
  5. **User cancellation** - `/sw:cancel-auto`
@@ -939,7 +939,7 @@ All stop reasons logged to `.specweave/logs/auto-stop-reasons.log`:
939
939
  | Category | Success | Example |
940
940
  |----------|---------|---------|
941
941
  | `all_tasks_complete` | ✅ | All tests pass, all tasks done |
942
- | `completion_promise` | ✅ | `<auto-complete>DONE</auto-complete>` detected |
942
+ | `completion_promise` | ✅ | `<!-- auto-complete:DONE -->` detected |
943
943
  | `max_iterations_reached` | ❌ | Safety limit hit (not ideal) |
944
944
  | `max_hours_exceeded` | ❌ | Time limit hit |
945
945
  | `test_failures_exhausted` | ❌ | 3 retry attempts failed |
@@ -1606,9 +1606,8 @@ E2E Tests:
1606
1606
 
1607
1607
  2. **On completion**:
1608
1608
  ```
1609
- <auto-complete>DONE</auto-complete>
1610
-
1611
1609
  ✅ Auto Session Complete!
1610
+ <!-- auto-complete:DONE -->
1612
1611
 
1613
1612
  Session: auto-2025-12-29-abc123
1614
1613
  Duration: 2h 34m
@@ -1859,7 +1859,8 @@ if [ -n "$TRANSCRIPT_PATH" ] && [ -f "$TRANSCRIPT_PATH" ]; then
1859
1859
  # 1. Promise is in the LAST 100 lines of transcript (fresh, not legacy)
1860
1860
  # 2. All tasks are marked complete
1861
1861
  # 3. Tests pass OR no tests exist
1862
- if tail -100 "$TRANSCRIPT_PATH" 2>/dev/null | grep -q "<auto-complete>DONE</auto-complete>"; then
1862
+ # Support both old format (<auto-complete>DONE</auto-complete>) and new format (<!-- auto-complete:DONE -->)
1863
+ if tail -100 "$TRANSCRIPT_PATH" 2>/dev/null | grep -qE "<auto-complete>DONE</auto-complete>|<!-- auto-complete:DONE -->"; then
1863
1864
  # Verify tasks are actually complete before accepting promise
1864
1865
  TASKS_FILE=""
1865
1866
  if [ -n "$CURRENT_INCREMENT" ] && [ "$CURRENT_INCREMENT" != "null" ]; then
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "sw-router",
3
+ "description": "Lightweight SpecWeave router for lazy plugin loading. Detects spec-driven development intent and loads full plugins on-demand, reducing context usage by 99% when not using SpecWeave features.",
4
+ "version": "1.0.0",
5
+ "author": {
6
+ "name": "SpecWeave Team",
7
+ "url": "https://spec-weave.com"
8
+ },
9
+ "homepage": "https://spec-weave.com",
10
+ "repository": "https://github.com/anton-abyzov/specweave",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "router",
14
+ "lazy-loading",
15
+ "context-optimization",
16
+ "specweave"
17
+ ],
18
+ "lazyLoading": {
19
+ "isRouter": true,
20
+ "tokenEstimate": 400,
21
+ "triggersFullLoad": true
22
+ }
23
+ }
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: specweave-router
3
+ description: |
4
+ Lightweight SpecWeave router that detects spec-driven development intent
5
+ and loads full plugins on-demand. Activates for: increment, specweave,
6
+ /sw:, spec.md, tasks.md, plan.md, living docs, living documentation,
7
+ acceptance criteria, user story, feature planning, sprint planning,
8
+ jira sync, github sync, ado sync, auto mode, tdd mode, parallel auto.
9
+ visibility: public
10
+ user-invocable: false
11
+ allowed-tools:
12
+ - Bash
13
+ ---
14
+
15
+ # SpecWeave Router
16
+
17
+ Minimal router for lazy-loading SpecWeave plugins. Detects intent and loads full functionality on-demand.
18
+
19
+ ## When I Activate
20
+
21
+ I detect SpecWeave intent when you mention:
22
+ - **Commands**: `/sw:*`, `specweave`
23
+ - **Files**: `spec.md`, `tasks.md`, `plan.md`
24
+ - **Concepts**: increment, living docs, acceptance criteria, user story
25
+ - **Integrations**: jira sync, github sync, ado sync
26
+ - **Modes**: auto mode, tdd mode, parallel auto
27
+
28
+ ## On Activation
29
+
30
+ When SpecWeave intent detected:
31
+
32
+ 1. Check if full plugins already loaded:
33
+ ```bash
34
+ ls ~/.specweave/state/plugins-loaded.json 2>/dev/null && cat ~/.specweave/state/plugins-loaded.json | grep -q '"lazyMode": true'
35
+ ```
36
+
37
+ 2. If not loaded, install from cache:
38
+ ```bash
39
+ bash ~/.specweave/scripts/install-plugins.sh
40
+ ```
41
+
42
+ 3. Plugins hot-reload automatically - no restart needed.
43
+
44
+ ## Loading Message
45
+
46
+ When loading plugins, output:
47
+ ```
48
+ Loading SpecWeave plugins...
49
+ ```
50
+
51
+ After loading completes:
52
+ ```
53
+ SpecWeave ready. Use /sw:* commands or ask about increments.
54
+ ```
55
+
56
+ ## Token Savings
57
+
58
+ - This router: ~400 tokens
59
+ - Full plugins: ~60,000 tokens
60
+ - Savings: 99% when not using SpecWeave
61
+
62
+ ## Manual Loading
63
+
64
+ Users can manually load plugins:
65
+ ```bash
66
+ specweave load-plugins all # Load all plugins
67
+ specweave load-plugins core # Load core only
68
+ specweave load-plugins github # Load GitHub integration
69
+ ```
70
+
71
+ ## Related
72
+
73
+ - Full documentation: https://spec-weave.com
74
+ - Commands reference: `/sw:sw`
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: sw-ui:image
3
+ description: Generate images using Pollinations.ai - FREE AI image generation. Usage - /sw-ui:image "your prompt here". Creates hero images, icons, logos, mockups, illustrations. No API key required.
4
+ ---
5
+
6
+ # AI Image Generation Command
7
+
8
+ Generate professional-quality images using Pollinations.ai - a FREE, open-source AI platform.
9
+
10
+ ## Quick Usage
11
+
12
+ ```
13
+ /sw-ui:image "modern tech startup office, glass walls, natural lighting"
14
+ ```
15
+
16
+ ## What This Command Does
17
+
18
+ 1. Takes your prompt and enhances it with quality modifiers
19
+ 2. Generates the image URL using Pollinations.ai
20
+ 3. Optionally downloads and saves the image to your project
21
+
22
+ ## Parameters
23
+
24
+ The user provides a prompt in quotes. Parse it and determine:
25
+ - **Prompt**: The description of the image to generate
26
+ - **Dimensions**: Infer from context (hero=1920x1080, icon=512x512, etc.)
27
+ - **Model**: flux (default), flux-realism, flux-anime, flux-3d, turbo
28
+ - **Output**: Save to file or just provide URL
29
+
30
+ ## Implementation
31
+
32
+ ### Step 1: Parse the Request
33
+
34
+ Extract the prompt from the user's command. Look for dimensions or model hints:
35
+ - "hero image" → 1920x1080
36
+ - "icon" or "app icon" → 512x512
37
+ - "avatar" → 400x400
38
+ - "og image" → 1200x630
39
+ - "realistic" → model=flux-realism
40
+ - "anime" → model=flux-anime
41
+
42
+ ### Step 2: Build the URL
43
+
44
+ ```
45
+ https://image.pollinations.ai/prompt/{encoded_prompt}?width={w}&height={h}&model={model}&nologo=true
46
+ ```
47
+
48
+ Quality modifiers to append to prompt:
49
+ - Professional: ", professional photography, 8k uhd, high resolution, sharp focus"
50
+ - Icons: ", minimal, flat design, clean lines, centered"
51
+ - Illustrations: ", digital illustration, vibrant colors, detailed"
52
+
53
+ ### Step 3: Generate or Save
54
+
55
+ **Option A - URL Only** (default for quick preview):
56
+ ```markdown
57
+ Here's your generated image:
58
+
59
+ ![{short_description}]({url})
60
+
61
+ Direct URL: {url}
62
+ ```
63
+
64
+ **Option B - Save to File** (if user specifies path):
65
+ ```typescript
66
+ // Use WebFetch to download, then Write to save
67
+ const response = await fetch(url);
68
+ const buffer = await response.arrayBuffer();
69
+ // Save as PNG/JPG
70
+ ```
71
+
72
+ ## Examples
73
+
74
+ ### Hero Image
75
+ ```
76
+ /sw-ui:image "futuristic city skyline at sunset, cyberpunk, neon lights, cinematic"
77
+ ```
78
+ → 1920x1080, flux model
79
+
80
+ ### App Icon
81
+ ```
82
+ /sw-ui:image "minimalist app icon, letter A, gradient blue purple, iOS style"
83
+ ```
84
+ → 512x512, flux model
85
+
86
+ ### Product Mockup
87
+ ```
88
+ /sw-ui:image "iPhone mockup on wooden desk, coffee cup, lifestyle photography"
89
+ ```
90
+ → 1200x800, flux-3d model
91
+
92
+ ### Avatar
93
+ ```
94
+ /sw-ui:image "friendly robot avatar, geometric, blue and white, minimal"
95
+ ```
96
+ → 400x400, flux model
97
+
98
+ ## Aspect Ratios Reference
99
+
100
+ | Use Case | Width | Height |
101
+ |----------|-------|--------|
102
+ | Hero Banner | 1920 | 1080 |
103
+ | Social Post | 1200 | 1200 |
104
+ | App Icon | 512 | 512 |
105
+ | OG Image | 1200 | 630 |
106
+ | Thumbnail | 400 | 300 |
107
+ | Portrait | 800 | 1200 |
108
+
109
+ ## Models Reference
110
+
111
+ | Model | Best For |
112
+ |-------|----------|
113
+ | flux | General purpose (default) |
114
+ | flux-realism | Photorealistic images |
115
+ | flux-anime | Anime/illustration |
116
+ | flux-3d | 3D renders, mockups |
117
+ | turbo | Fast drafts |
118
+
119
+ ## Notes
120
+
121
+ - Images are generated on-demand (may take a few seconds)
122
+ - Use `seed` parameter for reproducible results
123
+ - Cache generated images for production use
124
+ - No API key required - completely free!
@@ -478,3 +478,135 @@ wrangler whoami 2>/dev/null && gh auth status 2>/dev/null
478
478
 
479
479
  [spec-weave.com](https://spec-weave.com) | `.specweave/docs/internal/`
480
480
  <!-- /SECTION -->
481
+
482
+ <!-- SECTION:non-claude -->
483
+ ## Non-Claude AI Tools
484
+
485
+ **SpecWeave works with ANY AI coding assistant.** The framework uses file-based tracking that's AI-tool agnostic.
486
+
487
+ ### Quick Setup for Other Tools
488
+
489
+ ```bash
490
+ # Install SpecWeave CLI globally
491
+ npm install -g specweave
492
+
493
+ # Initialize project (creates .specweave/ folder)
494
+ specweave init .
495
+
496
+ # Install plugins for your AI tool
497
+ bash ~/.specweave/scripts/install-plugins.sh --target generic
498
+ # Or on Windows PowerShell:
499
+ ~\.specweave\scripts\install-plugins.ps1 -Target generic
500
+ ```
501
+
502
+ ### Manual Context Loading (Cursor, Windsurf, Aider, etc.)
503
+
504
+ If your AI tool doesn't have a plugin system, manually include these files in context:
505
+
506
+ **Essential files to include in EVERY session:**
507
+ 1. `CLAUDE.md` (this file) - Framework rules and workflow
508
+ 2. `.specweave/increments/####-*/tasks.md` - Current work items
509
+ 3. `.specweave/increments/####-*/spec.md` - Requirements and ACs
510
+
511
+ **Copy-paste starter prompt:**
512
+ ```
513
+ I'm using SpecWeave for spec-driven development. Here are my current files:
514
+
515
+ [PASTE CLAUDE.md CONTENT]
516
+
517
+ [PASTE CURRENT tasks.md CONTENT]
518
+
519
+ [PASTE CURRENT spec.md CONTENT]
520
+
521
+ Follow SpecWeave workflow: update tasks.md checkboxes when done, update spec.md ACs.
522
+ ```
523
+
524
+ ### Tool-Specific Setup
525
+
526
+ **Cursor IDE:**
527
+ - Add `.specweave/` to workspace folders
528
+ - Include `CLAUDE.md` in `.cursorrules`
529
+ - Use `@file` to reference spec.md and tasks.md
530
+
531
+ **Windsurf:**
532
+ - Add this file content to cascade rules
533
+ - Reference increment files with `/file` command
534
+
535
+ **Aider:**
536
+ - Add CLAUDE.md to `.aider.conf.yml`:
537
+ ```yaml
538
+ read:
539
+ - CLAUDE.md
540
+ - .specweave/increments/*/spec.md
541
+ - .specweave/increments/*/tasks.md
542
+ ```
543
+
544
+ **Continue.dev:**
545
+ - Add to `.continue/config.json`:
546
+ ```json
547
+ {
548
+ "contextProviders": [{
549
+ "name": "file",
550
+ "params": { "path": "CLAUDE.md" }
551
+ }]
552
+ }
553
+ ```
554
+
555
+ **GitHub Copilot:**
556
+ - Add to `.github/copilot-instructions.md`:
557
+ ```
558
+ Follow SpecWeave workflow from CLAUDE.md.
559
+ Check .specweave/increments/ for current tasks.
560
+ Update tasks.md when completing work.
561
+ ```
562
+
563
+ ### Replicating SpecWeave Behaviors
564
+
565
+ **Without plugins, implement these manually:**
566
+
567
+ | SpecWeave Feature | Manual Equivalent |
568
+ |-------------------|-------------------|
569
+ | `/sw:increment` | Create `spec.md` with User Stories, create `tasks.md` with Tasks |
570
+ | `/sw:do` | Read tasks.md, work on pending tasks, update checkboxes |
571
+ | `/sw:done` | Mark all tasks complete, review ACs in spec.md |
572
+ | Hooks (validation) | Run `npm test && npm run build` before marking complete |
573
+ | Auto mode | Use agentic loop: read tasks.md → work → update → repeat |
574
+
575
+ **Task format for any AI:**
576
+ ```markdown
577
+ ### T-001: Task Title
578
+ **Status**: [ ] pending
579
+ **Acceptance**: Given X, When Y, Then Z
580
+
581
+ Implementation notes here.
582
+ ```
583
+
584
+ **Mark complete by changing:** `[ ] pending` → `[x] completed`
585
+
586
+ ### Autonomous Mode Without Claude Code
587
+
588
+ For non-Claude AI tools, implement the "Ralph Loop" pattern:
589
+
590
+ ```bash
591
+ # Pseudo-code for any AI tool with API access
592
+ while tasks_pending():
593
+ tasks = read_file("tasks.md")
594
+ current_task = get_first_pending(tasks)
595
+
596
+ # Have AI work on task
597
+ result = ai.complete(f"Complete this task: {current_task}")
598
+
599
+ # Update files
600
+ update_task_status(current_task, "completed")
601
+
602
+ # Run tests
603
+ if not run_tests():
604
+ ai.complete("Fix failing tests")
605
+
606
+ # Max iterations safety
607
+ if iterations > 100:
608
+ break
609
+ ```
610
+
611
+ **Key principle:** The AI reads tasks.md, works, updates the file, and loops until all `[x]` complete.
612
+ <!-- /SECTION -->