Навыки libreoffice-writer
📄

libreoffice-writer

Низкий риск ⚙️ Внешние команды📁 Доступ к файловой системе🔑 Переменные окружения⚡ Содержит скрипты

Автоматизация документов LibreOffice Writer

Ручное редактирование документов требует много времени и чревато ошибками. Этот навык автоматизирует операции LibreOffice Writer через интеграцию с UNO, обеспечивая программное создание, редактирование, форматирование и экспорт документов.

Поддерживает: Claude Codex Code(CC)
🥉 74 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «libreoffice-writer». Создать новый документ с заголовком и экспортировать в PDF

Ожидаемый результат:

  • Документ успешно создан: /path/to/report.odt
  • Экспортировано в PDF: /path/to/report.pdf

Использование «libreoffice-writer». Найти и отформатировать текст в существующем документе

Ожидаемый результат:

  • Открыт документ: /path/to/draft.odt
  • Отформатированный диапазон текста: жирный, центрированный
  • Изменения сохранены, документ закрыт

Использование «libreoffice-writer». Применить patch с несколькими операциями

Ожидаемый результат:

  • Patch разобран: 3 операции
  • Операция 1 (replace_text): успех
  • Операция 2 (format_text): успех
  • Операция 3 (insert_table): успех
  • Общий статус: ok
  • Документ сохранён: true

Аудит безопасности

Низкий риск
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
Просканировано файлов
2,550
Проанализировано строк
7
находки
2
Всего аудитов
Проблемы низкого риска (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.

Факторы риска

⚙️ Внешние команды (1)
📁 Доступ к файловой системе (2)
🔑 Переменные окружения (1)
⚡ Содержит скрипты (2)

Оценка качества

64
Архитектура
100
Сопровождаемость
87
Контент
25
Сообщество
84
Безопасность
91
Соответствие спецификации

Что вы можете построить

Автоматическая генерация отчётов

Создание стандартизированных отчётов путём создания документов, вставки форматированного текста и таблиц, затем экспорта в PDF для распространения.

Обработка шаблонов документов

Загрузка шаблонных документов, замена текста-заполнителя динамическим содержимым, обновление таблиц новыми данными и экспорт настроенных версий.

Пакетные операции с документами

Применение согласованных изменений форматирования к нескольким документам с использованием patch-работ с атомарным откатом при сбоях.

Попробуйте эти промпты

Создание и заполнение документа
Создайте новый документ LibreOffice Writer по пути /path/to/report.odt. Вставьте заголовок "Monthly Report", добавьте заголовок раздела "Summary", затем вставьте абзац с описанием достижений этого месяца. Экспортируйте итоговый документ в PDF.
Редактирование со структурированным нацеливанием
Откройте /path/to/draft.odt и найдите предложение "Quarterly revenue grew significantly", которое находится после "Financial Overview" и перед "Next Steps". Сделайте его жирным и центрированным. Затем вставьте маркированный список после "Action Items" с тремя задачами: Review budget, Schedule meeting, Send updates.
Операции с таблицами данных
Откройте документ по пути /path/to/data-report.odt. Вставьте таблицу с 4 строками и 3 столбцами под названием "Sales Data". Заполните её заголовками [Region, Q1, Q2] и строками данных для регионов North, South, East. Позже обновите значения Q2, когда поступят новые числа.
Атомарный patch-работ
Примените этот patch к /path/to/manuscript.odt в атомарном режиме: Во-первых, замените все экземпляры "Draft" на "Final". Во-вторых, отформатируйте заголовки глав жирным шрифтом 14pt. В-третьих, вставьте оглавление. Если какая-либо операция не удастся, откатите все изменения и сообщите об ошибке.

Лучшие практики

  • Всегда используйте абсолютные пути к файлам при работе с UNO-based Writer API
  • Закрепляйте текстовые цели полными предложениями или фразами уровня абзаца, а не отдельными словами
  • Используйте after и before границы для ограничения поиска, когда текст может встречаться несколько раз
  • Оборачивайте session-операции в try/finally или context managers для обеспечения правильной очистки
  • Тестируйте patch-работы в best_effort режиме перед переключением на atomic для production

Избегать

  • Использование относительных путей — UNO требует абсолютных путей к файлам для всех операций с документами
  • Пропуск параметра occurrence, когда один и тот же текст встречается несколько раз в документе
  • Вызов session-методов после вызова session.close()
  • Передача некорректного JSON в patch-элементах или полях данных
  • Ожидание, что выравнивание абзаца применится только к найденному тексту, а не ко всему абзацу

Часто задаваемые вопросы

Почему навык требует установки LibreOffice?
Этот навык использует UNO (Universal Network Objects) API LibreOffice для взаимодействия с документами Writer. UNO — это нативный интерфейс автоматизации LibreOffice, требующий локальной установки LibreOffice с привязками Python UNO.
В какие форматы файлов я могу экспортировать?
Навык поддерживает экспорт в форматы PDF и DOCX из коробки. Дополнительные форматы могут быть доступны в зависимости от вашей установки LibreOffice и доступности фильтров.
Как исправить 'ModuleNotFoundError: No module named uno'?
Добавьте путь Python LibreOffice вашей системы в PYTHONPATH. В Linux это обычно /usr/lib/python3/dist-packages. Установите PYTHONPATH, чтобы включить как директорию скриптов навыка, так и Python-модули LibreOffice.
В чём разница между режимами patch atomic и best_effort?
Атомарный режим останавливается при первом сбое, сбрасывает session и ничего не сохраняет. Best_effort режим продолжает все операции и записывает, какие из них succeeded, сохраняя успешные изменения, даже если некоторые операции не удались.
Могу ли я редактировать документы, которые сейчас открыты в LibreOffice?
Нет. Документы должны быть закрыты перед редактированием через UNO. Попытка открыть документ, уже заблокированный другим экземпляром LibreOffice, приведёт к сбою или конфликтам.
Как нацелиться на конкретный текст, когда одна и та же фраза встречается несколько раз?
Используйте поле occurrence, чтобы указать, какое совпадение выбрать (0-indexed), или добавьте границы after и before, чтобы сузить окно поиска до конкретного раздела документа.

Сведения для разработчиков

Автор

dfk1352

Лицензия

MIT

Ссылка

main

Структура файлов