Add comprehensive sync guide for cross-machine setup
This commit is contained in:
350
SYNC-GUIDE.md
Normal file
350
SYNC-GUIDE.md
Normal file
@@ -0,0 +1,350 @@
|
||||
# Skillshare Cross-Machine Sync Guide
|
||||
|
||||
**Repository**: https://gitea.pressmess.duckdns.org/admin/claude-skills
|
||||
**Built-in Feature**: Skillshare has native git support for cross-machine sync
|
||||
|
||||
---
|
||||
|
||||
## 🎯 How It Works
|
||||
|
||||
Skillshare automatically:
|
||||
1. Syncs skills from central source to all AI tools on current machine (Claude, Moltbot, etc.)
|
||||
2. Pushes/pulls skills to/from git remote for cross-machine sync
|
||||
3. Handles conflicts and merging
|
||||
|
||||
**Two-Layer Sync**:
|
||||
```
|
||||
Git Remote (Gitea)
|
||||
↕ (skillshare push/pull)
|
||||
Source: ~/.config/skillshare/skills
|
||||
↕ (skillshare sync)
|
||||
Targets: ~/.claude/skills, moltbot/skills, etc.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Setup on New Machine
|
||||
|
||||
### Initial Setup (First Time Only)
|
||||
|
||||
```bash
|
||||
# Install skillshare
|
||||
curl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/install.sh | sh
|
||||
|
||||
# Initialize with git remote
|
||||
skillshare init --source ~/.config/skillshare/skills \
|
||||
--all-targets \
|
||||
--git \
|
||||
--remote https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-skills.git
|
||||
|
||||
# Pull skills from Gitea and sync to all AI tools
|
||||
skillshare pull --remote
|
||||
```
|
||||
|
||||
### Or Manual Setup
|
||||
|
||||
```bash
|
||||
# 1. Install skillshare
|
||||
curl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/install.sh | sh
|
||||
|
||||
# 2. Initialize without remote
|
||||
skillshare init --no-copy --all-targets --git
|
||||
|
||||
# 3. Add remote manually
|
||||
cd ~/.config/skillshare/skills
|
||||
git remote add origin https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-skills.git
|
||||
|
||||
# 4. Pull and sync
|
||||
skillshare pull --remote
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Daily Workflow
|
||||
|
||||
### Pull Changes from Other Machines
|
||||
|
||||
```bash
|
||||
# Pull from Gitea and auto-sync to all AI tools
|
||||
skillshare pull --remote
|
||||
|
||||
# Preview first (dry run)
|
||||
skillshare pull --remote --dry-run
|
||||
```
|
||||
|
||||
This automatically:
|
||||
1. Pulls from Gitea
|
||||
2. Syncs to Claude Code (`~/.claude/skills`)
|
||||
3. Syncs to Moltbot (`/mnt/nvme/projects/active/moltbot/skills`)
|
||||
4. Syncs to any other configured targets
|
||||
|
||||
### Push Changes to Other Machines
|
||||
|
||||
```bash
|
||||
# Add new skill
|
||||
skillshare new my-helper-skill
|
||||
|
||||
# Edit the skill
|
||||
nano ~/.config/skillshare/skills/my-helper-skill/SKILL.md
|
||||
|
||||
# Sync locally first (to Claude, Moltbot, etc.)
|
||||
skillshare sync
|
||||
|
||||
# Commit and push to Gitea
|
||||
skillshare push -m "Add my-helper-skill"
|
||||
```
|
||||
|
||||
### Quick Status Check
|
||||
|
||||
```bash
|
||||
# See sync status
|
||||
skillshare status
|
||||
|
||||
# See what would change
|
||||
skillshare sync --dry-run
|
||||
|
||||
# Check git status
|
||||
cd ~/.config/skillshare/skills && git status
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 Common Workflows
|
||||
|
||||
### Create New Skill
|
||||
|
||||
```bash
|
||||
# 1. Create skill
|
||||
skillshare new cool-feature
|
||||
|
||||
# 2. Edit SKILL.md
|
||||
nano ~/.config/skillshare/skills/cool-feature/SKILL.md
|
||||
|
||||
# 3. Sync to local AI tools
|
||||
skillshare sync
|
||||
|
||||
# 4. Push to Gitea for other machines
|
||||
skillshare push -m "Add cool-feature skill"
|
||||
```
|
||||
|
||||
### Install Skill from GitHub
|
||||
|
||||
```bash
|
||||
# Install from public repo
|
||||
skillshare install github.com/user/awesome-skill
|
||||
|
||||
# Sync to local tools
|
||||
skillshare sync
|
||||
|
||||
# Push to your Gitea for team
|
||||
skillshare push -m "Add awesome-skill from community"
|
||||
```
|
||||
|
||||
### Pull Skill from Another AI Tool
|
||||
|
||||
```bash
|
||||
# Import skill from Moltbot to source
|
||||
skillshare pull moltbot
|
||||
|
||||
# Sync to other tools
|
||||
skillshare sync
|
||||
|
||||
# Push to Gitea
|
||||
skillshare push -m "Import skill from Moltbot"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Advanced Operations
|
||||
|
||||
### Update All Tracked Repositories
|
||||
|
||||
```bash
|
||||
# Update skills installed from repos
|
||||
skillshare update --all
|
||||
|
||||
# Sync to local tools
|
||||
skillshare sync
|
||||
|
||||
# Push updates to Gitea
|
||||
skillshare push -m "Update tracked skills"
|
||||
```
|
||||
|
||||
### Compare with Remote
|
||||
|
||||
```bash
|
||||
cd ~/.config/skillshare/skills
|
||||
git fetch origin
|
||||
git diff origin/main
|
||||
```
|
||||
|
||||
### Rollback to Previous Version
|
||||
|
||||
```bash
|
||||
cd ~/.config/skillshare/skills
|
||||
git log --oneline
|
||||
git checkout abc123 -- skillname/
|
||||
skillshare sync
|
||||
skillshare push -m "Rollback skillname"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Troubleshooting
|
||||
|
||||
### Skills Not Syncing Locally
|
||||
|
||||
```bash
|
||||
# Check status
|
||||
skillshare status
|
||||
|
||||
# Force sync
|
||||
skillshare sync --force
|
||||
|
||||
# Check for errors
|
||||
skillshare doctor
|
||||
```
|
||||
|
||||
### Remote Push Failed
|
||||
|
||||
```bash
|
||||
# Check git status
|
||||
cd ~/.config/skillshare/skills
|
||||
git status
|
||||
|
||||
# Pull first, then push
|
||||
skillshare pull --remote
|
||||
skillshare push -m "Your message"
|
||||
```
|
||||
|
||||
### Merge Conflicts
|
||||
|
||||
```bash
|
||||
# Skillshare will show conflict
|
||||
skillshare pull --remote
|
||||
|
||||
# Resolve manually
|
||||
cd ~/.config/skillshare/skills
|
||||
nano conflicted-skill/SKILL.md # Remove <<<< ==== >>>> markers
|
||||
git add .
|
||||
git commit -m "Resolve conflict"
|
||||
git push origin main
|
||||
|
||||
# Then sync to local tools
|
||||
skillshare sync
|
||||
```
|
||||
|
||||
### Authentication Failed
|
||||
|
||||
```bash
|
||||
# Update remote URL
|
||||
cd ~/.config/skillshare/skills
|
||||
git remote set-url origin https://admin:MyN3wP%40ssword%21@gitea.pressmess.duckdns.org/admin/claude-skills.git
|
||||
```
|
||||
|
||||
### Reset to Remote (Nuclear Option)
|
||||
|
||||
```bash
|
||||
cd ~/.config/skillshare/skills
|
||||
git fetch origin
|
||||
git reset --hard origin/main
|
||||
skillshare sync --force
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Comparison: Skills vs Agents
|
||||
|
||||
| Aspect | Skills (Skillshare) | Agents (Git) |
|
||||
|--------|-------------------|--------------|
|
||||
| **Location** | `~/.config/skillshare/skills/` | `~/.claude/agents/` |
|
||||
| **What** | Task definitions for AI | AI assistant configurations |
|
||||
| **Local Sync** | Auto-sync to Claude/Moltbot | N/A (single location) |
|
||||
| **Cross-Machine** | `skillshare push/pull` | `git push/pull` |
|
||||
| **Repository** | claude-skills | claude-agents |
|
||||
| **Management** | Skillshare CLI | Git commands |
|
||||
|
||||
---
|
||||
|
||||
## 🎓 Best Practices
|
||||
|
||||
### 1. Always Pull Before Creating
|
||||
|
||||
```bash
|
||||
skillshare pull --remote # Get latest from other machines
|
||||
skillshare new my-skill # Create new skill
|
||||
```
|
||||
|
||||
### 2. Sync Locally Before Pushing
|
||||
|
||||
```bash
|
||||
skillshare sync # Test on local AI tools first
|
||||
skillshare push -m "msg" # Then share with other machines
|
||||
```
|
||||
|
||||
### 3. Use Descriptive Commit Messages
|
||||
|
||||
```bash
|
||||
skillshare push -m "Add database-helper skill for PostgreSQL queries"
|
||||
# Not: skillshare push -m "update"
|
||||
```
|
||||
|
||||
### 4. Regular Sync Schedule
|
||||
|
||||
- **Start of day**: `skillshare pull --remote`
|
||||
- **After changes**: `skillshare sync && skillshare push -m "..."`
|
||||
- **End of day**: `skillshare push -m "..."`
|
||||
|
||||
### 5. Use Dry Run for Safety
|
||||
|
||||
```bash
|
||||
skillshare pull --remote --dry-run # Preview changes
|
||||
skillshare sync --dry-run # Preview local sync
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Reference
|
||||
|
||||
### Essential Commands
|
||||
|
||||
| Task | Command |
|
||||
|------|---------|
|
||||
| Pull from Gitea | `skillshare pull --remote` |
|
||||
| Push to Gitea | `skillshare push -m "message"` |
|
||||
| Sync to AI tools | `skillshare sync` |
|
||||
| Check status | `skillshare status` |
|
||||
| Create skill | `skillshare new skillname` |
|
||||
| List skills | `skillshare list --verbose` |
|
||||
|
||||
### Setup Commands
|
||||
|
||||
| Task | Command |
|
||||
|------|---------|
|
||||
| Init on new machine | `skillshare init --all-targets --git` |
|
||||
| Add remote | `cd ~/.config/skillshare/skills && git remote add origin <url>` |
|
||||
| First pull | `skillshare pull --remote` |
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
| Issue | Solution |
|
||||
|-------|----------|
|
||||
| Conflicts | Edit files, remove markers, `git commit`, `skillshare sync` |
|
||||
| Auth failed | `git remote set-url origin <url-with-password>` |
|
||||
| Out of sync | `skillshare pull --remote && skillshare sync` |
|
||||
|
||||
---
|
||||
|
||||
## 📚 Resources
|
||||
|
||||
- **Skillshare Repo**: https://github.com/runkids/skillshare
|
||||
- **Skills Gitea**: https://gitea.pressmess.duckdns.org/admin/claude-skills
|
||||
- **Agents Gitea**: https://gitea.pressmess.duckdns.org/admin/claude-agents
|
||||
- **Local Config**: `~/.config/skillshare/config.yaml`
|
||||
- **Source Directory**: `~/.config/skillshare/skills/`
|
||||
|
||||
---
|
||||
|
||||
**Last Updated**: 2026-01-29
|
||||
**Version**: 1.0
|
||||
**Maintained By**: admin
|
||||
Reference in New Issue
Block a user