publish-skill
Installation
SKILL.md
publish-skill
Publishes a locally-authored skill (~/.claude/skills/<name>/) to mqmalagris/agent-skills (a dual-format Claude-marketplace + bunx skills repo). The script does all mechanical work idempotently; you supply the two editorial bits it can't guess: category and keywords.
Do not use this for third-party skills — those belong in the repo's THIRD_PARTY.md, not vendored. al-cli stays out entirely (Arctic Leaf internal).
Steps
- Confirm it's the user's own skill. If it's a fork/adaptation, note the upstream so the description can attribute it (the repo credits adapted skills). Bail if it's third-party.
- Decide category + keywords. Read the skill's
SKILL.md. Category matches the repo's groups:engineering-workflow,security,development,reporting,career,product,meta,marketing. Keywords: 3-6 kebab tags. The script derives a concise description from the SKILL.md frontmatter unless you pass--description. - Run the script (kebab-case skill name = its dir name):
It refreshes a repo cache, copies the skill, mintspython3 ~/.claude/skills/publish-skill/scripts/publish_skill.py <skill-name> \ --category <category> --keywords tag-a,tag-b,tag-cplugin.json, upsertsmarketplace.json, validates all JSON, commits, and pushes tomain(verifying the remote SHA). Use--no-pushto stop at the local commit,--dry-runto prepare without committing,--description "..."/--version X.Y.Zto override. - Update the README table. The script prints a suggested row and the target
skills/path. Add that row to the right group section in the repo'sREADME.md, then commit + push it (the script does not touch README — groupings are editorial). Skip only if the user says the README doesn't matter. - Report the pushed commit SHA and the install commands:
bunx skills add mqmalagris/agent-skills -s <name>and/plugin install <name>@agent-skills.