Skill Installer
Automates the installation of new skills into the skills marketplace project. Handles unpacking, marketplace registration, and documentation updates.
When to Use
- User has a
.skill file in dist/ directory
- User asks to "install", "add", "unpack", or "integrate" a skill
- User wants to add a new skill to the marketplace
Installation Workflow
Phase 1: Discovery
List available skill packages:
ls -la dist/*.skill
Identify target skill: If user specifies a skill name, use it. Otherwise, list available packages and ask which to install.
Verify package: Check the file exists and is a valid zip archive:
file dist/<skill-name>.skill
Phase 2: Extraction
Preview contents before extracting:
unzip -l dist/<skill-name>.skill
Extract to project root:
unzip -o dist/<skill-name>.skill
Verify extraction:
ls -la <skill-name>/
ls -la <skill-name>/references/
Phase 3: Metadata Extraction
Read SKILL.md frontmatter to extract:
name: Skill identifier (kebab-case)
description: Full description for triggers
metadata.category: Category (seo, music, security, tooling, etc.)
metadata.tags: Comma-separated tags
Parse the frontmatter between --- markers at the top of SKILL.md
Generate short description for marketplace (one line, ~60 chars max)
Phase 4: Marketplace Registration
Update .claude-plugin/marketplace.json:
a. Update the top-level description if needed to include new category
b. Add to plugins array:
{
"name": "<skill-name>",
"type": "skill",
"path": "<skill-name>",
"description": "<short-description>",
"category": "<category>",
"tags": ["tag1", "tag2", ...]
}
c. Add category to categories object if new:
"<category>": {
"name": "<Category Display Name>",
"description": "<Category description>",
"marketplace": "marketplace-<category>.json"
}
Create/update category marketplace (marketplace-<category>.json):
If file doesn't exist, create with template:
{
"name": "skills-<category>",
"version": "1.0.0",
"description": "<Category> skills for Claude Code.",
"author": "schwepps",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/schwepps/skills.git"
},
"plugins": [
{ /* skill entry */ }
]
}
If file exists, add skill to plugins array.
Phase 5: Documentation Update
Update README.md:
a. Update header description if new category added
b. Add to "What's Included" table:
| **[<skill-name>](<skill-name>/)** | <short-description> |
c. Add usage examples section if new category:
### <Category>
"Example prompt 1"
"Example prompt 2"
d. Add to "Project Structure" tree:
├── <skill-name>/
e. Add to "Browser Download" table:
| <Skill Display Name> | [Download ZIP](https://download-directory.github.io/?url=https://github.com/schwepps/skills/tree/main/<skill-name>) |
Phase 6: Verification
Verify all files updated:
Report summary:
Installed: <skill-name>
Category: <category>
Files: <count> reference files
Updated:
- .claude-plugin/marketplace.json
- .claude-plugin/marketplace-<category>.json
- README.md
Category Mappings
| Category |
Display Name |
Description |
| seo |
SEO & AI Search |
Search engine optimization and AI search visibility |
| music |
Music Creation |
AI-powered music and audio generation |
| security |
Smart Contract Security |
Blockchain and smart contract auditing |
| tooling |
Developer Tools |
Automation and development utilities |
Error Handling
- File not found: List available .skill files in dist/
- Invalid package: Check if file is valid zip archive
- Missing SKILL.md: Package is malformed, cannot install
- Missing frontmatter: Extract what's possible, ask user for missing metadata
- Category conflict: Ask user to confirm category assignment
Quick Install Command
For a straightforward installation with a known skill file:
/install-skill <skill-name>
This will:
- Unpack
dist/<skill-name>.skill
- Auto-detect metadata from SKILL.md
- Register in all marketplace files
- Update README.md
- Report completion status
1---2name: install-skill3description: This skill should be used when the user asks to "install a skill", "add a skill to the project", "unpack a skill", or "integrate a new skill". Automates the full workflow of unpacking .skill packages from dist/ and registering them in the marketplace.4license: MIT5---6
7# Skill Installer
8
9Automates the installation of new skills into the skills marketplace project. Handles unpacking, marketplace registration, and documentation updates.
10
11## When to Use
12
13- User has a `.skill` file in `dist/` directory
14- User asks to "install", "add", "unpack", or "integrate" a skill
15- User wants to add a new skill to the marketplace
16
17## Installation Workflow
18
19### Phase 1: Discovery
20
211. **List available skill packages**:
22 ```bash
23 ls -la dist/*.skill
24 ```
25
262. **Identify target skill**: If user specifies a skill name, use it. Otherwise, list available packages and ask which to install.
27
283. **Verify package**: Check the file exists and is a valid zip archive:
29 ```bash
30 file dist/<skill-name>.skill
31 ```
32
33### Phase 2: Extraction
34
351. **Preview contents** before extracting:
36 ```bash
37 unzip -l dist/<skill-name>.skill
38 ```
39
402. **Extract to project root**:
41 ```bash
42 unzip -o dist/<skill-name>.skill
43 ```
44
453. **Verify extraction**:
46 ```bash
47 ls -la <skill-name>/
48 ls -la <skill-name>/references/
49 ```
50
51### Phase 3: Metadata Extraction
52
531. **Read SKILL.md frontmatter** to extract:
54 - `name`: Skill identifier (kebab-case)
55 - `description`: Full description for triggers
56 - `metadata.category`: Category (seo, music, security, tooling, etc.)
57 - `metadata.tags`: Comma-separated tags
58
592. **Parse the frontmatter** between `---` markers at the top of SKILL.md
60
613. **Generate short description** for marketplace (one line, ~60 chars max)
62
63### Phase 4: Marketplace Registration
64
651. **Update `.claude-plugin/marketplace.json`**:
66
67 a. Update the top-level `description` if needed to include new category
68
69 b. Add to `plugins` array:
70 ```json
71 {
72 "name": "<skill-name>",
73 "type": "skill",
74 "path": "<skill-name>",
75 "description": "<short-description>",
76 "category": "<category>",
77 "tags": ["tag1", "tag2", ...]
78 }
79 ```
80
81 c. Add category to `categories` object if new:
82 ```json
83 "<category>": {
84 "name": "<Category Display Name>",
85 "description": "<Category description>",
86 "marketplace": "marketplace-<category>.json"
87 }
88 ```
89
902. **Create/update category marketplace** (`marketplace-<category>.json`):
91
92 If file doesn't exist, create with template:
93 ```json
94 {
95 "name": "skills-<category>",
96 "version": "1.0.0",
97 "description": "<Category> skills for Claude Code.",
98 "author": "schwepps",
99 "license": "MIT",
100 "repository": {
101 "type": "git",
102 "url": "https://github.com/schwepps/skills.git"
103 },
104 "plugins": [
105 { /* skill entry */ }
106 ]
107 }
108 ```
109
110 If file exists, add skill to `plugins` array.
111
112### Phase 5: Documentation Update
113
1141. **Update README.md**:
115
116 a. Update header description if new category added
117
118 b. Add to "What's Included" table:
119 ```markdown
120 | **[<skill-name>](<skill-name>/)** | <short-description> |
121 ```
122
123 c. Add usage examples section if new category:
124 ```markdown
125 ### <Category>
126 ```
127 "Example prompt 1"
128 "Example prompt 2"
129 ```
130 ```
131
132 d. Add to "Project Structure" tree:
133 ```
134 ├── <skill-name>/
135 ```
136
137 e. Add to "Browser Download" table:
138 ```markdown
139 | <Skill Display Name> | [Download ZIP](https://download-directory.github.io/?url=https://github.com/schwepps/skills/tree/main/<skill-name>) |
140 ```
141
142### Phase 6: Verification
143
1441. **Verify all files updated**:
145 - [ ] Skill directory exists with SKILL.md and references/
146 - [ ] marketplace.json contains skill entry
147 - [ ] Category marketplace file exists and contains skill
148 - [ ] README.md updated with skill info
149
1502. **Report summary**:
151 ```
152 Installed: <skill-name>
153 Category: <category>
154 Files: <count> reference files
155
156 Updated:
157 - .claude-plugin/marketplace.json
158 - .claude-plugin/marketplace-<category>.json
159 - README.md
160 ```
161
162## Category Mappings
163
164| Category | Display Name | Description |
165|----------|--------------|-------------|
166| seo | SEO & AI Search | Search engine optimization and AI search visibility |
167| music | Music Creation | AI-powered music and audio generation |
168| security | Smart Contract Security | Blockchain and smart contract auditing |
169| tooling | Developer Tools | Automation and development utilities |
170
171## Error Handling
172
173- **File not found**: List available .skill files in dist/
174- **Invalid package**: Check if file is valid zip archive
175- **Missing SKILL.md**: Package is malformed, cannot install
176- **Missing frontmatter**: Extract what's possible, ask user for missing metadata
177- **Category conflict**: Ask user to confirm category assignment
178
179## Quick Install Command
180
181For a straightforward installation with a known skill file:
182
183```
184/install-skill <skill-name>
185```
186
187This will:
1881. Unpack `dist/<skill-name>.skill`
1892. Auto-detect metadata from SKILL.md
1903. Register in all marketplace files
1914. Update README.md
1925. Report completion status