specweave 0.3.13 → 0.4.1

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.
Files changed (168) hide show
  1. package/CLAUDE.md +506 -17
  2. package/README.md +100 -58
  3. package/bin/install-all.sh +9 -2
  4. package/bin/install-hooks.sh +57 -0
  5. package/bin/specweave.js +16 -0
  6. package/dist/adapters/adapter-base.d.ts +21 -0
  7. package/dist/adapters/adapter-base.d.ts.map +1 -1
  8. package/dist/adapters/adapter-base.js +28 -0
  9. package/dist/adapters/adapter-base.js.map +1 -1
  10. package/dist/adapters/adapter-interface.d.ts +41 -0
  11. package/dist/adapters/adapter-interface.d.ts.map +1 -1
  12. package/dist/adapters/claude/adapter.d.ts +36 -0
  13. package/dist/adapters/claude/adapter.d.ts.map +1 -1
  14. package/dist/adapters/claude/adapter.js +135 -0
  15. package/dist/adapters/claude/adapter.js.map +1 -1
  16. package/dist/adapters/copilot/adapter.d.ts +25 -0
  17. package/dist/adapters/copilot/adapter.d.ts.map +1 -1
  18. package/dist/adapters/copilot/adapter.js +112 -0
  19. package/dist/adapters/copilot/adapter.js.map +1 -1
  20. package/dist/adapters/cursor/adapter.d.ts +36 -0
  21. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  22. package/dist/adapters/cursor/adapter.js +140 -0
  23. package/dist/adapters/cursor/adapter.js.map +1 -1
  24. package/dist/adapters/generic/adapter.d.ts +25 -0
  25. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  26. package/dist/adapters/generic/adapter.js +111 -0
  27. package/dist/adapters/generic/adapter.js.map +1 -1
  28. package/dist/cli/commands/init.d.ts.map +1 -1
  29. package/dist/cli/commands/init.js +103 -1
  30. package/dist/cli/commands/init.js.map +1 -1
  31. package/dist/cli/commands/plugin.d.ts +37 -0
  32. package/dist/cli/commands/plugin.d.ts.map +1 -0
  33. package/dist/cli/commands/plugin.js +296 -0
  34. package/dist/cli/commands/plugin.js.map +1 -0
  35. package/dist/core/agent-model-manager.d.ts +52 -0
  36. package/dist/core/agent-model-manager.d.ts.map +1 -0
  37. package/dist/core/agent-model-manager.js +120 -0
  38. package/dist/core/agent-model-manager.js.map +1 -0
  39. package/dist/core/cost-tracker.d.ts +108 -0
  40. package/dist/core/cost-tracker.d.ts.map +1 -0
  41. package/dist/core/cost-tracker.js +281 -0
  42. package/dist/core/cost-tracker.js.map +1 -0
  43. package/dist/core/model-selector.d.ts +57 -0
  44. package/dist/core/model-selector.d.ts.map +1 -0
  45. package/dist/core/model-selector.js +115 -0
  46. package/dist/core/model-selector.js.map +1 -0
  47. package/dist/core/phase-detector.d.ts +62 -0
  48. package/dist/core/phase-detector.d.ts.map +1 -0
  49. package/dist/core/phase-detector.js +229 -0
  50. package/dist/core/phase-detector.js.map +1 -0
  51. package/dist/core/plugin-detector.d.ts +96 -0
  52. package/dist/core/plugin-detector.d.ts.map +1 -0
  53. package/dist/core/plugin-detector.js +349 -0
  54. package/dist/core/plugin-detector.js.map +1 -0
  55. package/dist/core/plugin-loader.d.ts +111 -0
  56. package/dist/core/plugin-loader.d.ts.map +1 -0
  57. package/dist/core/plugin-loader.js +319 -0
  58. package/dist/core/plugin-loader.js.map +1 -0
  59. package/dist/core/plugin-manager.d.ts +144 -0
  60. package/dist/core/plugin-manager.d.ts.map +1 -0
  61. package/dist/core/plugin-manager.js +393 -0
  62. package/dist/core/plugin-manager.js.map +1 -0
  63. package/dist/core/schemas/plugin-manifest.schema.json +253 -0
  64. package/dist/core/types/plugin.d.ts +252 -0
  65. package/dist/core/types/plugin.d.ts.map +1 -0
  66. package/dist/core/types/plugin.js +48 -0
  67. package/dist/core/types/plugin.js.map +1 -0
  68. package/dist/integrations/jira/jira-mapper.d.ts +2 -2
  69. package/dist/integrations/jira/jira-mapper.js +2 -2
  70. package/dist/types/cost-tracking.d.ts +43 -0
  71. package/dist/types/cost-tracking.d.ts.map +1 -0
  72. package/dist/types/cost-tracking.js +8 -0
  73. package/dist/types/cost-tracking.js.map +1 -0
  74. package/dist/types/model-selection.d.ts +53 -0
  75. package/dist/types/model-selection.d.ts.map +1 -0
  76. package/dist/types/model-selection.js +12 -0
  77. package/dist/types/model-selection.js.map +1 -0
  78. package/dist/utils/cost-reporter.d.ts +58 -0
  79. package/dist/utils/cost-reporter.d.ts.map +1 -0
  80. package/dist/utils/cost-reporter.js +224 -0
  81. package/dist/utils/cost-reporter.js.map +1 -0
  82. package/dist/utils/pricing-constants.d.ts +70 -0
  83. package/dist/utils/pricing-constants.d.ts.map +1 -0
  84. package/dist/utils/pricing-constants.js +71 -0
  85. package/dist/utils/pricing-constants.js.map +1 -0
  86. package/package.json +13 -9
  87. package/src/adapters/adapter-base.ts +33 -0
  88. package/src/adapters/adapter-interface.ts +46 -0
  89. package/src/adapters/claude/adapter.ts +164 -0
  90. package/src/adapters/copilot/adapter.ts +138 -0
  91. package/src/adapters/cursor/adapter.ts +170 -0
  92. package/src/adapters/generic/adapter.ts +137 -0
  93. package/src/agents/architect/AGENT.md +3 -0
  94. package/src/agents/code-reviewer.md +156 -0
  95. package/src/agents/data-scientist/AGENT.md +181 -0
  96. package/src/agents/database-optimizer/AGENT.md +147 -0
  97. package/src/agents/devops/AGENT.md +3 -0
  98. package/src/agents/diagrams-architect/AGENT.md +3 -0
  99. package/src/agents/docs-writer/AGENT.md +3 -0
  100. package/src/agents/kubernetes-architect/AGENT.md +142 -0
  101. package/src/agents/ml-engineer/AGENT.md +150 -0
  102. package/src/agents/mlops-engineer/AGENT.md +201 -0
  103. package/src/agents/network-engineer/AGENT.md +149 -0
  104. package/src/agents/observability-engineer/AGENT.md +213 -0
  105. package/src/agents/payment-integration/AGENT.md +35 -0
  106. package/src/agents/performance/AGENT.md +3 -0
  107. package/src/agents/performance-engineer/AGENT.md +153 -0
  108. package/src/agents/pm/AGENT.md +3 -0
  109. package/src/agents/qa-lead/AGENT.md +3 -0
  110. package/src/agents/security/AGENT.md +3 -0
  111. package/src/agents/sre/AGENT.md +3 -0
  112. package/src/agents/tdd-orchestrator/AGENT.md +169 -0
  113. package/src/agents/tech-lead/AGENT.md +3 -0
  114. package/src/commands/specweave.costs.md +261 -0
  115. package/src/commands/specweave.increment.md +48 -4
  116. package/src/commands/specweave.ml-pipeline.md +292 -0
  117. package/src/commands/specweave.monitor-setup.md +501 -0
  118. package/src/commands/specweave.slo-implement.md +1055 -0
  119. package/src/commands/specweave.sync-github.md +1 -1
  120. package/src/commands/specweave.tdd-cycle.md +199 -0
  121. package/src/commands/specweave.tdd-green.md +842 -0
  122. package/src/commands/specweave.tdd-red.md +135 -0
  123. package/src/commands/specweave.tdd-refactor.md +165 -0
  124. package/src/hooks/post-increment-plugin-detect.sh +142 -0
  125. package/src/hooks/post-task-completion.sh +53 -11
  126. package/src/hooks/pre-task-plugin-detect.sh +96 -0
  127. package/src/skills/SKILLS-INDEX.md +18 -10
  128. package/src/skills/billing-automation/SKILL.md +559 -0
  129. package/src/skills/distributed-tracing/SKILL.md +438 -0
  130. package/src/skills/e2e-playwright/README.md +1 -1
  131. package/src/skills/e2e-playwright/package.json +1 -1
  132. package/src/skills/gitops-workflow/SKILL.md +285 -0
  133. package/src/skills/gitops-workflow/references/argocd-setup.md +134 -0
  134. package/src/skills/gitops-workflow/references/sync-policies.md +131 -0
  135. package/src/skills/grafana-dashboards/SKILL.md +369 -0
  136. package/src/skills/helm-chart-scaffolding/SKILL.md +544 -0
  137. package/src/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
  138. package/src/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
  139. package/src/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
  140. package/src/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
  141. package/src/skills/k8s-manifest-generator/SKILL.md +511 -0
  142. package/src/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
  143. package/src/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
  144. package/src/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
  145. package/src/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
  146. package/src/skills/k8s-manifest-generator/references/service-spec.md +724 -0
  147. package/src/skills/k8s-security-policies/SKILL.md +334 -0
  148. package/src/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
  149. package/src/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
  150. package/src/skills/ml-pipeline-workflow/SKILL.md +245 -0
  151. package/src/skills/paypal-integration/SKILL.md +467 -0
  152. package/src/skills/pci-compliance/SKILL.md +466 -0
  153. package/src/skills/prometheus-configuration/SKILL.md +392 -0
  154. package/src/skills/slo-implementation/SKILL.md +329 -0
  155. package/src/skills/stripe-integration/SKILL.md +442 -0
  156. package/src/skills/tdd-workflow/SKILL.md +378 -0
  157. package/src/templates/README.md.template +1 -1
  158. package/src/skills/bmad-method-expert/SKILL.md +0 -626
  159. package/src/skills/bmad-method-expert/scripts/analyze-project.js +0 -318
  160. package/src/skills/bmad-method-expert/scripts/check-setup.js +0 -208
  161. package/src/skills/bmad-method-expert/scripts/generate-template.js +0 -1149
  162. package/src/skills/bmad-method-expert/scripts/validate-documents.js +0 -340
  163. package/src/skills/context-optimizer/SKILL.md +0 -588
  164. package/src/skills/figma-designer/SKILL.md +0 -149
  165. package/src/skills/figma-implementer/SKILL.md +0 -148
  166. package/src/skills/figma-mcp-connector/SKILL.md +0 -136
  167. package/src/skills/figma-to-code/SKILL.md +0 -128
  168. package/src/skills/spec-kit-expert/SKILL.md +0 -1010
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > **Spec-Driven Development Framework** - Where specifications and documentation are the source of truth
4
4
 
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
- [![Version](https://img.shields.io/badge/version-0.3.8-blue.svg)](https://github.com/anton-abyzov/specweave/releases/tag/v0.3.8)
6
+ [![Version](https://img.shields.io/badge/version-0.4.0-blue.svg)](https://github.com/anton-abyzov/specweave/releases/tag/v0.4.0)
7
7
  [![Status](https://img.shields.io/badge/status-beta-blue.svg)]()
8
8
  [![Website](https://img.shields.io/badge/website-spec--weave.com-green.svg)](https://spec-weave.com)
9
9
 
@@ -30,15 +30,19 @@
30
30
 
31
31
  - 🤖 **Autonomous & Smart** - Just works! Agents ask clarifying questions, review output, validate quality—minimal interaction required
32
32
  - ⚡ **Seamless Workflow** - Auto-resume, auto-close, progress tracking—natural flow without overhead
33
- - 🎯 **10 Agents + 35+ Skills** - PM, Architect, DevOps, QA, Security work in parallel (minimizes context usage). Easily extensible!
34
- - 🔍 **Progressive Disclosure** (NEW) - Skills indexed for 90% token savings. SKILLS-INDEX.md provides single-file discovery across ALL AI tools!
33
+ - 🔌 **Plugin Architecture** (NEW in v0.4.0) - Modular design with 75%+ context reduction! Core framework (12K tokens) + opt-in plugins only when needed
34
+ - Core: 3 agents + 8 skills (always loaded)
35
+ - Plugins: GitHub sync, tech stacks, domain expertise (load on demand)
36
+ - **Context efficiency**: 50K → 12K tokens for basic projects!
37
+ - 🎯 **Extensible & Scalable** - 10+ agents and 40+ skills via plugins. PM, Architect, DevOps, QA, Security work in parallel
35
38
  - 🔧 **Universal Support** - Works with Claude Code (default), Cursor, Gemini CLI, Codex, Copilot, and ANY AI tool (100% market coverage)
36
- - **Claude Code** (default): Native agents/skills pre-installed in `.claude/` - best experience!
37
- - **Other tools**: Progressive disclosure via SKILLS-INDEX.md and AGENTS.md - full skill access!
39
+ - **Claude Code** (default): Native plugin support with auto-activation - best experience!
40
+ - **Cursor/Copilot**: Plugin compilation to AGENTS.md - semi-automation
41
+ - **Other tools**: AGENTS.md for manual workflows - full capability access!
38
42
  - 🧪 **Complete Test Coverage** - 4-level strategy from specs to integration tests (APIs, UIs, CLIs, libraries)
39
43
  - 📚 **Living Documentation** - Specs auto-update after every operation and test—always in sync with code
40
44
  - 🎨 **Visual Architecture** - C4 Model diagrams (Context, Container, Component)
41
- - 🔄 **Tool Integration** - Sync with JIRA, Azure DevOps, GitHub
45
+ - 🔄 **Tool Integration** - GitHub, JIRA, Azure DevOps sync (via plugins)
42
46
  - 🏢 **Brownfield Excellence** - The hardest problem solved: merge with existing docs, create complex architecture (ADRs, HLDs, RFCs), maintain living documentation, safe regression prevention
43
47
  - 🌐 **Framework Agnostic** - Works with TypeScript, Python, Go, Rust, Java, C#—any tech stack
44
48
 
@@ -83,7 +87,7 @@ cd my-saas
83
87
 
84
88
  ```bash
85
89
  # Clone repository
86
- git clone https://github.com/specweave/specweave.git
90
+ git clone https://github.com/anton-abyzov/specweave.git
87
91
  cd specweave
88
92
 
89
93
  # Install dependencies and build
@@ -107,8 +111,9 @@ specweave --help # Show help
107
111
  ```
108
112
 
109
113
  **Note**:
110
- - **Claude Code**: All 10 agents and 35+ skills installed natively in `.claude/` - ready to use immediately!
114
+ - **Claude Code**: Core framework (3 agents + 8 skills) installed natively in `.claude/` + plugins auto-detected and suggested!
111
115
  - **Other tools**: Universal AGENTS.md adapter generated - works with Cursor, Gemini CLI, Codex, Copilot, and ANY AI!
116
+ - **Plugins**: Auto-detected based on your project (GitHub, tech stacks, domain expertise) - enable as needed!
112
117
 
113
118
  ---
114
119
 
@@ -121,10 +126,11 @@ specweave --help # Show help
121
126
  npx specweave init my-app
122
127
  cd my-app
123
128
 
124
- # For Claude Code - everything native and ready immediately:
125
- # ✅ 10 agents in .claude/agents/
126
- # ✅ 35+ skills in .claude/skills/
127
- # ✅ 10 slash commands in .claude/commands/
129
+ # For Claude Code - core framework native and ready immediately:
130
+ # ✅ 3 core agents in .claude/agents/ (PM, Architect, Tech Lead)
131
+ # ✅ 8 core skills in .claude/skills/ (increment lifecycle, living docs)
132
+ # ✅ 7 slash commands in .claude/commands/
133
+ # ✅ Plugins auto-detected and suggested based on project
128
134
  # (Other tools get AGENTS.md adapter instead)
129
135
 
130
136
  # Open Claude Code and use slash commands:
@@ -163,10 +169,11 @@ User: /specweave done 0001 # Close increment with slash command
163
169
 
164
170
  **How it works** (smart append-only workflow: 0001 → 0002 → 0003):
165
171
  1. `specweave init` → Detects your AI tool and configures appropriately
166
- - **Claude Code**: Native components installed (10 agents + 35+ skills)
167
- - **Other tools**: Universal AGENTS.md adapter generated
172
+ - **Claude Code**: Core framework installed + plugins auto-detected and suggested
173
+ - **Other tools**: Universal AGENTS.md adapter generated with enabled plugins
168
174
  2. **Use `/specweave inc "feature"`** (Claude) or "Read AGENTS.md and create increment" (other tools)
169
175
  - PM creates specs + plan + auto-generates tasks
176
+ - **Smart**: Auto-detects needed plugins from feature description
170
177
  - **Smart**: Auto-closes previous increment if PM gates pass
171
178
  3. **Use `/specweave do` or `/specweave do 0001`** → Execute implementation (hooks after EVERY task in Claude)
172
179
  - **Smart**: Auto-resumes from next incomplete task
@@ -183,70 +190,105 @@ User: /specweave done 0001 # Close increment with slash command
183
190
 
184
191
  ---
185
192
 
186
- ## 🤖 Agents (10 Total)
193
+ ## 🤖 Agents
194
+
195
+ SpecWeave uses a **modular agent system** - core agents (always available) + plugin agents (opt-in):
187
196
 
188
- SpecWeave includes **10 specialized AI agents** that work with slash commands and during implementation:
197
+ ### Core Agents (Always Available)
189
198
 
190
199
  | Agent | Role | When It Activates |
191
200
  |-------|------|-------------------|
192
201
  | **pm** | Product Manager - requirements, user stories | Planning features, creating increments |
193
202
  | **architect** | System Architect - design, ADRs, decisions | Technical design, architecture |
194
- | **security** | Security Engineer - threat modeling, OWASP | Security review, vulnerability assessment |
195
- | **qa-lead** | QA Lead - test strategy, quality gates | Testing, quality assurance |
196
- | **devops** | DevOps Engineer - CI/CD, infrastructure | Deployment, infrastructure needs |
197
203
  | **tech-lead** | Technical Lead - code review, best practices | Code review, refactoring |
198
- | **sre** | SRE - incident response, monitoring | Production incidents, troubleshooting |
199
- | **docs-writer** | Technical Writer - documentation | Writing docs, API documentation |
200
- | **performance** | Performance Engineer - optimization | Performance issues, profiling |
201
- | **diagrams-architect** | Diagram Expert - C4 Model, Mermaid | Creating diagrams (via diagrams-generator skill) |
204
+
205
+ ### Plugin Agents (Available via Plugins)
206
+
207
+ | Agent | Plugin | Role | When It Activates |
208
+ |-------|--------|------|-------------------|
209
+ | **github-manager** | specweave-github | GitHub CLI specialist | GitHub operations, issue sync |
210
+ | **security** | specweave-security | Security Engineer - threat modeling | Security review, vulnerabilities |
211
+ | **qa-lead** | specweave-qa | QA Lead - test strategy | Testing, quality assurance |
212
+ | **devops** | specweave-kubernetes | DevOps Engineer - K8s, infrastructure | Deployment, infrastructure |
213
+ | **sre** | specweave-observability | SRE - incident response, monitoring | Production incidents |
214
+ | **docs-writer** | specweave-docs | Technical Writer - documentation | Writing docs, API docs |
215
+ | **performance** | specweave-performance | Performance Engineer - optimization | Performance issues |
216
+ | **diagrams-architect** | specweave-diagrams | Diagram Expert - C4 Model, Mermaid | Creating diagrams |
202
217
 
203
218
  **Agent Access**:
204
- - **Claude Code**: All agents pre-installed natively in `.claude/agents/` - ready to use immediately!
205
- - **Other tools**: Agents documented in universal AGENTS.md - reference roles manually
219
+ - **Claude Code**: Core agents pre-installed in `.claude/agents/`, plugin agents load on demand!
220
+ - **Other tools**: Agents compiled to AGENTS.md - reference roles manually
206
221
 
207
222
  ---
208
223
 
209
- ## 🎯 Skills (35+ Total)
224
+ ## 🎯 Skills
225
+
226
+ SpecWeave uses a **modular skill system** - core skills (always available) + plugin skills (opt-in):
210
227
 
211
- SpecWeave includes **35+ AI skills** that work with slash commands:
228
+ ### Core Skills (Always Available)
212
229
 
213
- ### Core Framework Skills
214
- - **specweave-detector** - Slash command documentation
230
+ **Increment Lifecycle:**
215
231
  - **increment-planner** - Plan features via `/specweave inc` command
216
- - **skill-router** - Route requests to appropriate skills
217
- - **context-loader** - Load relevant specifications
218
- - **role-orchestrator** - Coordinate multiple agents
219
-
220
- ### Technology Stack Skills
221
- - **nextjs** - Next.js App Router, Server Components
222
- - **nodejs-backend** - Node.js, Express, NestJS APIs
223
- - **python-backend** - FastAPI, Django APIs
224
- - **dotnet-backend** - ASP.NET Core APIs
225
- - **frontend** - React, Vue, Angular components
226
-
227
- ### Integration Skills
228
- - **jira-sync** - Sync with JIRA issues
229
- - **ado-sync** - Sync with Azure DevOps
230
- - **github-sync** - Sync with GitHub issues
231
-
232
- ### Design & Diagram Skills
233
- - **diagrams-generator** - Generate C4 diagrams
234
- - **figma-designer** - Create Figma designs
235
- - **figma-implementer** - Convert Figma to code
236
-
237
- ### Infrastructure Skills
238
- - **hetzner-provisioner** - Deploy to Hetzner Cloud
239
- - **cost-optimizer** - Optimize cloud costs
240
-
241
- ### Brownfield Skills
232
+ - **rfc-generator** - Generate RFCs and technical proposals
233
+ - **context-loader** - Explains progressive disclosure and context efficiency
234
+ - **context-optimizer** - Second-pass context optimization (80%+ token reduction)
235
+
236
+ **Project Management:**
237
+ - **project-kickstarter** - Initialize new projects from descriptions
238
+ - **increment-quality-judge** - AI-powered quality assessment
239
+
240
+ **Brownfield Support:**
242
241
  - **brownfield-analyzer** - Analyze existing codebases
243
242
  - **brownfield-onboarder** - Merge existing documentation
244
243
 
245
- **And many more!**
244
+ ### Plugin Skills (40+ Available via Plugins)
245
+
246
+ **GitHub Integration (specweave-github):**
247
+ - **github-sync** - Bidirectional increment ↔ issue sync
248
+ - **github-issue-tracker** - Task-level progress tracking
249
+
250
+ **Technology Stacks:**
251
+ - **nextjs** - Next.js App Router, Server Components (specweave-frontend-stack)
252
+ - **nodejs-backend** - Node.js, Express, NestJS APIs (specweave-backend-stack)
253
+ - **python-backend** - FastAPI, Django APIs (specweave-backend-stack)
254
+ - **dotnet-backend** - ASP.NET Core APIs (specweave-backend-stack)
255
+ - **frontend** - React, Vue, Angular components (specweave-frontend-stack)
256
+
257
+ **Infrastructure:**
258
+ - **hetzner-provisioner** - Deploy to Hetzner Cloud (specweave-cloud)
259
+ - **cost-optimizer** - Optimize cloud costs (specweave-cloud)
260
+ - **k8s-deployer** - Kubernetes deployment (specweave-kubernetes)
261
+
262
+ **Integrations:**
263
+ - **jira-sync** - Sync with JIRA issues (specweave-jira)
264
+ - **ado-sync** - Sync with Azure DevOps (specweave-ado)
265
+
266
+ **Design & Diagrams:**
267
+ - **diagrams-generator** - Generate C4 diagrams (specweave-diagrams)
268
+ - **figma-designer** - Create Figma designs (specweave-figma)
269
+ - **figma-implementer** - Convert Figma to code (specweave-figma)
270
+
271
+ **And 30+ more specialized skills!**
272
+
273
+ ### 🔌 Plugin System (NEW in v0.4.0)
274
+
275
+ SpecWeave v0.4.0 introduces **intelligent plugin detection**:
276
+
277
+ 1. **Auto-Detection** - Plugins suggested based on:
278
+ - Package.json dependencies (React → frontend-stack)
279
+ - Directory structure (kubernetes/ → kubernetes)
280
+ - Git remote (github.com → github)
281
+ - Environment variables (GITHUB_TOKEN → github)
246
282
 
247
- ### 🔍 Progressive Disclosure (NEW in v0.3.8)
283
+ 2. **Context Efficiency** - Load only what you need:
284
+ - Basic project: **12K tokens** (core only)
285
+ - React app: **16K tokens** (core + frontend-stack + github)
286
+ - Backend API: **15K tokens** (core + backend-stack + github)
248
287
 
249
- SpecWeave now includes **SKILLS-INDEX.md** - a single-file reference for all 35+ skills with activation keywords and usage examples.
288
+ 3. **Multi-Tool Support** - Works across all platforms:
289
+ - **Claude Code**: Native plugin loading
290
+ - **Cursor/Copilot**: AGENTS.md compilation
291
+ - **Generic**: Manual workflows
250
292
 
251
293
  **How it works**:
252
294
  1. **Discovery**: Read `.claude/skills/SKILLS-INDEX.md` (1 file vs 35 files = 97% faster)
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # Install all SpecWeave agents, skills, and commands
2
+ # Install all SpecWeave agents, skills, hooks, and commands
3
3
  #
4
4
  # Usage:
5
5
  # bash bin/install-all.sh # Install to .claude/ (project)
@@ -29,6 +29,13 @@ bash bin/install-skills.sh $INSTALL_MODE
29
29
 
30
30
  echo ""
31
31
 
32
+ # Install hooks
33
+ echo "🪝 Installing Hooks..."
34
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
35
+ bash bin/install-hooks.sh $INSTALL_MODE
36
+
37
+ echo ""
38
+
32
39
  # Install commands (only project-local, not global)
33
40
  if [ "$INSTALL_MODE" != "--global" ]; then
34
41
  echo "⚡ Installing Slash Commands..."
@@ -42,7 +49,7 @@ echo "✅ SpecWeave installation complete!"
42
49
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
43
50
  echo ""
44
51
  echo "Next steps:"
45
- echo " 1. Restart Claude Code to load agents, skills, and commands"
52
+ echo " 1. Restart Claude Code to load agents, skills, hooks, and commands"
46
53
  echo " 2. Try: 'Create a product vision for X' (activates PM agent)"
47
54
  echo " 3. Try: 'Plan implementation for feature Y' (activates increment-planner skill)"
48
55
  echo " 4. Try: '/specweave inc' to plan a new increment"
@@ -0,0 +1,57 @@
1
+ #!/bin/bash
2
+ # Install SpecWeave hooks to .claude/hooks/
3
+ #
4
+ # Usage:
5
+ # bash bin/install-hooks.sh # Install to .claude/hooks/ (project)
6
+ # bash bin/install-hooks.sh --global # Install to ~/.claude/hooks/ (global)
7
+
8
+ set -e
9
+
10
+ HOOKS_SRC="src/hooks"
11
+ HOOKS_DEST=".claude/hooks"
12
+
13
+ # Parse arguments
14
+ if [ "$1" = "--global" ]; then
15
+ HOOKS_DEST="$HOME/.claude/hooks"
16
+ echo "Installing hooks globally to $HOOKS_DEST"
17
+ else
18
+ echo "Installing hooks to project: $HOOKS_DEST"
19
+ fi
20
+
21
+ # Create destination if not exists
22
+ mkdir -p "$HOOKS_DEST"
23
+
24
+ # Check if source exists
25
+ if [ ! -d "$HOOKS_SRC" ]; then
26
+ echo "❌ Error: $HOOKS_SRC directory not found"
27
+ exit 1
28
+ fi
29
+
30
+ # Count hooks
31
+ hook_count=0
32
+
33
+ # Copy all hook files
34
+ for hook_file in "$HOOKS_SRC"/*.sh; do
35
+ if [ -f "$hook_file" ]; then
36
+ hook_name=$(basename "$hook_file")
37
+ echo " 🪝 Installing hook: $hook_name"
38
+ cp "$hook_file" "$HOOKS_DEST/"
39
+ # Make executable
40
+ chmod +x "$HOOKS_DEST/$hook_name"
41
+ hook_count=$((hook_count + 1))
42
+ fi
43
+ done
44
+
45
+ # Copy README.md if it exists
46
+ if [ -f "$HOOKS_SRC/README.md" ]; then
47
+ echo " 📄 Installing hooks documentation"
48
+ cp "$HOOKS_SRC/README.md" "$HOOKS_DEST/"
49
+ fi
50
+
51
+ echo ""
52
+ echo "✅ Installed $hook_count hooks to $HOOKS_DEST"
53
+ echo ""
54
+ echo "Hooks installed:"
55
+ ls -1 "$HOOKS_DEST"/*.sh 2>/dev/null | xargs -n 1 basename | sed 's/^/ - /'
56
+ echo ""
57
+ echo "Hooks activate automatically based on Claude Code events"
package/bin/specweave.js CHANGED
@@ -81,6 +81,18 @@ program
81
81
  await loader.listAdapters();
82
82
  });
83
83
 
84
+ // Plugin commands - Manage plugins
85
+ program
86
+ .command('plugin <action> [plugin-name]')
87
+ .description('Manage plugins (list, enable, disable, info)')
88
+ .option('--enabled', 'Show only enabled plugins (for list)')
89
+ .option('--available', 'Show only available plugins (for list)')
90
+ .option('--force', 'Force operation (for enable/disable)')
91
+ .action(async (action, pluginName, options) => {
92
+ const { pluginCommand } = await import('../dist/cli/commands/plugin.js');
93
+ await pluginCommand(action, pluginName, options);
94
+ });
95
+
84
96
  // Help text
85
97
  program.on('--help', () => {
86
98
  console.log('');
@@ -88,6 +100,10 @@ program.on('--help', () => {
88
100
  console.log(' $ specweave init my-saas # Create new project (auto-detect tool)');
89
101
  console.log(' $ specweave init my-saas --adapter cursor # Create project for Cursor');
90
102
  console.log(' $ specweave adapters # List available AI tool adapters');
103
+ console.log(' $ specweave plugin list # List all plugins');
104
+ console.log(' $ specweave plugin enable specweave-github # Enable GitHub plugin');
105
+ console.log(' $ specweave plugin disable specweave-github # Disable GitHub plugin');
106
+ console.log(' $ specweave plugin info specweave-github # Show plugin details');
91
107
  console.log(' $ specweave install pm --local # Install PM agent locally');
92
108
  console.log(' $ specweave install --global # Install all (interactive)');
93
109
  console.log(' $ specweave list # List all available components');
@@ -5,6 +5,7 @@
5
5
  * Concrete adapters extend this class and implement tool-specific logic.
6
6
  */
7
7
  import { IAdapter, AdapterOptions, RequirementsResult, AdapterFile, AutomationLevel } from './adapter-interface.js';
8
+ import type { Plugin } from '../core/types/plugin.js';
8
9
  export declare abstract class AdapterBase implements IAdapter {
9
10
  abstract name: string;
10
11
  abstract description: string;
@@ -46,5 +47,25 @@ export declare abstract class AdapterBase implements IAdapter {
46
47
  * Helper: Read template file and replace variables
47
48
  */
48
49
  protected readTemplate(templatePath: string, variables: Record<string, string>): Promise<string>;
50
+ /**
51
+ * Check if this adapter supports plugins
52
+ * Default: No plugin support (override in concrete adapters)
53
+ */
54
+ supportsPlugins(): boolean;
55
+ /**
56
+ * Compile and install a plugin
57
+ * Default: Throw error (override in concrete adapters that support plugins)
58
+ */
59
+ compilePlugin(plugin: Plugin): Promise<void>;
60
+ /**
61
+ * Unload a plugin
62
+ * Default: Throw error (override in concrete adapters that support plugins)
63
+ */
64
+ unloadPlugin(pluginName: string): Promise<void>;
65
+ /**
66
+ * Get installed plugins
67
+ * Default: Return empty array (override in concrete adapters that support plugins)
68
+ */
69
+ getInstalledPlugins(): Promise<string[]>;
49
70
  }
50
71
  //# sourceMappingURL=adapter-base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-base.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAKhC,8BAAsB,WAAY,YAAW,QAAQ;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA0BtD;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,WAAW,EAAE;IAElC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM;IAElC;;OAEG;cACa,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhE;;OAEG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;OAEG;cACa,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC;CAUnB"}
1
+ {"version":3,"file":"adapter-base.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAItD,8BAAsB,WAAY,YAAW,QAAQ;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA0BtD;;OAEG;IACH,QAAQ,CAAC,QAAQ,IAAI,WAAW,EAAE;IAElC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;OAEG;IACH,QAAQ,CAAC,eAAe,IAAI,MAAM;IAElC;;OAEG;cACa,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUhE;;OAEG;cACa,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS9D;;OAEG;cACa,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC;IAWlB;;;OAGG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAG/C"}
@@ -107,5 +107,33 @@ export class AdapterBase {
107
107
  }
108
108
  return content;
109
109
  }
110
+ /**
111
+ * Check if this adapter supports plugins
112
+ * Default: No plugin support (override in concrete adapters)
113
+ */
114
+ supportsPlugins() {
115
+ return false;
116
+ }
117
+ /**
118
+ * Compile and install a plugin
119
+ * Default: Throw error (override in concrete adapters that support plugins)
120
+ */
121
+ async compilePlugin(plugin) {
122
+ throw new Error(`Plugin support not implemented for ${this.name} adapter`);
123
+ }
124
+ /**
125
+ * Unload a plugin
126
+ * Default: Throw error (override in concrete adapters that support plugins)
127
+ */
128
+ async unloadPlugin(pluginName) {
129
+ throw new Error(`Plugin support not implemented for ${this.name} adapter`);
130
+ }
131
+ /**
132
+ * Get installed plugins
133
+ * Default: Return empty array (override in concrete adapters that support plugins)
134
+ */
135
+ async getInstalledPlugins() {
136
+ return [];
137
+ }
110
138
  }
111
139
  //# sourceMappingURL=adapter-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-base.js","sourceRoot":"","sources":["../../src/adapters/adapter-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter-base.js","sourceRoot":"","sources":["../../src/adapters/adapter-base.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  * Defines the contract that all SpecWeave adapters must implement.
5
5
  * Enables SpecWeave to work with ANY AI coding tool (Claude, Cursor, Copilot, etc.)
6
6
  */
7
+ import type { Plugin } from '../core/types/plugin.js';
7
8
  export interface AdapterOptions {
8
9
  projectPath: string;
9
10
  projectName: string;
@@ -104,5 +105,45 @@ export interface IAdapter {
104
105
  * @returns string Markdown-formatted instructions
105
106
  */
106
107
  getInstructions(): string;
108
+ /**
109
+ * Check if this adapter supports plugins
110
+ *
111
+ * Returns true if the adapter can install and compile plugins
112
+ * (Claude native, Cursor AGENTS.md, Copilot instructions.md)
113
+ * Returns false for generic/manual adapters
114
+ *
115
+ * @returns boolean True if plugins are supported
116
+ */
117
+ supportsPlugins(): boolean;
118
+ /**
119
+ * Compile and install a plugin for this adapter
120
+ *
121
+ * Transforms plugin content (skills/agents/commands) to tool-specific format:
122
+ * - Claude: Copy to .claude/skills/, .claude/agents/, .claude/commands/
123
+ * - Cursor: Compile to AGENTS.md + team commands JSON
124
+ * - Copilot: Compile to .github/copilot/instructions.md
125
+ * - Generic: Generate manual copy-paste instructions
126
+ *
127
+ * @param plugin Plugin to compile and install
128
+ * @returns Promise<void>
129
+ */
130
+ compilePlugin(plugin: Plugin): Promise<void>;
131
+ /**
132
+ * Unload (disable) a plugin for this adapter
133
+ *
134
+ * Removes plugin-specific files and restores previous state
135
+ *
136
+ * @param pluginName Name of plugin to unload
137
+ * @returns Promise<void>
138
+ */
139
+ unloadPlugin(pluginName: string): Promise<void>;
140
+ /**
141
+ * Get plugin installation status
142
+ *
143
+ * Returns information about which plugins are currently installed
144
+ *
145
+ * @returns Promise<string[]> Array of installed plugin names
146
+ */
147
+ getInstalledPlugins(): Promise<string[]>;
107
148
  }
108
149
  //# sourceMappingURL=adapter-interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-interface.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;;;;OASG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B;;;;;;;;;OASG;IACH,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEjD;;;;OAIG;IACH,QAAQ,IAAI,WAAW,EAAE,CAAC;IAE1B;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,eAAe,IAAI,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"adapter-interface.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter-interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;CAChD;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;;;;;;OASG;IACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B;;;;;;;;;OASG;IACH,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEjD;;;;OAIG;IACH,QAAQ,IAAI,WAAW,EAAE,CAAC;IAE1B;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;;OAUG;IACH,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpD;;;;;;OAMG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;;;;;;OAQG;IACH,eAAe,IAAI,OAAO,CAAC;IAE3B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;;;OAOG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;;;OAMG;IACH,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { AdapterBase } from '../adapter-base.js';
11
11
  import { AdapterOptions, AdapterFile } from '../adapter-interface.js';
12
+ import type { Plugin } from '../../core/types/plugin.js';
12
13
  export declare class ClaudeAdapter extends AdapterBase {
13
14
  name: string;
14
15
  description: string;
@@ -50,5 +51,40 @@ export declare class ClaudeAdapter extends AdapterBase {
50
51
  * Get usage instructions for Claude adapter
51
52
  */
52
53
  getInstructions(): string;
54
+ /**
55
+ * Check if Claude adapter supports plugins
56
+ *
57
+ * Claude Code has FULL plugin support via native .claude/ directory
58
+ *
59
+ * @returns boolean Always true
60
+ */
61
+ supportsPlugins(): boolean;
62
+ /**
63
+ * Compile and install a plugin for Claude Code
64
+ *
65
+ * Claude uses native plugin installation:
66
+ * - Copy skills to .claude/skills/{plugin-name}/{skill-name}/
67
+ * - Copy agents to .claude/agents/{plugin-name}/{agent-name}/
68
+ * - Copy commands to .claude/commands/
69
+ *
70
+ * @param plugin Plugin to install
71
+ */
72
+ compilePlugin(plugin: Plugin): Promise<void>;
73
+ /**
74
+ * Unload a plugin from Claude Code
75
+ *
76
+ * Removes plugin files from .claude/ directory
77
+ *
78
+ * @param pluginName Name of plugin to unload
79
+ */
80
+ unloadPlugin(pluginName: string): Promise<void>;
81
+ /**
82
+ * Get list of installed plugins
83
+ *
84
+ * Returns plugin names that are currently installed in .claude/
85
+ *
86
+ * @returns Array of installed plugin names
87
+ */
88
+ getInstalledPlugins(): Promise<string[]>;
53
89
  }
54
90
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtE,qBAAa,aAAc,SAAQ,WAAW;IAC5C,IAAI,SAAY;IAChB,WAAW,SAA0F;IACrG,eAAe,EAAG,MAAM,CAAU;IAElC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAUhC;;;;;;;;OAQG;IACH,QAAQ,IAAI,WAAW,EAAE;IAYzB;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,MAAM;CAsD1B"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/claude/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,IAAI,SAAY;IAChB,WAAW,SAA0F;IACrG,eAAe,EAAG,MAAM,CAAU;IAElC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAUhC;;;;;;;;OAQG;IACH,QAAQ,IAAI,WAAW,EAAE;IAYzB;;;;;;;;;OASG;IACG,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBrD;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD;;OAEG;IACH,eAAe,IAAI,MAAM;IAuDzB;;;;;;OAMG;IACH,eAAe,IAAI,OAAO;IAI1B;;;;;;;;;OASG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6DlD;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmDrD;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAe/C"}