specweave 1.0.108 → 1.0.109

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/CLAUDE.md CHANGED
@@ -1,10 +1,10 @@
1
- <!-- SW:META template="claude" version="1.0.107" sections="header,start,autodetect,metarule,rules,workflow,reflect,context,lsp,structure,taskformat,secrets,syncing,mapping,testing,api,limits,troubleshooting,principles,linking,mcp,autoexecute,auto,docs" -->
1
+ <!-- SW:META template="claude" version="1.0.108" sections="header,start,autodetect,metarule,rules,workflow,reflect,context,lsp,structure,taskformat,secrets,syncing,mapping,testing,api,limits,troubleshooting,principles,linking,mcp,autoexecute,auto,docs" -->
2
2
 
3
- <!-- SW:SECTION:header version="1.0.107" -->
3
+ <!-- SW:SECTION:header version="1.0.108" -->
4
4
  **Framework**: SpecWeave | **Truth**: `spec.md` + `tasks.md`
5
5
  <!-- SW:END:header -->
6
6
 
7
- <!-- SW:SECTION:start version="1.0.107" -->
7
+ <!-- SW:SECTION:start version="1.0.108" -->
8
8
  ## Getting Started
9
9
 
10
10
  **Initial increment**: `0001-project-setup` (auto-created by `specweave init`)
@@ -14,7 +14,7 @@
14
14
  2. **Customize**: Edit spec.md and use for setup tasks
15
15
  <!-- SW:END:start -->
16
16
 
17
- <!-- SW:SECTION:autodetect version="1.0.107" -->
17
+ <!-- SW:SECTION:autodetect version="1.0.108" -->
18
18
  ## Auto-Detection
19
19
 
20
20
  SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
@@ -24,7 +24,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
24
24
  **Opt-out phrases**: "Just brainstorm first" | "Don't plan yet" | "Quick discussion" | "Let's explore ideas"
25
25
  <!-- SW:END:autodetect -->
26
26
 
27
- <!-- SW:SECTION:metarule version="1.0.107" -->
27
+ <!-- SW:SECTION:metarule version="1.0.108" -->
28
28
  ## Meta-Rule: Think-Before-Act
29
29
 
30
30
  **Satisfy dependencies BEFORE dependent operations.**
@@ -35,7 +35,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
35
35
  ```
36
36
  <!-- SW:END:metarule -->
37
37
 
38
- <!-- SW:SECTION:rules version="1.0.107" -->
38
+ <!-- SW:SECTION:rules version="1.0.108" -->
39
39
  ## Rules
40
40
 
41
41
  1. **Files** → `.specweave/increments/####-name/` (spec.md, plan.md, tasks.md at root; reports/, scripts/, logs/ subfolders)
@@ -48,7 +48,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
48
48
  8. **⛔ Marketplace refresh**: ALWAYS use `specweave refresh-marketplace` CLI command. NEVER suggest `scripts/refresh-marketplace.sh` - end users don't have the scripts folder (npm global install).
49
49
  <!-- SW:END:rules -->
50
50
 
51
- <!-- SW:SECTION:workflow version="1.0.107" -->
51
+ <!-- SW:SECTION:workflow version="1.0.108" -->
52
52
  ## Workflow
53
53
 
54
54
  `/sw:increment "X"` → `/sw:do` → `/sw:progress` → `/sw:done 0001`
@@ -68,7 +68,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
68
68
  **Natural language**: "Let's build X" → `/sw:increment` | "What's status?" → `/sw:progress` | "We're done" → `/sw:done` | "Ship while sleeping" → `/sw:auto`
69
69
  <!-- SW:END:workflow -->
70
70
 
71
- <!-- SW:SECTION:reflect version="1.0.107" -->
71
+ <!-- SW:SECTION:reflect version="1.0.108" -->
72
72
  ## Self-Improving Skills (Reflect)
73
73
 
74
74
  **Learn once, never repeat.** Claude learns from corrections and patterns across sessions.
@@ -112,7 +112,7 @@ ls ~/.specweave/memory/*.md 2>/dev/null
112
112
  **Enable auto-learning**: `/sw:reflect-on` → Stop hook analyzes sessions automatically
113
113
  <!-- SW:END:reflect -->
114
114
 
115
- <!-- SW:SECTION:context version="1.0.107" -->
115
+ <!-- SW:SECTION:context version="1.0.108" -->
116
116
  ## Living Docs Context
117
117
 
118
118
  **Before implementing features**: Check existing docs for patterns and decisions.
@@ -132,7 +132,7 @@ grep -ril "keyword" .specweave/docs/internal/
132
132
  **Use `/sw:context <topic>`** to load relevant living docs into conversation.
133
133
  <!-- SW:END:context -->
134
134
 
135
- <!-- SW:SECTION:lsp version="1.0.107" -->
135
+ <!-- SW:SECTION:lsp version="1.0.108" -->
136
136
  ## LSP-Enhanced Exploration
137
137
 
138
138
  **USE LSP ACTIVELY** for semantic code understanding (100x faster than grep).
@@ -149,7 +149,7 @@ go install golang.org/x/tools/gopls@latest # Go
149
149
  **Best Practices**: ALWAYS use `findReferences` before refactoring | Use `goToDefinition` instead of grep | Combine with Explore agent
150
150
  <!-- SW:END:lsp -->
151
151
 
152
- <!-- SW:SECTION:structure version="1.0.107" -->
152
+ <!-- SW:SECTION:structure version="1.0.108" -->
153
153
  ## Structure
154
154
 
155
155
  ```
@@ -219,7 +219,7 @@ my-project/
219
219
  ```
220
220
  <!-- SW:END:structure -->
221
221
 
222
- <!-- SW:SECTION:taskformat version="1.0.107" -->
222
+ <!-- SW:SECTION:taskformat version="1.0.108" -->
223
223
  ## Task Format
224
224
 
225
225
  ```markdown
@@ -229,7 +229,7 @@ my-project/
229
229
  ```
230
230
  <!-- SW:END:taskformat -->
231
231
 
232
- <!-- SW:SECTION:secrets version="1.0.107" -->
232
+ <!-- SW:SECTION:secrets version="1.0.108" -->
233
233
  ## Secrets Check
234
234
 
235
235
  **BEFORE CLI tools**: Check existing config first!
@@ -240,7 +240,7 @@ gh auth status
240
240
  ```
241
241
  <!-- SW:END:secrets -->
242
242
 
243
- <!-- SW:SECTION:syncing version="1.0.107" -->
243
+ <!-- SW:SECTION:syncing version="1.0.108" -->
244
244
  ## External Sync (GitHub/JIRA/ADO)
245
245
 
246
246
  **After increment creation**: Run `/sw-github:sync {id}` to create issues!
@@ -268,7 +268,7 @@ Living docs sync ≠ External sync. They are separate:
268
268
  **Verify tokens**: `grep GITHUB_TOKEN .env` | `gh auth status`
269
269
  <!-- SW:END:syncing -->
270
270
 
271
- <!-- SW:SECTION:mapping version="1.0.107" -->
271
+ <!-- SW:SECTION:mapping version="1.0.108" -->
272
272
  ## GitHub Mapping
273
273
 
274
274
  | SpecWeave | GitHub |
@@ -278,7 +278,7 @@ Living docs sync ≠ External sync. They are separate:
278
278
  | Task T-XXX | Checkbox |
279
279
  <!-- SW:END:mapping -->
280
280
 
281
- <!-- SW:SECTION:testing version="1.0.107" -->
281
+ <!-- SW:SECTION:testing version="1.0.108" -->
282
282
  ## Testing
283
283
 
284
284
  BDD in tasks.md | Unit >80% | `.test.ts` (Vitest)
@@ -290,7 +290,7 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
290
290
  ```
291
291
  <!-- SW:END:testing -->
292
292
 
293
- <!-- SW:SECTION:api version="1.0.107" -->
293
+ <!-- SW:SECTION:api version="1.0.108" -->
294
294
  ## API Development (OpenAPI-First)
295
295
 
296
296
  **For API projects only.** OpenAPI = source of truth → Postman derived from it.
@@ -309,13 +309,13 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
309
309
  **Import**: Postman → Import collection + env → Fill secrets → Select env
310
310
  <!-- SW:END:api -->
311
311
 
312
- <!-- SW:SECTION:limits version="1.0.107" -->
312
+ <!-- SW:SECTION:limits version="1.0.108" -->
313
313
  ## Limits
314
314
 
315
315
  **Max 1500 lines/file** — extract before adding
316
316
  <!-- SW:END:limits -->
317
317
 
318
- <!-- SW:SECTION:troubleshooting version="1.0.107" -->
318
+ <!-- SW:SECTION:troubleshooting version="1.0.108" -->
319
319
  ## Troubleshooting
320
320
 
321
321
  | Issue | Fix |
@@ -335,7 +335,7 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
335
335
  | Path patterns not working | `//path` = absolute, `/path` = relative to settings file, `additionalDirectories` for explicit working dirs |
336
336
  <!-- SW:END:troubleshooting -->
337
337
 
338
- <!-- SW:SECTION:principles version="1.0.107" -->
338
+ <!-- SW:SECTION:principles version="1.0.108" -->
339
339
  ## Principles
340
340
 
341
341
  1. **Spec-first**: `/sw:increment` before coding
@@ -345,7 +345,7 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
345
345
  5. **Clean**: All files in increment folders
346
346
  <!-- SW:END:principles -->
347
347
 
348
- <!-- SW:SECTION:linking version="1.0.107" -->
348
+ <!-- SW:SECTION:linking version="1.0.108" -->
349
349
  ## Bidirectional Linking
350
350
 
351
351
  Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
@@ -353,7 +353,7 @@ Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
353
353
  Task format: `**AC**: AC-US1-01, AC-US1-02` (CRITICAL for linking)
354
354
  <!-- SW:END:linking -->
355
355
 
356
- <!-- SW:SECTION:mcp version="1.0.107" -->
356
+ <!-- SW:SECTION:mcp version="1.0.108" -->
357
357
  ## External Service Connection
358
358
 
359
359
  **Priority**: MCP Server → REST API → CLI → Direct Connection
@@ -377,7 +377,7 @@ wrangler whoami 2>/dev/null
377
377
  ```
378
378
  <!-- SW:END:mcp -->
379
379
 
380
- <!-- SW:SECTION:autoexecute version="1.0.107" -->
380
+ <!-- SW:SECTION:autoexecute version="1.0.108" -->
381
381
  ## Auto-Execute Rule
382
382
 
383
383
  **NEVER** output "Manual Step Required" when credentials exist. **EXECUTE DIRECTLY.**
@@ -391,7 +391,7 @@ wrangler whoami 2>/dev/null && gh auth status 2>/dev/null
391
391
  ```
392
392
  <!-- SW:END:autoexecute -->
393
393
 
394
- <!-- SW:SECTION:auto version="1.0.107" -->
394
+ <!-- SW:SECTION:auto version="1.0.108" -->
395
395
  ## Auto Mode (Autonomous Execution)
396
396
 
397
397
  **Continuous execution until all tasks complete.**
@@ -468,7 +468,7 @@ wrangler whoami 2>/dev/null && gh auth status 2>/dev/null
468
468
  **Circuit Breaker**: External API fails 3x? Queue & continue
469
469
  <!-- SW:END:auto -->
470
470
 
471
- <!-- SW:SECTION:docs version="1.0.107" -->
471
+ <!-- SW:SECTION:docs version="1.0.108" -->
472
472
  ## Docs
473
473
 
474
474
  [spec-weave.com](https://spec-weave.com) | `.specweave/docs/internal/`
package/bin/specweave.js CHANGED
@@ -485,6 +485,78 @@ program
485
485
  await cancelCmd.parseAsync(args, { from: 'user' });
486
486
  });
487
487
 
488
+ // Go mode commands - Pure Ralph Wiggum pattern (simpler than auto mode)
489
+ program
490
+ .command('go <prompt>')
491
+ .description('Start go session (Ralph Wiggum pattern) - simple autonomous iteration')
492
+ .option('--max-iterations <n>', 'Maximum iterations (safety net)', '100')
493
+ .option('--completion-promise <text>', 'Exact phrase that signals completion')
494
+ .option('--build', 'Build must pass before completion')
495
+ .option('--tests', 'Tests must pass before completion')
496
+ .option('--e2e', 'E2E tests must pass before completion')
497
+ .option('--lint', 'Linting must pass before completion')
498
+ .option('--types', 'Type-checking must pass before completion')
499
+ .option('--dry-run', 'Preview without starting')
500
+ .action(async (prompt, options) => {
501
+ const path = await import('path');
502
+ const fs = await import('fs');
503
+ const projectPath = process.cwd();
504
+
505
+ // Check if SpecWeave is initialized
506
+ const specweavePath = path.join(projectPath, '.specweave');
507
+ if (!fs.existsSync(specweavePath)) {
508
+ console.log(chalk.yellow('No SpecWeave project found in current directory.'));
509
+ console.log(chalk.gray('Run `specweave init` to initialize a project.'));
510
+ return;
511
+ }
512
+
513
+ try {
514
+ const { handleGoCommand } = await import('../dist/src/cli/commands/go.js');
515
+ await handleGoCommand(projectPath, prompt, options);
516
+ } catch (error) {
517
+ const errorMessage = error instanceof Error ? error.message : String(error);
518
+ console.error(chalk.red(`Error: ${errorMessage}`));
519
+ process.exit(1);
520
+ }
521
+ });
522
+
523
+ program
524
+ .command('go-status')
525
+ .description('Check go session status')
526
+ .option('--verbose', 'Show detailed information')
527
+ .option('--json', 'Output as JSON')
528
+ .action(async (options) => {
529
+ const path = await import('path');
530
+ const projectPath = process.cwd();
531
+
532
+ try {
533
+ const { handleGoStatusCommand } = await import('../dist/src/cli/commands/go-status.js');
534
+ await handleGoStatusCommand(projectPath, options);
535
+ } catch (error) {
536
+ const errorMessage = error instanceof Error ? error.message : String(error);
537
+ console.error(chalk.red(`Error: ${errorMessage}`));
538
+ process.exit(1);
539
+ }
540
+ });
541
+
542
+ program
543
+ .command('cancel-go')
544
+ .description('Cancel running go session')
545
+ .option('--force', 'Force cancel without confirmation')
546
+ .action(async (options) => {
547
+ const path = await import('path');
548
+ const projectPath = process.cwd();
549
+
550
+ try {
551
+ const { handleCancelGoCommand } = await import('../dist/src/cli/commands/cancel-go.js');
552
+ await handleCancelGoCommand(projectPath, options);
553
+ } catch (error) {
554
+ const errorMessage = error instanceof Error ? error.message : String(error);
555
+ console.error(chalk.red(`Error: ${errorMessage}`));
556
+ process.exit(1);
557
+ }
558
+ });
559
+
488
560
  // Update instructions command - Smart merge CLAUDE.md/AGENTS.md
489
561
  program
490
562
  .command('update-instructions')
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Cancel Go Command - Stop active go session
3
+ */
4
+ export interface CancelGoOptions {
5
+ force?: boolean;
6
+ }
7
+ export declare function handleCancelGoCommand(projectPath: string, options: CancelGoOptions): Promise<void>;
8
+ //# sourceMappingURL=cancel-go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-go.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/cancel-go.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAuBD,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA+Cf"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Cancel Go Command - Stop active go session
3
+ */
4
+ import path from 'path';
5
+ import fs from 'fs';
6
+ import chalk from 'chalk';
7
+ import readline from 'readline';
8
+ async function askConfirmation() {
9
+ const rl = readline.createInterface({
10
+ input: process.stdin,
11
+ output: process.stdout,
12
+ });
13
+ return new Promise((resolve) => {
14
+ rl.question('Continue? (y/n) ', (answer) => {
15
+ rl.close();
16
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
17
+ });
18
+ });
19
+ }
20
+ export async function handleCancelGoCommand(projectPath, options) {
21
+ const sessionFile = path.join(projectPath, '.specweave', 'state', 'go-session.json');
22
+ // Check if session exists
23
+ if (!fs.existsSync(sessionFile)) {
24
+ console.log(chalk.yellow('No active go session found.'));
25
+ console.log(chalk.gray('Nothing to cancel.'));
26
+ return;
27
+ }
28
+ // Read session state
29
+ const sessionData = JSON.parse(fs.readFileSync(sessionFile, 'utf-8'));
30
+ // Calculate runtime
31
+ const createdTime = new Date(sessionData.createdAt);
32
+ const now = new Date();
33
+ const runtimeMs = now.getTime() - createdTime.getTime();
34
+ const runtimeMinutes = Math.floor(runtimeMs / 60000);
35
+ const runtimeSeconds = Math.floor((runtimeMs % 60000) / 1000);
36
+ const runtime = `${runtimeMinutes}m ${runtimeSeconds}s`;
37
+ // Confirmation (unless force)
38
+ if (!options.force) {
39
+ console.log(chalk.yellow(`Cancel go session: ${sessionData.sessionId}?`));
40
+ console.log(`This will stop the loop after ${sessionData.iteration} iterations (max: ${sessionData.maxIterations}).`);
41
+ console.log('');
42
+ const confirmed = await askConfirmation();
43
+ if (!confirmed) {
44
+ console.log('Cancelled.');
45
+ return;
46
+ }
47
+ }
48
+ // Delete session file
49
+ fs.unlinkSync(sessionFile);
50
+ // Success message
51
+ console.log(chalk.green(`✅ Go session cancelled: ${sessionData.sessionId}`));
52
+ console.log(` Iterations completed: ${sessionData.iteration} / ${sessionData.maxIterations}`);
53
+ console.log(` Runtime: ${runtime}`);
54
+ console.log('');
55
+ console.log(' Logs saved to:', chalk.gray('.specweave/logs/go-iterations.log'));
56
+ }
57
+ //# sourceMappingURL=cancel-go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cancel-go.js","sourceRoot":"","sources":["../../../../src/cli/commands/cancel-go.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Go Status Command - Check go session status
3
+ */
4
+ export interface GoStatusOptions {
5
+ verbose?: boolean;
6
+ json?: boolean;
7
+ }
8
+ export declare function handleGoStatusCommand(projectPath: string, options: GoStatusOptions): Promise<void>;
9
+ //# sourceMappingURL=go-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-status.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/go-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAoBD,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAiGf"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Go Status Command - Check go session status
3
+ */
4
+ import path from 'path';
5
+ import fs from 'fs';
6
+ import chalk from 'chalk';
7
+ export async function handleGoStatusCommand(projectPath, options) {
8
+ const sessionFile = path.join(projectPath, '.specweave', 'state', 'go-session.json');
9
+ // Check if session exists
10
+ if (!fs.existsSync(sessionFile)) {
11
+ console.log(chalk.yellow('No active go session found.'));
12
+ console.log(chalk.gray('Run /sw:go "PROMPT" to start a session.'));
13
+ return;
14
+ }
15
+ // Read session state
16
+ const sessionData = JSON.parse(fs.readFileSync(sessionFile, 'utf-8'));
17
+ // Calculate runtime
18
+ const createdTime = new Date(sessionData.createdAt);
19
+ const now = new Date();
20
+ const runtimeMs = now.getTime() - createdTime.getTime();
21
+ const runtimeMinutes = Math.floor(runtimeMs / 60000);
22
+ const runtimeSeconds = Math.floor((runtimeMs % 60000) / 1000);
23
+ const runtime = `${runtimeMinutes}m ${runtimeSeconds}s`;
24
+ // JSON output
25
+ if (options.json) {
26
+ const output = {
27
+ sessionId: sessionData.sessionId,
28
+ status: sessionData.status,
29
+ iteration: sessionData.iteration,
30
+ maxIterations: sessionData.maxIterations,
31
+ completionPromise: sessionData.completionPromise || null,
32
+ conditions: sessionData.conditions,
33
+ createdAt: sessionData.createdAt,
34
+ completedAt: sessionData.completedAt || null,
35
+ runtime,
36
+ };
37
+ console.log(JSON.stringify(output, null, 2));
38
+ return;
39
+ }
40
+ // Pretty output
41
+ console.log('━'.repeat(70));
42
+ console.log(chalk.bold(' Go Session Status'));
43
+ console.log('━'.repeat(70));
44
+ console.log('');
45
+ console.log(`Session ID: ${chalk.cyan(sessionData.sessionId)}`);
46
+ // Status with color
47
+ let statusColor = chalk.yellow;
48
+ if (sessionData.status === 'completed')
49
+ statusColor = chalk.green;
50
+ else if (sessionData.status === 'max_iterations_reached')
51
+ statusColor = chalk.red;
52
+ console.log(`Status: ${statusColor(sessionData.status)}`);
53
+ console.log('');
54
+ console.log(`Iteration: ${chalk.bold(sessionData.iteration.toString())} / ${sessionData.maxIterations}`);
55
+ console.log(`Runtime: ${runtime}`);
56
+ console.log('');
57
+ if (sessionData.completionPromise) {
58
+ console.log(`Completion Promise: ${chalk.green(`"${sessionData.completionPromise}"`)}`);
59
+ }
60
+ // Quality gates
61
+ const gates = [];
62
+ if (sessionData.conditions.build)
63
+ gates.push('Build');
64
+ if (sessionData.conditions.tests)
65
+ gates.push('Tests');
66
+ if (sessionData.conditions.e2e)
67
+ gates.push('E2E');
68
+ if (sessionData.conditions.lint)
69
+ gates.push('Lint');
70
+ if (sessionData.conditions.types)
71
+ gates.push('Types');
72
+ if (gates.length > 0) {
73
+ console.log(`Quality Gates: ${chalk.cyan(gates.join(', '))}`);
74
+ }
75
+ console.log('');
76
+ // Verbose output
77
+ if (options.verbose) {
78
+ console.log('━'.repeat(70));
79
+ console.log(chalk.bold(' Details'));
80
+ console.log('━'.repeat(70));
81
+ console.log('');
82
+ console.log('Prompt:');
83
+ console.log(` ${sessionData.prompt}`);
84
+ console.log('');
85
+ console.log(`Created: ${sessionData.createdAt}`);
86
+ if (sessionData.completedAt) {
87
+ console.log(`Completed: ${sessionData.completedAt}`);
88
+ }
89
+ console.log('');
90
+ console.log('Log file:');
91
+ console.log(` ${path.join(projectPath, '.specweave', 'logs', 'go-iterations.log')}`);
92
+ console.log('');
93
+ }
94
+ console.log('━'.repeat(70));
95
+ }
96
+ //# sourceMappingURL=go-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-status.js","sourceRoot":"","sources":["../../../../src/cli/commands/go-status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Go Command - Ralph Wiggum pattern for autonomous iteration
3
+ *
4
+ * Pure loop execution:
5
+ * - Same prompt every iteration
6
+ * - Claude sees previous work (files, tests, git history)
7
+ * - Loop until completion promise OR max iterations
8
+ */
9
+ export interface GoOptions {
10
+ maxIterations?: number;
11
+ completionPromise?: string;
12
+ build?: boolean;
13
+ tests?: boolean;
14
+ e2e?: boolean;
15
+ lint?: boolean;
16
+ types?: boolean;
17
+ dryRun?: boolean;
18
+ }
19
+ export declare function handleGoCommand(projectPath: string, prompt: string, options: GoOptions): Promise<void>;
20
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/go.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Go Command - Ralph Wiggum pattern for autonomous iteration
3
+ *
4
+ * Pure loop execution:
5
+ * - Same prompt every iteration
6
+ * - Claude sees previous work (files, tests, git history)
7
+ * - Loop until completion promise OR max iterations
8
+ */
9
+ import path from 'path';
10
+ import { fileURLToPath } from 'url';
11
+ import { exec } from 'child_process';
12
+ import { promisify } from 'util';
13
+ const __filename = fileURLToPath(import.meta.url);
14
+ const __dirname = path.dirname(__filename);
15
+ const execAsync = promisify(exec);
16
+ export async function handleGoCommand(projectPath, prompt, options) {
17
+ // Build arguments for setup-go.sh
18
+ const args = [];
19
+ // Add prompt (quoted)
20
+ args.push(`"${prompt.replace(/"/g, '\\"')}"`);
21
+ // Add options
22
+ if (options.maxIterations) {
23
+ args.push('--max-iterations', options.maxIterations.toString());
24
+ }
25
+ if (options.completionPromise) {
26
+ args.push('--completion-promise', `"${options.completionPromise.replace(/"/g, '\\"')}"`);
27
+ }
28
+ if (options.build)
29
+ args.push('--build');
30
+ if (options.tests)
31
+ args.push('--tests');
32
+ if (options.e2e)
33
+ args.push('--e2e');
34
+ if (options.lint)
35
+ args.push('--lint');
36
+ if (options.types)
37
+ args.push('--types');
38
+ if (options.dryRun)
39
+ args.push('--dry-run');
40
+ // Find setup-go.sh script
41
+ // __dirname is in dist/src/cli/commands, script is in plugins/specweave/scripts
42
+ const scriptPath = path.join(__dirname, '../../../../plugins/specweave/scripts/setup-go.sh');
43
+ // Execute setup script
44
+ const command = `bash "${scriptPath}" ${args.join(' ')}`;
45
+ try {
46
+ const { stdout, stderr } = await execAsync(command, {
47
+ cwd: projectPath,
48
+ env: { ...process.env, PROJECT_ROOT: projectPath },
49
+ });
50
+ if (stdout)
51
+ console.log(stdout);
52
+ if (stderr)
53
+ console.error(stderr);
54
+ }
55
+ catch (error) {
56
+ // Script exited with non-zero code
57
+ if (error.stdout)
58
+ console.log(error.stdout);
59
+ if (error.stderr)
60
+ console.error(error.stderr);
61
+ throw new Error(`Go session failed to start: ${error.message}`);
62
+ }
63
+ }
64
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../../src/cli/commands/go.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAalC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,WAAmB,EACnB,MAAc,EACd,OAAkB;IAElB,kCAAkC;IAClC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,sBAAsB;IACtB,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,cAAc;IACd,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3C,0BAA0B;IAC1B,gFAAgF;IAChF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mDAAmD,CAAC,CAAC;IAE7F,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;YAClD,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE;SACnD,CAAC,CAAC;QAEH,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,mCAAmC;QACnC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.108",
3
+ "version": "1.0.109",
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",
@@ -2,17 +2,17 @@
2
2
  name: sw:auto
3
3
  description: Start autonomous execution session with stop hook integration. Works until all tasks complete or max iterations reached. Uses Ralph Wiggum pattern with SpecWeave workflow integration. Activates for: auto, autonomous, auto mode, ship while sleeping.
4
4
  argument-hint: "[INCREMENT_IDS...] [OPTIONS]"
5
- allowed-tools: ["Bash(${CLAUDE_PLUGIN_ROOT}/scripts/setup-auto.sh:*)"]
5
+ allowed-tools: ["Bash(specweave auto *)"]
6
6
  ---
7
7
 
8
8
  # Auto Command
9
9
 
10
10
  **Start autonomous execution session using Claude Code's Stop Hook.**
11
11
 
12
- Execute the setup script to initialize auto mode:
12
+ Execute the auto command to initialize auto mode:
13
13
 
14
14
  ```!
15
- "${CLAUDE_PLUGIN_ROOT}/scripts/setup-auto.sh" "$ARGUMENTS"
15
+ specweave auto $ARGUMENTS
16
16
  ```
17
17
 
18
18
  Now work on the increment tasks. When you try to exit, the stop hook will check completion conditions and feed the next task back to you. Continue until all tasks are complete and quality gates pass.
@@ -432,7 +432,7 @@ Analyze & Show Plan
432
432
  1. User runs /sw:auto (with or without IDs)
433
433
 
434
434
 
435
- 2. setup-auto.sh creates session state
435
+ 2. specweave auto command creates session state
436
436
  └─ .specweave/state/auto-session.json
437
437
 
438
438
 
@@ -1384,7 +1384,7 @@ All tests pass locally. Where should I deploy?
1384
1384
 
1385
1385
  When this command is invoked:
1386
1386
 
1387
- ### Step 1: MANDATORY - Run setup-auto.sh (DO THIS FIRST!)
1387
+ ### Step 1: MANDATORY - Run specweave auto (DO THIS FIRST!)
1388
1388
 
1389
1389
  **Execute this IMMEDIATELY when /sw:auto is invoked:**
1390
1390
 
@@ -1401,9 +1401,9 @@ Pass any arguments from the user (increment IDs, completion conditions, --max-it
1401
1401
  - `1`: Error (no increments found with --no-increment/--no-inc) → STOP
1402
1402
  - `2`: **Increment creation needed** → proceed to Step 2
1403
1403
 
1404
- ### Step 2: INTELLIGENT INCREMENT CREATION (if setup-auto.sh exits with code 2)
1404
+ ### Step 2: INTELLIGENT INCREMENT CREATION (if specweave auto exits with code 2)
1405
1405
 
1406
- **When setup script signals increment creation needed:**
1406
+ **When specweave auto signals increment creation needed:**
1407
1407
 
1408
1408
  1. **Check marker file:**
1409
1409
  ```bash