Update skills
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"source": "github.com/runkids/skillshare/skills/skillshare",
|
||||
"type": "github-subdir",
|
||||
"installed_at": "2026-01-29T15:54:54.355308942Z",
|
||||
"installed_at": "2026-02-03T23:38:45.924722073Z",
|
||||
"repo_url": "https://github.com/runkids/skillshare.git",
|
||||
"subdir": "skills/skillshare",
|
||||
"version": "0134ec0"
|
||||
"version": "1bbfb66"
|
||||
}
|
||||
@@ -1,108 +1,90 @@
|
||||
---
|
||||
name: skillshare
|
||||
version: 0.6.4
|
||||
description: Syncs skills across AI CLI tools from a single source of truth. Use when asked to "sync skills", "pull skills", "show status", "list skills", "install skill", "initialize skillshare", or manage skill targets.
|
||||
version: 0.8.2
|
||||
description: |
|
||||
Syncs skills across AI CLI tools (Claude, Cursor, Windsurf, etc.) from a single source of truth.
|
||||
Use when: "sync skills", "install skill", "search skills", "list skills", "show skill status",
|
||||
"backup skills", "restore skills", "update skills", "new skill", "collect skills",
|
||||
"push/pull skills", "add/remove target", "find a skill for X", "is there a skill that can...",
|
||||
"how do I do X with skills", "skillshare init", "skillshare upgrade", "skill not syncing",
|
||||
"diagnose skillshare", "doctor", or any skill/target management across AI tools.
|
||||
argument-hint: "[command] [target] [--dry-run]"
|
||||
---
|
||||
|
||||
# Skillshare CLI
|
||||
|
||||
```
|
||||
Source: ~/.config/skillshare/skills ← Edit here (single source of truth)
|
||||
↓ sync
|
||||
Targets: ~/.claude/skills, ~/.cursor/skills, ... ← Symlinked from source
|
||||
Source: ~/.config/skillshare/skills ← Single source of truth
|
||||
↓ sync (symlinks)
|
||||
Targets: ~/.claude/skills, ~/.cursor/skills, ...
|
||||
```
|
||||
|
||||
## Quick Reference
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
skillshare status # Always run first
|
||||
skillshare sync # Push to all targets
|
||||
skillshare sync --dry-run # Preview changes
|
||||
skillshare pull claude # Import from target → source
|
||||
skillshare list # Show skills and tracked repos
|
||||
skillshare status # Check state
|
||||
skillshare sync --dry-run # Preview
|
||||
skillshare sync # Execute
|
||||
```
|
||||
|
||||
## Command Patterns
|
||||
## Commands
|
||||
|
||||
| Intent | Command |
|
||||
|--------|---------|
|
||||
| Sync skills | `skillshare sync` |
|
||||
| Preview first | `skillshare sync --dry-run` then `sync` |
|
||||
| Create new skill | `skillshare new <name>` then `sync` |
|
||||
| Pull from target | `skillshare pull <name>` then `sync` |
|
||||
| Install skill | `skillshare install <source>` then `sync` |
|
||||
| Install from repo (browse) | `skillshare install owner/repo` (discovery mode) |
|
||||
| Install team repo | `skillshare install <git-url> --track` then `sync` |
|
||||
| Update skill/repo | `skillshare update <name>` then `sync` |
|
||||
| Update all tracked | `skillshare update --all` then `sync` |
|
||||
| Remove skill | `skillshare uninstall <name>` then `sync` |
|
||||
| List skills | `skillshare list` or `list --verbose` |
|
||||
| Cross-machine push | `skillshare push -m "message"` |
|
||||
| Cross-machine pull | `skillshare pull --remote` |
|
||||
| Backup/restore | `skillshare backup --list`, `restore <target>` |
|
||||
| Add custom target | `skillshare target add <name> <path>` |
|
||||
| Change sync mode | `skillshare target <name> --mode merge\|symlink` |
|
||||
| Upgrade CLI/skill | `skillshare upgrade` |
|
||||
| Diagnose issues | `skillshare doctor` |
|
||||
| Category | Commands |
|
||||
|----------|----------|
|
||||
| **Inspect** | `status`, `diff`, `list`, `doctor` |
|
||||
| **Sync** | `sync`, `collect`, `push`, `pull` |
|
||||
| **Skills** | `new`, `install`, `uninstall`, `update`, `search` |
|
||||
| **Targets** | `target add/remove/list`, `backup`, `restore` |
|
||||
| **Upgrade** | `upgrade [--cli\|--skill]` |
|
||||
|
||||
## Init (Non-Interactive)
|
||||
**Workflow:** Most commands require `sync` afterward to distribute changes.
|
||||
|
||||
**CRITICAL:** Use flags — AI cannot respond to CLI prompts.
|
||||
## AI Usage Notes
|
||||
|
||||
**Source path:** Always use default `~/.config/skillshare/skills`. Only use `--source` if user explicitly requests a different location.
|
||||
### Non-Interactive Mode
|
||||
|
||||
AI cannot respond to CLI prompts. Always use flags:
|
||||
|
||||
**Step 1:** Check existing skills
|
||||
```bash
|
||||
# Init - check existing skills first
|
||||
ls ~/.claude/skills ~/.cursor/skills 2>/dev/null | head -10
|
||||
|
||||
# Then run with appropriate flags
|
||||
skillshare init --copy-from claude --all-targets --git # If skills exist
|
||||
skillshare init --no-copy --all-targets --git # Fresh start
|
||||
|
||||
# Add new agents later
|
||||
skillshare init --discover --select "windsurf,kilocode"
|
||||
```
|
||||
|
||||
**Step 2:** Run init based on findings
|
||||
### Safety
|
||||
|
||||
| Found | Command |
|
||||
|-------|---------|
|
||||
| Skills in one target | `skillshare init --copy-from <name> --all-targets --git` |
|
||||
| Skills in multiple | Ask user which to import |
|
||||
| No existing skills | `skillshare init --no-copy --all-targets --git` |
|
||||
**NEVER** `rm -rf` symlinked skills — deletes source. Always use:
|
||||
- `skillshare uninstall <name>` to remove skills
|
||||
- `skillshare target remove <name>` to unlink targets
|
||||
|
||||
**Step 3:** `skillshare status`
|
||||
### Finding Skills
|
||||
|
||||
**Adding new agents later (AI must use --select):**
|
||||
```bash
|
||||
skillshare init --discover --select "windsurf,kilocode" # Non-interactive (AI use this)
|
||||
# skillshare init --discover # Interactive only (NOT for AI)
|
||||
```
|
||||
|
||||
See [init.md](references/init.md) for all flags.
|
||||
|
||||
## Team Edition
|
||||
When users ask "how do I do X" or "find a skill for...":
|
||||
|
||||
```bash
|
||||
skillshare install github.com/team/skills --track # Install as tracked repo
|
||||
skillshare update _team-skills # Update later
|
||||
skillshare search <query> # Interactive install
|
||||
skillshare search <query> --list # List only
|
||||
skillshare search <query> --json # JSON output
|
||||
```
|
||||
|
||||
Tracked repos: `_` prefix, nested paths use `__` (e.g., `_team__frontend__ui`).
|
||||
**Query examples:** `react performance`, `pr review`, `commit`, `changelog`
|
||||
|
||||
**Naming convention:** Use `{team}:{name}` in SKILL.md to avoid collisions.
|
||||
|
||||
## Safety
|
||||
|
||||
- **NEVER** `rm -rf` on symlinked skills — deletes source
|
||||
- Use `skillshare uninstall <name>` to safely remove
|
||||
|
||||
## Zero-Install
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/runkids/skillshare/main/skills/skillshare/scripts/run.sh | sh -s -- status
|
||||
```
|
||||
**No results?** Try different keywords, or offer to help directly.
|
||||
|
||||
## References
|
||||
|
||||
- [init.md](references/init.md) - Init flags
|
||||
- [sync.md](references/sync.md) - Sync, pull, push
|
||||
- [install.md](references/install.md) - Install, update, uninstall
|
||||
- [status.md](references/status.md) - Status, diff, list, doctor
|
||||
- [targets.md](references/targets.md) - Target management
|
||||
- [backup.md](references/backup.md) - Backup, restore
|
||||
- [TROUBLESHOOTING.md](references/TROUBLESHOOTING.md) - Recovery
|
||||
| Topic | File |
|
||||
|-------|------|
|
||||
| Init flags | [init.md](references/init.md) |
|
||||
| Sync/collect/push/pull | [sync.md](references/sync.md) |
|
||||
| Install/update/new | [install.md](references/install.md) |
|
||||
| Status/diff/list/search | [status.md](references/status.md) |
|
||||
| Target management | [targets.md](references/targets.md) |
|
||||
| Backup/restore | [backup.md](references/backup.md) |
|
||||
| Troubleshooting | [TROUBLESHOOTING.md](references/TROUBLESHOOTING.md) |
|
||||
|
||||
@@ -1,143 +1,68 @@
|
||||
# Skillshare Troubleshooting
|
||||
# Troubleshooting
|
||||
|
||||
Common issues, solutions, and tips for AI assistants.
|
||||
## Quick Fixes
|
||||
|
||||
## Common Issues
|
||||
| Problem | Solution |
|
||||
|---------|----------|
|
||||
| "config not found" | `skillshare init` |
|
||||
| Target shows differences | `skillshare sync` |
|
||||
| Lost source files | `cd ~/.config/skillshare/skills && git checkout -- .` |
|
||||
| Skill not appearing | `skillshare sync` after install |
|
||||
| Git push fails | Check remote: `git -C ~/.config/skillshare/skills remote -v` |
|
||||
|
||||
| Problem | Diagnosis | Solution |
|
||||
|---------|-----------|----------|
|
||||
| "config not found" | Config missing | Run `skillshare init` |
|
||||
| Target shows differences | Files out of sync | Run `skillshare sync` |
|
||||
| Lost source files | Deleted via symlink | `cd ~/.config/skillshare/skills && git checkout -- <skill>/` |
|
||||
| Target has local skills | Need to preserve | Ensure `merge` mode, then `skillshare pull` before sync |
|
||||
| Skill not appearing | Not synced yet | Run `skillshare sync` after install |
|
||||
| Can't find installed skills | Wrong directory | Check `skillshare status` for source path |
|
||||
| "permission denied" | Symlink issues | Check file ownership and permissions |
|
||||
| Git remote not set | Push fails | Run `git remote add origin <url>` in source |
|
||||
|
||||
## Recovery Workflow
|
||||
|
||||
When something goes wrong:
|
||||
## Diagnostic Commands
|
||||
|
||||
```bash
|
||||
skillshare doctor # 1. Diagnose issues
|
||||
skillshare backup # 2. Create safety backup
|
||||
skillshare sync --dry-run # 3. Preview fix
|
||||
skillshare sync # 4. Apply fix
|
||||
skillshare doctor # Check environment
|
||||
skillshare status # Overview
|
||||
skillshare diff # Show differences
|
||||
ls -la ~/.claude/skills # Check symlinks
|
||||
```
|
||||
|
||||
## Recovery
|
||||
|
||||
```bash
|
||||
skillshare backup # Safety backup first
|
||||
skillshare sync --dry-run # Preview changes
|
||||
skillshare sync # Apply fix
|
||||
```
|
||||
|
||||
## Git Recovery
|
||||
|
||||
If source files were accidentally deleted:
|
||||
|
||||
```bash
|
||||
cd ~/.config/skillshare/skills
|
||||
git status # See what's missing
|
||||
git checkout -- <skill-name>/ # Restore specific skill
|
||||
git checkout -- . # Restore all deleted files
|
||||
git status # Check state
|
||||
git checkout -- <skill>/ # Restore specific skill
|
||||
git checkout -- . # Restore all skills
|
||||
```
|
||||
|
||||
If you need to restore from backup:
|
||||
## AI Assistant Notes
|
||||
|
||||
### Symlink Safety
|
||||
|
||||
- **merge mode** (default): Per-skill symlinks. Edit anywhere = edit source.
|
||||
- **symlink mode**: Entire directory symlinked.
|
||||
|
||||
**Safe commands:** `skillshare uninstall`, `skillshare target remove`
|
||||
|
||||
**DANGEROUS:** `rm -rf` on symlinked skills deletes source!
|
||||
|
||||
### Non-Interactive Usage
|
||||
|
||||
AI cannot respond to CLI prompts. Always use flags:
|
||||
|
||||
```bash
|
||||
skillshare backup --list # List available backups
|
||||
skillshare restore claude --from <timestamp>
|
||||
# Good (non-interactive)
|
||||
skillshare init --copy-from claude --all-targets --git
|
||||
skillshare uninstall my-skill --force
|
||||
|
||||
# Bad (requires user input)
|
||||
skillshare init
|
||||
skillshare uninstall my-skill
|
||||
```
|
||||
|
||||
## Tips for AI Assistants
|
||||
|
||||
### Symlink Behavior
|
||||
|
||||
Understanding symlinks is critical:
|
||||
|
||||
1. **merge mode** (default): Each skill in target is a symlink to source
|
||||
- Editing `~/.claude/skills/my-skill/SKILL.md` edits the source
|
||||
- Changes are immediate and affect all targets
|
||||
- Safe: `skillshare uninstall my-skill`
|
||||
- **DANGEROUS**: `rm -rf ~/.claude/skills/my-skill` - deletes source!
|
||||
|
||||
2. **symlink mode**: Entire target directory is a symlink
|
||||
- `~/.claude/skills` → `~/.config/skillshare/skills`
|
||||
- All targets are identical
|
||||
- No local skills possible
|
||||
|
||||
### When to Use --dry-run
|
||||
|
||||
Always use `--dry-run` in these situations:
|
||||
|
||||
- User is cautious or new to skillshare
|
||||
- Before `sync` on first use
|
||||
- Before `pull --all` to see what will be imported
|
||||
- First-time operations
|
||||
- Before `sync`, `collect --all`, `restore`
|
||||
- Before `install` from unknown sources
|
||||
- Before `restore` to preview what will change
|
||||
- Before `target remove` to understand impact
|
||||
|
||||
### Safe vs Dangerous Operations
|
||||
|
||||
**Safe operations:**
|
||||
```bash
|
||||
skillshare target remove <name> # Removes symlinks, keeps source
|
||||
skillshare uninstall <name> # Removes skill properly
|
||||
skillshare sync # Creates/updates symlinks
|
||||
```
|
||||
|
||||
**NEVER do this:**
|
||||
```bash
|
||||
rm -rf ~/.claude/skills/my-skill # Deletes source via symlink!
|
||||
rm -rf ~/.claude/skills # May delete entire source!
|
||||
```
|
||||
|
||||
### Creating New Skills
|
||||
|
||||
Guide users to create skills in source:
|
||||
|
||||
1. Create directory: `~/.config/skillshare/skills/<skill-name>/`
|
||||
2. Create `SKILL.md` with required frontmatter:
|
||||
```yaml
|
||||
---
|
||||
name: skill-name
|
||||
description: What this skill does
|
||||
---
|
||||
```
|
||||
3. Run `skillshare sync` to distribute
|
||||
|
||||
### Git Workflow Reminders
|
||||
|
||||
After any skill changes, remind user to push:
|
||||
|
||||
```bash
|
||||
skillshare push # Simple: commit + push
|
||||
skillshare push -m "Add new skill" # With custom message
|
||||
```
|
||||
|
||||
### Handling Init Prompts
|
||||
|
||||
AI cannot respond to CLI prompts. When user asks to initialize:
|
||||
|
||||
1. Ask clarifying questions in chat
|
||||
2. Build the command with appropriate flags
|
||||
3. Run non-interactively
|
||||
|
||||
Example conversation:
|
||||
- AI: "Do you have existing skills to copy from Claude or another tool?"
|
||||
- User: "Yes, from Claude"
|
||||
- AI: "Which CLI tools should I set up as targets?"
|
||||
- User: "Claude and Cursor"
|
||||
- AI: "Should I initialize git for version control?"
|
||||
- User: "Yes"
|
||||
- AI runs: `skillshare init --copy-from claude --targets "claude,cursor" --git`
|
||||
|
||||
### Debugging Sync Issues
|
||||
|
||||
If sync seems stuck or wrong:
|
||||
|
||||
```bash
|
||||
skillshare status # Check current state
|
||||
skillshare diff # See actual differences
|
||||
ls -la ~/.claude/skills # Check symlink targets
|
||||
```
|
||||
|
||||
Look for:
|
||||
- Broken symlinks (pointing to non-existent files)
|
||||
- Regular files instead of symlinks
|
||||
- Wrong symlink targets
|
||||
|
||||
@@ -1,23 +1,29 @@
|
||||
# Backup & Restore Commands
|
||||
# Backup & Restore
|
||||
|
||||
## backup
|
||||
|
||||
Creates backup of target skills.
|
||||
Create backups of target skill directories.
|
||||
|
||||
```bash
|
||||
skillshare backup # Backup all targets
|
||||
skillshare backup claude # Backup specific target
|
||||
skillshare backup --list # List available backups
|
||||
skillshare backup # All targets
|
||||
skillshare backup claude # Specific target
|
||||
skillshare backup --list # List existing backups
|
||||
skillshare backup --cleanup # Remove old backups
|
||||
```
|
||||
|
||||
Backups stored in: `~/.config/skillshare/backups/<timestamp>/`
|
||||
**Location:** `~/.config/skillshare/backups/<timestamp>/`
|
||||
|
||||
## restore
|
||||
|
||||
Restores skills from backup.
|
||||
Restore target from backup.
|
||||
|
||||
```bash
|
||||
skillshare restore claude # From latest backup
|
||||
skillshare restore claude --from 2026-01-14_21-22-18 # From specific backup
|
||||
skillshare restore claude # Latest backup
|
||||
skillshare restore claude --from 2026-01-14_21-22 # Specific backup
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Run `backup` before major changes
|
||||
- Use `--dry-run` with restore to preview
|
||||
- Keep backups with `--cleanup` to save disk space
|
||||
|
||||
@@ -1,71 +1,44 @@
|
||||
# Init Command
|
||||
|
||||
Initializes skillshare configuration.
|
||||
Initialize skillshare configuration.
|
||||
|
||||
## Key Concept
|
||||
**Source:** Always `~/.config/skillshare/skills` (use `--source` only if user explicitly requests).
|
||||
|
||||
**Source is always `~/.config/skillshare/skills`** — never a CLI directory like `.claude/skills`.
|
||||
|
||||
- `--copy-from claude` = import skills FROM claude INTO source
|
||||
- `--copy-from` does NOT change where source is located
|
||||
|
||||
## Copy Source Flags (mutually exclusive)
|
||||
## Flags
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--copy-from <name\|path>` | Copy skills from target name or directory path |
|
||||
| `--copy-from <name\|path>` | Import skills from target/path |
|
||||
| `--no-copy` | Start with empty source |
|
||||
|
||||
## Target Flags (mutually exclusive)
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--targets <list>` | Comma-separated targets: `"claude,cursor,codex"` |
|
||||
| `--all-targets` | Add all detected CLI targets |
|
||||
| `--targets "claude,cursor"` | Specific targets |
|
||||
| `--all-targets` | All detected targets |
|
||||
| `--no-targets` | Skip target setup |
|
||||
| `--git` | Initialize git repo |
|
||||
| `--no-git` | Skip git init |
|
||||
| `--discover` | Discover new AI tools (interactive) |
|
||||
| `--discover --select "a,b"` | Non-interactive discovery |
|
||||
| `--source <path>` | Custom source path |
|
||||
| `--remote <url>` | Set git remote |
|
||||
| `--dry-run` | Preview changes |
|
||||
|
||||
## Git Flags (mutually exclusive)
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--git` | Initialize git in source (recommended) |
|
||||
| `--no-git` | Skip git initialization |
|
||||
|
||||
## Discover Flags (for adding new agents to existing config)
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--discover` | Detect and add new agents to existing config (interactive) |
|
||||
| `--select <list>` | Comma-separated agents to add (non-interactive, requires `--discover`) |
|
||||
|
||||
## Other Flags
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--source <path>` | Custom source directory (**only if user explicitly requests**) |
|
||||
| `--remote <url>` | Set git remote (implies `--git`) |
|
||||
| `--dry-run` | Preview without making changes |
|
||||
|
||||
**AI Note:** Never use `--source` unless the user explicitly asks to change the source location.
|
||||
|
||||
## Examples
|
||||
## AI Usage (Non-Interactive)
|
||||
|
||||
```bash
|
||||
# Fresh start with all targets and git
|
||||
# Step 1: Check for existing skills
|
||||
ls ~/.claude/skills ~/.cursor/skills 2>/dev/null | head -10
|
||||
|
||||
# Step 2a: Fresh start
|
||||
skillshare init --no-copy --all-targets --git
|
||||
|
||||
# Copy from Claude, specific targets
|
||||
skillshare init --copy-from claude --targets "claude,cursor" --git
|
||||
# Step 2b: Import existing skills
|
||||
skillshare init --copy-from claude --all-targets --git
|
||||
|
||||
# Minimal setup
|
||||
skillshare init --no-copy --no-targets --no-git
|
||||
|
||||
# Custom source with remote
|
||||
skillshare init --source ~/my-skills --remote git@github.com:user/skills.git
|
||||
|
||||
# Add new agents to existing config (non-interactive)
|
||||
skillshare init --discover --select "windsurf,kilocode"
|
||||
|
||||
# Add new agents (interactive)
|
||||
skillshare init --discover
|
||||
# Step 3: Verify
|
||||
skillshare status
|
||||
```
|
||||
|
||||
## Adding New Targets Later
|
||||
|
||||
```bash
|
||||
skillshare init --discover --select "windsurf,kilocode"
|
||||
```
|
||||
|
||||
@@ -1,62 +1,87 @@
|
||||
# Install, Update & Uninstall
|
||||
# Install, Update, Uninstall & New
|
||||
|
||||
## install
|
||||
|
||||
Adds a skill from various sources.
|
||||
Install skills from local path or git repository.
|
||||
|
||||
### Source Formats
|
||||
|
||||
```bash
|
||||
# GitHub shorthand (auto-expands to github.com/...)
|
||||
skillshare install owner/repo # Discovery mode
|
||||
skillshare install owner/repo/path/to/skill # Direct path
|
||||
# GitHub shorthand
|
||||
user/repo # Browse repo for skills
|
||||
user/repo/path/to/skill # Direct path
|
||||
|
||||
# Full URLs
|
||||
skillshare install github.com/user/repo # Discovery mode
|
||||
skillshare install github.com/user/repo/skill # Direct path
|
||||
skillshare install git@github.com:user/repo.git # SSH
|
||||
github.com/user/repo # Discovers skills in repo
|
||||
github.com/user/repo/path # Direct subdirectory
|
||||
https://github.com/... # HTTPS URL
|
||||
git@github.com:... # SSH URL
|
||||
|
||||
# Local
|
||||
skillshare install ~/Downloads/my-skill
|
||||
|
||||
# Team repo (preserves .git for updates)
|
||||
skillshare install github.com/team/skills --track
|
||||
~/path/to/skill # Local directory
|
||||
```
|
||||
|
||||
**Flags:**
|
||||
### Examples
|
||||
|
||||
```bash
|
||||
skillshare install anthropics/skills # Browse official skills
|
||||
skillshare install anthropics/skills/skills/pdf # Direct install
|
||||
skillshare install ~/Downloads/my-skill # Local
|
||||
skillshare install github.com/team/repo --track # Team repo
|
||||
```
|
||||
|
||||
### Flags
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--name <name>` | Custom skill name |
|
||||
| `--name <n>` | Override skill name |
|
||||
| `--force, -f` | Overwrite existing |
|
||||
| `--update, -u` | Update existing (git pull or reinstall) |
|
||||
| `--track, -t` | Install as tracked repo (Team Edition) |
|
||||
| `--dry-run, -n` | Preview without installing |
|
||||
| `--update, -u` | Update if exists |
|
||||
| `--track, -t` | Track for updates (preserves .git) |
|
||||
| `--dry-run, -n` | Preview |
|
||||
|
||||
After install: `skillshare sync`
|
||||
**Tracked repos:** Prefixed with `_`, nested with `__` (e.g., `_team__frontend__ui`).
|
||||
|
||||
**After install:** `skillshare sync`
|
||||
|
||||
## update
|
||||
|
||||
Updates skills or tracked repos.
|
||||
Update installed skills or tracked repositories.
|
||||
|
||||
- **Tracked repos (`_repo-name`):** Runs `git pull`
|
||||
- **Regular skills:** Reinstalls from stored source metadata
|
||||
|
||||
```bash
|
||||
skillshare update my-skill # Update from stored source
|
||||
skillshare update _team-repo # Git pull tracked repo
|
||||
skillshare update --all # Update all tracked repos
|
||||
skillshare update _repo --force # Discard local changes and update
|
||||
skillshare update _team-skills # Git pull tracked repo
|
||||
skillshare update team-skills # _ prefix is optional
|
||||
skillshare update --all # All tracked repos + skills
|
||||
skillshare update --all -n # Preview updates
|
||||
skillshare update _repo --force # Discard local changes
|
||||
```
|
||||
|
||||
Safety: Repos with uncommitted changes are blocked by default.
|
||||
Use `--force` to discard local changes and pull latest.
|
||||
**Safety:** Tracked repos with uncommitted changes are skipped. Use `--force` to override.
|
||||
|
||||
After update: `skillshare sync`
|
||||
**After update:** `skillshare sync`
|
||||
|
||||
## uninstall
|
||||
|
||||
Removes a skill from source.
|
||||
Remove a skill from source.
|
||||
|
||||
```bash
|
||||
skillshare uninstall my-skill # With confirmation
|
||||
skillshare uninstall my-skill --force # Skip confirmation
|
||||
skillshare uninstall my-skill --dry-run
|
||||
```
|
||||
|
||||
After uninstall: `skillshare sync`
|
||||
**After uninstall:** `skillshare sync`
|
||||
|
||||
## new
|
||||
|
||||
Create a new skill template.
|
||||
|
||||
```bash
|
||||
skillshare new <name> # Create SKILL.md template
|
||||
skillshare new <name> --dry-run # Preview
|
||||
```
|
||||
|
||||
**After create:** Edit SKILL.md → `skillshare sync`
|
||||
|
||||
@@ -2,28 +2,15 @@
|
||||
|
||||
## status
|
||||
|
||||
Shows source location, targets, and sync state.
|
||||
Overview of source, targets, and sync state.
|
||||
|
||||
```bash
|
||||
skillshare status
|
||||
```
|
||||
|
||||
**Expected output:**
|
||||
```
|
||||
Source: ~/.config/skillshare/skills (4 skills)
|
||||
Targets:
|
||||
claude ✓ synced ~/.claude/skills
|
||||
codex ✓ synced ~/.codex/skills
|
||||
cursor ⚠ 1 diff ~/.cursor/skills
|
||||
|
||||
Version:
|
||||
✓ CLI: 0.6.4
|
||||
✓ Skill: 0.6.4 (up to date)
|
||||
```
|
||||
|
||||
## diff
|
||||
|
||||
Shows differences between source and targets.
|
||||
Show differences between source and targets.
|
||||
|
||||
```bash
|
||||
skillshare diff # All targets
|
||||
@@ -32,16 +19,35 @@ skillshare diff claude # Specific target
|
||||
|
||||
## list
|
||||
|
||||
Lists installed skills.
|
||||
List installed skills.
|
||||
|
||||
```bash
|
||||
skillshare list # Basic list
|
||||
skillshare list --verbose # With source and install info
|
||||
skillshare list --verbose # With source info
|
||||
```
|
||||
|
||||
## search
|
||||
|
||||
Search GitHub for skills (repos containing SKILL.md).
|
||||
|
||||
```bash
|
||||
skillshare search <query> # Interactive (select to install)
|
||||
skillshare search <query> --list # List only
|
||||
skillshare search <query> --json # JSON output
|
||||
skillshare search <query> -n 10 # Limit results (default: 20)
|
||||
```
|
||||
|
||||
**Requires:** GitHub auth (`gh` CLI or `GITHUB_TOKEN` env var).
|
||||
|
||||
**Query examples:**
|
||||
- `react performance` - Performance optimization
|
||||
- `pr review` - Code review skills
|
||||
- `commit` - Git commit helpers
|
||||
- `changelog` - Changelog generation
|
||||
|
||||
## doctor
|
||||
|
||||
Checks configuration health and diagnoses issues.
|
||||
Diagnose configuration and environment issues.
|
||||
|
||||
```bash
|
||||
skillshare doctor
|
||||
@@ -49,7 +55,7 @@ skillshare doctor
|
||||
|
||||
## upgrade
|
||||
|
||||
Upgrades CLI binary and/or built-in skillshare skill.
|
||||
Upgrade CLI binary and/or built-in skillshare skill.
|
||||
|
||||
```bash
|
||||
skillshare upgrade # Both CLI + skill
|
||||
@@ -59,4 +65,4 @@ skillshare upgrade --force # Skip confirmation
|
||||
skillshare upgrade --dry-run # Preview
|
||||
```
|
||||
|
||||
After upgrading skill: `skillshare sync`
|
||||
**After upgrading skill:** `skillshare sync`
|
||||
|
||||
@@ -1,41 +1,55 @@
|
||||
# Sync, Pull & Push Commands
|
||||
# Sync, Collect, Push & Pull
|
||||
|
||||
| Command | Direction | Description |
|
||||
|---------|-----------|-------------|
|
||||
| `sync` | Source → Targets | Distribute skills to all targets |
|
||||
| `collect` | Targets → Source | Import skills from target(s) |
|
||||
| `push` | Source → Remote | Git commit and push |
|
||||
| `pull` | Remote → Source → Targets | Git pull and sync |
|
||||
|
||||
## sync
|
||||
|
||||
Pushes skills from source to all targets.
|
||||
Distribute skills from source to all targets via symlinks.
|
||||
|
||||
```bash
|
||||
skillshare sync # Execute sync
|
||||
skillshare sync --dry-run # Preview only
|
||||
skillshare sync # Execute
|
||||
skillshare sync --dry-run # Preview
|
||||
skillshare sync --force # Override conflicts
|
||||
```
|
||||
|
||||
## pull
|
||||
## collect
|
||||
|
||||
Brings skills from target(s) to source.
|
||||
Import skills from target(s) to source.
|
||||
|
||||
```bash
|
||||
skillshare pull claude # Pull from specific target
|
||||
skillshare pull --all # Pull from all targets
|
||||
skillshare pull --remote # Pull from git remote + sync all
|
||||
skillshare collect claude # From specific target
|
||||
skillshare collect --all # From all targets
|
||||
skillshare collect --dry-run # Preview
|
||||
```
|
||||
|
||||
## push
|
||||
|
||||
Commits and pushes source to git remote.
|
||||
Git commit and push source to remote.
|
||||
|
||||
```bash
|
||||
skillshare push # Default commit message
|
||||
skillshare push -m "message" # Custom commit message
|
||||
skillshare push --dry-run # Preview only
|
||||
skillshare push # Default message
|
||||
skillshare push -m "message" # Custom message
|
||||
skillshare push --dry-run # Preview
|
||||
```
|
||||
|
||||
## Workflows
|
||||
## pull
|
||||
|
||||
**Local workflow:**
|
||||
1. Create skill in any target (e.g., `~/.claude/skills/my-skill/`)
|
||||
2. `skillshare pull claude` - bring to source
|
||||
3. `skillshare sync` - distribute to all targets
|
||||
Git pull from remote and sync to all targets.
|
||||
|
||||
**Cross-machine workflow:**
|
||||
1. Machine A: `skillshare push` - commit and push to remote
|
||||
2. Machine B: `skillshare pull --remote` - pull from remote + sync
|
||||
```bash
|
||||
skillshare pull # Pull + sync
|
||||
skillshare pull --dry-run # Preview
|
||||
```
|
||||
|
||||
## Common Workflows
|
||||
|
||||
**Local editing:** Edit skill anywhere → `sync` (symlinks update source automatically)
|
||||
|
||||
**Import local changes:** `collect <target>` → `sync`
|
||||
|
||||
**Cross-machine sync:** Machine A: `push` → Machine B: `pull`
|
||||
|
||||
@@ -1,33 +1,30 @@
|
||||
# Target Management
|
||||
|
||||
## target
|
||||
Manage AI CLI tool targets (Claude, Cursor, Windsurf, etc.).
|
||||
|
||||
Manages sync targets.
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
skillshare target list # List all targets
|
||||
skillshare target claude # Show target info
|
||||
skillshare target add myapp ~/.myapp/skills # Add custom target
|
||||
skillshare target remove myapp # Remove target
|
||||
skillshare target remove myapp # Remove target (safe)
|
||||
```
|
||||
|
||||
## Sync Modes
|
||||
|
||||
```bash
|
||||
skillshare target claude --mode merge # Individual skill symlinks (default)
|
||||
skillshare target claude --mode symlink # Entire directory symlinked
|
||||
skillshare target claude --mode merge # Per-skill symlinks (default)
|
||||
skillshare target claude --mode symlink # Entire dir symlinked
|
||||
```
|
||||
|
||||
**Mode comparison:**
|
||||
| Mode | Description | Local Skills |
|
||||
|------|-------------|--------------|
|
||||
| `merge` | Individual symlinks per skill | Preserved |
|
||||
| `symlink` | Single symlink for entire dir | Not possible |
|
||||
|
||||
| Mode | Behavior | Local Skills |
|
||||
|------|----------|--------------|
|
||||
| `merge` | Creates individual symlinks for each skill | Preserved |
|
||||
| `symlink` | Entire target directory is a symlink | Not possible |
|
||||
## Safety
|
||||
|
||||
## Safe Target Removal
|
||||
**Always use** `target remove` to unlink targets.
|
||||
|
||||
```bash
|
||||
skillshare target remove <name> # Safe: only removes link
|
||||
# NOT: rm -rf ~/.target/skills # Dangerous: may delete source
|
||||
```
|
||||
**NEVER** `rm -rf` on symlinked targets — this deletes the source!
|
||||
|
||||
@@ -29,7 +29,7 @@ detect_os() {
|
||||
case "$OS" in
|
||||
darwin) OS="darwin" ;;
|
||||
linux) OS="linux" ;;
|
||||
mingw*|msys*|cygwin*) error "Windows is not supported via this script. Please download from GitHub releases." ;;
|
||||
mingw*|msys*|cygwin*) error "Use PowerShell: irm https://raw.githubusercontent.com/runkids/skillshare/main/install.ps1 | iex" ;;
|
||||
*) error "Unsupported OS: $OS" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user