specweave 1.0.60 → 1.0.62

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.62" sections="header,start,autodetect,metarule,rules,workflow,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.60" sections="header,start,autodetect,metarule,rules,workflow,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.56" -->
3
+ <!-- SW:SECTION:header version="1.0.60" -->
4
4
  **Framework**: SpecWeave | **Truth**: `spec.md` + `tasks.md`
5
5
  <!-- SW:END:header -->
6
6
 
7
- <!-- SW:SECTION:start version="1.0.56" -->
7
+ <!-- SW:SECTION:start version="1.0.60" -->
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.56" -->
17
+ <!-- SW:SECTION:autodetect version="1.0.60" -->
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.56" -->
27
+ <!-- SW:SECTION:metarule version="1.0.60" -->
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.56" -->
38
+ <!-- SW:SECTION:rules version="1.0.60" -->
39
39
  ## Rules
40
40
 
41
41
  1. **Files** → `.specweave/increments/####-name/` (spec.md, plan.md, tasks.md at root; reports/, scripts/, logs/ subfolders)
@@ -45,7 +45,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
45
45
  5. **Root clean**: NEVER create .md/reports/scripts in project root → use increment folders
46
46
  <!-- SW:END:rules -->
47
47
 
48
- <!-- SW:SECTION:workflow version="1.0.58" -->
48
+ <!-- SW:SECTION:workflow version="1.0.60" -->
49
49
  ## Workflow
50
50
 
51
51
  `/sw:increment "X"` → `/sw:do` → `/sw:progress` → `/sw:done 0001`
@@ -65,7 +65,7 @@ SpecWeave auto-detects product descriptions and routes to `/sw:increment`:
65
65
  **Natural language**: "Let's build X" → `/sw:increment` | "What's status?" → `/sw:progress` | "We're done" → `/sw:done` | "Ship while sleeping" → `/sw:auto`
66
66
  <!-- SW:END:workflow -->
67
67
 
68
- <!-- SW:SECTION:context version="1.0.56" -->
68
+ <!-- SW:SECTION:context version="1.0.60" -->
69
69
  ## Living Docs Context
70
70
 
71
71
  **Before implementing features**: Check existing docs for patterns and decisions.
@@ -85,7 +85,7 @@ grep -ril "keyword" .specweave/docs/internal/
85
85
  **Use `/sw:context <topic>`** to load relevant living docs into conversation.
86
86
  <!-- SW:END:context -->
87
87
 
88
- <!-- SW:SECTION:lsp version="1.0.56" -->
88
+ <!-- SW:SECTION:lsp version="1.0.60" -->
89
89
  ## LSP-Enhanced Exploration (DEFAULT - Claude Code 2.0.74+)
90
90
 
91
91
  **LSP is ENABLED BY DEFAULT** for all SpecWeave operations - 100x faster than grep for symbol resolution.
@@ -150,7 +150,7 @@ rustup component add rust-analyzer
150
150
  - Combine with Explore agent for comprehensive codebase understanding
151
151
  <!-- SW:END:lsp -->
152
152
 
153
- <!-- SW:SECTION:structure version="1.0.59" -->
153
+ <!-- SW:SECTION:structure version="1.0.60" -->
154
154
  ## Structure
155
155
 
156
156
  ```
@@ -206,7 +206,7 @@ The implementation path is ALWAYS: `repositories/my-api/` (NOT `my-api/` in root
206
206
  **Path syntax**: `//path` = absolute | `/path` = relative to settings file | `**` = recursive | `additionalDirectories` = explicit working dirs
207
207
  <!-- SW:END:structure -->
208
208
 
209
- <!-- SW:SECTION:taskformat version="1.0.56" -->
209
+ <!-- SW:SECTION:taskformat version="1.0.60" -->
210
210
  ## Task Format
211
211
 
212
212
  ```markdown
@@ -216,7 +216,7 @@ The implementation path is ALWAYS: `repositories/my-api/` (NOT `my-api/` in root
216
216
  ```
217
217
  <!-- SW:END:taskformat -->
218
218
 
219
- <!-- SW:SECTION:secrets version="1.0.56" -->
219
+ <!-- SW:SECTION:secrets version="1.0.60" -->
220
220
  ## Secrets Check
221
221
 
222
222
  **BEFORE CLI tools**: Check existing config first!
@@ -227,7 +227,7 @@ gh auth status
227
227
  ```
228
228
  <!-- SW:END:secrets -->
229
229
 
230
- <!-- SW:SECTION:syncing version="1.0.56" -->
230
+ <!-- SW:SECTION:syncing version="1.0.60" -->
231
231
  ## External Sync (GitHub/JIRA/ADO)
232
232
 
233
233
  **After increment creation**: Run `/sw-github:sync {id}` to create issues!
@@ -255,7 +255,7 @@ Living docs sync ≠ External sync. They are separate:
255
255
  **Verify tokens**: `grep GITHUB_TOKEN .env` | `gh auth status`
256
256
  <!-- SW:END:syncing -->
257
257
 
258
- <!-- SW:SECTION:mapping version="1.0.56" -->
258
+ <!-- SW:SECTION:mapping version="1.0.60" -->
259
259
  ## GitHub Mapping
260
260
 
261
261
  | SpecWeave | GitHub |
@@ -265,7 +265,7 @@ Living docs sync ≠ External sync. They are separate:
265
265
  | Task T-XXX | Checkbox |
266
266
  <!-- SW:END:mapping -->
267
267
 
268
- <!-- SW:SECTION:testing version="1.0.56" -->
268
+ <!-- SW:SECTION:testing version="1.0.60" -->
269
269
  ## Testing
270
270
 
271
271
  BDD in tasks.md | Unit >80% | `.test.ts` (Vitest)
@@ -277,7 +277,7 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
277
277
  ```
278
278
  <!-- SW:END:testing -->
279
279
 
280
- <!-- SW:SECTION:api version="1.0.61" -->
280
+ <!-- SW:SECTION:api version="1.0.60" -->
281
281
  ## API Development (OpenAPI-First)
282
282
 
283
283
  **For API projects only.** Skip this section if your project has no REST/GraphQL endpoints.
@@ -314,21 +314,21 @@ vi.mock('fs', () => ({ readFile: vi.fn() }));
314
314
  |-----------|-----------------|-------|
315
315
  | **NestJS** | `@nestjs/swagger` | Decorators auto-generate OpenAPI |
316
316
  | **FastAPI** | Built-in | Auto-generates at `/openapi.json` |
317
- | **Express** | `swagger-jsdoc` | JSDoc comments -> OpenAPI |
317
+ | **Express** | `swagger-jsdoc` | JSDoc comments OpenAPI |
318
318
  | **Spring Boot** | `springdoc-openapi` | Annotations auto-generate |
319
- | **Go/Gin** | `swag` | Comments -> OpenAPI |
319
+ | **Go/Gin** | `swag` | Comments OpenAPI |
320
320
 
321
321
  ### Workflow
322
322
 
323
323
  ```
324
- Code (decorators/annotations)
325
- |
326
- v (auto-generated or manual)
327
- openapi.yaml (SOURCE OF TRUTH - version controlled)
328
- |
329
- v (derived on /sw:done or /sw:api-docs)
330
- ├── postman-collection.json (requests with {{baseUrl}} variables)
331
- └── postman-environment.json (variables from .env, secrets marked)
324
+ ┌─────────────────────────────────────────────────────────────┐
325
+ │ Code (decorators/annotations) │
326
+ │ ↓ (auto-generated or manual)
327
+ openapi.yaml (SOURCE OF TRUTH - version controlled)
328
+ │ ↓ (derived on /sw:done or /sw:api-docs) │
329
+ ├── postman-collection.json (requests with {{baseUrl}})
330
+ └── postman-environment.json (variables from .env)
331
+ └─────────────────────────────────────────────────────────────┘
332
332
  ```
333
333
 
334
334
  ### Commands
@@ -350,7 +350,7 @@ openapi.yaml (SOURCE OF TRUTH - version controlled)
350
350
  /sw:api-docs --validate
351
351
 
352
352
  # Generate on increment close (automatic if enabled)
353
- /sw:done 0001 # -> triggers API doc generation
353
+ /sw:done 0001 # triggers API doc generation
354
354
  ```
355
355
 
356
356
  ### Postman Import
@@ -370,13 +370,13 @@ After generation:
370
370
  | `manual` | Only via `/sw:api-docs` command |
371
371
  <!-- SW:END:api -->
372
372
 
373
- <!-- SW:SECTION:limits version="1.0.56" -->
373
+ <!-- SW:SECTION:limits version="1.0.60" -->
374
374
  ## Limits
375
375
 
376
376
  **Max 1500 lines/file** — extract before adding
377
377
  <!-- SW:END:limits -->
378
378
 
379
- <!-- SW:SECTION:troubleshooting version="1.0.56" -->
379
+ <!-- SW:SECTION:troubleshooting version="1.0.60" -->
380
380
  ## Troubleshooting
381
381
 
382
382
  | Issue | Fix |
@@ -395,7 +395,7 @@ After generation:
395
395
  | Path patterns not working | `//path` = absolute, `/path` = relative to settings file, `additionalDirectories` for explicit working dirs |
396
396
  <!-- SW:END:troubleshooting -->
397
397
 
398
- <!-- SW:SECTION:principles version="1.0.56" -->
398
+ <!-- SW:SECTION:principles version="1.0.60" -->
399
399
  ## Principles
400
400
 
401
401
  1. **Spec-first**: `/sw:increment` before coding
@@ -405,7 +405,7 @@ After generation:
405
405
  5. **Clean**: All files in increment folders
406
406
  <!-- SW:END:principles -->
407
407
 
408
- <!-- SW:SECTION:linking version="1.0.56" -->
408
+ <!-- SW:SECTION:linking version="1.0.60" -->
409
409
  ## Bidirectional Linking
410
410
 
411
411
  Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
@@ -413,366 +413,93 @@ Tasks ↔ User Stories auto-linked via AC-IDs: `AC-US1-01` → `US-001`
413
413
  Task format: `**AC**: AC-US1-01, AC-US1-02` (CRITICAL for linking)
414
414
  <!-- SW:END:linking -->
415
415
 
416
- <!-- SW:SECTION:mcp version="1.0.62" -->
417
- ## External Service Connection (CLI-First, Smart Fallbacks)
416
+ <!-- SW:SECTION:mcp version="1.0.60" -->
417
+ ## External Service Connection (MCP + Smart Fallbacks)
418
418
 
419
- **Core principle: CLIs are LLM-native. Use them when authenticated.**
419
+ **Core principle: Never fight connection issues. Use the path of least resistance.**
420
420
 
421
- ### Connection Priority
421
+ ### Connection Priority (ALWAYS follow this order)
422
422
 
423
423
  ```
424
- Authenticated CLI → REST API → MCP ServerSDK/Client
425
-
426
- MOST EFFICIENT FALLBACK
427
- ```
428
-
429
- **Why CLI-first?** LLMs can invoke CLIs directly, parse output, handle errors, and chain commands efficiently.
430
-
431
- ### Pre-Flight Check (MANDATORY)
432
-
433
- **Run this BEFORE any external service operation:**
434
-
435
- ```bash
436
- # Check all CLI auth at once
437
- supabase projects list 2>/dev/null && echo "✓ Supabase"
438
- wrangler whoami 2>/dev/null && echo "✓ Cloudflare"
439
- gh auth status 2>/dev/null && echo "✓ GitHub"
440
- vercel whoami 2>/dev/null && echo "✓ Vercel"
441
- aws sts get-caller-identity 2>/dev/null && echo "✓ AWS"
442
-
443
- # Check .env for API keys
444
- grep -E "(SUPABASE_|GITHUB_TOKEN|CF_|VERCEL_|AWS_)" .env 2>/dev/null
424
+ MCP Server → REST API → SDK/Client CLI Direct Connection
425
+
426
+ BEST WORST
445
427
  ```
446
428
 
447
- ---
448
-
449
- ### Supabase
429
+ ### Service Connection Matrix
450
430
 
451
- **Credentials needed:**
431
+ | Service | BEST Method | Fallback | AVOID |
432
+ |---------|-------------|----------|-------|
433
+ | **Supabase** | MCP Server | REST API / JS Client | Direct `psql` (IPv6 issues) |
434
+ | **Cloudflare** | `wrangler` + OAuth | REST API | Manual curl |
435
+ | **PostgreSQL** | MCP / Pooler (6543) | `psql` with pooler | Direct port 5432 |
436
+ | **MongoDB** | Atlas Data API | MCP / Driver | Direct connection |
437
+ | **Redis** | Upstash REST | MCP | `redis-cli` (TCP issues) |
438
+ | **AWS** | CLI with SSO | SDK | Hardcoded keys |
439
+ | **Vercel** | CLI with OAuth | REST API | Manual deploys |
452
440
 
453
- | Credential | Where to find | Format |
454
- |------------|---------------|--------|
455
- | **Project Ref** | Dashboard → Settings → General → "Reference ID" | `abcdefghijkl` (12 chars) |
456
- | **Access Token** | Dashboard → Account (top-right) → Access Tokens → Generate | `sbp_xxxxxxxxxxxxxxxx` |
457
- | **Org ID** (optional) | Dashboard → Org Settings → General | `org-xxxxx` |
458
- | **Database Password** | Dashboard → Settings → Database → Connection string | In the URI |
459
- | **API URL** | Dashboard → Settings → API → "Project URL" | `https://xxx.supabase.co` |
460
- | **Anon Key** | Dashboard → Settings → API → "anon public" | `eyJhbGc...` (JWT) |
461
- | **Service Role Key** | Dashboard → Settings → API → "service_role" (secret!) | `eyJhbGc...` (JWT) |
441
+ ### Quick Setup Commands
462
442
 
463
- **CLI Setup (PREFERRED):**
464
443
  ```bash
465
- # 1. Login (one-time, opens browser)
466
- supabase login
444
+ # MCP Servers (one-time, restart Claude Code after)
445
+ npx @anthropic-ai/claude-code-mcp add supabase
446
+ npx @anthropic-ai/claude-code-mcp add postgres
467
447
 
468
- # 2. Link project (in your project directory)
469
- supabase link --project-ref <PROJECT_REF>
470
- # Optional: --password <DB_PASSWORD> to skip prompt
448
+ # CLI Auth (persistent OAuth sessions)
449
+ wrangler login # Cloudflare
450
+ vercel login # Vercel
451
+ aws configure sso # AWS
452
+ supabase login # Supabase CLI
471
453
 
472
- # 3. Verify
473
- supabase projects list
454
+ # Verify auth status
455
+ wrangler whoami && vercel whoami && aws sts get-caller-identity
474
456
  ```
475
457
 
476
- **CLI Operations (once linked):**
477
- ```bash
478
- supabase db push # Apply migrations
479
- supabase db pull # Pull remote schema
480
- supabase db reset # Reset to migrations
481
- supabase functions deploy <name> # Deploy edge function
482
- supabase secrets set KEY=value # Set secrets
483
- supabase gen types typescript # Generate types
484
- supabase migration new <name> # Create migration
485
- ```
458
+ ### Supabase (Most Common Issues)
486
459
 
487
- **If CLI has network issues, use Access Token:**
488
460
  ```bash
489
- SUPABASE_ACCESS_TOKEN=sbp_xxx supabase db push
490
- ```
461
+ # ❌ DON'T: Direct psql or supabase db push (IPv6 fails)
462
+ supabase db push # Often fails with connection errors
491
463
 
492
- **REST API Fallback (.env):**
493
- ```bash
494
- SUPABASE_URL=https://xxx.supabase.co
495
- SUPABASE_ANON_KEY=eyJhbGc...
496
- SUPABASE_SERVICE_ROLE_KEY=eyJhbGc... # For admin operations
497
- ```
464
+ # ✅ DO: Use REST API or MCP
465
+ # REST API works everywhere - no network issues
466
+ curl "${SUPABASE_URL}/rest/v1/table" \
467
+ -H "apikey: ${SUPABASE_ANON_KEY}"
498
468
 
499
- **Direct DB (use pooler port 6543, NOT 5432):**
500
- ```bash
501
- DATABASE_URL="postgresql://postgres.PROJECT_REF:PASSWORD@aws-0-REGION.pooler.supabase.com:6543/postgres"
469
+ # For migrations: Use Supabase Dashboard SQL Editor
470
+ # OR use connection pooler (port 6543, NOT 5432)
471
+ DATABASE_URL="postgresql://postgres.[ref]:[pass]@aws-0-region.pooler.supabase.com:6543/postgres"
502
472
  ```
503
473
 
504
- ---
474
+ ### Cloudflare Workers
505
475
 
506
- ### Cloudflare (Wrangler)
507
-
508
- **Credentials needed:**
509
-
510
- | Credential | Where to find | Format |
511
- |------------|---------------|--------|
512
- | **Account ID** | Dashboard → any domain → Overview → right sidebar | `32-char hex` |
513
- | **API Token** | Dashboard → My Profile → API Tokens → Create | `xxxxx` (40+ chars) |
514
- | **Zone ID** (per domain) | Dashboard → domain → Overview → right sidebar | `32-char hex` |
515
-
516
- **CLI Setup (PREFERRED - uses OAuth):**
517
476
  ```bash
518
- # Login via browser (recommended)
477
+ # One-time login (saves OAuth session)
519
478
  wrangler login
520
479
 
521
- # Verify
522
- wrangler whoami
523
- ```
524
-
525
- **CLI Operations:**
526
- ```bash
527
- wrangler deploy # Deploy worker
528
- wrangler dev # Local dev server
529
- wrangler kv namespace list # List KV namespaces
530
- wrangler kv key put --binding=KV k "v" # KV write
531
- wrangler d1 list # List D1 databases
532
- wrangler d1 execute DB --command "SQL" # D1 query
533
- wrangler r2 bucket list # List R2 buckets
534
- echo "secret" | wrangler secret put NAME # Set secret (non-interactive)
535
- wrangler tail # Live logs
536
- wrangler pages deploy ./dist # Deploy Pages
537
- ```
538
-
539
- **API Token Fallback (.env):**
540
- ```bash
541
- CLOUDFLARE_API_TOKEN=xxxxx
542
- CLOUDFLARE_ACCOUNT_ID=xxxxx
543
- # Per-domain operations:
544
- CLOUDFLARE_ZONE_ID=xxxxx
480
+ # All operations then work:
481
+ wrangler deploy # Deploy worker
482
+ echo "value" | wrangler secret put KEY # Set secret
483
+ wrangler kv:key put --binding=KV k v # KV operations
484
+ wrangler d1 execute DB --command "SQL" # D1 database
545
485
  ```
546
486
 
547
- **wrangler.toml (project config):**
548
- ```toml
549
- name = "my-worker"
550
- main = "src/index.ts"
551
- compatibility_date = "2024-01-01"
552
- account_id = "YOUR_ACCOUNT_ID" # Optional if logged in
553
-
554
- [[kv_namespaces]]
555
- binding = "KV"
556
- id = "xxxxx"
557
-
558
- [[d1_databases]]
559
- binding = "DB"
560
- database_name = "my-db"
561
- database_id = "xxxxx"
562
- ```
487
+ ### Auto-Detection (Run Before External Ops)
563
488
 
564
- ---
565
-
566
- ### GitHub (gh CLI)
567
-
568
- **Credentials needed:**
569
-
570
- | Credential | Where to find | Format |
571
- |------------|---------------|--------|
572
- | **Personal Access Token** | Settings → Developer settings → Personal access tokens → Fine-grained | `github_pat_xxx` |
573
- | **Classic Token** | Same location, "Tokens (classic)" | `ghp_xxxxx` |
574
-
575
- **CLI Setup (PREFERRED):**
576
489
  ```bash
577
- # Interactive login (opens browser)
578
- gh auth login
579
-
580
- # Or with token
581
- gh auth login --with-token < token.txt
582
- # Or: export GITHUB_TOKEN=ghp_xxx && gh auth status
583
-
584
- # Verify
585
- gh auth status
490
+ # Check configured services
491
+ grep -E "SUPABASE_|DATABASE_URL|MONGODB|UPSTASH|CF_API" .env 2>/dev/null
492
+ wrangler whoami 2>/dev/null
493
+ aws sts get-caller-identity 2>/dev/null
586
494
  ```
587
495
 
588
- **CLI Operations:**
589
- ```bash
590
- gh repo clone owner/repo # Clone
591
- gh issue list # List issues
592
- gh issue create --title "X" --body "Y" # Create issue
593
- gh pr create --fill # Create PR
594
- gh pr merge --auto --squash # Auto-merge
595
- gh workflow list # List workflows
596
- gh workflow run deploy.yml # Trigger workflow
597
- gh api repos/{owner}/{repo}/issues # Raw API call
598
- gh release create v1.0.0 # Create release
599
- ```
600
-
601
- **Token Fallback (.env):**
602
- ```bash
603
- GITHUB_TOKEN=ghp_xxxxx
604
- # Or for GitHub Apps:
605
- GITHUB_APP_ID=xxxxx
606
- GITHUB_PRIVATE_KEY="-----BEGIN RSA..."
607
- ```
608
-
609
- ---
610
-
611
- ### Vercel
612
-
613
- **Credentials needed:**
614
-
615
- | Credential | Where to find | Format |
616
- |------------|---------------|--------|
617
- | **Token** | Settings → Tokens → Create | `xxxxx` |
618
- | **Org ID** | Settings → General → "Vercel ID" | `team_xxxxx` |
619
- | **Project ID** | Project → Settings → General | `prj_xxxxx` |
620
-
621
- **CLI Setup (PREFERRED):**
622
- ```bash
623
- # Login via browser
624
- vercel login
625
-
626
- # Or with token
627
- vercel login --token xxxxx
628
-
629
- # Verify
630
- vercel whoami
631
- ```
632
-
633
- **CLI Operations:**
634
- ```bash
635
- vercel # Deploy (interactive)
636
- vercel --prod # Production deploy
637
- vercel env pull .env.local # Pull env vars
638
- vercel env add SECRET production # Add env var
639
- vercel logs # View logs
640
- vercel domains ls # List domains
641
- vercel link # Link to project
642
- ```
643
-
644
- **Token Fallback (.env):**
645
- ```bash
646
- VERCEL_TOKEN=xxxxx
647
- VERCEL_ORG_ID=team_xxxxx
648
- VERCEL_PROJECT_ID=prj_xxxxx
649
- ```
650
-
651
- ---
652
-
653
- ### AWS
654
-
655
- **Credentials needed:**
656
-
657
- | Credential | Where to find | Format |
658
- |------------|---------------|--------|
659
- | **Access Key ID** | IAM → Users → Security credentials → Create access key | `AKIA...` (20 chars) |
660
- | **Secret Access Key** | Same (shown once at creation) | `xxxxx` (40 chars) |
661
- | **Region** | Choose based on location | `us-east-1`, `eu-west-1`, etc. |
662
- | **SSO Start URL** | AWS SSO config (if using SSO) | `https://xxx.awsapps.com/start` |
663
-
664
- **CLI Setup:**
665
- ```bash
666
- # Option 1: Configure with keys
667
- aws configure
668
- # Prompts for: Access Key, Secret Key, Region, Output format
669
-
670
- # Option 2: SSO (recommended for orgs)
671
- aws configure sso
672
- # Prompts for: SSO start URL, SSO region, account, role
673
-
674
- # Login (SSO)
675
- aws sso login --profile your-profile
676
-
677
- # Verify
678
- aws sts get-caller-identity
679
- ```
680
-
681
- **CLI Operations:**
682
- ```bash
683
- aws s3 ls # List buckets
684
- aws s3 cp file.txt s3://bucket/ # Upload
685
- aws lambda list-functions # List Lambdas
686
- aws lambda invoke --function-name X out # Invoke Lambda
687
- aws logs tail /aws/lambda/X --follow # Tail logs
688
- aws secretsmanager get-secret-value --secret-id X # Get secret
689
- aws ecr get-login-password | docker login # ECR login
690
- ```
691
-
692
- **Credentials Fallback (.env):**
693
- ```bash
694
- AWS_ACCESS_KEY_ID=AKIA...
695
- AWS_SECRET_ACCESS_KEY=xxxxx
696
- AWS_REGION=us-east-1
697
- # Or for assumed roles:
698
- AWS_ROLE_ARN=arn:aws:iam::xxx:role/xxx
699
- ```
700
-
701
- ---
702
-
703
- ### MongoDB Atlas
704
-
705
- **Credentials needed:**
706
-
707
- | Credential | Where to find | Format |
708
- |------------|---------------|--------|
709
- | **Connection String** | Cluster → Connect → Drivers | `mongodb+srv://user:pass@cluster.xxx.mongodb.net/` |
710
- | **Data API Key** | Data API → Create API Key | `xxxxx` |
711
- | **App ID** | Data API → App ID | `data-xxxxx` |
712
-
713
- **Data API (.env):**
714
- ```bash
715
- MONGODB_DATA_API_KEY=xxxxx
716
- MONGODB_APP_ID=data-xxxxx
717
- MONGODB_CLUSTER=Cluster0
718
- MONGODB_DATABASE=mydb
719
- ```
720
-
721
- ---
722
-
723
- ### Upstash Redis
724
-
725
- **Credentials needed:**
726
-
727
- | Credential | Where to find | Format |
728
- |------------|---------------|--------|
729
- | **REST URL** | Database → REST API → UPSTASH_REDIS_REST_URL | `https://xxx.upstash.io` |
730
- | **REST Token** | Same section → UPSTASH_REDIS_REST_TOKEN | `AXxx...` |
731
-
732
- **REST API (.env):**
733
- ```bash
734
- UPSTASH_REDIS_REST_URL=https://xxx.upstash.io
735
- UPSTASH_REDIS_REST_TOKEN=AXxx...
736
- ```
737
-
738
- ---
739
-
740
- ### When to Use MCP
741
-
742
- Use MCP servers when CLI is unavailable or you need structured responses:
743
-
744
- ```bash
745
- npx @anthropic-ai/claude-code-mcp add supabase
746
- npx @anthropic-ai/claude-code-mcp add postgres
747
- # Restart Claude Code after adding
748
- ```
749
-
750
- ---
751
-
752
- ### Smart Credential Request Template
753
-
754
- **When credentials are missing, ask specifically:**
755
-
756
- ```markdown
757
- 🔐 **[Service] Setup Needed**
758
-
759
- I need to connect to your [Service]. Please provide:
760
-
761
- | What I need | Where to find it |
762
- |-------------|------------------|
763
- | **[Credential 1]** | [Exact path in dashboard] |
764
- | **[Credential 2]** | [Exact path in dashboard] |
765
-
766
- **Or run:** `[cli login command]`
767
-
768
- [I'll configure and execute automatically]
769
- ```
496
+ **Full reference**: See `/sw:service-connect` skill for complete patterns.
770
497
  <!-- SW:END:mcp -->
771
498
 
772
499
  <!-- SW:SECTION:autoexecute version="1.0.60" -->
773
500
  ## Auto-Execute Rule (CRITICAL)
774
501
 
775
- **NEVER output "Manual Step Required" or "Next Steps" when CLI tools are available.**
502
+ **NEVER output "Manual Step Required" or "Next Steps" when credentials are available.**
776
503
 
777
504
  ### The Golden Rule
778
505
 
@@ -780,97 +507,68 @@ I need to connect to your [Service]. Please provide:
780
507
  ❌ FORBIDDEN: "Manual Step Required: Open Supabase SQL Editor..."
781
508
  ❌ FORBIDDEN: "Next Steps: 1. Run wrangler deploy..."
782
509
  ❌ FORBIDDEN: "Execute this SQL in your database console..."
783
- ❌ FORBIDDEN: "Please run this command manually..."
784
510
 
785
- ✅ REQUIRED: Use CLI tools directly when authenticated
786
- ✅ REQUIRED: Ask for specific credentials if missing, then execute
511
+ ✅ REQUIRED: Execute commands directly using available credentials
787
512
  ```
788
513
 
789
514
  ### Decision Tree
790
515
 
791
516
  ```
792
- CLI authenticated? ──YES──→ EXECUTE via CLI
517
+ Credentials in .env? ──YES──→ EXECUTE IMMEDIATELY
793
518
 
794
519
  NO
795
520
 
796
521
 
797
- .env has credentials? ──YES──→ EXECUTE via API/CLI
798
-
799
- NO
800
-
801
-
802
- ASK for SPECIFIC credentials needed
522
+ ASK for credentials (don't show manual steps!)
803
523
 
804
524
 
805
- User provides → Save if needed → EXECUTE IMMEDIATELY
525
+ Save to .env → EXECUTE IMMEDIATELY → Continue
806
526
  ```
807
527
 
808
- ### Pre-Flight Check (Run BEFORE any external operation)
528
+ ### Credential Lookup (MANDATORY before any external operation)
809
529
 
810
530
  ```bash
811
- # Check ALL potentially relevant CLI tools at once
812
- echo "=== CLI Auth Status ===" && \
813
- supabase projects list 2>/dev/null && echo "✓ Supabase" || echo "✗ Supabase" && \
814
- wrangler whoami 2>/dev/null && echo "✓ Wrangler" || echo "✗ Wrangler" && \
815
- gh auth status 2>/dev/null && echo "✓ GitHub" || echo "✗ GitHub" && \
816
- vercel whoami 2>/dev/null && echo "✓ Vercel" || echo "✗ Vercel" && \
817
- aws sts get-caller-identity 2>/dev/null && echo "✓ AWS" || echo "✗ AWS"
531
+ # 1. Check .env
532
+ grep -E "(SUPABASE_|DATABASE_URL|CF_API_|GITHUB_TOKEN)" .env 2>/dev/null
533
+
534
+ # 2. Check CLI auth
535
+ supabase status 2>/dev/null # Supabase
536
+ wrangler whoami 2>/dev/null # Cloudflare
537
+ gh auth status 2>/dev/null # GitHub
538
+ aws sts get-caller-identity 2>/dev/null # AWS
818
539
 
819
- # Check .env for API keys/tokens
820
- grep -E "(SUPABASE_|DATABASE_URL|GITHUB_TOKEN|OPENAI_|ANTHROPIC_)" .env 2>/dev/null
540
+ # 3. Use MCP server if available
541
+ # MCP servers provide direct API access
821
542
  ```
822
543
 
823
544
  ### Auto-Execute Examples
824
545
 
825
546
  ```bash
826
- # Supabase - prefer CLI when linked
827
- if supabase projects list 2>/dev/null; then
828
- supabase db push # ✅ CLI handles auth automatically
829
- else
830
- # Fallback to REST API with tokens
831
- curl "${SUPABASE_URL}/rest/v1/..." -H "apikey: ${SUPABASE_ANON_KEY}"
547
+ # Supabase SQL execution
548
+ if [ -n "$DATABASE_URL" ]; then
549
+ psql "$DATABASE_URL" -f schema.sql # ✅ Execute directly
832
550
  fi
833
551
 
834
- # Cloudflare - wrangler handles everything
552
+ # Wrangler secrets
835
553
  if wrangler whoami 2>/dev/null; then
836
- wrangler deploy # ✅ Deploy
837
- echo "$SECRET" | wrangler secret put KEY # ✅ Set secret
838
- wrangler d1 execute DB --command "SQL" # ✅ Database
839
- fi
840
-
841
- # GitHub - gh CLI is extremely capable
842
- if gh auth status 2>/dev/null; then
843
- gh issue create --title "..." --body "..."
844
- gh pr create --fill
845
- gh api repos/{owner}/{repo}/actions/workflows
554
+ echo "$SECRET" | wrangler secret put MY_SECRET # ✅ Execute directly
555
+ wrangler deploy # ✅ Deploy directly
846
556
  fi
847
557
  ```
848
558
 
849
- ### If Credentials Missing → ASK Specifically
850
-
851
- **Don't ask vaguely. Ask for EXACTLY what you need:**
559
+ ### If Credentials Missing → ASK, Don't Show Manual Steps
852
560
 
853
561
  ```markdown
854
- 🔐 **Supabase Connection Needed**
855
-
856
- To push migrations, I need your Supabase project linked. Either:
857
-
858
- **Option A** (Recommended): Run these commands:
859
- \`\`\`bash
860
- supabase login
861
- supabase link --project-ref YOUR_PROJECT_REF
862
- \`\`\`
863
- Your project ref is at: Dashboard → Settings → General
562
+ 🔐 **Credential Required**
864
563
 
865
- **Option B**: Provide credentials for .env:
866
- - SUPABASE_URL: `____________`
867
- - SUPABASE_SERVICE_ROLE_KEY: `____________`
564
+ I need your DATABASE_URL to execute the migration.
868
565
 
869
- Which would you prefer?
566
+ **Paste your connection string:**
567
+ [I will save to .env and execute automatically]
870
568
  ```
871
569
  <!-- SW:END:autoexecute -->
872
570
 
873
- <!-- SW:SECTION:auto version="1.0.57" -->
571
+ <!-- SW:SECTION:auto version="1.0.60" -->
874
572
  ## Auto Mode (Autonomous Execution)
875
573
 
876
574
  **Auto mode enables continuous autonomous execution** until all tasks are complete.
@@ -884,11 +582,10 @@ Which would you prefer?
884
582
  - Click buttons in UIs
885
583
 
886
584
  **If you need external access:**
887
- 1. Check CLI auth status FIRST (`supabase projects list`, `wrangler whoami`, `gh auth status`)
888
- 2. Use authenticated CLI tools directly - they're most efficient for LLMs
889
- 3. Fallback to `.env` credentials + REST API if CLI not available
890
- 4. Use MCP servers only when CLI/API aren't options
891
- 5. If credentials missing → ASK for them, save to `.env`, then EXECUTE
585
+ 1. Check for credentials in `.env`
586
+ 2. Use CLI tools (`supabase`, `wrangler`, `gh`, `aws`)
587
+ 3. Use MCP servers for direct API access
588
+ 4. If credentials missing ASK for them, save to `.env`, then EXECUTE
892
589
 
893
590
  ### 🧪 Test Execution Loop (MANDATORY)
894
591
 
@@ -1007,152 +704,57 @@ test.use({ storageState: 'playwright/.auth/user.json' });
1007
704
 
1008
705
  ### 🔐 E2E Authentication (CRITICAL - Avoid Flaky Tests!)
1009
706
 
1010
- **Auth is the #1 cause of flaky E2E tests. Be ULTRASMART about it:**
707
+ **Auth is the #1 cause of flaky E2E tests. Be ULTRASMART:**
1011
708
 
1012
- ```
1013
- ┌─────────────────────────────────────────────────────────────┐
1014
- E2E AUTH STRATEGY (in order of preference): │
1015
- ├─────────────────────────────────────────────────────────────┤
1016
- 1. BEST: Reuse auth state (storageState) │
1017
- │ - Login ONCE in global setup │
1018
- │ - Reuse session across all tests │
1019
- │ - 10x faster, zero flakiness │
1020
- │ │
1021
- │ 2. GOOD: API-based auth (bypass UI) │
1022
- │ - Call auth API directly │
1023
- │ - Set cookies/tokens programmatically │
1024
- │ - Faster than UI login │
1025
- │ │
1026
- │ 3. AVOID: UI login per test │
1027
- │ - Slow (3-5s per test) │
1028
- │ - Flaky (timing, captcha, rate limits) │
1029
- │ - Only for testing login flow itself │
1030
- └─────────────────────────────────────────────────────────────┘
1031
- ```
709
+ | Strategy | Speed | Reliability | Use When |
710
+ |----------|-------|-------------|----------|
711
+ | **storageState** | ⚡⚡⚡ | ⭐⭐⭐ | Default - login ONCE, reuse |
712
+ | **API auth** | ⚡⚡ | ⭐⭐⭐ | When UI is unstable |
713
+ | **UI login per test** | ⚡ | ⭐ | Only testing login flow |
1032
714
 
1033
- **Playwright Auth Setup (MANDATORY pattern):**
715
+ **Playwright Auth Setup (MANDATORY):**
1034
716
 
1035
717
  ```typescript
1036
- // playwright/auth.setup.ts - Global setup, runs ONCE
718
+ // playwright/auth.setup.ts - Global setup
1037
719
  import { test as setup } from '@playwright/test';
1038
720
 
1039
- const authFile = 'playwright/.auth/user.json';
1040
-
1041
721
  setup('authenticate', async ({ page }) => {
1042
- // Option 1: UI login (only in setup, not per test!)
1043
722
  await page.goto('/login');
1044
723
  await page.fill('[name="email"]', 'test@example.com');
1045
724
  await page.fill('[name="password"]', 'testpass123');
1046
725
  await page.click('button[type="submit"]');
1047
726
  await page.waitForURL('/dashboard');
1048
-
1049
- // Save auth state for reuse
1050
- await page.context().storageState({ path: authFile });
1051
- });
1052
-
1053
- // Option 2: API-based auth (PREFERRED - faster, more reliable)
1054
- setup('authenticate via API', async ({ request }) => {
1055
- const response = await request.post('/api/auth/login', {
1056
- data: { email: 'test@example.com', password: 'testpass123' }
1057
- });
1058
-
1059
- // Extract and save cookies/tokens
1060
- await request.storageState({ path: authFile });
1061
- });
1062
- ```
1063
-
1064
- ```typescript
1065
- // playwright.config.ts
1066
- export default defineConfig({
1067
- projects: [
1068
- // Setup project - runs first
1069
- { name: 'setup', testMatch: /.*\.setup\.ts/ },
1070
-
1071
- // Tests use auth state from setup
1072
- {
1073
- name: 'chromium',
1074
- use: {
1075
- storageState: 'playwright/.auth/user.json',
1076
- },
1077
- dependencies: ['setup'],
1078
- },
1079
- ],
1080
- });
1081
- ```
1082
-
1083
- ```typescript
1084
- // tests/dashboard.spec.ts - NO LOGIN CODE NEEDED!
1085
- test('user can view dashboard', async ({ page }) => {
1086
- // Already authenticated via storageState!
1087
- await page.goto('/dashboard');
1088
- await expect(page.locator('h1')).toContainText('Dashboard');
727
+ await page.context().storageState({ path: 'playwright/.auth/user.json' });
1089
728
  });
1090
729
  ```
1091
730
 
1092
- **Handling Auth Edge Cases:**
1093
-
1094
731
  ```typescript
1095
- // For tests that need DIFFERENT users:
1096
- test.describe('admin features', () => {
1097
- test.use({ storageState: 'playwright/.auth/admin.json' });
1098
-
1099
- test('admin can delete users', async ({ page }) => {
1100
- // Uses admin auth state
1101
- });
1102
- });
1103
-
1104
- // For tests that need NO auth (login page testing):
1105
- test.describe('login flow', () => {
1106
- test.use({ storageState: { cookies: [], origins: [] } });
1107
-
1108
- test('shows login form', async ({ page }) => {
1109
- await page.goto('/login');
1110
- // Test the actual login UI
1111
- });
1112
- });
732
+ // playwright.config.ts - Reuse auth state
733
+ projects: [
734
+ { name: 'setup', testMatch: /.*\.setup\.ts/ },
735
+ {
736
+ name: 'chromium',
737
+ use: { storageState: 'playwright/.auth/user.json' },
738
+ dependencies: ['setup'],
739
+ },
740
+ ]
1113
741
  ```
1114
742
 
1115
- **Common Auth Flakiness Fixes:**
743
+ **Common Auth Fixes:**
1116
744
 
1117
745
  | Problem | Solution |
1118
746
  |---------|----------|
1119
- | Session expires mid-test | Increase token TTL for test env, or refresh in setup |
1120
- | Rate limited on login | Use API auth, not UI; seed test users with known creds |
1121
- | Captcha blocks tests | Disable captcha in test env, or use bypass token |
1122
- | OAuth redirect fails | Mock OAuth provider, or use test-specific flow |
1123
- | Token not persisted | Wait for storage to complete before saving state |
1124
- | Different auth per test | Use separate storageState files per user role |
1125
-
1126
- **Test Database Strategy:**
1127
-
1128
- ```typescript
1129
- // global-setup.ts - Seed ONCE before all tests
1130
- async function globalSetup() {
1131
- // 1. Reset test database to known state
1132
- await resetTestDatabase();
1133
-
1134
- // 2. Seed test users (with KNOWN passwords!)
1135
- await seedTestUsers([
1136
- { email: 'user@test.local', password: 'Test123!', role: 'user' },
1137
- { email: 'admin@test.local', password: 'Admin123!', role: 'admin' },
1138
- ]);
1139
-
1140
- // 3. Seed test data
1141
- await seedTestData();
1142
- }
1143
-
1144
- // DON'T create users per test - use seeded users!
1145
- ```
747
+ | Session expires | Increase TTL for test env |
748
+ | Rate limited | Use API auth, seed users |
749
+ | Captcha blocks | Disable in test env |
750
+ | OAuth fails | Mock provider |
1146
751
 
1147
752
  **Auto Mode E2E Checklist:**
1148
753
  ```
1149
- Before running E2E tests in auto mode:
1150
- Test users seeded in database with known passwords
1151
- Auth state files generated (user.json, admin.json)
1152
- playwright.config.ts uses storageState
1153
- ✅ Individual tests DON'T login (except login flow tests)
1154
- ✅ Test env has relaxed rate limits
1155
- ✅ Captcha/2FA disabled or bypassed in test env
754
+ Test users seeded with known passwords
755
+ Auth state files generated
756
+ Tests DON'T login (except login flow tests)
757
+ Captcha/2FA disabled in test env
1156
758
  ```
1157
759
 
1158
760
  ### 🔄 Continuous Refactoring (Part of Auto Loop)
@@ -1303,7 +905,7 @@ done
1303
905
  **Circuit Breaker Pattern**: If external API (GitHub, JIRA) fails 3+ times, queue operations and continue.
1304
906
  <!-- SW:END:auto -->
1305
907
 
1306
- <!-- SW:SECTION:docs version="1.0.56" -->
908
+ <!-- SW:SECTION:docs version="1.0.60" -->
1307
909
  ## Docs
1308
910
 
1309
911
  [spec-weave.com](https://spec-weave.com) | `.specweave/docs/internal/`
@@ -19,6 +19,6 @@ interface RefreshOptions {
19
19
  github?: boolean;
20
20
  verbose?: boolean;
21
21
  }
22
- export declare function refreshMarketplaceCommand(options: RefreshOptions): Promise<void>;
22
+ export declare function refreshMarketplaceCommand(options?: RefreshOptions): Promise<void>;
23
23
  export {};
24
24
  //# sourceMappingURL=refresh-marketplace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-marketplace.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAaH,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA0ED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKtF"}
1
+ {"version":3,"file":"refresh-marketplace.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/refresh-marketplace.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAYH,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA0ED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiK3F"}
@@ -14,7 +14,6 @@
14
14
  *
15
15
  * @since 1.0.60
16
16
  */
17
- import { Command } from 'commander';
18
17
  import chalk from 'chalk';
19
18
  import { execSync } from 'child_process';
20
19
  import * as fs from 'fs';
@@ -80,7 +79,7 @@ function installPlugin(pluginName) {
80
79
  }
81
80
  return { name: pluginName, success: false, error: result.output };
82
81
  }
83
- export async function refreshMarketplaceCommand(options) {
82
+ export async function refreshMarketplaceCommand(options = {}) {
84
83
  // Determine mode - GitHub is default per CLAUDE.md rules
85
84
  const mode = options.local ? 'local' : 'github';
86
85
  console.log(chalk.blue.bold('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
@@ -218,16 +217,4 @@ export async function refreshMarketplaceCommand(options) {
218
217
  console.log(` 3. Check ${chalk.yellow('~/.claude/plugins/installed_plugins.json')}`);
219
218
  console.log('');
220
219
  }
221
- // Standalone execution
222
- const program = new Command();
223
- program
224
- .name('refresh-marketplace')
225
- .description('Refresh SpecWeave marketplace and install all plugins')
226
- .option('--local', 'Use local development version (ONLY for active dev)')
227
- .option('--github', 'Pull latest from GitHub (default, recommended)')
228
- .option('-v, --verbose', 'Show detailed error messages')
229
- .action(async (options) => {
230
- await refreshMarketplaceCommand(options);
231
- });
232
- program.parse();
233
220
  //# sourceMappingURL=refresh-marketplace.js.map
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.60",
3
+ "version": "1.0.62",
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",