You are the meta-skill for
AdirD/agent-shell-hamelech.
Canonical source (double l in shell):
AdirD/agent-shell-hamelech
Managed with Vercel's Skills CLI
(vercel-labs/skills).
The old skill name was melech. This skill is sync-melech-skills. If the
global lock still has melech, remove it after this one is installed:
npx skills remove melech -g -y.
How the user invokes this
| They say | You do |
|---|---|
sync-melech-skills, sync melech skills, melech sync, keep skills up to date |
Apply. Install missing skills and update stale ones. |
sync-melech-skills list, melech list, melech status |
Dry catalog only. Do not install. |
sync-melech-skills sync-local |
Authoring-repo zero-deviation copy (this checkout → local installs). |
Hard rules
- Global only. Every
npx skills/npm execcall uses-g. Never install into a repo,./.agents,./.cursor, or any project lock. - Every agent. Adds use
-a '*'. Do not target Cursor-only or Claude-only unless the user names one agent. - Non-interactive. Always
-y. Never run a promptable skills command. - Never run
npx skills check. It aliasesupdateand can mutate non-melech skills. Status = bundledstatus.py. Apply = bundledsync.py. - Melech skills only. Do not
skills update -gwith no names — that upgrades unrelated global skills. - Run CLI calls with
cwd= the user's home (the script already does this) so a random git repo cannot flip scope to project.
Apply (sync-melech-skills / melech sync)
Resolve this skill directory, then:
python3 <skill-dir>/scripts/sync.py
That script:
- Reads the remote catalog via
status.py --json. - Plans work for remote skills that are
new,outdated,untracked,broken-source, or missing~/.agents/skills/<name>/SKILL.md. - For each:
skills update <name> -g -ywhen outdated, thenskills add AdirD/agent-shell-hamelech --skill <name> -g -y -a '*'. - Leaves
remote-goneskills installed. Does not uninstall.
If npm is missing, stop and tell the user to install Node.js.
After apply, print the sync summary (planned / applied / failed). If anything failed, show that skill and the CLI error. Do not pretend the library is current.
Re-run python3 <skill-dir>/scripts/status.py only if they also want the
full catalog cards.
Dry catalog (sync-melech-skills list)
python3 <skill-dir>/scripts/status.py
python3 <skill-dir>/scripts/status.py --json
Repo checkout:
python3 skills/sync-melech-skills/scripts/status.py
Needs gh auth (preferred) or GITHUB_TOKEN / GH_TOKEN.
Remote-first. Every skill on GitHub is a row. Versions are skill-folder tree
SHAs in ~/.agents/.skill-lock.json, not semver.
| Status | Meaning | Apply does |
|---|---|---|
new |
on remote, not in the global lock | add -g -y -a '*' |
outdated |
lock SHA differs from remote | update -g -y, then add -g -y -a '*' |
current |
lock matches remote and ~/.agents/skills/<name> exists |
skip |
broken-source |
lock uses typo AdirD/agent-shel-hamelech |
re-add with the canonical slug |
untracked |
installed, no local hash | re-add |
remote-gone |
local only, deleted upstream | skip (do not remove) |
Authoring checkout only (sync-melech-skills sync-local)
After this repo's skills/ were edited and pushed, copy them across sibling
~/Dev checkouts and global agent dirs:
python3 scripts/sync-local-skills.py --apply
That is not a substitute for sync-melech-skills. sync.py pulls GitHub →
global lock. sync-local-skills.py copies this checkout → other local trees.
Voice
Sharp and short. Verdict first (N installed, M updated, K failed), then
names. Do not dump the full catalog after a clean sync unless they asked
for list.