specweave 1.0.324 → 1.0.326
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-plugin/marketplace.json +1 -1
- package/CLAUDE.md +1 -1
- package/bin/specweave.js +2 -2
- package/dist/plugins/specweave-github/lib/github-feature-sync.js +2 -2
- package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
- package/dist/src/adapters/claude/README.md +3 -3
- package/dist/src/adapters/cursor/README.md +1 -1
- package/dist/src/adapters/generic/README.md +1 -1
- package/dist/src/cli/helpers/init/plugin-install-flags.d.ts +1 -1
- package/dist/src/cli/helpers/init/plugin-install-flags.js +1 -1
- package/dist/src/cli/helpers/init/plugin-installer.js +2 -2
- package/dist/src/cli/helpers/init/plugin-installer.js.map +1 -1
- package/dist/src/config/types.d.ts +2 -2
- package/dist/src/core/fabric/registry-schema.d.ts +1 -1
- package/dist/src/core/fabric/registry-schema.d.ts.map +1 -1
- package/dist/src/core/hooks/project-scope-guard.d.ts +1 -1
- package/dist/src/core/hooks/project-scope-guard.d.ts.map +1 -1
- package/dist/src/core/hooks/project-scope-guard.js +9 -4
- package/dist/src/core/hooks/project-scope-guard.js.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts +25 -23
- package/dist/src/core/lazy-loading/llm-plugin-detector.d.ts.map +1 -1
- package/dist/src/core/lazy-loading/llm-plugin-detector.js +77 -39
- package/dist/src/core/lazy-loading/llm-plugin-detector.js.map +1 -1
- package/dist/src/core/living-docs/scaffolding/scaffold.js +1 -1
- package/dist/src/core/session/handoff-context.d.ts +2 -2
- package/dist/src/core/session/handoff-context.js +28 -28
- package/dist/src/core/session/handoff-context.js.map +1 -1
- package/dist/src/core/session/plugin-install-detector.d.ts +2 -2
- package/dist/src/core/session/plugin-install-detector.js +3 -3
- package/dist/src/core/session/restart-warning.d.ts +2 -2
- package/dist/src/core/session/restart-warning.d.ts.map +1 -1
- package/dist/src/core/session/restart-warning.js +20 -21
- package/dist/src/core/session/restart-warning.js.map +1 -1
- package/dist/src/core/session/session-state.d.ts +1 -1
- package/dist/src/core/session/session-state.js +1 -1
- package/dist/src/core/types/plugin-scope.d.ts +2 -2
- package/dist/src/core/types/plugin-scope.js +1 -1
- package/dist/src/init/research/types.d.ts +1 -1
- package/dist/src/locales/en/cli.json +1 -1
- package/dist/src/locales/ru/cli.json +1 -1
- package/package.json +1 -1
- package/plugins/FINAL-AUDIT-RECOMMENDATIONS.md +3 -3
- package/plugins/SKILLS-VS-AGENTS.md +13 -13
- package/plugins/specweave/commands/team-status.md +1 -1
- package/plugins/specweave/hooks/user-prompt-submit.sh +22 -17
- package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +2 -2
- package/plugins/specweave/skills/architect/SKILL.md +2 -2
- package/plugins/specweave/skills/team-build/SKILL.md +7 -7
- package/plugins/specweave/skills/team-lead/SKILL.md +17 -17
- package/plugins/specweave-docs/.claude-plugin/plugin.json +1 -1
- package/plugins/specweave-docs/PLUGIN.md +1 -1
- package/plugins/specweave-docs/commands/build.md +7 -7
- package/plugins/specweave-docs/commands/generate.md +21 -21
- package/plugins/specweave-docs/commands/health.md +9 -9
- package/plugins/specweave-docs/commands/init.md +8 -8
- package/plugins/specweave-docs/commands/organize.md +9 -9
- package/plugins/specweave-docs/commands/validate.md +8 -8
- package/plugins/specweave-docs/commands/view.md +13 -13
- package/plugins/specweave-github/lib/github-feature-sync.js +1 -1
- package/plugins/specweave-github/lib/github-feature-sync.ts +2 -2
- package/src/templates/CLAUDE.md.template +3 -3
|
@@ -49,39 +49,38 @@ const RESTART_INSTRUCTIONS = [
|
|
|
49
49
|
*/
|
|
50
50
|
const PLUGIN_DESCRIPTIONS = {
|
|
51
51
|
'sw': 'SpecWeave Core - Spec-driven development framework',
|
|
52
|
-
'
|
|
53
|
-
'
|
|
52
|
+
'frontend': 'Frontend Development - React, Vue, Next.js expertise',
|
|
53
|
+
'backend': 'Backend Development - API, database, microservices',
|
|
54
54
|
'sw-github': 'GitHub Integration - Issues, PRs, sync',
|
|
55
55
|
'sw-jira': 'JIRA Integration - Epics, stories, sync',
|
|
56
56
|
'sw-ado': 'Azure DevOps Integration - Work items, boards',
|
|
57
|
-
'
|
|
58
|
-
'
|
|
59
|
-
'
|
|
60
|
-
'
|
|
61
|
-
'
|
|
62
|
-
'
|
|
57
|
+
'k8s': 'Kubernetes - K8s, Helm, GitOps',
|
|
58
|
+
'infra': 'Infrastructure - Terraform, Docker, CI/CD',
|
|
59
|
+
'testing': 'Testing & QA - E2E, Playwright, Vitest',
|
|
60
|
+
'mobile': 'Mobile Development - React Native, iOS, Android',
|
|
61
|
+
'ml': 'Machine Learning - ML, PyTorch, TensorFlow',
|
|
62
|
+
'payments': 'Payments - Stripe, PayPal, checkout flows',
|
|
63
63
|
'sw-diagrams': 'Diagrams - Mermaid, C4, architecture diagrams',
|
|
64
64
|
'sw-release': 'Release Management - Versioning, changelog',
|
|
65
|
-
|
|
66
|
-
'
|
|
67
|
-
'sw-kafka': 'Apache Kafka - Event streaming, topics',
|
|
65
|
+
'confluent': 'Confluent Cloud - Kafka, Schema Registry, ksqlDB',
|
|
66
|
+
'kafka': 'Apache Kafka - Event streaming, topics',
|
|
68
67
|
};
|
|
69
68
|
/**
|
|
70
69
|
* Plugin skill summaries for continuation context
|
|
71
70
|
*/
|
|
72
71
|
const PLUGIN_SKILLS = {
|
|
73
72
|
'sw': '/sw:increment, /sw:do, /sw:done - Core workflow',
|
|
74
|
-
'
|
|
75
|
-
'
|
|
73
|
+
'frontend': 'Frontend architecture and React expertise',
|
|
74
|
+
'backend': 'Backend API and database expertise',
|
|
76
75
|
'sw-github': '/sw-github:sync - GitHub issue sync',
|
|
77
76
|
'sw-jira': '/sw-jira:sync - JIRA issue sync',
|
|
78
77
|
'sw-ado': '/sw-ado:sync - Azure DevOps sync',
|
|
79
|
-
'
|
|
80
|
-
'
|
|
81
|
-
'
|
|
82
|
-
'
|
|
83
|
-
'
|
|
84
|
-
'
|
|
78
|
+
'k8s': 'Kubernetes architecture and manifests',
|
|
79
|
+
'infra': 'Infrastructure as Code and DevOps',
|
|
80
|
+
'testing': 'QA strategy and E2E testing',
|
|
81
|
+
'mobile': 'Mobile app development expertise',
|
|
82
|
+
'ml': 'Machine learning and MLOps',
|
|
83
|
+
'payments': 'Payment integration (Stripe, PayPal)',
|
|
85
84
|
'sw-diagrams': 'Architecture diagrams and C4 models',
|
|
86
85
|
'sw-release': 'Release management and versioning',
|
|
87
86
|
};
|
|
@@ -189,14 +188,14 @@ function getPluginCountPhrase(count) {
|
|
|
189
188
|
* ```typescript
|
|
190
189
|
* // Basic usage
|
|
191
190
|
* const result = formatRestartWarning({
|
|
192
|
-
* plugins: ['sw', '
|
|
191
|
+
* plugins: ['sw', 'frontend'],
|
|
193
192
|
* projectPath: '/path/to/project'
|
|
194
193
|
* });
|
|
195
194
|
* console.log(result.text);
|
|
196
195
|
*
|
|
197
196
|
* // With full context for handoff
|
|
198
197
|
* const detailed = formatRestartWarning({
|
|
199
|
-
* plugins: ['sw', '
|
|
198
|
+
* plugins: ['sw', 'frontend'],
|
|
200
199
|
* projectPath: '/path/to/project',
|
|
201
200
|
* originalIntent: 'Create React dashboard with Stripe',
|
|
202
201
|
* includeDescriptions: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restart-warning.js","sourceRoot":"","sources":["../../../../src/core/session/restart-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAoCH,+EAA+E;AAC/E,gCAAgC;AAChC,+EAA+E;AAE/E,iCAAiC;AACjC,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,sCAAsC;AACtC,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE3C,sCAAsC;AACtC,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEhD,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,mBAAmB;AACnB,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD,sBAAsB;AACtB,MAAM,eAAe,GAAG;IACtB,OAAO,EAAE,uBAAuB;IAChC,QAAQ,EAAE,sBAAsB;IAChC,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,uDAAuD;CACxD,CAAC;AAEX,2BAA2B;AAC3B,MAAM,oBAAoB,GAAG;IAC3B,sDAAsD;IACtD,oCAAoC;IACpC,uCAAuC;IACvC,4BAA4B;CACpB,CAAC;AAEX,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,mBAAmB,GAA2B;IAClD,IAAI,EAAE,oDAAoD;IAC1D,
|
|
1
|
+
{"version":3,"file":"restart-warning.js","sourceRoot":"","sources":["../../../../src/core/session/restart-warning.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,7 @@ export declare function initSessionState(projectRoot: string): SessionState;
|
|
|
79
79
|
*
|
|
80
80
|
* @example
|
|
81
81
|
* ```typescript
|
|
82
|
-
* const state = recordPluginInstallation('/path/to/project', ['sw', '
|
|
82
|
+
* const state = recordPluginInstallation('/path/to/project', ['sw', 'frontend'], {
|
|
83
83
|
* trigger: 'specweave-init',
|
|
84
84
|
* projectPath: '/new/project'
|
|
85
85
|
* });
|
|
@@ -143,7 +143,7 @@ export function initSessionState(projectRoot) {
|
|
|
143
143
|
*
|
|
144
144
|
* @example
|
|
145
145
|
* ```typescript
|
|
146
|
-
* const state = recordPluginInstallation('/path/to/project', ['sw', '
|
|
146
|
+
* const state = recordPluginInstallation('/path/to/project', ['sw', 'frontend'], {
|
|
147
147
|
* trigger: 'specweave-init',
|
|
148
148
|
* projectPath: '/new/project'
|
|
149
149
|
* });
|
|
@@ -39,7 +39,7 @@ export interface PluginScopeConfig {
|
|
|
39
39
|
*/
|
|
40
40
|
lspScope?: PluginInstallationScope;
|
|
41
41
|
/**
|
|
42
|
-
* Scope for SpecWeave plugins (sw, sw-frontend,
|
|
42
|
+
* Scope for SpecWeave plugins (sw, sw-github, frontend, backend, etc.)
|
|
43
43
|
* @default 'user'
|
|
44
44
|
*/
|
|
45
45
|
specweaveScope?: PluginInstallationScope;
|
|
@@ -60,7 +60,7 @@ export interface PluginScopeConfig {
|
|
|
60
60
|
* Default plugin scope configuration
|
|
61
61
|
*
|
|
62
62
|
* - LSP plugins: project scope (language-specific, don't pollute global)
|
|
63
|
-
* - SpecWeave
|
|
63
|
+
* - SpecWeave/vskill plugins (frontend, backend, sw-github, etc.): project scope
|
|
64
64
|
* - Core SpecWeave plugin (sw): user scope (needed across all projects)
|
|
65
65
|
* - Other plugins: user scope (default)
|
|
66
66
|
*/
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Default plugin scope configuration
|
|
15
15
|
*
|
|
16
16
|
* - LSP plugins: project scope (language-specific, don't pollute global)
|
|
17
|
-
* - SpecWeave
|
|
17
|
+
* - SpecWeave/vskill plugins (frontend, backend, sw-github, etc.): project scope
|
|
18
18
|
* - Core SpecWeave plugin (sw): user scope (needed across all projects)
|
|
19
19
|
* - Other plugins: user scope (default)
|
|
20
20
|
*/
|
|
@@ -73,13 +73,13 @@ export declare const VisionInsightsSchema: z.ZodObject<{
|
|
|
73
73
|
education: "education";
|
|
74
74
|
iot: "iot";
|
|
75
75
|
gaming: "gaming";
|
|
76
|
+
blockchain: "blockchain";
|
|
76
77
|
marketplace: "marketplace";
|
|
77
78
|
"productivity-saas": "productivity-saas";
|
|
78
79
|
"e-commerce": "e-commerce";
|
|
79
80
|
"social-network": "social-network";
|
|
80
81
|
"enterprise-b2b": "enterprise-b2b";
|
|
81
82
|
"consumer-b2c": "consumer-b2c";
|
|
82
|
-
blockchain: "blockchain";
|
|
83
83
|
"ai-ml": "ai-ml";
|
|
84
84
|
}>;
|
|
85
85
|
competitors: z.ZodArray<z.ZodObject<{
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"installCore": "Run: /plugin install specweave",
|
|
132
132
|
"step3": "Optional: Install additional plugins as needed:",
|
|
133
133
|
"installGitHub": "/plugin install sw-github@specweave",
|
|
134
|
-
"installFrontend": "/plugin install
|
|
134
|
+
"installFrontend": "/plugin install frontend@vskill",
|
|
135
135
|
"step4": "Start building:",
|
|
136
136
|
"example": "\"/sw:increment 'user authentication'\"",
|
|
137
137
|
"autoActivate": "Skills and agents auto-activate based on context"
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"installCore": "Выполните: /plugin install specweave",
|
|
125
125
|
"step3": "Опционально: Установите дополнительные плагины по необходимости:",
|
|
126
126
|
"installGitHub": "/plugin install sw-github@specweave",
|
|
127
|
-
"installFrontend": "/plugin install
|
|
127
|
+
"installFrontend": "/plugin install frontend@vskill",
|
|
128
128
|
"step4": "Начните разработку:",
|
|
129
129
|
"example": "\"/sw:increment 'аутентификация пользователя'\"",
|
|
130
130
|
"autoActivate": "Навыки и агенты активируются автоматически по контексту"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.326",
|
|
4
4
|
"description": "Spec-driven development framework for AI coding agents. Works with Claude Code, Codex, Antigravity, Cursor, Copilot & more. 100+ skills, 49 CLI commands, verified skill certification, autonomous execution, and living documentation.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -67,10 +67,10 @@ These have **explicit task instructions** (e.g., "create tests", "generate code"
|
|
|
67
67
|
|
|
68
68
|
| Skill | Has Explicit Task? | Keep `context: fork`? |
|
|
69
69
|
|-------|-------------------|----------------------|
|
|
70
|
-
| `qa-engineer` (
|
|
70
|
+
| `qa-engineer` (testing) | ✅ "Creates test suites ONE FILE AT A TIME" | ✅ Keep |
|
|
71
71
|
| `tech-lead` | ✅ "Implements code ONE FILE AT A TIME" | ✅ Keep |
|
|
72
72
|
| `docs-writer` | ✅ "Generates docs ONE SECTION AT A TIME" | ✅ Keep |
|
|
73
|
-
| `devops` (
|
|
73
|
+
| `devops` (infra) | ✅ "Generates IaC ONE LAYER AT A TIME" | ✅ Keep |
|
|
74
74
|
| `increment` | ✅ Creates increment structure | ✅ Keep |
|
|
75
75
|
| `test-aware-planner` | ✅ Generates tasks.md with tests | ✅ Keep |
|
|
76
76
|
| `tdd-cycle` | ✅ Coordinates TDD workflow | ✅ Keep |
|
|
@@ -153,7 +153,7 @@ disable-model-invocation: true
|
|
|
153
153
|
|---------|-------|--------------|---------|
|
|
154
154
|
| `reflect.md` | `reflect/SKILL.md` | **Complementary** | Command is workflow, skill is knowledge |
|
|
155
155
|
| `translate.md` | `translator/SKILL.md` | **Complementary** | Command is batch workflow, skill is expertise |
|
|
156
|
-
| `qa.md` | `
|
|
156
|
+
| `qa.md` | `testing:qa` | **Complementary** | Command runs CLI, skill creates tests |
|
|
157
157
|
| `plan.md` | `increment/SKILL.md` | **Complementary** | Command for existing, skill for new increments |
|
|
158
158
|
| `tdd-cycle.md` | `tdd-cycle/SKILL.md` | **Complementary** | Command starts workflow, skill orchestrates |
|
|
159
159
|
|
|
@@ -82,14 +82,14 @@ All domain experts are now skills with `context: fork`:
|
|
|
82
82
|
|
|
83
83
|
| Domain | Skill | Triggers (Auto-activate) |
|
|
84
84
|
|--------|-------|--------------------------|
|
|
85
|
-
| **Frontend** | `
|
|
86
|
-
| **Backend** | `
|
|
87
|
-
| **Payments** | `
|
|
88
|
-
| **Testing** | `
|
|
89
|
-
| **Kubernetes** | `
|
|
90
|
-
| **Infrastructure** | `
|
|
91
|
-
| **Mobile** | `
|
|
92
|
-
| **ML/AI** | `
|
|
85
|
+
| **Frontend** | `frontend:architect` | React, Vue, Next.js, dashboard, component, UI |
|
|
86
|
+
| **Backend** | `backend:database-optimizer` | API, database, SQL, PostgreSQL, optimization |
|
|
87
|
+
| **Payments** | `payments:payment-integration` | Stripe, PayPal, checkout, billing, subscriptions |
|
|
88
|
+
| **Testing** | `testing:qa` | E2E, Playwright, Vitest, Jest, TDD, QA |
|
|
89
|
+
| **Kubernetes** | `k8s:kubernetes-architect` | K8s, pods, deployments, Helm, GitOps |
|
|
90
|
+
| **Infrastructure** | `infra:devops` | Terraform, Docker, CI/CD, AWS, Azure |
|
|
91
|
+
| **Mobile** | `mobile:react-native-expert` | React Native, iOS, Android, Expo |
|
|
92
|
+
| **ML/AI** | `ml:ml-engineer` | ML, model, training, TensorFlow, PyTorch |
|
|
93
93
|
| **Diagrams** | `sw-diagrams:diagrams` | Mermaid, C4, architecture diagram, flowchart |
|
|
94
94
|
| **Release** | `sw-release:release-expert` | release, version, changelog, npm publish |
|
|
95
95
|
|
|
@@ -102,8 +102,8 @@ All run in isolated context without polluting the main conversation.
|
|
|
102
102
|
**What happens:**
|
|
103
103
|
1. Claude detects keywords: "React", "dashboard", "Stripe", "checkout"
|
|
104
104
|
2. Skills auto-activate (primary mechanism):
|
|
105
|
-
- `
|
|
106
|
-
- `
|
|
105
|
+
- `frontend:architect` (React, dashboard)
|
|
106
|
+
- `payments:payment-integration` (Stripe, checkout)
|
|
107
107
|
3. Each skill runs in isolated context (`context: fork`)
|
|
108
108
|
4. Results return to main conversation
|
|
109
109
|
|
|
@@ -113,7 +113,7 @@ All run in isolated context without polluting the main conversation.
|
|
|
113
113
|
|
|
114
114
|
```typescript
|
|
115
115
|
// If auto-activation didn't work, explicitly invoke:
|
|
116
|
-
Skill({ skill: "
|
|
116
|
+
Skill({ skill: "frontend:architect", args: "dashboard" })
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
## Migration Complete
|
|
@@ -152,8 +152,8 @@ plugins/specweave-frontend/
|
|
|
152
152
|
|
|
153
153
|
### Q: How do I invoke a skill explicitly?
|
|
154
154
|
**A:** Two ways:
|
|
155
|
-
1. **User**: Type `/
|
|
156
|
-
2. **Claude**: Use `Skill({ skill: "
|
|
155
|
+
1. **User**: Type `/frontend:architect` in chat
|
|
156
|
+
2. **Claude**: Use `Skill({ skill: "frontend:architect" })` when auto-activation didn't trigger
|
|
157
157
|
|
|
158
158
|
Usually just describe what you need - skills auto-activate on keywords. Use explicit invocation as fallback.
|
|
159
159
|
|
|
@@ -42,7 +42,7 @@ Mode: Native Agent Teams
|
|
|
42
42
|
| Agent 3 | shared | 0195-checkout-shared | 4/4 | 100% | done |
|
|
43
43
|
|
|
44
44
|
Overall: 12/18 tasks (67%)
|
|
45
|
-
Active Skills:
|
|
45
|
+
Active Skills: frontend:architect, sw:architect, sw:architect
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## Agent State Icons
|
|
@@ -154,7 +154,9 @@ find_specweave_config() {
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
# Check if this is a SpecWeave skill invocation
|
|
157
|
-
|
|
157
|
+
# Matches: /sw:*, /sw-github:*, /frontend:*, /backend:*, /testing:*, etc.
|
|
158
|
+
DOMAIN_PLUGIN_PATTERN="^[[:space:]]*/([Ff]rontend|[Bb]ackend|[Tt]esting|[Mm]obile|[Ii]nfra|[Kk]8s|[Mm]l|[Pp]ayments|[Kk]afka|[Cc]onfluent|[Cc]ost|[Dd]ocs|[Ss]ecurity|[Ss]kills|[Bb]lockchain):[a-zA-Z-]+"
|
|
159
|
+
if [[ "$PROMPT" =~ ^[[:space:]]*/[Ss][Ww](-[a-zA-Z0-9-]+)?:[a-zA-Z-]+ ]] || [[ "$PROMPT" =~ $DOMAIN_PLUGIN_PATTERN ]]; then
|
|
158
160
|
# Check if guard is disabled via environment variable
|
|
159
161
|
if [[ "${SPECWEAVE_DISABLE_GUARD:-0}" != "1" ]]; then
|
|
160
162
|
# Check if project is initialized (walk up tree to find .specweave/config.json)
|
|
@@ -162,7 +164,7 @@ if [[ "$PROMPT" =~ ^[[:space:]]*/[Ss][Ww](-[a-zA-Z0-9-]+)?:[a-zA-Z-]+ ]]; then
|
|
|
162
164
|
if [[ -z "$FOUND_CONFIG" ]]; then
|
|
163
165
|
# Check if guard is disabled in config (would fail since no config exists yet)
|
|
164
166
|
# Extract skill name for error message
|
|
165
|
-
SKILL_NAME=$(echo "$PROMPT" | grep -
|
|
167
|
+
SKILL_NAME=$(echo "$PROMPT" | grep -oiE '^[[:space:]]*/[a-z0-9-]+:[a-zA-Z-]+' | tr '[:upper:]' '[:lower:]' | sed 's/^[[:space:]]*//')
|
|
166
168
|
|
|
167
169
|
# Generate helpful error message
|
|
168
170
|
cat <<EOF
|
|
@@ -194,7 +196,7 @@ You invoked \`${SKILL_NAME}\`, but this project hasn't been initialized with Spe
|
|
|
194
196
|
{
|
|
195
197
|
\"enabledPlugins\": {
|
|
196
198
|
\"sw@specweave\": false,
|
|
197
|
-
\"
|
|
199
|
+
\"frontend@vskill\": false
|
|
198
200
|
}
|
|
199
201
|
}
|
|
200
202
|
\`\`\`
|
|
@@ -449,9 +451,9 @@ output_approve_with_context() {
|
|
|
449
451
|
# was eliminated to save ~800 chars of context budget per turn. The skill reads
|
|
450
452
|
# the user's prompt from conversation context (it's already there).
|
|
451
453
|
|
|
452
|
-
# Helper: Check if
|
|
454
|
+
# Helper: Check if plugin is in vskill.lock (fast-path skip) (v1.0.272)
|
|
453
455
|
# vskill.lock is the SOURCE OF TRUTH for vskill-installed plugins.
|
|
454
|
-
# Args: $1=plugin name (e.g., "
|
|
456
|
+
# Args: $1=plugin name (e.g., "frontend")
|
|
455
457
|
# Returns: 0 if in lockfile, 1 if not
|
|
456
458
|
check_plugin_in_vskill_lock() {
|
|
457
459
|
local plugin="$1"
|
|
@@ -478,9 +480,9 @@ check_plugin_in_vskill_lock() {
|
|
|
478
480
|
fi
|
|
479
481
|
}
|
|
480
482
|
|
|
481
|
-
# Helper: Install
|
|
483
|
+
# Helper: Install plugin via vskill (v1.0.272)
|
|
482
484
|
# Uses npx vskill add with --plugin and --plugin-dir flags.
|
|
483
|
-
# Args: $1=plugin name (e.g., "
|
|
485
|
+
# Args: $1=plugin name (e.g., "frontend")
|
|
484
486
|
# Returns: 0 if installed successfully, 1 if failed
|
|
485
487
|
# Sets VSKILL_INSTALL_OUTPUT with stdout/stderr for scan result display
|
|
486
488
|
install_plugin_via_vskill() {
|
|
@@ -519,17 +521,18 @@ install_plugin_via_vskill() {
|
|
|
519
521
|
fi
|
|
520
522
|
}
|
|
521
523
|
|
|
522
|
-
#
|
|
523
|
-
#
|
|
524
|
-
|
|
524
|
+
# Domain skill plugins in vskill marketplace (per-category plugins).
|
|
525
|
+
# Each is a standalone plugin: frontend@vskill, backend@vskill, etc.
|
|
526
|
+
# Skills are invoked as plugin:skill (e.g., frontend:nextjs, backend:dotnet).
|
|
527
|
+
VSKILL_REPO_PLUGINS="frontend backend testing mobile infra k8s payments ml kafka confluent cost docs security skills blockchain"
|
|
525
528
|
|
|
526
|
-
# Check if plugin is a vskill
|
|
529
|
+
# Check if plugin name is a vskill marketplace plugin
|
|
527
530
|
is_vskill_repo_plugin() {
|
|
528
531
|
local plugin="$1"
|
|
529
532
|
echo " $VSKILL_REPO_PLUGINS " | grep -q " $plugin "
|
|
530
533
|
}
|
|
531
534
|
|
|
532
|
-
# Install vskill
|
|
535
|
+
# Install vskill marketplace plugin via --repo flag.
|
|
533
536
|
# Args: $1=plugin name (e.g., "frontend")
|
|
534
537
|
install_vskill_repo_plugin() {
|
|
535
538
|
local plugin="$1"
|
|
@@ -555,7 +558,7 @@ install_vskill_repo_plugin() {
|
|
|
555
558
|
|
|
556
559
|
# Helper: Check if plugin is installed by reading installed_plugins.json (v1.0.175)
|
|
557
560
|
# This is the SOURCE OF TRUTH - more reliable than `claude plugin list` which can have timing issues.
|
|
558
|
-
# Args: $1=plugin name (e.g., "
|
|
561
|
+
# Args: $1=plugin name (e.g., "frontend"), $2=marketplace (e.g., "vskill")
|
|
559
562
|
# Returns: 0 if installed, 1 if not installed
|
|
560
563
|
check_plugin_installed_from_json() {
|
|
561
564
|
local plugin="$1"
|
|
@@ -571,7 +574,7 @@ check_plugin_installed_from_json() {
|
|
|
571
574
|
fi
|
|
572
575
|
|
|
573
576
|
# Check if plugin exists in registry
|
|
574
|
-
# Format: {"plugins": {"
|
|
577
|
+
# Format: {"plugins": {"frontend@vskill": [...], ...}}
|
|
575
578
|
local full_name="${plugin}@${marketplace}"
|
|
576
579
|
local has_plugin
|
|
577
580
|
has_plugin=$(jq -r --arg key "$full_name" '.plugins[$key] // null' "$registry_path" 2>/dev/null)
|
|
@@ -587,7 +590,7 @@ check_plugin_installed_from_json() {
|
|
|
587
590
|
# KEYWORD-BASED PLUGIN DETECTION REMOVED (v1.0.159)
|
|
588
591
|
# ==============================================================================
|
|
589
592
|
# Keyword fallback was removed because it was too aggressive.
|
|
590
|
-
# Example: "run tests" would install
|
|
593
|
+
# Example: "run tests" would install testing even for simple test runs.
|
|
591
594
|
#
|
|
592
595
|
# Plugin detection now happens ONLY via LLM analysis (specweave detect-intent).
|
|
593
596
|
# The LLM understands user INTENT - it only recommends plugins when user
|
|
@@ -1298,7 +1301,8 @@ if [[ "${SPECWEAVE_DISABLE_AUTO_LOAD:-0}" != "1" ]] && [[ "${SPECWEAVE_DISABLE_H
|
|
|
1298
1301
|
fi
|
|
1299
1302
|
fi
|
|
1300
1303
|
elif is_vskill_repo_plugin "$plugin"; then
|
|
1301
|
-
# ---- VSKILL
|
|
1304
|
+
# ---- VSKILL MARKETPLACE PLUGINS ----
|
|
1305
|
+
# Each category is a standalone plugin (frontend@vskill, backend@vskill, etc.)
|
|
1302
1306
|
if check_plugin_in_vskill_lock "$plugin"; then
|
|
1303
1307
|
[[ -n "$PLUGINS_ALREADY" ]] && PLUGINS_ALREADY="$PLUGINS_ALREADY, "
|
|
1304
1308
|
PLUGINS_ALREADY="${PLUGINS_ALREADY}${plugin}"
|
|
@@ -1609,7 +1613,8 @@ After increment, chain domain skills per tech stack (see CLAUDE.md Skill Chainin
|
|
|
1609
1613
|
PRIMARY_PLUGIN=$(echo "$JSON_OUTPUT" | jq -r '.routing.skills[] | select(.priority == "primary") | .plugin // empty' 2>/dev/null | head -1)
|
|
1610
1614
|
PRIMARY_SKILL_NAME=$(echo "$JSON_OUTPUT" | jq -r '.routing.skills[] | select(.priority == "primary") | .name // empty' 2>/dev/null | head -1)
|
|
1611
1615
|
BRAIN_MSG+="Primary skill: ${PRIMARY_SKILL}"
|
|
1612
|
-
|
|
1616
|
+
# v2.1.0: Use plugin:skill format for agent type (e.g., frontend:nextjs)
|
|
1617
|
+
[[ -n "$PRIMARY_PLUGIN" && -n "$PRIMARY_SKILL_NAME" ]] && BRAIN_MSG+=" (agent: ${PRIMARY_PLUGIN}:${PRIMARY_SKILL_NAME})"
|
|
1613
1618
|
BRAIN_MSG+=", invoke: ${PRIMARY_INVOKE:-after_increment}. "
|
|
1614
1619
|
[[ -n "$SECONDARY_SKILLS" ]] && BRAIN_MSG+="Also: ${SECONDARY_SKILLS}. "
|
|
1615
1620
|
fi
|
|
@@ -200,9 +200,9 @@ fi
|
|
|
200
200
|
#
|
|
201
201
|
# Plugin auto-loading now happens ONLY in user-prompt-submit.sh via LLM detection.
|
|
202
202
|
# When user submits a prompt like "Build React dashboard", the LLM analyzes
|
|
203
|
-
# the request and installs relevant plugins (
|
|
203
|
+
# the request and installs relevant plugins (frontend, backend, etc.)
|
|
204
204
|
#
|
|
205
|
-
# To install plugins manually: vskill install
|
|
205
|
+
# To install plugins manually: vskill install --repo anton-abyzov/vskill --plugin frontend
|
|
206
206
|
|
|
207
207
|
# === LEGACY STATE CLEANUP (v1.0.148) ===
|
|
208
208
|
# Clean up old processor state files on session start
|
|
@@ -51,7 +51,7 @@ When a service exposes 50+ API endpoints to AI agents, avoid exposing each as a
|
|
|
51
51
|
## Delegation
|
|
52
52
|
|
|
53
53
|
After architecture is ready, delegate to domain skills:
|
|
54
|
-
- Frontend: `
|
|
55
|
-
- Backend: `
|
|
54
|
+
- Frontend: `frontend:architect`
|
|
55
|
+
- Backend: `backend:*` (dotnet, nodejs, python, go, java-spring, rust)
|
|
56
56
|
|
|
57
57
|
Output: `plan.md` with architecture decisions and component breakdown.
|
|
@@ -43,8 +43,8 @@ Build features end-to-end with a shared-types-first contract approach. Agent 1 e
|
|
|
43
43
|
| # | Role | Skill(s) | Owns | Responsibility |
|
|
44
44
|
|---|------|----------|------|----------------|
|
|
45
45
|
| 1 | Shared/Types | `sw:architect` | `src/types/`, `src/utils/`, `src/shared/` | Define TypeScript interfaces, shared validators, utility functions, and API contracts |
|
|
46
|
-
| 2 | Backend | `sw:architect` + `
|
|
47
|
-
| 3 | Frontend | `
|
|
46
|
+
| 2 | Backend | `sw:architect` + `infra:devops` | `src/api/`, `src/services/` | Implement API endpoints, service layer, database queries, and infrastructure config |
|
|
47
|
+
| 3 | Frontend | `frontend:architect` | `src/components/`, `src/pages/` | Build UI components, pages, state management, and client-side logic |
|
|
48
48
|
|
|
49
49
|
#### Execution Chain
|
|
50
50
|
|
|
@@ -133,15 +133,15 @@ This spawns three parallel reviewers:
|
|
|
133
133
|
|
|
134
134
|
Generate comprehensive test coverage across all test levels simultaneously. Each agent focuses on a different testing layer and operates independently.
|
|
135
135
|
|
|
136
|
-
> **Note:** `
|
|
136
|
+
> **Note:** `testing:qa` is the primary orchestration skill for testing workflows. This preset splits its responsibilities into specialized agents for parallel execution.
|
|
137
137
|
|
|
138
138
|
#### Agent Composition
|
|
139
139
|
|
|
140
140
|
| # | Role | Skill(s) | Owns | Responsibility |
|
|
141
141
|
|---|------|----------|------|----------------|
|
|
142
|
-
| 1 | Unit | `
|
|
143
|
-
| 2 | E2E | `
|
|
144
|
-
| 3 | Coverage | `
|
|
142
|
+
| 1 | Unit | `testing:unit` | `tests/unit/` | Write unit tests for individual functions, classes, and modules with proper mocking |
|
|
143
|
+
| 2 | E2E | `testing:e2e` | `tests/e2e/` | Write end-to-end tests for user flows, API sequences, and cross-service interactions |
|
|
144
|
+
| 3 | Coverage | `testing:qa` | `tests/` (analysis scope) | Analyze coverage gaps, generate missing test cases, ensure threshold compliance |
|
|
145
145
|
|
|
146
146
|
#### Execution Chain
|
|
147
147
|
|
|
@@ -243,7 +243,7 @@ Migrate data schemas safely with a schema-first approach. The schema agent defin
|
|
|
243
243
|
|---|------|----------|------|----------------|
|
|
244
244
|
| 1 | Schema | `sw:architect` | `src/types/`, `migrations/`, `prisma/`, `drizzle/` | Define new schema, write migration scripts, update type definitions, ensure backward compatibility |
|
|
245
245
|
| 2 | Backend | `sw:architect` | `src/api/`, `src/services/` | Update API endpoints, service logic, queries, and serializers to work with new schema |
|
|
246
|
-
| 3 | Frontend | `
|
|
246
|
+
| 3 | Frontend | `frontend:architect` | `src/components/`, `src/pages/` | Update UI components, forms, and state to reflect schema changes |
|
|
247
247
|
|
|
248
248
|
#### Execution Chain
|
|
249
249
|
|
|
@@ -39,15 +39,15 @@ Analyze the feature request and map affected domains to SpecWeave skills.
|
|
|
39
39
|
|
|
40
40
|
| Domain | Primary Skill | Additional Skills | When to Use |
|
|
41
41
|
|--------|--------------|-------------------|-------------|
|
|
42
|
-
| **Frontend** | `
|
|
43
|
-
| **Backend** | `sw:architect` | `
|
|
42
|
+
| **Frontend** | `frontend:architect` | `frontend:nextjs`, `frontend:design` | UI components, pages, client-side state |
|
|
43
|
+
| **Backend** | `sw:architect` | `infra:devops` | API endpoints, services, business logic |
|
|
44
44
|
| **Database** | `sw:architect` | | Schema design, migrations, seed data |
|
|
45
45
|
| **Shared/Types** | `sw:architect` | `sw:code-simplifier` | TypeScript interfaces, shared constants, API contracts |
|
|
46
|
-
| **Testing** | `
|
|
47
|
-
| **Security** | `sw:security` | `
|
|
48
|
-
| **DevOps** | `
|
|
49
|
-
| **Mobile** | `
|
|
50
|
-
| **ML** | `
|
|
46
|
+
| **Testing** | `testing:qa` | `testing:e2e`, `testing:unit` | Test strategy, E2E suites, integration tests |
|
|
47
|
+
| **Security** | `sw:security` | `security:patterns` | Auth, authorization, threat modeling, OWASP |
|
|
48
|
+
| **DevOps** | `infra:devops` | `k8s:deployment-generate`, `infra:observability` | CI/CD, Docker, K8s, monitoring |
|
|
49
|
+
| **Mobile** | `mobile:react-native` | `mobile:screen-generate`, `mobile:expo` | Native/cross-platform mobile apps |
|
|
50
|
+
| **ML** | `ml:engineer` | `ml:pipeline`, `ml:deploy` | Model training, inference pipelines, deployment |
|
|
51
51
|
|
|
52
52
|
### Auto-Detection Signals
|
|
53
53
|
|
|
@@ -276,9 +276,9 @@ Each agent receives a detailed prompt that includes its skill invocations, file
|
|
|
276
276
|
You are the FRONTEND agent for increment [INCREMENT_ID].
|
|
277
277
|
|
|
278
278
|
SKILLS TO INVOKE:
|
|
279
|
-
Skill({ skill: "
|
|
280
|
-
Skill({ skill: "
|
|
281
|
-
Skill({ skill: "
|
|
279
|
+
Skill({ skill: "frontend:architect" })
|
|
280
|
+
Skill({ skill: "frontend:nextjs" }) // if Next.js project
|
|
281
|
+
Skill({ skill: "frontend:design" }) // for polished, world-class UI
|
|
282
282
|
Skill({ skill: "sw:service-connect" }) // for external service setup
|
|
283
283
|
|
|
284
284
|
FILE OWNERSHIP (WRITE access):
|
|
@@ -296,7 +296,7 @@ DESIGN QUALITY:
|
|
|
296
296
|
- Default to world-class, sleek, polished, production-ready design
|
|
297
297
|
- All UI must be responsive (mobile-first) and accessible (WCAG 2.1 AA)
|
|
298
298
|
- Use modern design patterns: clean spacing, typography hierarchy, subtle animations
|
|
299
|
-
- Invoke `
|
|
299
|
+
- Invoke `frontend:design` for high-quality UI polish
|
|
300
300
|
|
|
301
301
|
WORKFLOW:
|
|
302
302
|
1. Set working directory to your assigned repo: cd repositories/{ORG}/{repo-name}
|
|
@@ -337,7 +337,7 @@ You are the BACKEND agent for increment [INCREMENT_ID].
|
|
|
337
337
|
|
|
338
338
|
SKILLS TO INVOKE:
|
|
339
339
|
Skill({ skill: "sw:architect" })
|
|
340
|
-
Skill({ skill: "
|
|
340
|
+
Skill({ skill: "infra:devops" }) // if deployment config needed
|
|
341
341
|
Skill({ skill: "sw:service-connect" }) // for auth provider and external service setup
|
|
342
342
|
|
|
343
343
|
FILE OWNERSHIP (WRITE access):
|
|
@@ -445,9 +445,9 @@ RULES:
|
|
|
445
445
|
You are the TESTING agent for increment [INCREMENT_ID].
|
|
446
446
|
|
|
447
447
|
SKILLS TO INVOKE:
|
|
448
|
-
Skill({ skill: "
|
|
449
|
-
Skill({ skill: "
|
|
450
|
-
Skill({ skill: "
|
|
448
|
+
Skill({ skill: "testing:qa" })
|
|
449
|
+
Skill({ skill: "testing:e2e" }) // for E2E test suites
|
|
450
|
+
Skill({ skill: "testing:unit" }) // for unit test coverage
|
|
451
451
|
|
|
452
452
|
FILE OWNERSHIP (WRITE access):
|
|
453
453
|
tests/**
|
|
@@ -767,8 +767,8 @@ Phase 1 (upstream):
|
|
|
767
767
|
2. database -> sw:architect | Increment: 0201-checkout-database
|
|
768
768
|
|
|
769
769
|
Phase 2 (downstream, parallel):
|
|
770
|
-
3. backend -> sw:architect,
|
|
771
|
-
4. frontend ->
|
|
770
|
+
3. backend -> sw:architect, infra:devops | Increment: 0202-checkout-backend
|
|
771
|
+
4. frontend -> frontend:architect | Increment: 0203-checkout-frontend
|
|
772
772
|
|
|
773
773
|
Max agents: 4 (2 sequential + 2 parallel)
|
|
774
774
|
To execute, run without --dry-run.
|
|
@@ -51,7 +51,7 @@ if [ ! -d ".specweave/cache/docs-site/node_modules" ]; then
|
|
|
51
51
|
fi
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
If not set up, follow the same setup steps as `/
|
|
54
|
+
If not set up, follow the same setup steps as `/docs:view` (Step 3 in view.md).
|
|
55
55
|
|
|
56
56
|
### Step 3: Run Build
|
|
57
57
|
|
|
@@ -131,9 +131,9 @@ git commit -m "docs: update documentation site"
|
|
|
131
131
|
### Build fails with broken links
|
|
132
132
|
```bash
|
|
133
133
|
# View docs first to find errors
|
|
134
|
-
/
|
|
134
|
+
/docs:view
|
|
135
135
|
# Fix broken links, then build
|
|
136
|
-
/
|
|
136
|
+
/docs:build
|
|
137
137
|
```
|
|
138
138
|
|
|
139
139
|
### Out of memory
|
|
@@ -149,11 +149,11 @@ cd .specweave/cache/docs-site && npm run clear && npm run build
|
|
|
149
149
|
### Reinstall from scratch
|
|
150
150
|
```bash
|
|
151
151
|
rm -rf .specweave/cache/docs-site
|
|
152
|
-
/
|
|
152
|
+
/docs:build
|
|
153
153
|
```
|
|
154
154
|
|
|
155
155
|
## See Also
|
|
156
156
|
|
|
157
|
-
- `/
|
|
158
|
-
- `/
|
|
159
|
-
- `/
|
|
157
|
+
- `/docs:view` - View docs locally with hot reload
|
|
158
|
+
- `/docs:organize` - Organize large folders with themed indexes
|
|
159
|
+
- `/docs:health` - Documentation health report
|