AgentStack
SKILL verified MIT Self-run

Lab Report

skill-id-andyyy-labai-lab-report · by id-andyyy

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

No reviews yet
0 installs
2 views
0.0% view→install

Install

$ agentstack add skill-id-andyyy-labai-lab-report

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Lab Report? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Пользователь хочет сгенерировать финальный документ отчёта. На этом этапе report.md уже должен быть готов (создан через /lab-draft и доработан через /lab-improve, /lab-research, /lab-conclusion).

Что делать

Этап 1. Проверка полноты

  1. Прочитай .claude/lab/config.json. Если не найден — сообщи: «Сначала запусти /lab-setup.» и остановись.
  2. Проверь наличие report.md. Если не найден — сообщи: «Сначала создай черновик отчёта через /lab-draft.» и

остановись.

  1. Прочитай report.md и проверь:
  • Есть ли раздел дополнительного исследования (если config.preferences.needs_research = true) — предупредить, если

нет (но не блокировать).

  • Есть ли итоговый вывод — предупредить, если нет (но не блокировать).
  1. Спроси пользователя: продолжить генерацию или сначала доработать отчёт?

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

  1. Проверь наличие папки images/ в корне проекта.
  2. Если папка существует и содержит файлы:

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

  1. Если папка images/ пуста или не существует — предупредить (плейсхолдеры останутся в документе).

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

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

  1. Скопируй шаблон в резервную копию: cp .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 ЗДЕСЬ] на `` (используя

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.hastemplate = true и config.template.examplepath не null): ` --template ` Если без титульного листа (config.preferences.notitlepage = 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 см (не выходят за правое поле)
  1. Если 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

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.