<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>DOCX on KnightLi Blog</title>
        <link>https://www.knightli.com/es/tags/docx/</link>
        <description>Recent content in DOCX on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Sat, 04 Apr 2026 11:00:00 +0800</lastBuildDate><atom:link href="https://www.knightli.com/es/tags/docx/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Análisis de la habilidad del agente docx de Anthropic: características, estructura del código, uso y advertencias</title>
        <link>https://www.knightli.com/es/2026/04/04/analyze-docx-agent-skill/</link>
        <pubDate>Sat, 04 Apr 2026 11:00:00 +0800</pubDate>
        
        <guid>https://www.knightli.com/es/2026/04/04/analyze-docx-agent-skill/</guid>
        <description>&lt;p&gt;&lt;code&gt;skills/docx&lt;/code&gt; de Anthropic es esencialmente una especificación de flujo de trabajo más un conjunto de herramientas de script para manejar documentos de Word de manera más confiable con IA.&lt;br&gt;
No solo le dice a un modelo que &amp;ldquo;genere un &lt;code&gt;.docx&lt;/code&gt;&amp;rdquo;. En cambio, divide el trabajo del documento en rutas explícitas: crear, leer, editar archivos existentes, manejar cambios rastreados, agregar comentarios, convertir formatos y validar la estructura OOXML.&lt;/p&gt;
&lt;p&gt;Si lo reducimos a una línea:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Trata &lt;code&gt;.docx&lt;/code&gt; como restricciones de compatibilidad ZIP + XML + Office, no como un cuadro negro.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;qué-resuelve-esta-habilidad&#34;&gt;Qué resuelve esta habilidad
&lt;/h2&gt;&lt;p&gt;Cuando los modelos de uso general manejan archivos de Word, a menudo vemos los mismos patrones de falla:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Generan texto, pero no un &lt;code&gt;.docx&lt;/code&gt; estructuralmente válido.&lt;/li&gt;
&lt;li&gt;Rompen OOXML al editar documentos existentes.&lt;/li&gt;
&lt;li&gt;No saben qué partes XML actualizar para comentarios o seguimiento de cambios.&lt;/li&gt;
&lt;li&gt;La salida se abre en una aplicación pero se comporta de manera inconsistente en Word, LibreOffice y Google Docs.&lt;/li&gt;
&lt;li&gt;Carecen de una ruta clara sobre cuándo usar &lt;code&gt;pandoc&lt;/code&gt; versus desempaquetar/editar/reempaquetar.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El valor de esta habilidad es que adelanta esas decisiones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilice &lt;code&gt;pandoc&lt;/code&gt; o desempaquetado para lectura y análisis.&lt;/li&gt;
&lt;li&gt;Utilice &lt;code&gt;docx-js&lt;/code&gt; para crear nuevos archivos &lt;code&gt;.docx&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilice &amp;ldquo;desempaquetar -&amp;gt; editar XML -&amp;gt; recomprimir -&amp;gt; validar&amp;rdquo; para los documentos existentes.&lt;/li&gt;
&lt;li&gt;Utilice scripts dedicados para realizar seguimiento de cambios/comentarios/operaciones sensibles a esquemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese enfoque funciona porque los problemas de Word generalmente no tienen que ver con la calidad de la redacción. Se trata de corrección estructural y compatibilidad.&lt;/p&gt;
&lt;h2 id=&#34;directorio-y-estructura-de-código&#34;&gt;Directorio y estructura de código
&lt;/h2&gt;&lt;p&gt;Esta habilidad se puede entender en cuatro capas.&lt;/p&gt;
&lt;h3 id=&#34;1-capa-de-orientación-skillmd&#34;&gt;1. Capa de orientación: &lt;code&gt;SKILL.md&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;SKILL.md&lt;/code&gt; hace dos trabajos importantes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Define las condiciones de activación.&lt;br&gt;
Si una solicitud menciona Word, &lt;code&gt;.docx&lt;/code&gt;, comentarios, seguimiento de cambios, TOC, números de página o formato de documento pulido, se debe activar esta habilidad.&lt;/li&gt;
&lt;li&gt;Define rutas de ejecución.&lt;br&gt;
Los diferentes tipos de tareas se asignan a diferentes cadenas de herramientas, en lugar de improvisar cada ejecución.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;También captura reglas prácticas de compatibilidad, por ejemplo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;docx-js&lt;/code&gt; por defecto es A4, no Carta estadounidense.&lt;/li&gt;
&lt;li&gt;El tamaño de la página horizontal debe seguir las normas internas de &lt;code&gt;docx-js&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Las listas no deben crearse a partir de viñetas Unicode manuales.&lt;/li&gt;
&lt;li&gt;El ancho de la tabla necesita ajustes coordinados a nivel de tabla y celda.&lt;/li&gt;
&lt;li&gt;Se requiere &amp;ldquo;tipo&amp;rdquo; de imagen.&lt;/li&gt;
&lt;li&gt;Los archivos generados deben ser validados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es una fuerte señal de que el objetivo no es simplemente &amp;ldquo;generar algo&amp;rdquo;, sino &amp;ldquo;generar algo que sea sólido&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;2-capa-de-paquete-de-office-scriptsoffice&#34;&gt;2. Capa de paquete de Office: &lt;code&gt;scripts/office/*&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Esta capa trata &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt; como paquetes Open XML.&lt;/p&gt;
&lt;h3 id=&#34;desempaquetarpy&#34;&gt;&lt;code&gt;desempaquetar.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script descomprime archivos y prepara XML para una edición más segura:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extrae el contenido del paquete ZIP&lt;/li&gt;
&lt;li&gt;Imprime XML y &lt;code&gt;.rels&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Opcionalmente ejecuta &lt;code&gt;merge_runs&lt;/code&gt; para DOCX&lt;/li&gt;
&lt;li&gt;Opcionalmente ejecuta &lt;code&gt;simplify_redlines&lt;/code&gt; para DOCX&lt;/li&gt;
&lt;li&gt;Escapa de comillas tipográficas a entidades XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Entonces no se trata sólo de descompresión. Normaliza el contenido en una forma fácil de editar.&lt;/p&gt;
&lt;h3 id=&#34;paquetepy&#34;&gt;&lt;code&gt;paquete.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script vuelve a empaquetar un directorio en &lt;code&gt;.docx/.pptx/.xlsx&lt;/code&gt;.&lt;br&gt;
Antes del envasado, puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ejecutar validación y reparación automática.&lt;/li&gt;
&lt;li&gt;Condensar el formato XML de forma segura&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si se proporciona &amp;ldquo;&amp;ndash;original&amp;rdquo;, se compara y valida con el contexto de origen.&lt;br&gt;
Eso es importante porque &amp;ldquo;reempaquetado exitosamente&amp;rdquo; no es igual a &amp;ldquo;semánticamente seguro&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;validarpy&#34;&gt;&lt;code&gt;validar.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Ésta es la puerta de la calidad. Comprueba:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XML bien formado&lt;/li&gt;
&lt;li&gt;Corrección del espacio de nombres&lt;/li&gt;
&lt;li&gt;Restricciones de identificación únicas&lt;/li&gt;
&lt;li&gt;Consistencia de relación/tipo de contenido&lt;/li&gt;
&lt;li&gt;Cumplimiento de XSD&lt;/li&gt;
&lt;li&gt;Reglas de preservación de espacios en blanco.&lt;/li&gt;
&lt;li&gt;Restricciones de inserción/eliminación/marcador de comentarios&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para el trabajo DOCX, este es un componente principal, no un extra opcional.&lt;/p&gt;
&lt;h3 id=&#34;sofficepy&#34;&gt;&lt;code&gt;soffice.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este asistente envuelve la ejecución de LibreOffice para entornos restringidos/aislados.&lt;br&gt;
Configura &lt;code&gt;SAL_USE_VCLPLUGIN=svp&lt;/code&gt; y puede aplicar una corrección para las limitaciones del socket AF_UNIX cuando sea necesario.&lt;/p&gt;
&lt;p&gt;Eso nos dice que la habilidad está diseñada para flujos de trabajo de agentes automatizados, no solo para uso manual local.&lt;/p&gt;
&lt;h2 id=&#34;3-capa-específica-de-word-comentarios-revisiones-y-líneas-rojas&#34;&gt;3. Capa específica de Word: comentarios, revisiones y líneas rojas
&lt;/h2&gt;&lt;h3 id=&#34;comentariopy&#34;&gt;&lt;code&gt;comentario.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script agrega comentarios a DOCX, incluida la configuración de paquetes requerida en varias partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;palabra/comentarios.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtendido.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;marcadores de rango de comentarios en &lt;code&gt;document.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;declaraciones en &lt;code&gt;[Content_Types].xml&lt;/code&gt; y &lt;code&gt;document.xml.rels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si las partes de comentarios aún no existen, puede inicializar plantillas y relaciones/tipos de contenido requeridos.&lt;/p&gt;
&lt;h3 id=&#34;aceptar_cambiospy&#34;&gt;&lt;code&gt;aceptar_cambios.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Este script acepta todos los cambios rastreados a través de LibreOffice headless + macro (&lt;code&gt;.uno:AcceptAllTrackedChanges&lt;/code&gt;) en lugar de una frágil cirugía XML sin formato.&lt;/p&gt;
&lt;p&gt;Esa es una elección pragmática porque aceptar revisiones es una operación a nivel de comportamiento, no solo eliminar etiquetas &lt;code&gt;&amp;lt;w:ins&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;w:del&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;validadoresredliningpy&#34;&gt;&lt;code&gt;validadores/redlining.py&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Esta es una de las piezas más valiosas.&lt;br&gt;
Elimina los cambios rastreados para un autor específico tanto en documentos originales como modificados, luego compara el texto resultante para verificar que los cambios estén representados correctamente en el marcado de revisión.&lt;/p&gt;
&lt;p&gt;Por tanto, valida la semántica de revisión, no sólo la sintaxis XML.&lt;/p&gt;
&lt;h2 id=&#34;4-esquema-y-capa-de-soporte-schemas-helpers-templates&#34;&gt;4. Esquema y capa de soporte: &lt;code&gt;schemas/&lt;/code&gt;, &lt;code&gt;helpers/&lt;/code&gt;, &lt;code&gt;templates/&lt;/code&gt;
&lt;/h2&gt;&lt;h3 id=&#34;esquemas&#34;&gt;&lt;code&gt;esquemas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Contiene archivos XSD relacionados con OOXML/ECMA/Microsoft utilizados por los validadores.&lt;br&gt;
Por lo tanto, la validación se basa en restricciones de esquema formal.&lt;/p&gt;
&lt;h3 id=&#34;ayudantes&#34;&gt;&lt;code&gt;ayudantes/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Incluye utilidades como:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;merge_runs.py&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;simplificar_redlines.py&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos estabilizan la estructura XML para lograr ediciones y diferencias más claras.&lt;/p&gt;
&lt;h3 id=&#34;plantillas&#34;&gt;&lt;code&gt;plantillas/&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Contiene plantillas XML necesarias para admitir comentarios, que incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;comentarios.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtendido.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosIds.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;comentariosExtensible.xml&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;personas.xml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas plantillas ayudan a evitar inconsistencias a nivel de paquete al crear partes relacionadas con comentarios.&lt;/p&gt;
&lt;h2 id=&#34;patrones-de-uso-típicos&#34;&gt;Patrones de uso típicos
&lt;/h2&gt;&lt;p&gt;Desde &lt;code&gt;SKILL.md&lt;/code&gt;, los flujos de trabajo más comunes son:&lt;/p&gt;
&lt;h2 id=&#34;escenario-1-leeranalizar-un-docx-existente&#34;&gt;Escenario 1: leer/analizar un DOCX existente
&lt;/h2&gt;&lt;p&gt;Utilice &lt;code&gt;pandoc&lt;/code&gt; para la extracción a nivel de texto con seguimiento de cambios:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pandoc --track-changes&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;all document.docx -o output.md
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Utilice el desembalaje para la inspección XML sin formato:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;escenario-2-crear-un-nuevo-docx&#34;&gt;Escenario 2: crear un nuevo DOCX
&lt;/h2&gt;&lt;p&gt;Utilice &lt;code&gt;docx-js&lt;/code&gt; para la generación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego valide:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/validate.py doc.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;escenario-3-editar-un-docx-existente&#34;&gt;Escenario 3: editar un DOCX existente
&lt;/h2&gt;&lt;p&gt;Flujo de trabajo principal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/unpack.py document.docx unpacked/
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# edit XML under unpacked/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/office/pack.py unpacked/ output.docx --original document.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;--original&lt;/code&gt; es la parte crítica porque permite controles estructurales y de revisión más sólidos.&lt;/p&gt;
&lt;h2 id=&#34;escenario-4-aceptar-todos-los-cambios-rastreados&#34;&gt;Escenario 4: aceptar todos los cambios rastreados
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python scripts/accept_changes.py input.docx output.docx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Requiere LibreOffice; útil para producir un archivo limpio posterior a la revisión.&lt;/p&gt;
&lt;h2 id=&#34;escenario-5-agregar-comentarios&#34;&gt;Escenario 5: Agregar comentarios
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Comment text&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python comment.py unpacked/ &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Reply text&amp;#34;&lt;/span&gt; --parent &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aún necesita colocar marcadores de rango de comentarios en &lt;code&gt;document.xml&lt;/code&gt; donde debe adjuntarse el comentario.&lt;/p&gt;
&lt;h2 id=&#34;advertencias-clave-para-recordar&#34;&gt;Advertencias clave para recordar
&lt;/h2&gt;&lt;h3 id=&#34;1-docx-no-es-un-archivo-de-texto-sin-formato&#34;&gt;1. &lt;code&gt;.docx&lt;/code&gt; no es un archivo de texto sin formato
&lt;/h3&gt;&lt;p&gt;Una única edición puede implicar cuerpo XML, relaciones, tipos de contenido, partes de comentarios, ID y restricciones de esquema.&lt;/p&gt;
&lt;h3 id=&#34;2-la-generación-docx-js-todavía-necesita-barreras-de-seguridad-explícitas&#34;&gt;2. La generación &lt;code&gt;docx-js&lt;/code&gt; todavía necesita barreras de seguridad explícitas
&lt;/h3&gt;&lt;p&gt;Los valores predeterminados pueden ser incorrectos para el diseño objetivo y los objetivos de compatibilidad.&lt;/p&gt;
&lt;h3 id=&#34;3-los-comentarios-y-los-cambios-rastreados-son-operaciones-de-varias-partes&#34;&gt;3. Los comentarios y los cambios rastreados son operaciones de varias partes
&lt;/h3&gt;&lt;p&gt;Son funciones a nivel de paquete, no ediciones de una sola etiqueta.&lt;/p&gt;
&lt;h3 id=&#34;4-se-abre-correctamente-no-significa-modificado-correctamente&#34;&gt;4. &amp;ldquo;Se abre correctamente&amp;rdquo; no significa &amp;ldquo;modificado correctamente&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Muchos problemas solo surgen más tarde durante la edición, revisión, apertura entre aplicaciones o aceptación de cambios.&lt;/p&gt;
&lt;h3 id=&#34;5-la-preparación-ambiental-importa&#34;&gt;5. La preparación ambiental importa
&lt;/h3&gt;&lt;p&gt;Necesita herramientas como &lt;code&gt;pandoc&lt;/code&gt;, &lt;code&gt;LibreOffice/soffice&lt;/code&gt;, &lt;code&gt;docx-js&lt;/code&gt; y Python deps (&lt;code&gt;defusedxml&lt;/code&gt;, &lt;code&gt;lxml&lt;/code&gt;) disponibles.&lt;/p&gt;
&lt;h2 id=&#34;para-qué-sirve-esta-habilidad-y-para-qué-no&#34;&gt;Para qué sirve esta habilidad (y para qué no)
&lt;/h2&gt;&lt;h3 id=&#34;buen-ajuste&#34;&gt;Buen ajuste
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Generación de informes de Word por lotes&lt;/li&gt;
&lt;li&gt;Producción de documentos formales estructurados.&lt;/li&gt;
&lt;li&gt;Ediciones automatizadas a &lt;code&gt;.docx&lt;/code&gt; existente&lt;/li&gt;
&lt;li&gt;Flujos de trabajo conscientes de los cambios rastreados&lt;/li&gt;
&lt;li&gt;Inserción automática de comentarios.&lt;/li&gt;
&lt;li&gt;Canalizaciones de documentos basados en agentes/scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;no-es-ideal&#34;&gt;No es ideal
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Casos de salida muy simples solo en PDF&lt;/li&gt;
&lt;li&gt;Extracción de texto puro sin requisitos de fidelidad del documento.&lt;/li&gt;
&lt;li&gt;Flujos de trabajo de edición visual totalmente manuales.&lt;/li&gt;
&lt;li&gt;Expectativas de dependencia cero para la automatización de Word de un extremo a otro&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;skills/docx&lt;/code&gt; de Anthropic es fuerte no porque pueda &amp;ldquo;generar archivos de Word&amp;rdquo;, sino porque codifica por qué falla la automatización de Word y cómo manejar esos modos de falla sistemáticamente.&lt;br&gt;
Combina generación, edición XML de bajo nivel, semántica de revisión, validación de esquemas y compatibilidad entre aplicaciones en un flujo de trabajo ejecutable.&lt;/p&gt;
&lt;p&gt;Si su caso de uso incluye ediciones DOCX existentes, comentarios, cambios rastreados o automatización sensible a la compatibilidad, este diseño es muy práctico y de gran valor.&lt;/p&gt;
&lt;p&gt;Ubicación del código: &lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/skills/tree/main/skills/docx&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/skills/tree/main/skills/docx&lt;/a&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
