Lab report
🤖🧪 AI-ассистент ЛАБАЙ для автономного выполнения лабораторных работ
npx -y skills add id-andyyy/LabAI --skill lab-reportAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Генерация финального документа (DOCX/PDF/MD) с изображениями
SKILL.md
9.7 KB, as published. Nobody here has run it
Пользователь хочет сгенерировать финальный документ отчёта. На этом этапе report.md уже должен быть готов (создан через /lab-draft и доработан через /lab-improve, /lab-research, /lab-conclusion).
Что делать
Этап 1. Проверка полноты
- Прочитай
.claude/lab/config.json. Если не найден — сообщи: «Сначала запусти/lab-setup.» и остановись. - Проверь наличие
report.md. Если не найден — сообщи: «Сначала создай черновик отчёта через/lab-draft.» и остановись. - Прочитай
report.mdи проверь:- Есть ли раздел дополнительного исследования (если
config.preferences.needs_research= true) — предупредить, если нет (но не блокировать). - Есть ли итоговый вывод — предупредить, если нет (но не блокировать).
- Есть ли раздел дополнительного исследования (если
- Спроси пользователя: продолжить генерацию или сначала доработать отчёт?
Этап 2. Работа с изображениями
- Проверь наличие папки
images/в корне проекта. - Если папка существует и содержит файлы:
a. Прочитай каждый файл изображения через Read tool (vision).
b. Проанализируй содержимое каждого изображения — текст, интерфейс, данные, графики, что изображено.
c. Сопоставь содержимое изображений с подписями рисунков в report.md по СМЫСЛУ, а не по имени файла или дате.
КРИТИЧЕСКИ ВАЖНО: нельзя бездумно сопоставлять рисунки по порядку (по алфавиту имён, по дате создания).
Нужно именно анализировать содержимое каждого изображения и находить, какой подписи в report.md оно соответствует.
Например: если подпись «Рисунок 3. Настройка DNS», а на изображении видно окно настройки DNS-сервера — это совпадение.
d. Создай
.claude/lab/image_map.json— маппинг номера рисунка на файл:
e. Если автоматическое сопоставление не удалось для некоторых изображений — покажи пользователю список нераспознанных файлов и подписей, спроси о соответствии. f. Перепроверь ещё раз, правильно ли ты соотнёс каждое изображение с местом, куда его вставлять. Открой каждое изображение повторно и убедись, что оно действительно соответствует подписи.{ "1": "images/screenshot1.png", "2": "images/network_config.jpg" } - Если папка
images/пуста или не существует — предупредить (плейсхолдеры останутся в документе).
Этап 3. Резервная копия шаблона
Если используется шаблон-пустышка (config.template.has_template = true):
- Скопируй шаблон в резервную копию:
cp <template_path> <template_path>.backup - Сообщи пользователю, что резервная копия создана.
Это позволяет заново запустить генерацию, восстановив шаблон из бэкапа, если результат неудачный.
Этап 4. Генерация документа
Определи формат из config.preferences.report_format и имя файла из config.preferences.output_filename (по умолчанию
report).
ВАЖНО: report.md — это черновик. Этот этап НЕ меняет содержание report.md. Генерация итогового файла — это только форматирование: подстановка изображений, отступы, стили, титульный лист.
Шаблон-пустышка (почти всегда): скорее всего пользователь уже предоставил шаблон report.docx. Путь к нему в
config.template.example_path. Правила работы с шаблоном:
- Вставлять текст отчёта между заготовленными секциями.
- Титульный лист — не трогать.
- Заголовки секций (Цели работы, Ход работы, и т.д.) — не трогать.
- Все подзаголовки создавать с тем же стилем, что и заголовки шаблона.
Формат MD:
- Скопировать report.md в
{output_filename}.md(если имя отличается отreport; иначе — вoutput.md, чтобы не перезаписать черновик). - Заменить плейсхолдеры
[ВСТАВИТЬ РИСУНОК N ЗДЕСЬ]на(используя image_map.json).
Формат DOCX:
- Проверь наличие venv:
.claude/lab/venv/bin/python --version(илиScripts/python.exeна Windows). - Если venv есть — запусти генератор:
Если есть шаблон-пустышка (.claude/lab/venv/bin/python .claude/lab/scripts/generate_docx.py \ --config .claude/lab/config.json \ --report report.md \ --output {output_filename}.docx \ --images images/ \ --image-map .claude/lab/image_map.jsonconfig.template.has_template= true иconfig.template.example_pathне null):
Если без титульного листа (--template <путь из config.template.example_path>config.preferences.no_title_page= true, без шаблона):
Возможности скрипта:--no-title-page- Режим шаблона: не трогает титульный лист и заголовки секций, вставляет содержимое между секциями, копирует стиль заголовков из шаблона для подзаголовков (НЕ использует Heading 1/2)
- Markdown-таблицы: автоматически конвертируются в Word-таблицы (Table Grid, шрифт 14 пт по ГОСТ)
- Списки: маркированные (
- item) и нумерованные (N) item) — с правильными отступами - Заголовки: поддерживаются оба формата — нумерованный (
1.,1.1.,1.1.1.) и markdown (##,###,####) - Титульный лист: тип работы из
config.course.lab_type, преподаватель изconfig.course.reviewer - Не применяет жирный шрифт в тексте (только в заголовках)
- Пропускает блоки кода (```) — в документ попадают только однострочные выражения
- После каждого рисунка (подписи) вставляет пустую строку
- Красная строка 1,5 см, выравнивание по ширине, contextualSpacing
- Изображения масштабируются до макс. 15,5 см (не выходят за правое поле)
- Если venv нет — сообщи, что DOCX-генерация невозможна без Python. Предложи формат MD.
Формат PDF:
- Сначала сгенерируй DOCX (как описано выше).
- Проверь наличие LibreOffice:
libreoffice --version. - Если LibreOffice есть — конвертируй:
libreoffice --headless --convert-to pdf {output_filename}.docx. - Если LibreOffice нет — сообщи пользователю, что PDF-конвертация невозможна. Предложи открыть DOCX и сохранить как PDF вручную.
Этап 5. Подтверждение
Сообщи пользователю:
- Путь к сгенерированному файлу (report.docx / report.pdf / report.md).
- Количество вставленных изображений (если были).
- Количество оставшихся плейсхолдеров (если изображения не найдены).
- Рекомендацию проверить документ перед сдачей.
- Напомни, что если результат неудачный, шаблон можно восстановить из бэкапа (.backup) и запустить
/lab-reportзаново.
Дополнительный контекст от пользователя
$ARGUMENTS