Install
$ agentstack add skill-id-andyyy-labai-lab-report ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
About
Пользователь хочет сгенерировать финальный документ отчёта. На этом этапе 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 — маппинг номера рисунка на файл: ``json { "1": "images/screenshot1.png", "2": "images/network_config.jpg" } `` e. Если автоматическое сопоставление не удалось для некоторых изображений — покажи пользователю список нераспознанных файлов и подписей, спроси о соответствии. f. Перепроверь ещё раз, правильно ли ты соотнёс каждое изображение с местом, куда его вставлять. Открой каждое изображение повторно и убедись, что оно действительно соответствует подписи.
- Если папка
images/пуста или не существует — предупредить (плейсхолдеры останутся в документе).
Этап 3. Резервная копия шаблона
Если используется шаблон-пустышка (config.template.has_template = true):
- Скопируй шаблон в резервную копию:
cp .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.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 см (не выходят за правое поле)
- Если 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
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: id-andyyy
- Source: id-andyyy/LabAI
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.