Our review
Generates Docker Compose configuration and .env.example for a local PostgreSQL development environment with Rust.
Strengths
- Ready-to-use configuration with default ports and volumes
- Clear separation between dev and test databases (ports 6432/6433)
Limitations
- Only supports PostgreSQL, not other databases
- Requires Podman or Docker Compose to be installed
When starting a new Rust project that needs a local PostgreSQL database for development and testing.
For projects using a remote database or a different database management system.
Security analysis
SafeThe skill merely scaffolds development configuration files (Docker Compose, .env.example) using a local Python script. It does not execute any destructive actions, exfiltrate data, or disable safety features. The usage of Bash is limited to running the script and providing helpful reminders, posing no security risk.
No concerns found
Examples
Scaffold infra for myprojectSet up Docker Compose for a new Rust projectCreate dev database config for myappname: malky-infra-scaffolder description: Scaffolds the infra/ directory and .env.example for a new Rust/PostgreSQL project. Use when setting up a new project's local infrastructure, asked to "scaffold infra", "set up docker compose", "create dev database config", or "set up postgres for a new project". argument-hint: <project_name> [destination_dir] allowed-tools: Bash
Infra Scaffolder
Generates the local dev/test PostgreSQL infra and .env.example for a new project.
What gets generated
<dest>/
infra/
docker-compose.yml # dev DB on :6432, persistent named volume
docker-compose.test.yml # test DB on :6433, tmpfs (ephemeral, no logging)
.env.example # DATABASE_URL + DATABASE_TEST_ADMIN_URL + RUST_LOG
Key conventions baked in
- Dev DB: user/password/dbname all =
<project_name>, port 6432 - Test DB: user/password =
<project_name>_test, dbname =<project_name>_test, port 6433 - Test DB uses
tmpfs(wiped on container stop) andlog_statement=noneto keep test runs quiet DATABASE_TEST_ADMIN_URLpoints to thepostgressystem DB soTestApp::spawn()canCREATE DATABASE test_<uuid>dynamically- Managed with
podman compose(drop-in fordocker compose)
How to run
- Get project name from the user (required). Get destination directory (optional, default
.). - Run the scaffold script:
python3 ~/.claude/skills/malky-infra-scaffolder/scaffold.py <project_name> [destination_dir]
- Show the user the output and remind them:
# Start dev DB
podman compose -f infra/docker-compose.yml up -d
# Start test DB (before running integration tests)
podman compose -f infra/docker-compose.test.yml up -d
# Copy env
cp .env.example .env
Pairing with the Rust scaffolder
This skill is the infra counterpart to malky-rust-scaffolder. Run both when starting a new project:
malky-rust-scaffolder→ creates the Rust cratemalky-infra-scaffolder→ creates the compose files and.env.example
The .env.example generated here is the correct one to use — it supersedes the one placed by the rust scaffolder (which uses generic placeholder URLs).
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.