sync-skillslisted
Install: claude install-skill foyzulkarim/skills
# Sync-Skills
Thin natural-language wrapper over `scripts/sync-skills.sh`. The user names a
harness ("copy the skills to oh-my-pi"); you resolve it to a skills directory
and run the sync. All copying, marker safety, and dir resolution live in the
script — you only parse intent, invoke, and relay.
## Prerequisites
Requires `jq` on PATH. `--to <alias>` and `list-targets` resolve `scripts/sync-targets.json` through `jq`; the script fails fast with a clear error if `jq` is missing. Confirm `jq` is installed before invoking — `command -v jq` should print a path.
## Resolve the repo + script (every run)
The script derives its source dir from its own location. Resolve the repo root once:
```bash
ROOT="$(git -C "$PWD" rev-parse --show-toplevel)"
```
Then use `"$ROOT/scripts/sync-skills.sh"`. If `$ROOT/scripts/sync-skills.sh`
does not exist, stop and tell the user to run this from the skills repo checkout.
## Steps
1. **Parse the request** into:
- a **harness alias** — normalize the user's phrasing to a canonical key
using this table (additions to `scripts/sync-targets.json` are how the
table grows over time):
| User phrasing | Canonical alias |
|---------------|-----------------|
| `claude`, `~/.claude`, `claude-code` | `claude` |
| `omp`, `oh-my-pi`, `"oh my pi"` | `oh-my-pi` |
| `oc`, `opencode` | `opencode` |
| `kimi` | `kimi` (unmapped — discovery fallback) |
| `codex` | `codex` (unmapped — discovery fallback) |
Quot