<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Rasepi Blog</title>
  <subtitle>Rethinking knowledge in times of AI. Insights on documentation freshness, multilingual publishing, and AI-ready knowledge bases.</subtitle>
  <link href="https://rasepi.com/es/blog/feed.xml" rel="self" type="application/atom+xml" />
  <link href="https://rasepi.com/es/blog/" rel="alternate" type="text/html" />
  <id>https://rasepi.com/es/blog/</id>
  <updated>2026-04-03T00:00:00Z</updated>
  <author>
    <name>Rasepi Blog</name>
  </author>
  <entry>
    <title>Los lectores y los escritores están en diferentes modos mentales. ¿Por qué todas las herramientas les ofrecen la misma interfaz de usuario?</title>
    <link href="https://rasepi.com/es/blog/readers-and-writers-need-different-interfaces/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/readers-and-writers-need-different-interfaces/</id>
    <updated>2026-04-03T00:00:00Z</updated>
    <summary>Las plataformas de documentación obligan a los lectores, los escritores y la IA a utilizar una misma interfaz. Pero consumir conocimientos y crearlos son tareas cognitivamente diferentes. Rasepi las separa.</summary>
    <content type="html">&lt;p&gt;Abra Confluence ahora mismo y busque un documento que necesite leer. ¿Qué ve?&lt;/p&gt;
&lt;p&gt;Una barra de herramientas. Botones de edición. Cuadros de comentarios. Enlaces al historial de la página. Una barra lateral llena de navegación que no necesita. Migas de pan. Campos de metadatos. Indicadores de permiso. Toda una interfaz de autoría envuelta alrededor del texto que ha venido a leer.&lt;/p&gt;
&lt;p&gt;Ahora piense en lo que realmente quería: la respuesta a una pregunta, o los tres pasos siguientes de un proceso, o una política que necesita consultar antes de una reunión dentro de diez minutos.&lt;/p&gt;
&lt;p&gt;Usted vino a consumir. La interfaz supuso que usted había venido a crear.&lt;/p&gt;
&lt;p&gt;Esto es lo predeterminado en casi todas las plataformas de documentación. Confluence, Notion, SharePoint, GitBook, Nuclino, Slite. Todas ellas presentan el mismo entorno a lectores y escritores. La página es la página. Todo el mundo tiene la misma vista, más o menos unos cuantos botones con permisos.&lt;/p&gt;
&lt;p&gt;Parece normal porque nunca hemos tenido otra cosa. Pero es una decisión de diseño, no una ley de la naturaleza. Y es la equivocada.&lt;/p&gt;
&lt;p&gt;La misma interfaz para leer y escribir crea una sobrecarga cognitiva](/es/blog/img/readers-writers-ui.svg)&lt;/p&gt;
&lt;h2&gt;Leer y escribir no son la misma tarea cognitiva&lt;/h2&gt;
&lt;p&gt;No se trata de una preferencia de interfaz de usuario. Es una diferencia fundamental en el funcionamiento del cerebro.&lt;/p&gt;
&lt;p&gt;Cuando escribe, está en modo generativo. Está construyendo, organizando, decidiendo qué incluir y qué omitir. Necesita herramientas: opciones de formato, controles de estructura, incrustación de medios, campos de metadatos, historial de versiones, funciones de colaboración. La interfaz debe proporcionarle potencia y flexibilidad.&lt;/p&gt;
&lt;p&gt;Cuando lee, está en modo receptivo. Está escaneando, filtrando, extrayendo lo que es relevante y tratando de seguir adelante. Necesita claridad: tipografía limpia, diseño centrado, distracciones mínimas. La interfaz debe apartarse de su camino.&lt;/p&gt;
&lt;p&gt;La psicología cognitiva tiene un marco claro para esto. La &lt;a href=&quot;https://www.instructionaldesign.org/theories/cognitive-load/&quot;&gt;Teoría de la carga cognitiva&lt;/a&gt;, desarrollada por John Sweller a finales de la década de 1980, distingue entre carga intrínseca (la dificultad del material en sí), carga germana (el esfuerzo de aprender e integrar) y carga extraña (todo lo que el entorno añade que no ayuda). Cada barra de herramientas, barra lateral y botón de edición visible para un lector es carga extraña. No les ayuda a comprender el contenido. Compite activamente por la atención.&lt;/p&gt;
&lt;p&gt;Las investigaciones de &lt;a href=&quot;https://doi.org/10.1207/S15326985EP3801_6&quot;&gt;Mayer y Moreno (2003)&lt;/a&gt; sobre el aprendizaje multimedia demostraron que la reducción de los elementos extraños mejora tanto la comprensión como la retención. Su principio de coherencia es directo: &lt;em&gt;la gente aprende mejor cuando se excluye el material extraño en lugar de incluirlo.&lt;/em&gt; Una interfaz de documentación que muestre controles de autoría a los lectores está violando este principio en cada carga de página.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;El lector no necesita ver las herramientas del escritor. Mostrarlas de todos modos no es neutral. Es activamente perjudicial para la comprensión.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Cómo manejan esto las plataformas actuales (en su mayoría no lo hacen)&lt;/h2&gt;
&lt;p&gt;Veamos lo que existe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Confluence&lt;/strong&gt; tiene un modo de lectura y un modo de edición, pero el modo de lectura sigue rodeado por la navegación, los metadatos y el árbol de páginas de la plataforma. La barra de herramientas de edición desaparece cuando no se está editando, pero el marco mental de &amp;quot;esta es una página wiki editable&amp;quot; nunca desaparece del todo. Todos los lectores ven el botón &amp;quot;Editar&amp;quot;. La página susurra: &lt;em&gt;puedes cambiar esto.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notion&lt;/strong&gt; es peor en este sentido. Su filosofía central de diseño es que todo es siempre editable. Haga clic en cualquier sitio y estará escribiendo. Eso es brillante para los escritores. Es terrible para los lectores que sólo quieren absorber el contenido sin la ansiedad de modificar algo accidentalmente. La propia [galería de plantillas] de Notion (https://www.notion.com/templates) lo demuestra: cada plantilla es un espacio de trabajo, no una publicación.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SharePoint&lt;/strong&gt; admite técnicamente distintos diseños de página para la visualización y la edición, pero la experiencia general sigue siendo la de una intranet corporativa. Los lectores se sienten como si estuvieran dentro de una herramienta empresarial, no leyendo un documento optimizado para su comprensión.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GitBook&lt;/strong&gt; es lo que más se acerca a una experiencia de lectura en primer lugar, con su salida limpia al estilo de la documentación. Pero incluso allí, la experiencia del lector sirve a la suposición de que el lector es un desarrollador mirando documentos técnicos. No está diseñado para el consumidor de conocimientos generales.&lt;/p&gt;
&lt;p&gt;Ninguna de estas plataformas trata la lectura como una actividad fundamentalmente diferente de la escritura. La tratan como escribir con la barra de herramientas oculta.&lt;/p&gt;
&lt;p&gt;Herramientas actuales: una interfaz, todos los públicos](/es/blog/img/readers-writers-current-tools.svg)&lt;/p&gt;
&lt;h2&gt;El coste de una interfaz única&lt;/h2&gt;
&lt;p&gt;No se trata sólo de un problema estético. Tiene consecuencias cuantificables.&lt;/p&gt;
&lt;h3&gt;La sobrecarga de información reduce la comprensión&lt;/h3&gt;
&lt;p&gt;Un &lt;a href=&quot;https://doi.org/10.1086/209336&quot;&gt;estudio publicado en el Journal of Consumer Research&lt;/a&gt; descubrió que la sobrecarga de información conduce a una peor calidad de la decisión, y que el efecto aumenta a medida que crece la proporción entre información irrelevante y relevante. Una página de documentación con controles de autor visibles, árboles de navegación y campos de metadatos aumenta esa proporción para cada lector que no está allí para escribir.&lt;/p&gt;
&lt;h3&gt;El cambio de contexto tiene un coste real&lt;/h3&gt;
&lt;p&gt;Cuando una señal de la interfaz dice &amp;quot;puede editar esto&amp;quot;, activa un marco cognitivo diferente al de &amp;quot;lea esto&amp;quot;. &lt;a href=&quot;https://www.ics.uci.edu/~gmark/&quot;&gt;La investigación de Gloria Mark en la UC Irvine&lt;/a&gt; sobre la atención y la multitarea descubrió que se tarda una media de 23 minutos y 15 segundos en volver a centrarse completamente tras un cambio de contexto. Un lector que se plantea momentáneamente editar (aunque sea para corregir una errata) ha sido sacado del modo lectura. No es una hipótesis. Cualquiera que haya utilizado Notion conoce la experiencia de hacer clic para seleccionar texto y empezar a escribir accidentalmente.&lt;/p&gt;
&lt;h3&gt;Los lectores y los escritores tienen necesidades diferentes ante el mismo contenido&lt;/h3&gt;
&lt;p&gt;Un escritor necesita ver la estructura, los marcadores de formato, los tipos de bloque, los metadatos y las señales de colaboración. Necesitan toda la maquinaria.&lt;/p&gt;
&lt;p&gt;Un lector necesita ver un texto limpio, una jerarquía clara y el camino más rápido hacia la información que busca. Necesitan el contenido, no la maquinaria.&lt;/p&gt;
&lt;p&gt;Servir a ambos desde la misma interfaz significa que ninguno obtiene una experiencia optimizada para lo que realmente está haciendo.&lt;/p&gt;
&lt;h2&gt;Y luego está el tercer público: AI&lt;/h2&gt;
&lt;p&gt;Aquí es donde la cosa se complica, y donde las plataformas existentes no están en absoluto preparadas.&lt;/p&gt;
&lt;p&gt;La documentación en 2026 tiene tres consumidores distintos, no dos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Escritores&lt;/strong&gt; que crean y mantienen el contenido&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lectores&lt;/strong&gt; que consumen contenidos visualmente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sistemas de inteligencia artificial&lt;/strong&gt; que recuperan, analizan y sintetizan contenidos mediante programación&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada uno de estos públicos necesita una interfaz fundamentalmente diferente para el mismo contenido subyacente.&lt;/p&gt;
&lt;p&gt;Los escritores necesitan herramientas de edición enriquecidas, funciones de colaboración y controles estructurales. Los lectores necesitan una presentación limpia y centrada con un mínimo de distracciones. La IA necesita una salida estructurada y legible por máquina con metadatos explícitos: señales de frescura, etiquetas de clasificación, direccionamiento a nivel de bloque y un marcado semántico limpio.&lt;/p&gt;
&lt;p&gt;Como ya comentamos en &lt;a href=&quot;https://rasepi.com/es/blog/builders-not-developers-how-claude-changed-devrel/&quot;&gt;Builders, Not Developers&lt;/a&gt;, los intermediarios de la IA ya son el consumidor dominante de documentación para una parte cada vez mayor de los trabajadores del conocimiento. La &lt;a href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;encuesta de desarrolladores 2024 de GitHub&lt;/a&gt; descubrió que el 97% de los desarrolladores empresariales han utilizado herramientas de codificación de IA. Para 2026, &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;el 84% de los desarrolladores utilizarán herramientas de IA con regularidad&lt;/a&gt;, y el 41% de todo el código será generado por IA.&lt;/p&gt;
&lt;p&gt;A estos sistemas de IA no les importa su barra lateral ni su barra de herramientas. Necesitan datos limpios. Y una plataforma que confunde la vista del lector con la del escritor también está confundiendo la superficie consumible por la IA con la superficie de autoría humana. Son tres desajustes en una sola interfaz.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://rasepi.com/es/blog/img/lectores-escritores-tres-p%C3%BAblicos.svg&quot; alt=&quot;Tres públicos, tres necesidades diferentes&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Cómo separa Rasepi las experiencias&lt;/h2&gt;
&lt;p&gt;Rasepi se basa en el principio de que crear contenidos y consumirlos son actividades distintas que merecen interfaces diferentes.&lt;/p&gt;
&lt;h3&gt;El entorno del escritor&lt;/h3&gt;
&lt;p&gt;Cuando escribe en Rasepi, dispone de un entorno de autor completo. Edición de texto enriquecido con TipTap, controles a nivel de bloque, indicadores de estado de traducción, gestión de vencimientos, herramientas de colaboración, vistas de estructura de contenidos y todo lo que un escritor necesita para crear y mantener una documentación de alta calidad.&lt;/p&gt;
&lt;p&gt;El redactor ve la maquinaria porque necesita la maquinaria.&lt;/p&gt;
&lt;!-- Captura de pantalla: Entorno de escritura Rasepi --&gt;
&lt;h3&gt;El entorno del lector&lt;/h3&gt;
&lt;p&gt;Cuando alguien consume un documento Rasepi, ve una experiencia de lectura limpia y centrada. Sin cromo de edición. Sin barras de herramientas. Sin señales de &amp;quot;usted podría modificar esto&amp;quot;. Sólo el contenido, presentado en un diseño optimizado para la comprensión y el escaneado.&lt;/p&gt;
&lt;p&gt;El lector no ve el botón de edición porque no está aquí para editar. Están aquí para aprender algo, seguir un proceso o encontrar una respuesta. La interfaz respeta esa intención.&lt;/p&gt;
&lt;!-- Captura de pantalla: Experiencia de lectura de Rasepi --&gt;
&lt;h3&gt;La superficie AI&lt;/h3&gt;
&lt;p&gt;Para los consumidores de IA, Rasepi expone el contenido a través de API estructuradas con metadatos completos. Cada bloque lleva su puntuación de frescura, estado de traducción, hash del contenido y etiquetas de clasificación. Los sistemas de IA pueden consultar el contenido a nivel de bloque, filtrar por frescura, excluir el material obsoleto o borrador y recuperar exactamente los datos estructurados que necesitan.&lt;/p&gt;
&lt;p&gt;Nada de raspar una página wiki y esperar lo mejor. La IA dispone de una interfaz especialmente diseñada, al igual que el lector y el escritor.&lt;/p&gt;
&lt;!-- Captura de pantalla: Superficie / API de la IA Rasepi --&gt;
&lt;h2&gt;Una capa de contenido, tres interfaces&lt;/h2&gt;
&lt;p&gt;Lo importante es que no estamos manteniendo tres copias del contenido. Este no es el problema de las cinco copias del mismo documento que comentamos en &lt;a href=&quot;https://rasepi.com/es/blog/stop-maintaining-five-copies-of-the-same-document/&quot;&gt;Deje de mantener cinco copias del mismo documento&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Se trata de una capa de contenido, almacenada como bloques estructurados, servida a través de tres vistas diferentes optimizadas para tres públicos distintos.&lt;/p&gt;
&lt;p&gt;El escritor edita bloques. El lector ve el contenido ensamblado y estilizado. La IA consulta datos estructurados con metadatos. Los mismos bloques. La misma fuente de verdad. Diferente capa de presentación para cada consumidor.&lt;/p&gt;
&lt;p&gt;Esto sólo es posible gracias a la arquitectura a nivel de bloque. Cada pieza de contenido es una unidad direccionable individualmente con sus propios metadatos. Puede presentar esos bloques de forma diferente en función de quién los solicite:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Audiencia&lt;/th&gt;
&lt;th&gt;Necesidades&lt;/th&gt;
&lt;th&gt;Obtiene&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Escritor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Formateo, estructura, colaboración, metadatos&lt;/td&gt;
&lt;td&gt;Entorno de autor completo con controles a nivel de bloque&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Lector&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Texto limpio, jerarquía clara, escaneo rápido&lt;/td&gt;
&lt;td&gt;Vista de lectura centrada, sin cromo de edición&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Datos estructurados, puntuaciones de frescura, clasificación&lt;/td&gt;
&lt;td&gt;API a nivel de bloque con metadatos completos&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Por qué esto importa más de lo que parece&lt;/h2&gt;
&lt;p&gt;Puede que lea esto y piense: &amp;quot;Es sólo interfaz de usuario. Diferentes vistas de la misma cosa. ¿Qué importancia puede tener?&amp;quot;&lt;/p&gt;
&lt;p&gt;Resulta que es muy importante.&lt;/p&gt;
&lt;h3&gt;Confianza de los lectores&lt;/h3&gt;
&lt;p&gt;La gente confía en los contenidos que parecen publicados. Cuando una página parece un wiki que cualquiera puede editar, los lectores la descartan inconscientemente. Cuando el mismo contenido se presenta en una vista de lectura limpia y con calidad de publicación, conlleva más autoridad. Esto no es irracional. Es una señal de que alguien se tomó en serio la presentación, lo que implica que también se tomó en serio el contenido.&lt;/p&gt;
&lt;p&gt;El Grupo Nielsen Norman ha estudiado este tema en profundidad. Su &lt;a href=&quot;https://www.nngroup.com/articles/trust-signals-content/&quot;&gt;investigación sobre la credibilidad del contenido&lt;/a&gt; muestra que la calidad del diseño y la presentación se encuentran entre las señales más fuertes en las que se basan los usuarios para evaluar la fiabilidad del contenido. Una vista de editor desordenada socava activamente la credibilidad del contenido que muestra.&lt;/p&gt;
&lt;h3&gt;Productividad del redactor&lt;/h3&gt;
&lt;p&gt;Los escritores que trabajan en un entorno de autor dedicado no tienen que cambiar de contexto entre &amp;quot;¿estoy leyendo o estoy escribiendo?&amp;quot;. Las herramientas están ahí porque se supone que tienen que estar ahí, no porque la interfaz no pueda decidir quién la está mirando.&lt;/p&gt;
&lt;h3&gt;Fiabilidad de la IA&lt;/h3&gt;
&lt;p&gt;Cuando los sistemas de IA disponen de una superficie construida a propósito con metadatos estructurados, pueden tomar mejores decisiones sobre qué recuperar y qué excluir. Pueden comprobar las puntuaciones de frescura antes de incluir un bloque en una respuesta. Pueden respetar las etiquetas de clasificación. Pueden filtrar por idioma, estado o audiencia. Nada de eso es posible cuando la IA está raspando la misma página HTML que se diseñó para lectores humanos.&lt;/p&gt;
&lt;h2&gt;El cambio de modelo mental&lt;/h2&gt;
&lt;p&gt;El supuesto fundamental de la mayoría de las plataformas de documentación es: &lt;em&gt;la página es la unidad, y todo el mundo interactúa con la página.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;La suposición de Rasepi es diferente: &lt;em&gt;el bloque es la unidad, y distintos públicos interactúan con los bloques a través de superficies creadas a tal efecto.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Parece una pequeña distinción arquitectónica. No lo es. Es la diferencia entre una herramienta que accidentalmente muestra contenidos a los sistemas de inteligencia artificial y otra que deliberadamente les sirve. Entre un entorno de escritura que resulta ser legible y una experiencia de lectura diseñada desde cero. Entre una interfaz suficientemente buena y tres excelentes.&lt;/p&gt;
&lt;p&gt;La documentación ya no sólo se escribe y se lee. Se escribe, se lee, se consulta, se traduce, se puntúa, se clasifica y se sirve a sistemas de IA a escala. Una única interfaz no puede optimizar todo eso, y fingir que puede es la forma en que acabamos con wikis que nadie quiere leer y asistentes de IA que extraen respuestas de páginas que nunca fueron diseñadas para ser consumidas por máquinas.&lt;/p&gt;
&lt;p&gt;Los lectores y los escritores están en modos mentales diferentes. La IA está en un modo completamente diferente. La interfaz debería reflejarlo.&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="ux" />
    <category term="documentation" />
    <category term="knowledge-management" />
  </entry>
  <entry>
    <title>El estado de los documentos en 2026: cinco tendencias que definirán la próxima era</title>
    <link href="https://rasepi.com/es/blog/the-state-of-docs-in-2026/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/the-state-of-docs-in-2026/</id>
    <updated>2026-04-03T00:00:00Z</updated>
    <summary>El número de lectores de AI ha aumentado un 500%. Notion despachó 21.000 agentes. Confluence consiguió Rovo. GitBook publicó el State of Docs. Cinco tendencias de todo el sector que nos indican hacia dónde se dirige la documentación.</summary>
    <content type="html">&lt;p&gt;Cada pocos meses dedico una mañana a leer. Ni código Rasepi, ni temas de GitHub. Blogs de la competencia, informes del sector, anuncios de keynote, encuestas a desarrolladores. Cualquier cosa que haya salido en el último trimestre que tenga que ver con la documentación, la gestión del conocimiento o los flujos de trabajo asistidos por IA.&lt;/p&gt;
&lt;p&gt;Lo hice la semana pasada y la imagen que surgió fue más nítida de lo que esperaba. No porque un solo anuncio fuera innovador, sino porque convergen cinco tendencias distintas que, al alinearlas, dibujan un panorama muy claro de lo que las plataformas de documentación deberán hacer en los próximos dos años.&lt;/p&gt;
&lt;p&gt;Esto es lo que descubrí&lt;/p&gt;
&lt;h2&gt;1. La IA es ahora el lector principal. No los humanos.&lt;/h2&gt;
&lt;p&gt;GitBook publicó una cifra sorprendente en su &lt;a href=&quot;https://www.gitbook.com/blog/ai-docs-data-2025&quot;&gt;AI docs data report&lt;/a&gt;: La lectura de documentación por parte de la IA aumentó más de un 500% en 2025. Quinientos por ciento. Eso no es un error de redondeo.&lt;/p&gt;
&lt;p&gt;Mientras tanto, la &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;Encuesta a desarrolladores 2024&lt;/a&gt; de Stack Overflow mostró que el 61% de los desarrolladores pasan más de 30 minutos al día buscando respuestas. Pero la forma en que buscan ha cambiado. La propia encuesta de GitHub descubrió que &lt;a href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;el 97% de los desarrolladores empresariales&lt;/a&gt; han utilizado herramientas de codificación con IA. En 2026, &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;el 84% de los desarrolladores&lt;/a&gt; utilizarán herramientas de IA a diario, y el 41% del código estará generado ahora por IA. Estas personas no están navegando por la barra lateral de su wiki. Están preguntando a Claude o Copilot, y la IA está leyendo sus documentos en su nombre.&lt;/p&gt;
&lt;p&gt;La implicación es difícil de exagerar. Su consumidor de documentación más frecuente ya no es una persona con una pestaña del navegador abierta. Es un modelo lingüístico haciendo llamadas de recuperación. Y ese modelo no tiene capacidad para entrecerrar los ojos ante una página y pensar &amp;quot;hmm, esto parece anticuado&amp;quot;.&lt;/p&gt;
&lt;p&gt;GitBook se dio cuenta de esto pronto y respondió con su &lt;a href=&quot;https://www.gitbook.com/blog/state-of-docs-2026&quot;&gt;informe State of Docs 2026&lt;/a&gt; y un impulso hacia los formatos legibles por máquinas. También lanzaron &lt;a href=&quot;https://www.gitbook.com/blog/skill-md&quot;&gt;skill.md&lt;/a&gt;, una convención para estructurar la información del producto específicamente para agentes de IA. Google fue más allá con su &lt;a href=&quot;https://blog.google/innovation-and-ai/technology/developers-tools/gemini-api-docsmcp-agent-skills/&quot;&gt;Gemini API Docs MCP&lt;/a&gt;, que conecta a los agentes de codificación con la documentación actual a través del Protocolo de Contexto de Modelo. Su razonamiento era explícito: los agentes generan código obsoleto porque sus datos de entrenamiento tienen una fecha límite. La corrección del MCP elevó su tasa de aprobados en la evaluación al 96,3%.&lt;/p&gt;
&lt;p&gt;Así que la primera tendencia está asentada. La IA es el lector principal. Las plataformas que traten esto como una restricción central de diseño, no como una característica a añadir más tarde, tendrán una ventaja estructural.&lt;/p&gt;
&lt;h2&gt;2. La frescura y los metadatos de confianza se están convirtiendo en obligatorios&lt;/h2&gt;
&lt;p&gt;Anthropic entrevistó a &lt;a href=&quot;https://www.anthropic.com/81k-interviews&quot;&gt;81.000 usuarios de Claude&lt;/a&gt; en diciembre de 2025 y publicó los resultados en marzo de 2026. Se trata del mayor estudio cualitativo de usuarios de IA jamás realizado (159 países, 70 idiomas). ¿La preocupación más citada? La falta de fiabilidad. El 27% de los encuestados la mencionó como su principal preocupación, y el 79% de esas personas la habían experimentado de primera mano.&lt;/p&gt;
&lt;p&gt;Esa cifra debería quitar el sueño a todos los equipos de documentación.&lt;/p&gt;
&lt;p&gt;Cuando las respuestas de la IA no son fiables, el problema no siempre es el modelo. A menudo, el modelo está reproduciendo fielmente lo que encontró en un documento obsoleto. El modelo no alucinó. Simplemente, sus documentos estaban mal y nadie los señaló.&lt;/p&gt;
&lt;p&gt;Los datos de Stack Overflow refuerzan esto desde un ángulo diferente: &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;El 81% de los desarrolladores&lt;/a&gt; esperan que la IA esté más integrada en su forma de documentar el código el año que viene. Si el 81% de sus usuarios están alimentando a la IA con documentación, y el 27% de los usuarios de IA dicen que la falta de fiabilidad es el mayor problema, usted tiene un problema de confianza que ninguna cantidad de ingeniería rápida soluciona. La solución está en la fuente.&lt;/p&gt;
&lt;p&gt;Por eso importan los metadatos de frescura. No las marcas de tiempo de &amp;quot;última edición&amp;quot; (esas le dicen cuándo alguien tocó el archivo, no si el contenido sigue siendo exacto). Frescura real: estado de las revisiones, salud de los enlaces, alineación de las traducciones, señales de lectura, detección de la deriva del contenido. Metadatos que una máquina pueda leer y utilizar para decidir si es seguro citar un documento.&lt;/p&gt;
&lt;p&gt;Sigo volviendo a un simple encuadre. Su documentación necesita una puntuación de crédito. No una marca de tiempo. Una puntuación de crédito. (Hemos estado construyendo exactamente esto con el [sistema de puntuación de frescura] de Rasepi (/características/frescura) y, sinceramente, ver los datos de la industria sólo me hace estar más convencido de que es la decisión correcta).&lt;/p&gt;
&lt;h2&gt;3. La traducción pasa de &amp;quot;proyecto&amp;quot; a &amp;quot;pipeline&amp;quot;.&lt;/h2&gt;
&lt;p&gt;DeepL publicó en febrero un artículo titulado &lt;a href=&quot;https://www.deepl.com/en/blog/six-translation-transformations&quot;&gt;&amp;quot;The 6 Translation Transformations Global Businesses Can&#39;t Afford to Miss&amp;quot;&lt;/a&gt;. Su argumento: la traducción se está convirtiendo en un reto operativo continuo, no en un proyecto por lotes que se realiza trimestralmente.&lt;/p&gt;
&lt;p&gt;Eso concuerda con todo lo que veo.&lt;/p&gt;
&lt;p&gt;El antiguo modelo era sencillo. Escriba en inglés. Cuando tenga presupuesto, contrate a un traductor o hágalo pasar por un servicio. Reciba las traducciones. Cárguelas. Hecho hasta la próxima vez. El problema es que &amp;quot;la próxima vez&amp;quot; llega cada vez más rápido cuando su producto se envía semanalmente y sus documentos se actualizan constantemente. Para cuando la versión alemana está de vuelta de la revisión, la fuente inglesa ya ha cambiado dos veces.&lt;/p&gt;
&lt;p&gt;El propio [Centro de personalización] de DeepL (https://www.deepl.com/customization-hub) ofrece ahora glosarios, reglas de estilo y ajustes de formalidad, lo cual es estupendo. Pero si esas herramientas viven fuera de su plataforma de documentación, estará gestionando una cadena de herramientas de traducción: editor, exportar, traducir, revisar, reimportar, repetir. Cada paso es una oportunidad para la deriva.&lt;/p&gt;
&lt;p&gt;Notion no tiene soporte multilingüe nativo en absoluto. Confluence lo ofrece a través de plugins del mercado. GitBook &lt;a href=&quot;https://www.gitbook.com/blog/new-in-gitbook-august-2025&quot;&gt;añadió la traducción automática en agosto de 2025&lt;/a&gt;, que es un paso, pero funciona a nivel de página.&lt;/p&gt;
&lt;p&gt;El verdadero cambio es del nivel de página al nivel de bloque. Cuando se hace un seguimiento de las traducciones a nivel de párrafo, sólo se retraduce lo que realmente ha cambiado. Una edición típica toca quizá dos párrafos de cuarenta. Eso supone un 94% menos de trabajo de traducción. (Esta es la arquitectura central de traducción de Rasepi y, sinceramente, de lo que más orgulloso estoy del producto. Pero incluso dejándonos de lado, la dirección de la industria es clara: la traducción continua, incremental e integrada es hacia donde se dirige esto).&lt;/p&gt;
&lt;h2&gt;4. Los agentes de IA necesitan contenidos estructurados, no páginas wiki&lt;/h2&gt;
&lt;p&gt;Ésta cristalizó para mí cuando Notion anunció &lt;a href=&quot;https://www.notion.com/blog/introducing-custom-agents&quot;&gt;Custom Agents&lt;/a&gt; en febrero. 21.000 agentes construidos durante el acceso anticipado. Agentes que responden a preguntas de las bases de conocimientos, enrutan tareas, compilan informes de estado. Sólo la rampa tiene más de 300 agentes.&lt;/p&gt;
&lt;p&gt;Atlassian fue en una dirección similar. &lt;a href=&quot;https://www.atlassian.com/blog/confluence/create-and-edit-with-rovo&quot;&gt;Rovo AI in Confluence&lt;/a&gt; extrae el contexto de todas las aplicaciones de Atlassian y de terceros para generar contenido. Su discurso: &amp;quot;contenido rico en contexto y de alta calidad basado en el trabajo existente de su equipo&amp;quot;.&lt;/p&gt;
&lt;p&gt;Y luego Anthropic lanzó &lt;a href=&quot;https://www.anthropic.com/news/claude-opus-4-6&quot;&gt;equipos de agentes en Claude Code&lt;/a&gt;, donde múltiples agentes de IA se coordinan de forma autónoma en tareas complejas. Opus 4.6 obtiene una puntuación del 76% en la prueba de 8 agujas 1M MRCR (frente al 18,5% del modelo anterior), lo que significa que realmente puede recuperar información enterrada en lo más profundo de conjuntos masivos de documentos sin perder el rastro.&lt;/p&gt;
&lt;p&gt;Las tres empresas están construyendo agentes que consumen documentación. Ninguna de ellas ha resuelto el problema de la calidad de la fuente.&lt;/p&gt;
&lt;p&gt;La documentación de los agentes personalizados de Notion reconoce explícitamente el &lt;a href=&quot;https://www.notion.com/blog/introducing-custom-agents&quot;&gt;riesgo de inyección rápida&lt;/a&gt; cuando los agentes leen contenido que no es de confianza. Rovo de Atlassian coge todo lo que encuentra en su Confluence. Si ese contenido tiene tres meses de antigüedad, Rovo no lo sabe. Construye sobre él de todos modos.&lt;/p&gt;
&lt;p&gt;Para que los agentes funcionen de forma fiable, necesitan algo más que páginas de texto. Necesitan contenidos estructurados con identificadores estables, señales explícitas de frescura, metadatos de clasificación claros y la capacidad de distinguir &amp;quot;esto es actual y está revisado&amp;quot; de &amp;quot;esto existe pero nadie lo ha tocado en un año&amp;quot;. Las páginas wiki no proporcionan eso. El contenido estructurado a nivel de bloque con metadatos de confianza sí lo hace.&lt;/p&gt;
&lt;h2&gt;5. El código abierto y el autoalojamiento están resurgiendo&lt;/h2&gt;
&lt;p&gt;Esto último es más una corazonada respaldada por datos que un simple anuncio.&lt;/p&gt;
&lt;p&gt;GitBook &lt;a href=&quot;https://www.gitbook.com/blog/free-open-source-documentation&quot;&gt;open-sourced their published documentation&lt;/a&gt; a finales de 2024 y lanzó un fondo OSS. Su razonamiento: los proyectos de código abierto merecen herramientas de documentación gratuitas y de alta calidad. Pero el movimiento también señala algo más amplio.&lt;/p&gt;
&lt;p&gt;Notion es sólo en la nube. No hay opción de autoalojamiento. Confluence Data Center existe pero requiere una licencia. Cuando su plataforma de documentación alberga sus conocimientos operativos más sensibles (libros de jugadas de incidentes, procedimientos de cumplimiento, decisiones de arquitectura), la pregunta de &amp;quot;¿quién controla estos datos?&amp;quot; no es abstracta.&lt;/p&gt;
&lt;p&gt;El post de Anthropic &lt;a href=&quot;https://www.anthropic.com/news/claude-is-a-space-to-think&quot;&gt;&amp;quot;Claude es un espacio para pensar&amp;quot;&lt;/a&gt; de febrero planteaba un argumento interesante sobre la confianza y los modelos de negocio. Su afirmación central: los incentivos publicitarios son incompatibles con un asistente de IA realmente útil. Optaron por mantenerse sin publicidad para que los usuarios confíen en la herramienta.&lt;/p&gt;
&lt;p&gt;Creo que existe un paralelismo para las plataformas de documentación. Si su sistema de documentación es de código cerrado y sólo en la nube, no puede verificar lo que alimenta a la IA. No puede auditar los cálculos de frescura. No puede asegurarse de que sus datos permanezcan bajo su control. Para los equipos que están desplegando asistentes de IA en la parte superior de su base de conocimientos (y cada vez más, todo el mundo está haciendo esto), la auditabilidad importa.&lt;/p&gt;
&lt;p&gt;No se trata de una polémica sobre si el código abierto es moralmente superior. Los productos de código cerrado pueden ser absolutamente dignos de confianza. Pero cuando está construyendo flujos de trabajo impulsados por IA sobre su documentación interna, la capacidad de inspeccionar y verificar el sistema es una ventaja práctica. Para nosotros, la licencia MIT de Rasepi no fue una idea de última hora. Fue una decisión de diseño arraigada en la misma lógica: la infraestructura de documentación debe ser auditable.&lt;/p&gt;
&lt;h2&gt;Lo que significan estas cinco tendencias juntas&lt;/h2&gt;
&lt;p&gt;Individualmente, cada una de estas tendencias es manejable. ¿La IA lee sus documentos? Bien, añada metadatos legibles por máquina. ¿La frescura importa? Bien, añada fechas de revisión. ¿La traducción debe ser continua? Claro, integre DeepL. ¿Los agentes necesitan estructura? Justo, mejore su modelo de contenidos. ¿La soberanía importa? Estupendo, ofrezca una opción de autoalojamiento.&lt;/p&gt;
&lt;p&gt;Pero tomados en conjunto, describen una plataforma que parece fundamentalmente diferente de lo que la mayoría de los equipos utilizan hoy en día.&lt;/p&gt;
&lt;p&gt;La brecha es arquitectónica. No se trata de cinco características que se puedan añadir. Son cinco supuestos que deben incorporarse a los cimientos. Cómo se almacena el contenido (a nivel de bloque, no de página). Cómo se modela la confianza (puntuaciones de frescura, no marcas de tiempo). Cómo funciona la traducción (incremental, incrustada, por párrafo). Cómo acceden los agentes de IA a los contenidos (API estructuradas con metadatos, no raspado de páginas). Cómo se controlan los datos (abiertos, auditables, autoalojables).&lt;/p&gt;
&lt;p&gt;Ninguna plataforma establecida se ha diseñado en torno a estos cinco aspectos simultáneamente. Algunas las están añadiendo poco a poco. GitBook se está moviendo más rápido en el frente de la legibilidad de la IA. Notion está construyendo una infraestructura de agentes. Atlassian tiene distribución empresarial.&lt;/p&gt;
&lt;p&gt;¿Pero diseñar para los cinco desde el primer día? Esa es la ventaja de empezar de cero cuando el terreno se mueve.&lt;/p&gt;
&lt;p&gt;Soy consciente de que aquí soy parcial. Construimos Rasepi específicamente porque vimos que estas tendencias convergían y queríamos una plataforma que las asumiera todas desde el principio. Traducción a nivel de bloque, caducidad forzosa, puntuación de frescura, contenidos estructurados listos para la IA, código abierto. Es la tesis de todo el proyecto.&lt;/p&gt;
&lt;p&gt;Pero aunque no existiéramos, creo que cualquier lectura honesta de lo ocurrido en el primer trimestre de 2026 apunta en la misma dirección. La documentación se está convirtiendo en infraestructura. Y la infraestructura tiene requisitos diferentes a los de las páginas wiki.&lt;/p&gt;
&lt;p&gt;Los equipos que descubran esto primero no sólo tendrán mejores documentos. Tendrán agentes de IA más fiables, menores costes de traducción, menos sorpresas de cumplimiento y bases de conocimientos que realmente sigan siendo fiables con el paso del tiempo.&lt;/p&gt;
&lt;p&gt;Ese será el estado de los documentos en 2026. La cuestión no es si estas tendencias son reales. Es si su plataforma ha sido diseñada para ellas.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cinco tendencias. Una pregunta arquitectónica: ¿su plataforma de documentación se diseñó para 2026 o sigue sirviendo supuestos de 2016?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Fuentes: &lt;a href=&quot;https://www.gitbook.com/blog/ai-docs-data-2025&quot;&gt;GitBook AI docs data report&lt;/a&gt;, &lt;a href=&quot;https://www.gitbook.com/blog/state-of-docs-2026&quot;&gt;GitBook State of Docs 2026&lt;/a&gt;, &lt;a href=&quot;https://www.gitbook.com/blog/skill-md&quot;&gt;GitBook skill.md&lt;/a&gt;, &lt;a href=&quot;https://blog.google/innovation-and-ai/technology/developers-tools/gemini-api-docsmcp-agent-skills/&quot;&gt;Google Gemini API Docs MCP&lt;/a&gt;, &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;Stack Overflow 2024 Developer Survey&lt;/a&gt;, &lt;a href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;GitHub 2024 developer survey&lt;/a&gt;, &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;Index.dev developer productivity statistics&lt;/a&gt;, &lt;a href=&quot;https://www.anthropic.com/81k-interviews&quot;&gt;Anthropic &amp;quot;What 81,000 People Want from AI&amp;quot;&lt;/a&gt;, &lt;a href=&quot;https://www.anthropic.com/news/claude-is-a-space-to-think&quot;&gt;Anthropic &amp;quot;Claude es un espacio para pensar&amp;quot;&lt;/a&gt;, &lt;a href=&quot;https://www.anthropic.com/news/claude-opus-4-6&quot;&gt;Claude Opus 4.6&lt;/a&gt;, &lt;a href=&quot;https://www.notion.com/blog/introducing-custom-agents&quot;&gt;Agentes personalizados de Notion&lt;/a&gt;, &lt;a href=&quot;https://www.atlassian.com/blog/confluence/create-and-edit-with-rovo&quot;&gt;Atlassian Rovo en Confluence&lt;/a&gt;, &lt;a href=&quot;https://www.deepl.com/en/blog/six-translation-transformations&quot;&gt;DeepL &amp;quot;6 transformaciones de traducción&amp;quot;&lt;/a&gt;, &lt;a href=&quot;https://www.deepl.com/customization-hub&quot;&gt;DeepL Customization Hub&lt;/a&gt;, &lt;a href=&quot;https://www.gitbook.com/blog/free-open-source-documentation&quot;&gt;Documentación de código abierto de GitBook&lt;/a&gt;, &lt;a href=&quot;https://www.gitbook.com/blog/new-in-gitbook-august-2025&quot;&gt;Traducción automática de GitBook&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="ai" />
    <category term="documentation" />
    <category term="platforms" />
  </entry>
  <entry>
    <title>Constructores, no desarrolladores: Cómo Claude cambió para quién son sus documentos</title>
    <link href="https://rasepi.com/es/blog/builders-not-developers-how-claude-changed-devrel/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/builders-not-developers-how-claude-changed-devrel/</id>
    <updated>2026-04-02T00:00:00Z</updated>
    <summary>La persona que integra su API ya no lee sus documentos. Se sientan en Claude y describen lo que quieren. Las relaciones con los desarrolladores, la documentación de la API y todo el embudo de puesta en marcha deben replantearse para esta nueva realidad.</summary>
    <content type="html">&lt;p&gt;Hay una persona ahora mismo, en algún lugar, integrando su API. No están en su sitio de documentación. No han abierto su guía de inicio. No han visto su zona de juegos interactiva ni su cuidada barra lateral de navegación.&lt;/p&gt;
&lt;p&gt;Están sentados en Claude. O Copiloto. O Cursor. Han tecleado algo como &lt;em&gt;&amp;quot;integrar la API de facturación de Stripe con mi aplicación Next.js utilizando el enrutador de aplicaciones&amp;quot;&lt;/em&gt; y han esperado a que les devolviera el código funcional. La IA leyó sus documentos en su nombre. Encontró los puntos finales relevantes, entendió el flujo de autenticación, eligió los métodos SDK correctos y produjo una implementación.&lt;/p&gt;
&lt;p&gt;Hace dos semanas, en el Start Summit Hackathon de St. Gallen, vi cómo ocurría esto en tiempo real. Estaba hablando con un grupo de estudiantes de CS y un par de fundadores de startups en fase inicial sobre cómo abordan las nuevas API, y todos y cada uno de ellos describieron el mismo flujo de trabajo: pegar el problema en una IA, obtener código de vuelta, iterar a partir de ahí. Una de las estudiantes se rió cuando le pregunté si había leído los documentos. &amp;quot;¿Por qué iba a hacerlo? Claude los lee por mí&amp;quot;.&lt;/p&gt;
&lt;p&gt;La persona nunca visitó su sitio. Puede que nunca visiten su sitio. Y así es como se construye cada vez más el software.&lt;/p&gt;
&lt;h2&gt;El cambio fundamental&lt;/h2&gt;
&lt;p&gt;La documentación tiene ahora dos consumidores fundamentalmente diferentes: los humanos que la leen y los asistentes de IA que la leen en nombre de los constructores. La mayor parte de la documentación está optimizada exclusivamente para los humanos. La IA es ya el lector dominante.&lt;/p&gt;
&lt;p&gt;Esto lo cambia todo aguas abajo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La frescura es ahora un problema de fiabilidad.&lt;/strong&gt; Cuando una IA sirve contenido rancio, el constructor no tiene forma de detectar el problema. El daño escala silenciosamente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;quot;Desarrollador&amp;quot; es una palabra demasiado estrecha.&lt;/strong&gt; Los jefes de producto, diseñadores y analistas están distribuyendo software a través de asistentes de IA, a menudo sin haber leído ellos mismos ni una línea de documentación.&lt;/li&gt;
&lt;li&gt;Una estructura legible por la máquina es más importante que el diseño visual.** Un markdown limpio, bloques autocontenidos y metadatos explícitos son lo que permite a la IA representar su producto con precisión.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Los requisitos de formato se han dividido.&lt;/strong&gt; Los lectores humanos necesitan narrativa. Los intermediarios de la IA necesitan especificaciones estructuradas y parseables. Usted necesita servir a ambos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El resto de este artículo explica cómo hemos llegado hasta aquí, qué significa esto para DevRel y qué puede hacer al respecto ahora mismo.&lt;/p&gt;
&lt;h2&gt;El viaje que nadie planeó&lt;/h2&gt;
&lt;p&gt;Durante mucho tiempo, las relaciones con los desarrolladores siguieron un camino bien entendido. Usted redactó una documentación exhaustiva. Publicó guías de inicio rápido. Usted dio charlas en conferencias. Usted mantuvo una presencia en Stack Overflow. Usted hizo que la referencia de su API fuera buscable, sus SDK idiomáticos, sus mensajes de error útiles.&lt;/p&gt;
&lt;p&gt;Ese camino suponía que el desarrollador leería su contenido. Navegaría por tu estructura. Seguiría sus pasos.&lt;/p&gt;
&lt;p&gt;La &lt;a href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;encuesta de desarrolladores 2024 de GitHub&lt;/a&gt; reveló que el 97% de los desarrolladores empresariales han utilizado herramientas de codificación de IA en algún momento. La &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;encuesta anual de Stack Overflow&lt;/a&gt; mostró que el 76% de todos los desarrolladores utilizan o tienen previsto utilizar herramientas de IA, y que el 62% de los profesionales las utilizan activamente en su día a día. Para 2026, esa cifra &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;subía al 84%&lt;/a&gt;, con el 41% de todo el código generado ahora por IA y el 51% de los desarrolladores profesionales utilizando herramientas de IA a diario. Esas cifras no se están ralentizando.&lt;/p&gt;
&lt;p&gt;El nuevo viaje tiene un aspecto diferente. Alguien describe lo que quiere en lenguaje natural. Un asistente de IA lee la documentación, encuentra las secciones relevantes y genera la integración. El constructor revisa el resultado, tal vez refina la solicitud, tal vez pide un seguimiento. Minutos, no horas.&lt;/p&gt;
&lt;p&gt;¿El embudo de puesta en marcha que los equipos de DevRel pasaron años perfeccionando? Se está obviando. No porque fuera malo. Simplemente, el punto de entrada se ha desplazado.&lt;/p&gt;
&lt;h2&gt;Dos consumidores, un conjunto de documentos&lt;/h2&gt;
&lt;p&gt;La documentación tiene ahora dos públicos fundamentalmente diferentes.&lt;/p&gt;
&lt;p&gt;El primero es el lector humano. Esta persona sigue existiendo. Aparecen para tomar decisiones de arquitectura, depurar casos límite, revisar la conformidad y comprender conceptos. Quieren explicaciones narrativas, material de referencia bien organizado y un razonamiento claro sobre las compensaciones.&lt;/p&gt;
&lt;p&gt;El segundo es el intermediario de la IA. Lee su documentación en nombre de un constructor. No le importa su barra lateral. No aprecia su diseño visual. Necesita un contenido estructurado y comprensible para la máquina: un markdown limpio, un formato coherente, especificaciones explícitas sobre las que pueda razonar sin ambigüedades.&lt;/p&gt;
&lt;p&gt;Hoy en día, casi todos los sitios de documentación están optimizados exclusivamente para el primer público. El segundo público es ya el consumidor dominante.&lt;/p&gt;
&lt;p&gt;Jeremy Howard identificó esta tensión cuando &lt;a href=&quot;https://llmstxt.org/&quot;&gt;propuso la norma /llms.txt&lt;/a&gt; en 2024. Su observación fue precisa: &lt;em&gt;&amp;quot;Los grandes modelos lingüísticos dependen cada vez más de la información de los sitios web, pero se enfrentan a una limitación crítica: las ventanas de contexto son demasiado pequeñas para manejar la mayoría de los sitios web en su totalidad.&amp;quot;&lt;/em&gt; La propuesta es sencilla. Un archivo markdown curado en &lt;code&gt;/llms.txt&lt;/code&gt; que proporcione a los modelos de IA una visión general estructurada de su producto y enlaces a los recursos más importantes. FastHTML, los propios documentos de Anthropic y un &lt;a href=&quot;https://llmstxt.site/&quot;&gt;directorio creciente de proyectos&lt;/a&gt; ya incluyen uno.&lt;/p&gt;
&lt;p&gt;Es una convención útil. Pero también es un síntoma de un problema más profundo. El verdadero problema no es el formato. Es que la mayor parte de la documentación nunca se diseñó pensando en el consumo por parte de las máquinas.&lt;/p&gt;
&lt;h2&gt;El constructor no recorta gastos&lt;/h2&gt;
&lt;p&gt;Existe la tentación de mirar a la persona que pregunta a Claude en lugar de leer la documentación y concluir que está tomando atajos. Que no entienden realmente lo que ocurre en el código. Que de alguna manera son un tipo de desarrollador inferior.&lt;/p&gt;
&lt;p&gt;Ya he tenido esta conversación suficientes veces como para saber que eso suele ser erróneo.&lt;/p&gt;
&lt;p&gt;Muchos de estos constructores son ingenieros experimentados que toman decisiones deliberadas sobre la eficiencia. Entienden el código, simplemente no quieren navegar por cuatro páginas de documentación para encontrar las tres líneas que realmente necesitan. Han aprendido que un asistente de IA puede extraer esas líneas más rápido de lo que ellos pueden escanearlas, así que delegan la lectura. (Sinceramente, yo mismo hago esto. No recuerdo la última vez que leí una guía de inicio de arriba abajo).&lt;/p&gt;
&lt;p&gt;Anthropic reconoció este patrón cuando construyó el &lt;a href=&quot;https://modelcontextprotocol.io/introduction&quot;&gt;Protocolo de Contexto Modelo&lt;/a&gt;. El MCP está ahora soportado por Claude, ChatGPT, VS Code, Cursor y otros. Está diseñado explícitamente para que los asistentes de IA puedan llegar a sistemas externos, extraer contexto y actuar en consecuencia. La especificación lo describe como un &lt;em&gt;&amp;quot;acceso a un ecosistema de fuentes de datos, herramientas y aplicaciones que aumentarán las capacidades y mejorarán la experiencia del usuario final&amp;quot;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Léalo con atención. Es lenguaje de infraestructura, no de conveniencia. Los constructores que utilizan estas herramientas no están evitando el trabajo. Están trabajando a través de una nueva capa, y su documentación forma parte de esa capa, tanto si usted la diseñó para ello como si no.&lt;/p&gt;
&lt;p&gt;Las cifras respaldan esto. Sólo Claude gestiona en la actualidad &lt;a href=&quot;https://www.incremys.com/en/resources/blog/claude-statistics&quot;&gt;25.000 millones de llamadas API al mes&lt;/a&gt;, con 30 millones de usuarios activos mensuales en 159 países. El &lt;a href=&quot;https://www.incremys.com/en/resources/blog/claude-statistics&quot;&gt;70% de las empresas de la lista Fortune 100&lt;/a&gt; utilizan Claude. Según un estudio de Menlo Ventures, Anthropic posee el &lt;a href=&quot;https://fortune.com/2025/12/02/how-anthropics-safety-first-approach-won-over-big-business-and-how-its-own-engineers-are-using-its-claude-ai/&quot;&gt;32% de la cuota de mercado de la IA empresarial por uso de modelos&lt;/a&gt;, por delante de OpenAI con un 25%. Un informe de investigación de HSBC lo sitúa incluso por encima: 40% por gasto total en IA. No se trata de herramientas experimentales. Son infraestructuras primarias.&lt;/p&gt;
&lt;h2&gt;Las relaciones con los desarrolladores se construyeron para otra época&lt;/h2&gt;
&lt;p&gt;Si su estrategia DevRel se diseñó antes de 2023, se diseñó para un mundo en el que los desarrolladores leían los documentos directamente. Ese mundo no ha desaparecido, pero ya no es el patrón de interacción dominante para una parte cada vez mayor de los desarrolladores.&lt;/p&gt;
&lt;p&gt;Esto cambia el cálculo de varias actividades de DevRel de larga data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conferencias.&lt;/strong&gt; Una presentación de 45 minutos en una conferencia de desarrolladores llega a una sala de unos cientos de personas. Un archivo &lt;code&gt;/llms.txt&lt;/code&gt; bien estructurado y una documentación limpia y legible por máquina llegan a todos los constructores que preguntan a cualquier asistente de IA sobre su producto, continuamente, en cualquier momento. La charla es un acontecimiento único. La documentación legible por máquina se acumula. No digo que las conferencias no valgan nada (literalmente acabo de volver de una), pero la ecuación de apalancamiento ha cambiado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guías de inicio.&lt;/strong&gt; El clásico tutorial de inicio rápido en cinco pasos es cada vez más una formalidad. El constructor no sigue pasos. Describen lo que quieren y esperan que la IA produzca la integración. Si la API está bien documentada en un formato apto para las máquinas, la IA se encarga de la experiencia de puesta en marcha de forma más eficiente de lo que podría hacerlo cualquier tutorial. En su lugar, los tutoriales deberían convertirse en material conceptual: explicar por qué elegir el enfoque A en lugar del B. La IA puede generar la implementación. Es mucho menos fiable a la hora de explicar las compensaciones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stack Overflow.&lt;/strong&gt; Los datos de su propia encuesta muestran que &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;el 84% de los desarrolladores&lt;/a&gt; utilizan la documentación técnica directamente, y el 90% de ellos confían en la documentación de los paquetes de API y SDK. Pero la forma en que &lt;em&gt;acceden&lt;/em&gt; a esos documentos es cada vez más a través de una capa de IA, no de una pestaña del navegador. Las preguntas que todavía llegan a Stack Overflow tienden a ser las difíciles. Casos límite, depuración de producción, cosas que requieren matices. Valiosas, seguro. Pero ya no es donde está el volumen.&lt;/p&gt;
&lt;h2&gt;Cuando la IA lee sus documentos, la frescura se vuelve crítica&lt;/h2&gt;
&lt;p&gt;Esta es la parte en la que la mayoría de los equipos no han pensado.&lt;/p&gt;
&lt;p&gt;Cuando un humano lee una página de documentación, puede aplicar su juicio. Pueden notar que las capturas de pantalla parecen antiguas, o que un comentario al final dice que el proceso ha cambiado. Pueden entrecerrar los ojos y pensar &amp;quot;esto parece anticuado&amp;quot;.&lt;/p&gt;
&lt;p&gt;Un asistente de IA no puede hacer nada de eso. Lee el texto, lo procesa como un hecho y genera una respuesta con total confianza. Si la documentación describe un punto final obsoleto, la IA recomendará alegremente integrarse con él. Si la documentación hace referencia a una infraestructura que fue sustituida hace seis meses, la IA describirá la antigua configuración como actual. Sin titubeos.&lt;/p&gt;
&lt;p&gt;Y aquí está lo que hace que esto sea peor de lo que parece: &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;El 66% de los desarrolladores&lt;/a&gt; ya dicen que el mayor problema con las herramientas de IA es que dan resultados que son &amp;quot;casi correctos pero no del todo&amp;quot;. La documentación obsoleta alimenta directamente ese problema. La IA no está alucinando. Está reproduciendo fielmente contenido obsoleto, y no hay forma de que el constructor note la diferencia.&lt;/p&gt;
&lt;p&gt;El constructor confía en la IA. La IA confía en la documentación. Si la documentación está anticuada, esa cadena de confianza ofrece una respuesta errónea con toda seguridad.&lt;/p&gt;
&lt;p&gt;Esto siempre ha sido un problema, obviamente. El contenido obsoleto siempre ha confundido a la gente. Pero el daño se contenía porque los lectores humanos a veces podían detectarlo. Los intermediarios de la IA no pueden. Amplifican el contenido rancio sirviéndolo a escala, con autoridad, a personas que no tienen motivos para dudar de él.&lt;/p&gt;
&lt;p&gt;La frescura ya no es una cuestión de calidad del contenido. Es una cuestión de fiabilidad para cada flujo de trabajo impulsado por IA que toque sus documentos.&lt;/p&gt;
&lt;h2&gt;La palabra &amp;quot;desarrollador&amp;quot; es demasiado estrecha&lt;/h2&gt;
&lt;p&gt;Las personas que construyan software en 2026 no se identificarán todas como desarrolladores. Algunos son diseñadores que incitan a Claude a construir un prototipo funcional. Algunos son jefes de producto que utilizan Cursor para enviar herramientas internas. Algunos son analistas de datos que describen una canalización de datos en lenguaje natural y dejan que un agente la ensamble. En la Cumbre Start, la mitad de los equipos del hackathon contaban con miembros sin conocimientos de programación que, al final del fin de semana, ya estaban distribuyendo software operativo.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ramp.com/&quot;&gt;Ramp&lt;/a&gt; es un ejemplo útil. Esta empresa de tecnología financiera pasó de una valoración de 5.800 millones de dólares en 2023 a &lt;a href=&quot;https://techcrunch.com/2025/11/17/ramp-hits-32b-valuation-just-three-months-after-hitting-22-5b/&quot;&gt;32.000 millones de dólares a finales de 2025&lt;/a&gt;, superando los 1.000 millones de dólares de ingresos anualizados por el camino. Es una de las startups de más rápido crecimiento de la historia. Una parte muy discutida de su enfoque: los jefes de producto construyen características directamente con herramientas de IA en lugar de esperar en un backlog de ingeniería. Los PM de Ramp no se limitan a escribir especificaciones. Envían código. La IA se encarga de la implementación. El PM se encarga de la intención.&lt;/p&gt;
&lt;p&gt;No es un atajo. Un nuevo modelo operativo, y está funcionando a una escala que hace muy difícil descartarlo como experimento.&lt;/p&gt;
&lt;p&gt;El propio estudio interno de Anthropic es revelador aquí. Cuando &lt;a href=&quot;https://fortune.com/2025/12/02/how-anthropics-safety-first-approach-won-over-big-business-and-how-its-own-engineers-are-using-its-claude-ai/&quot;&gt;encuestaron a 132 de sus propios ingenieros&lt;/a&gt; sobre cómo utilizan Claude, los ingenieros informaron de que lo utilizaban para cerca del 60% de sus tareas laborales. ¿Los usos más comunes? Depurar el código existente, comprender qué hacían algunas partes de la base de código e implementar nuevas funciones. Los ingenieros dijeron que tienden a entregar a Claude tareas &amp;quot;no complejas, repetitivas, en las que la calidad del código no es crítica&amp;quot;. Y el 27% del trabajo que hacen ahora con Claude simplemente no lo habrían hecho antes.&lt;/p&gt;
&lt;p&gt;Es el propio equipo de Anthropic. Las personas que construyeron el modelo lo están utilizando como lector de documentación, navegador de base de código y generador de primeros borradores. Todos los demás están haciendo lo mismo, sólo que con su documentación en lugar de la de ellos.&lt;/p&gt;
&lt;p&gt;Anthropic ha sido deliberado a la hora de llamar a este personaje &amp;quot;constructor&amp;quot;. Sus herramientas están diseñadas no sólo para ingenieros de software profesionales, sino para cualquiera que pueda describir lo que quiere construir. Cuando Claude puede crear una aplicación completa a partir de un diseño Figma mediante MCP, la línea tradicional entre &amp;quot;desarrollador&amp;quot; y &amp;quot;no desarrollador&amp;quot; se disuelve.&lt;/p&gt;
&lt;p&gt;Esto tiene implicaciones reales para cualquiera que mantenga documentación o se preocupe por la experiencia de los desarrolladores. Su público ya no se limita a las personas que saben lo que es un punto final REST. Incluye a cualquiera cuyo asistente de IA pueda interactuar con su producto. ¿El PM de Ramp que lanza una función utilizando su API? Probablemente nunca lea directamente su documentación. Su agente de IA sí que lo hará.&lt;/p&gt;
&lt;h2&gt;Lo que esto significa para la documentación&lt;/h2&gt;
&lt;p&gt;Si la documentación sirve ahora a dos públicos, los lectores humanos y los intermediarios de la IA, tiene que funcionar para ambos. Suena obvio. En la práctica, casi nadie lo hace.&lt;/p&gt;
&lt;p&gt;Esto es lo que creo que realmente importa:&lt;/p&gt;
&lt;p&gt;**Si la documentación de su API es una bonita página HTML que un LLM tiene que raspar y analizar, la IA está trabajando más de lo que debería. Envíe la especificación OpenAPI sin procesar junto con la versión renderizada. Envíe un markdown limpio. Haga que las especificaciones sean accesibles sin necesidad de que la IA interprete el diseño de la página.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Estructura a nivel de bloque en lugar de narrativa a nivel de página.&lt;/strong&gt; Los asistentes de IA no consumen la documentación página por página. Extraen las secciones relevantes. Un documento con encabezados claros, párrafos autocontenidos y una semántica explícita a nivel de bloque es mucho más útil para una IA que una narración fluida que requiera leer toda la página para conocer el contexto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Confíe en las señales de que las máquinas saben leer.&lt;/strong&gt; ¿Cuándo se revisó este documento por última vez? ¿Sigue siendo actual? ¿Se ha marcado el contenido? Estas señales deben existir de forma que la IA pueda acceder a ellas, no sólo como señales visuales en una página web. Una puntuación de frescura, un estado de caducidad, una fecha de revisión, estos son los metadatos que permiten a una IA decidir si un documento es seguro para utilizarlo como fuente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La frescura como prerrequisito, no como característica.&lt;/strong&gt; Cuando un asistente de IA sirve a un constructor una respuesta segura basada en un punto final obsoleto, el daño es peor que un 404. El constructor construye sobre él. El constructor construye sobre ella. Lo lanza al mercado. Luego se rompe en producción, y nadie sabe por qué hasta que alguien lo rastrea hasta la documentación que debería haber sido actualizada hace meses. Cada documento al que una IA pueda hacer referencia necesita un mecanismo que demuestre que sigue siendo actual. (Este es, con toda sinceridad, exactamente el problema que estamos construyendo Rasepi para resolver. Forzar la caducidad de los bloques de documentación para que el contenido obsoleto no pueda esconderse).&lt;/p&gt;
&lt;h2&gt;Para empezar: audite su documentación actual&lt;/h2&gt;
&lt;p&gt;Si ha leído hasta aquí y está pensando &amp;quot;vale, pero ¿qué hago realmente el lunes?&amp;quot;, aquí tiene cuatro cosas concretas que puede comprobar esta semana.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Pruebe sus documentos a través de una IA.&lt;/strong&gt; Abra Claude o ChatGPT y pídale que integre su producto en un escenario realista. No utilice sus conocimientos internos. Fíjese sólo en lo que produce la IA. ¿Es correcto? ¿Es actual? ¿Está utilizando los puntos finales correctos, la versión correcta del SDK, el flujo de autenticación correcto? Si la IA se equivoca, eso es lo que los constructores están obteniendo en este momento.&lt;/p&gt;
&lt;p&gt;**2. Elija las cinco páginas de documentación más visitadas y pregúntese: ¿cuándo se revisó por última vez? ¿Sigue describiendo el estado actual del producto? Si no puede responder con seguridad, tampoco podrá hacerlo una IA. Esta es la única solución de alto rendimiento para la mayoría de los equipos.&lt;/p&gt;
&lt;p&gt;**3. Si no tiene un archivo &lt;code&gt;/llms.txt&lt;/code&gt;, cree uno. Si su referencia API sólo está disponible como HTML renderizado, exporte la especificación OpenAPI sin procesar y hágala accesible. Si sus documentos están en un CMS que no produce un markdown limpio, ese es un problema que vale la pena resolver ahora.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Añada fechas de revisión y metadatos de frescura.&lt;/strong&gt; Incluso algo sencillo, un campo &lt;code&gt;last-reviewed&lt;/code&gt; en su sistema de gestión de contenidos, un ciclo de revisión obligatorio para las páginas de alto tráfico. Esto da tanto a los humanos como a la IA una señal sobre si el contenido es digno de confianza. Herramientas como Rasepi pueden &lt;a href=&quot;https://rasepi.com/caracter%C3%ADsticas/frescura&quot;&gt;automatizar esto con la caducidad forzosa a nivel de bloque&lt;/a&gt;, pero incluso un proceso manual es mejor que nada.&lt;/p&gt;
&lt;h2&gt;El cambio silencioso en la representación de los productos&lt;/h2&gt;
&lt;p&gt;Hay una consecuencia más amplia de todo esto que merece la pena exponer directamente.&lt;/p&gt;
&lt;p&gt;Su documentación ya no es sólo un manual de referencia para desarrolladores. Es el material de partida que los asistentes de IA utilizan para representar su producto ante el mundo. Cuando un constructor pregunta a Claude cómo utilizar su producto, la respuesta de Claude está moldeada por lo que pueda encontrar y analizar de su documentación.&lt;/p&gt;
&lt;p&gt;Buena documentación, buena respuesta. ¿Anticuados, ambiguos, encerrados en HTML difícil de analizar para un modelo? Peor respuesta, o una respuesta incorrecta. Así de sencillo.&lt;/p&gt;
&lt;p&gt;La calidad de la respuesta de la IA sobre su producto es ahora un indicador directo de su experiencia como desarrollador. La mayoría de las empresas aún no lo tratan así.&lt;/p&gt;
&lt;p&gt;Los equipos que van por delante en esto, Stripe, Vercel, Cloudflare, el propio Anthropic, tratan la legibilidad de la IA como una preocupación de primera clase. Un requisito fundamental que da forma a cómo se escribe, estructura y mantiene la documentación. No es un tema pendiente para el próximo trimestre.&lt;/p&gt;
&lt;p&gt;El constructor que está sentado en Claude ahora mismo, describiendo lo que quiere construir, espera un código que funcione en cuestión de minutos. Puede que nunca vuelvan a visitar un sitio de documentación. Pero la IA que les atiende sí lo hará. Constantemente.&lt;/p&gt;
&lt;p&gt;Esa IA es ahora su lector más frecuente. La cuestión es si su documentación está preparada para ello.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La mejor estrategia de experiencia del desarrollador en 2026 no es una charla en una conferencia o una guía rápida. Es asegurarse de que la IA lo hace bien.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Este post hace referencia a investigaciones y documentación de productos disponibles públicamente. Las estadísticas se han extraído de &lt;a href=&quot;https://github.blog/news-insights/research/survey-ai-wave-grows/&quot;&gt;GitHub&#39;s 2024 developer survey&lt;/a&gt;, la &lt;a href=&quot;https://survey.stackoverflow.co/2024/&quot;&gt;Stack Overflow 2024 Developer Survey&lt;/a&gt;, &lt;a href=&quot;https://www.index.dev/blog/developer-productivity-statistics-with-ai-tools&quot;&gt;Index.dev&#39;s 2026 developer productivity report&lt;/a&gt;, &lt;a href=&quot;https://www.incremys.com/en/resources/blog/claude-statistics&quot;&gt;Incremys Claude statistics&lt;/a&gt;, y &lt;a href=&quot;https://fortune.com/2025/12/02/how-anthropics-safety-first-approach-won-over-big-business-and-how-its-own-engineers-are-using-its-claude-ai/&quot;&gt;Fortune&#39;s reporting on Anthropic&lt;/a&gt;. La especificación /llms.txt se mantiene en &lt;a href=&quot;https://llmstxt.org/&quot;&gt;llmstxt.org&lt;/a&gt;. El protocolo de contexto de modelo está documentado en &lt;a href=&quot;https://modelcontextprotocol.io/&quot;&gt;modelcontextprotocol.io&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="ai" />
    <category term="documentation" />
    <category term="developer-experience" />
  </entry>
  <entry>
    <title>Cómo funcionan realmente las traducciones de Rasepi y por qué suenan como su equipo</title>
    <link href="https://rasepi.com/es/blog/how-rasepi-translations-work-and-why-they-sound-like-your-team/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/how-rasepi-translations-work-and-why-they-sound-like-your-team/</id>
    <updated>2026-03-31T00:00:00Z</updated>
    <summary>Rasepi no se limita a traducir su documentación a otros idiomas. Aprende su terminología, se adapta a su tono y deja que cada versión lingüística viva su propia vida. He aquí cómo.</summary>
    <content type="html">&lt;p&gt;Si alguna vez ha pasado un documento por Google Translate, o honestamente por cualquier herramienta de traducción, ya conoce el resultado. Técnicamente correcto. Tonalmente incorrecto. Su producto se llama de repente de otra manera. La taquigrafía interna de su equipo desaparece. Un &amp;quot;usted&amp;quot; formal donde su empresa utiliza el informal, o al revés.&lt;/p&gt;
&lt;p&gt;El resultado se traduce, pero no suena a usted.&lt;/p&gt;
&lt;p&gt;Para eso construí el sistema de traducción de Rasepi. No &amp;quot;podemos traducir la documentación&amp;quot; (todas las herramientas pueden hacerlo ahora) sino &amp;quot;podemos traducirla para que suene realmente como la escribió nuestro equipo&amp;quot;.&lt;/p&gt;
&lt;p&gt;La respuesta es sí. Y no requiere un equipo de traductores profesionales para conseguirlo.&lt;/p&gt;
&lt;p&gt;Traducciones que suenan como su equipo](/es/blog/img/natural-translations.svg)&lt;/p&gt;
&lt;h2&gt;Sólo se traduce lo que ha cambiado&lt;/h2&gt;
&lt;p&gt;La mayoría de las plataformas de documentación traducen páginas enteras. Usted cambia una frase y todo el documento se va a retraducir. Cada idioma, cada párrafo, haya cambiado o no.&lt;/p&gt;
&lt;p&gt;Rasepi funciona de forma diferente. Hace un seguimiento individual de cada párrafo. Cuando edita una sección de un documento de 20 secciones, sólo esa sección se retraduce. Las otras 19, en todos los idiomas, permanecen exactamente como estaban.&lt;/p&gt;
&lt;p&gt;Esto significa dos cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sus costes de traducción se reducen drásticamente.&lt;/strong&gt; Hablamos de un 94% menos para las ediciones típicas. La mayoría de las actualizaciones tocan una o dos secciones, no toda la página.&lt;/li&gt;
&lt;li&gt;**Si su equipo alemán aprobó una traducción la semana pasada, la edición de un párrafo no relacionado en inglés no afectará al texto aprobado.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El sistema sabe lo que ha cambiado porque cada párrafo tiene una identidad única y una huella digital de contenido. Cuando la huella digital cambia, ese párrafo específico se marca para su retraducción. Nada más.&lt;/p&gt;
&lt;h2&gt;Su glosario, su terminología&lt;/h2&gt;
&lt;p&gt;Aquí es donde la cosa se pone interesante.&lt;/p&gt;
&lt;p&gt;Cada empresa tiene su propio vocabulario. &amp;quot;Sprint Review&amp;quot; podría quedarse como &amp;quot;Sprint Review&amp;quot; en sus documentos en alemán porque su equipo de Berlín utiliza el término en inglés. O puede convertirse en &amp;quot;Sprint-Überprüfung&amp;quot; porque su equipo de Múnich prefiere la versión alemana. &amp;quot;Base de conocimientos&amp;quot; podría ser &amp;quot;Wissensdatenbank&amp;quot; o &amp;quot;Base de conocimientos&amp;quot; o algo totalmente diferente que su equipo haya acuñado internamente.&lt;/p&gt;
&lt;p&gt;Rasepi le permite crear un glosario para cada idioma. Básicamente, una lista de términos y sus traducciones aprobadas. Cuando se traduce un párrafo, el sistema comprueba primero su glosario. Cada término de su lista se traduce exactamente como usted lo definió. Cada vez. En todos los documentos.&lt;/p&gt;
&lt;p&gt;Puede gestionar su glosario directamente en Rasepi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Añadir términos uno a uno&lt;/strong&gt; a medida que observe incoherencias.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Importe un CSV&lt;/strong&gt; si ya tiene una lista terminológica de otro sistema&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exporte su glosario&lt;/strong&gt; para compartirlo con traductores externos u otras herramientas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El glosario funciona por pares de idiomas. Su glosario inglés-alemán está separado de su glosario inglés-francés. Esto es importante porque el mismo término inglés puede necesitar un tratamiento diferente en las distintas lenguas. &amp;quot;Sprint Review&amp;quot; podría seguir siendo inglés en alemán pero traducirse en japonés.&lt;/p&gt;
&lt;p&gt;Cuando actualice su glosario, el cambio surtirá efecto la próxima vez que se traduzca cualquier párrafo a ese idioma. No es necesario volver a traducirlo todo manualmente. El siguiente ciclo de edición natural lo recoge.&lt;/p&gt;
&lt;h2&gt;Reglas de estilo: hacer que las traducciones suenen como si las hubiera escrito usted&lt;/h2&gt;
&lt;p&gt;Los glosarios se ocupan de las palabras sueltas. Pero una traducción puede utilizar todos los términos correctos y aun así parecer fuera de lugar. Tono incorrecto. Fechas con el formato equivocado. Números con el separador equivocado. Símbolos de moneda en el lugar equivocado.&lt;/p&gt;
&lt;p&gt;Para eso están las normas de estilo.&lt;/p&gt;
&lt;p&gt;Para cada idioma, puede establecer un conjunto de reglas que controlen la forma de las traducciones:&lt;/p&gt;
&lt;h3&gt;Convenciones de formato&lt;/h3&gt;
&lt;p&gt;Son los detalles que hacen que un documento parezca nativo y no &amp;quot;obviamente traducido del inglés&amp;quot;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Formatos de fecha y hora.&lt;/strong&gt; Reloj de 24 horas para el alemán, AM/PM para el inglés, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Formatos numéricos.&lt;/strong&gt; La coma como separador decimal en alemán (3,14 en lugar de 3,14), punto para los miles&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reglas de puntuación.&lt;/strong&gt; Formato de grados académicos, estilos de comillas y otras convenciones regionales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Usted elige las convenciones que se ajustan a las normas de su empresa. Rasepi las aplica a todas las traducciones en ese idioma, en todos los documentos.&lt;/p&gt;
&lt;h3&gt;Instrucciones personalizadas&lt;/h3&gt;
&lt;p&gt;Aquí es donde las cosas se ponen realmente potentes. Las instrucciones personalizadas son directivas en lenguaje llano que indican al motor de traducción cómo manejar su contenido. Usted las escribe en frases normales y el motor las sigue.&lt;/p&gt;
&lt;p&gt;Algunos ejemplos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&amp;quot;Utilice un tono amable y diplomático &amp;quot;&lt;/em&gt; para una empresa que desea una documentación accesible&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;quot;Utilice siempre la forma formal &#39;Sie&#39;, nunca &#39;du&#39;&amp;quot;&lt;/em&gt; para una comunicación profesional en alemán&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;quot;Utilice la ortografía del inglés británico: color, organización, licencia &amp;quot;&lt;/em&gt; cuando su público anglófono resida en el Reino Unido&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;quot;Ponga símbolos de moneda después de la cantidad numérica &amp;quot;&lt;/em&gt; para ajustarse a las convenciones europeas&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&amp;quot;Cuando describa los puntos finales de la API, utilice el modo imperativo &amp;quot;&lt;/em&gt; para documentos técnicos que deben parecer directos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puede añadir hasta 200 instrucciones personalizadas por idioma. Funcionan junto con su glosario y reglas de formato, y el motor de traducción las tiene en cuenta todas juntas en cada traducción.&lt;/p&gt;
&lt;h3&gt;Formalidad&lt;/h3&gt;
&lt;p&gt;El alemán tiene &amp;quot;du&amp;quot; y &amp;quot;Sie&amp;quot;. El francés tiene &amp;quot;tu&amp;quot; y &amp;quot;vous&amp;quot;. El japonés tiene múltiples niveles de cortesía. Incluso las lenguas sin pronombres formales/informales obvios tienen diferencias tonales que importan.&lt;/p&gt;
&lt;p&gt;Rasepi le permite configurar el nivel de formalidad de cada idioma. Una vez configurado, cada párrafo traducido se ajusta a ese tono. Si su empresa se dirige a los lectores de manera formal en francés (&amp;quot;vous&amp;quot;) pero informal en alemán (&amp;quot;du&amp;quot;), eso es exactamente lo que hará cada traducción.&lt;/p&gt;
&lt;h3&gt;Todo funciona a la perfección&lt;/h3&gt;
&lt;p&gt;Esto es lo que importa: los términos del glosario, las convenciones de formato, las instrucciones personalizadas y los ajustes de formalidad se aplican a todas las traducciones a la vez. Usted no elige uno u otro. Los configura todos una vez, y cada párrafo que se traduce pasa por el mismo conjunto de reglas.&lt;/p&gt;
&lt;p&gt;El resultado son traducciones que se leen como si alguien de su equipo local las hubiera escrito. No como si una máquina hubiera traducido cada frase sin saber nada de su empresa.&lt;/p&gt;
&lt;h2&gt;Cada idioma puede tener su propio contenido&lt;/h2&gt;
&lt;p&gt;Esta es la característica que más sorprende a la gente.&lt;/p&gt;
&lt;p&gt;En Rasepi, un documento traducido no es una copia cerrada del original. Cada versión lingüística puede tener contenido que sólo existe en ese idioma.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué es esto importante?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Porque los distintos mercados necesitan cosas diferentes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Su documentación alemana podría necesitar una sección de cumplimiento de DSGVO (GDPR) que no se aplica a la versión de EE.UU.&lt;/li&gt;
&lt;li&gt;Su equipo japonés podría necesitar una nota sobre las herramientas locales que nadie más utiliza&lt;/li&gt;
&lt;li&gt;Su oficina brasileña podría necesitar contexto sobre la normativa fiscal regional&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En la mayoría de las herramientas de traducción, añadir contenido a una versión lingüística significa que se sobrescribe la próxima vez que alguien vuelva a traducir del inglés. Los equipos se dan cuenta rápidamente y dejan de añadir contenido local. Crean documentos sombra en Notion o Slack o en cualquier otro lugar, y ahora usted tiene dos sistemas en los que nadie confía plenamente.&lt;/p&gt;
&lt;p&gt;En Rasepi, el contenido único se marca como perteneciente a ese idioma. Nunca se sobrescribe por una retraducción. Nunca se borra cuando cambia la fuente en inglés. Vive junto al contenido traducido como parte natural del documento.&lt;/p&gt;
&lt;p&gt;Lo mismo ocurre con la estructura. Si sus traductores japoneses prefieren listas numeradas donde la versión inglesa utiliza viñetas (una convención común en la escritura técnica japonesa), pueden cambiar el formato. Rasepi conserva esa elección en futuras actualizaciones.&lt;/p&gt;
&lt;p&gt;Cada versión lingüística es un documento de primera clase, no una réplica de sólo lectura.&lt;/p&gt;
&lt;h2&gt;Automático y humano: trabajan juntos&lt;/h2&gt;
&lt;p&gt;Rasepi no le obliga a elegir entre traducción automática y traducción humana. Admite ambas, y conoce la diferencia.&lt;/p&gt;
&lt;p&gt;Cuando un párrafo se traduce automáticamente y la fuente cambia, Rasepi lo retraduce automáticamente. No es necesaria la intervención humana. El glosario y las normas de estilo mantienen la coherencia.&lt;/p&gt;
&lt;p&gt;Cuando un párrafo ha sido editado manualmente por un traductor humano, quizá lo reescribió para darle un matiz cultural o añadió un contexto que una máquina no captaría, Rasepi respeta ese trabajo. Si la fuente cambia, el sistema marca el párrafo como necesitado de revisión pero &lt;strong&gt;nunca sobrescribe silenciosamente las ediciones humanas&lt;/strong&gt;. El traductor ve lo que ha cambiado en la fuente y decide cómo actualizar su versión.&lt;/p&gt;
&lt;p&gt;Esto significa que la calidad de su traducción mejora con el tiempo. La traducción automática se encarga del grueso. Los traductores humanos se centran en los párrafos que necesitan un toque humano. Y ninguno pisa el trabajo del otro.&lt;/p&gt;
&lt;h2&gt;Dos modos: siempre al día o traducir bajo demanda.&lt;/h2&gt;
&lt;p&gt;Para cada idioma, usted elige cuándo se realizan las traducciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Siempre traducir.&lt;/strong&gt; Cada vez que alguien guarda el documento fuente, los párrafos modificados se vuelven a traducir inmediatamente. Lo mejor para sus idiomas más importantes, en los que los lectores esperan una precisión al minuto.&lt;/li&gt;
&lt;li&gt;Traducir cuando se visualiza: Los párrafos modificados se marcan pero no se traducen hasta que alguien abre el documento en ese idioma. Estupendo para los idiomas que se utilizan con menos frecuencia. No desperdicie costes de traducción en contenidos que nadie lee.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ambos modos utilizan el mismo glosario, las mismas normas de estilo, la misma calidad. La única diferencia es el tiempo.&lt;/p&gt;
&lt;h2&gt;Cómo se ve esto en la práctica&lt;/h2&gt;
&lt;p&gt;Supongamos que dirige una empresa con equipos en Londres, Múnich, París y Tokio. Su documentación está escrita en inglés.&lt;/p&gt;
&lt;p&gt;Un responsable de producto en Londres actualiza la guía de despliegue. Una sección sobre un nuevo paso de CI/CD.&lt;/p&gt;
&lt;p&gt;Esto es lo que ocurre&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Alemán (siempre traducir).&lt;/strong&gt; La sección modificada se vuelve a traducir en cuestión de segundos. &amp;quot;Sprint Review&amp;quot; se convierte en &amp;quot;Sprint-Überprüfung&amp;quot; porque eso está en su glosario. Formal &amp;quot;Sie&amp;quot; porque esa es su configuración de formalidad. Fechas en formato de 24 horas porque esa es su norma configurada. La instrucción personalizada &amp;quot;utilice un tono directo e imperativo&amp;quot; da forma al fraseo. ¿La sección DSGVO que añadió el equipo de Múnich? Sin tocar.&lt;/li&gt;
&lt;li&gt;La misma sección, retraducida inmediatamente. Formalidad &amp;quot;Vous&amp;quot;. Términos del glosario en francés aplicados. Símbolos de moneda después del número según sus instrucciones personalizadas. El resto del documento permanece exactamente como lo revisó la oficina de París por última vez.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Japonés (traducir al verlo).&lt;/strong&gt; La sección modificada se marca como obsoleta. Cuando alguien en Tokio abre el documento, se traduce sobre la marcha. Su formato personalizado de lista numerada se conserva. Su nota de herramientas local permanece en su lugar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una edición. Tres idiomas actualizados. Cero retraducciones de documentos completos. Terminología coherente, tono coherente y respetuoso con las adiciones locales de cada equipo.&lt;/p&gt;
&lt;h2&gt;Hablando de calidad lingüística&lt;/h2&gt;
&lt;p&gt;El motor de traducción que hay detrás de todo esto es DeepL, la misma tecnología que impulsa la función &lt;strong&gt;Talk to Docs&lt;/strong&gt; de Rasepi. Puede hablar a su documentación y obtener respuestas en voz alta. DeepL Voice se encarga de la interacción hablada, lo que significa que la misma coherencia terminológica, normas de estilo y calidad lingüística que obtiene en las traducciones escritas se traslada también a las conversaciones de voz. Los términos de su glosario y sus instrucciones personalizadas suenan correctamente tanto si su equipo está leyendo como escuchando.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Las traducciones que suenan como su equipo no son un lujo. Para las empresas que operan en varios idiomas, son la diferencia entre la documentación en la que la gente confía y la documentación con la que la gente trabaja a su alrededor. Los glosarios, las normas de estilo, las instrucciones personalizadas, la retraducción inteligente y el contenido único por idioma lo hacen posible. Automáticamente, desde el primer día.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Su documentación debe sonar como su equipo en cada idioma. No como una máquina. No como una empresa diferente. Como usted.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#multilingual&quot;&gt;Vea la publicación multilingüe en acción →&lt;/a&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="multilingual" />
    <category term="translation" />
    <category term="deepl" />
  </entry>
  <entry>
    <title>Dentro del motor de traducción: Glosarios, reglas de estilo y retraducción inteligente</title>
    <link href="https://rasepi.com/es/blog/inside-the-translation-engine-glossaries-style-rules-and-smart-retranslation/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/inside-the-translation-engine-glossaries-style-rules-and-smart-retranslation/</id>
    <updated>2026-03-31T00:00:00Z</updated>
    <summary>Un profundo recorrido técnico sobre cómo funciona realmente el proceso de traducción de Rasepi: resolución de glosarios, reglas de estilo e instrucciones personalizadas de DeepL, hash de contenidos y la integración que lo une todo.</summary>
    <content type="html">&lt;p&gt;Nuestro &lt;a href=&quot;https://rasepi.com/es/blog/how-plugin-guardrail-and-pipeline-systems-work/&quot;&gt;post anterior sobre arquitectura&lt;/a&gt; cubría los plugins, los guardianes de acción y el sistema de canalización. Éste profundiza en el motor de traducción, la parte que creo que hace que Rasepi sea fundamentalmente diferente de cualquier otra plataforma de documentación.&lt;/p&gt;
&lt;p&gt;No el discurso de marketing sobre traducir párrafos en lugar de páginas. El código real. Cómo se resuelven los glosarios por inquilino, cómo las reglas de estilo de DeepL y las instrucciones personalizadas dan forma a cada traducción, cómo el hashing de contenidos impulsa la detección de documentos obsoletos y cómo el orquestador decide qué bloques hay que retraducir.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://rasepi.com/es/blog/img/translation-engine-deep-dive.svg&quot; alt=&quot;Motor de traducción: glosarios, reglas de estilo y retraducción inteligente&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;El proceso de traducción&lt;/h2&gt;
&lt;p&gt;Cuando un usuario guarda un documento, el sistema no se limita a retraducirlo todo. Ejecuta una secuencia bastante específica:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Analiza el JSON de TipTap en bloques individuales&lt;/li&gt;
&lt;li&gt;Compara los hashes de contenido para detectar qué bloques cambiaron realmente&lt;/li&gt;
&lt;li&gt;Para los bloques cambiados, resuelva el glosario del inquilino y la lista de reglas de estilo para el par de idiomas&lt;/li&gt;
&lt;li&gt;Aplique las reglas de estilo, las instrucciones personalizadas y la formalidad de la configuración del arrendatario&lt;/li&gt;
&lt;li&gt;Envíe sólo los bloques modificados a DeepL&lt;/li&gt;
&lt;li&gt;Actualice los bloques de traducción y sincronice los hashes de contenido&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada paso es su propio servicio con su propia interfaz. Esto es importante porque cualquier paso puede cambiarse por otra cosa, un proveedor de traducción diferente, un algoritmo hash diferente, una fuente de glosario diferente.&lt;/p&gt;
&lt;h2&gt;Resolución del glosario: tenant-scoped, DeepL-synced&lt;/h2&gt;
&lt;p&gt;DeepL glosarios tienen una limitación que la mayoría de la gente desconoce: &lt;strong&gt;son inmutables.&lt;/strong&gt; No se puede editar un glosario DeepL. Cualquier cambio implica borrar el antiguo y crear uno nuevo.&lt;/p&gt;
&lt;p&gt;Rasepi maneja esto tratando la base de datos como la fuente de la verdad y los glosarios de DeepL como artefactos desechables en tiempo de ejecución. La entidad &lt;code&gt;TenantGlossary&lt;/code&gt; almacena todo localmente:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public class TenantGlossary : ITenantScoped
{
    public Guid Id { get; set; }
    public Guid TenantId { get; set; }
    public string Name { get; set; }
    public string SourceLanguage { get; set; }     // e.g. &amp;quot;en&amp;quot;
    public string TargetLanguage { get; set; }     // e.g. &amp;quot;de&amp;quot;
    public string? DeepLGlossaryId { get; set; }   // Runtime DeepL ID
    public DateTime? LastSyncedAt { get; set; }
    public bool IsDirty { get; set; } = true;      // Triggers re-sync
    public ICollection&amp;lt;TenantGlossaryEntry&amp;gt; Entries { get; set; }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cuando un usuario añade una entrada en el glosario, por ejemplo asignando &amp;quot;Sprint Review&amp;quot; a &amp;quot;Sprint-Überprüfung&amp;quot; para EN→DE, el registro de la base de datos se actualiza inmediatamente y &lt;code&gt;IsDirty&lt;/code&gt; se establece en &lt;code&gt;true&lt;/code&gt;. El glosario DeepL no se recrea en ese momento. Se recrea perezosamente, la próxima vez que una traducción lo necesite realmente.&lt;/p&gt;
&lt;h3&gt;El flujo de sincronización&lt;/h3&gt;
&lt;p&gt;Antes de cada llamada a traducción, el sistema resuelve el glosario:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task&amp;lt;string?&amp;gt; GetOrSyncDeepLGlossaryIdAsync(
    string sourceLanguage, string targetLanguage,
    CancellationToken ct = default)
{
    var glossary = await _db.TenantGlossaries
        .Include(g =&amp;gt; g.Entries)
        .FirstOrDefaultAsync(g =&amp;gt;
            g.SourceLanguage == sourceLanguage &amp;amp;&amp;amp;
            g.TargetLanguage == targetLanguage, ct);

    if (glossary is null || glossary.Entries.Count == 0)
        return null;

    if (!glossary.IsDirty &amp;amp;&amp;amp; glossary.DeepLGlossaryId is not null)
        return glossary.DeepLGlossaryId;

    // Dirty - delete old, create new
    if (glossary.DeepLGlossaryId is not null)
        await _deepL.DeleteGlossaryAsync(glossary.DeepLGlossaryId);

    var entries = glossary.Entries
        .ToDictionary(e =&amp;gt; e.SourceTerm, e =&amp;gt; e.TargetTerm);

    var deepLGlossary = await _deepL.CreateGlossaryAsync(
        $&amp;quot;rasepi-{glossary.Id}&amp;quot;,
        glossary.SourceLanguage,
        glossary.TargetLanguage,
        entries);

    glossary.DeepLGlossaryId = deepLGlossary.GlossaryId;
    glossary.IsDirty = false;
    glossary.LastSyncedAt = DateTime.UtcNow;
    await _db.SaveChangesAsync(ct);

    return glossary.DeepLGlossaryId;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aquí hay tres cosas que merece la pena destacar:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sincronización perezosa.&lt;/strong&gt; Sólo llamamos a la API DeepL cuando realmente se necesita una traducción. La edición masiva de entradas del glosario no desencadena docenas de llamadas a la API.&lt;/li&gt;
&lt;li&gt;**La consulta se ejecuta a través de los filtros de consulta globales de EF, por lo que &lt;code&gt;TenantGlossaries&lt;/code&gt; se delimita automáticamente. Las entradas del glosario del arrendatario A nunca se filtran a las traducciones del arrendatario B.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Un glosario por par de idiomas.&lt;/strong&gt; DeepL impone esto de todos modos. Un glosario EN→DE, un glosario EN→FR, y así sucesivamente. El par &lt;code&gt;(SourceLanguage, TargetLanguage)&lt;/code&gt; es único por arrendatario.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Entradas del glosario&lt;/h3&gt;
&lt;p&gt;Las entradas individuales son sólo mapeos de términos:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public class TenantGlossaryEntry
{
    public Guid Id { get; set; }
    public Guid GlossaryId { get; set; }
    public string SourceTerm { get; set; }   // e.g. &amp;quot;Sprint Review&amp;quot;
    public string TargetTerm { get; set; }   // e.g. &amp;quot;Sprint-Überprüfung&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La API le ofrece CRUD completo además de importación/exportación CSV para la gestión en bloque:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;POST   /api/admin/glossaries                       Create glossary
POST   /api/admin/glossaries/{id}/entries           Add term
PUT    /api/admin/glossaries/{id}/entries/{entryId}  Update term
DELETE /api/admin/glossaries/{id}/entries/{entryId}  Remove term
POST   /api/admin/glossaries/{id}/import            Import CSV
GET    /api/admin/glossaries/{id}/export            Export CSV
POST   /api/admin/glossaries/{id}/sync              Force DeepL sync
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La importación CSV es súper útil para los equipos que migran desde sistemas de memorias de traducción existentes. Exporte sus términos, límpielos, impórtelos en Rasepi y la siguiente ejecución de traducción utilizará el nuevo glosario automáticamente.&lt;/p&gt;
&lt;h2&gt;Reglas de estilo, instrucciones personalizadas y formalidad&lt;/h2&gt;
&lt;p&gt;Los glosarios se ocupan de la terminología. Pero la terminología es sólo la mitad. Una traducción puede utilizar todas las palabras correctas y aun así sonar mal. Un tono incorrecto, un formato de fecha incorrecto, convenciones de puntuación incorrectas.&lt;/p&gt;
&lt;p&gt;La &lt;strong&gt;API de reglas de estilo&lt;/strong&gt; (v3) de DeepL lo soluciona. Puede crear listas de reglas de estilo reutilizables que combinan dos tipos de controles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reglas configuradas&lt;/strong&gt;, convenciones de formato predefinidas para fechas, horas, puntuación, números, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Instrucciones personalizadas&lt;/strong&gt;, directivas de texto libre que dan forma al tono, la redacción y las convenciones específicas del dominio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Rasepi las crea y gestiona por inquilino, por idioma de destino. La entidad &lt;code&gt;TenantStyleRuleList&lt;/code&gt; almacena el DeepL &lt;code&gt;style_id&lt;/code&gt; junto con las reglas configuradas y las instrucciones personalizadas del inquilino:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public class TenantStyleRuleList : ITenantScoped
{
    public Guid Id { get; set; }
    public Guid TenantId { get; set; }
    public string Name { get; set; }
    public string TargetLanguage { get; set; }      // e.g. &amp;quot;de&amp;quot;
    public string? DeepLStyleId { get; set; }       // Runtime DeepL style_id
    public string ConfiguredRulesJson { get; set; }  // Serialized configured rules
    public bool IsDirty { get; set; } = true;
    public DateTime? LastSyncedAt { get; set; }
    public ICollection&amp;lt;TenantCustomInstruction&amp;gt; CustomInstructions { get; set; }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Creación de listas de reglas de estilo&lt;/h3&gt;
&lt;p&gt;Cuando un administrador configura reglas de traducción para el alemán, Rasepi llama a la API v3 de DeepL para crear la lista de reglas de estilo. Esto es lo que parece:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task&amp;lt;string&amp;gt; CreateOrSyncStyleRuleListAsync(
    TenantStyleRuleList ruleList, CancellationToken ct = default)
{
    if (!ruleList.IsDirty &amp;amp;&amp;amp; ruleList.DeepLStyleId is not null)
        return ruleList.DeepLStyleId;

    // DeepL style rule lists are mutable - we can update in place
    if (ruleList.DeepLStyleId is not null)
    {
        // Replace configured rules on existing list
        await _httpClient.PutAsJsonAsync(
            $&amp;quot;v3/style_rules/{ruleList.DeepLStyleId}/configured_rules&amp;quot;,
            JsonSerializer.Deserialize&amp;lt;JsonElement&amp;gt;(ruleList.ConfiguredRulesJson),
            ct);

        // Sync custom instructions
        await SyncCustomInstructionsAsync(ruleList, ct);

        ruleList.IsDirty = false;
        ruleList.LastSyncedAt = DateTime.UtcNow;
        return ruleList.DeepLStyleId;
    }

    // Create new style rule list
    var payload = new
    {
        name = $&amp;quot;rasepi-{ruleList.TenantId}-{ruleList.TargetLanguage}&amp;quot;,
        language = ruleList.TargetLanguage,
        configured_rules = JsonSerializer.Deserialize&amp;lt;JsonElement&amp;gt;(
            ruleList.ConfiguredRulesJson),
        custom_instructions = ruleList.CustomInstructions.Select(ci =&amp;gt; new
        {
            label = ci.Label,
            prompt = ci.Prompt,
            source_language = ci.SourceLanguage
        })
    };

    var response = await _httpClient.PostAsJsonAsync(&amp;quot;v3/style_rules&amp;quot;, payload, ct);
    var result = await response.Content.ReadFromJsonAsync&amp;lt;StyleRuleResponse&amp;gt;(ct);

    ruleList.DeepLStyleId = result.StyleId;
    ruleList.IsDirty = false;
    ruleList.LastSyncedAt = DateTime.UtcNow;
    await _db.SaveChangesAsync(ct);

    return ruleList.DeepLStyleId;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A diferencia de los glosarios, las listas de reglas de estilo de DeepL son &lt;strong&gt;mutables&lt;/strong&gt;. Puede reemplazar las reglas configuradas en su lugar con &lt;code&gt;PUT /v3/style_rules/{style_id}/configured_rules&lt;/code&gt;, y las instrucciones personalizadas pueden añadirse, actualizarse o eliminarse individualmente. Mucho más amigable para el refinamiento iterativo.&lt;/p&gt;
&lt;h3&gt;Qué aspecto tienen las reglas configuradas&lt;/h3&gt;
&lt;p&gt;Las reglas configuradas cubren convenciones de formato que varían según el idioma o las preferencias de la empresa. Cosas como&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;dates_and_times&amp;quot;: {
    &amp;quot;time_format&amp;quot;: &amp;quot;use_24_hour_clock&amp;quot;,
    &amp;quot;calendar_era&amp;quot;: &amp;quot;use_bc_and_ad&amp;quot;
  },
  &amp;quot;punctuation&amp;quot;: {
    &amp;quot;periods_in_academic_degrees&amp;quot;: &amp;quot;do_not_use&amp;quot;
  },
  &amp;quot;numbers&amp;quot;: {
    &amp;quot;decimal_separator&amp;quot;: &amp;quot;use_comma&amp;quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Parecen triviales, pero se complican rápidamente. Un documento alemán que utiliza el formato de hora AM/PM y decimales separados por puntos sólo se lee como &amp;quot;traducido del inglés&amp;quot; para un lector alemán. Establecer &lt;code&gt;use_24_hour_clock&lt;/code&gt; y &lt;code&gt;use_comma&lt;/code&gt; para los separadores decimales en todas las traducciones al alemán elimina eso inmediatamente.&lt;/p&gt;
&lt;h3&gt;Instrucciones personalizadas: éste es el verdadero poder&lt;/h3&gt;
&lt;p&gt;Las instrucciones personalizadas son directivas de texto libre, hasta 200 por lista de reglas de estilo, cada una de hasta 300 caracteres. Básicamente le dicen a DeepL cómo dar forma a la traducción en lenguaje llano:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public class TenantCustomInstruction
{
    public Guid Id { get; set; }
    public Guid StyleRuleListId { get; set; }
    public string Label { get; set; }              // e.g. &amp;quot;Tone instruction&amp;quot;
    public string Prompt { get; set; }             // e.g. &amp;quot;Use a friendly, diplomatic tone&amp;quot;
    public string? SourceLanguage { get; set; }    // Optional source lang filter
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ejemplos reales de nuestros inquilinos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Use a friendly, diplomatic tone&amp;quot;&lt;/code&gt; para una startup que quiere documentos accesibles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Always use &#39;Sie&#39; form, never &#39;du&#39;&amp;quot;&lt;/code&gt; para un bufete de abogados alemán&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Translate &#39;deployment&#39; as &#39;Bereitstellung&#39;, never &#39;Deployment&#39;&amp;quot;&lt;/code&gt; para términos que necesitan un tratamiento dependiente del contexto más allá del simple mapeo del glosario&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Use British English spelling (colour, organisation, licence)&amp;quot;&lt;/code&gt; para empresas con sede en el Reino Unido que traducen entre variantes del inglés&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Put currency symbols after the numeric amount&amp;quot;&lt;/code&gt; para adaptarse a las convenciones europeas&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las instrucciones personalizadas son realmente potentes para las convenciones específicas de un dominio que no caben en las entradas de un glosario. Un glosario asigna un término a otro. Una instrucción personalizada puede decir &amp;quot;cuando traduzca documentos de la API, utilice el modo imperativo en lugar de la voz pasiva&amp;quot;. Ese es un tipo de control completamente diferente.&lt;/p&gt;
&lt;h3&gt;Formalidad&lt;/h3&gt;
&lt;p&gt;El parámetro &lt;code&gt;formality&lt;/code&gt; de DeepL (&lt;code&gt;default&lt;/code&gt;, &lt;code&gt;more&lt;/code&gt;, &lt;code&gt;less&lt;/code&gt;, &lt;code&gt;prefer_more&lt;/code&gt;, &lt;code&gt;prefer_less&lt;/code&gt;) sigue estando disponible como control independiente junto con las reglas de estilo. El &amp;quot;du&amp;quot; alemán frente al &amp;quot;Sie&amp;quot;, el &amp;quot;tu&amp;quot; francés frente al &amp;quot;vous&amp;quot;, los niveles de cortesía japoneses. Estos se establecen por idioma del inquilino a través de &lt;code&gt;TenantLanguageConfig&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public class TenantLanguageConfig : ITenantScoped
{
    public string LanguageCode { get; set; }
    public string DisplayName { get; set; }
    public bool IsEnabled { get; set; }
    public TranslationTrigger Trigger { get; set; }
    public string? Formality { get; set; }         // &amp;quot;more&amp;quot;, &amp;quot;less&amp;quot;, &amp;quot;prefer_more&amp;quot;, etc.
    public string? StyleRuleListId { get; set; }   // Links to TenantStyleRuleList
    public string? TranslationProvider { get; set; }
    public int SortOrder { get; set; }
    public bool IsDefault { get; set; }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La formalidad, las normas de estilo y los glosarios se componen. Una sola llamada de traducción puede llevar los tres:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;var glossaryId = await GetOrSyncDeepLGlossaryIdAsync(sourceLang, targetLang, ct);
var styleId = await GetOrSyncStyleRuleListAsync(targetLang, ct);
var formality = tenantLanguageConfig.Formality ?? &amp;quot;default&amp;quot;;

// Build the v2/translate request payload
var payload = new
{
    text = new[] { blockContent },
    source_lang = NormalizeLanguageCode(sourceLang),
    target_lang = NormalizeLanguageCode(targetLang),
    glossary_id = glossaryId,
    style_id = styleId,
    formality = formality,
    preserve_formatting = true,
    context = surroundingContext,  // Adjacent blocks, not billed
    model_type = &amp;quot;quality_optimized&amp;quot;
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Aquí hay que señalar dos cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;El parámetro &lt;code&gt;context&lt;/code&gt;.&lt;/strong&gt; Pasamos bloques adyacentes como contexto para mejorar la calidad de la traducción. DeepL lo utiliza para resolver ambigüedades, pero no traduce ni factura por ello. Un párrafo sobre &amp;quot;celdas&amp;quot; se traduce de forma diferente cuando el contexto circundante es un documento de biología frente a un manual de hojas de cálculo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Selección del modelo.&lt;/strong&gt; Cualquier solicitud con &lt;code&gt;style_id&lt;/code&gt; o &lt;code&gt;custom_instructions&lt;/code&gt; utiliza automáticamente el modelo &lt;code&gt;quality_optimized&lt;/code&gt; de DeepL. Este es el nivel de calidad más alto. No puede combinarlos con &lt;code&gt;latency_optimized&lt;/code&gt;, y es una restricción deliberada de DeepL. La personalización del estilo necesita el modelo completo.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Por qué esto importa más de lo que cree&lt;/h3&gt;
&lt;p&gt;Imagine una empresa que escribe documentos internos en alemán con un &amp;quot;du&amp;quot; informal que de repente cambia a un &amp;quot;Sie&amp;quot; formal en una sección traducida. Parece incoherente en el mejor de los casos, poco profesional en el peor. La formalidad se encarga de eso. Pero la formalidad por sí sola no detectará un documento que utiliza marcas de tiempo AM/PM cuando su oficina alemana utiliza el formato de 24 horas, o que pone el símbolo de la moneda antes del número en lugar de después.&lt;/p&gt;
&lt;p&gt;Todas estas capas juntas (reglas de estilo, instrucciones personalizadas, formalidad, glosarios) producen traducciones que se leen como si alguien de su equipo las hubiera escrito. No como salidas de una máquina que no sabe que su empresa existe.&lt;/p&gt;
&lt;h2&gt;La capa de servicio DeepL&lt;/h2&gt;
&lt;p&gt;Toda la comunicación de DeepL pasa por &lt;code&gt;IDeepLService&lt;/code&gt;. Envuelve el SDK .NET oficial de DeepL y gestiona las llamadas a la API v3 para las reglas de estilo:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public interface IDeepLService
{
    // Text translation (v2)
    Task&amp;lt;TextResult&amp;gt; TranslateTextAsync(
        string text, string sourceLanguage, string targetLanguage,
        string? options = null);

    Task&amp;lt;TextResult[]&amp;gt; TranslateTextBatchAsync(
        IEnumerable&amp;lt;string&amp;gt; texts, string sourceLanguage,
        string targetLanguage, string? options = null);

    // Glossary management (v2)
    Task&amp;lt;GlossaryInfo&amp;gt; CreateGlossaryAsync(
        string name, string sourceLang, string targetLang,
        Dictionary&amp;lt;string, string&amp;gt; entries);
    Task DeleteGlossaryAsync(string glossaryId);
    Task&amp;lt;GlossaryInfo&amp;gt; GetGlossaryAsync(string glossaryId);
    Task&amp;lt;GlossaryInfo[]&amp;gt; ListGlossariesAsync();
    Task&amp;lt;Dictionary&amp;lt;string, string&amp;gt;&amp;gt; GetGlossaryEntriesAsync(
        string glossaryId);

    // Style rules (v3)
    Task&amp;lt;StyleRuleResponse&amp;gt; CreateStyleRuleListAsync(
        string name, string language,
        JsonElement configuredRules,
        IEnumerable&amp;lt;CustomInstructionRequest&amp;gt; customInstructions);
    Task ReplaceConfiguredRulesAsync(
        string styleId, JsonElement configuredRules);
    Task&amp;lt;CustomInstructionResponse&amp;gt; AddCustomInstructionAsync(
        string styleId, string label, string prompt,
        string? sourceLanguage = null);
    Task DeleteCustomInstructionAsync(
        string styleId, string instructionId);
    Task DeleteStyleRuleListAsync(string styleId);

    // Usage tracking
    Task&amp;lt;Usage&amp;gt; GetUsageAsync();
    Task&amp;lt;Language[]&amp;gt; GetSourceLanguagesAsync();
    Task&amp;lt;Language[]&amp;gt; GetTargetLanguagesAsync();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La implementación gestiona la normalización del código del lenguaje. DeepL requiere &lt;code&gt;EN-US&lt;/code&gt; o &lt;code&gt;EN-GB&lt;/code&gt; en lugar de &lt;code&gt;en&lt;/code&gt; desnudo, y &lt;code&gt;PT-PT&lt;/code&gt; o &lt;code&gt;PT-BR&lt;/code&gt; en lugar de &lt;code&gt;pt&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;private static string NormalizeLanguageCode(string code)
    =&amp;gt; code.ToLower() switch
    {
        &amp;quot;en&amp;quot; =&amp;gt; &amp;quot;EN-US&amp;quot;,
        &amp;quot;pt&amp;quot; =&amp;gt; &amp;quot;PT-PT&amp;quot;,
        _ =&amp;gt; code.ToUpper()
    };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La traducción por lotes utiliza el troceado de 50 elementos para mantenerse dentro de los límites de la API de DeepL al tiempo que se maximiza el rendimiento:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task&amp;lt;TranslationBatchResult&amp;gt; TranslateBatchAsync(
    Dictionary&amp;lt;string, string&amp;gt; texts,
    string sourceLanguage, string targetLanguage)
{
    var translations = new Dictionary&amp;lt;string, string&amp;gt;();
    long totalChars = 0;

    foreach (var chunk in texts.Chunk(50))
    {
        var results = await _deepL.TranslateTextBatchAsync(
            chunk.Select(kv =&amp;gt; kv.Value),
            sourceLanguage, targetLanguage);

        for (int i = 0; i &amp;lt; chunk.Length; i++)
        {
            translations[chunk[i].Key] = results[i].Text;
            totalChars += chunk[i].Value.Length;
        }
    }

    return new TranslationBatchResult
    {
        Translations = translations,
        BilledCharacters = totalChars
    };
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Dado que sólo enviamos bloques anticuados, no documentos enteros, un lote de traducción típico para una sola edición contiene de 1 a 3 bloques en lugar de más de 40. De ahí procede la reducción de costes del 94%.&lt;/p&gt;
&lt;h2&gt;El orquestador de traducción&lt;/h2&gt;
&lt;p&gt;El &lt;code&gt;TranslationOrchestrator&lt;/code&gt; decide qué hacer con cada bloque cuando cambia el documento fuente. Recorramos el árbol de decisiones:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task OrchestrateTranslationAsync(
    Guid entryId, List&amp;lt;Guid&amp;gt; changedBlockIds,
    CancellationToken ct = default)
{
    var entry = await _db.Entries
        .FirstOrDefaultAsync(e =&amp;gt; e.Id == entryId, ct);

    var translations = await _db.EntryTranslations
        .Where(t =&amp;gt; t.EntryId == entryId)
        .ToListAsync(ct);

    foreach (var translation in translations)
    {
        var langConfig = await GetLanguageConfigAsync(
            translation.Language, ct);

        var translationBlocks = await _db.TranslationBlocks
            .Where(tb =&amp;gt; changedBlockIds.Contains(tb.SourceBlockId)
                      &amp;amp;&amp;amp; tb.Language == translation.Language)
            .ToListAsync(ct);

        foreach (var block in translationBlocks)
        {
            if (block.IsLocked || block.TranslatedById is not null)
            {
                // Human-edited or locked - mark stale, don&#39;t overwrite
                block.Status = TranslationStatus.Stale;
            }
            else if (langConfig.Trigger == TranslationTrigger.AlwaysTranslate)
            {
                // Machine-translated, auto mode - retranslate now
                await RetranslateBlockAsync(block, translation.Language, ct);
            }
            else
            {
                // TranslateOnFirstVisit - mark stale, translate later
                block.Status = TranslationStatus.Stale;
            }
        }
    }

    await _db.SaveChangesAsync(ct);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El bit clave: &lt;strong&gt;Los bloques editados por humanos nunca se sobrescriben automáticamente.&lt;/strong&gt; Si un traductor ajustó manualmente un bloque, quizá añadiendo contexto cultural o reformulando la redacción para mayor claridad, el sistema respeta ese trabajo. Marca el bloque como obsoleto para que el traductor sepa que la fuente ha cambiado, pero no reemplazará silenciosamente sus ediciones.&lt;/p&gt;
&lt;p&gt;Los bloques traducidos automáticamente con &lt;code&gt;AlwaysTranslate&lt;/code&gt; activado se retraducen inmediatamente. Los bloques traducidos automáticamente con &lt;code&gt;TranslateOnFirstVisit&lt;/code&gt; se marcan como obsoletos y se traducen cuando alguien abre el documento en ese idioma.&lt;/p&gt;
&lt;h2&gt;Activadores de traducción: cuándo se producen las traducciones&lt;/h2&gt;
&lt;p&gt;Cada idioma tiene un &lt;code&gt;TranslationTrigger&lt;/code&gt; que controla los tiempos:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public enum TranslationTrigger
{
    AlwaysTranslate,         // Translate on every save
    TranslateOnFirstVisit    // Translate when first opened in that language
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;AlwaysTranslate&lt;/code&gt; es útil para los idiomas de alta prioridad en los que desea que las traducciones estén inmediatamente actualizadas. Francés para una empresa con una gran oficina en París. Alemán para una empresa con sede en Múnich.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;TranslateOnFirstVisit&lt;/code&gt; es útil para idiomas que se necesitan ocasionalmente pero no merece la pena el coste API de mantener perfectamente actualizados en todo momento. Cuando alguien abre el documento en ese idioma, los bloques obsoletos se traducen sobre la marcha.&lt;/p&gt;
&lt;p&gt;Ambos modos utilizan la misma resolución de glosario, los mismos ajustes de formalidad y el mismo hashing de contenido. La única diferencia es el tiempo.&lt;/p&gt;
&lt;h2&gt;Adaptación única del contenido y la estructura&lt;/h2&gt;
&lt;p&gt;Aquí es donde la arquitectura realmente vale la pena más allá de la mera traducción.&lt;/p&gt;
&lt;p&gt;Cuando un traductor alemán añade una sección de cumplimiento de la DSGVO que no existe en inglés, la añade como un nuevo bloque en la versión alemana. Ese bloque no tiene &lt;code&gt;SourceBlockId&lt;/code&gt;, está marcado como contenido único. El sistema nunca lo envía para retraducción porque no hay fuente de la que traducir. Sólo existe en alemán.&lt;/p&gt;
&lt;p&gt;Cuando un traductor japonés cambia una lista con viñetas por una lista numerada (una convención común en la escritura técnica japonesa), la bandera &lt;code&gt;IsStructureAdapted&lt;/code&gt; del bloque lo conserva en futuros ciclos de retraducción:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;var translation = new TranslationBlock
{
    SourceBlockId = sourceBlockId,
    Language = targetLanguage,
    BlockType = translatedBlockType,
    SourceBlockType = sourceBlock.BlockType,
    IsStructureAdapted = translatedBlockType != sourceBlock.BlockType,
    StructureAdaptationNotes = &amp;quot;Numbered list preferred in JP technical docs&amp;quot;,
    SourceContentHash = sourceBlock.ContentHash,
    Status = TranslationStatus.UpToDate,
};
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La bandera &lt;code&gt;IsNoTranslate&lt;/code&gt; se encarga del contenido que debe copiarse textualmente: bloques de código, URL, nombres de productos, notación matemática. El proveedor de traducción se los salta por completo.&lt;/p&gt;
&lt;h2&gt;Ponerlo todo junto&lt;/h2&gt;
&lt;p&gt;Recorramos el flujo completo. Un usuario en Londres edita un párrafo en el documento fuente en inglés, y su oficina de Múnich tiene el alemán configurado en &lt;code&gt;AlwaysTranslate&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;El usuario guarda.&lt;/strong&gt; TipTap envía JSON a la API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Extracción de bloques y detección de cambios.&lt;/strong&gt; &lt;code&gt;CreateBlocksFromDocumentAsync&lt;/code&gt; analiza JSON, recalcula los hashes de contenido y compara los hashes antiguos y nuevos para identificar qué bloques cambiaron realmente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El orquestador se ejecuta.&lt;/strong&gt; Encuentra el &lt;code&gt;EntryTranslation&lt;/code&gt; alemán, comprueba el bloque alemán. Está traducido por máquina, no está bloqueado y no ha sido editado por humanos, por lo que es apto para la retraducción.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuración de traducción cargada.&lt;/strong&gt; ID del glosario resuelto mediante &lt;code&gt;GetOrSyncDeepLGlossaryIdAsync(&amp;quot;en&amp;quot;, &amp;quot;de&amp;quot;)&lt;/code&gt;, reglas de estilo mediante &lt;code&gt;GetOrSyncStyleRuleListAsync(&amp;quot;de&amp;quot;)&lt;/code&gt;, formalidad establecida en &amp;quot;más&amp;quot; (formal &amp;quot;Sie&amp;quot;), bloques adyacentes pasados como contexto para desambiguación.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Llamada DeepL.&lt;/strong&gt; Se envía un único bloque con el ID del glosario, el ID del estilo, la formalidad y el contexto.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bloque actualizado.&lt;/strong&gt; Contenido traducido almacenado, &lt;code&gt;SourceContentHash&lt;/code&gt; sincronizado, estado establecido en &lt;code&gt;UpToDate&lt;/code&gt;. Un bloque traducido en lugar de los más de 40. ¿Los 39 bloques restantes? Intactos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mientras tanto, su oficina de Tokio tiene el japonés fijado en &lt;code&gt;TranslateOnFirstVisit&lt;/code&gt;. La misma edición marca el bloque de traducción japonés como &lt;code&gt;Stale&lt;/code&gt;. Cuando alguien en Tokio abre el documento, los pasos 5-9 suceden sobre la marcha. La adaptación de su estructura (lista numerada) se conserva. Sus bloques únicos permanecen exactamente donde están.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Creo que el motor de traducción es la parte de Rasepi que aporta el valor más visible. Traducciones que utilizan su terminología, siguen sus convenciones de formato, obedecen sus instrucciones personalizadas, coinciden con su tono, respetan el trabajo de sus traductores y cuestan una fracción de lo que costaría la retraducción de un documento completo. La arquitectura hace que todo eso sea automático, y se mantiene al margen cuando los humanos quieren tomar el relevo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;El mismo motor DeepL que impulsa las traducciones escritas también impulsa Talk to Docs, nuestra interfaz de documentación conversacional, con DeepL Voice encargándose de la interacción hablada. Los mismos glosarios, las mismas normas de estilo, la misma formalidad, la misma coherencia. Tanto si su equipo lee la documentación como si habla con ella, la calidad lingüística es idéntica.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://developers.rasepi.com/&quot;&gt;Explore la API de traducción →&lt;/a&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="architecture" />
    <category term="translation" />
    <category term="deepl" />
  </entry>
  <entry>
    <title>Deje de mantener cinco copias del mismo documento</title>
    <link href="https://rasepi.com/es/blog/stop-maintaining-five-copies-of-the-same-document/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/stop-maintaining-five-copies-of-the-same-document/</id>
    <updated>2026-03-31T00:00:00Z</updated>
    <summary>La mayoría de las empresas tienen onboarding_germany, onboarding_japan, onboarding_brazil. En Rasepi, es sólo &#39;Onboarding&#39;. Un solo documento. Pasos compartidos traducidos, pasos locales por idioma. Se acabaron las copias a la deriva.</summary>
    <content type="html">&lt;p&gt;Abra ahora mismo la wiki de su empresa y busque &amp;quot;onboarding&amp;quot;. ¿Cuántos resultados obtiene?&lt;/p&gt;
&lt;p&gt;Si es una empresa global, supongo que no es ni uno. Probablemente sea algo como esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Onboarding Guide (EN)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Onboarding Guide - Germany&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Onboarding Guide - Japan&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;BLOQUE DE CÓDIGO 3&lt;/li&gt;
&lt;li&gt;BLOQUE DE CÓDIGO 4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cinco documentos. Todos cubren aproximadamente lo mismo. Todos ligeramente diferentes. Todos mantenidos por diferentes personas con diferentes calendarios. Algunos actuales, otros con tres meses de retraso, uno del que ya nadie está seguro.&lt;/p&gt;
&lt;p&gt;Esto es lo que ocurre cuando su plataforma de documentación no puede manejar correctamente el contenido multilingüe. Acaba copiando todo el documento para cada mercado, y cada copia se aleja poco a poco de las demás.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://rasepi.com/es/blog/img/one-document-all-languages.svg&quot; alt=&quot;Un documento, todos los idiomas&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;La trampa de copiar y localizar&lt;/h2&gt;
&lt;p&gt;Todo empieza de forma bastante inocente. Usted tiene una estupenda guía de incorporación en inglés. La oficina de Berlín la necesita en alemán, así que alguien la copia, la traduce y añade las partes específicas de Alemania: formación sobre la DSGVO, información sobre el Betriebsrat, inscripción en el seguro médico local.&lt;/p&gt;
&lt;p&gt;Entonces Tokio necesita una. Copiar de nuevo. Traduzca. Añada las cosas específicas de Japón: inscripción en el hanko, proceso de obtención del abono de transporte, guía de etiqueta en la oficina.&lt;/p&gt;
&lt;p&gt;São Paulo es la siguiente. Lo mismo. Copie, traduzca, añada contenido local sobre los requisitos del CLT, los vales de comida y los documentos fiscales.&lt;/p&gt;
&lt;p&gt;Ahora tiene cuatro documentos. El original en inglés se actualiza regularmente. La versión alemana se actualizó el trimestre pasado. La versión japonesa... alguien cree que Tanaka-san la actualizó en octubre. La versión brasileña fue creada por un contratista que se marchó, y nadie la ha tocado desde entonces.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cada copia es una carga de mantenimiento.&lt;/strong&gt; Y cada una de ellas contiene una mezcla de contenido compartido (lo que es igual en todas partes) y contenido local (lo específico de ese mercado). Pero la plataforma no distingue la diferencia. Todo es sólo texto en una página.&lt;/p&gt;
&lt;p&gt;Así que cuando alguien actualiza la sección de política de seguridad en el original inglés, nadie actualiza las otras cuatro. O peor aún, alguien actualiza la alemana pero no la japonesa. Ahora tiene cinco documentos que dicen todos cosas ligeramente diferentes sobre la misma política de empresa.&lt;/p&gt;
&lt;h2&gt;El verdadero problema: el contenido compartido y el local se mezclan&lt;/h2&gt;
&lt;p&gt;La cuestión es que la mayoría de estos documentos son idénticos en un 70-80%. Los pasos de incorporación, la configuración de las herramientas, las políticas de seguridad, la sección de valores de la empresa, la lista de &amp;quot;a quién contactar&amp;quot;. Todo eso es lo mismo independientemente de si está en Berlín, Tokio o São Paulo.&lt;/p&gt;
&lt;p&gt;Lo local es quizá el 20-30% del documento. Requisitos de cumplimiento específicos, beneficios locales, procesos regionales, contactos del equipo para esa oficina.&lt;/p&gt;
&lt;p&gt;Pero cuando todo vive en un gran documento plano por idioma, no hay forma de saber qué partes son compartidas y cuáles son locales. Una actualización del contenido compartido implica comprobar y actualizar manualmente cada copia. Lo que nadie hace sistemáticamente. Por eso las copias van a la deriva.&lt;/p&gt;
&lt;h2&gt;Un documento. Eso es todo.&lt;/h2&gt;
&lt;p&gt;En Rasepi, la guía de incorporación es un solo documento. No uno por idioma. Uno.&lt;/p&gt;
&lt;p&gt;El contenido compartido, el 70-80% que es el mismo en todas partes, se escribe una vez en inglés y se traduce automáticamente a todos los idiomas que utiliza su equipo. Cuando alguien actualiza la sección de política de seguridad en inglés, se vuelve a traducir en alemán, japonés, portugués y francés en cuestión de segundos. Sin copias manuales. Nada de &amp;quot;alguien debería actualizar las otras versiones&amp;quot;.&lt;/p&gt;
&lt;p&gt;El contenido local vive en su respectiva versión lingüística. La sección de formación de la DSGVO sólo existe en la versión alemana. El proceso hanko sólo existe en la versión japonesa. Los requisitos CLT sólo existen en la versión portuguesa. Estas secciones están marcadas como contenido único, pertenecen a ese idioma y nunca se sobrescriben con la retraducción.&lt;/p&gt;
&lt;p&gt;Cubrimos exactamente cómo funciona esto en nuestro post sobre &lt;a href=&quot;https://rasepi.com/es/blog/how-rasepi-translations-work-and-why-they-sound-like-your-team/&quot;&gt;cómo funcionan las traducciones de Rasepi&lt;/a&gt;. La versión resumida: cada párrafo tiene su propia identidad. Los párrafos compartidos se traducen y se les hace un seguimiento. Los párrafos únicos pertenecen a su idioma y nada más los toca.&lt;/p&gt;
&lt;p&gt;¿El resultado? Su búsqueda en la wiki de &amp;quot;onboarding&amp;quot; devuelve un solo resultado. Sólo &amp;quot;Onboarding&amp;quot;. Ábralo en inglés, verá la versión inglesa con todo el contenido compartido. Ábralo en alemán, verá el mismo contenido compartido en alemán más las secciones específicas de Alemania. Ábralo en japonés, el mismo contenido compartido en japonés más las secciones específicas de Japón.&lt;/p&gt;
&lt;p&gt;Un documento. No cinco. No cinco documentos pudriéndose lentamente a diferentes velocidades.&lt;/p&gt;
&lt;h2&gt;Lo que esto cambia en realidad&lt;/h2&gt;
&lt;p&gt;Esto no es sólo más ordenado. Cambia fundamentalmente el funcionamiento de su documentación en todas las oficinas.&lt;/p&gt;
&lt;h3&gt;Las actualizaciones llegan realmente a todos&lt;/h3&gt;
&lt;p&gt;Cuando actualiza la parte compartida de la guía de incorporación, se actualiza en todos los idiomas. No con el tiempo, ni después de que alguien se acuerde de hacerlo. Se actualiza automáticamente. El párrafo que ha cambiado se vuelve a traducir. Todo lo demás se queda exactamente donde estaba.&lt;/p&gt;
&lt;p&gt;Esto significa que su oficina de Tokio está leyendo la misma política de empresa que su oficina de Londres. No la versión de hace seis meses que nadie se puso a actualizar.&lt;/p&gt;
&lt;h3&gt;Los equipos locales son dueños de su contenido local&lt;/h3&gt;
&lt;p&gt;Su equipo de Múnich puede añadir una sección sobre el descuento del gimnasio local sin preocuparse de que sea borrada por la próxima actualización inglesa. Su contenido único es suyo. Permanece en la versión alemana, intacto ante cualquier cambio en la fuente inglesa.&lt;/p&gt;
&lt;p&gt;Lo mismo para el resto. El contenido local es genuinamente local. No interfiere con el contenido compartido, y el contenido compartido no interfiere con él.&lt;/p&gt;
&lt;h3&gt;Los recién contratados reciben la información adecuada.&lt;/h3&gt;
&lt;p&gt;Un recién contratado en São Paulo abre la guía de incorporación y ve todo lo que necesita. Las secciones compartidas (herramientas, seguridad, valores) están en portugués. Las secciones específicas de Brasil (CLT, documentos fiscales, vales de comida) están ahí al lado. Un solo documento, todo en su idioma, no falta nada, nada está desfasado.&lt;/p&gt;
&lt;p&gt;No necesitan saber que otras tres oficinas tienen secciones locales diferentes. Sólo ven su versión. Limpia y completa.&lt;/p&gt;
&lt;h3&gt;Disminuye el número de páginas&lt;/h3&gt;
&lt;p&gt;Esta es la matemática simple. Si tiene 50 documentos clave y los mantiene en 5 idiomas con el método de copiar y localizar, tiene 250 documentos. En Rasepi, tiene 50. Cada uno con versiones lingüísticas que comparten contenidos comunes y mantienen sus propias secciones locales.&lt;/p&gt;
&lt;p&gt;250 documentos que mantener frente a 50. Son 200 páginas de sobrecarga de mantenimiento que desaparecen.&lt;/p&gt;
&lt;h2&gt;No se trata sólo de la incorporación&lt;/h2&gt;
&lt;p&gt;La incorporación es el ejemplo obvio porque todas las empresas globales tienen este problema. Pero el mismo patrón aparece en todas partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Guías de implantación.&lt;/strong&gt; Los pasos básicos son los mismos, pero el equipo de Berlín utiliza un servidor de puesta en escena local y Tokio tiene un proceso de aprobación diferente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentación de cumplimiento.&lt;/strong&gt; Sección GDPR para Europa, LGPD para Brasil, APPI para Japón. Todo en el mismo documento, cada uno aparece sólo donde es relevante.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beneficios y políticas de RR.HH.&lt;/strong&gt; La política de permiso parental es diferente en cada país. Los valores de la empresa son los mismos en todas partes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Documentos de ayuda orientados al cliente.&lt;/strong&gt; El producto funciona igual en todas partes, pero las formas de pago, los horarios de asistencia y las normativas regionales varían.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada uno de ellos es un documento que la mayoría de las empresas mantienen como copias separadas por mercado. Y cada uno de ellos podría ser un único documento con contenido compartido y local.&lt;/p&gt;
&lt;h2&gt;El efecto compuesto&lt;/h2&gt;
&lt;p&gt;Aquí es donde se vuelve real. Una empresa con 200 documentos en 4 mercados no está manteniendo 200 documentos. Están manteniendo 800. Pero tienen personal para 200. Así que lo que realmente sucede es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Las versiones inglesas están actualizadas&lt;/li&gt;
&lt;li&gt;Las versiones alemanas están actualizadas en su mayor parte&lt;/li&gt;
&lt;li&gt;Las versiones francesas están atrasadas&lt;/li&gt;
&lt;li&gt;Las versiones japonesas son una incógnita&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;¿Le suena?&lt;/p&gt;
&lt;p&gt;En Rasepi mantienen 200 documentos. El contenido compartido se traduce automáticamente. El contenido local lo añaden los equipos locales. Cada versión es tan actual como la inglesa, más los añadidos locales que haya hecho el equipo regional.&lt;/p&gt;
&lt;p&gt;Los costes de traducción también son menores. Cuando se actualiza un párrafo en inglés, sólo ese párrafo se vuelve a traducir en todos los idiomas. No todo el documento, ni los 200 documentos. Sólo el párrafo que realmente ha cambiado. Hemos escrito sobre &lt;a href=&quot;https://rasepi.com/es/blog/how-rasepi-translations-work-and-why-they-sound-like-your-team/&quot;&gt;cómo funciona&lt;/a&gt; en detalle, incluyendo el glosario y las reglas de estilo que hacen que el contenido traducido suene natural.&lt;/p&gt;
&lt;h2&gt;Una rápida comprobación visceral&lt;/h2&gt;
&lt;p&gt;Si dirige un equipo global, pregúntese:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;¿Cuántos documentos duplicados tiene?&lt;/strong&gt; Busque el mismo tema y cuente las copias específicas de cada idioma.&lt;/li&gt;
&lt;li&gt;**Compruebe la fecha de la última edición de sus documentos en alemán, francés o japonés. ¿Cuánto retraso tienen?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Añaden los equipos locales contenido a sus versiones?&lt;/strong&gt; ¿O han desistido porque se sobrescribe?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;¿Cuánto tarda el onboarding en las oficinas que no hablan inglés?&lt;/strong&gt; Si es más largo, lo más probable es que la documentación no les esté sirviendo adecuadamente.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si las respuestas le incomodan, no está solo. La mayoría de las empresas no se dan cuenta de los gastos generales que han creado hasta que realmente cuentan las copias.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;La documentación debe escalar con su empresa, no multiplicarse. Cada copia que mantiene es una copia que puede quedarse atrás, confundir a un nuevo empleado o contradecir la versión que está leyendo otra persona. Un documento por tema, con el contenido compartido traducido y el contenido local donde corresponde, es como debe funcionar la documentación en una empresa global.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Su wiki no debería necesitar cinco copias del mismo documento. Una es suficiente. Pasos compartidos traducidos, pasos locales por idioma. Eso es todo.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#multilingual&quot;&gt;Vea la publicación multilingüe en acción →&lt;/a&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="multilingual" />
    <category term="documentation" />
    <category term="localisation" />
  </entry>
  <entry>
    <title>El argumento comercial a favor de la localización a nivel de bloque</title>
    <link href="https://rasepi.com/es/blog/why-multilingual-knowledge-is-the-key-to-business-success/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/why-multilingual-knowledge-is-the-key-to-business-success/</id>
    <updated>2026-03-24T00:00:00Z</updated>
    <summary>Los equipos globales no sólo necesitan traducciones. Necesitan conocimientos que funcionen en todos los mercados y que cada idioma tenga su propia estructura. La localización a nivel de bloque hace que eso sea práctico.</summary>
    <content type="html">&lt;p&gt;Existe un patrón en todas las empresas que operan más allá de sus fronteras. La documentación en inglés es sólida. La versión alemana lleva tres meses de retraso. La versión japonesa fue traducida una vez, por un contratista, y nadie la ha tocado desde entonces. La versión brasileña en portugués aún no existe, a pesar de que São Paulo es la oficina de mayor crecimiento.&lt;/p&gt;
&lt;p&gt;Todo el mundo está de acuerdo en que esto es un problema. Nadie tiene una buena solución. Hasta ahora, la localización se ha tratado como un proyecto, un esfuerzo de una sola vez que se presupuesta, se ejecuta y luego se descuida en silencio hasta la próxima gran revisión.&lt;/p&gt;
&lt;p&gt;Ese enfoque está roto. He aquí por qué, y lo que creo que realmente funciona.&lt;/p&gt;
&lt;h2&gt;La traducción no es localización&lt;/h2&gt;
&lt;p&gt;Aclaremos la terminología. Traducir es tomar un texto en un idioma y producir un texto equivalente en otro. La localización es hacer que los conocimientos funcionen en un mercado específico. Se solapan, pero no son lo mismo.&lt;/p&gt;
&lt;p&gt;Un documento traducido se lee correctamente. Un documento localizado se lee con naturalidad. Tiene en cuenta el contexto cultural, la normativa regional, las herramientas locales y la forma en que trabajan realmente las personas en ese mercado.&lt;/p&gt;
&lt;p&gt;Esta distinción es importante porque la mayoría de las plataformas de documentación tratan la localización como una tarea de traducción. Usted escribe en inglés, pulsa un botón y obtiene la salida en francés. Listo. Excepto que no está hecho, porque:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El equipo francés tiene un proceso de despliegue diferente que el documento en inglés no cubre.&lt;/li&gt;
&lt;li&gt;Los requisitos de conformidad alemanes añaden un paso de aprobación adicional que no existe en ningún otro lugar&lt;/li&gt;
&lt;li&gt;La oficina japonesa utiliza una herramienta interna diferente para el mismo flujo de trabajo&lt;/li&gt;
&lt;li&gt;Los lectores brasileños de portugués necesitan un contexto sobre las normas fiscales locales que no es relevante en ningún otro lugar&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Una traducción directa del documento inglés es técnicamente correcta en todos estos casos, y prácticamente inútil en todos ellos también.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;El problema de la traducción a nivel de documento&lt;/h2&gt;
&lt;p&gt;La localización tradicional funciona a nivel de documento. Usted tiene un documento en inglés. Usted lo traduce entero al alemán. Cuando cambia la versión inglesa, lo envía entero para que lo vuelvan a traducir. Esto crea tres problemas:&lt;/p&gt;
&lt;h3&gt;1. Es caro&lt;/h3&gt;
&lt;p&gt;Si su guía de incorporación tiene 15 secciones y cambia un párrafo, estará pagando por volver a traducir las 15 secciones. Multiplique eso por 8 idiomas y cada edición se convierte en una conversación presupuestaria.&lt;/p&gt;
&lt;h3&gt;2. Es lento&lt;/h3&gt;
&lt;p&gt;Enviar documentos completos para su traducción lleva tiempo. Incluso con la traducción automática moderna, el ciclo de revisión de un documento completo es significativamente más largo que la revisión de una sola sección modificada. Los equipos de otros idiomas siempre van con retraso.&lt;/p&gt;
&lt;h3&gt;3. No admite contenidos únicos&lt;/h3&gt;
&lt;p&gt;Este es el verdadero asesino. Si la versión alemana necesita una sección adicional sobre el cumplimiento de la DSGVO, ¿dónde va? En un sistema de traducción a nivel de documento, cualquier contenido añadido a la versión alemana se sobrescribe la próxima vez que alguien vuelve a traducir desde el inglés. El equipo alemán aprende rápido: no añada nada, porque se borrará.&lt;/p&gt;
&lt;h2&gt;Localización a nivel de bloque: una arquitectura diferente&lt;/h2&gt;
&lt;p&gt;Rasepi no traduce documentos. Traduce bloques: párrafos individuales, encabezados y secciones, cada uno rastreado de forma independiente con su propia identidad y hash de contenido.&lt;/p&gt;
&lt;p&gt;Esto es lo que significa en la práctica:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuando edita un único párrafo en inglés&lt;/strong&gt;, Rasepi detecta qué bloque ha cambiado comparando los hashes de contenido SHA256. Sólo ese bloque se envía para su traducción a través de DeepL. Los otros 14 bloques del documento permanecen exactamente como estaban. Su coste de traducción se reduce hasta en un 94%.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuando el traductor alemán necesita añadir una sección DSGVO&lt;/strong&gt;, la añade como un nuevo bloque en la versión alemana. Ese bloque sólo existe en alemán. No afecta a la fuente en inglés. No se sobrescribe cuando cambia el inglés. Está marcado como contenido único para que todo el mundo sepa que es intencionado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuando la versión japonesa necesita una estructura diferente&lt;/strong&gt;, por ejemplo, una lista numerada en lugar de viñetas porque esa es la convención en la escritura técnica japonesa, el traductor puede cambiar el tipo de bloque. El sistema lo registra como una &amp;quot;adaptación de la estructura&amp;quot; y lo conserva en futuras actualizaciones.&lt;/p&gt;
&lt;p&gt;Cada versión lingüística se convierte en un documento de primera clase, no en una copia sombra.&lt;/p&gt;
&lt;h2&gt;Cómo funciona, técnicamente&lt;/h2&gt;
&lt;p&gt;Cada bloque en Rasepi tiene&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Un UUID&lt;/strong&gt; que persiste a través de todas las ediciones y traducciones&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Un hash&lt;/strong&gt; de contenido (SHA256) que cambia cuando cambia el texto&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Un índice de posición&lt;/strong&gt; para que los bloques permanezcan en el orden correcto&lt;/li&gt;
&lt;li&gt;Una bandera de borrado suave** para que la eliminación de un bloque en inglés no rompa la alineación en otros idiomas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando se crea un bloque de traducción, almacena el hash del contenido del bloque de origen. En cada guardado, el sistema compara los hashes. Si coinciden, la traducción es actual. Si no lo hacen, la traducción se marca como obsoleta, y sólo ese bloque específico necesita atención.&lt;/p&gt;
&lt;p&gt;Este es el mecanismo que está detrás de la reducción de costes del 94%. La mayoría de las ediciones cambian una o dos secciones. El resto del documento, en todas las lenguas, permanece intacto.&lt;/p&gt;
&lt;h2&gt;Contenido único por idioma&lt;/h2&gt;
&lt;p&gt;Aquí es donde las cosas se ponen realmente diferentes de cualquier otra plataforma.&lt;/p&gt;
&lt;p&gt;En Rasepi, cada versión lingüística puede contener:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bloques traducidos.&lt;/strong&gt; Traducciones directas del idioma de origen, rastreadas para comprobar que no se han quedado obsoletas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bloques únicos.&lt;/strong&gt; Contenido que sólo existe en ese idioma, añadido por el equipo local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bloques de estructura adaptada.&lt;/strong&gt; Mismo contenido de origen, diferente formato o tipo de bloque&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un mismo documento podría tener este aspecto en todos los idiomas:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bloque&lt;/th&gt;
&lt;th&gt;Inglés (fuente)&lt;/th&gt;
&lt;th&gt;Alemán&lt;/th&gt;
&lt;th&gt;Japonés&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Introducción. Traducido.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Pasos de la instalación&lt;/td&gt;
&lt;td&gt;Traducido&lt;/td&gt;
&lt;td&gt;Estructura adaptada (lista numerada)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Cumplimiento de la DSGVO (único)&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Despliegue&lt;/td&gt;
&lt;td&gt;Traducido&lt;/td&gt;
&lt;td&gt;Traducción&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Nota sobre herramientas locales (único)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Solución de problemas&lt;/td&gt;
&lt;td&gt;Traducido&lt;/td&gt;
&lt;td&gt;Traducción&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cada equipo recibe exactamente la documentación que necesita. Sin compromisos. Sin soluciones provisionales. Sin limitaciones de talla única.&lt;/p&gt;
&lt;h2&gt;Seguimiento de la actualización en todos los idiomas&lt;/h2&gt;
&lt;p&gt;Cada versión lingüística rastrea su propia frescura de forma independiente. La fuente en inglés podría puntuar 94 (revisado recientemente, todos los enlaces válidos, gran número de lectores). La versión francesa podría puntuar 71 (dos bloques obsoletos, un enlace roto específico del contenido francés). La versión japonesa podría puntuar 88 (todas las traducciones son actuales, pero el número de lectores está disminuyendo).&lt;/p&gt;
&lt;p&gt;Este seguimiento de la frescura por idioma significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usted sabe exactamente qué idiomas necesitan atención&lt;/li&gt;
&lt;li&gt;Las traducciones obsoletas salen a la luz automáticamente, no se descubren por accidente.&lt;/li&gt;
&lt;li&gt;Las herramientas de inteligencia artificial pueden tener en cuenta la actualización específica de cada idioma a la hora de ofrecer respuestas.&lt;/li&gt;
&lt;li&gt;Los paneles de control muestran el estado de los contenidos desglosado por idiomas, no sólo por documentos.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;El caso de negocio&lt;/h2&gt;
&lt;p&gt;Las empresas que operan en varios idiomas se enfrentan a una sencilla realidad: su documentación es un activo o un pasivo en todos los mercados en los que opera.&lt;/p&gt;
&lt;p&gt;Cuando su equipo de Berlín trabaja a partir de una traducción al alemán que lleva tres meses de retraso con respecto a la fuente inglesa, están tomando decisiones basadas en información obsoleta. Cuando su oficina de Tokio no puede añadir contexto local a los documentos compartidos porque el sistema de traducción lo sobrescribiría, dejan de utilizar la wiki y crean su propia documentación en la sombra. Cuando su equipo de São Paulo no dispone de documentación en portugués, la incorporación tarda el doble.&lt;/p&gt;
&lt;p&gt;El coste no es sólo de traducción. Lo es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Incorporación más lenta&lt;/strong&gt; en mercados no ingleses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Esfuerzo duplicado&lt;/strong&gt; ya que los equipos mantienen documentación paralela en herramientas locales&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Silos de conocimiento&lt;/strong&gt; que se forman cuando la wiki oficial no sirve para todos&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Riesgo de cumplimiento&lt;/strong&gt; cuando no se recogen los requisitos específicos de cada región&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pérdida de confianza&lt;/strong&gt; en el propio sistema de documentación&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La localización a nivel de bloque resuelve todos estos problemas, no abaratando la traducción (aunque lo hace), sino convirtiendo cada versión lingüística en un documento vivo, mantenido y digno de confianza.&lt;/p&gt;
&lt;h2&gt;Para empezar&lt;/h2&gt;
&lt;p&gt;Si hoy en día dirige un equipo multilingüe en cualquier plataforma de documentación, he aquí una rápida comprobación visceral:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Escoja su documento más importante.&lt;/strong&gt; Revíselo en cada idioma. ¿Está actualizada cada versión?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pregunte a sus equipos no ingleses:&lt;/strong&gt; ¿Confían en los documentos traducidos? ¿Los utilizan?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Busque documentación en la sombra.&lt;/strong&gt; ¿Los equipos mantienen wikis locales, páginas de Notion o mensajes anclados en Slack porque la documentación oficial no les sirve?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calcule su gasto en traducción.&lt;/strong&gt; ¿Cuánto está pagando por actualización, y cuánto de eso es retraducir contenido que no cambió?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si las respuestas le incomodan, no está solo. La mayoría de las empresas no descubren la brecha hasta que causa un problema real: un problema de cumplimiento, una implantación chapucera, un nuevo empleado que se pasó dos semanas siguiendo instrucciones obsoletas.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;El conocimiento multilingüe no es un &amp;quot;nice-to-have&amp;quot;. Para cualquier empresa que opere a través de las fronteras, es la base de cómo los equipos se alinean, toman decisiones y realizan envíos. La cuestión es si su plataforma de documentación lo trata así.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cada idioma merece ser un ciudadano de primera clase en su base de conocimientos. No una copia. No una sombra. Un documento real, mantenido y de confianza.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Eso es lo que ofrece Rasepi. Traducción a nivel de bloque, contenido único por idioma, seguimiento independiente de la frescura y una reducción del 94% en los costes de traducción. Todo automático. Todo desde el primer día.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#multilingual&quot;&gt;Vea la publicación multilingüe en acción →&lt;/a&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="multilingual" />
    <category term="localisation" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Frescura del contenido, parte 2: más allá de las fechas de caducidad</title>
    <link href="https://rasepi.com/es/blog/expiry-dates-are-just-not-enough/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/expiry-dates-are-just-not-enough/</id>
    <updated>2026-03-18T00:00:00Z</updated>
    <summary>Las fechas de caducidad resuelven la rendición de cuentas. Pero un documento puede caducar de cien maneras entre una revisión y otra. La parte 2 explica cómo la supervisión continua de la frescura llena ese vacío.</summary>
    <content type="html">&lt;p&gt;&lt;em&gt;Esta es la segunda parte de nuestra serie sobre frescura de contenidos. La &lt;a href=&quot;https://rasepi.com/es/blog/why-freshness-matters-more-than-ever/&quot;&gt;Parte 1&lt;/a&gt; cubre por qué importa la frescura y qué significa realmente. Este post retoma el tema donde lo dejó: por qué las fechas de caducidad por sí solas no son suficientes y cómo es la supervisión continua.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Digamos que usted hace lo responsable. Cada documento de su wiki tiene una fecha de revisión. Seis meses desde su creación, quizá doce para material de referencia estable. Cuando llega la fecha, el propietario recibe una notificación: revise esto o queda marcado.&lt;/p&gt;
&lt;p&gt;Eso es mejor que lo que hacen la mayoría de las empresas. La mayoría de las empresas no hacen nada. El documento se queda ahí, deteriorándose lentamente, y nadie se da cuenta hasta que alguien sigue las instrucciones y algo se rompe.&lt;/p&gt;
&lt;p&gt;Pero he aquí la incómoda verdad: &lt;strong&gt;las fechas de caducidad son necesarias y completamente insuficientes.&lt;/strong&gt; He visto documentos que se vuelven peligrosamente caducos días después de su última revisión, y una fecha de revisión no lo detecta.&lt;/p&gt;
&lt;h2&gt;Qué solucionan realmente las fechas de caducidad&lt;/h2&gt;
&lt;p&gt;Las fechas de caducidad resuelven el problema de la rendición de cuentas. Responden a la pregunta: &amp;quot;¿Quién es el responsable de confirmar que esto sigue siendo exacto, y cuándo?&amp;quot;_.&lt;/p&gt;
&lt;p&gt;Eso es realmente valioso. Sin ella, la documentación entra en lo que llamamos el vacío de propiedad, un estado en el que todo el mundo asume que alguien más la mantiene, por lo que nadie lo hace. Establecer una fecha de revisión asigna a una sola persona una única obligación en una fecha concreta. Sencillo. Claro. Eficaz.&lt;/p&gt;
&lt;p&gt;He aquí cómo son las fechas de vencimiento en la práctica:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se crea un documento con una fecha de revisión a 90 días vista.&lt;/li&gt;
&lt;li&gt;14 días antes de la expiración, se notifica al propietario&lt;/li&gt;
&lt;li&gt;En la fecha de vencimiento, el documento se marca como &amp;quot;necesita revisión&amp;quot;&lt;/li&gt;
&lt;li&gt;El propietario lo revisa, confirma que sigue siendo correcto y amplía la fecha&lt;/li&gt;
&lt;li&gt;O lo actualizan, o lo reasignan, o lo archivan&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este es un sistema sólido. Capta el deterioro lento, el documento en el que nadie ha pensado en un año. Crea una cadencia regular de revisión. Hace visible la propiedad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pero tiene un punto ciego del tamaño de un continente.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Lo que las fechas de caducidad pasan por alto&lt;/h2&gt;
&lt;p&gt;Entre las fechas de revisión, un documento vive en una caja negra. Usted lo revisó el 15 de enero. La próxima revisión es el 15 de abril. El 3 de febrero podría ocurrir cualquiera de estas cosas:&lt;/p&gt;
&lt;h3&gt;Los enlaces se rompen silenciosamente&lt;/h3&gt;
&lt;p&gt;Una URL externa a la que ha hecho referencia devuelve un 404. Un enlace interno apunta a un documento que fue archivado. Un repositorio de código fue renombrado y cada enlace GitHub en su documento está ahora muerto. Su documento aún se ve bien. La fecha de caducidad no es hasta dentro de dos meses. Nadie sabe que los enlaces están rotos.&lt;/p&gt;
&lt;h3&gt;Cambios de contenido relacionados&lt;/h3&gt;
&lt;p&gt;Usted escribió una guía de despliegue que hace referencia a su documento de arquitectura. En febrero, alguien reescribe por completo el documento de arquitectura. Nuevos patrones, nueva infraestructura, nuevas convenciones. Su guía de despliegue sigue haciendo referencia a la antigua arquitectura. Aún no está técnicamente mal, pero va a la deriva. Para cuando llegue su fecha de revisión, la brecha puede ser significativa.&lt;/p&gt;
&lt;h3&gt;El número de lectores cae a cero&lt;/h3&gt;
&lt;p&gt;Su documento solía ser leído por 40 personas al mes. Luego cambió un proceso y ya nadie lo necesita, pero tampoco nadie lo archivó. Permanece en los resultados de búsqueda, ocupando espacio, confundiendo ocasionalmente a un nuevo empleado que no sabe que es irrelevante. A la fecha de caducidad no le importan los lectores. Hará ping al propietario en la fecha prevista a pesar de todo.&lt;/p&gt;
&lt;h3&gt;Las traducciones se quedan atrás&lt;/h3&gt;
&lt;p&gt;La fuente en inglés se actualizó el 10 de febrero. Las traducciones al francés, alemán y japonés están ahora atrasadas. Pero la fecha de caducidad de esas versiones traducidas no es hasta mayo. Durante tres meses, los equipos no ingleses están leyendo contenidos obsoletos y no lo saben.&lt;/p&gt;
&lt;h3&gt;Los lectores señalan los problemas&lt;/h3&gt;
&lt;p&gt;Un lector deja un comentario: &amp;quot;El paso 3 ya no funciona, la bandera CLI quedó obsoleta&amp;quot;. Ese comentario se queda ahí. Aún faltan semanas para que caduque. Es posible que la siguiente persona que lea el documento no vea el comentario. La siguiente definitivamente no lo hará.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La caducidad es un punto de control programado. Estos son eventos no programados. La brecha entre ambos es donde la documentación obsoleta hace más daño.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Frescura: supervisión continua&lt;/h2&gt;
&lt;p&gt;La puntuación de la frescura llena el vacío que dejan las fechas de caducidad. En lugar de comprobar la salud de un documento una vez cada 90 días, la frescura realiza un seguimiento continuo. Cada día, en segundo plano, sin que nadie tenga que hacer nada.&lt;/p&gt;
&lt;p&gt;Así es como funciona en Rasepi:&lt;/p&gt;
&lt;p&gt;Cada documento obtiene una puntuación de frescura en vivo de 0 a 100, calculada a partir de múltiples señales:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Señal&lt;/th&gt;
&lt;th&gt;Lo que detecta&lt;/th&gt;
&lt;th&gt;Por qué es importante&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Salud de los enlaces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;URLs rotas, redirigidas o inalcanzables&lt;/td&gt;
&lt;td&gt;Los enlaces rotos erosionan la confianza y hacen perder tiempo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Estado de la revisión&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Si el documento ha sido revisado en la fecha prevista&lt;/td&gt;
&lt;td&gt;La comprobación básica de la rendición de cuentas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tendencias de lectura: si alguien lo está leyendo realmente. Una lectura baja sugiere que el documento puede ser irrelevante.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;La fecha de la última modificación del documento en comparación con el contenido relacionado detecta la desviación con respecto a la base de conocimientos circundante.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alineación de las traducciones: si todas las versiones lingüísticas están actualizadas. Las traducciones obsoletas significan que los equipos de otros mercados trabajan con información antigua.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Banderas de los lectores: si los lectores han informado de algún problema.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Referencias cruzadas: si los documentos a los que enlaza están también obsoletos.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Cada señal contribuye a la puntuación global. Un documento puede perder puntos de frescura por un enlace roto hoy, aunque su fecha de revisión no sea hasta dentro de semanas. De eso se trata.&lt;/p&gt;
&lt;h2&gt;Cómo funcionan las dos juntas&lt;/h2&gt;
&lt;p&gt;La caducidad y la frescura no son enfoques contrapuestos. Son capas complementarias:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las fechas de caducidad&lt;/strong&gt; son la capa de gobernanza. Crean una cadencia regular de revisión humana. Alguien tiene que mirar este documento en un calendario y confirmar que sigue siendo exacto. Esto capta las cosas que la automatización no puede: si el &lt;em&gt;contenido&lt;/em&gt; sigue siendo correcto, si el asesoramiento sigue siendo sólido, si el proceso que describe sigue reflejando la realidad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;La puntuación de frescura&lt;/strong&gt; es la capa de supervisión. Lo capta todo entre las fechas de revisión: los enlaces rotos, la deriva de la traducción, los documentos abandonados, la decadencia contextual que se produce cuando el mundo se mueve y un documento no.&lt;/p&gt;
&lt;p&gt;Juntos crean un sistema en el que:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cada documento es revisado por un humano según un calendario regular (caducidad)&lt;/li&gt;
&lt;li&gt;Entre las revisiones, las señales automatizadas detectan los problemas a medida que se producen (frescura)&lt;/li&gt;
&lt;li&gt;Ambos sistemas alimentan una única puntuación de confianza que todos pueden ver&lt;/li&gt;
&lt;li&gt;Esa puntuación afecta a la clasificación del documento en las búsquedas y a si las herramientas de IA lo utilizan como fuente&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;El impacto de la puntuación&lt;/h2&gt;
&lt;p&gt;Aquí es donde la cosa se pone práctica. En Rasepi, la puntuación de frescura de un documento afecta directamente a su visibilidad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Puntuación 80-100:&lt;/strong&gt; Visibilidad total. Aparece normalmente en los resultados de búsqueda. Elegible como fuente para respuestas de IA. Sin banderas.&lt;/li&gt;
&lt;li&gt;Puntuación 50-79:** Visibilidad reducida. Aparece en la búsqueda con un indicador de caducidad. Las herramientas de IA pueden despriorizarla como fuente. Se notifica al propietario.&lt;/li&gt;
&lt;li&gt;Puntuación inferior a 50:** Señalada. Empujado hacia abajo en los resultados de búsqueda de manera significativa. Excluida por completo de las respuestas de la IA. El propietario recibe una notificación urgente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esto crea un bucle de retroalimentación. Cuando la puntuación de un documento desciende, el propietario se ve empujado a arreglarlo, no porque haya llegado una fecha arbitraria, sino porque algo ha cambiado realmente. El enlace roto, la traducción obsoleta, la disminución de lectores, son señales reales que exigen atención ahora, no dentro de seis semanas.&lt;/p&gt;
&lt;h2&gt;Un ejemplo práctico&lt;/h2&gt;
&lt;p&gt;Recorramos un escenario:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 de marzo:&lt;/strong&gt; Su &amp;quot;Libro de jugadas de respuesta a incidentes&amp;quot; obtiene una puntuación de 92. Fue revisado hace dos semanas, todos los enlaces son válidos, el número de lectores es alto y las versiones en los cuatro idiomas están actualizadas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8 de marzo:&lt;/strong&gt; Alguien reestructura la página de estado de ingeniería. Tres URL del libro de jugadas ahora redirigen. La puntuación de frescura baja a 78. El propietario recibe una notificación: &amp;quot;3 enlaces rotos detectados&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10 de marzo:&lt;/strong&gt; El propietario arregla los enlaces. La puntuación repunta a 89.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;15 de marzo:&lt;/strong&gt; La versión inglesa se actualiza con una nueva ruta de escalada. Las traducciones al francés y al alemán se han quedado obsoletas (desajuste del hash del contenido). La puntuación baja a 74.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;17 de marzo:&lt;/strong&gt; Se actualizan las traducciones. La puntuación vuelve a 91.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;20 de marzo:&lt;/strong&gt; Los datos de audiencia muestran que no se ha accedido a la versión japonesa en 30 días. La puntuación baja a 86. Una señal sutil, pero rastreada.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 de abril:&lt;/strong&gt; Llega la fecha prevista para la revisión. El propietario revisa el contenido, confirma que es correcto y amplía la caducidad hasta el 1 de julio. La puntuación se mantiene en 86 porque la señal de lectores sigue presente.&lt;/p&gt;
&lt;p&gt;En ningún momento el equipo esperó a una fecha de revisión para detectar un problema. El sistema de frescura señaló los problemas en cuestión de días. La fecha de revisión proporcionó el punto de control de gobernanza. Ambas capas hacen su trabajo.&lt;/p&gt;
&lt;h2&gt;Por qué &amp;quot;fijar una fecha de revisión&amp;quot; ya no es suficiente&lt;/h2&gt;
&lt;p&gt;Hace cinco años, las fechas de caducidad podrían haber sido suficientes. La documentación era leída por la gente, y la gente puede ejercer su juicio. Si un documento parecía un poco raro, preguntaban por ahí.&lt;/p&gt;
&lt;p&gt;Hoy en día, la documentación es infraestructura. Alimenta las herramientas de IA, la automatización de la incorporación, los sistemas de cumplimiento y los motores de búsqueda que ofrecen resultados sin contexto. Estos sistemas no ejercen un juicio. Consumen el contenido tal cual y lo redistribuyen a escala.&lt;/p&gt;
&lt;p&gt;Un documento con enlaces rotos y traducciones obsoletas al que aún le quedan tres semanas para su fecha de revisión puede hacer mucho daño en esas tres semanas, sobre todo si un asistente de IA está sirviendo con confianza respuestas basadas en él.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Las fechas de caducidad son el enfoque mínimo viable para la gobernanza de la documentación. La puntuación de la frescura es lo que necesita cuando la documentación es consumida por sistemas que no pueden pensar por sí mismos.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Para empezar&lt;/h2&gt;
&lt;p&gt;Si ya tiene fechas de caducidad en sus documentos (bien por usted, en serio, la mayoría de los equipos ni siquiera hacen eso), aquí tiene cómo poner capas de frescura:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inicie el seguimiento de enlaces.&lt;/strong&gt; Realice una comprobación de enlaces rotos en sus 50 documentos principales. El número probablemente le sorprenderá.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compruebe la alineación de las traducciones.&lt;/strong&gt; Si tiene documentos multilingües, compare las fechas de última edición entre el documento original y las traducciones. ¿Cuántas llevan más de un mes de retraso?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mire el número de lectores.&lt;/strong&gt; ¿Qué documentos tienen un tráfico nulo? ¿Siguen siendo necesarios o deberían archivarse?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hable con su equipo de IA.&lt;/strong&gt; Si tiene un asistente interno de IA, pregúntele de qué documentos se abastece. A continuación, compruebe la frescura de esos documentos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Probablemente descubrirá que sus documentos técnicamente no caducados tienen muchos problemas que las fechas de caducidad nunca detectarán.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Las fechas de caducidad le dicen si alguien ha revisado un documento recientemente. La frescura le dice si el documento está realmente sano en este momento. Una es un acontecimiento del calendario. El otro es una señal viva.&lt;/p&gt;
&lt;p&gt;Necesita ambas. Pero si sólo tiene fechas de caducidad, está volando a ciegas entre los puntos de control.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Un documento no se vuelve rancio en su fecha de revisión. Se queda obsoleto en el momento en que algo cambia y nadie se da cuenta. La puntuación de la frescura se da cuenta.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rasepi combina las fechas de caducidad obligatorias con la supervisión continua de la frescura. Cada documento gana su puntuación de confianza, o la pierde, en tiempo real. Sin esperas, sin puntos ciegos, sin sorpresas en el momento de la revisión.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#freshness&quot;&gt;Vea cómo funciona la puntuación de frescura →&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Esta es la segunda parte de una serie de dos partes. Si aún no la ha leído, empiece por [Parte 1: La métrica que su equipo no está siguiendo](/es/blog/why-freshness-matters-more- than-ever/).&lt;/em&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="freshness" />
    <category term="expiry" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Frescura del contenido, Parte 1: La métrica que su equipo no está controlando</title>
    <link href="https://rasepi.com/es/blog/why-freshness-matters-more-than-ever/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/why-freshness-matters-more-than-ever/</id>
    <updated>2026-03-16T00:00:00Z</updated>
    <summary>Su documentación puede ser técnicamente correcta hoy. Pero dentro de seis meses, ¿quién lo comprobará? La frescura está a punto de convertirse en la señal más importante de su base de conocimientos.</summary>
    <content type="html">&lt;p&gt;Hay un momento que todo equipo de ingeniería ha experimentado. Alguien encuentra un documento en la wiki interna, sigue las instrucciones y algo se rompe. Envían un mensaje al canal: &amp;quot;¿Esto sigue siendo exacto?&amp;quot; Nadie lo sabe. La persona que lo escribió se fue hace ocho meses. El documento dice que se editó por última vez en 2024.&lt;/p&gt;
&lt;p&gt;Este es el problema de la frescura. Y está empeorando.&lt;/p&gt;
&lt;h2&gt;El antiguo contrato se está rompiendo&lt;/h2&gt;
&lt;p&gt;Durante mucho tiempo, la documentación tenía un contrato implícito: alguien la escribe, todo el mundo confía en ella y, de vez en cuando, alguien la actualiza. Tal vez. Ese contrato funcionaba, a duras penas, cuando la documentación era consumida únicamente por personas que podían aplicar su criterio. Si una guía de configuración parecía un poco fuera de lugar, un ingeniero superior se limitaba a adaptarla sobre la marcha.&lt;/p&gt;
&lt;p&gt;Pero ese mundo se acabó. Hoy su documentación no sólo es leída por humanos. Es consumida por herramientas de IA, chatbots internos, automatización de la incorporación y sistemas de búsqueda que tratan cada palabra como una verdad equivalente. Un asistente de IA no entrecierra los ojos ante un documento y piensa &lt;em&gt;&amp;quot;hmm, esto parece un poco anticuado&amp;quot;&lt;/em&gt;, sino que lee el texto, lo procesa como un hecho y lo sirve con plena confianza.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentación anticuada más IA equivale a respuestas erróneas con total confianza a escala.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Lo que realmente significa frescura&lt;/h2&gt;
&lt;p&gt;La frescura no es sólo &amp;quot;cuándo se editó esto por última vez&amp;quot;. Un documento podría haber sido editado ayer y seguir haciendo referencia a una API obsoleta. La verdadera frescura es una señal compuesta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Estado de revisión.&lt;/strong&gt; ¿Alguien ha confirmado explícitamente que sigue siendo correcto?&lt;/li&gt;
&lt;li&gt;Salud de los enlaces: ¿se siguen resolviendo las URL del documento?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lectores.&lt;/strong&gt; ¿Alguien está usando esto realmente, o ha sido abandonado?&lt;/li&gt;
&lt;li&gt;Deriva contextual: ¿Han cambiado los documentos relacionados mientras que éste sigue igual?&lt;/li&gt;
&lt;li&gt;Alineación de las traducciones.** Si existe en cinco idiomas, ¿están todos actualizados?&lt;/li&gt;
&lt;li&gt;Señales de la comunidad.** ¿Los lectores lo han marcado como obsoleto?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada una de ellas le dice algo diferente. Juntos, le dan una puntuación de confianza: un único número que representa el grado de confianza que debe depositar en un contenido en este momento.&lt;/p&gt;
&lt;h2&gt;Por qué esto importa ahora, concretamente&lt;/h2&gt;
&lt;p&gt;Tres cosas han convergido para hacer que la frescura sea urgente:&lt;/p&gt;
&lt;h3&gt;1. La IA está consumiendo su base de conocimientos&lt;/h3&gt;
&lt;p&gt;Tanto si ha desplegado un sistema RAG interno, como si utiliza Copilot en su IDE o tiene un asistente de IA que responde a las preguntas de sus documentos, la calidad del material de origen determina directamente la calidad del resultado. Basura dentro, basura fuera nunca ha sido tan literal.&lt;/p&gt;
&lt;p&gt;Cuando un desarrollador pregunta a su asistente de IA &amp;quot;¿cómo despliego en staging?&amp;quot; y éste le responde utilizando un runbook de hace dos años que hace referencia a una infraestructura que usted ya ha migrado, el coste no es sólo una respuesta errónea. Es la pérdida de confianza en todo el sistema.&lt;/p&gt;
&lt;h3&gt;2. Los equipos están más distribuidos que nunca&lt;/h3&gt;
&lt;p&gt;Un equipo en Berlín, otro en São Paulo, un tercero en Tokio. Todos leyendo la misma documentación, a menudo en idiomas diferentes. Cuando la fuente en inglés se queda obsoleta, todas las traducciones construidas sobre ella se quedan obsoletas también, pero nadie se da cuenta porque las traducciones se mantienen por separado, si es que se mantienen.&lt;/p&gt;
&lt;h3&gt;3. Aumenta la presión del cumplimiento y la auditoría&lt;/h3&gt;
&lt;p&gt;Las industrias reguladas están empezando a preguntar: &amp;quot;¿Puede demostrar que esta documentación estaba actualizada en el momento en que se hizo referencia a ella?&amp;quot;. Si su respuesta es &amp;quot;bueno, probablemente alguien la comprobó&amp;quot;, eso no se sostendrá.&lt;/p&gt;
&lt;h2&gt;Cómo es un enfoque que da prioridad a la frescura&lt;/h2&gt;
&lt;p&gt;La idea central es simple: &lt;strong&gt;cada documento debe ganarse continuamente el derecho a ser fiable.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esto significa&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fechas de revisión obligatorias.&lt;/strong&gt; Cada documento tiene una fecha de caducidad cuando se crea. Sin excepciones. Cuando llega la fecha, se notifica al propietario y el documento queda marcado hasta que alguien lo vuelva a aprobar explícitamente.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Vigilancia automatizada de la salud.&lt;/strong&gt; En segundo plano, el sistema comprueba continuamente si hay enlaces rotos, tendencias de lectores y cambios contextuales. Estas señales alimentan una puntuación en vivo que se actualiza sin que nadie tenga que hacer nada.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;La frescura afecta a la visibilidad.&lt;/strong&gt; Éste es el mecanismo clave. Un documento con una puntuación alta sube a la parte superior de los resultados de búsqueda y es elegible para ser utilizado como fuente de respuestas de la IA. Un documento con una puntuación baja desciende en la clasificación. Si cae por debajo de un umbral, queda totalmente excluido de las respuestas de la IA.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Transparencia.&lt;/strong&gt; Todo el mundo puede ver por qué un documento obtuvo la puntuación que obtuvo. Enlaces rotos, revisión atrasada, escasa lectura, las señales son visibles, no están ocultas en un informe backend que nadie lee.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;El coste de no hacer nada&lt;/h2&gt;
&lt;p&gt;Esto es lo que ocurre cuando no se hace un seguimiento de la frescura:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los nuevos contratados siguen documentos de incorporación obsoletos y pasan su primera semana confundidos&lt;/li&gt;
&lt;li&gt;Las herramientas de IA ofrecen respuestas erróneas y nadie entiende por qué&lt;/li&gt;
&lt;li&gt;Los documentos de cumplimiento se quedan obsoletos y crean riesgos de auditoría.&lt;/li&gt;
&lt;li&gt;Las traducciones se desincronizan y los equipos de distintas regiones trabajan a partir de versiones diferentes de la realidad&lt;/li&gt;
&lt;li&gt;Los ingenieros dejan de confiar por completo en la wiki y recurren a los mensajes de Slack, lo que crea su propio silo de conocimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El coste compuesto de la documentación obsoleta es enorme, pero es invisible hasta que algo se rompe.&lt;/p&gt;
&lt;h2&gt;Un punto de partida práctico&lt;/h2&gt;
&lt;p&gt;No necesita revisarlo todo a la vez. Empiece por esto:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Analice sus 20 documentos más leídos.&lt;/strong&gt; ¿Cuándo se revisaron por última vez? ¿Siguen siendo válidos los enlaces? ¿Sigue siendo preciso el contenido?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fije fechas de revisión.&lt;/strong&gt; Aunque no haga nada más, poner una fecha de &amp;quot;revisión por&amp;quot; en cada documento crea responsabilidad.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;**Si dispone de un asistente interno de inteligencia artificial, compruebe de qué documentos se nutre. ¿Están actualizados esos documentos?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;**Ponga la puntuación donde la gente pueda verla, junto al título del documento, en los resultados de búsqueda, en la barra lateral. La visibilidad crea presión para mantenerla.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;La frescura de la documentación no es una característica. Es un cambio fundamental en la forma en que pensamos sobre el conocimiento organizativo. En un mundo en el que las herramientas de IA consumen y redistribuyen su documentación a escala, la cuestión no es si puede permitirse preocuparse por la frescura. Es si puede permitirse no hacerlo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cada documento debería tener que demostrar que aún merece la pena confiar en él. No una vez. Continuamente.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Eso es lo que estamos construyendo en Rasepi. Una plataforma donde la frescura no es una ocurrencia tardía. Es la base sobre la que se construye todo lo demás. Aplicación de revisiones, puntuación de salud en vivo, búsqueda ponderada por frescura y respuestas de IA que sólo utilizan fuentes en las que puede confiar.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#freshness&quot;&gt;Vea cómo funciona →&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Esta es la Parte 1 de una serie de dos partes. En &lt;a href=&quot;https://rasepi.com/es/blog/expiry-dates-are-just-not-enough/&quot;&gt;Parte 2: Más allá de las fechas de caducidad&lt;/a&gt;, exploramos cómo el control continuo de la frescura llena las lagunas que dejan abiertas las fechas de revisión.&lt;/em&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="freshness" />
    <category term="ai" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Enseñe a su IA a ignorar la documentación obsoleta</title>
    <link href="https://rasepi.com/es/blog/ai-just-fetches-everything-stop-that/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/ai-just-fetches-everything-stop-that/</id>
    <updated>2026-03-12T00:00:00Z</updated>
    <summary>Su asistente de IA trata igual un documento revisado la semana pasada que otro que nadie ha tocado en dos años. La gobernanza de contenidos arregla eso.</summary>
    <content type="html">&lt;p&gt;Esto es lo que ocurre cuando despliega un asistente de IA sobre su base de conocimientos interna:&lt;/p&gt;
&lt;p&gt;Un nuevo ingeniero pregunta: &amp;quot;¿Cómo configuro el entorno de ensayo?&amp;quot;.&lt;/p&gt;
&lt;p&gt;La IA busca en su documentación, encuentra tres documentos relevantes, sintetiza una respuesta y la presenta con confianza. El ingeniero sigue las instrucciones. Los dos primeros pasos funcionan. El paso tres hace referencia a una herramienta CLI que quedó obsoleta hace seis meses. El paso cuatro describe una configuración de infraestructura que fue sustituida durante una migración que nadie documentó.&lt;/p&gt;
&lt;p&gt;El ingeniero está atascado. Envían un mensaje al canal del equipo. Alguien dice: &amp;quot;Oh, ese documento es muy antiguo&amp;quot;. La IA no lo sabía. No puede saberlo. Simplemente buscó todo lo que encontró y lo presentó como verdad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Este es el comportamiento por defecto de cada sistema RAG, cada herramienta de búsqueda de IA y cada asistente impulsado por LLM que haya utilizado alguna vez en documentos internos. Lo buscan todo. No discriminan. No distinguen lo fresco de lo rancio.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Y está destruyendo la confianza en las herramientas de IA más rápido de lo que esas herramientas pueden construirla.&lt;/p&gt;
&lt;h2&gt;Por qué los asistentes de IA son ciegos a la calidad&lt;/h2&gt;
&lt;p&gt;Los grandes modelos lingüísticos y los sistemas de generación aumentada por recuperación (RAG) funcionan encontrando texto que sea semánticamente relevante para una consulta y, a continuación, utilizando ese texto para generar una respuesta. La concordancia de relevancia suele ser excelente. La búsqueda vectorial y las incrustaciones son realmente buenas a la hora de encontrar contenidos relacionados con una pregunta.&lt;/p&gt;
&lt;p&gt;Pero relevancia no es lo mismo que fiabilidad.&lt;/p&gt;
&lt;p&gt;Un documento escrito en 2023 sobre su proceso de despliegue de Kubernetes es muy relevante para la pregunta &amp;quot;¿cómo despliego en producción?&amp;quot; También es completamente erróneo si usted migró a una plataforma diferente en 2024. La IA ve texto relevante. No ve un documento que está 18 meses desfasado con enlaces rotos y cero lectores.&lt;/p&gt;
&lt;p&gt;La mayoría de los sistemas de IA tienen exactamente una señal de clasificación: &lt;strong&gt;semejanza semántica con la consulta.&lt;/strong&gt; Eso es todo. No comprueban:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Cuándo se revisó este documento por última vez?&lt;/li&gt;
&lt;li&gt;¿Siguen siendo válidos los enlaces que contiene?&lt;/li&gt;
&lt;li&gt;¿Hay alguien leyendo realmente este documento?&lt;/li&gt;
&lt;li&gt;¿Han marcado los lectores el contenido como obsoleto?&lt;/li&gt;
&lt;li&gt;¿Se trata de un borrador, de una página archivada o de un documento actual?&lt;/li&gt;
&lt;li&gt;Si existe en varios idiomas, ¿están actualizadas las traducciones?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin estas señales, la IA está haciendo una concordancia de palabras clave con pasos adicionales. Un cotejo de palabras clave impresionante, sí, pero fundamentalmente incapaz de decirle si la respuesta que está dando se basa en un contenido en el que puede confiar.&lt;/p&gt;
&lt;h2&gt;El problema de la confianza&lt;/h2&gt;
&lt;p&gt;Esto no sería tan peligroso si las herramientas de IA presentaran respuestas inciertas con las advertencias adecuadas. Pero no lo hacen. No es así como funcionan las LLM. Generan textos fluidos y seguros independientemente de si el material fuente es actual o antiguo.&lt;/p&gt;
&lt;p&gt;Un humano que lea un artículo de wiki podría notar que parece anticuado. El diseño de la página es antiguo. Las capturas de pantalla muestran una interfaz de usuario que ya no existe. Hay un comentario al final que dice &amp;quot;esto está anticuado&amp;quot;. Un humano puede aplicar su criterio.&lt;/p&gt;
&lt;p&gt;Una IA no puede. Lee el texto, lo procesa como equivalente a cualquier otro texto y genera una respuesta que suena autoritaria. El usuario, especialmente un recién contratado que no sabe cómo es el proceso actual, no tiene motivos para dudar de ella.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cuanta más confianza suene la IA, más daño hace el material de origen obsoleto.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;Lo que la IA realmente necesita&lt;/h2&gt;
&lt;p&gt;Para que un asistente de IA dé respuestas fiables a partir de su base de conocimientos, necesita algo más que texto e incrustaciones. Necesita metadatos que le digan qué documentos merece la pena utilizar como fuentes. Concretamente:&lt;/p&gt;
&lt;h3&gt;1. Puntuación de frescura&lt;/h3&gt;
&lt;p&gt;Una señal numérica que representa la salud de un documento en este momento. No cuándo se editó por última vez, eso es sólo una entrada. Una verdadera puntuación de frescura combina el estado de revisión, la salud de los enlaces, el número de lectores, la alineación de la traducción y la deriva contextual en un único número.&lt;/p&gt;
&lt;p&gt;Cuando un documento obtiene una puntuación por encima de un umbral (digamos, 70 sobre 100), es apto para ser utilizado como fuente para las respuestas de la IA. Por debajo de ese umbral, queda excluido. No hay excepciones.&lt;/p&gt;
&lt;p&gt;Este único mecanismo elimina la clase más peligrosa de errores de IA: las respuestas erróneas basadas en fuentes obsoletas.&lt;/p&gt;
&lt;h3&gt;2. Estado de caducidad&lt;/h3&gt;
&lt;p&gt;¿Este documento se encuentra actualmente dentro de su plazo de revisión o ha caducado sin haber sido reaprobado? Un documento caducado debe ser fuertemente despriorizado o excluido por completo, independientemente de lo relevante que pueda ser su contenido para la consulta.&lt;/p&gt;
&lt;p&gt;En Rasepi, los documentos caducados se marcan y su puntuación de frescura desciende automáticamente. Un sistema de IA que consulte la base de conocimientos puede ver este estado y actuar en consecuencia.&lt;/p&gt;
&lt;h3&gt;3. Etiquetas de clasificación&lt;/h3&gt;
&lt;p&gt;No todos los documentos sirven para lo mismo. Un borrador no debería utilizarse como fuente. Un documento archivado no debería aparecer en las respuestas de AI. Un documento interno no debe aparecer en las consultas de herramientas externas.&lt;/p&gt;
&lt;p&gt;Las etiquetas de clasificación proporcionan a la IA el contexto sobre el tipo de documento que está consultando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Publicado.&lt;/strong&gt; Actual, aprobado, seguro de usar&lt;/li&gt;
&lt;li&gt;Borrador: trabajo en curso, no debe citarse.&lt;/li&gt;
&lt;li&gt;En revisión.** Expirado, en espera de reaprobación&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Archivado.&lt;/strong&gt; Ya no activo, guardado sólo como referencia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interna&lt;/strong&gt; / &lt;strong&gt;Externa.&lt;/strong&gt; Controla el alcance de la visibilidad&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando un asistente de IA procesa una consulta, puede filtrar por clasificación antes incluso de fijarse en la relevancia del contenido. Un borrador de documento que coincida perfectamente con la consulta nunca debe ser servido como respuesta.&lt;/p&gt;
&lt;h3&gt;4. Señales a nivel de idioma&lt;/h3&gt;
&lt;p&gt;Si su base de conocimientos es multilingüe, la IA necesita saber si la versión de la que está extrayendo la información es actual. Una traducción al francés que lleva tres meses de retraso con respecto a la fuente en inglés es técnicamente relevante en francés, pero la información podría estar desfasada.&lt;/p&gt;
&lt;p&gt;Rasepi realiza un seguimiento de la actualidad a nivel de idioma. Cada traducción tiene su propia puntuación basada en si sus bloques de origen han cambiado desde la última actualización de la traducción. Una IA que consulte la base de conocimientos en francés puede ver que la versión francesa de un documento está obsoleta y, o bien:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Volver a la fuente inglesa (que es actual)&lt;/li&gt;
&lt;li&gt;Incluir una advertencia de que la versión francesa puede estar anticuada&lt;/li&gt;
&lt;li&gt;Excluir el documento por completo&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. Señales de lectura&lt;/h3&gt;
&lt;p&gt;Si varios lectores han marcado un documento como obsoleto, esa señal debería reducir el peso del documento en las respuestas de la IA. Las señales de calidad crowdsourced son ruidosas, pero valiosas, especialmente cuando se combinan con otras métricas de frescura.&lt;/p&gt;
&lt;h2&gt;Cómo funciona en la práctica&lt;/h2&gt;
&lt;p&gt;Veamos qué ocurre cuando un asistente de IA consulta una base de conocimientos Rasepi:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consulta:&lt;/strong&gt; &amp;quot;¿Cuál es nuestro proceso para gestionar un incidente P1 a las 2 de la madrugada?&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Paso 1: Recuperación con filtrado.&lt;/strong&gt; El sistema busca documentos semánticamente relevantes. Antes de clasificarlos, los filtra:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Los documentos con una puntuación de frescura inferior al umbral&lt;/li&gt;
&lt;li&gt;Documentos caducados que no han sido reaprobados&lt;/li&gt;
&lt;li&gt;Borradores y contenidos archivados&lt;/li&gt;
&lt;li&gt;Documentos cuya versión lingüística esté obsoleta (si la consulta está en una lengua no primaria)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Paso 2: Clasificación ponderada en función de la frescura.&lt;/strong&gt; Entre los documentos restantes, los que obtienen puntuaciones de frescura más altas se clasifican mejor. Un documento con una puntuación de 94 supera a otro con una puntuación de 72, incluso si el documento con una puntuación de 72 tiene una similitud semántica ligeramente superior.&lt;/p&gt;
&lt;p&gt;**Paso 3: Generación de respuestas La IA genera una respuesta a partir de las fuentes filtradas y clasificadas según su frescura. Cada fuente se cita con su puntuación de frescura visible.&lt;/p&gt;
&lt;p&gt;**Paso 4: Advertencias de caducidad: si la mejor fuente disponible tiene una puntuación de frescura límite, la IA incluye una advertencia: &amp;quot;Nota: la fuente principal de esta respuesta se revisó por última vez hace 60 días. Es posible que desee verificarla con el equipo&amp;quot;.&lt;/p&gt;
&lt;p&gt;Compare esto con el comportamiento por defecto: encontrar el texto relevante, generar una respuesta segura, esperar lo mejor.&lt;/p&gt;
&lt;h2&gt;Qué ocurre cuando no se hace esto&lt;/h2&gt;
&lt;p&gt;Las consecuencias de que los sistemas de IA funcionen con bases de conocimientos sin filtrar son predecibles y costosas:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Confusión de los nuevos empleados.&lt;/strong&gt; El caso de uso más común de la IA para los documentos internos es la incorporación. Los recién contratados, por definición, no saben lo que es actual y lo que es obsoleto. Confían en la IA. La IA confía en todo. Los documentos obsoletos se sirven con confianza.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exposición al cumplimiento.&lt;/strong&gt; Si su asistente de IA ofrece orientación sobre procesos normativos utilizando documentos obsoletos, el asesoramiento no sólo puede ser erróneo, sino que puede incumplir la normativa. &amp;quot;La IA me lo dijo&amp;quot; no se sostiene en una auditoría.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erosión de la confianza.&lt;/strong&gt; Cada vez que la IA da una respuesta errónea, los usuarios confían un poco menos en ella. Después de tres o cuatro malas experiencias, dejan de utilizarla. La inversión en herramientas de IA no aporta ningún valor porque el contenido subyacente no era digno de confianza.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conocimiento en la sombra.&lt;/strong&gt; Cuando la gente pierde la confianza en la base de conocimientos oficial (y en la IA construida sobre ella), crea la suya propia: Mensajes de Slack, notas personales, conocimiento tribal compartido en reuniones. La fragmentación que se suponía que la wiki debía evitar se produce de todos modos, sólo que de forma diferente.&lt;/p&gt;
&lt;h2&gt;La solución está en la fuente, no en el modelo&lt;/h2&gt;
&lt;p&gt;Existe la tentación de solucionar esto en la capa de IA: mejores avisos, canalizaciones RAG más sofisticadas, modelos afinados que puedan detectar de algún modo el estancamiento a partir del texto únicamente. Este es el enfoque equivocado.&lt;/p&gt;
&lt;p&gt;La solución está en la fuente. Si sus documentos llevan metadatos ricos y precisos sobre su estado actual (puntuación de frescura, estado de caducidad, clasificación, alineación lingüística, señales del lector), entonces cualquier sistema de IA puede utilizar esos metadatos para tomar mejores decisiones. No necesita un modelo más inteligente. Necesita documentos más inteligentes.&lt;/p&gt;
&lt;p&gt;Esto es lo que proporciona Rasepi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cada documento tiene una puntuación de frescura en vivo&lt;/strong&gt; que se actualiza continuamente en función de la salud de los enlaces, el número de lectores, el estado de revisión, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cada documento tiene una fecha de caducidad&lt;/strong&gt; que activa la revisión cuando llega&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cada documento tiene una clasificación&lt;/strong&gt; (publicado, borrador, en revisión, archivado)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cada versión lingüística tiene su propia señal de frescura&lt;/strong&gt; para que las traducciones obsoletas se detecten de forma independiente&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Los indicadores de lectura y el seguimiento de referencias cruzadas&lt;/strong&gt; añaden señales de calidad adicionales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando un sistema de IA consulta la base de conocimientos de Rasepi, todos estos metadatos están disponibles. La IA no tiene que adivinar si un documento es fiable. El documento se lo dice.&lt;/p&gt;
&lt;h2&gt;Un punto de partida práctico&lt;/h2&gt;
&lt;p&gt;Si hoy tiene un asistente de IA funcionando en su base de conocimientos, puede empezar a evaluar el problema en 30 minutos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pregunte a su asistente de IA 10 preguntas de las que conozca las respuestas.&lt;/strong&gt; Observe qué respuestas utilizan fuentes obsoletas. Probablemente encontrará que al menos 2 ó 3 de cada 10 se basan en contenidos obsoletos.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Compruebe los documentos fuente.&lt;/strong&gt; Para cada respuesta que le haya dado la IA, mire el documento fuente. ¿Cuándo se revisó por última vez? ¿Son válidos los enlaces? ¿Confiaría en él si lo leyera usted mismo?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Busque el peor de los casos.&lt;/strong&gt; Encuentre su documento más antiguo y descuidado que aún aparezca en los resultados de búsqueda. Formule a la IA una pregunta que lo haga aparecer. ¿La IA lo utiliza? Es casi seguro que sí.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Estime el impacto.&lt;/strong&gt; ¿Cuántas consultas al día gestiona su asistente de IA? Si el 20-30% de las respuestas se basan en contenidos obsoletos, ¿cuál es el coste en términos de pérdida de tiempo, decisiones equivocadas y pérdida de confianza?&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;p&gt;Los asistentes de IA sólo son tan buenos como el contenido sobre el que se basan. Ahora mismo, la mayoría de ellos tratan todos los documentos de su base de conocimientos como igualmente válidos. Lo buscan todo, el documento que se revisó ayer y el que nadie ha tocado en dos años, y lo presentan todo con la misma confianza.&lt;/p&gt;
&lt;p&gt;Eso no es un problema de modelo. Es un problema de calidad de los datos. Y la solución es sencilla: proporcione a sus documentos metadatos que indiquen a las herramientas de IA en qué deben confiar.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Su asistente de IA no debería dar por segura una respuesta procedente de un documento que nadie ha revisado en 18 meses. Con las señales adecuadas, no lo hará.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Rasepi hace que cada documento lleve su propia puntuación de confianza: frescura, estado de caducidad, clasificación, alineación lingüística. Las herramientas de IA consultan la base de conocimientos y obtienen no sólo el contenido, sino el contexto. Las fuentes fiables salen a la superficie. Las obsoletas, no. Así es como debería funcionar la documentación potenciada por la IA.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://rasepi.com/#talk-to-docs&quot;&gt;Vea cómo funciona Rasepi con las herramientas de IA →&lt;/a&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="ai" />
    <category term="freshness" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Hablar con los documentos es mejor que leerlos</title>
    <link href="https://rasepi.com/es/blog/why-talking-to-documents-feels-better-than-reading/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/why-talking-to-documents-feels-better-than-reading/</id>
    <updated>2026-03-10T00:00:00Z</updated>
    <summary>La lectura es potente, pero supone un esfuerzo. La conversación es más antigua, rápida y natural. Hablar con información a menudo se siente mentalmente más ligero que escanear páginas de texto.</summary>
    <content type="html">&lt;p&gt;Hay una razón por la que la gente dice &lt;em&gt;&amp;quot;hablemos de ello&amp;quot;&lt;/em&gt; cuando algo es complejo.&lt;/p&gt;
&lt;p&gt;Cuando intentamos comprender una idea nueva, resolver un problema o recordar un proceso bajo presión, la conversación suele resultar más fácil que la lectura. No porque leer sea malo. La lectura es una de las herramientas más poderosas que ha desarrollado el ser humano. Pero la lectura es una habilidad aprendida que se superpone a algo mucho más antiguo: el habla.&lt;/p&gt;
&lt;p&gt;Somos habladores mucho antes que lectores.&lt;/p&gt;
&lt;p&gt;Eso importa más de lo que la gente cree, sobre todo ahora que la mayor parte del conocimiento del mundo vive dentro de documentos, wikis, PDF y largas páginas internas que nadie quiere abrir a menos que sea absolutamente necesario.&lt;/p&gt;
&lt;h2&gt;La lectura se aprende. La conversación es nativa.&lt;/h2&gt;
&lt;p&gt;Los seres humanos hablaron durante mucho tiempo antes de escribir nada. Los niños aprenden a comprender el lenguaje hablado de forma natural. La lectura requiere instrucción explícita, repetición y años de práctica.&lt;/p&gt;
&lt;p&gt;Incluso para los adultos altamente alfabetizados, la lectura sigue siendo un acto más deliberado que escuchar o hablar. Requiere concentración visual, atención continua, memoria de trabajo e interpretación de la estructura de la página. Se descodifican símbolos, se analizan frases, se construye el contexto y se decide lo que importa.&lt;/p&gt;
&lt;p&gt;La conversación funciona de forma diferente. Cuando la información se transmite de forma hablada e interactiva, el cerebro vive una experiencia diferente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se siente secuencial en lugar de visualmente abrumadora.&lt;/li&gt;
&lt;li&gt;Proporciona información y aclaraciones inmediatas&lt;/li&gt;
&lt;li&gt;Reduce la necesidad de escanear y filtrar grandes bloques de texto&lt;/li&gt;
&lt;li&gt;Refleja la forma en que la gente pide ayuda en la vida real.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este último punto es muy importante. Ante la incertidumbre, la mayoría de la gente no quiere leer instintivamente 1.500 palabras. Quieren preguntar: _&amp;quot;¿Qué hago ahora?&lt;/p&gt;
&lt;h2&gt;Hablar reduce la fricción cognitiva&lt;/h2&gt;
&lt;p&gt;Un documento es estático. Lo contiene todo a la vez.&lt;/p&gt;
&lt;p&gt;Parece útil, y a menudo lo es. Pero también crea fricción. Una página llena de encabezamientos, llamadas, enlaces, notas, ejemplos y casos extremos obliga al lector a decidir qué ignorar. Eso es cognitivamente costoso.&lt;/p&gt;
&lt;p&gt;Cuando se habla con un sistema de información, se suele obtener la experiencia opuesta: la relevancia primero, el detalle después.&lt;/p&gt;
&lt;p&gt;Usted hace una pregunta. Obtiene una respuesta. Luego hace una pregunta de seguimiento.&lt;/p&gt;
&lt;p&gt;Ese patrón de interacción reduce la sobrecarga mental de varias formas importantes:&lt;/p&gt;
&lt;h3&gt;1. Reduce el espacio del problema&lt;/h3&gt;
&lt;p&gt;Un documento completo presenta todo el panorama. Una conversación presenta el siguiente paso útil.&lt;/p&gt;
&lt;p&gt;Cuando alguien pregunta: &lt;em&gt;&amp;quot;¿Cómo incorporo a un nuevo ingeniero?&amp;quot;&lt;/em&gt;, normalmente no quieren todo el manual inmediatamente. Quieren orientación. La conversación les permite empezar poco a poco y ampliar sólo cuando sea necesario.&lt;/p&gt;
&lt;h3&gt;2. Preserva la memoria de trabajo&lt;/h3&gt;
&lt;p&gt;Leer le obliga a retener varias cosas en la cabeza mientras busca la parte relevante. La interacción oral o conversacional externaliza ese esfuerzo. El sistema hace más del filtrado por usted.&lt;/p&gt;
&lt;h3&gt;3. Le resulta socialmente familiar&lt;/h3&gt;
&lt;p&gt;Los humanos estamos profundamente adaptados al intercambio de ida y vuelta. Preguntamos. Alguien responde. Afinamos. Ellos aclaran. Ese bucle es una de las formas de aprendizaje más antiguas que tenemos.&lt;/p&gt;
&lt;p&gt;Incluso cuando el &amp;quot;alguien&amp;quot; es un sistema, la estructura sigue pareciendo natural.&lt;/p&gt;
&lt;h2&gt;Leer no es pasivo. Esa es exactamente la cuestión.&lt;/h2&gt;
&lt;p&gt;Una de las razones por las que hablar puede parecer más fácil es que leer no es tan fácil como la gente supone. Los lectores expertos hacen que parezca que no requiere esfuerzo, pero el proceso es muy activo.&lt;/p&gt;
&lt;p&gt;Para leer bien, tiene que hacerlo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;identificar la estructura&lt;/li&gt;
&lt;li&gt;deducir la importancia&lt;/li&gt;
&lt;li&gt;resolver la ambigüedad&lt;/li&gt;
&lt;li&gt;mantener el contexto en la memoria&lt;/li&gt;
&lt;li&gt;conectar una sección con otra&lt;/li&gt;
&lt;li&gt;decidir cuándo hojear y cuándo ir más despacio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso es verdadero trabajo cognitivo.&lt;/p&gt;
&lt;p&gt;En muchas situaciones, ese trabajo merece la pena. La lectura profunda ayuda con los matices, la precisión y la comprensión a largo plazo. Pero en otras situaciones, especialmente cuando alguien está cansado, estresado, sobrecargado o simplemente intenta desatascarse, hablar es a menudo la opción mentalmente más ligera.&lt;/p&gt;
&lt;p&gt;Esto es especialmente cierto en el lugar de trabajo, donde la gente no suele acercarse a la documentación en condiciones ideales. Lo están:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a mitad de tarea&lt;/li&gt;
&lt;li&gt;interrumpida&lt;/li&gt;
&lt;li&gt;cambiando de contexto&lt;/li&gt;
&lt;li&gt;intentando resolver algo rápidamente&lt;/li&gt;
&lt;li&gt;a menudo ya ligeramente frustrado&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En ese estado, el &lt;em&gt;acceso conversacional&lt;/em&gt; a la información puede sentirse mucho mejor que el acceso a través de una página.&lt;/p&gt;
&lt;h2&gt;Hablar cambia la relación con la información&lt;/h2&gt;
&lt;p&gt;Aquí también hay una dimensión emocional.&lt;/p&gt;
&lt;p&gt;Los documentos pueden parecer formales y distantes. Implican: &lt;em&gt;lea todo esto, entiéndalo bien y no se pierda nada importante.&lt;/em&gt; Eso puede ser útil como material de referencia, pero también puede crear dudas.&lt;/p&gt;
&lt;p&gt;La conversación se siente permisiva. Se puede ser vago. Puede preguntar mal. Puede admitir confusión. Puede decir: &lt;em&gt;&amp;quot;En realidad no sé lo que estoy buscando, pero necesito lo de las solicitudes de acceso&amp;quot;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Eso importa porque la gente suele evitar la documentación no porque no les guste la información, sino porque les disgusta el esfuerzo y la incertidumbre que supone encontrar la parte adecuada.&lt;/p&gt;
&lt;p&gt;Hablar reduce esa barrera.&lt;/p&gt;
&lt;h2&gt;Por qué esto importa ahora&lt;/h2&gt;
&lt;p&gt;Durante mucho tiempo, había que leer los documentos porque no existía una alternativa práctica. La búsqueda ayudó a la gente a encontrar páginas, pero no cambió el modelo de interacción. Aún había que abrir la página, escanearla y extraer lo que se necesitaba.&lt;/p&gt;
&lt;p&gt;Eso está cambiando.&lt;/p&gt;
&lt;p&gt;A medida que las interfaces se vuelven más conversacionales, la gente espera cada vez más que la información responda en lugar de simplemente existir. Quieren pedir lo que necesitan en un lenguaje sencillo y recibir algo adaptado al momento.&lt;/p&gt;
&lt;p&gt;Esto no hace que la lectura sea obsoleta. Cambia su función.&lt;/p&gt;
&lt;p&gt;La lectura se convierte en la capa profunda. La conversación se convierte en la capa de acceso.&lt;/p&gt;
&lt;p&gt;Los mejores sistemas soportarán ambas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hablar cuando necesite orientación o rapidez&lt;/li&gt;
&lt;li&gt;leer cuando necesite profundidad, verificación o contexto completo&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;El riesgo de simplificar en exceso&lt;/h2&gt;
&lt;p&gt;Hay una advertencia importante: hablar con información sólo sienta mejor si las respuestas son fiables.&lt;/p&gt;
&lt;p&gt;Si una interfaz conversacional da respuestas parciales, engañosas o demasiado seguras, la experiencia se vuelve peor que la lectura porque elimina la capacidad del usuario de inspeccionar directamente el material fuente.&lt;/p&gt;
&lt;p&gt;Así que el futuro no es &amp;quot;sustituir todos los documentos por la voz&amp;quot;. El futuro es dar a la gente una forma más humana de acceder a los documentos sin perder la profundidad y la precisión que proporciona el conocimiento escrito.&lt;/p&gt;
&lt;p&gt;Ese equilibrio es importante. Conversar es más fácil, pero los documentos siguen teniendo la estructura duradera, el detalle y la responsabilidad que necesitan las organizaciones.&lt;/p&gt;
&lt;h2&gt;Una interfaz más humana para el conocimiento&lt;/h2&gt;
&lt;p&gt;El punto más profundo es sencillo: las personas no piensan de forma natural en páginas. Piensan en preguntas, historias, fragmentos y diálogo.&lt;/p&gt;
&lt;p&gt;Nosotros preguntamos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Qué significa esto?&lt;/li&gt;
&lt;li&gt;¿Qué hago primero?&lt;/li&gt;
&lt;li&gt;¿Cuál es la parte importante?&lt;/li&gt;
&lt;li&gt;¿Puede explicarlo de otra manera?&lt;/li&gt;
&lt;li&gt;¿Qué ha cambiado?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Son movimientos de conversación, no de lectura.&lt;/p&gt;
&lt;p&gt;Así que cuando hablar con la información resulta mentalmente más fácil que leerla, no es un signo de pereza intelectual. Suele ser una señal de que la interfaz coincide con la forma en que el cerebro prefiere abordar la incertidumbre.&lt;/p&gt;
&lt;p&gt;La lectura sigue siendo esencial. Pero como punto de entrada al conocimiento, la conversación a menudo se siente mejor porque está más cerca de lo que somos por naturaleza.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Primero no somos lectores. Primero somos habladores. Los sistemas de conocimiento más intuitivos lo recordarán.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="voice" />
    <category term="knowledge" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Plataformas de documentación creadas para otra época</title>
    <link href="https://rasepi.com/es/blog/why-confluence-and-notion-are-struggling-in-the-ai-era/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/why-confluence-and-notion-are-struggling-in-the-ai-era/</id>
    <updated>2026-03-08T00:00:00Z</updated>
    <summary>Confluence y Notion se construyeron para un modelo de documentación anterior a la AI. Pueden evolucionar, pero las plataformas establecidas llevan un bagaje estructural. Los sistemas más nuevos pueden diseñarse para la IA desde el primer día.</summary>
    <content type="html">&lt;p&gt;Confluence y Notion no son malos productos. Eso hay que decirlo claramente desde el principio.&lt;/p&gt;
&lt;p&gt;Tuvieron éxito por buenas razones. Confluence se convirtió en el &lt;a href=&quot;https://www.atlassian.com/software/confluence&quot;&gt;hogar por defecto de la documentación interna&lt;/a&gt; en muchas empresas porque ofrecía a los equipos un lugar central para escribir, organizar y compartir conocimientos. Notion &lt;a href=&quot;https://www.notion.com/about&quot;&gt;se ganó a la gente&lt;/a&gt; con flexibilidad, experiencias de escritura más limpias y una superficie de producto de sensación más moderna.&lt;/p&gt;
&lt;p&gt;Ambas plataformas resolvieron problemas reales en la época para la que fueron construidas.&lt;/p&gt;
&lt;p&gt;El problema ahora es que el mundo que las rodea ha cambiado más rápido que sus fundamentos.&lt;/p&gt;
&lt;p&gt;Ya no estamos en un mundo en el que la documentación sólo necesita escribirse, almacenarse y buscarse. Estamos en un mundo en el que cada vez se espera más de la documentación:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;legible por máquina&lt;/li&gt;
&lt;li&gt;consciente de la frescura&lt;/li&gt;
&lt;li&gt;segura para la recuperación mediante IA&lt;/li&gt;
&lt;li&gt;lo suficientemente estructurada para la automatización&lt;/li&gt;
&lt;li&gt;dinámico en todos los idiomas y para todos los públicos&lt;/li&gt;
&lt;li&gt;continuamente fiable, no sólo disponible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se trata de un listón diferente.&lt;/p&gt;
&lt;h2&gt;Se construyeron para un modelo de conocimiento anterior a la IA&lt;/h2&gt;
&lt;p&gt;Las plataformas de documentación tradicionales se diseñaron en torno a un supuesto simple: si la página existe y se puede buscar en ella, el problema está resuelto en su mayor parte.&lt;/p&gt;
&lt;p&gt;Eso era suficientemente bueno cuando el usuario principal era un humano que abría un wiki, hojeaba la página y aplicaba su criterio. En ese modelo, el trabajo de la plataforma consistía en facilitar la autoría y la navegación.&lt;/p&gt;
&lt;p&gt;La IA cambia la descripción del trabajo.&lt;/p&gt;
&lt;p&gt;Ahora la plataforma no se limita a almacenar conocimientos para las personas. Está produciendo material fuente para sistemas que recuperan, clasifican, resumen y responden preguntas automáticamente.&lt;/p&gt;
&lt;p&gt;Eso introduce nuevos requisitos que las arquitecturas anteriores no priorizaban:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Qué contenidos son fiables en este momento?&lt;/li&gt;
&lt;li&gt;¿Qué páginas están obsoletas pero aún se pueden buscar?&lt;/li&gt;
&lt;li&gt;¿Qué secciones han cambiado recientemente?&lt;/li&gt;
&lt;li&gt;¿Qué versión lingüística es la actual?&lt;/li&gt;
&lt;li&gt;¿Qué contenidos son borradores, están archivados, son específicos de una región o son poco fiables?&lt;/li&gt;
&lt;li&gt;¿Qué documentos deberían excluirse por completo de las respuestas AI?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una plataforma que no se haya construido en torno a estas preguntas tiene que adaptarlas. Eso siempre es más difícil que diseñar para ellas desde el principio.&lt;/p&gt;
&lt;h2&gt;La fuerza heredada se convierte en un lastre heredado&lt;/h2&gt;
&lt;p&gt;Los productos establecidos tienen ventajas: distribución, ecosistema, marca, familiaridad con el cliente, integraciones y equipos que saben cómo hacer envíos. Pero esas mismas fortalezas pueden ralentizar el cambio estructural.&lt;/p&gt;
&lt;p&gt;¿Por qué? Porque las plataformas maduras conllevan compromisos.&lt;/p&gt;
&lt;p&gt;Los tienen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;años de decisiones acumuladas sobre productos&lt;/li&gt;
&lt;li&gt;enormes bases instaladas con flujos de trabajo existentes&lt;/li&gt;
&lt;li&gt;expectativas en torno a la compatibilidad con versiones anteriores&lt;/li&gt;
&lt;li&gt;plugins y extensiones que dependen de comportamientos antiguos&lt;/li&gt;
&lt;li&gt;modelos de datos optimizados para los casos de uso de ayer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando una plataforma como Confluence o Notion quiere añadir una capacidad realmente nueva, a menudo tiene que encajar esa capacidad alrededor del sistema existente en lugar de a través de él.&lt;/p&gt;
&lt;p&gt;Ése es el reto de la incumbencia: no sólo está construyendo el futuro, sino que está arrastrando el pasado consigo.&lt;/p&gt;
&lt;h2&gt;Añadir funciones de IA no es lo mismo que convertirse en nativo de IA&lt;/h2&gt;
&lt;p&gt;Muchas plataformas establecidas están ahora superponiendo la IA. Resúmenes. Ayuda a la escritura. Mejoras en la búsqueda. Interfaces de preguntas y respuestas. Confluence cuenta con &lt;a href=&quot;https://www.atlassian.com/platform/intelligence&quot;&gt;Atlassian Intelligence&lt;/a&gt;, Notion ha incorporado &lt;a href=&quot;https://www.notion.com/product/ai&quot;&gt;Notion AI&lt;/a&gt; y GitBook ha añadido &lt;a href=&quot;https://docs.gitbook.com/product-tour/searching-your-content/gitbook-ai&quot;&gt;AI-powered search&lt;/a&gt;. Se trata de funciones útiles. Algunas de ellas son buenas.&lt;/p&gt;
&lt;p&gt;Pero hay una diferencia significativa entre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;añadir características de IA a un producto de documentación&lt;/li&gt;
&lt;li&gt;construir un producto de documentación cuya arquitectura central asuma el consumo de IA desde el primer día&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El primer enfoque suele dar lugar a funciones de asistencia en los bordes. El segundo cambia los cimientos.&lt;/p&gt;
&lt;p&gt;Una plataforma de conocimiento nativa de la IA plantea preguntas de diseño diferentes desde el principio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿cómo deben estructurarse los documentos para que los sistemas puedan razonar sobre ellos con seguridad?&lt;/li&gt;
&lt;li&gt;¿cómo debe representarse la confianza?&lt;/li&gt;
&lt;li&gt;¿qué metadatos deben ser de primera clase y no opcionales?&lt;/li&gt;
&lt;li&gt;¿cómo debe degradarse la visibilidad de los contenidos obsoletos?&lt;/li&gt;
&lt;li&gt;¿cómo deben restringirse las respuestas cuando las fuentes subyacentes son débiles?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se trata de cuestiones de arquitectura, no de características.&lt;/p&gt;
&lt;h2&gt;Las plataformas frescas tienen una ventaja temporal&lt;/h2&gt;
&lt;p&gt;Aquí es donde las plataformas más nuevas pueden ganar, al menos durante un tiempo.&lt;/p&gt;
&lt;p&gt;Una plataforma nueva tiene la libertad de diseñar en torno a las limitaciones de hoy en lugar de los hábitos de ayer. No tiene que conservar una década de suposiciones sobre lo que es un documento o cómo debe comportarse un wiki. Puede tomar decisiones diferentes desde el principio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tratar la frescura como un concepto de primera clase&lt;/li&gt;
&lt;li&gt;hacer que la confianza en la fuente sea visible tanto para los humanos como para las máquinas&lt;/li&gt;
&lt;li&gt;almacenar metadatos más ricos sobre el estado del contenido&lt;/li&gt;
&lt;li&gt;integrar los flujos de trabajo multilingües en el modelo básico en lugar de añadirlos por añadidura&lt;/li&gt;
&lt;li&gt;Decidir que la búsqueda y la recuperación mediante inteligencia artificial se clasifiquen en función de la confianza y no sólo de la relevancia.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Que la libertad importa.&lt;/p&gt;
&lt;p&gt;En tecnología, los operadores tradicionales suelen ser más fuertes durante los periodos estables. Los nuevos competidores suelen ser más fuertes cuando el propio modelo está cambiando.&lt;/p&gt;
&lt;p&gt;La era de la IA es uno de esos cambios.&lt;/p&gt;
&lt;h2&gt;Por qué esto es especialmente duro para Confluence&lt;/h2&gt;
&lt;p&gt;Confluence es potente, pero procede de una visión del mundo más antigua. Se construyó en torno a &lt;a href=&quot;https://support.atlassian.com/confluence-cloud/docs/use-spaces-to-organize-your-work/&quot;&gt;espacios de equipo, páginas, navegación jerárquica&lt;/a&gt;, y un &lt;a href=&quot;https://marketplace.atlassian.com/&quot;&gt;modelo de empresa rico en plugins&lt;/a&gt;. Esas opciones tenían sentido. Siguen teniendo sentido para muchas organizaciones.&lt;/p&gt;
&lt;p&gt;Pero también significan que el producto arrastra mucha complejidad. Las plataformas empresariales rara vez consiguen reinventarse limpiamente. Tienen que negociar con su propia historia.&lt;/p&gt;
&lt;p&gt;Eso hace que la modernización sea más lenta. No imposible. Sólo más lenta.&lt;/p&gt;
&lt;p&gt;Cuando los requisitos de la era de la inteligencia artificial exigen metadatos más limpios, un modelado de confianza más explícito o una gobernanza de contenidos más orientada a las opiniones, un sistema construido para ofrecer la máxima flexibilidad a través de años de ampliaciones puede tener dificultades para moverse de forma cohesionada.&lt;/p&gt;
&lt;h2&gt;Por qué esto es especialmente delicado para Notion&lt;/h2&gt;
&lt;p&gt;Notion tiene un problema diferente. Parece más nuevo, más ligero y más flexible. Pero la flexibilidad también puede jugar en su contra.&lt;/p&gt;
&lt;p&gt;El punto fuerte de Notion es que &lt;a href=&quot;https://www.notion.com/product&quot;&gt;casi cualquier cosa puede convertirse en una página, una base de datos, una nota, un documento ligero o un espacio de colaboración&lt;/a&gt;. Esa flexibilidad es estupenda para los equipos. Es menos genial cuando se necesitan garantías sólidas sobre el significado del contenido, el estado en que se encuentra y si debe ser utilizado como fuente de confianza por un sistema de IA.&lt;/p&gt;
&lt;p&gt;Cuanto más libre sea una plataforma, más difícil será imponer una semántica fiable más adelante.&lt;/p&gt;
&lt;p&gt;Los sistemas de IA prosperan con estructura, metadatos explícitos y señales de confianza. Los espacios de trabajo flexibles de uso general a menudo necesitan mucha interpretación antes de que su contenido sea seguro para ese tipo de uso.&lt;/p&gt;
&lt;h2&gt;Nada de esto significa que estén condenados&lt;/h2&gt;
&lt;p&gt;Sería un análisis perezoso decir que Confluence y Notion no pueden adaptarse. Por supuesto que pueden.&lt;/p&gt;
&lt;p&gt;Cuentan con equipos inteligentes, importantes recursos y fuertes incentivos. Lanzarán más capacidades de IA. Mejorarán la recuperación, la ayuda a la autoría, los resúmenes, la gobernanza y los flujos de trabajo estructurados. Con el tiempo, es posible que acorten muchas distancias.&lt;/p&gt;
&lt;p&gt;Pero el momento es importante.&lt;/p&gt;
&lt;p&gt;Cuando se produce un cambio como éste, la ventaja suele pertenecer a quien esté dispuesto a reconstruir los supuestos más rápidamente. Las plataformas más nuevas pueden moverse con más coherencia porque no se están adaptando tanto. Eso les da una ventana.&lt;/p&gt;
&lt;p&gt;Puede que no sea una ventana permanente. Pero es real.&lt;/p&gt;
&lt;h2&gt;La siguiente fase de las plataformas de documentación&lt;/h2&gt;
&lt;p&gt;Es probable que la próxima generación de herramientas de documentación se juzgue menos por lo bien que permiten a la gente escribir páginas y más por lo bien que gestionan el conocimiento como un sistema de confianza.&lt;/p&gt;
&lt;p&gt;Eso significa que los ganadores probablemente harán bien cinco cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Modelarán la confianza de forma explícita.&lt;/li&gt;
&lt;li&gt;Distinguirán el conocimiento actual del conocimiento obsoleto.&lt;/li&gt;
&lt;li&gt;Manejarán la recuperación de la IA como una superficie central del producto, no como un añadido.&lt;/li&gt;
&lt;li&gt;Soportarán el conocimiento multilingüe y específico de la audiencia sin fragmentación.&lt;/li&gt;
&lt;li&gt;Proporcionarán a los equipos un mayor control sobre qué información se muestra, a quién y en qué condiciones.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Se trata de una categoría diferente a la del wiki clásico.&lt;/p&gt;
&lt;h2&gt;Por qué importan los nuevos comienzos&lt;/h2&gt;
&lt;p&gt;Hay momentos en el software en los que un producto de hoja en blanco tiene ventaja no porque los titulares sean incompetentes, sino porque la historia es cara.&lt;/p&gt;
&lt;p&gt;Este es uno de esos momentos.&lt;/p&gt;
&lt;p&gt;Una nueva plataforma puede decidir, desde el primer día, que los documentos no son sólo páginas. Son fuentes activas para humanos, agentes, sistemas de búsqueda y asistentes de IA. Esa asunción lo cambia todo aguas abajo.&lt;/p&gt;
&lt;p&gt;Confluence y Notion pueden llegar hasta ahí. Pero el camino es más largo porque tienen que transformar sistemas que estaban optimizados para otra época.&lt;/p&gt;
&lt;p&gt;Esa transformación lleva tiempo. Mientras tanto, las plataformas más nuevas tienen margen para definir cómo debe ser una infraestructura del conocimiento moderna.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La mayor ventaja de una plataforma nueva no es la novedad. Es liberarse de las viejas suposiciones justo en el momento en que esas suposiciones dejan de funcionar.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;em&gt;Este es un artículo de perspectiva. Las afirmaciones sobre los productos de la competencia se basan en la documentación y los anuncios de productos disponibles públicamente en marzo de 2026. Respetamos sinceramente tanto a Confluence como a Notion: son productos excelentes que prestan un buen servicio a millones de equipos.&lt;/em&gt;&lt;/p&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="ai" />
    <category term="platforms" />
    <category term="documentation" />
  </entry>
  <entry>
    <title>Dentro de la arquitectura Rasepi: Plugins, Action Guards y Pipelines</title>
    <link href="https://rasepi.com/es/blog/how-plugin-guardrail-and-pipeline-systems-work/" rel="alternate" type="text/html" />
    <id>https://rasepi.com/es/blog/how-plugin-guardrail-and-pipeline-systems-work/</id>
    <updated>2026-03-06T00:00:00Z</updated>
    <summary>Un recorrido técnico en profundidad sobre el funcionamiento real del sistema de plugins de Rasepi, la canalización de la guardia de acción y el motor de traducción a nivel de bloque, con código real de la base de código.</summary>
    <content type="html">&lt;p&gt;La mayoría de las plataformas de documentación hablan de &amp;quot;extensibilidad&amp;quot; como las aerolíneas hablan de &amp;quot;espacio para las piernas&amp;quot;. Técnicamente presente, prácticamente decepcionante. Yo quería que la arquitectura de Rasepi fuera realmente extensible sin volverse impredecible, así que construimos tres sistemas interconectados: &lt;strong&gt;plugins&lt;/strong&gt; para la capacidad, &lt;strong&gt;guardias de acción&lt;/strong&gt; para el control, y &lt;strong&gt;pipelines&lt;/strong&gt; para la ejecución determinista.&lt;/p&gt;
&lt;p&gt;Este artículo explica cómo funciona cada uno de ellos en nuestra base de código real.&lt;/p&gt;
&lt;p&gt;Arquitectura Rasepi: Plugins, guardias y tuberías trabajando juntos](/es/blog/img/architecture-pipeline.svg)&lt;/p&gt;
&lt;h2&gt;El sistema de plugins: modular por diseño&lt;/h2&gt;
&lt;p&gt;Cada plugin en Rasepi implementa &lt;code&gt;IPluginModule&lt;/code&gt;, una única interfaz que declara qué es el plugin, qué servicios necesita y qué rutas expone:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public interface IPluginModule
{
    PluginManifest Manifest { get; }
    void RegisterServices(IServiceCollection services);
    void MapRoutes(IEndpointRouteBuilder routes);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El &lt;code&gt;PluginManifest&lt;/code&gt; es puro dato. Describe el plugin sin ejecutar nada:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed class PluginManifest
{
    public required string Id { get; init; }
    public required string Name { get; init; }
    public required string Version { get; init; }
    public string Description { get; init; }
    public string Category { get; init; }
    public IReadOnlyDictionary&amp;lt;string, string&amp;gt; UiContributions { get; init; }
    public bool HasSettings { get; init; }
    public bool HasEndpoints { get; init; }
    public IReadOnlyList&amp;lt;string&amp;gt; Dependencies { get; init; }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Fíjese en &lt;code&gt;UiContributions&lt;/code&gt;. Ese diccionario mapea puntos de extensión del frontend a nombres de componentes, de modo que el frontend Vue sabe qué componentes de interfaz de usuario aporta cada plugin (un botón de la barra de herramientas, un panel de la barra lateral, una página de configuración).&lt;/p&gt;
&lt;h3&gt;El registro es una línea por plugin&lt;/h3&gt;
&lt;p&gt;Al inicio, registramos los plugins a través de una API fluida:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;var pluginRegistry = new PluginRegistry();

pluginRegistry
    .AddPlugin&amp;lt;WorkflowPluginModule&amp;gt;(builder.Services)
    .AddPlugin&amp;lt;RulesPluginModule&amp;gt;(builder.Services)
    .AddPlugin&amp;lt;RetentionPluginModule&amp;gt;(builder.Services)
    .AddPlugin&amp;lt;ClassificationPluginModule&amp;gt;(builder.Services);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cada llamada instancia el módulo, lo almacena en el registro y llama a &lt;code&gt;RegisterServices()&lt;/code&gt; para cablear sus dependencias. Tras la compilación de la aplicación, una única línea asigna todas las rutas de los plugins:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;app.MapPluginRoutes(pluginRegistry);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Bajo el capó, cada plugin obtiene un grupo de rutas con alcance en &lt;code&gt;/api/plugins/{pluginId}/&lt;/code&gt; con autorización aplicada automáticamente.&lt;/p&gt;
&lt;h3&gt;Ejemplo real: el plugin Workflow&lt;/h3&gt;
&lt;p&gt;He aquí el aspecto de un plugin real, el módulo Workflow &amp;amp; Approvals:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed class WorkflowPluginModule : IPluginModule
{
    public const string PluginId = &amp;quot;workflow&amp;quot;;

    public PluginManifest Manifest { get; } = new()
    {
        Id = PluginId,
        Name = &amp;quot;Workflow &amp;amp; Approvals&amp;quot;,
        Version = &amp;quot;1.0.0&amp;quot;,
        Description = &amp;quot;Adds approval workflows to entry publishing.&amp;quot;,
        Category = &amp;quot;Workflow&amp;quot;,
        HasSettings = true,
        HasEndpoints = true,
        UiContributions = new Dictionary&amp;lt;string, string&amp;gt;
        {
            [&amp;quot;entry.toolbar.publish&amp;quot;] = &amp;quot;WorkflowPublishButton&amp;quot;,
            [&amp;quot;entry.sidebar.status&amp;quot;]  = &amp;quot;WorkflowStatusPanel&amp;quot;,
            [&amp;quot;hub.admin.settings&amp;quot;]    = &amp;quot;WorkflowHubSettings&amp;quot;,
        }
    };

    public void RegisterServices(IServiceCollection services)
    {
        services.AddScoped&amp;lt;IWorkflowService, WorkflowService&amp;gt;();
        services.AddScoped&amp;lt;IActionGuard, WorkflowPublishGuard&amp;gt;();
    }

    public void MapRoutes(IEndpointRouteBuilder routes)
    {
        WorkflowEndpoints.Map(routes);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La plataforma central nunca hace referencia a &lt;code&gt;WorkflowService&lt;/code&gt; o &lt;code&gt;WorkflowPublishGuard&lt;/code&gt; directamente. Los descubre a través del contenedor DI. Esa es la clave del acoplamiento cero. La aplicación core nunca toca el código de los plugins.&lt;/p&gt;
&lt;h2&gt;Guardias de acción: la capa de control&lt;/h2&gt;
&lt;p&gt;Los plugins añaden capacidad. Los guardianes de acción deciden si esa capacidad, o cualquier acción del núcleo, tiene permiso para proceder. Son validadores síncronos que interceptan las operaciones antes de su ejecución.&lt;/p&gt;
&lt;p&gt;Flujo de evaluación de guardias de acción](/es/blog/img/action-guard-flow.svg)&lt;/p&gt;
&lt;p&gt;La interfaz es deliberadamente mínima:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public interface IActionGuard
{
    string PluginId { get; }
    string? ActionName { get; }  // null means guard ALL actions

    Task&amp;lt;ActionGuardResult&amp;gt; EvaluateAsync(
        ActionGuardContext context,
        IServiceProvider services,
        CancellationToken ct = default);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cuando &lt;code&gt;ActionName&lt;/code&gt; es &lt;code&gt;null&lt;/code&gt;, la guardia se ejecuta para cada acción. Cuando se establece en algo como &lt;code&gt;&amp;quot;Entry.Publish&amp;quot;&lt;/code&gt;, sólo intercepta esa acción específica.&lt;/p&gt;
&lt;h3&gt;Los contratos de contexto y resultado&lt;/h3&gt;
&lt;p&gt;Cada guardia recibe un contexto tipificado con el nombre de la acción, el arrendatario, el usuario, la entidad y una bolsa de propiedades:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed record ActionGuardContext(
    string ActionName,
    Guid TenantId,
    Guid UserId,
    Guid EntityId,
    IReadOnlyDictionary&amp;lt;string, object?&amp;gt; Properties)
{
    public T? Get&amp;lt;T&amp;gt;(string key) =&amp;gt;
        Properties.TryGetValue(key, out var v) &amp;amp;&amp;amp; v is T typed
            ? typed : default;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Y cada guardia devuelve un resultado predecible: permitir, denegar o permitir-con-modificaciones:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed record ActionGuardResult
{
    public bool IsAllowed { get; init; }
    public string? ReasonCode { get; init; }
    public string? Message { get; init; }
    public IReadOnlyDictionary&amp;lt;string, object?&amp;gt;? Modifications { get; init; }

    public static ActionGuardResult Allow() =&amp;gt;
        new() { IsAllowed = true };

    public static ActionGuardResult Deny(
        string reasonCode, string message) =&amp;gt;
        new() { IsAllowed = false, ReasonCode = reasonCode, Message = message };
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El campo &lt;code&gt;Modifications&lt;/code&gt; es importante. Un guardia puede aprobar una acción pero reescribir parte del contenido (por ejemplo, redactar secretos antes de publicarlos).&lt;/p&gt;
&lt;h3&gt;Nombres canónicos de las acciones&lt;/h3&gt;
&lt;p&gt;Definimos todas las acciones interceptables como constantes de cadena para que no haya ambigüedad sobre a qué puede apuntar un guardia:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public static class ActionNames
{
    public static class Entry
    {
        public const string Create  = &amp;quot;Entry.Create&amp;quot;;
        public const string Save    = &amp;quot;Entry.Save&amp;quot;;
        public const string Publish = &amp;quot;Entry.Publish&amp;quot;;
        public const string Delete  = &amp;quot;Entry.Delete&amp;quot;;
        public const string Archive = &amp;quot;Entry.Archive&amp;quot;;
        public const string Renew   = &amp;quot;Entry.Renew&amp;quot;;
    }

    public static class Hub
    {
        public const string Create = &amp;quot;Hub.Create&amp;quot;;
        public const string Delete = &amp;quot;Hub.Delete&amp;quot;;
        public const string TransferOwnership = &amp;quot;Hub.TransferOwnership&amp;quot;;
    }

    public static class Translation
    {
        public const string Create  = &amp;quot;Translation.Create&amp;quot;;
        public const string Publish = &amp;quot;Translation.Publish&amp;quot;;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Ejemplo real: bloquear la publicación sin aprobación&lt;/h3&gt;
&lt;p&gt;El complemento de flujo de trabajo registra un guardia que intercepta &lt;code&gt;Entry.Publish&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed class WorkflowPublishGuard : IActionGuard
{
    public string PluginId =&amp;gt; WorkflowPluginModule.PluginId;
    public string? ActionName =&amp;gt; ActionNames.Entry.Publish;

    public async Task&amp;lt;ActionGuardResult&amp;gt; EvaluateAsync(
        ActionGuardContext context,
        IServiceProvider services,
        CancellationToken ct = default)
    {
        var db = services.GetRequiredService&amp;lt;RasepiDbContext&amp;gt;();
        var entry = await db.Entries
            .AsNoTracking()
            .FirstOrDefaultAsync(e =&amp;gt; e.Id == context.EntityId, ct);

        if (entry is null)
            return ActionGuardResult.Allow();

        var workflowService = services.GetRequiredService&amp;lt;IWorkflowService&amp;gt;();
        var check = await workflowService
            .CheckPublishAllowedAsync(entry.Id, entry.HubId);

        if (check.IsAllowed)
            return ActionGuardResult.Allow();

        return ActionGuardResult.Deny(
            &amp;quot;workflow.approval_required&amp;quot;,
            check.Message ?? &amp;quot;Approval required before publishing.&amp;quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;La plataforma central no sabe nada acerca de los flujos de trabajo de aprobación. Simplemente llama a &lt;code&gt;Entry.Publish&lt;/code&gt; a través de la tubería, y el guardia lo bloquea si el flujo de trabajo no se ha completado.&lt;/p&gt;
&lt;h2&gt;La canalización de acciones: donde todo converge&lt;/h2&gt;
&lt;p&gt;El &lt;code&gt;ActionPipeline&lt;/code&gt; es la única ruta de ejecución para todas las operaciones protegidas. Resuelve qué guardias se aplican, las evalúa y bloquea o ejecuta la acción.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed class ActionPipeline : IActionPipeline
{
    public async Task&amp;lt;ActionPipelineResult&amp;gt; ExecuteAsync(
        string actionName,
        ActionGuardContext context,
        Func&amp;lt;Task&amp;gt; action,
        CancellationToken ct = default)
    {
        var result = await EvaluateAsync(actionName, context, ct);
        if (!result.IsAllowed) return result;

        await action();  // All guards passed — execute

        return result;   // Return modifications for caller
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El método &lt;code&gt;EvaluateAsync&lt;/code&gt; hace el trabajo pesado:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task&amp;lt;ActionPipelineResult&amp;gt; EvaluateAsync(
    string actionName,
    ActionGuardContext context,
    CancellationToken ct = default)
{
    // 1. Which plugins are enabled for this tenant?
    var enabledPlugins = await _resolver.GetEnabledPluginIdsAsync();

    // 2. Which guards match this action?
    var applicable = _guards
        .Where(g =&amp;gt; enabledPlugins.Contains(g.PluginId))
        .Where(g =&amp;gt; g.ActionName == null || g.ActionName == actionName)
        .ToList();

    // 3. Evaluate each guard
    var denials = new List&amp;lt;ActionGuardResult&amp;gt;();
    var modifications = new List&amp;lt;ActionGuardResult&amp;gt;();

    foreach (var guard in applicable)
    {
        try
        {
            var guardResult = await guard.EvaluateAsync(context, _services, ct);
            if (!guardResult.IsAllowed)
                denials.Add(guardResult);
            else if (guardResult.Modifications?.Count &amp;gt; 0)
                modifications.Add(guardResult);
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, &amp;quot;Guard threw. Treating as Allow.&amp;quot;);
        }
    }

    // 4. Any denial blocks the whole action
    if (denials.Count &amp;gt; 0)
        return ActionPipelineResult.Blocked(denials);

    return modifications.Count &amp;gt; 0
        ? ActionPipelineResult.Allowed(modifications)
        : ActionPipelineResult.Allowed();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tres importantes decisiones de diseño aquí:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Resolución por inquilino.&lt;/strong&gt; El &lt;code&gt;TenantPluginResolver&lt;/code&gt; comprueba qué plugins tiene instalados y habilitados cada inquilino. Una guardia para un plugin deshabilitado nunca se ejecuta.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Todo-debe-pasar.&lt;/strong&gt; Si alguna guarda deniega, la acción se bloquea. Esta es una postura de seguridad deliberada.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guard errors fail open.&lt;/strong&gt; Si un guard lanza una excepción, se registra y se trata como &lt;code&gt;Allow()&lt;/code&gt;. Esto evita que un plugin roto bloquee toda la plataforma.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Resolución de plugins por inquilino&lt;/h3&gt;
&lt;p&gt;La resolución consulta la tabla &lt;code&gt;TenantPluginInstallations&lt;/code&gt; (automáticamente delimitada al inquilino actual por los filtros de consulta globales de EF):&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public sealed class TenantPluginResolver : ITenantPluginResolver
{
    public async Task&amp;lt;IReadOnlySet&amp;lt;string&amp;gt;&amp;gt; GetEnabledPluginIdsAsync(
        CancellationToken ct = default)
    {
        if (_cache is not null) return _cache;

        var ids = await _db.TenantPluginInstallations
            .Where(i =&amp;gt; i.IsEnabled)
            .Select(i =&amp;gt; i.PluginId)
            .ToListAsync(ct);

        _cache = ids.ToHashSet();
        return _cache;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Efectos secundarios basados en eventos&lt;/h2&gt;
&lt;p&gt;Las acciones son síncronas. Los efectos secundarios no lo son. Una vez completada una acción, el servicio publica un evento de dominio:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;await _eventPublisher.PublishAsync(
    EventNames.Entry.Created, entry.Id, new { entry.OriginalLanguage });
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Los eventos se ponen en cola en un canal en memoria y son procesados por un &lt;code&gt;EventConsumerWorker&lt;/code&gt; en segundo plano. El trabajador enruta los eventos a múltiples sistemas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Seguimiento de la actividad.&lt;/strong&gt; Registra quién hizo qué, cuándo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Facturación de traducciones.&lt;/strong&gt; Rastrea los costes por proveedor&lt;/li&gt;
&lt;li&gt;Cualquier plugin puede suscribirse a los eventos del dominio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los manejadores de eventos del plugin implementan &lt;code&gt;IPluginEventHandler&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public interface IPluginEventHandler
{
    string PluginId { get; }
    IReadOnlyList&amp;lt;string&amp;gt; SubscribedEvents { get; }

    Task HandleAsync(
        string eventName, Guid entityId,
        Guid? tenantId, Guid? userId,
        string payloadJson, IServiceProvider services,
        CancellationToken ct = default);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El trabajador sólo invoca manejadores cuyo plugin está habilitado para el tenant. Esto significa que los efectos secundarios del plugin A nunca se filtran a un tenant que sólo tenga instalado el plugin B.&lt;/p&gt;
&lt;h2&gt;El motor de traducción a nivel de bloque&lt;/h2&gt;
&lt;p&gt;Aquí es donde la arquitectura da sus frutos de forma más visible.&lt;/p&gt;
&lt;p&gt;Traducción a nivel de bloque: sólo se retraducen los bloques modificados](/es/blog/img/block-translation.svg)&lt;/p&gt;
&lt;p&gt;Las plataformas tradicionales traducen documentos enteros. Nosotros traducimos &lt;strong&gt;bloques&lt;/strong&gt; individuales: párrafos, encabezados, elementos de listas. Cuando un usuario edita un párrafo en un documento de 50 bloques, sólo es necesario volver a traducir ese párrafo. Ésa es la fuente de nuestro 94% de ahorro de costes.&lt;/p&gt;
&lt;h3&gt;Cómo se crean los bloques a partir de TipTap JSON&lt;/h3&gt;
&lt;p&gt;Cuando un usuario guarda un documento, el editor TipTap envía JSON de la siguiente forma:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;type&amp;quot;: &amp;quot;doc&amp;quot;,
  &amp;quot;content&amp;quot;: [
    {
      &amp;quot;type&amp;quot;: &amp;quot;paragraph&amp;quot;,
      &amp;quot;attrs&amp;quot;: { &amp;quot;blockId&amp;quot;: &amp;quot;a1b2c3d4-...&amp;quot; },
      &amp;quot;content&amp;quot;: [{ &amp;quot;type&amp;quot;: &amp;quot;text&amp;quot;, &amp;quot;text&amp;quot;: &amp;quot;Hello world&amp;quot; }]
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El &lt;code&gt;BlockTranslationService&lt;/code&gt; analiza este JSON y crea registros &lt;code&gt;EntryBlock&lt;/code&gt; individuales:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task&amp;lt;List&amp;lt;EntryBlock&amp;gt;&amp;gt; CreateBlocksFromDocumentAsync(
    Guid entryId, string language, string contentJson,
    int version, Guid userId)
{
    var doc = JsonDocument.Parse(contentJson);
    var content = doc.RootElement.GetProperty(&amp;quot;content&amp;quot;);

    int position = 0;
    foreach (var node in content.EnumerateArray())
    {
        var blockType = node.GetProperty(&amp;quot;type&amp;quot;).GetString();
        var blockJson = JsonSerializer.Serialize(node);

        // Strip metadata attrs before hashing
        var hashInput = StripBlockMetaAttrs(blockJson);

        var block = new EntryBlock
        {
            Id = ExtractOrGenerateBlockId(node),
            EntryId = entryId,
            Language = language,
            Position = position++,
            BlockType = blockType,
            ContentJson = blockJson,
            ContentHash = CalculateContentHash(hashInput),
            IsNoTranslate = ExtractNoTranslateFlag(node),
            Version = version,
        };

        _context.EntryBlocks.Add(block);
    }

    await _context.SaveChangesAsync();
    return blocks;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;hash SHA256 para detección de caducidad&lt;/h3&gt;
&lt;p&gt;El hash del contenido es el núcleo de la detección de caducidad. Hacemos un hash del contenido del bloque (después de eliminar los atributos de metadatos como &lt;code&gt;blockId&lt;/code&gt; y &lt;code&gt;deleted&lt;/code&gt;) utilizando SHA256:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;private string CalculateContentHash(string content)
{
    using var sha256 = SHA256.Create();
    var hashBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(content));
    return Convert.ToHexString(hashBytes);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cuando cambia un bloque fuente, cambia su hash. El sistema compara entonces el &lt;code&gt;SourceContentHash&lt;/code&gt; de cada bloque de traducción con el hash de origen actual, y las discrepancias se marcan como &lt;code&gt;Stale&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task MarkTranslationsAsStaleAsync(List&amp;lt;Guid&amp;gt; changedBlockIds)
{
    var affected = await _context.TranslationBlocks
        .Where(t =&amp;gt; changedBlockIds.Contains(t.SourceBlockId))
        .ToListAsync();

    foreach (var translation in affected)
    {
        translation.Status = TranslationStatus.Stale;
        translation.UpdatedAt = DateTime.UtcNow;
    }

    await _context.SaveChangesAsync();
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Adaptación de la estructura&lt;/h3&gt;
&lt;p&gt;Los traductores pueden cambiar los tipos de bloque de un idioma a otro. Una lista con viñetas en inglés puede convertirse en una lista numerada en alemán, una preferencia cultural. El sistema hace un seguimiento de esto:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;var translation = new TranslationBlock
{
    SourceBlockId = sourceBlockId,
    Language = targetLanguage,
    BlockType = translatedBlockType,
    SourceBlockType = sourceBlock.BlockType,
    IsStructureAdapted = translatedBlockType != sourceBlock.BlockType,
    SourceContentHash = sourceBlock.ContentHash,
    Status = TranslationStatus.UpToDate,
};
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Proveedores de traducción como plugins&lt;/h3&gt;
&lt;p&gt;Los servicios de traducción externos (DeepL, Google Translate, etc.) se conectan a través de &lt;code&gt;ITranslationProviderPlugin&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public interface ITranslationProviderPlugin : IRasepiPlugin
{
    string[] GetSupportedLanguages();

    Task&amp;lt;string&amp;gt; TranslateAsync(
        string text, string sourceLanguage, string targetLanguage);

    Task&amp;lt;TranslationBatchResult&amp;gt; TranslateBatchAsync(
        Dictionary&amp;lt;string, string&amp;gt; texts,
        string sourceLanguage, string targetLanguage);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El método por lotes recibe un diccionario de identificadores de bloque a contenido, los traduce todos y devuelve las traducciones con un recuento de caracteres facturados. Como sólo enviamos los bloques antiguos, no todo el documento, los costes se mantienen al mínimo.&lt;/p&gt;
&lt;h2&gt;Aislamiento del inquilino: la red de seguridad invisible&lt;/h2&gt;
&lt;p&gt;Todos los sistemas descritos anteriormente funcionan dentro de un estricto aislamiento de inquilinos.&lt;/p&gt;
&lt;p&gt;El &lt;code&gt;TenantContextMiddleware&lt;/code&gt; resuelve el inquilino a partir del JWT en cada solicitud y verifica la pertenencia:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;public async Task InvokeAsync(
    HttpContext context, TenantContext tenantContext, RasepiDbContext db)
{
    var tenantIdClaim = context.User.FindFirstValue(&amp;quot;tenant_id&amp;quot;);
    var userIdClaim = context.User.FindFirstValue(ClaimTypes.NameIdentifier);

    // Populate scoped context
    tenantContext.TenantId = Guid.Parse(tenantIdClaim);
    tenantContext.UserId = Guid.Parse(userIdClaim);

    // Verify membership — fail closed
    var membership = await db.TenantMemberships
        .Where(m =&amp;gt; m.TenantId == tenantContext.TenantId
                  &amp;amp;&amp;amp; m.UserId == tenantContext.UserId)
        .FirstOrDefaultAsync();

    if (membership == null)
    {
        context.Response.StatusCode = 401;
        return;  // No membership = no access
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Los filtros de consulta globales de Entity Framework garantizan que, incluso si un desarrollador se olvida de filtrar por inquilino, la capa de base de datos lo haga automáticamente:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-csharp&quot;&gt;modelBuilder.Entity&amp;lt;Hub&amp;gt;()
    .HasQueryFilter(h =&amp;gt; h.TenantId == _tenantContext.TenantId);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;El resultado: &lt;code&gt;db.Hubs.ToListAsync()&lt;/code&gt; siempre devuelve sólo los centros del inquilino actual. Las fugas de datos requieren eludir activamente el filtro de consulta, lo que está prohibido en nuestra base de código.&lt;/p&gt;
&lt;h2&gt;La imagen completa&lt;/h2&gt;
&lt;p&gt;Cuando un usuario hace clic en &amp;quot;Publicar&amp;quot; en una entrada, esto es lo que ocurre:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;La solicitud entra.&lt;/strong&gt; La autenticación valida el JWT, &lt;code&gt;TenantContextMiddleware&lt;/code&gt; resuelve y verifica el arrendatario.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El controlador llama a la tubería.&lt;/strong&gt; &lt;code&gt;IActionPipeline.ExecuteAsync(&amp;quot;Entry.Publish&amp;quot;, context, action)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pipeline resuelve guardias.&lt;/strong&gt; Consulta qué plugins tiene habilitados el inquilino, selecciona las guardias aplicables.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Las guardias evalúan.&lt;/strong&gt; La guardia Workflow comprueba las aprobaciones, la guardia Retention comprueba la política, la guardia Rules valida el contenido. ¿Todos pasan? La entrada se publica.&lt;/li&gt;
&lt;li&gt;**Se pone en cola el evento &lt;code&gt;Entry.Published&lt;/code&gt;. Un trabajador en segundo plano registra la actividad, actualiza la facturación de la traducción y llama a los controladores de eventos del plugin.&lt;/li&gt;
&lt;li&gt;**Se identifican los bloques obsoletos para su retraducción.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cada capa hace su trabajo. Ninguna capa se mete en otra. Esa es la arquitectura.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;No construimos esto porque la extensibilidad esté de moda. Lo construimos porque una plataforma de documentación que no pueda adaptarse al flujo de trabajo de cada equipo acabará siendo sustituida por otra que sí pueda hacerlo. Y una plataforma que se adapta sin guardarraíles acabará rompiendo algo que importa.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <author><name>Tim Cadenbach</name></author>
    <category term="architecture" />
    <category term="plugins" />
    <category term="ai" />
  </entry>
</feed>
