install-skill
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.
What this skill does
# 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
1. **List available skill packages**:
```bash
ls -la dist/*.skill
```
2. **Identify target skill**: If user specifies a skill name, use it. Otherwise, list available packages and ask which to install.
3. **Verify package**: Check the file exists and is a valid zip archive:
```bash
file dist/<skill-name>.skill
```
### Phase 2: Extraction
1. **Preview contents** before extracting:
```bash
unzip -l dist/<skill-name>.skill
```
2. **Extract to project root**:
```bash
unzip -o dist/<skill-name>.skill
```
3. **Verify extraction**:
```bash
ls -la <skill-name>/
ls -la <skill-name>/references/
```
### Phase 3: Metadata Extraction
1. **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
2. **Parse the frontmatter** between `---` markers at the top of SKILL.md
3. **Generate short description** for marketplace (one line, ~60 chars max)
### Phase 4: Marketplace Registration
1. **Update `.claude-plugin/marketplace.json`**:
a. Update the top-level `description` if needed to include new category
b. Add to `plugins` array:
```json
{
"name": "<skill-name>",
"type": "skill",
"path": "<skill-name>",
"description": "<short-description>",
"category": "<category>",
"tags": ["tag1", "tag2", ...]
}
```
c. Add category to `categories` object if new:
```json
"<category>": {
"name": "<Category Display Name>",
"description": "<Category description>",
"marketplace": "marketplace-<category>.json"
}
```
2. **Create/update category marketplace** (`marketplace-<category>.json`):
If file doesn't exist, create with template:
```json
{
"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
1. **Update README.md**:
a. Update header description if new category added
b. Add to "What's Included" table:
```markdown
| **[<skill-name>](<skill-name>/)** | <short-description> |
```
c. Add usage examples section if new category:
```markdown
### <Category>
```
"Example prompt 1"
"Example prompt 2"
```
```
d. Add to "Project Structure" tree:
```
├── <skill-name>/
```
e. Add to "Browser Download" table:
```markdown
| <Skill Display Name> | [Download ZIP](https://download-directory.github.io/?url=https://github.com/schwepps/skills/tree/main/<skill-name>) |
```
### Phase 6: Verification
1. **Verify all files updated**:
- [ ] Skill directory exists with SKILL.md and references/
- [ ] marketplace.json contains skill entry
- [ ] Category marketplace file exists and contains skill
- [ ] README.md updated with skill info
2. **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:
1. Unpack `dist/<skill-name>.skill`
2. Auto-detect metadata from SKILL.md
3. Register in all marketplace files
4. Update README.md
5. Report completion status
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.