Productividad del desarrollador

Caveman

Julius BrusseeApache-2.0Idioma del Skill: Inglés
Licencia verificadaSin scripts
DemostraciónEjecución real · claude-opus-5-5 · octubre de 2026
Talk like caveman from now on. My Node.js API returns `Error: connect ECONNREFUSED 127.0.0.1:5432` on startup inside Docker Compose, but Postgres runs fine and I can connect to it from my laptop with psql. What is wrong and how do I fix it?
Skill: caveman

127.0.0.1 inside API container means the API container itself, not Postgres. Postgres runs in its own container. From inside Docker Compose, reach it by its service name. Your laptop works because the port is published to the host's localhost.

Fix: point the host at the Compose service name.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 2s
      retries: 15
  api:
    build: .
    environment:
      DATABASE_URL: postgres://postgres:secret@db:5432/postgres
    depends_on:
      db:
        condition: service_healthy

Use db (your service name) as the host, in DATABASE_URL or PGHOST. Don't hardcode localhost in code.

The healthcheck plus condition: service_healthy is a second fix. Plain depends_on only waits for the container to start, not for Postgres to accept connections. Without the healthcheck you can still get ECONNREFUSED on cold start, even with the right host.

Other causes to check:

  • API runs on the host, not in Compose: localhost:5432 is correct there. Make sure ports: ["5432:5432"] is set on db.
  • API in a different Compose project or network: put both on a shared network, or use host.docker.internal:5432.
  • Postgres listening only on a unix socket: the official image already listens on *. Only custom configs need listen_addresses = '*'.

Check the connection from inside the API container: docker compose exec api sh -c 'nc -zv db 5432'.

Real run recorded with claude-code / claude-opus-5-5. Output is shown verbatim, unmodified.

Qué hace

Establece un estilo de respuesta escueto para agentes de programación. La respuesta va primero; se eliminan saludos, evasivas, resúmenes y ofertas de cierre. El código, los comandos, las rutas de archivo, los números y las cadenas de error se mantienen literales.

Cómo funciona

  1. Se activa con /caveman o frases como "talk like caveman", "be brief" o "less tokens", y permanece activo hasta que digas "stop caveman" o "normal mode".
  2. Sigue nueve reglas: responder primero, sin ceremonias, palabras cortas, artículos opcionales pero negaciones nunca omitidas, una idea por frase, contenido técnico literal, texto de estado mínimo durante la ejecución de herramientas, responder en el idioma del usuario y nada de role-play de cavernícola.
  3. Vuelve a la prosa normal para advertencias de seguridad, acciones irreversibles, instrucciones paso a paso, un usuario confundido y cualquier contenido escrito fuera del chat (código, commits, documentación).

Ideal para

Sesiones de programación del día a día en una terminal en las que quieres respuestas más cortas y directas.

Conviene saber

La medición del propio autor (una ejecución, diez prompts) encontró que las respuestas eran solo alrededor de un 3 % más cortas en la mediana que simplemente decirle al modelo "answer concisely". Trátalo como un estilo para ser más directo, no como una gran forma de ahorrar tokens. Los modos /ultracave y /megacave y la insignia de estado pertenecen al plugin completo de Caveman y no están en este paquete.

Notas y riesgos

Solo contiene instrucciones: sin scripts, sin acceso a la red y sin escritura de archivos. El paquete también contiene README, LICENSE y NOTICE del repositorio original. Algunos comandos nombrados en las instrucciones (/caveman ultra, /caveman wenyan, /caveman status) dependen de otras Skills de Caveman o hooks que este paquete no incluye.

SKILL.md original4 archivos en este paquete