lab-report — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited lab-report (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Пользователь хочет сгенерировать финальный документ отчёта. На этом этапе report.md уже должен быть готов (создан через /lab-draft и доработан через /lab-improve, /lab-research, /lab-conclusion).
.claude/lab/config.json. Если не найден — сообщи: «Сначала запусти /lab-setup.» и остановись.report.md. Если не найден — сообщи: «Сначала создай черновик отчёта через /lab-draft.» иостановись.
report.md и проверь:config.preferences.needs_research = true) — предупредить, еслинет (но не блокировать).
images/ в корне проекта.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. Перепроверь ещё раз, правильно ли ты соотнёс каждое изображение с местом, куда его вставлять. Открой каждое изображение повторно и убедись, что оно действительно соответствует подписи.
images/ пуста или не существует — предупредить (плейсхолдеры останутся в документе).Если используется шаблон-пустышка (config.template.has_template = true):
cp <template_path> <template_path>.backupЭто позволяет заново запустить генерацию, восстановив шаблон из бэкапа, если результат неудачный.
Определи формат из config.preferences.report_format и имя файла из config.preferences.output_filename (по умолчанию report).
ВАЖНО: report.md — это черновик. Этот этап НЕ меняет содержание report.md. Генерация итогового файла — это только форматирование: подстановка изображений, отступы, стили, титульный лист.
Шаблон-пустышка (почти всегда): скорее всего пользователь уже предоставил шаблон report.docx. Путь к нему в config.template.example_path. Правила работы с шаблоном:
Формат MD:
{output_filename}.md (если имя отличается от report; иначе — в output.md, чтобы неперезаписать черновик).
[ВСТАВИТЬ РИСУНОК N ЗДЕСЬ] на  (используяimage_map.json).
Формат DOCX:
.claude/lab/venv/bin/python --version (или Scripts/python.exe на Windows). .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Возможности скрипта:
- item) и нумерованные (N) item) — с правильными отступами1., 1.1., 1.1.1.) и markdown (##, ###, ####)config.course.lab_type, преподаватель из config.course.reviewerФормат PDF:
libreoffice --version.libreoffice --headless --convert-to pdf {output_filename}.docx.вручную.
Сообщи пользователю:
/lab-report заново.$ARGUMENTS
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.