specweave 1.0.213 → 1.0.215

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "1.0.213",
3
+ "version": "1.0.215",
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",
@@ -18,7 +18,5 @@
18
18
  "pm",
19
19
  "architect",
20
20
  "living-docs"
21
- ],
22
- "commands": "./commands/",
23
- "skills": "./skills/"
21
+ ]
24
22
  }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: abandon
3
3
  description: Abandon an incomplete increment (requirements changed, obsolete)
4
- usage: /sw:abandon <increment-id> --reason="<reason>"
4
+ argument-hint: [increment-id] --reason="reason"
5
5
  ---
6
6
 
7
7
  # Abandon Increment Command
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: api-docs
3
3
  description: Generate and synchronize API documentation - OpenAPI spec, Postman collection with environments, and API client SDKs. Framework-aware with auto-detection. For API projects only.
4
- usage: /sw:api-docs [--openapi] [--postman] [--env] [--all] [--watch] [--validate] [--framework <name>]
4
+ argument-hint: [--openapi] [--postman] [--all] [--validate]
5
5
  ---
6
6
 
7
7
  # API Documentation Generator
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: backlog
3
3
  description: Move an increment to backlog (planned but not ready to start)
4
- usage: /sw:backlog <increment-id> --reason="<reason>"
4
+ argument-hint: [increment-id] --reason="reason"
5
5
  ---
6
6
 
7
7
  # Backlog Increment Command
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: external
3
3
  description: View external items dashboard - open issues from GitHub, JIRA, and Azure DevOps
4
- usage: /sw:external [--refresh]
4
+ argument-hint: [--refresh]
5
5
  ---
6
6
 
7
7
  # External Items Dashboard
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: jobs
3
3
  description: Show current work status (active increments, progress) and background jobs (imports, cloning). Even with no jobs, shows increment summary and helpful context.
4
- usage: /sw:jobs [--all] [--id <job-id>]
4
+ argument-hint: [--all] [--id job-id]
5
5
  ---
6
6
 
7
7
  # Background Jobs Monitor
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: living-docs
3
3
  description: Launch or resume Living Docs Builder independently. Generates comprehensive enterprise documentation from codebase analysis with AI-powered insights. LSP-enhanced by default for accurate API extraction.
4
- usage: /sw:living-docs [--resume <jobId>] [--depth <level>] [--priority <modules>] [--sources <folders>] [--depends-on <jobIds>] [--foreground] [--full-scan] [--no-lsp]
4
+ argument-hint: [--resume jobId] [--depth level] [--full-scan]
5
5
  ---
6
6
 
7
7
  # Living Docs Builder (Standalone)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: npm
3
- description: Full patch release - auto-commit, push, build, npm publish, AND GitHub Release creation. Use --quick for save+release (no GH release). Use --ci for GitHub Actions publish. Use --only for local publish without git push. Use --only --local for version bump only.
3
+ description: Full patch release with npm publish and GitHub Release. Flags: --quick (no GH release), --ci (Actions), --only (local).
4
4
  ---
5
5
 
6
6
  # /sw:npm - NPM Release Automation
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: pause
3
3
  description: Pause an active increment (blocked by external dependency, deprioritized)
4
- usage: /sw:pause <increment-id> --reason="<reason>"
4
+ argument-hint: [increment-id] --reason="reason"
5
5
  ---
6
6
 
7
7
  # Pause Increment Command
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: resume
3
3
  description: Resume a paused or backlog increment
4
- usage: /sw:resume <increment-id>
4
+ argument-hint: [increment-id]
5
5
  ---
6
6
 
7
7
  # Resume Increment Command
@@ -1,13 +1,7 @@
1
1
  ---
2
2
  name: skill-match
3
3
  description: Test a prompt against skill triggers to see what would match
4
- trigger: /sw:skill-match
5
- category: debugging
6
- arguments:
7
- - name: prompt
8
- description: The prompt to test
9
- required: true
10
- type: string
4
+ argument-hint: [prompt]
11
5
  ---
12
6
 
13
7
  # Skill Match Command
@@ -1,4 +1,10 @@
1
- # /sw:skill
1
+ ---
2
+ name: skill
3
+ description: Create Claude Code skills with proper YAML frontmatter, validation, and best practices
4
+ argument-hint: [--name skill-name] [--type auto|command|knowledge]
5
+ ---
6
+
7
+ # Skill Creator
2
8
 
3
9
  Create Claude Code skills with proper YAML frontmatter, validation, and best practices.
4
10
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: status
3
3
  description: Show increment status overview with rich details (active, backlog, paused, completed, abandoned)
4
- usage: /sw:status [--active|--backlog|--paused|--completed|--abandoned|--stale]
4
+ argument-hint: [--active|--backlog|--paused|--completed|--abandoned]
5
5
  ---
6
6
 
7
7
  # Increment Status
@@ -1,93 +0,0 @@
1
- # Skip Failed Increment in Auto Mode
2
-
3
- Skip a failed increment and move to the next one in queue. Use when an increment has exhausted retries and you want to continue with other work.
4
-
5
- ## Usage
6
-
7
- ```bash
8
- /sw:skip-increment [INCREMENT_ID]
9
- ```
10
-
11
- ## Arguments
12
-
13
- - `INCREMENT_ID`: Optional. If not provided, skips the current pending skip.
14
-
15
- ## How It Works
16
-
17
- 1. Marks the failed increment as "skipped" (not "completed" or "failed")
18
- 2. Logs the skip with reason in the session state
19
- 3. Moves to the next increment in queue
20
- 4. Continues auto mode execution
21
-
22
- ## When to Use
23
-
24
- - When an increment fails repeatedly and you want to move forward
25
- - When a blocking issue requires external resolution
26
- - When prioritizing other increments over the failed one
27
-
28
- ## Session State
29
-
30
- The skip creates a `failedIncrements` entry with skip metadata:
31
-
32
- ```json
33
- {
34
- "incrementId": "0001-feature",
35
- "skipReason": "test_failures",
36
- "skippedAt": "2024-12-29T10:00:00Z",
37
- "failureDetails": {
38
- "file": "tests/auth.spec.ts",
39
- "error": "timeout waiting for login"
40
- }
41
- }
42
- ```
43
-
44
- ## Execution
45
-
46
- **When this command is invoked**, execute the following:
47
-
48
- ```bash
49
- SESSION_FILE="$PROJECT_ROOT/.specweave/state/auto-session.json"
50
-
51
- if [ ! -f "$SESSION_FILE" ]; then
52
- echo "No auto session active."
53
- exit 1
54
- fi
55
-
56
- SESSION=$(cat "$SESSION_FILE")
57
- PENDING_SKIP=$(echo "$SESSION" | jq -r '.pendingSkip // null')
58
-
59
- if [ "$PENDING_SKIP" = "null" ]; then
60
- echo "No increment pending skip. Run /sw:auto to continue."
61
- exit 1
62
- fi
63
-
64
- SKIPPED_INCREMENT=$(echo "$PENDING_SKIP" | jq -r '.increment')
65
- SKIP_REASON=$(echo "$PENDING_SKIP" | jq -r '.reason')
66
- NEXT_INCREMENT=$(echo "$SESSION" | jq -r '.incrementQueue[1] // null')
67
-
68
- if [ "$NEXT_INCREMENT" = "null" ]; then
69
- echo "No more increments in queue."
70
- exit 1
71
- fi
72
-
73
- # Move skipped increment to failed list and advance queue
74
- jq --arg skipped "$SKIPPED_INCREMENT" --arg reason "$SKIP_REASON" \
75
- --arg next "$NEXT_INCREMENT" --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '
76
- .failedIncrements += [{
77
- "incrementId": $skipped,
78
- "skipReason": $reason,
79
- "skippedAt": $now,
80
- "failureDetails": .pendingSkip
81
- }] |
82
- .currentIncrement = $next |
83
- .incrementQueue = .incrementQueue[1:] |
84
- .status = "running" |
85
- del(.pendingSkip) |
86
- del(.pauseTime) |
87
- del(.pauseReason)
88
- ' "$SESSION_FILE" > "$SESSION_FILE.tmp" && mv "$SESSION_FILE.tmp" "$SESSION_FILE"
89
-
90
- echo "Skipped increment $SKIPPED_INCREMENT, now working on $NEXT_INCREMENT"
91
- ```
92
-
93
- Then continue with `/sw:do` to start working on the next increment.
@@ -1,133 +0,0 @@
1
- #!/bin/bash
2
- # Lightweight Developer Setup Validator for Hooks
3
- #
4
- # This script is sourced by hooks to validate that the marketplace symlink
5
- # is correctly configured for local development, preventing hook errors.
6
- #
7
- # Usage in hooks:
8
- # source "$(dirname "$0")/../lib/utils/validate-dev-setup.sh"
9
- # validate_marketplace_setup_quiet || exit 0 # Skip hook if setup invalid
10
-
11
- # Global variables set by validation
12
- MARKETPLACE_SETUP_VALID=0
13
- MARKETPLACE_SETUP_ERROR=""
14
-
15
- # Validate marketplace setup (quiet mode - for hooks)
16
- # Returns: 0 if valid, 1 if invalid
17
- # Sets: MARKETPLACE_SETUP_VALID, MARKETPLACE_SETUP_ERROR
18
- validate_marketplace_setup_quiet() {
19
- # Only validate in development mode
20
- if [[ ! -f "$(git rev-parse --show-toplevel 2>/dev/null)/package.json" ]]; then
21
- MARKETPLACE_SETUP_VALID=1
22
- return 0 # Not in a repo, assume valid
23
- fi
24
-
25
- # Check if we're in the SpecWeave repository
26
- local repo_root
27
- repo_root="$(git rev-parse --show-toplevel 2>/dev/null)" || {
28
- MARKETPLACE_SETUP_VALID=1
29
- return 0 # Not in git repo, assume valid
30
- }
31
-
32
- if [[ ! -f "$repo_root/package.json" ]]; then
33
- MARKETPLACE_SETUP_VALID=1
34
- return 0
35
- fi
36
-
37
- # Check if this is the SpecWeave repository
38
- if ! grep -q '"name": "specweave"' "$repo_root/package.json" 2>/dev/null; then
39
- MARKETPLACE_SETUP_VALID=1
40
- return 0 # Not SpecWeave repo, assume valid (user project)
41
- fi
42
-
43
- # This IS the SpecWeave repository - validate marketplace setup
44
- local marketplace_path="$HOME/.claude/plugins/marketplaces/specweave"
45
-
46
- # Check if marketplace exists
47
- if [[ ! -e "$marketplace_path" ]]; then
48
- MARKETPLACE_SETUP_VALID=0
49
- MARKETPLACE_SETUP_ERROR="Marketplace directory does not exist"
50
- return 1
51
- fi
52
-
53
- # Check if it's a symlink
54
- if [[ ! -L "$marketplace_path" ]]; then
55
- MARKETPLACE_SETUP_VALID=0
56
- MARKETPLACE_SETUP_ERROR="Marketplace is a regular directory, not a symlink"
57
- return 1
58
- fi
59
-
60
- # Check if symlink points to this repository
61
- local symlink_target
62
- symlink_target="$(readlink "$marketplace_path")"
63
-
64
- if [[ "$symlink_target" != "$repo_root" ]]; then
65
- # Try resolving to absolute path in case symlink is relative
66
- local resolved_target
67
- resolved_target="$(cd "$(dirname "$marketplace_path")" && cd "$symlink_target" && pwd)" || {
68
- MARKETPLACE_SETUP_VALID=0
69
- MARKETPLACE_SETUP_ERROR="Symlink target cannot be resolved"
70
- return 1
71
- }
72
-
73
- if [[ "$resolved_target" != "$repo_root" ]]; then
74
- MARKETPLACE_SETUP_VALID=0
75
- MARKETPLACE_SETUP_ERROR="Symlink points to wrong repository"
76
- return 1
77
- fi
78
- fi
79
-
80
- # All checks passed
81
- MARKETPLACE_SETUP_VALID=1
82
- return 0
83
- }
84
-
85
- # Validate marketplace setup (verbose mode - for scripts)
86
- # Prints detailed error messages
87
- # Returns: 0 if valid, 1 if invalid
88
- validate_marketplace_setup_verbose() {
89
- if validate_marketplace_setup_quiet; then
90
- return 0
91
- fi
92
-
93
- # Print error
94
- echo "❌ Invalid marketplace setup: $MARKETPLACE_SETUP_ERROR" >&2
95
- echo "" >&2
96
- echo "Fix by running:" >&2
97
- echo " ./scripts/setup-dev-plugins.sh" >&2
98
- echo "" >&2
99
- echo "Or manually:" >&2
100
- echo " rm -rf ~/.claude/plugins/marketplaces/specweave" >&2
101
- echo " ln -s \$(pwd) ~/.claude/plugins/marketplaces/specweave" >&2
102
- echo "" >&2
103
-
104
- return 1
105
- }
106
-
107
- # Quick check for hooks - returns true if running in user project
108
- is_user_project() {
109
- local repo_root
110
- repo_root="$(git rev-parse --show-toplevel 2>/dev/null)" || return 0
111
-
112
- if [[ ! -f "$repo_root/package.json" ]]; then
113
- return 0 # No package.json, assume user project
114
- fi
115
-
116
- # Check if this is NOT the SpecWeave repository
117
- if ! grep -q '"name": "specweave"' "$repo_root/package.json" 2>/dev/null; then
118
- return 0 # User project
119
- fi
120
-
121
- return 1 # SpecWeave repository
122
- }
123
-
124
- # Print warning about marketplace setup (for hooks)
125
- warn_marketplace_setup() {
126
- if [[ "${SPECWEAVE_SUPPRESS_WARNINGS:-}" == "true" ]]; then
127
- return 0
128
- fi
129
-
130
- echo "⚠️ Warning: Marketplace setup issue detected" >&2
131
- echo " Run: ./scripts/validate-local-dev-setup.sh" >&2
132
- echo "" >&2
133
- }
@@ -1,16 +0,0 @@
1
- ---
2
- name: ado-manager
3
- description: Azure DevOps integration specialist for SpecWeave increments with epic/feature/story management and bidirectional sync. Use when creating ADO work items, syncing task completion, or troubleshooting ADO API issues. Covers rate limiting, WIQL queries, and area path configuration.
4
- role: Azure DevOps Integration Specialist
5
- context: |
6
- You are an expert in Azure DevOps (ADO) REST API integration, work item management, and SpecWeave increment synchronization.
7
-
8
- Your responsibilities:
9
- - Create and manage ADO work items (Epics, Features, User Stories)
10
- - Sync SpecWeave increment progress to ADO
11
- - Handle bidirectional sync (ADO ↔ SpecWeave)
12
- - Troubleshoot ADO API issues
13
- - Optimize sync performance and rate limiting
14
- model: opus
15
- context: fork
16
- ---
@@ -1,12 +0,0 @@
1
- ---
2
- name: network-engineer
3
- description: Cloud network architect for VPC design, service mesh, zero-trust networking, load balancers, and CDN optimization. Use for network troubleshooting or connectivity issues.
4
- model: opus
5
- context: fork
6
- ---
7
-
8
- ## ⚠️ Chunking for Large Network Architectures
9
-
10
- When generating comprehensive network architectures that exceed 1000 lines (e.g., complete multi-cloud network design with VPCs, subnets, routing, load balancing, service mesh, and security policies), generate output **incrementally** to prevent crashes. Break large network implementations into logical layers (e.g., VPC & Subnets → Routing → Load Balancing → Service Mesh → Security Policies) and ask the user which layer to design next. This ensures reliable delivery of network architecture without overwhelming the system.
11
-
12
- You are a network engineer specializing in modern cloud networking, security, and performance optimization.
@@ -1,12 +0,0 @@
1
- ---
2
- name: performance-engineer
3
- description: Performance engineering - OpenTelemetry, distributed tracing, load testing (k6, JMeter), multi-tier caching, Core Web Vitals. Use for slow apps or latency issues.
4
- model: opus
5
- context: fork
6
- ---
7
-
8
- ## ⚠️ Chunking for Large Performance Optimization Plans
9
-
10
- When generating comprehensive performance optimization implementations that exceed 1000 lines (e.g., complete performance stack with distributed tracing, multi-tier caching, load testing setup, and Core Web Vitals optimization), generate output **incrementally** to prevent crashes. Break large performance projects into logical components (e.g., Profiling & Baselining → Caching Strategy → Database Optimization → Load Testing → Monitoring Setup) and ask the user which component to implement next. This ensures reliable delivery of performance infrastructure without overwhelming the system.
11
-
12
- You are a performance engineer specializing in modern application optimization, observability, and scalable system performance.
@@ -1,13 +0,0 @@
1
- ---
2
- name: sre
3
- description: SRE expert for incident response, production troubleshooting, root cause analysis, post-mortems, and runbooks. Use for outages, performance issues, or SEV incidents.
4
- allowed-tools: Read, Bash, Grep
5
- model: opus
6
- context: fork
7
- ---
8
-
9
- # SRE Agent - Site Reliability Engineering Expert
10
-
11
- ## ⚠️ Chunking for Large Incident Reports
12
-
13
- When generating comprehensive incident reports that exceed 1000 lines (e.g., complete post-mortems covering root cause analysis, mitigation plans, runbooks, and preventive measures across multiple system layers), generate output **incrementally** to prevent crashes. Break large incident reports into logical phases (e.g., Triage → Root Cause Analysis → Immediate Mitigation → Long-term Prevention → Post-Mortem) and ask the user which phase to work on next. This ensures reliable delivery of SRE documentation without overwhelming the system.