libreoffice-writer
Автоматизация документов LibreOffice Writer
Ручное редактирование документов требует много времени и чревато ошибками. Этот навык автоматизирует операции LibreOffice Writer через интеграцию с UNO, обеспечивая программное создание, редактирование, форматирование и экспорт документов.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «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
Аудит безопасности
Низкий риск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.
Проблемы низкого риска (3)
Факторы риска
⚙️ Внешние команды (1)
📁 Доступ к файловой системе (2)
🔑 Переменные окружения (1)
⚡ Содержит скрипты (2)
Оценка качества
Что вы можете построить
Автоматическая генерация отчётов
Создание стандартизированных отчётов путём создания документов, вставки форматированного текста и таблиц, затем экспорта в 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 к /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-элементах или полях данных
- Ожидание, что выравнивание абзаца применится только к найденному тексту, а не ко всему абзацу