crea.site
2 min de lectura product

Editar una web por chat sin romperla

Pedir un cambio con palabras normales es fácil de mostrar y difícil de hacer seguro. Así se convierte una edición en un parche sobre una definición validada.

«Oscurece la cabecera y pon las reseñas encima de los precios».

Enseñar eso en una demo es fácil. Hacerlo seguro es el trabajo de verdad, porque el fallo no es un color equivocado: es un modelo que reescribe una página que solo debía ajustar y, de paso, se deja sin querer el horario de apertura.

La web son datos, no código

Aquí una web es una definición validada: páginas, secciones, contenido y un diseño. El renderizador convierte eso en HTML y nada más lo hace. Así que una edición nunca toca el marcado: cambia la definición, y la definición se comprueba antes de guardarse.

Comprobar significa más que «se pudo leer». Las reglas entre campos detectan lo que un esquema no puede expresar: dos portadas en una misma página, una entrada sin fecha, una página anidada donde el router nunca la serviría, una tabla ligada a una colección que la web no declara. Todo eso se rechaza de plano, en lugar de publicarse y descubrirse después.

Una edición es un parche

No le pedimos al modelo que devuelva una web nueva. Le pedimos el parche más pequeño que haga el cambio, sobre la web tal como está ahora.

Esa única decisión elimina casi todo el peligro:

  • El contenido que la edición no menciona no puede cambiar, porque no está en la respuesta.
  • Un cambio pequeño cuesta una respuesta pequeña, así que las ediciones son rápidas y baratas.
  • El parche se guarda, de modo que el historial dice qué cambió, no solo en qué acabó la web.

Nada se publica hasta que tú lo digas

Cada edición cae en un borrador. El editor muestra el borrador; la web pública sigue sirviendo la última versión publicada hasta que publiques. Se conservan todas las versiones, así que volver atrás es un clic y no una disculpa.

Hay una comprobación más que merece mención, porque atrapó un error real. Si el borrador cambió mientras una edición larga estaba en marcha (por ejemplo, porque hiciste un cambio en otra pestaña), el resultado se rechaza en vez de fusionarse:

"Se guardó otro cambio en esta web mientras se ejecutaba esta edición. Revisa el borrador actual e inténtalo de nuevo.

Perder una edición fastidia. Sobrescribir una en silencio es mucho peor.

Lo que no haremos

No dejamos que una edición invente datos. Una edición que añade un testimonio que nadie escribió, o una certificación que nadie tiene, no es una función; y la misma regla que gobierna la generación gobierna la edición.

Tampoco fingimos que un cambio se hizo cuando no fue así. Si una petición no se puede expresar como un cambio en la definición, lo decimos, en lugar de producir algo parecido y esperar que cuele.