Lab report
Генерация финального документа (DOCX/PDF/MD) с изображениямиFrom its SKILL.md
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.
2 things 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.
- runs commandsInstructs the agent to run 5 commands, including `cp <template_path> <template_path>.backup` and 4 more.
SKILL.md
9.7 KB, ~2.4k tokens by cl100k_base, 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
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.