skill-publisher
Skill0 starsChanged 8 months agoMITView on GitHub
End-to-end workflow for publishing agent skills to GitHub, ClawdHub, and skills.sh. Handles repo creation, topic tagging, ClawdHub publish, skills.sh index request, and installation verification. Use when: "publish skill", "上架 skill", "发布技能", "submit to skills.sh", "submit to clawhub", "skill 上架流程".
- Deletes or force-pushes
- Installs packages
- Commits and pushes
6 other projects use a version of this.
Adopted by
Most recently taken up by
- Weiming3/skill-publishertheir own version, first seen Nov 1, 2026
- csfuwwc/md-skillstheir own version, first seen Nov 1, 2026
- pablolok/claude-skillstheir own version, first seen Oct 13, 2026
- joeseesun/qiaomu-skill-publishertheir own version, first seen Jun 11, 2026
- easonc023-dev/skill-publishertheir own version, first seen May 24, 2026
- Liuzln/openclaw-skillstheir own version, first seen Mar 1, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- joeseesun/qiaomu-skill-publisher★ 38same name
- Liuzln/openclaw-skills★ 6same name
- csfuwwc/md-skills★ 4same name
- pablolok/claude-skills★ 1same name
- easonc023-dev/skill-publisher★ 0same name
- Weiming3/skill-publisher★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 10 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 51
Run phases sequentially. If the user only wants a specific phase (e.g., "just submit to skills.sh"), skip to that phase.
- Very specific: line 70
Read SKILL.md and verify YAML frontmatter contains:
- Distinctive: line 93
If the skill targets both Chinese and English users, check for:
- Very specific: line 145
Ask the user for their preferred GitHub repo name.
- Distinctive: line 147
Important: Check if the name is already taken on ClawdHub before creating the GitHub repo, so they can be consistent:
- Distinctive: line 153
If taken on ClawdHub, suggest alternatives and let the user choose a name that works on both platforms.
- Very specific: line 167
Add discoverable topics for skills.sh indexing and general discoverability:
- Distinctive: line 180
After repo creation, update all files that reference the repo:
- Distinctive: line 192
Commit and push the updates.
- Distinctive: line 208
If slug is taken, suggest alternatives based on the skill name.
- Very specific: line 274
Only the npx skills search / npx skills find discovery requires indexing
- Distinctive: line 278
Test all three installation methods sequentially.
- Distinctive: line 353
README install commands: Always update install commands in all README files after determining the final repo name and ClawdHub slug.
- Distinctive: line 354
Bilingual docs: If the skill has docs (e.g., user stories), create bilingual versions with language switcher links.
- Distinctive: line 355
Pre-commit privacy check: Before every git push, scan for real IP addresses, API keys, WiFi credentials, user-specific paths, and other PII.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Publisher
End-to-end publishing workflow for agent skills. Covers GitHub, ClawdHub, and skills.sh — from pre-flight checks to installation verification.
Language
Respond in the same language the user used to invoke this skill. Fall back to English if no language signal is found.
Prerequisites
command -v gh >/dev/null || echo "CRITICAL: gh (GitHub CLI) not found — install with: brew install gh"
command -v git >/dev/null || echo "CRITICAL: git not found"Optional (for ClawdHub publishing):
npx clawhub --help >/dev/null 2>&1 || echo "INFO: clawhub CLI not installed — needed for ClawdHub publishing"Workflow Overview
The full publishing pipeline has 6 phases:
1. Pre-flight Check → Validate skill structure and content
2. GitHub Publish → Create repo, push, add topics
3. ClawdHub Publish → Publish to ClawdHub registry
4. skills.sh Submit → Submit index request via GitHub issue
5. Install Verify → Test all installation methods
6. Post-publish → Summary with all links and install commandsRun phases sequentially. If the user only wants a specific phase (e.g., "just submit to skills.sh"), skip to that phase.
Phase 1: Pre-flight Check
Validate the skill directory before publishing. Check ALL of the following:
1.1 Required Files
SKILL_DIR="<path-to-skill>" # Ask user or infer from context
# Required
[ -f "$SKILL_DIR/SKILL.md" ] || echo "FAIL: SKILL.md missing"
[ -f "$SKILL_DIR/LICENSE" ] || echo "FAIL: LICENSE missing"
[ -f "$SKILL_DIR/README.md" ] || echo "FAIL: README.md missing"1.2 SKILL.md Frontmatter
Read SKILL.md and verify YAML frontmatter contains:
name— required, should be kebab-casedescription— required, should be descriptive (used by search engines and skill discovery)version— required, valid semver
Optional but recommended:
metadata.openclaw.emojimetadata.openclaw.homepagemetadata.openclaw.osmetadata.openclaw.requires.bins(list of required CLI tools)
1.3 README Quality
Check README.md for:
- Badges — at least License badge. Platform badge recommended.
- Description — clear one-liner explaining what the skill does.
- Install section — should have placeholder install commands (will be updated after publishing).
- No broken links — scan for URLs pointing to non-existent repos or placeholder orgs.
- No hardcoded user paths — scan for
/Users/xxx/or/home/xxx/patterns. - Secret redaction — no API keys, tokens, or passwords in plain text.
1.4 Bilingual README (Optional)
If the skill targets both Chinese and English users, check for:
README.zh-CN.mdexists- Both READMEs have language switcher links at the top
- Both have consistent content (same sections, same install commands)
1.5 Report
Present findings:
# Pre-flight Report
## Required Files
- [x] SKILL.md
- [x] LICENSE (MIT)
- [x] README.md
- [ ] README.zh-CN.md (optional, not found)
## SKILL.md Frontmatter
- name: my-skill
- version: 1.0.0
- description: OK (127 chars)
## Issues Found
- WARNING: README contains placeholder org "nicepkg" — update before publishing
- INFO: No .gitignore found (optional but recommended)
## Ready to publish? YES / NO (with blockers listed)Phase 2: GitHub Publish
2.1 Initialize Git Repo
cd "$SKILL_DIR"
git init
git add -A
git status # Review staged filesBefore committing, scan staged files for:
- Secrets (API keys, tokens, passwords)
- User-specific absolute paths (
/Users/xxx/) - Large binary files (> 1MB)
git commit -m "Initial release: <skill-name> v<version>"2.2 Determine Repo Name
Ask the user for their preferred GitHub repo name. Default: same as the skill's name field in SKILL.md frontmatter.
Important: Check if the name is already taken on ClawdHub before creating the GitHub repo, so they can be consistent:
npx clawhub inspect <proposed-name> 2>&1If taken on ClawdHub, suggest alternatives and let the user choose a name that works on both platforms.
2.3 Create GitHub Repo
gh repo create <owner>/<repo-name> \
--public \
--description "<skill description from SKILL.md>" \
--source . \
--push2.4 Add GitHub Topics
Add discoverable topics for skills.sh indexing and general discoverability:
gh repo edit <owner>/<repo-name> --add-topic agent-skill,claude-code-skillAdditional topic suggestions based on skill content:
- Category topics:
productivity,devtools,security,health-check, etc. - Platform topics:
macos,linux,openclaw - Technology topics:
eventkit,calendar, etc.
2.5 Update References
After repo creation, update all files that reference the repo:
README.md— badge links, install commands, git clone URLREADME.zh-CN.md— sameSKILL.md—metadata.openclaw.homepagedocs/— any user story or doc files with install commandsLICENSE— copyright holder
# Verify no stale references remain
grep -r "placeholder-org\|nicepkg\|example-user" "$SKILL_DIR" --include="*.md"Commit and push the updates.
Phase 3: ClawdHub Publish
3.1 Login
npx clawhub whoami 2>&1 || npx clawhub login3.2 Check Slug Availability
npx clawhub inspect <slug> 2>&1If slug is taken, suggest alternatives based on the skill name.
3.3 Publish
npx clawhub publish "$SKILL_DIR" \
--slug <slug> \
--name "<display-name>" \
--version <version> \
--changelog "<changelog text>"Known issue (as of clawhub CLI v0.7.0): The server requires acceptLicenseTerms: true in the publish payload, but the CLI doesn't include it. If you get:
Error: Publish payload: acceptLicenseTerms: invalid valueFix by patching the local CLI:
# Find the publish.js file
PUBLISH_JS="$(find ~/.npm/_npx -name 'publish.js' -path '*/clawhub/dist/cli/commands/*' 2>/dev/null | head -1)"
# Add acceptLicenseTerms to the payload
# In the JSON.stringify block, add: acceptLicenseTerms: true,Then retry the publish command.
3.4 Verify
npx clawhub inspect <slug>Phase 4: skills.sh Index Request
skills.sh does NOT auto-index skills. You must submit a request via GitHub issue.
4.1 Submit Index Request
gh issue create --repo vercel-labs/skills \
--title "Request to index skill: <owner>/<repo>" \
--body "$(cat <<'ISSUE_EOF'
## Skill Information
- **Repository:** https://github.com/<owner>/<repo>
- **Skill name:** <skill-name>
- **Install:** \`npx skills add <owner>/<repo>\`
- **License:** MIT
## Description
<2-3 sentence description of what the skill does and its key features>
ISSUE_EOF
)"4.2 Note to User
Explain that:
- The index request is reviewed by the vercel-labs/skills maintainers
- It may take days to be processed
- The
npx skills add <owner>/<repo>install command works immediately (it clones from GitHub directly) - Only the
npx skills search/npx skills finddiscovery requires indexing
Phase 5: Installation Verification
Test all three installation methods sequentially. Back up any existing installation first.
5.1 skills.sh
npx skills add <owner>/<repo> -g -y
# Verify: check installation path and file completeness
ls ~/.agents/skills/<skill-name>/ || ls ~/.claude/skills/<skill-name>/
# Cleanup
npx skills remove <skill-name> -g -y5.2 ClawdHub
npx clawhub install <slug>
# Verify
ls ~/clawd/skills/<slug>/
# Cleanup
npx clawhub uninstall <slug> --yes5.3 Manual Git Clone
git clone https://github.com/<owner>/<repo>.git /tmp/test-skill-install
# Verify
ls /tmp/test-skill-install/
# Cleanup
rm -rf /tmp/test-skill-install5.4 Report
# Installation Verification
| Method | Command | Result |
|--------|---------|--------|
| skills.sh | npx skills add <owner>/<repo> -g -y | OK / FAIL |
| ClawdHub | clawhub install <slug> | OK / FAIL |
| Manual | git clone ... | OK / FAIL |Phase 6: Post-publish Summary
Present a final summary with all links and commands:
# Published: <skill-name> v<version>
## Links
- GitHub: https://github.com/<owner>/<repo>
- ClawdHub: https://clawhub.ai/<owner>/<slug> (if published)
- skills.sh: pending indexing (issue #NNN)
## Install Commands
# skills.sh (recommended)
npx skills add <owner>/<repo> -g -y
# ClawdHub
clawhub install <slug>
# Manual
git clone https://github.com/<owner>/<repo>.git ~/.claude/skills/<skill-name>
## Next Steps
- [ ] Wait for skills.sh indexing (issue #NNN)
- [ ] Share the GitHub link
- [ ] Consider creating a GitHub Release with tag v<version>Important Notes
- Slug consistency: Try to use the same name on GitHub and ClawdHub. If ClawdHub slug is taken, rename the GitHub repo to match the available ClawdHub slug for consistency.
- README install commands: Always update install commands in all README files after determining the final repo name and ClawdHub slug.
- Bilingual docs: If the skill has docs (e.g., user stories), create bilingual versions with language switcher links. English docs should use internationally recognizable examples (Telegram, not Feishu).
- Pre-commit privacy check: Before every git push, scan for real IP addresses, API keys, WiFi credentials, user-specific paths, and other PII.
- ClawdHub CLI bug: The
acceptLicenseTermspatch is needed as of CLI v0.7.0. Check if newer versions fix this before patching.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

