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 +1 -1
- package/plugins/specweave/.claude-plugin/plugin.json +1 -3
- package/plugins/specweave/commands/abandon.md +1 -1
- package/plugins/specweave/commands/api-docs.md +1 -1
- package/plugins/specweave/commands/backlog.md +1 -1
- package/plugins/specweave/commands/external.md +1 -1
- package/plugins/specweave/commands/jobs.md +1 -1
- package/plugins/specweave/commands/living-docs.md +1 -1
- package/plugins/specweave/commands/npm.md +1 -1
- package/plugins/specweave/commands/pause.md +1 -1
- package/plugins/specweave/commands/resume.md +1 -1
- package/plugins/specweave/commands/skill-match.md +1 -7
- package/plugins/specweave/commands/skill.md +7 -1
- package/plugins/specweave/commands/status.md +1 -1
- package/plugins/specweave/commands/skip-increment.md +0 -93
- package/plugins/specweave/lib/utils/validate-dev-setup.sh +0 -133
- package/plugins/specweave-ado/skills/ado-manager/SKILL.md +0 -16
- package/plugins/specweave-infrastructure/skills/network-engineer/SKILL.md +0 -12
- package/plugins/specweave-infrastructure/skills/performance-engineer/SKILL.md +0 -12
- package/plugins/specweave-infrastructure/skills/sre/SKILL.md +0 -13
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
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",
|
|
@@ -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
|
-
|
|
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: 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
|
-
|
|
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
|
-
|
|
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
|
|
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,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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|