skill-creator
此技能适用于用户请求创建新技能、构建技能、制作自定义技能、开发CLI技能,或希望扩展CLI功能时。它能自动完成从构思到安装的整个技能创建工作流程。
skill-creator
Purpose
To create new CLI skills following Anthropic's official best practices with zero manual configuration. This skill automates brainstorming, template application, validation, and installation processes while maintaining progressive disclosure patterns and writing style standards.
When to Use This Skill
This skill should be used when:
Core Capabilities
Step 0: Discovery
Before starting skill creation, gather runtime information:
# Detect available platforms
COPILOT_INSTALLED=false
CLAUDE_INSTALLED=false
CODEX_INSTALLED=falseif command -v gh &>/dev/null && gh copilot --version &>/dev/null 2>&1; then
COPILOT_INSTALLED=true
fi
if [[ -d "$HOME/.claude" ]]; then
CLAUDE_INSTALLED=true
fi
if [[ -d "$HOME/.codex" ]]; then
CODEX_INSTALLED=true
fi
Determine working directory
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
SKILLS_REPO="$REPO_ROOT"Check if in cli-ai-skills repository
if [[ ! -d "$SKILLS_REPO/.github/skills" ]]; then
echo "⚠️ Not in cli-ai-skills repository. Creating standalone skill."
STANDALONE=true
fiGet user info from git config
<div class="overflow-x-auto my-6"><table class="min-w-full divide-y divide-border border border-border"><thead><tr><th class="px-4 py-2 text-left text-sm font-semibold text-foreground bg-muted/50">AUTHOR=$(git config user.name</th><th class="px-4 py-2 text-left text-sm font-semibold text-foreground bg-muted/50">echo "Unknown")</th></tr></thead><tbody class="divide-y divide-border"></tbody></table></div>Key Information Needed:
Main Workflow
Progress Tracking Guidelines
Throughout the workflow, display a visual progress bar before starting each phase to keep the user informed. The progress bar format is:
[████████████░░░░░░] 60% - Step 3/5: Creating SKILL.mdFormat specifications:
Display the progress bar using:
echo "[████░░░░░░░░░░░░░░] 20% - Step 1/5: Brainstorming & Planning"Phase 1: Brainstorming & Planning
Progress: Display before starting this phase:
echo "[████░░░░░░░░░░░░░░] 20% - Step 1/5: Brainstorming & Planning"Display progress:
╔══════════════════════════════════════════════════════════════╗
║ 🛠️ SKILL CREATOR - Creating New Skill ║
╠══════════════════════════════════════════════════════════════╣
║ → Phase 1: Brainstorming [10%] ║
║ ○ Phase 2: Prompt Refinement ║
║ ○ Phase 3: File Generation ║
║ ○ Phase 4: Validation ║
║ ○ Phase 5: Installation ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: ███░░░░░░░░░░░░░░░░░░░░░░░░░░░ 10% ║
╚══════════════════════════════════════════════════════════════╝Ask the user:
- Example: "Help users debug Python code by analyzing stack traces"
- Example: "debug Python error", "analyze stack trace", "fix Python exception"
- [ ] General purpose (default template)
- [ ] Code generation/modification
- [ ] Documentation creation/maintenance
- [ ] Analysis/investigation
- [ ] GitHub Copilot CLI
- [ ] Claude Code
- [ ] Codex
- [ ] All three (recommended)
- Example: "Analyzes Python stack traces and suggests fixes"
Capture responses and prepare for next phase.
Phase 2: Prompt Enhancement (Optional)
Progress: Display before starting this phase:
echo "[████████░░░░░░░░░░] 40% - Step 2/5: Prompt Enhancement"Update progress:
╔══════════════════════════════════════════════════════════════╗
║ ✓ Phase 1: Brainstorming ║
║ → Phase 2: Prompt Refinement [30%] ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: █████████░░░░░░░░░░░░░░░░░░░░░ 30% ║
╚══════════════════════════════════════════════════════════════╝Ask the user:
"Would you like to refine the skill description using the prompt-engineer skill?"
If Yes:
If No or prompt-engineer unavailable:
Phase 3: File Generation
Progress: Display before starting this phase:
echo "[████████████░░░░░░] 60% - Step 3/5: File Generation"Update progress:
╔══════════════════════════════════════════════════════════════╗
║ ✓ Phase 1: Brainstorming ║
║ ✓ Phase 2: Prompt Refinement ║
║ → Phase 3: File Generation [50%] ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: ███████████████░░░░░░░░░░░░░░░ 50% ║
╚══════════════════════════════════════════════════════════════╝Generate skill structure:
# Convert skill name to kebab-case
SKILL_NAME=$(echo "$USER_INPUT" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')Create directories
if [[ "$PLATFORM" =~ "copilot" ]]; then
mkdir -p ".github/skills/$SKILL_NAME"/{references,examples,scripts}
fiif [[ "$PLATFORM" =~ "claude" ]]; then
mkdir -p ".claude/skills/$SKILL_NAME"/{references,examples,scripts}
fi
if [[ "$PLATFORM" =~ "codex" ]]; then
mkdir -p ".codex/skills/$SKILL_NAME"/{references,examples,scripts}
fi
Apply templates:
-
skill-template-copilot.md, skill-template-claude.md, or skill-template-codex.md- Substitute placeholders:
-
{{SKILL_NAME}} → kebab-case name-
{{DESCRIPTION}} → one-line description-
{{TRIGGERS}} → comma-separated trigger phrases-
{{PURPOSE}} → detailed purpose from brainstorming-
{{AUTHOR}} → from git config-
{{DATE}} → current date (YYYY-MM-DD)-
{{VERSION}} → "1.0.0"readme-template.md:- User-facing documentation (300-500 words)
- Include installation instructions
- Add usage examples
- Create
detailed-guide.md for extended documentation (2k-5k words)- Move lengthy content here to keep SKILL.md under 2k words
File creation commands:
# Apply template with substitution
sed "s/{{SKILL_NAME}}/$SKILL_NAME/g; \
s/{{DESCRIPTION}}/$DESCRIPTION/g; \
s/{{AUTHOR}}/$AUTHOR/g; \
s/{{DATE}}/$(date +%Y-%m-%d)/g" \
resources/templates/skill-template-copilot.md \
> ".github/skills/$SKILL_NAME/SKILL.md"Create README
sed "s/{{SKILL_NAME}}/$SKILL_NAME/g" \
resources/templates/readme-template.md \
> ".github/skills/$SKILL_NAME/README.md"Apply template for Codex if selected
if [[ "$PLATFORM" =~ "codex" ]]; then
sed "s/{{SKILL_NAME}}/$SKILL_NAME/g; \
s/{{DESCRIPTION}}/$DESCRIPTION/g; \
s/{{AUTHOR}}/$AUTHOR/g; \
s/{{DATE}}/$(date +%Y-%m-%d)/g" \
resources/templates/skill-template-codex.md \
> ".codex/skills/$SKILL_NAME/SKILL.md"
sed "s/{{SKILL_NAME}}/$SKILL_NAME/g" \
resources/templates/readme-template.md \
> ".codex/skills/$SKILL_NAME/README.md"
fiDisplay created structure:
✅ Created:
.github/skills/your-skill-name/ (if Copilot selected)
.claude/skills/your-skill-name/ (if Claude selected)
.codex/skills/your-skill-name/ (if Codex selected)
├── SKILL.md (832 lines)
├── README.md (347 lines)
├── references/
├── examples/
└── scripts/Phase 4: Validation
Progress: Display before starting this phase:
echo "[████████████████░░] 80% - Step 4/5: Validation"Update progress:
╔══════════════════════════════════════════════════════════════╗
║ ✓ Phase 3: File Generation ║
║ → Phase 4: Validation [70%] ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: █████████████████████░░░░░░░░░ 70% ║
╚══════════════════════════════════════════════════════════════╝Run validation scripts:
# Validate YAML frontmatter
scripts/validate-skill-yaml.sh ".github/skills/$SKILL_NAME"Validate content quality
scripts/validate-skill-content.sh ".github/skills/$SKILL_NAME"Expected output:
🔍 Validating YAML frontmatter...
✅ YAML frontmatter valid!🔍 Validating content...
✅ Word count excellent: 1847 words
✅ Content validation complete!
If validation fails:
Common auto-fixes:
Phase 5: Installation
Progress: Display before starting this phase:
echo "[████████████████████] 100% - Step 5/5: Installation"Update progress:
╔══════════════════════════════════════════════════════════════╗
║ ✓ Phase 4: Validation ║
║ → Phase 5: Installation [90%] ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: ██████████████████████████░░░░░ 90% ║
╚══════════════════════════════════════════════════════════════╝Ask the user:
"How would you like to install this skill?"
.github/skills/ (works when in repo)~/.copilot/skills/ (works everywhere)If global installation selected:
# Detect which platforms to install for
INSTALL_TARGETS=()if [[ "$COPILOT_INSTALLED" == "true" ]] && [[ "$PLATFORM" =~ "copilot" ]]; then
INSTALL_TARGETS+=("copilot")
fi
if [[ "$CLAUDE_INSTALLED" == "true" ]] && [[ "$PLATFORM" =~ "claude" ]]; then
INSTALL_TARGETS+=("claude")
fi
if [[ "$CODEX_INSTALLED" == "true" ]] && [[ "$PLATFORM" =~ "codex" ]]; then
INSTALL_TARGETS+=("codex")
fi
Ask user to confirm detected platforms
echo "Detected platforms: ${INSTALL_TARGETS[]}"
echo "Install for these platforms? [Y/n]"Installation process:
# GitHub Copilot CLI
if [[ " ${INSTALL_TARGETS[]} " =~ " copilot " ]]; then
ln -sf "$SKILLS_REPO/.github/skills/$SKILL_NAME" \
"$HOME/.copilot/skills/$SKILL_NAME"
echo "✅ Installed for GitHub Copilot CLI"
fiClaude Code
if [[ " ${INSTALL_TARGETS[]} " =~ " claude " ]]; then
ln -sf "$SKILLS_REPO/.claude/skills/$SKILL_NAME" \
"$HOME/.claude/skills/$SKILL_NAME"
echo "✅ Installed for Claude Code"
fiCodex
if [[ " ${INSTALL_TARGETS[]} " =~ " codex " ]]; then
ln -sf "$SKILLS_REPO/.codex/skills/$SKILL_NAME" \
"$HOME/.codex/skills/$SKILL_NAME"
echo "✅ Installed for Codex"
fiVerify installation:
# Check symlinks
ls -la ~/.copilot/skills/$SKILL_NAME 2>/dev/null
ls -la ~/.claude/skills/$SKILL_NAME 2>/dev/null
ls -la ~/.codex/skills/$SKILL_NAME 2>/dev/nullPhase 6: Completion
Progress: Display completion message:
echo "[████████████████████] 100% - ✓ Skill created successfully!"Update progress:
╔══════════════════════════════════════════════════════════════╗
║ ✓ Phase 5: Installation ║
║ ✅ SKILL CREATION COMPLETE! ║
╠══════════════════════════════════════════════════════════════╣
║ Progress: ██████████████████████████████ 100% ║
╚══════════════════════════════════════════════════════════════╝Display summary:
🎉 Skill created successfully!📦 Skill Name: your-skill-name
📁 Location: .github/skills/your-skill-name/
🔗 Installed: Global (Copilot + Claude)
📋 Files Created:
✅ SKILL.md (1,847 words)
✅ README.md (423 words)
✅ references/ (empty, ready for extended docs)
✅ examples/ (empty, ready for code samples)
✅ scripts/ (empty, ready for utilities)
🚀 Next Steps:
1. Test the skill: Try trigger phrases in CLI
2. Add examples: Create working code samples in examples/
3. Extend docs: Add detailed guides to references/
4. Commit changes: git add .github/skills/your-skill-name && git commit
5. Share: Push to repository for team use
💡 Pro Tips:
- Keep SKILL.md under 2,000 words (currently: 1,847)
- Move detailed content to references/ folder
- Add executable scripts to scripts/ folder
- Update README.md with real usage examples
- Run validation before committing: scripts/validate-skill-yaml.sh
Error Handling
Platform Detection Issues
If platforms cannot be detected:
⚠️ Unable to detect GitHub Copilot CLI or Claude Code
Would you like to:
Install for repository only (works when in repo)
Specify platform manually
Skip installation Template Not Found
If templates are missing:
❌ Error: Template not found at resources/templates/This skill requires the cli-ai-skills repository structure.
Options:
Clone cli-ai-skills: git clone <repo-url>
Create minimal skill structure manually
Exit and set up templates first Validation Failures
If content doesn't meet standards:
⚠️ Validation Issues Found:YAML: Description not in third-person format
Expected: "This skill should be used when..."
Found: "Use this skill when..."
Content: Word count too high (5,342 words, max 5,000)
Suggestion: Move detailed sections to references/Fix automatically? [Y/n]
Installation Conflicts
If symlink already exists:
⚠️ Skill already installed at ~/.copilot/skills/your-skill-nameOptions:
Overwrite existing installation
Rename new skill
Skip installation
Install to different location Bundled Resources
This skill includes additional resources in subdirectories:
references/
Detailed documentation loaded when needed:
anthropic-best-practices.md - Official Anthropic skill development guidelineswriting-style-guide.md - Writing standards and examplesprogressive-disclosure.md - Content organization patternsvalidation-checklist.md - Pre-commit quality checksexamples/
Working examples demonstrating skill usage:
basic-skill-creation.md - Simple skill creation walkthroughadvanced-skill-bundled-resources.md - Complex skill with references/global-installation.md - Installing skills system-widescripts/
Executable utilities for skill maintenance:
validate-all-skills.sh - Batch validation of all skills in repositoryupdate-skill-version.sh - Bump version and update changeloggenerate-skill-index.sh - Auto-generate skills catalogTechnical Implementation Notes
Template Substitution:
sed for simple replacementsSymlink Strategy:
ln -sf /full/path/to/source ~/.copilot/skills/nameValidation Integration:
Git Integration:
git config user.namegit rev-parse --show-toplevel.gitignore patternsQuality Standards
SKILL.md Requirements:
README.md Requirements:
Validation Checks:
References
resources/templates/writing-style-guide.mdresources/templates/progress-tracker.md