sw:export-skills
Export Skills to Agent Skills Standard
Overview
Export SpecWeave skills to the Agent Skills open standard format. This enables skill portability across:
- GitHub Copilot (VS Code integration)
- Gemini CLI
- Cursor
- Claude Code
- Other Agent Skills-compatible tools
Usage
/sw:export-skills [options]
Options
| Option | Description |
|---|---|
--output <dir> |
Output directory (default: .agent-skills/) |
--plugin <name> |
Export specific plugin (default: all) |
--skill <name> |
Export specific skill (default: all) |
--dry-run |
Preview without writing files |
--validate |
Validate output against Agent Skills spec |
Output Structure
.agent-skills/
├── architect/
│ └── SKILL.md
├── security/
│ └── SKILL.md
├── qa-lead/
│ └── SKILL.md
└── pm/
└── SKILL.md
Field Mapping
| SpecWeave Field | Agent Skills Field | Notes |
|---|---|---|
name |
name |
Direct mapping |
description |
description |
Direct mapping (max 1024 chars) |
allowed-tools |
allowed-tools |
Convert comma to space-delimited |
| N/A | license |
Add Apache-2.0 by default |
| N/A | compatibility |
Add "Designed for Claude Code" |
| N/A | metadata.author |
Use plugin manifest author |
| N/A | metadata.source |
Add "SpecWeave" |
visibility |
(not mapped) | Agent Skills uses file placement |
invocableBy |
(not mapped) | Agent Skills discovery is implicit |
Execution Steps
Step 1: Discover Skills
# Find all SKILL.md files in plugins
find plugins -name "SKILL.md" -type f
Step 2: Convert Each Skill
For each SKILL.md:
- Parse YAML frontmatter
- Extract description (truncate to 1024 chars if needed)
- Convert
allowed-toolsfrom comma to space-delimited - Generate Agent Skills-compliant frontmatter
- Preserve markdown body content
Step 3: Validate Output
Each exported skill must:
- Have
namematching directory name - Have
descriptionbetween 1-1024 characters - Have
nameusing onlya-zand- - Not have
--in name - Not start/end with
-
Step 4: Write Files
Write to output directory with structure:
{output}/{skill-name}/SKILL.md
Conversion Script
interface SpecWeaveSkill {
name: string;
description: string;
'allowed-tools'?: string;
visibility?: string;
invocableBy?: string[];
context?: string;
model?: string;
}
interface AgentSkill {
name: string;
description: string;
license?: string;
compatibility?: string;
metadata?: Record<string, string>;
'allowed-tools'?: string;
}
function convertSkill(specweave: SpecWeaveSkill, pluginName: string): AgentSkill {
return {
name: specweave.name,
description: specweave.description.slice(0, 1024),
license: 'Apache-2.0',
compatibility: 'Designed for Claude Code (or similar products)',
metadata: {
author: 'specweave',
source: 'SpecWeave',
plugin: pluginName
},
'allowed-tools': specweave['allowed-tools']?.replace(/,\s*/g, ' ')
};
}
Example Output
Input (plugins/specweave/skills/architect/SKILL.md):
---
name: sw:architect
description: System Architect expert...
allowed-tools: Read, Write, Edit
context: fork
model: opus
---
Output (.agent-skills/architect/SKILL.md):
---
name: sw:architect
description: System Architect expert...
license: Apache-2.0
compatibility: Designed for Claude Code (or similar products)
metadata:
author: specweave
source: SpecWeave
plugin: sw
allowed-tools: Read Write Edit
---
Post-Export Actions
After exporting:
- Commit to repo: Skills can be discovered from any subdirectory
- Push to GitHub: Enable Copilot skill discovery
- Publish: Consider publishing to skill registries
Limitations
- SpecWeave-specific fields (
context,model,invocableBy) are not exported - Progressive disclosure phases (sub-files) are not included
- Skill memory files are not exported (they're runtime state)
Project-Specific Learnings
Before starting work, check for project-specific learnings:
# Check if skill memory exists for this skill
cat .specweave/skill-memories/export-skills.md 2>/dev/null || echo "No project learnings yet"
Project learnings are automatically captured by the reflection system when corrections or patterns are identified during development. These learnings help you understand project-specific conventions and past decisions.
More from anton-abyzov/specweave
technical-writing
Technical writing expert for API documentation, README files, tutorials, changelog management, and developer documentation. Covers style guides, information architecture, versioning docs, OpenAPI/Swagger, and documentation-as-code. Activates for technical writing, API docs, README, changelog, tutorial writing, documentation, technical communication, style guide, OpenAPI, Swagger, developer docs.
45spec-driven-brainstorming
Spec-driven brainstorming and product discovery expert. Helps teams ideate features, break down epics, conduct story mapping sessions, prioritize using MoSCoW/RICE/Kano, and validate ideas with lean startup methods. Activates for brainstorming, product discovery, story mapping, feature ideation, prioritization, MoSCoW, RICE, Kano model, lean startup, MVP definition, product backlog, feature breakdown.
43kafka-architecture
Apache Kafka architecture expert for cluster design, capacity planning, and high availability. Use when designing Kafka clusters, choosing partition strategies, or sizing brokers for production workloads.
34docusaurus
Docusaurus 3.x documentation framework - MDX authoring, theming, versioning, i18n. Use for documentation sites or spec-weave.com.
29frontend
Expert frontend developer for React, Vue, Angular, and modern JavaScript/TypeScript. Use when creating components, implementing hooks, handling state management, or building responsive web interfaces. Covers React 18+ features, custom hooks, form handling, and accessibility best practices.
29reflect
Self-improving AI memory system that persists learnings across sessions in CLAUDE.md. Use when capturing corrections, remembering user preferences, or extracting patterns from successful implementations. Enables continual learning without starting from zero each conversation.
27