create-app-yamllisted
Install: claude install-skill 0xMaxMa/claude-gateway
# /create-app-yaml — Generate Draft app.yaml
Arguments passed: `$ARGUMENTS`
Reads Dockerfile(s) in the current working directory and generates a draft `app.yaml`.
---
## Step 1 — Discover Dockerfiles
```bash
find . -name "Dockerfile*" -not -path "*/node_modules/*" -not -path "*/.git/*"
```
List what you found. If none, tell the user and stop.
---
## Step 2 — Infer services
For each Dockerfile, infer:
- **Service name** from the directory name or `Dockerfile.<name>` suffix
- **Exposed ports** from `EXPOSE` instructions — pick the first as the main port
- **Environment variables** from `ENV` instructions — these become `env:` entries
- Whether it looks like a web app (serves HTML/static files) vs an API
---
## Step 3 — Generate app.yaml
Write a draft `app.yaml` to the current directory:
```yaml
apiVersion: apps.getpod.ai/v1
name: <inferred-from-dirname> # lowercase, hyphens only
version: 1.0.0
commit: "" # fill in the 40-char commit hash before release
services:
<service-name>:
build: . # or ./subdir if not root
ports:
- name: <api|web>
container: <port>
type: <api|web> # api = REST/backend, web = serves HTML
rate_limit: 60 # requests per second
environment:
# Secrets (no default value) — users will be prompted at install time
- MY_SECRET_KEY
# Variables with defaults
- LOG_LEVEL=info
healthcheck:
test: wget -q