GuíasCLI

Salida JSON y códigos de salida

El contrato del CLI para scripts y agentes, con --json, códigos de salida estables y reglas sin TTY.

EspecificadoNo implementado

Especificado. Es el contrato que dec-0124 §6.1 exige al CLI. Los números de salida son los propuestos; la tabla final la fija el ADR del CLI.

--json

  • Todo comando acepta --json. En ese modo, stdout contiene sólo el JSON y toda otra salida (progreso, avisos) va a stderr.
  • Cada comando tiene un esquema de salida versionado, generado del mismo registro de operaciones que la API. Un cambio incompatible sube la versión del esquema.
  • Los errores en modo JSON siguen la forma problem+json (RFC 9457) de la API: tipo, título, detalle y código.

Códigos de salida

CódigoSignificado
0Correcto
2Uso incorrecto (argumentos, flags)
3No autenticado o credencial caducada
4No encontrado
5Conflicto (ya existe, versión desfasada)
6Servicio no disponible
7Denegado por política (permisos, ámbito, perfil)

Un código distingue la clase del fallo, no el comando: un agente puede decidir si reintentar (6), reautenticar (3) o rendirse (7) sin leer el mensaje.

Sin TTY

  • Sin terminal, nunca se pide nada de forma interactiva: si falta una confirmación, el comando falla con 2 en lugar de quedarse esperando.
  • Lo destructivo exige --yes (o --dry-run para ver el efecto).
  • Los secretos entran por stdin o por variable de entorno (STYX_ACCESS_TOKEN).

Excepción actual

styx-upload es anterior a este contrato: sale con 0 correcto, 1 fallo y 2 uso. Se alineará al integrarse en el CLI único.