agentsclimarketplace

Lab report

Skill id-andyyy/LabAI/.claude/skills/lab-report

Генерация финального документа (DOCX/PDF/MD) с изображениямиFrom its SKILL.md

Install
npx -y skills add id-andyyy/LabAI --skill lab-report

Assembled 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. Проверка полноты

  1. Прочитай .claude/lab/config.json. Если не найден — сообщи: «Сначала запусти /lab-setup.» и остановись.
  2. Проверь наличие report.md. Если не найден — сообщи: «Сначала создай черновик отчёта через /lab-draft.» и остановись.
  3. Прочитай report.md и проверь:
    • Есть ли раздел дополнительного исследования (если config.preferences.needs_research = true) — предупредить, если нет (но не блокировать).
    • Есть ли итоговый вывод — предупредить, если нет (но не блокировать).
  4. Спроси пользователя: продолжить генерацию или сначала доработать отчёт?

Этап 2. Работа с изображениями

  1. Проверь наличие папки images/ в корне проекта.
  2. Если папка существует и содержит файлы: a. Прочитай каждый файл изображения через Read tool (vision). b. Проанализируй содержимое каждого изображения — текст, интерфейс, данные, графики, что изображено. c. Сопоставь содержимое изображений с подписями рисунков в report.md по СМЫСЛУ, а не по имени файла или дате. КРИТИЧЕСКИ ВАЖНО: нельзя бездумно сопоставлять рисунки по порядку (по алфавиту имён, по дате создания). Нужно именно анализировать содержимое каждого изображения и находить, какой подписи в report.md оно соответствует. Например: если подпись «Рисунок 3. Настройка DNS», а на изображении видно окно настройки DNS-сервера — это совпадение. d. Создай .claude/lab/image_map.json — маппинг номера рисунка на файл:
    {
      "1": "images/screenshot1.png",
      "2": "images/network_config.jpg"
    }
    
    e. Если автоматическое сопоставление не удалось для некоторых изображений — покажи пользователю список нераспознанных файлов и подписей, спроси о соответствии. f. Перепроверь ещё раз, правильно ли ты соотнёс каждое изображение с местом, куда его вставлять. Открой каждое изображение повторно и убедись, что оно действительно соответствует подписи.
  3. Если папка images/ пуста или не существует — предупредить (плейсхолдеры останутся в документе).

Этап 3. Резервная копия шаблона

Если используется шаблон-пустышка (config.template.has_template = true):

  1. Скопируй шаблон в резервную копию: cp <template_path> <template_path>.backup
  2. Сообщи пользователю, что резервная копия создана.

Это позволяет заново запустить генерацию, восстановив шаблон из бэкапа, если результат неудачный.

Этап 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 ЗДЕСЬ] на ![Рисунок N. Описание](images/файл.png) (используя image_map.json).

Формат DOCX:

  1. Проверь наличие venv: .claude/lab/venv/bin/python --version (или Scripts/python.exe на Windows).
  2. Если 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.json
    
    Если есть шаблон-пустышка (config.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 см (не выходят за правое поле)
  3. Если venv нет — сообщи, что DOCX-генерация невозможна без Python. Предложи формат MD.

Формат PDF:

  1. Сначала сгенерируй DOCX (как описано выше).
  2. Проверь наличие LibreOffice: libreoffice --version.
  3. Если LibreOffice есть — конвертируй: libreoffice --headless --convert-to pdf {output_filename}.docx.
  4. Если 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.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.