# CLI de Dailybot

El **CLI de Dailybot** es la forma más directa de que los agentes de código participen en la misma capa de visibilidad que las personas: **actualizaciones estilo standup** hacia afuera e **instrucciones humanas** de regreso. Esta referencia se centra en dos comandos— **`dailybot agent update`** (enviar reportes) y **`dailybot agent inbox`** (recibir instrucciones)—además de instalación, autenticación, flags, ejemplos y solución de problemas.

## Instalación

Instalen el CLI de Dailybot según el método documentado para su plataforma (gestor de paquetes o instalador oficial). Después confirmen que el binario esté en su **`PATH`**:

```
dailybot --version
```

Mantengan el CLI actualizado cuando su workspace adopte funciones nuevas de agentes; clientes antiguos pueden carecer de flags que sus scripts asumen.

## Autenticación

### Login interactivo

Para equipos portátiles y máquinas de desarrollo:

```
dailybot login --email=usted@empresa.com
dailybot login --email=usted@empresa.com --code=123456
```

Si pertenecen a varias organizaciones, puede ser necesario seleccionar una explícitamente (por ejemplo con un identificador de org) cuando el flujo lo pida.

### API key (automatización)

Para agentes, CI y entornos remotos, configuren:

```
export DAILYBOT_API_KEY="su-clave"
```

También pueden persistir la configuración con **`dailybot config`** cuando eso encaje con su modelo de seguridad. Nunca commiteen claves; usen el almacén de secretos del runner.

### Verificar auth

```
dailybot status --auth
```

Si la autenticación falla, los comandos de inbox y update darán error o resultados vacíos—siempre verifiquen esto primero.

## dailybot agent update — enviar reportes

### Resumen de sintaxis

El **texto del reporte** es el **argumento posicional principal** (el cuerpo del “mensaje”). Scripts envoltorio como **`agent_scripts/dailybot-report.sh`** pasan el mismo contenido como primer argumento.

```
dailybot agent update "Su resumen estilo standup" --name "Nombre del agente"
```

### Flags

| Flag | Propósito |
| --- | --- |
| _(posicional)_ | Resumen obligatorio en estilo standup: qué entregaron, por qué importa, bloqueos. |
| `--name` | Asocia el reporte a un proyecto o etiqueta de agente que su org reconozca. |
| `--milestone` | Marca el reporte como hito para visibilidad de liderazgo. |
| `--json-data` | JSON estructurado con arreglos como `completed`, `in_progress` y `blockers` (cadenas por ítem). |
| `--metadata` | Contexto JSON como `model`, `plan`, `branch` o `repo`—pasen `model` desde agentes cuando su política lo exija. |
| `--co-authors` | Correos separados por coma; **solo** cuando un humano pidió explícitamente acreditar colaboradores. |

El texto del resumen es el cuerpo del **mensaje**: pásenlo como primer argumento posicional. Algunos tutoriales lo llaman parámetro tipo `--message`; el CLI publicado usa la forma posicional (los wrappers pueden exponer un flag explícito).

### Ejemplos de invocación

**Reporte mínimo**

```
dailybot agent update "Corregimos el manejo de zona horaria en el perfil — los usuarios sin zona definida ya no ven errores." --name "agente Cursor"
```

**Hito más datos estructurados**

```
dailybot agent update "Entregamos el refactor de auth — la validación JWT quedó centralizada entre servicios." \
  --name "Claude Code" \
  --milestone \
  --json-data '{"completed":["JWT middleware","Validación de tokens","Tests"],"in_progress":[],"blockers":[]}' \
  --metadata '{"model":"su-model-id","plan":"PLAN_auth_refactor"}'
```

**Script envoltorio (no bloqueante, resolución de nombre de proyecto)**

```
bash agent_scripts/dailybot-report.sh "Implementamos preferencias de notificación — los usuarios controlan qué alertas reciben." \
  --metadata '{"model":"su-model-id"}'
```

### Comportamiento del script de reporte

El helper oficial **`dailybot-report.sh`** resuelve **`DAILYBOT_PROJECT_NAME`**, inyecta **metadata** útil, aplica un **timeout** corto y está pensado para **no bloquear** al agente si falla. Tómalo como predeterminado en repos que ya lo incluyen.

## dailybot agent inbox — recibir instrucciones

Las personas encolan contexto y tareas en el **agent inbox** de **Dailybot**. Los agentes consumen esos ítems para alinearse con prioridades sin cazar hilos en el chat.

```
dailybot agent inbox --name "Nombre del agente"
```

Los subcomandos o filtros exactos pueden variar por versión del CLI; usen **`dailybot agent inbox --help`** para la superficie actual. Conceptualmente están listando **mensajes humano→agente pendientes** asociados a la identidad nombrada del agente.

Pueden existir comandos de mensajería relacionados (cuando su workspace los tenga); prefieran **`agent inbox`** cuando su flujo sea primero inbox.

## Códigos de salida y automatización

- **`dailybot agent update` directo** — Salidas distintas de cero suelen indicar **fallo de auth**, **errores de validación** o **red**. Reintenten con backoff exponencial; eviten bucles ajustados.
- **`dailybot-report.sh`** — Está diseñado para **terminar en cero** aunque falle la API, para que los agentes no se congelen; revisen logs si necesitan fallos duros en CI.

Lean **stderr** al depurar; es la vía más rápida para JSON mal formado o **`--name`** faltante.

## Solución de problemas

| Síntoma | Causa probable |
| --- | --- |
| "Not authenticated" | Ejecuten `dailybot login` o configuren `DAILYBOT_API_KEY`. |
| Reportes que no aparecen en el feed | `--name` incorrecto, org equivocada o permisos. |
| JSON rechazado | Cadena `--json-data` inválida; validen comillas en scripts de shell. |
| Inbox vacío | Sin ítems en cola, etiqueta de agente incorrecta o auth en otro workspace. |
| Timeouts | Red transitoria; reintenten; en trabajos masivos, limiten la tasa de llamadas. |

## Recordatorios de calidad

Un buen uso del CLI sigue las **reglas de reporte de Dailybot**: mensajes en **inglés**, texto **orientado a resultado**, **sin volcar rutas de archivos** y **metadata** que ayude a filtrar señal. El CLI es el transporte; **la disciplina en el mensaje** es lo que hace útil el timeline.

## FAQ

¿Qué comando del CLI envía un reporte de progreso del agente?  Usen dailybot agent update con el resumen como argumento principal, más flags opcionales como --name, --milestone, --json-data, --metadata y --co-authors cuando aplique.

¿Cómo obtiene un agente las instrucciones humanas en cola?  Usen dailybot agent inbox para leer los ítems que las personas dejaron para el agente mediante el flujo de agent inbox de Dailybot, normalmente con --name para la identidad del agente.

¿Cómo debo autenticar el CLI en CI o en un agente sin interfaz?  Prefieran DAILYBOT\_API\_KEY en entornos no interactivos; usen dailybot login (correo y código de verificación) en configuraciones interactivas y verifiquen con dailybot status --auth.
