com um clique
infra-deploy
// Use when user asks to deploy to production, check what's deployed, find a docker image tag for a PR, or trigger a production deployment. Use when user mentions "deploy", "prod", "production", "release", or "ship".
// Use when user asks to deploy to production, check what's deployed, find a docker image tag for a PR, or trigger a production deployment. Use when user mentions "deploy", "prod", "production", "release", or "ship".
Use when creating, updating, or compacting Architecture Decision Records (ADRs). Use when user says "adr", "crear ADR", "create ADR", "actualizar ADR", "update ADR", "compactar ADR", "compact ADR", "registrar decision", "record decision", "decision record".
Use when needing to query a PostgreSQL database in DEV or PROD, check if records exist, count rows, inspect data, or run read-only SQL queries from within the cluster. Use when user says "consulta la BD", "query", "busca en la tabla", "check database", "db query", or "existe este registro".
Use when checking pod logs, searching for errors, viewing recent log output, or debugging runtime issues in DEV or PROD. Use when user says "logs de", "ver logs", "qué errores hay", "check logs", "show errors", or mentions log analysis of a service.
Use when user asks to run database migrations, create tables, apply schema changes, or mentions "migration" in the context of DEV or PROD environments. Use when user mentions "migrate", "migration:up", "create table", or "schema changes" for remote environments.
Use when checking pod status, listing running services, investigating crashloops, viewing pod events, or checking resource usage. Use when user says "pods", "qué está corriendo", "pod status", "check pods", "restart", "crashloop", or "pod events".
Use when doing comprehensive ticket analysis before implementation. Analyzes Jira ticket, Figma designs, Confluence/Notion docs, and codebase to produce a data map where every field is questioned and scope is explicitly defined. Use when user says "analiza ticket", "ticket analysis", "prepara ticket", "revisar ticket completo", or "qué falta en este ticket".
| name | infra-deploy |
| description | Use when user asks to deploy to production, check what's deployed, find a docker image tag for a PR, or trigger a production deployment. Use when user mentions "deploy", "prod", "production", "release", or "ship". |
| argument-hint | [PR-number] |
| disable-model-invocation | true |
| allowed-tools | Bash, AskUserQuestion |
| model | sonnet |
Deploy a merged PR to production by finding its Docker image tag from the CI build and triggering the manual deployment workflow via GitHub CLI.
Read project-specific values from the project's CLAUDE.md (## Infrastructure section):
The image tag is always the GitHub Actions run ID (numeric databaseId) of the build workflow run.
digraph deploy {
rankdir=TB;
node [shape=box];
verify_merged [label="1. Verify PR is merged"];
find_image [label="2. Find image tag (build run ID)"];
check_deployed [label="3. Check what's currently deployed"];
confirm [label="4. Confirm with user"];
deploy [label="5. Trigger deployment workflow"];
verify_deploy [label="6. Verify deployment succeeded"];
has_migrations [label="PR has migrations?" shape=diamond];
run_migrations [label="Follow infra-migrations skill"];
done [label="Done"];
verify_merged -> find_image -> check_deployed -> confirm -> deploy -> verify_deploy;
verify_deploy -> has_migrations;
has_migrations -> run_migrations [label="yes"];
has_migrations -> done [label="no"];
run_migrations -> done;
}
See references/commands.md for all shell commands per step.
| Mistake | Prevention |
|---|---|
| Not reading CLAUDE.md | Workflow names and input field vary per project. |
| Passing full registry URL as image tag | Only pass the numeric run ID. |
| Deploying a PR that isn't merged | Always verify PR state first. |
| Deploying without confirmation | Always show what will be deployed and ask. |
| Confusing build run ID with deploy run ID | Build = CI on merge. Deploy = manual workflow. |
| Not checking what's currently in prod | Always show current state before deploying. |