Following PR #145 which fixed README.md, this commit corrects all remaining documentation files to use the correct cli/ directory prefix for Python scripts. Changes: - QUICKSTART.md: Fixed 21 occurrences (doc_scraper.py, enhance_skill_local.py, package_skill.py) - docs/UPLOAD_GUIDE.md: Fixed 10 occurrences (doc_scraper.py, enhance_skill_local.py, package_skill.py) - docs/ENHANCEMENT.md: Fixed 9 occurrences (doc_scraper.py, enhance_skill.py, enhance_skill_local.py) All commands now correctly reference: - python3 cli/doc_scraper.py (not python3 doc_scraper.py) - python3 cli/enhance_skill.py (not python3 enhance_skill.py) - python3 cli/enhance_skill_local.py (not python3 enhance_skill_local.py) - python3 cli/package_skill.py (not python3 package_skill.py) - python3 cli/estimate_pages.py (not python3 estimate_pages.py) This ensures all documentation examples work correctly when run from the repository root directory. Related: PR #145
352 lines
8.1 KiB
Markdown
352 lines
8.1 KiB
Markdown
# How to Upload Skills to Claude
|
|
|
|
## Quick Answer
|
|
|
|
**You have 3 options to upload the `.zip` file:**
|
|
|
|
### Option 1: Automatic Upload (Recommended for CLI)
|
|
|
|
```bash
|
|
# Set your API key (one-time setup)
|
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
|
|
# Package and upload automatically
|
|
python3 cli/package_skill.py output/react/ --upload
|
|
|
|
# OR upload existing .zip
|
|
python3 cli/upload_skill.py output/react.zip
|
|
```
|
|
|
|
✅ **Fully automatic** | No manual steps | Requires API key
|
|
|
|
### Option 2: Manual Upload (No API Key)
|
|
|
|
```bash
|
|
# Package the skill
|
|
python3 cli/package_skill.py output/react/
|
|
|
|
# This will:
|
|
# 1. Create output/react.zip
|
|
# 2. Open output/ folder automatically
|
|
# 3. Show clear upload instructions
|
|
|
|
# Then upload manually to https://claude.ai/skills
|
|
```
|
|
|
|
✅ **No API key needed** | Works for everyone | Simple
|
|
|
|
### Option 3: Claude Code MCP (Easiest)
|
|
|
|
```
|
|
In Claude Code, just say:
|
|
"Package and upload the React skill"
|
|
|
|
# Automatically packages and uploads!
|
|
```
|
|
|
|
✅ **Natural language** | Fully automatic | Best UX
|
|
|
|
---
|
|
|
|
## What's Inside the Zip?
|
|
|
|
The `.zip` file contains:
|
|
|
|
```
|
|
steam-economy.zip
|
|
├── SKILL.md ← Main skill file (Claude reads this first)
|
|
└── references/ ← Reference documentation
|
|
├── index.md ← Category index
|
|
├── api_reference.md ← API docs
|
|
├── pricing.md ← Pricing docs
|
|
├── trading.md ← Trading docs
|
|
└── ... ← Other categorized docs
|
|
```
|
|
|
|
**Note:** The zip only includes what Claude needs. It excludes:
|
|
- `.backup` files
|
|
- Build artifacts
|
|
- Temporary files
|
|
|
|
## What Does package_skill.py Do?
|
|
|
|
The package script:
|
|
|
|
1. **Finds your skill directory** (e.g., `output/steam-economy/`)
|
|
2. **Validates SKILL.md exists** (required!)
|
|
3. **Creates a .zip file** with the same name
|
|
4. **Includes all files** except backups
|
|
5. **Saves to** `output/` directory
|
|
|
|
**Example:**
|
|
```bash
|
|
python3 cli/package_skill.py output/steam-economy/
|
|
|
|
📦 Packaging skill: steam-economy
|
|
Source: output/steam-economy
|
|
Output: output/steam-economy.zip
|
|
+ SKILL.md
|
|
+ references/api_reference.md
|
|
+ references/pricing.md
|
|
+ references/trading.md
|
|
+ ...
|
|
|
|
✅ Package created: output/steam-economy.zip
|
|
Size: 14,290 bytes (14.0 KB)
|
|
```
|
|
|
|
## Complete Workflow
|
|
|
|
### Step 1: Scrape & Build
|
|
```bash
|
|
python3 cli/doc_scraper.py --config configs/steam-economy.json
|
|
```
|
|
|
|
**Output:**
|
|
- `output/steam-economy_data/` (raw scraped data)
|
|
- `output/steam-economy/` (skill directory)
|
|
|
|
### Step 2: Enhance (Recommended)
|
|
```bash
|
|
python3 cli/enhance_skill_local.py output/steam-economy/
|
|
```
|
|
|
|
**What it does:**
|
|
- Analyzes reference files
|
|
- Creates comprehensive SKILL.md
|
|
- Backs up original to SKILL.md.backup
|
|
|
|
**Output:**
|
|
- `output/steam-economy/SKILL.md` (enhanced)
|
|
- `output/steam-economy/SKILL.md.backup` (original)
|
|
|
|
### Step 3: Package
|
|
```bash
|
|
python3 cli/package_skill.py output/steam-economy/
|
|
```
|
|
|
|
**Output:**
|
|
- `output/steam-economy.zip` ← **THIS IS WHAT YOU UPLOAD**
|
|
|
|
### Step 4: Upload to Claude
|
|
1. Go to Claude (claude.ai)
|
|
2. Click "Add Skill" or skill upload button
|
|
3. Select `output/steam-economy.zip`
|
|
4. Done!
|
|
|
|
## What Files Are Required?
|
|
|
|
**Minimum required structure:**
|
|
```
|
|
your-skill/
|
|
└── SKILL.md ← Required! Claude reads this first
|
|
```
|
|
|
|
**Recommended structure:**
|
|
```
|
|
your-skill/
|
|
├── SKILL.md ← Main skill file (required)
|
|
└── references/ ← Reference docs (highly recommended)
|
|
├── index.md
|
|
└── *.md ← Category files
|
|
```
|
|
|
|
**Optional (can add manually):**
|
|
```
|
|
your-skill/
|
|
├── SKILL.md
|
|
├── references/
|
|
├── scripts/ ← Helper scripts
|
|
│ └── *.py
|
|
└── assets/ ← Templates, examples
|
|
└── *.txt
|
|
```
|
|
|
|
## File Size Limits
|
|
|
|
The package script shows size after packaging:
|
|
```
|
|
✅ Package created: output/steam-economy.zip
|
|
Size: 14,290 bytes (14.0 KB)
|
|
```
|
|
|
|
**Typical sizes:**
|
|
- Small skill: 5-20 KB
|
|
- Medium skill: 20-100 KB
|
|
- Large skill: 100-500 KB
|
|
|
|
Claude has generous size limits, so most documentation-based skills fit easily.
|
|
|
|
## Quick Reference
|
|
|
|
### Package a Skill
|
|
```bash
|
|
python3 cli/package_skill.py output/steam-economy/
|
|
```
|
|
|
|
### Package Multiple Skills
|
|
```bash
|
|
# Package all skills in output/
|
|
for dir in output/*/; do
|
|
if [ -f "$dir/SKILL.md" ]; then
|
|
python3 cli/package_skill.py "$dir"
|
|
fi
|
|
done
|
|
```
|
|
|
|
### Check What's in a Zip
|
|
```bash
|
|
unzip -l output/steam-economy.zip
|
|
```
|
|
|
|
### Test a Packaged Skill Locally
|
|
```bash
|
|
# Extract to temp directory
|
|
mkdir temp-test
|
|
unzip output/steam-economy.zip -d temp-test/
|
|
cat temp-test/SKILL.md
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### "SKILL.md not found"
|
|
```bash
|
|
# Make sure you scraped and built first
|
|
python3 cli/doc_scraper.py --config configs/steam-economy.json
|
|
|
|
# Then package
|
|
python3 cli/package_skill.py output/steam-economy/
|
|
```
|
|
|
|
### "Directory not found"
|
|
```bash
|
|
# Check what skills are available
|
|
ls output/
|
|
|
|
# Use correct path
|
|
python3 cli/package_skill.py output/YOUR-SKILL-NAME/
|
|
```
|
|
|
|
### Zip is Too Large
|
|
Most skills are small, but if yours is large:
|
|
```bash
|
|
# Check size
|
|
ls -lh output/steam-economy.zip
|
|
|
|
# If needed, check what's taking space
|
|
unzip -l output/steam-economy.zip | sort -k1 -rn | head -20
|
|
```
|
|
|
|
Reference files are usually small. Large sizes often mean:
|
|
- Many images (skills typically don't need images)
|
|
- Large code examples (these are fine, just be aware)
|
|
|
|
## What Does Claude Do With the Zip?
|
|
|
|
When you upload a skill zip:
|
|
|
|
1. **Claude extracts it**
|
|
2. **Reads SKILL.md first** - This tells Claude:
|
|
- When to activate this skill
|
|
- What the skill does
|
|
- Quick reference examples
|
|
- How to navigate the references
|
|
3. **Indexes reference files** - Claude can search through:
|
|
- `references/*.md` files
|
|
- Find specific APIs, examples, concepts
|
|
4. **Activates automatically** - When you ask about topics matching the skill
|
|
|
|
## Example: Using the Packaged Skill
|
|
|
|
After uploading `steam-economy.zip`:
|
|
|
|
**You ask:** "How do I implement microtransactions in my Steam game?"
|
|
|
|
**Claude:**
|
|
- Recognizes this matches steam-economy skill
|
|
- Reads SKILL.md for quick reference
|
|
- Searches references/microtransactions.md
|
|
- Provides detailed answer with code examples
|
|
|
|
## API-Based Automatic Upload
|
|
|
|
### Setup (One-Time)
|
|
|
|
```bash
|
|
# Get your API key from https://console.anthropic.com/
|
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
|
|
# Add to your shell profile to persist
|
|
echo 'export ANTHROPIC_API_KEY=sk-ant-...' >> ~/.bashrc # or ~/.zshrc
|
|
```
|
|
|
|
### Usage
|
|
|
|
```bash
|
|
# Upload existing .zip
|
|
python3 cli/upload_skill.py output/react.zip
|
|
|
|
# OR package and upload in one command
|
|
python3 cli/package_skill.py output/react/ --upload
|
|
```
|
|
|
|
### How It Works
|
|
|
|
The upload tool uses the Anthropic `/v1/skills` API endpoint to:
|
|
1. Read your .zip file
|
|
2. Authenticate with your API key
|
|
3. Upload to Claude's skill storage
|
|
4. Verify upload success
|
|
|
|
### Troubleshooting
|
|
|
|
**"ANTHROPIC_API_KEY not set"**
|
|
```bash
|
|
# Check if set
|
|
echo $ANTHROPIC_API_KEY
|
|
|
|
# If empty, set it
|
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
```
|
|
|
|
**"Authentication failed"**
|
|
- Verify your API key is correct
|
|
- Check https://console.anthropic.com/ for valid keys
|
|
|
|
**"Upload timed out"**
|
|
- Check your internet connection
|
|
- Try again or use manual upload
|
|
|
|
**Upload fails with error**
|
|
- Falls back to showing manual upload instructions
|
|
- You can still upload via https://claude.ai/skills
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
**What you need to do:**
|
|
|
|
### With API Key (Automatic):
|
|
1. ✅ Scrape: `python3 cli/doc_scraper.py --config configs/YOUR-CONFIG.json`
|
|
2. ✅ Enhance: `python3 cli/enhance_skill_local.py output/YOUR-SKILL/`
|
|
3. ✅ Package & Upload: `python3 cli/package_skill.py output/YOUR-SKILL/ --upload`
|
|
4. ✅ Done! Skill is live in Claude
|
|
|
|
### Without API Key (Manual):
|
|
1. ✅ Scrape: `python3 cli/doc_scraper.py --config configs/YOUR-CONFIG.json`
|
|
2. ✅ Enhance: `python3 cli/enhance_skill_local.py output/YOUR-SKILL/`
|
|
3. ✅ Package: `python3 cli/package_skill.py output/YOUR-SKILL/`
|
|
4. ✅ Upload: Go to https://claude.ai/skills and upload the `.zip`
|
|
|
|
**What you upload:**
|
|
- The `.zip` file from `output/` directory
|
|
- Example: `output/steam-economy.zip`
|
|
|
|
**What's in the zip:**
|
|
- `SKILL.md` (required)
|
|
- `references/*.md` (recommended)
|
|
- Any scripts/assets you added (optional)
|
|
|
|
That's it! 🚀
|