166 lines
5.4 KiB
Markdown
166 lines
5.4 KiB
Markdown
---
|
|
name: skill-creator
|
|
description: Creates Claude Code skills for Fullstack (Django, React, Next.js, PostgreSQL, Celery, Redis) and DevOps (GitLab CI/CD, Docker, K3s, Hetzner, Prometheus, Grafana, Nginx, Traefik).
|
|
argument-hint: [category] [technology] [skill-name]
|
|
allowed-tools: Read, Write, Glob, Grep, Bash
|
|
---
|
|
|
|
# Skill Creator for Fullstack & DevOps Engineers
|
|
|
|
You are an expert at creating high-quality Claude Code skills. When invoked, analyze the request and generate a complete, production-ready skill.
|
|
|
|
## Invocation
|
|
|
|
```
|
|
/skill-creator [category] [technology] [skill-name]
|
|
```
|
|
|
|
**Examples:**
|
|
- `/skill-creator fullstack django api-patterns`
|
|
- `/skill-creator devops k3s deployment-helper`
|
|
- `/skill-creator fullstack react component-generator`
|
|
|
|
## Workflow
|
|
|
|
### 1. Parse Arguments
|
|
Extract from `$ARGUMENTS`:
|
|
- **Category**: `fullstack` or `devops`
|
|
- **Technology**: One of the supported technologies
|
|
- **Skill Name**: The name for the new skill (kebab-case)
|
|
|
|
### 2. Determine Skill Type
|
|
Based on category and technology, select the appropriate template and patterns.
|
|
|
|
### 3. Generate Skill
|
|
Create a complete skill with:
|
|
- Proper YAML frontmatter
|
|
- Clear, actionable instructions
|
|
- Technology-specific best practices
|
|
- Examples and edge cases
|
|
|
|
### 4. Save Skill
|
|
Write the generated skill to `~/.claude/skills/[skill-name]/SKILL.md`
|
|
|
|
---
|
|
|
|
## Supported Technologies
|
|
|
|
### Fullstack Development
|
|
|
|
| Technology | Focus Areas |
|
|
|------------|-------------|
|
|
| **PostgreSQL** | Schema design, queries, indexes, migrations, performance, pg_dump/restore |
|
|
| **Django** | Models, Views, DRF serializers, middleware, signals, management commands |
|
|
| **REST API** | Endpoint design, authentication (JWT, OAuth), pagination, versioning, OpenAPI |
|
|
| **Next.js** | App Router, Server Components, API Routes, middleware, ISR, SSG, SSR |
|
|
| **React** | Components, hooks, context, state management, testing, accessibility |
|
|
| **Celery** | Task definitions, periodic tasks, chains, groups, error handling, monitoring |
|
|
| **Redis** | Caching strategies, sessions, pub/sub, rate limiting, data structures |
|
|
|
|
### DevOps & Infrastructure
|
|
|
|
| Technology | Focus Areas |
|
|
|------------|-------------|
|
|
| **GitLab CI/CD** | Pipeline syntax, jobs, stages, artifacts, environments, variables, runners |
|
|
| **Docker Compose** | Services, networks, volumes, healthchecks, profiles, extends |
|
|
| **K3s/Kubernetes** | Deployments, Services, ConfigMaps, Secrets, HPA, PVCs, Ingress |
|
|
| **Hetzner Cloud** | Servers, networks, load balancers, firewalls, cloud-init, hcloud CLI |
|
|
| **Prometheus** | Metrics, PromQL, alerting rules, recording rules, ServiceMonitors |
|
|
| **Grafana** | Dashboard JSON, provisioning, variables, panels, alerting |
|
|
| **Nginx** | Server blocks, locations, upstream, SSL/TLS, caching, rate limiting |
|
|
| **Traefik** | IngressRoutes, middlewares, TLS, providers, dynamic config |
|
|
|
|
---
|
|
|
|
## Skill Generation Rules
|
|
|
|
### Frontmatter Requirements
|
|
|
|
```yaml
|
|
---
|
|
name: [skill-name] # lowercase, hyphens only
|
|
description: [max 200 chars] # CRITICAL - Claude uses this for auto-invocation
|
|
argument-hint: [optional args] # Show expected arguments
|
|
allowed-tools: [tool1, tool2] # Tools without permission prompts
|
|
disable-model-invocation: false # Set true for side-effect skills
|
|
---
|
|
```
|
|
|
|
### Description Best Practices
|
|
The description is the most important field. It must:
|
|
1. Clearly state WHAT the skill does
|
|
2. Include keywords users would naturally say
|
|
3. Specify WHEN to use it
|
|
4. Stay under 200 characters
|
|
|
|
**Good:** `Generates Django model boilerplate with migrations, admin registration, and factory. Use when creating new models.`
|
|
|
|
**Bad:** `A helpful skill for Django.`
|
|
|
|
### Content Structure
|
|
|
|
```markdown
|
|
# [Skill Title]
|
|
|
|
[Brief overview - 1-2 sentences]
|
|
|
|
## When to Use
|
|
- [Scenario 1]
|
|
- [Scenario 2]
|
|
|
|
## Instructions
|
|
[Step-by-step guidance for Claude]
|
|
|
|
## Patterns & Best Practices
|
|
[Technology-specific patterns]
|
|
|
|
## Examples
|
|
[Concrete code examples]
|
|
|
|
## Common Pitfalls
|
|
[What to avoid]
|
|
```
|
|
|
|
### Quality Criteria
|
|
|
|
1. **Specificity**: Instructions must be precise and actionable
|
|
2. **Completeness**: Cover common use cases and edge cases
|
|
3. **Consistency**: Follow established patterns for the technology
|
|
4. **Brevity**: Keep under 500 lines; use reference files for details
|
|
5. **Testability**: Include verification steps where applicable
|
|
|
|
---
|
|
|
|
## Templates
|
|
|
|
Load templates based on category:
|
|
- Fullstack: See [templates/fullstack-template.md](templates/fullstack-template.md)
|
|
- DevOps: See [templates/devops-template.md](templates/devops-template.md)
|
|
|
|
## Examples
|
|
|
|
Reference these complete skill examples:
|
|
- [examples/django-api-skill.md](examples/django-api-skill.md) - Django REST API patterns
|
|
- [examples/celery-task-skill.md](examples/celery-task-skill.md) - Celery task patterns
|
|
- [examples/k3s-deployment-skill.md](examples/k3s-deployment-skill.md) - K3s deployments
|
|
- [examples/monitoring-skill.md](examples/monitoring-skill.md) - Prometheus/Grafana setup
|
|
|
|
## Technology Patterns
|
|
|
|
See [reference/tech-patterns.md](reference/tech-patterns.md) for technology-specific best practices.
|
|
|
|
---
|
|
|
|
## Execution
|
|
|
|
When generating a skill:
|
|
|
|
1. **Read the appropriate template** for the category
|
|
2. **Load technology patterns** from reference file
|
|
3. **Generate the complete SKILL.md** with all sections
|
|
4. **Create the skill directory**: `~/.claude/skills/[skill-name]/`
|
|
5. **Write SKILL.md** to the new directory
|
|
6. **Confirm creation** and show the skill path
|
|
|
|
Always generate skills that are immediately usable with `/[skill-name]`.
|