infra
Skill3 starsChanged 31 days agoMITView on GitHub
Manage infrastructure for local development, with subcommands docker, terraform, and db. Covers container orchestration with Colima awareness, IaC workflows with safety gates, and database migrations with ORM detection. Use when user says "docker compose", "start containers", "terraform plan", "run migration", "create migration", "database setup", or needs to manage local dev infrastructure. For production deploys, use CI/CD; for security scanning, use /audit; for Terraform test patterns, read standards/terraform-testing.md.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- hasansezertasan/infra-copilottheir own version, first seen Nov 1, 2026
- hasansezertasan/infra-skillstheir own version, first seen Oct 20, 2026
- henrikthome-arch/claude-skillstheir own version, first seen Oct 11, 2026
- tizonai/hyperuitheir own version, first seen Oct 9, 2026
- trycompai/comptheir own version, first seen Oct 8, 2026
- jircdev/crew-plugintheir own version, first seen Oct 8, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- trycompai/comp★ 2.1ksame name
- hasansezertasan/infra-copilot★ 2same name
- hasansezertasan/infra-skills★ 2same name
- tizonai/hyperui★ 2same name
- jircdev/crew-plugin★ 1same name
- henrikthome-arch/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- asideSkill
- assessmentSkill
- auditSkill
- benchmarkSkill
- brainSkill
- checkpointSkill
- cleanupSkill
- concise-modeSkill
- cross-modelSkill
- deploySkill
- designSkill
- explainSkill
- fix-issueSkill
- ganSkill
- guardSkill
- hotfixSkill
- incidentSkill
- interview-meSkill
- investigateSkill
- migrateSkill
- module-auditSkill
- morningSkill
- onboardSkill
- planSkill
- profileSkill
- pr-summarySkill
- readmeSkill
- refactorSkill
- researchSkill
- resolveSkill
- respondSkill
- retroSkill
- reviewSkill
- session-logSkill
- setupSkill
- shipSkill
- skill-newSkill
- spikeSkill
- tddSkill
- testSkill
- zoom-outSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
36 rules. 0 are common, 21 are distinctive, and 15 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
21
Distinctive
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Run the Steps of the matching section, then check the shared Rules at the end before any command that stops, removes, or rewrites state.
- Very specific: line 33
If no subcommand is given, default to docker, show status.
- Very specific: line 43
No arguments or status: show status of all containers, compose services, runtime.
- Very specific: line 69
Never docker context use. Always --context <name> per command when project specifies DOCKER_CONTEXT or DOCKER_HOST.
- Distinctive: line 79
Run Terraform or OpenTofu with built-in safety checks.
- Very specific: line 83
No arguments or plan: validate then plan.
- Very specific: line 95
Check initialization, .terraform directory.
- Distinctive: line 106
Never assume terraform or tofu.
- Distinctive: line 107
Always validate before plan, plan before apply.
- Distinctive: line 108
Always require approval for apply and destroy.
- Distinctive: line 109
Always display current workspace.
- Distinctive: line 111
Never show secret values from env vars.
- Distinctive: line 121
No arguments: show migration status and container status.
- Distinctive: line 142
migrate: check container running, show pending, run ORM-specific migrate command, verify.
- Very specific: line 143
migrate against production: never run it. Send the person who applies production migrations one message with the migration identifier and …
- Distinctive: line 146
seed: run ORM-specific seed command.
- Distinctive: line 157
Always check Docker daemon before container commands.
- Distinctive: line 159
Always detect compose files and commands.
- Very specific: line 160
Ask approval before down, rollback, reset, destroy.
- Very specific: line 161
Never run docker system prune or docker volume prune.
- Very specific: line 162
Never use docker context use.
- Distinctive: line 163
Never target a stopped Colima profile.
- Distinctive: line 164
Always detect ORM from project config.
- Distinctive: line 165
Check container running before migrations.
- Distinctive: line 166
Never run migrations against production.
- Distinctive: line 167
Never modify existing migration files.
- Very specific: line 179
Stop and start the runtime when docker info fails, using the Colima, Docker Desktop, or systemd hint from docker step 1.
- Very specific: line 180
Stop and ask for approval when the next command is down, rollback, reset, or destroy.
- Distinctive: line 181
Stop and confirm the target when a database URL or Terraform workspace names production.
- Distinctive: line 182
Stop and hand over one exact command when a migration targets production, then wait for confirmation without polling or redeploying.
- Distinctive: line 183
Stop and report when the Docker context points at a stopped Colima profile.
- Distinctive: line 184
Stop and show the user when a plan summary lists destroys they did not ask for.
- Very specific: line 188
After up or restart, <compose> ps shows every requested service running or healthy, and the logs of any unhealthy service were shown.
- Very specific: line 189
After a Terraform run, the workspace was displayed, the adds, changes, and destroys were summarized, and an apply consumed the saved tfplan …
- Very specific: line 190
After migrate, the ORM status command reports no pending migrations.
- Very specific: line 192
Every down, rollback, reset, apply, and destroy followed an explicit user approval in the conversation.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Overview
Unified infrastructure skill for local development.
When to Use
- Starting, stopping, building, or inspecting local containers and compose services.
- Running a Terraform or OpenTofu format, validate, plan, apply, or destroy with the approval gates below.
- Checking, running, creating, or rolling back database migrations against a local database.
- For production deploys, use the CI/CD pipeline; for Dockerfile and image security, use
/audit docker; for Terraform test patterns, readstandards/terraform-testing.md.
Process
- Route the invocation with the table below. With no subcommand, run
dockerand show status. - Run the Steps of the matching section, then check the shared Rules at the end before any command that stops, removes, or rewrites state.
Subcommand Routing
| Invocation | Action |
/infra or /infra docker | Docker status and management (default) |
/infra terraform | Terraform/OpenTofu workflows |
/infra db | Database migrations and operations |
If no subcommand is given, default to docker, show status.
docker
Manage Docker containers, compose services, and the runtime. Colima-aware, runtime-agnostic.
Arguments
- No arguments or
status: show status of all containers, compose services, runtime. build [service]: build images.up [service]: start services in detached mode.down: stop and remove compose containers, ask approval.restart [service]: restart services or standalone containers.logs [service]: show recent logs.shell <service|container>: interactive shell in a container.
Steps
- Verify Docker and daemon.
which docker,docker info. If daemon not reachable:- Colima: check
colima status, suggestcolima-start. - Docker Desktop: suggest opening
/Applications/Docker.app. - Linux: suggest
sudo systemctl start docker.
- Colima: check
- Detect runtime, compose, containers, parallel:
docker context show, resolve the Docker context perstandards/multi-account-cli.mdand pass it per command, find compose files,docker ps -a. - Execute the requested operation:
- status: runtime info, compose services, all containers. Mention
lazydockerif available. - build:
<compose> build [service]. Mentiondivefor layer analysis. - up:
<compose> up -d [service]. Verify with<compose> ps. Show logs of unhealthy services. - down: show services, ask approval,
<compose> down. - restart: compose restart or
docker restartfor standalone. Verify health. - logs:
<compose> logs --tail=100ordocker logs --tail=100. - shell: find container, try bash, fall back to sh.
- status: runtime info, compose services, all containers. Mention
Context Resolution
Never docker context use. Always --context <name> per command when project specifies DOCKER_CONTEXT or DOCKER_HOST.
Standalone Containers
User has shell functions: <service>-init, <service>-start, <service>-stop, <service>-purge, <service>-terminal. Known services: mongo, postgres, redis, valkey, redict, ubuntu. Prefer suggesting these over raw docker commands.
terraform
Run Terraform or OpenTofu with built-in safety checks. Always validate before plan, plan before apply.
Arguments
- No arguments or
plan: validate then plan. init: initialize working directory.fmt: format.tffiles.validate: validate configuration.apply: validate, plan, show, apply after approval.destroy: plan destroy, show, destroy after approval.- A directory path: use as working directory.
Steps
- Detect tool and directory, parallel:
which terraform,which tofu. Check.terraform-version/.opentofu-version. Find.tffiles. - Check environment:
.envrcand direnv status. ShowTF_VAR_*,AWS_*etc., names only. - Check initialization,
.terraformdirectory. Init if needed. - Execute:
- fmt:
<tool> fmt -recursive -diff, then apply. - validate:
<tool> validate. - plan: validate first, then
<tool> plan -out=tfplan. Summarize adds/changes/destroys. - apply: validate, plan, show summary, require approval,
<tool> apply tfplan. Clean up plan file. - destroy:
<tool> plan -destroy -out=tfplan, show what dies, require approval, apply.
- fmt:
- Show workspace:
<tool> workspace show.
Rules
- Never assume terraform or tofu. Detect.
- Always validate before plan, plan before apply.
- Always require approval for apply and destroy.
- Always display current workspace.
- Never use
-auto-approve. - Never show secret values from env vars.
db
Manage database migrations, containers, and data operations. Detects ORM and package manager automatically.
Arguments
- No arguments: show migration status and container status.
migrate: run pending migrations.rollback: rollback last batch, requires approval.create <name>: create new migration file.seed: run seeders.reset: rollback all and re-run, destructive, requires approval.start: start database container.stop: stop database container.terminal: open database shell.
ORM Detection
prisma/schema.prisma = Prisma, knexfile.* = Knex, sequelize = Sequelize, typeorm + data-source.* = TypeORM, drizzle.config.* = Drizzle, alembic.ini = Alembic, goose = Goose, diesel.toml = Diesel.
Steps
- Detect setup, parallel: check Docker containers, resolve Docker context, detect ORM, detect package manager.
- Execute:
- status: container status, suggest shell functions if not running, migration status per ORM.
- start/stop: suggest user shell functions such as
postgres-startormongo-start. - terminal: suggest shell functions or direct exec (
docker exec -it postgres psql -U postgres). - migrate: check container running, show pending, run ORM-specific migrate command, verify.
- migrate against production: never run it. Send the person who applies production migrations one message with the migration identifier and one exact command, per
standards/database.mdHuman-Gated Production Migrations, then stop and wait for their confirmation without polling. - rollback: show status, warn about data loss, require approval, run ORM-specific rollback.
- create: require name, run ORM-specific create command, show file path.
- seed: run ORM-specific seed command.
- reset: warn, destructive, require approval, rollback all, re-run all, verify.
Standalone Container Details
Volumes: named Docker volumes + bind mounts to ~/Docker/<Service>/. Ports bound to 127.0.0.1. Health checks built in. Credentials: postgres:postgres, mongo:mongo, redis no auth.
Rules
- Always check Docker daemon before container commands.
- Suggest user shell functions over raw docker commands for standalone containers.
- Always detect compose files and commands. Never assume.
- Ask approval before
down,rollback,reset,destroy. - Never run
docker system pruneordocker volume prune. - Never use
docker context use. Always--context <name>per command. - Never target a stopped Colima profile.
- Always detect ORM from project config.
- Check container running before migrations.
- Never run migrations against production.
- Never modify existing migration files.
Common Rationalizations
- "
docker context useonce is quicker than a flag on every command": it switches the context for every other shell too. Pass--context <name>per command. - "The migration has a typo, I will fix the file in place": a migration that already ran elsewhere diverges silently. Create a new migration with
/infra db create. - "The plan was clean a minute ago, apply straight away": validate, plan, show the summary, and apply the saved
tfplanafter approval, every time. - "The disk is full and a prune frees it in one command": prune removes volumes the user still needs. List the specific containers and volumes and let the user choose.
- "This is a Prisma project, so
prisma migrateit is": detect the ORM from the files in the ORM Detection table before running any migration command.
Red Flags
- Stop and start the runtime when
docker infofails, using the Colima, Docker Desktop, or systemd hint from docker step 1. - Stop and ask for approval when the next command is
down,rollback,reset, ordestroy. - Stop and confirm the target when a database URL or Terraform workspace names production.
- Stop and hand over one exact command when a migration targets production, then wait for confirmation without polling or redeploying.
- Stop and report when the Docker context points at a stopped Colima profile.
- Stop and show the user when a plan summary lists destroys they did not ask for.
Verification
- After
uporrestart,<compose> psshows every requested service running or healthy, and the logs of any unhealthy service were shown. - After a Terraform run, the workspace was displayed, the adds, changes, and destroys were summarized, and an apply consumed the saved
tfplanand removed it afterward. - After
migrate, the ORM status command reports no pending migrations. - Output named environment variables without printing their values.
- Every
down,rollback,reset,apply, anddestroyfollowed an explicit user approval in the conversation.
Related skills
/test-- Run tests after migrations./ship-- Commit infrastructure changes./audit docker-- Dockerfile security checks.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

