Creates blueprint-driven skills for infrastructure and deployment tasks. This skill should be used when creating new skills that require templates, patterns, or reference configurations (e.g., Dockerfiles, Helm charts, Kubernetes manifests, CI/CD pipelines). It enforces impact analysis before containerization, identifies environment requirements, network topology changes, and auth/CORS implications. Use this skill when building deployment-related skills or when containerizing applications.
This skill creates infrastructure skills that bundle blueprints (reusable templates and patterns) with impact analysis (understanding what changes when containerizing/deploying). It ensures deployment skills don't just generate configs—they understand and document the full impact.
Traditional approach (fragile):
Request: "Create a Dockerfile"
Result: Generic Dockerfile that breaks in production
Blueprint-driven approach (robust):
Request: "Create a Dockerfile"
Process:
1. Analyze project for containerization requirements
2. Identify environment variables (build-time vs runtime)
3. Map localhost references → Docker service names
4. Check auth/CORS origins for container network
5. Generate Dockerfile with documented gotchas
6. Create docker-compose with proper networking
Identify what infrastructure domain the skill covers:
| Domain | Examples | Key Concerns | |--------|----------|--------------| | Containerization | Dockerfiles, docker-compose | Env vars, networking, multi-stage builds | | Orchestration | Helm, Kubernetes manifests | Service discovery, secrets, resource limits | | CI/CD | GitHub Actions, pipelines | Build vs deploy stages, secrets injection | | Event Systems | Kafka, Dapr | Topics, schemas, authentication |
Before creating any blueprint, analyze the target project:
Scan for:
├── .env files → What variables exist?
├── process.env / os.environ usage → What's expected at runtime?
├── Build-time variables → NEXT_PUBLIC_*, ARG in Dockerfiles
└── Sensitive values → API keys, secrets, connection strings
Identify:
├── localhost references → Must become service names
├── Port bindings → What ports are exposed?
├── Service dependencies → What talks to what?
└── External services → Databases, APIs, auth providers
Critical for SSO/Better Auth:
Check auth configuration for:
├── Allowed origins → Must include Docker service names
├── Callback URLs → localhost:3000 → web:3000
├── API URLs → localhost:8000 → api:8000
└── NODE_ENV behavior → Some features disabled in production
Common gotcha:
// better-auth config - WILL BREAK in Docker if not updated
trustedOrigins: [
"http://localhost:3000", // Works locally
// MISSING: "http://web:3000" // Needed for Docker
// MISSING: "http://frontend:3000" // Needed for K8s
]
Initialize using skill-creator:
python3 .claude/skills/engineering/skill-creator/scripts/init_skill.py \
<skill-name> --path .claude/skills/engineering/
Organize with blueprints:
.claude/skills/engineering/<skill-name>/
├── SKILL.md # Instructions + impact analysis guidance
├── references/ # Blueprint documentation
│ ├── patterns.md # Common patterns and when to use them
│ ├── impact-checklist.md # What to check before containerizing
│ └── gotchas.md # Known issues and solutions
└── assets/ # Template files
├── Dockerfile.template # Base template
├── docker-compose.template # Compose template
└── .env.example # Environment template
Each reference file should include:
Pattern documentation (references/patterns.md):
# Pattern: Multi-Stage Build
## When to Use
- Production deployments
- When image size matters
- When build dependencies differ from runtime
## Template
[Include actual template code]
## Variables to Replace
- `{{BASE_IMAGE}}` - Base image (e.g., python:3.13-slim)
- `{{APP_MODULE}}` - Entry point (e.g., main:app)
- `{{PORT}}` - Exposed port
## Impact Notes
- Build-time ARGs are baked in - cannot change at runtime
- Use ENV for runtime configuration
Impact checklist (references/impact-checklist.md):
# Pre-Containerization Checklist
## Environment Variables
- [ ] List all env vars used in application
- [ ] Categorize: build-time vs runtime
- [ ] Identify secrets (should use K8s secrets, not ENV)
## Network Changes
- [ ] Find all localhost references
- [ ] Map to Docker service names
- [ ] Update CORS/auth origins
## Auth/SSO Specific
- [ ] Check trustedOrigins includes Docker service names
- [ ] Verify callback URLs work with container networking
- [ ] Test NODE_ENV=production behavior
## Dependencies
- [ ] Identify service startup order
- [ ] Configure health checks
- [ ] Set up proper wait conditions
Asset templates should be parameterized and documented:
Dockerfile.template:
# ===== IMPACT NOTES =====
# This template requires:
# - ENV: {{ENV_VARS_LIST}}
# - Network: Service name "{{SERVICE_NAME}}" on port {{PORT}}
# - Auth: Ensure CORS includes http://{{SERVICE_NAME}}:{{PORT}}
# ========================
FROM {{BASE_IMAGE}} AS builder
# ... template content
docker-compose.template:
# ===== NETWORK TOPOLOGY =====
# Services communicate via Docker network using service names:
# - web → api: http://api:8000
# - api → db: postgres://db:5432
# - web → sso: http://sso:3001
# ============================
services:
{{SERVICE_NAME}}:
build:
context: {{CONTEXT_PATH}}
args:
- NODE_ENV={{NODE_ENV}}
environment:
# Runtime configuration
- DATABASE_URL=${DATABASE_URL}
- API_URL=http://api:8000 # Docker service name, not localhost!
When creating a Docker blueprint skill, include:
SKILL.md sections:
References:
references/fastapi-patterns.md - FastAPI-specific patternsreferences/nextjs-patterns.md - Next.js-specific patternsreferences/auth-impact.md - Better Auth/SSO considerationsAssets:
assets/Dockerfile.fastapi - FastAPI templateassets/Dockerfile.nextjs - Next.js templateassets/docker-compose.base.yml - Base compose fileWhen creating a Helm blueprint skill, include:
SKILL.md sections:
References:
references/chart-structure.md - Helm chart anatomyreferences/security-context.md - Pod security patternsreferences/networking.md - Service/Ingress patternsAssets:
assets/base-chart/ - Complete Helm chart templateassets/values-dev.yaml - Development valuesassets/values-prod.yaml - Production valuesBefore finalizing a blueprint skill, verify:
Don't create blueprints that:
Do create blueprints that:
Contains pattern documentation and impact checklists that inform blueprint creation.
Contains template files that serve as starting points for generated configurations.
Contains validation scripts for checking blueprint completeness.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer