> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riqra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ciclo de desarrollo

> Del borrador con dev a la tienda del cliente: push, riqra.theme.json y la entrega a producción.

## El bucle de desarrollo

`riqra-theme dev` es el bucle diario. En cada guardado el CLI valida el tema (el mismo `check` que corre el servidor), lo comprime y sube un **tema de desarrollo** con su instalación en borrador:

```text theme={null}
$ riqra-theme dev
Watching /work/mi-tema
Preview: https://acme.riqra.site/?preview_theme_id=…&preview_token=…
Draft install expires 2026-07-25T14:02:11.000Z
✓ updated 14:02:11
```

* La URL de vista previa renderiza el borrador solo para quien la tiene; el resto de visitantes sigue viendo el tema publicado.
* La página de vista previa detecta cada push y se recarga sola — no necesitas refrescar.
* Si `check` falla, el CLI imprime los diagnósticos y espera el siguiente guardado; no sube nada roto.

<Warning>
  El tema de desarrollo y su borrador expiran a los **7 días**. Cada push de `dev` renueva el plazo, así que solo caduca si dejas de trabajar; al expirar, la plataforma lo elimina y `dev` crea uno nuevo en el siguiente arranque.
</Warning>

## Publicar una versión con `push`

Cuando el trabajo está listo para compartirse, `push` sube el tema con su identidad definitiva:

```bash theme={null}
riqra-theme push --theme acme-2026
```

```text theme={null}
✓ Pushed acme-2026 (version 3f9c21ab)
```

* El slug se pasa con `--theme` la primera vez; un push exitoso lo guarda en `riqra.theme.json` y los siguientes ya no lo necesitan.
* Cada push calcula una versión por contenido (`versionHash`). Re-subir sin cambios es un no-op barato.
* Un push **reemplaza el contenido del tema en su lugar**: toda tienda que lo tenga instalado pasa a servir la nueva versión.

### `riqra.theme.json`

Archivo de proyecto del tema, versionado junto al código:

```json theme={null}
{
  "theme": {
    "slug": "acme-2026"
  }
}
```

`push` y `pull` lo leen para saber sobre qué tema operar, y `push` lo actualiza tras la primera subida.

## Entrega a producción

Subir nunca publica. La entrega a la tienda del cliente está mediada por Riqra:

1. La agencia hace `push` del tema final; queda disponible en el registro de la organización.
2. El staff de Riqra lo instala en la tienda del cliente como instalación **no publicada**.
3. El comerciante (o el staff) revisa, personaliza y lo **activa** desde el panel. La activación es un intercambio atómico: el tema anterior pasa a no publicado y conserva su personalización.

## Versionado: no hay

Un tema no tiene versiones ni migraciones. Re-subir actualiza en su lugar, así que cada push debe ser compatible con la personalización que el comerciante ya guardó (mismos ids de settings, mismos tipos de sección). Un rediseño incompatible no se sube encima: se entrega como **un tema nuevo** con otro slug, se instala junto al actual y se activa cuando el cliente esté listo.
