Habilidades libreoffice-writer
📄

libreoffice-writer

Riesgo bajo ⚙️ Comandos externos📁 Acceso al sistema de archivos🔑 Variables de entorno⚡ Contiene scripts

Automatizar Documentos de LibreOffice Writer

Editar documentos manualmente consume mucho tiempo y es propenso a errores. Esta habilidad automatiza operaciones de LibreOffice Writer mediante integración UNO, permitiendo creación, edición, formato y exportación programática de documentos.

Soporta: Claude Codex Code(CC)
🥉 74 Bronce
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "libreoffice-writer". Crear un nuevo documento con título y exportar a PDF

Resultado esperado:

  • Documento creado exitosamente: /path/to/report.odt
  • Exportado a PDF: /path/to/report.pdf

Usando "libreoffice-writer". Buscar y formatear texto en documento existente

Resultado esperado:

  • Abierto documento: /path/to/draft.odt
  • Rango de texto formateado: negrita, alineado al centro
  • Cambios guardados y documento cerrado

Usando "libreoffice-writer". Aplicar parche con múltiples operaciones

Resultado esperado:

  • Parche analizado: 3 operaciones
  • Operación 1 (replace_text): éxito
  • Operación 2 (format_text): éxito
  • Operación 3 (insert_table): éxito
  • Estado general: ok
  • Documento persistido: true

Auditoría de seguridad

Riesgo bajo
v2 • 3/19/2026

Static analysis flagged 175 patterns but evaluation confirms these are false positives. The skill legitimately uses subprocess to launch LibreOffice with hardcoded arguments, tempfile for secure temp directories, and importlib for module detection. All external command usage has no user input injection vectors. Risk is low due to filesystem and external command dependencies requiring LibreOffice installation.

14
Archivos escaneados
2,550
Líneas analizadas
7
hallazgos
2
Auditorías totales
Problemas de riesgo bajo (3)
External Process Execution
subprocess.Popen launches LibreOffice soffice binary. All arguments are hardcoded strings with no user input injection. This is legitimate automation of installed software.
Temporary Directory Creation
Uses tempfile.mkdtemp() to create isolated profile directories for LibreOffice instances. Directories are cleaned up in finally blocks.
Environment Variable Access
Reads LIBREOFFICE_PROGRAM_PATH environment variable to locate UNO module. Value is used only for path resolution, not executed.

Factores de riesgo

Puntuación de calidad

64
Arquitectura
100
Mantenibilidad
87
Contenido
25
Comunidad
84
Seguridad
91
Cumplimiento de la especificación

Lo que puedes crear

Generación Automatizada de Informes

Generar informes estandarizados creando documentos, insertando texto formateado y tablas, luego exportando a PDF para distribución.

Procesamiento de Plantillas de Documentos

Cargar documentos de plantilla, reemplazar texto de marcador de posición con contenido dinámico, actualizar tablas con nuevos datos y exportar versiones personalizadas.

Operaciones de Documentos por Lotes

Aplicar cambios de formato consistentes en múltiples documentos usando flujos de trabajo de parches con rollback atómico en fallos.

Prueba estos prompts

Crear y Poblar Documento
Create a new LibreOffice Writer document at /path/to/report.odt. Insert a title "Monthly Report", add a section heading "Summary", then insert a paragraph describing this month's achievements. Export the final document to PDF.
Editar con Targeting Estructurado
Open /path/to/draft.odt and find the sentence "Quarterly revenue grew significantly" that appears after "Financial Overview" and before "Next Steps". Make it bold and centered. Then insert a bulleted list after "Action Items" with three tasks: Review budget, Schedule meeting, Send updates.
Operaciones de Tabla con Datos
Open the document at /path/to/data-report.odt. Insert a table with 4 rows and 3 columns named "Sales Data". Populate it with headers [Region, Q1, Q2] and data rows for North, South, East regions. Later update the Q2 values when new numbers arrive.
Flujo de Trabajo de Parche Atómico
Apply this patch to /path/to/manuscript.odt in atomic mode: First, replace all instances of "Draft" with "Final". Second, format the chapter titles bold with 14pt font. Third, insert a table of contents. If any operation fails, rollback all changes and report the error.

Mejores prácticas

  • Usar siempre rutas de archivo absolutas al trabajar con APIs de Writer basadas en UNO
  • Anclar destinos de texto con frases completas o a nivel de párrafo, no palabras sueltas
  • Usar límites after y before para restringir búsquedas cuando el texto puede aparecer múltiples veces
  • Envolver operaciones de sesión en try/finally o context managers para asegurar limpieza adecuada
  • Probar flujos de trabajo de parches en modo best_effort antes de cambiar a atomic para producción

Evitar

  • Usar rutas relativas - UNO requiere rutas de archivo absolutas para todas las operaciones de documentos
  • Omitir el parámetro occurrence cuando el mismo texto aparece múltiples veces en un documento
  • Llamar métodos de sesión después de que session.close() ha sido invocado
  • Proporcionar JSON malformado en elementos de parche o campos de datos
  • Esperar que la alineación de párrafo se aplique solo al texto coincidente en lugar del párrafo completo

Preguntas frecuentes

¿Por qué la habilidad requiere que LibreOffice esté instalado?
Esta habilidad usa la API UNO (Universal Network Objects) de LibreOffice para interactuar con documentos de Writer. UNO es la interfaz de automatización nativa de LibreOffice, requiriendo una instalación local de LibreOffice con bindings de Python UNO.
¿A qué formatos de archivo puedo exportar?
La habilidad soporta exportar a formatos PDF y DOCX de forma nativa. Formatos adicionales pueden estar disponibles dependiendo de tu instalación de LibreOffice y disponibilidad de filtros.
¿Cómo soluciono 'ModuleNotFoundError: No module named uno'?
Añade la ruta de Python de LibreOffice de tu sistema a PYTHONPATH. En Linux, esto es típicamente /usr/lib/python3/dist-packages. Establece PYTHONPATH para incluir tanto el directorio de scripts de la habilidad como los módulos de Python de LibreOffice.
¿Cuál es la diferencia entre modos de parche atomic y best_effort?
El modo atomic se detiene en el primer fallo, resetea la sesión y no persiste nada. El modo best_effort continúa a través de todas las operaciones y registra cuáles tuvieron éxito, persistiendo cambios exitosos incluso si algunas operaciones fallan.
¿Puedo editar documentos que están actualmente abiertos en LibreOffice?
No. Los documentos deben cerrarse antes de editar vía UNO. Intentar abrir un documento ya bloqueado por otra instancia de LibreOffice fallará o causará conflictos.
¿Cómo apunto a texto específico cuando la misma frase aparece múltiples veces?
Usa el campo occurrence para especificar qué coincidencia targetear (indexado desde 0), o añade límites after y before para estrechar la ventana de búsqueda a una sección específica del documento.

Detalles del desarrollador

Estructura de archivos