<< All versions

Skill v1.0.1

currentAutomated scan100/100
arabelatso/skills-4-se/configuration-generator

6 files

──Details
PublishedSeptember 27, 2026 at 11:59 AM
Content Hashsha256:9a58dcd1adcd545b...
Git SHA4f38503747e0
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 10.9 KB)
SKILL.md10.9 KBactive
SKILL.md · 542 lines · 10.9 KB

version: "1.0.1" name: configuration-generator description: "Generate configuration files for applications, services, and infrastructure. Use when: (1) Setting up new projects (package.json, requirements.txt, tsconfig.json), (2) Creating Docker or Kubernetes configurations, (3) Configuring CI/CD pipelines (GitHub Actions, GitLab CI, CircleCI), (4) Setting up web servers (Nginx, Apache), (5) Defining infrastructure as code (Terraform, CloudFormation), (6) Generating linter/formatter configs (ESLint, Prettier, Black). Provides templates and custom-generated configs for diverse tech stacks."


Configuration Generator

Generate configuration files for applications, services, and infrastructure across various formats and frameworks.

Quick Start

Use Built-in Templates

Access ready-to-use configuration templates from assets:

bash
# Docker Compose
cat assets/docker-compose.yml
# Kubernetes
cat assets/kubernetes-deployment.yaml
# GitHub Actions
cat assets/github-actions-workflow.yml

Generate Custom Configuration

Specify your requirements to get tailored configuration files.

Common Configuration Types

Application Configurations

Package Managers

Node.js (package.json)

json
{
"name": "my-app",
"version": "1.0.0",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.0"
},
"devDependencies": {
"typescript": "^5.0.0",
"jest": "^29.0.0"
}
}

Python (requirements.txt)

django==4.2.0
djangorestframework==3.14.0
psycopg2-binary==2.9.5
pytest==7.3.0
black==23.3.0

See [app_configs.md](references/app_configs.md) for:

  • Package managers (npm, pip, cargo)
  • Build tools (TypeScript, Webpack, Vite)
  • Linters/formatters (ESLint, Prettier, Black)
  • Testing frameworks (Jest, pytest)
  • Environment files (.env, .editorconfig, .gitignore)

Build Configurations

TypeScript (tsconfig.json)

json
{
"compilerOptions": {
"target": "ES2022",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}

Infrastructure Configurations

Docker

Dockerfile (Multi-stage)

dockerfile
FROM node:18-alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
USER node
EXPOSE 3000
CMD ["node", "dist/index.js"]

Docker Compose - See assets/docker-compose.yml:

  • Multi-service setup (web, database, cache)
  • Environment variable configuration
  • Volume management
  • Network configuration

Kubernetes

Deployment Configuration - See assets/kubernetes-deployment.yaml:

  • Deployment with replicas
  • ConfigMap and Secret management
  • Service and Ingress configuration
  • Health probes
  • Resource limits

Example Deployment:

yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
spec:
containers:
- name: web
image: myapp:latest
ports:
- containerPort: 8000
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"

See [infra_configs.md](references/infra_configs.md) for:

  • Docker and Kubernetes
  • Terraform (AWS, GCP, Azure)
  • CI/CD pipelines
  • Web servers (Nginx, Apache)

CI/CD Pipelines

GitHub Actions - See assets/github-actions-workflow.yml:

  • Test, build, and deploy workflow
  • Service containers (PostgreSQL, Redis)
  • Docker image building
  • Deployment automation

Example Workflow:

yaml
name: CI/CD Pipeline
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: pip install -r requirements.txt
- run: pytest

Configuration Decision Tree

What type of configuration do you need?
├─ Application Config
│ ├─ Package manager? → package.json, requirements.txt, Cargo.toml
│ ├─ Build tool? → tsconfig.json, webpack.config.js, vite.config.ts
│ ├─ Linter/formatter? → .eslintrc, .prettierrc, pyproject.toml
│ └─ Environment? → .env, .editorconfig, .gitignore
│
├─ Container/Orchestration
│ ├─ Docker? → Dockerfile, docker-compose.yml
│ └─ Kubernetes? → deployment.yaml, service.yaml, ingress.yaml
│
├─ Infrastructure as Code
│ ├─ Terraform? → main.tf, variables.tf, outputs.tf
│ └─ CloudFormation? → template.yaml
│
├─ CI/CD
│ ├─ GitHub Actions? → .github/workflows/ci.yml
│ ├─ GitLab CI? → .gitlab-ci.yml
│ └─ CircleCI? → .circleci/config.yml
│
└─ Web Server
├─ Nginx? → nginx.conf
└─ Apache? → httpd.conf, .htaccess

Generation Approaches

Approach 1: Template-Based

Use pre-built templates from assets/:

When to use:

  • Standard setups
  • Quick prototyping
  • Learning/reference

How:

  1. Identify needed template
  2. Copy from assets
  3. Customize variables
  4. Deploy

Example:

bash
# Copy Docker Compose template
cp assets/docker-compose.yml ./
# Edit environment variables
# Deploy
docker-compose up -d

Approach 2: Requirements-Based Generation

Generate from scratch based on specific needs:

When to use:

  • Custom requirements
  • Complex setups
  • Specific tech stack

How:

  1. Specify requirements
  2. Choose tech stack
  3. Define constraints
  4. Generate configuration

Example Request: "Generate a GitHub Actions workflow for a Python Django app with PostgreSQL, Redis, and deployment to AWS ECS"

Generated Output: Custom workflow with:

  • Python 3.11 setup
  • PostgreSQL and Redis services
  • Django test suite
  • Docker image build
  • AWS ECS deployment

Approach 3: Hybrid

Combine templates with customization:

When to use:

  • Partially standard setup
  • Template needs modification
  • Best practices + customization

How:

  1. Start with template
  2. Identify customization points
  3. Modify specific sections
  4. Validate configuration

Best Practices

1. Use Environment Variables

Separate configuration from code:

Application:

python
# settings.py
import os
DATABASE_URL = os.getenv('DATABASE_URL')
SECRET_KEY = os.getenv('SECRET_KEY')
DEBUG = os.getenv('DEBUG', 'False') == 'True'

.env file:

bash
DATABASE_URL=postgresql://localhost/mydb
SECRET_KEY=your-secret-key
DEBUG=true

2. Version Control Best Practices

Do commit:

  • .env.example (template)
  • Configuration templates
  • Development configs

Don't commit:

  • .env (secrets)
  • .env.local (local overrides)
  • Production credentials

.gitignore:

.env
.env.local
.env.*.local

3. Validate Configurations

Check syntax before deploying:

bash
# Docker Compose
docker-compose config
# Kubernetes
kubectl apply --dry-run=client -f deployment.yaml
# Terraform
terraform validate
# YAML syntax
yamllint config.yml

4. Document Configuration

Add comments explaining purpose:

yaml
# docker-compose.yml
services:
web:
# Application server - handles HTTP requests
image: myapp:latest
ports:
# Expose on port 8000 for development
- "8000:8000"
environment:
# Database connection string
- DATABASE_URL=${DATABASE_URL}

5. Use Sensible Defaults

Provide defaults for optional values:

yaml
# Kubernetes ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
# Default to info level logging
LOG_LEVEL: "info"
# Default connection pool size
DB_POOL_SIZE: "10"

Common Patterns

Multi-Environment Configuration

Development:

yaml
# docker-compose.dev.yml
services:
web:
build: .
volumes:
- ./app:/app # Hot reload
environment:
- DEBUG=true

Production:

yaml
# docker-compose.prod.yml
services:
web:
image: registry/myapp:latest
environment:
- DEBUG=false
deploy:
replicas: 3

Secret Management

Kubernetes Secrets:

yaml
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData:
database-url: "postgresql://..."
api-key: "secret-key"

Docker Compose (with env file):

yaml
services:
web:
env_file:
- .env.production

Health Checks

Docker Compose:

yaml
services:
web:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

Kubernetes:

yaml
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8000
initialDelaySeconds: 5
periodSeconds: 5

Complete Example

Request: "Create complete configuration for a Python FastAPI application with PostgreSQL and Redis, using Docker Compose for development and Kubernetes for production"

Generated Configurations:

  1. Dockerfile
  2. docker-compose.yml (development)
  3. requirements.txt
  4. kubernetes/deployment.yaml (production)
  5. .env.example
  6. .github/workflows/deploy.yml

These files work together to provide:

  • Local development environment
  • CI/CD pipeline
  • Production deployment
  • Secret management
  • Health monitoring

Troubleshooting

Configuration Validation Errors

YAML syntax errors:

bash
# Check YAML syntax
python -c "import yaml; yaml.safe_load(open('config.yml'))"
# Or use yamllint
yamllint config.yml

Docker Compose issues:

bash
# Validate and view resolved config
docker-compose config
# Check for errors
docker-compose config --quiet

Environment Variable Issues

Missing variables:

bash
# List all required variables
grep -o '\${[^}]*}' docker-compose.yml
# Check if variable is set
echo $DATABASE_URL

Port Conflicts

Find process using port:

bash
# Linux/macOS
lsof -i :8000
# Windows
netstat -ano | findstr :8000

Reference Materials

Application Configs

See [app_configs.md](references/app_configs.md) for complete templates:

  • Package managers (package.json, requirements.txt, Pipfile, Cargo.toml)
  • Build tools (tsconfig.json, webpack.config.js, vite.config.ts)
  • Linters and formatters (.eslintrc, .prettierrc, .flake8, pyproject.toml)
  • Testing frameworks (jest.config.js, pytest.ini)
  • Environment files (.env.example, .editorconfig, .gitignore)

Infrastructure Configs

See [infra_configs.md](references/infra_configs.md) for:

  • Docker (Dockerfile multi-stage, docker-compose.yml, .dockerignore)
  • Kubernetes (Deployment, Service, Ingress, ConfigMap, Secret, HPA)
  • Terraform (AWS, GCP, Azure infrastructure)
  • CI/CD (GitHub Actions, GitLab CI, CircleCI)
  • Web servers (Nginx, Apache configuration)
← v1.0.0All versions