Skip to main content
ClaudeWave
Skill617 repo starsupdated 3d ago

skill-creator

The skill-creator generates complete Anthropic Skills with integrated GitHub workflows, including PR creation and local verification. Use this when building new skills that require structured documentation, supporting scripts, and automated Git operations from requirements gathering through local download validation.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/lofcz/LLMTornado /tmp/skill-creator && cp -r /tmp/skill-creator/src/LlmTornado.Tests/Static/Files/Skills/skill-creator ~/.claude/skills/skill-creator
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

## Skill Creation and GitHub Workflow

Copy this checklist and track your progress:

```
Skill Creation Progress:
- [ ] Step 1: Gather skill requirements and specifications
- [ ] Step 2: Generate skill structure and SKILL.md
- [ ] Step 3: Create supporting scripts and files
- [ ] Step 4: Validate skill completeness
- [ ] Step 5: Prepare GitHub repository structure
- [ ] Step 6: Create and push Git branch
- [ ] Step 7: Generate pull request
- [ ] Step 8: Download to local disk
- [ ] Step 9: Verify local download
```

## **Step 1: Gather skill requirements and specifications**

Collect the following information from the user:
- **Skill name**: Kebab-case name (e.g., "data-analyzer")
- **Description**: Brief one-line description
- **Primary functionality**: What the skill does
- **Workflow steps**: Sequential steps for execution
- **Required tools**: Any external tools or dependencies
- **Trigger words**: Keywords that activate this skill
- **Expected inputs**: What the user provides
- **Expected outputs**: What the skill produces

## **Step 2: Generate skill structure and SKILL.md**

Create the main SKILL.md file with this structure:

```markdown
---
name: [skill-name]
description: [Brief description of what this skill does]
---

## [Skill Title]

Copy this checklist and track your progress:

```
[Skill Name] Progress:
- [ ] Step 1: [First step]
- [ ] Step 2: [Second step]
- [ ] Step 3: [Third step]
...
```

## **Step 1: [First Step Name]**
[Detailed instructions for first step]

## **Step 2: [Second Step Name]**
[Detailed instructions for second step]

[Continue for all steps...]
```

## **Step 3: Create supporting scripts and files**

If the skill requires automation, create:
- **Python scripts**: For complex logic or API interactions
- **Bash scripts**: For system operations and Git workflows
- **Config files**: For settings and parameters
- **README.md**: Usage instructions and examples

## **Step 4: Validate skill completeness**

Check that the skill includes:
- [ ] Clear, sequential workflow steps
- [ ] Specific, actionable instructions
- [ ] Progress tracking checklist
- [ ] All necessary files
- [ ] Proper markdown formatting
- [ ] Front matter with name and description

## **Step 5: Prepare GitHub repository structure**

Create the skill in this structure:
```
/tmp/[skill-name]/
├── SKILL.md
├── README.md (optional)
└── [other supporting files]
```

## **Step 6: Create and push Git branch**

Execute the following Git workflow:

```bash
# Clone the repository (if not already present)
cd /tmp
git clone https://github.com/[username]/Agent-Skills.git
cd Agent-Skills

# Create a new branch for the skill
git checkout -b add-[skill-name]-skill

# Copy skill files to the repository
mkdir -p skills/[skill-name]
cp -r /tmp/[skill-name]/* skills/[skill-name]/

# Stage and commit changes
git add skills/[skill-name]/
git commit -m "Add [skill-name] skill: [brief description]"

# Push to GitHub
git push origin add-[skill-name]-skill
```

**Note**: This requires GitHub authentication. User must provide:
- GitHub Personal Access Token (PAT), OR
- SSH key configuration, OR
- GitHub CLI authentication

## **Step 7: Generate pull request**

Create a PR using one of these methods:

### Method A: GitHub CLI (Recommended)
```bash
gh pr create \
  --title "Add [skill-name] skill" \
  --body "This PR adds a new skill for [description].\n\n## What's included:\n- SKILL.md with complete workflow\n- [other files]\n\n## Testing:\n- [ ] Validated structure\n- [ ] Tested workflow\n- [ ] Documentation complete" \
  --base main \
  --head add-[skill-name]-skill
```

### Method B: GitHub API
```bash
curl -X POST \
  -H "Authorization: token ${GITHUB_TOKEN}" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/[username]/Agent-Skills/pulls \
  -d '{
    "title": "Add [skill-name] skill",
    "body": "Description of changes",
    "head": "add-[skill-name]-skill",
    "base": "main"
  }'
```

### Method C: Manual (if API unavailable)
Provide the user with:
- Branch name: `add-[skill-name]-skill`
- Direct URL to create PR: `https://github.com/[username]/Agent-Skills/compare/main...add-[skill-name]-skill`

## **Step 8: Download to local disk**

Copy the skill to OUTPUT_DIR for local download:

```bash
# Copy all skill files to output directory
cp -r /tmp/[skill-name] $OUTPUT_DIR/

# Create a packaged version
cd /tmp
tar -czf [skill-name].tar.gz [skill-name]/
cp [skill-name].tar.gz $OUTPUT_DIR/
```

## **Step 9: Verify local download**

Perform verification:

```bash
# Verify files exist before copying to OUTPUT_DIR
ls -la /tmp/[skill-name]/
cat /tmp/[skill-name]/SKILL.md | head -20

# After copying, confirm in persistent storage
ls -la /tmp/[skill-name]/
echo "✓ Skill files ready for download"
echo "✓ Location: /tmp/[skill-name]/"
echo "✓ Files will be automatically downloaded"
```

Provide user confirmation:
- ✓ Skill created: `/tmp/[skill-name]/`
- ✓ GitHub branch pushed: `add-[skill-name]-skill`
- ✓ Pull request created: [PR URL]
- ✓ Files downloaded to your PC
- ✓ Verification complete

## Additional Notes

### GitHub Authentication Options

1. **Personal Access Token (PAT)**:
   - Create at: https://github.com/settings/tokens
   - Required scopes: `repo`, `workflow`
   - Use: `export GITHUB_TOKEN="your_token_here"`

2. **GitHub CLI**:
   - Pre-authenticate with: `gh auth login`
   - Handles PR creation seamlessly

3. **SSH Keys**:
   - Add SSH key to GitHub account
   - Use SSH URLs for git operations

### Troubleshooting

- **Authentication failed**: Check token permissions
- **Branch already exists**: Use unique branch name
- **Push rejected**: Ensure repository access
- **PR creation failed**: Create manually using provided URL

### Best Practices

- Use descriptive skill names
- Include comprehensive documentation
- Test skill workflow before PR
- Keep steps clear and actionable
- Provide examples when helpful
- Update progress checklist as you go