Export SpecWeave skills to Agent Skills open standard format (agentskills.io) for cross-platform portability. Use when converting skills to GitHub Copilot, VS Code, Gemini CLI, or Cursor format. Creates portable SKILL.md files compatible with any Agent Skills-supported tool.
Exports skills to the open Agent Skills standard format for cross-platform compatibility across AI coding tools.
/plugin marketplace add anton-abyzov/specweave/plugin install sw@specweaveExport SpecWeave skills to the Agent Skills open standard format. This enables skill portability across:
/sw:export-skills [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 |
.agent-skills/
├── architect/
│ └── SKILL.md
├── security/
│ └── SKILL.md
├── qa-lead/
│ └── SKILL.md
└── pm/
└── SKILL.md
| 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 |
# Find all SKILL.md files in plugins
find plugins -name "SKILL.md" -type f
For each SKILL.md:
allowed-tools from comma to space-delimitedEach exported skill must:
name matching directory namedescription between 1-1024 charactersname using only a-z and --- in name-Write to output directory with structure:
{output}/{skill-name}/SKILL.md
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, ' ')
};
}
Input (plugins/specweave/skills/architect/SKILL.md):
---
name: architect
description: System Architect expert...
allowed-tools: Read, Write, Edit
context: fork
model: opus
---
Output (.agent-skills/architect/SKILL.md):
---
name: 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
---
After exporting:
context, model, invocableBy) are not exportedBefore 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.