acastellana/skill-publisher-claw-skill/SKILL.md
# Skill Publisher Prepare a skill for public release. Run through this checklist before publishing any skill to ensure it's reusable, clean, safe, and well-documented. ## When to Use - Before pushing a skill to a public repo - Before submitting to ClawdHub - When reviewing someone else's skill - Periodic audits of existing published skills ## Quick Checklist Run through these in order. Each section has detailed guidance below. ``` [ ] 1. STRUCTURE - Required files present, logical organ
npx skillsauth add openclaw/skills acastellana/skill-publisher-claw-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Prepare a skill for public release. Run through this checklist before publishing any skill to ensure it's reusable, clean, safe, and well-documented.
Run through these in order. Each section has detailed guidance below.
[ ] 1. STRUCTURE - Required files present, logical organization
[ ] 2. SECURITY - No secrets, keys, PII, or sensitive data
[ ] 3. PORTABILITY - No hardcoded paths, works on any machine
[ ] 4. QUALITY - Clean code, no debug artifacts
[ ] 5. DOCS - README, SKILL.md, examples complete
[ ] 6. TESTING - Verified it actually works
[ ] 7. GIT - Clean history, proper .gitignore, good commits
[ ] 8. METADATA - License, description, keywords
skill-name/
├── SKILL.md # REQUIRED - Entry point, when to use, quick reference
├── README.md # REQUIRED - For GitHub/humans
└── [content files] # The actual skill content
Must include:
# Skill Name
One-line description of what this skill does.
## When to Use
- Trigger condition 1
- Trigger condition 2
## Quick Reference
[Most important info here]
## [Additional Sections]
[Detailed content]
❌ Single massive file with everything
❌ Cryptic filenames (data1.md, stuff.md)
❌ Circular dependencies between files
❌ Missing SKILL.md entry point
Search for and REMOVE:
# Run in skill directory
grep -rniE "(api[_-]?key|secret|password|token|bearer|auth)" . --include="*.md"
grep -rniE "([a-zA-Z0-9]{32,})" . --include="*.md" # Long strings that might be keys
grep -rniE "(sk-|pk-|xai-|ghp_|gho_)" . --include="*.md" # Common key prefixes
Search for and REMOVE:
grep -rniE "(@gmail|@yahoo|@hotmail|@proton)" . --include="*.md"
grep -rniE "\+?[0-9]{10,}" . --include="*.md" # Phone numbers
grep -rniE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" . --include="*.md" # IPs
If examples need realistic data, use:
[email protected] for emails192.0.2.x for IPs (RFC 5737 documentation range)example.com for domainsSearch and fix:
grep -rniE "(\/home\/|\/Users\/|C:\\\\|~\/)" . --include="*.md"
grep -rniE "\/[a-z]+\/[a-z]+\/" . --include="*.md" # Absolute paths
Replace with:
./config.yaml)$HOME, $XDG_CONFIG_HOME)If the skill requires external tools:
## Requirements
- `tool-name` - [installation link]
- Environment variable `API_KEY` must be set
Remove:
grep -rniE "(TODO|FIXME|XXX|HACK|DEBUG)" . --include="*.md"
grep -rniE "(console\.log|print\(|debugger)" . --include="*.md"
python, bash)# Skill Name
Brief description (1-2 sentences).
## What's Inside
[File listing with descriptions]
## Quick Summary
[The core value proposition]
## Usage
[How to use this skill]
## Requirements (if any)
[Dependencies, API keys, etc.]
## Links (if relevant)
[Official docs, repos, etc.]
## License
[MIT recommended for skills]
If skill involves tools/commands:
# Test each command mentioned actually works
# Verify outputs match documentation
Create test.sh or document manual test steps:
#!/bin/bash
# Verify skill integrity
echo "Checking for secrets..."
grep -rniE "(api[_-]?key|secret|password)" . --include="*.md" && exit 1
echo "Checking for hardcoded paths..."
grep -rniE "\/home\/" . --include="*.md" && exit 1
echo "✓ All checks passed"
Create .gitignore:
# OS files
.DS_Store
Thumbs.db
# Editor files
*.swp
*.swo
*~
.idea/
.vscode/
# Temporary files
*.tmp
*.bak
# Test artifacts
test-output/
# Check for secrets in history
git log -p | grep -iE "(api[_-]?key|secret|password|token)"
If secrets were ever committed:
# Nuclear option - rewrite history (coordinate with collaborators!)
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch path/to/sensitive/file' HEAD
type: short description
- Detail 1
- Detail 2
Types: feat, fix, docs, refactor, test, chore
# Final verification
git status # Nothing unexpected staged
git log --oneline -5 # Commits look right
git diff origin/main # Changes are what you expect
claw, skill, ai-assistant)For open skills, MIT is simple and permissive:
MIT License
Copyright (c) [year] [name]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
In SKILL.md frontmatter:
---
name: skill-name
description: One-line description
version: 1.0.0
author: username
tags: [tag1, tag2]
---
Run this before every publish:
#!/bin/bash
set -e
SKILL_DIR="${1:-.}"
cd "$SKILL_DIR"
echo "🔍 Auditing skill in: $SKILL_DIR"
echo ""
# 1. Structure
echo "=== STRUCTURE ==="
[ -f "SKILL.md" ] && echo "✓ SKILL.md exists" || echo "✗ SKILL.md MISSING"
[ -f "README.md" ] && echo "✓ README.md exists" || echo "✗ README.md MISSING"
echo ""
# 2. Security
echo "=== SECURITY ==="
if grep -rniE "(api[_-]?key|secret|password|token|bearer)=['\"]?[a-zA-Z0-9]" . --include="*.md" 2>/dev/null; then
echo "✗ POTENTIAL SECRETS FOUND"
else
echo "✓ No obvious secrets"
fi
if grep -rniE "(sk-|pk-|xai-|ghp_|gho_)[a-zA-Z0-9]" . --include="*.md" 2>/dev/null; then
echo "✗ API KEY PATTERNS FOUND"
else
echo "✓ No API key patterns"
fi
echo ""
# 3. Portability
echo "=== PORTABILITY ==="
if grep -rniE "\/home\/[a-z]+" . --include="*.md" 2>/dev/null; then
echo "✗ HARDCODED HOME PATHS"
else
echo "✓ No hardcoded home paths"
fi
echo ""
# 4. Quality
echo "=== QUALITY ==="
if grep -rniE "(TODO|FIXME|XXX)" . --include="*.md" 2>/dev/null; then
echo "⚠ TODOs found (review these)"
else
echo "✓ No TODOs"
fi
echo ""
# 5. Git
echo "=== GIT ==="
[ -f ".gitignore" ] && echo "✓ .gitignore exists" || echo "⚠ No .gitignore"
[ -d ".git" ] && echo "✓ Git initialized" || echo "✗ Not a git repo"
echo ""
echo "🏁 Audit complete"
1. Run automated audit script
2. Fix any issues found
3. Manual review of checklist above
4. Final commit with clean message
5. Push to GitHub
6. (Optional) Submit to ClawdHub
A good README is discoverable and human-readable. See docs/readme-quality.md for detailed guidance.
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。