Lenguaje Sencillo — informe

Resumen · síntesis automática (Ariadna 🧵)

El proyecto crea un reescritor de textos con mando de sencillez de 1 a 5 niveles. Detecta el hueco del competidor: reordena sintaxis pero no gradúa el léxico ni verifica fidelidad. La clave es el prompt propio y un doble bucle que verifica que el mensaje no cambie al simplificar. Se desplegó una API en producción con DeepSeek, coste de 1-2 décimas de céntimo por uso. No guarda textos por privacidad, solo opiniones anónimas, y avisa que no sirve para literatura.

WORDKERS

Lenguaje Sencillo

Informe completo del proyecto

De leer una web de la competencia por la mañana a una API propia en producción esa misma tarde: origen, decisiones, problemas resueltos y estructura final.

Documento WK-LS-002 · versión 1.0 · 26 de agosto de 2026

Equipo Wordkers — Silicio (Claude) + Carbono (Eduardo)

Historial de versiones

VersiónFechaCambiosAutoría
1.02026-08-26Creación. Relato completo del proyecto de un día: origen, decisiones, problemas y estructura final.Claude + Eduardo

1. Resumen ejecutivo

1. Lenguaje Sencillo es un reescritor de textos que los pone en claro a un nivel elegible (1 a 5) y verifica que el mensaje sigue diciendo lo mismo antes de devolverlos. Nació el 26 de agosto de 2026 al analizar a un competidor —«Comunicación Clara», de la consultora Prodigioso Volcán— y detectar el hueco que dejaba: reordena la sintaxis, pero no gradúa el léxico ni comprueba la fidelidad.

2. En una sola sesión se recorrió el camino entero: análisis del competidor, concepto, prototipo, definición del criterio (los prompts y el bucle de verificación), una API propia desplegada en producción con motor DeepSeek, un front que reescribe en vivo, un termómetro de opinión y dos repositorios comiteados. Todo abierto, medible y con el algoritmo a la vista — justo lo que el competidor no puede hacer sin dejar de cobrar.

3. Divisa del proyecto: «el derecho a entender, con el algoritmo a la vista». Y su ventaja estratégica: no necesita comité, ni subvención, ni el permiso de ninguna institución — vive del lado del lector y se entrega como API.

2. Cómo surge

4. El punto de partida fue una pregunta sencilla: analizar la web comunicacionclara.com. «Comunicación Clara» es la línea estrella de Prodigioso Volcán (consultora fundada por Mario Tascón, fallecido en 2022). Vende claridad como servicio a instituciones, apoyada en una marca-causa potente: «el derecho a entender».

2.1. La prueba de su herramienta «Clara»

5. Probamos su IA pública, «Clara». Con una frase administrativa real (artículo 68 de la Ley 39/2015) dio una nota de claridad del 7 %, y tras «Mejorar» reescribió a un 29 %. Con un texto ya claro dio 90 % y, con buen criterio, no ofreció reescribirlo.

6. Veredicto: el producto está arrollado por la tecnología actual (es un modelo de lenguaje con un buen prompt y una nota opaca; lo hace gratis cualquier LLM), aunque el negocio de servicios y la marca-causa siguen vivos. Sin Tascón, además, se ha ido el motor de renovación.

2.2. El hallazgo lingüístico

7. Mirando el diff palabra por palabra apareció la clave: Clara reordena la sintaxis (que ya es una commodity) pero no toca el léxico duro ni lo glosa. Los términos que de verdad traban al ciudadano —«resolución», «desistido», «preceptivo»— se quedan como están. Reordena la casa, pero los muebles pesados siguen donde estaban y sin etiqueta. Ese es el hueco, y es terreno de Wordkers.

3. La idea y su evolución

8. La propuesta se fue afinando en diálogo, cada paso simplificando o corrigiendo el anterior. Estas son las ideas que la definieron, en orden.

3.1. El mando de sencillez

9. La formulación buena, de Eduardo, fue quitarle complejidad: un mando de sencillez, como un mando de volumen. El usuario elige el grado; el selector genera el prompt que dice qué vocabulario y estructuras se pueden usar y cuáles no; y el modelo escribe. «No es más que eso.» El foso (una capa léxica en base de datos) pasó de requisito a mejora futura.

3.2. El mando es del lector (y la extensión)

10. La vuelta de tuerca estratégica: el mando no es del documento, es del que lee. La misma página, cada lector a su altura, y bidireccional (si sale demasiado simple, se sube el listón). De ahí la idea de una extensión de navegador: entras a cualquier web y la reescribe in situ. Inversión filosófica frente al competidor: ellos venden claridad a la institución; nosotros ponemos el mando en manos de la persona.

3.3. El prompt importa más que el motor

11. Se decidió que el motor (quién escribe) es intercambiable y un detalle de implementación; lo que se queda y es propio es el criterio: los prompts. Por eso se refinó primero el prompt y se dejó el motor para el final. Es también el activo que no es commodity.

3.4. Fidelidad ≠ claridad (el aviso decisivo)

12. Eduardo señaló el riesgo que lo cambia todo: al subir la sencillez se puede cambiar el mensaje. El nivel más simple convirtió «se le tendrá por desistido» (una ficción legal, recurrible) en «cancelamos su solicitud». Regla: simplificar el LENGUAJE, nunca mutilar el MENSAJE. De ahí, dos medidores separados —claridad (lo que pide el mando) y fidelidad (que el mensaje aguanta)— y un paso de verificación antes de sacar nada.

3.5. Los dos bucles y el log que aprende

13. El sistema quedó con dos bucles anidados. El interno, por texto y en caliente: el autor reescribe, un revisor independiente comprueba, y si hay fuga reintenta con una corrección quirúrgica o sube al «suelo seguro». El externo, entre textos y en frío: cada fallo del revisor va a un log que, analizado por frecuencia y gravedad, refina tres cosas —el prompt del autor, el del revisor y el suelo seguro—. El sistema aprende de lo que rompe.

14. Un hallazgo del análisis: la frecuencia no basta. El fallo más grave (suavizar «un porcentaje de mortalidad» a «riesgos») salió una sola vez, pero es crítico. El log pesa por frecuencia × gravedad, para no pulir erratas mientras deja pasar lo mortal.

3.6. Privacidad y el termómetro de opinión

15. Ante la pregunta «¿guardamos los textos?», la respuesta fue no (verificado en el código: la telemetría solo guarda métricas, no el texto). Y de ahí la elegancia: no guardamos el texto, pero sí la opinión. Un termómetro de 5 niveles tras cada reescritura aporta la señal humana (¿le sirvió al lector?) que complementa al revisor (¿se conservó el mensaje?), sin acumular una sola frase del ciudadano. Privacy-first que además aprende.

3.7. El aviso de alcance

16. Al probar el Quijote y la Rima VII de Bécquer, el revisor daba «verde» (los hechos se conservaban) mientras el estilo quedaba destrozado. La lección: en un trámite el estilo no vale nada y el tomo mejora; en la literatura la forma es el mensaje. Se añadió un aviso afirmativo: la herramienta quita metáforas y dobles sentidos a propósito, porque estorban a quien tiene poco dominio de la lengua; no es para poesía ni literatura.

4. Decisiones clave

17. Las decisiones de diseño, con su porqué y la alternativa que se descartó:

DecisiónPor quéAlternativa descartada
Motor DeepSeek por entornoBarato; el revisor y el suelo seguro compensan la calidad. Coste ~1–2 décimas de céntimo por reescritura.Claude (más calidad, pero caro para un servicio masivo)
Endpoint como GET (+POST)El catálogo del API Front solo ingiere GET; encaja con el resto de transformaciones.Solo POST (no aparecería en el catálogo)
Rate-limit por configuraciónlimites.py ya soporta un tope por API vía precios.json: cero código.Escribir un limitador nuevo
Nombre /v1/texto/aclararFamilia «texto», verbo «aclarar» = transformación, según la norma WK-NORM-001.Un sustantivo (rompía la norma)
No guardar el textoPrivacy-first; los textos pueden ser sensibles (médico, bancario, legal).Guardar contenido para el log (riesgo y responsabilidad)
Guardar solo la opiniónSeñal útil para el bucle externo, anónima y sin comprometer a nadie.No recoger feedback (ciego a la utilidad real)
Deploy build → probar → swapNo romper el servicio vivo; imagen de rollback lista.Editar el contenedor en caliente (arriesgado)

5. Problemas y cómo se resolvieron

18. Nada se dio por bueno sin comprobarlo; por eso aparecieron (y se cazaron) varios fallos reales:

ProblemaSolución
Al generar el primer documento, los párrafos de cuerpo salían vacíos.Los helpers se llamaban sin insertarlos en el documento; se hicieron auto-insertar. Cazado al revisar el PDF.
Los artifacts de este usuario no tienen capacidad de «preguntar a Claude» en vivo.El mando entrega el prompt y trae ejemplos reescritos a mano; la reescritura en vivo se hace luego vía API.
El catálogo del API Front solo lee operaciones GET.Se alineó el endpoint a GET (con POST como alternativa para textos largos).
La clave del motor en el host se llama LLM_API_KEY, no DEEPSEEK_API_KEY.Se adaptó el módulo para leer LLM_API_KEY (con reservas).
El test del bucle fallaba: el motor de mentira cortaba por «VERSIÓN EN CLARO», que aparece 3 veces en el prompt.Se usó rsplit para coger el último bloque (la reescritura). Fallo del test, no del motor.
El fetch del front fallaba por CORS desde localhost:8791.Se sirvió en localhost:8080 (permitido por CORS) para probar; el dominio real ya está permitido.
Al cambiar el texto del pie, el enlace cruzado del front dejó de generarse.Se ancló el script de build al texto nuevo.
Colisión de una etiqueta con el título de zona en el diagrama.Se reposicionó el arco y la flecha de realimentación.
Las etiquetas del mando se veían a distinta distancia.Estaban repartidas por flex (centros 10/30/50/70/90 %), descuadradas con los topes del deslizador (0/25/50/75/100 %). Se pasaron a posición absoluta anclada a cada nivel.
«Parecía» que el zip descargado era antiguo.Era la columna «Date Added» de Finder (fecha de primera entrada, no de modificación). Se borró y recopió para refrescarla.
Desplegar sin tumbar api.wordkers.com.Se construyó una imagen nueva, se probó (import + motor real), y solo entonces se hizo el swap, con rollback preparado. Las demás APIs quedaron intactas.

6. La prueba de fuego: literatura

19. Como banco de pruebas del límite, se le dio literatura. Con el arranque del Quijote quedó fiel en los hechos (la lanza, el rocín, los duelos y quebrantos, las tres cuartas partes de la hacienda…) pero plano en la música. Con la Rima VII de Bécquer fue más claro aún: el hipérbaton «Del salón en el ángulo oscuro» se convirtió en «El arpa está en el rincón oscuro del salón», y la metáfora «la mano de nieve que sabe arrancarlas» en «esa mano sabe sacar las notas».

20. El chiste que cierra el círculo: el revisor daría verde —no se pierde ningún dato— mientras el poema yace en el suelo. Nuestra fidelidad mide los muebles pesados, y un poema no tiene muebles: es todo forma. De ahí salió el aviso de alcance, y una idea futura: un detector de «esto no es un trámite, aparta las manos».

7. Coste

21. Con DeepSeek, cada reescritura hace dos llamadas (autor + revisor) y, en el peor caso, un reintento. Coste estimado y confirmado en la prueba:

VolumenCoste aproximado
1 reescritura~1–2 décimas de céntimo (€0,001–0,002)
1.000 reescrituras€1–2
100.000€100–200
1.000.000€1.000–2.000 (menos con caché de prompts)

22. El rate-limit (12 llamadas/min por usuario, en precios.json) es el cinturón de coste. La conclusión de Eduardo se confirmó: no es un problema.

8. Estructura final

23. Dónde vive cada pieza al cierre del día:

PiezaUbicación / detalle
Front (el mando)Repo wordkers/webs/sencillo. Reescribe en vivo, verifica fidelidad, termómetro de 5 niveles, aviso de alcance. Para desplegar en sencillo.wordkers.com.
API (contrato + prompts)Repo wordkers/apis/sencillo: openapi.yaml, prompts/autor.md, prompts/revisor.md, aclarar.py, test, deploy.
Servicio en producciónRepo wordkers/apis/silabeador (FastAPI). Endpoints GET/POST /v1/texto/aclarar y POST /v1/texto/aclarar_opinion.
Host y contenedorwordkers-server (Hetzner). Contenedor wordkers-api (red wordkers-net, uvicorn). Clave del motor en /opt/wordkers/deepseek.env (LLM_API_KEY). Imagen de rollback guardada.
DatosSolo métricas: telemetría (ts, api, cliente, status, ms) y opiniones (ts, api, nivel, dominio, veredicto, opinion) en la tabla wk_opiniones. Nunca el texto.
Catálogo (API Store)Ficha «Aclarar» (familia Texto/Claridad) curada en wordkers/webs/apifront; se materializa en la próxima regeneración del catálogo.
Artifacts (referencia)El mando y la «Sala de Máquinas» (diagrama de los dos bucles + los dos prompts), publicados y republicados con cada avance.

8.1. El flujo, de un vistazo

  • El lector abre el front, pega su texto y elige el nivel en el mando.
  • La API reescribe (autor) y verifica (revisor); si hay fuga, reintenta o sube el suelo seguro.
  • Devuelve el texto en claro, el veredicto de fidelidad y, si hace falta, el nivel mínimo seguro.
  • El lector puntúa con el termómetro (1–5); se guarda la opinión, nunca el texto.
  • Los fallos del revisor y las opiniones alimentan el bucle externo que refina los prompts.

9. Estado y próximos pasos

24. Estado: API en producción y probada de punta a punta; front conectado y comiteado; documentación y ficha del catálogo listas.

25. Próximos pasos abiertos: subir el front a sencillo.wordkers.com; revisar la configuración de nginx (por si registra el texto en las URLs de las peticiones GET) y considerar POST por defecto para texto sensible; cuando convenga, enchufar el suelo seguro a la capa léxica en Postgres para que deje de estar calibrado a mano; y explorar la extensión de navegador y «el BOE en claro» como producto público.

Anexo. Referencias

  • API (producción): https://api.wordkers.com/v1/texto/aclarar · POST /v1/texto/aclarar_opinion
  • Repos: wordkers/webs/sencillo · wordkers/apis/sencillo · wordkers/apis/silabeador (servicio) · wordkers/webs/apifront (catálogo)
  • Artifacts: el mando y la «Sala de Máquinas» (diagrama + prompts).
  • Norma de nombres de APIs: WK-NORM-001. Documento previo del proyecto: WK-LS-001 («Lenguaje Sencillo frente a Comunicación Clara»).
En esta página