Capstone: Publish Your Skill
Publish your skill to ClawHub and GitHub. Complete quality checklist, publishing workflow, and maintenance responsibilities for responsible skill creators.
Premium Course Content
This lesson is part of a premium course. Upgrade to Pro to unlock all premium courses and content.
- Access all premium courses
- 1000+ AI skill templates included
- New content added weekly
Ship It (Responsibly)
🔄 Quick Recall: Over the last 7 lessons, you’ve learned the AgentSkills spec (Lesson 1), built your first skill (Lesson 2), added parameters (Lesson 3), connected APIs (Lesson 4), tested thoroughly (Lesson 5), orchestrated multi-step workflows (Lesson 6), and secured against the 7 attack vectors (Lesson 7). Now let’s put your skill in front of real users.
Publishing a skill is easy. Publishing a good skill — one that’s useful, secure, and well-maintained — is what this lesson is about.
The Publishing Landscape
You have four main channels, each with different audiences and quality expectations:
| Channel | Barrier to Entry | Audience | Quality Bar |
|---|---|---|---|
| ClawHub | SKILL.md + 1-week GitHub account | OpenClaw users (5,700+ skills) | Low (community-moderated) |
| GitHub (public repo) | GitHub account | All agent users | Varies (self-published) |
| SkillsMP | Publish to GitHub with 2+ stars | Cross-platform discovery (25,000+) | Low-medium (auto-aggregated) |
| anthropics/skills | Invitation/partner submission | Claude ecosystem | High (curated by Anthropic) |
For most skill creators, GitHub + ClawHub is the path. Publish to GitHub first, then submit to ClawHub.
Pre-Publishing Quality Checklist
Before your skill goes public, verify every item:
Content Quality
- Description is precise — an AI can determine exactly when to use this skill
- Instructions are complete — no assumptions about user knowledge
- Templates are explicit — show the exact output format
- Edge cases are handled — what happens with empty, unusual, or adversarial input?
- Error messages are helpful — not “Error” but “API key not set. Run: export API_KEY=…”
Documentation
- README.md exists with: what the skill does, setup instructions, example usage, required environment variables
- No screenshots of text — all examples are copy-pasteable
- License specified (MIT, Apache 2.0, or your preference)
- Required permissions listed — what tools/access does the skill need?
Security (From Lesson 7)
- Cisco Skill Scanner: zero findings
- No hardcoded credentials anywhere
-
allowed-toolsrestricts unnecessary capabilities -
disable-model-invocation: truefor side-effect skills - No memory modification instructions
- All dependencies pinned to specific versions
- Tested with adversarial input (prompt injection attempts)
✅ Quick Check: Your skill passes all quality and security checks. You’re about to publish. What’s one thing you should do first? (Answer: Test it on a clean environment — a fresh agent that doesn’t have your personal configuration, memory, or API keys. If it doesn’t work there, it won’t work for your users.)
Publishing to GitHub
Step 1: Create a repository
# Create a new repo for your skill
mkdir meeting-notes-formatter
cd meeting-notes-formatter
git init
Step 2: Organize your files
meeting-notes-formatter/
├── SKILL.md # Required — the skill itself
├── README.md # Required for GitHub discoverability
├── LICENSE # Recommended (MIT, Apache 2.0, etc.)
├── scripts/ # Optional — executable scripts
│ └── ...
├── references/ # Optional — domain knowledge
│ └── ...
└── assets/ # Optional — templates, configs
└── ...
Step 3: Write a proper README
# Meeting Notes Formatter
Formats raw meeting notes into structured documents with attendees,
decisions, action items, and next steps.
## Quick Start
1. Copy this folder to `.openclaw/skills/` (or `.claude/skills/`)
2. Restart your agent
3. Send meeting notes and ask the agent to format them
## Requirements
- No API keys needed
- No external dependencies
- Works with Claude, GPT, or any Agent Skills-compatible agent
## Example
**Input:** "Met with Sarah and David about Q2 budget..."
**Output:** Structured meeting summary with action items table
## Compatibility
- OpenClaw ✅
- Claude Code ✅
- VS Code Copilot ✅
- Codex CLI ✅
## License
MIT
Step 4: Push to GitHub
git add .
git commit -m "Initial release: meeting notes formatter skill"
git remote add origin https://github.com/yourusername/meeting-notes-formatter
git push -u origin main
Publishing to ClawHub
After your GitHub repo is live:
- Go to clawhub.ai and sign in with your GitHub account
- Submit your repository URL
- ClawHub indexes the SKILL.md, assigns a version, and runs VirusTotal scanning
- Your skill appears in search results (typically within 24 hours)
What happens next:
- VirusTotal scans your skill and assigns a status (Benign/Suspicious/Malicious)
- Users can report issues (3+ reports auto-hide a skill)
- You receive notifications about issues and download stats
Maintaining Your Skill
Publishing isn’t the end — it’s the beginning of a responsibility:
Respond to Security Reports
If a user or researcher reports a vulnerability:
- Acknowledge within 24 hours
- Investigate the report
- Release a patched version
- Notify affected users transparently
- Credit the reporter (if they want)
Handle Updates Carefully
When updating your skill:
- Non-breaking changes (better instructions, new features): update and publish
- Breaking changes (different input format, removed features): bump version, document changes, give users migration guidance
- Security patches: update immediately, note the fix in the changelog
Monitor for Misuse
Your skill could be forked and modified maliciously. Periodically search ClawHub and GitHub for derivatives of your skill. If you find a malicious fork, report it.
✅ Quick Check: Someone forked your skill and added a
scripts/install.shthat downloads suspicious software. What should you do? (Answer: Report the fork to both GitHub and ClawHub. If the original skill’s name is used, file a report for impersonation. Notify your users about the malicious fork so they don’t accidentally install it.)
Course Review: Your Skill-Building Toolkit
| Lesson | What You Learned | Key Tool/Technique |
|---|---|---|
| 1. Anatomy | AgentSkills spec, progressive disclosure | SKILL.md structure |
| 2. First Skill | Building from scratch, instruction writing | Skill folder + SKILL.md |
| 3. Parameters | Dynamic input, shell expansion, invocation controls | $ARGUMENTS, !commands |
| 4. APIs | Credential isolation, authentication patterns | Environment variables, OAuth |
| 5. Testing | Quality + security validation | Promptfoo + Cisco Skill Scanner |
| 6. Multi-Step | Orchestration patterns | Subagents, prompt chains, task DAGs |
| 7. Security | 7 attack vectors and defenses | Security checklist |
| 8. Publishing | Quality standards, platforms, maintenance | GitHub + ClawHub workflow |
Where to Go From Here
Continue building:
- Browse
anthropics/skillson GitHub for well-crafted examples - Study popular skills on ClawHub to see what users want
- Join the OpenClaw community Discord for skill development discussions
Continue learning:
- Don’t Trust Your AI Agent (our security deep-dive course) covers the OWASP framework for AI agent security in depth
- Follow Snyk’s security research blog for the latest skill vulnerability findings
- Read the OpenSSF Security-Focused Guide for AI Code Assistant Instructions
Build something that matters. The skill ecosystem is young. The best skills haven’t been built yet. You now have every tool you need to create them safely.
Key Takeaways
- Four publishing channels with different barriers and audiences (ClawHub, GitHub, SkillsMP, anthropics/skills)
- Quality checklist: 5 content items, 4 documentation items, 7 security items — all must pass
- Test on a clean environment before publishing — not your personal setup
- Publishing is the beginning of maintenance — respond to reports, update carefully, monitor for misuse
- Breaking changes need migration guidance — don’t surprise your users
- The skill ecosystem is young — there’s room for well-built, secure skills in every domain
Knowledge Check
Complete the quiz above first
Lesson completed!