Traducir contenido de agent-almanac (habilidades, agentes, equipos, guías) a un idioma objetivo preservando bloques de código, IDs y estructura técnica. Cubre scaffolding, configuración de frontmatter, traducción de prosa, preservación de código y seguimiento de frescura. Usar al localizar contenido para un nuevo idioma, actualizar traducciones obsoletas después de cambios en la fuente, o traducir por lotes un dominio.
Traducir contenido fuente en inglés a un idioma objetivo, preservando la precisión técnica y la integridad estructural.
skills, agents, teams o guidescreate-r-package)de, zh-CN, ja, es)1.1. Determinar la ruta del archivo fuente:
skills/<id>/SKILL.mdagents/<id>.mdteams/<id>.mdguides/<id>.md1.2. Leer el archivo fuente completo para comprender el contexto, estructura y contenido.
1.3. Identificar las secciones que deben permanecer en inglés:
name, tools, model, priority, entradas de lista skills, allowed-tools, tags, domain, language)<!-- CONFIG:START --> / <!-- CONFIG:END --> en equiposEsperado: Comprensión completa del contenido fuente con separación mental clara entre prosa traducible y contenido técnico preservado.
En caso de fallo: Si el archivo fuente no se encuentra, verificar que el ID existe en el registro. Verificar errores tipográficos en el tipo de contenido o ID.
2.1. Ejecutar el script de scaffolding:
npm run translate:scaffold -- <content-type> <id> <locale>
2.2. Si el archivo ya existe, leerlo para verificar si necesita actualización (obsoleto) o ya está actualizado.
2.3. Verificar que el archivo scaffolded tenga los campos de frontmatter de traducción:
locale — coincide con el idioma objetivosource_locale — ensource_commit — hash git corto actualtranslator — cadena de atribucióntranslation_date — fecha de hoyEsperado: Archivo scaffolded en i18n/<locale>/<content-type>/<id>/SKILL.md (o .md para otros tipos) con frontmatter correcto.
En caso de fallo: Si el script de scaffold falla, crear el directorio manualmente con mkdir -p y copiar el archivo fuente. Agregar los campos de frontmatter manualmente.
3.1. Traducir el campo description en el frontmatter YAML al idioma objetivo.
3.2. Para habilidades, la descripción está dentro del frontmatter de nivel superior. Para agentes/equipos/guías, también está en el frontmatter de nivel superior.
3.3. Mantener la traducción concisa — igualar la longitud y estilo del original.
Esperado: El campo de descripción contiene una traducción idiomática que transmite con precisión el significado original.
En caso de fallo: Si la descripción es ambigua, mantenerla más cercana a la traducción literal en lugar de arriesgarse a una mala interpretación.
4.1. Traducir todo el contenido de prosa sección por sección:
4.2. Preservar estos elementos exactamente como están:
comillas invertidas)**Esperado:** y **En caso de fallo:** (traducir la etiqueta, mantener la estructura)4.3. Para habilidades, traducir los nombres de sección estandarizados:
4.4. Para agentes, traducir:
4.5. Para equipos, traducir:
4.6. Para guías, traducir:
Esperado: Todas las secciones de prosa traducidas idiomáticamente. Bloques de código idénticos a la fuente en inglés. Las referencias cruzadas usan IDs en inglés.
En caso de fallo: Si hay incertidumbre sobre un término técnico, mantener el término en inglés con una traducción entre paréntesis. Ejemplo: "Área de preparación (Staging Area)" en español.
5.1. Confirmar que el archivo traducido tiene el mismo número de secciones que la fuente.
5.2. Para habilidades, verificar que todas las secciones requeridas están presentes:
name, description, allowed-tools, metadata5.3. Verificar que los bloques de código son idénticos a la fuente en inglés (hacer diff de los bloques delimitados).
5.4. Verificar el conteo de líneas: las habilidades deben ser de 500 líneas o menos.
5.5. Verificar que el campo name coincide exactamente con la fuente en inglés (es el ID, nunca se traduce).
Esperado: Archivo traducido estructuralmente válido que pasa la validación.
En caso de fallo: Comparar sección por sección con la fuente en inglés. Restaurar cualquier sección faltante.
5.5.1. Muestrea 3 párrafos de prosa del cuerpo del archivo traducido. Elige párrafos de diferentes secciones — no encabezados, no bloques de código, no metadatos frontales.
5.5.2. Confirma que cada párrafo muestreado está escrito en el idioma de destino, no en inglés.
5.5.3. Si algún párrafo muestreado todavía está en inglés, la traducción está incompleta. Vuelve al Paso 4 y traduce la prosa en inglés restante antes de continuar.
Esperado: Los 3 párrafos de prosa muestreados están en el idioma de destino, confirmando que el texto del cuerpo ha sido traducido, no solo los encabezados y los metadatos frontales.
En caso de fallo: Identifica qué secciones todavía contienen prosa en inglés. Tradúcelas antes de continuar con el Paso 6.
6.1. Escribir el contenido traducido completo en la ruta objetivo usando la herramienta Write o Edit.
6.2. Verificar que el archivo existe en la ruta esperada:
i18n/<locale>/skills/<id>/SKILL.mdi18n/<locale>/agents/<id>.mdi18n/<locale>/teams/<id>.mdi18n/<locale>/guides/<id>.mdEsperado: Archivo traducido escrito en disco en la ruta correcta.
En caso de fallo: Verificar que el directorio existe. Crear con mkdir -p si es necesario.
i18n/<locale>/<type>/<id>name coincide exactamente con la fuente en ingléslocale coincide con el idioma objetivosource_commit está configurado con un hash git corto válidonpm run validate:translations no reporta problemas para este archivoname: El campo name es el ID canónico. Nunca traducirlo.metadata.tags permanecen en inglés para consistencia entre idiomas.source_commit: Sin este campo, el seguimiento de frescura se rompe. Siempre incluirlo.