agentsclimarketplace

Lab setup

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

🤖🧪 AI-ассистент ЛАБАЙ для автономного выполнения лабораторных работ

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

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing 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.

What its author says it does

Copied from the file, not written here

Настройка проекта

SKILL.md

15.9 KB, as published. Nobody here has run it

Пользователь хочет настроить проект для выполнения лабораторной работы. Нужно проверить окружение, собрать данные о студенте и работе, распарсить задание и сохранить всё в config.json.

Что делать

Шаг 1. Проверка Python

Проверь наличие Python:

  1. Выполни python3 --version (если не найден — попробуй python --version).
  2. Если Python найден — запомни путь (например, python3).
  3. Если Python не найден — сообщи пользователю, что генерация DOCX/PDF не будет работать, а парсинг PDF/DOCX потребует ручного ввода текста. Продолжай настройку.

Шаг 2. Создание venv и установка зависимостей

Если Python найден:

  1. Создай виртуальное окружение: python3 -m venv .claude/lab/venv
  2. Установи зависимости: .claude/lab/venv/bin/pip install -r .claude/lab/scripts/requirements.txt
  3. На Windows пути через Scripts/ вместо bin/.

Если Python не найден — пропусти этот шаг.

Шаг 3. Опрос пользователя

Если config.json уже существует (.claude/lab/config.json) — прочитай его, покажи текущие значения и спроси, хочет ли пользователь что-то изменить. Если хочет — задай только те вопросы, которые нужно обновить.

Если config.json не существует — задай все вопросы через AskUserQuestion (разбей на блоки):

Блок 1 — студент и учебное заведение:

  1. ФИО студента.
  2. Группа студента.
  3. Полное название учебного заведения.
  4. Город.

Блок 2 — предмет и работа:

  1. Название предмета/курса.
  2. Тип работы: Лабораторная работа / Практическая работа / Задание (для титульного листа). По умолчанию — «Лабораторная работа».
  3. Номер лабораторной работы.
  4. Название лабораторной работы (или пусто — определим из задания).
  5. ФИО преподавателя (рецензента) — опционально, для титульного листа.
  6. ОС пользователя, на которой он будет работать (Windows / macOS / Linux — с версией, если знает).

Блок 3 — предпочтения:

  1. Формат итогового отчёта: docx / pdf / md.
  2. Имя итогового файла (без расширения). По умолчанию — report. Примеры: Лабораторная_работа_3, ЛР3_Иванов.
  3. Стиль отчёта: первое лицо («я выполнил, я настроил») / безличное («было выполнено, было настроено»).
  4. Нужно ли дополнительное исследование в отчёте? (Да / Нет)

Шаг 4. Поиск и полный парсинг документа

  1. Поищи файлы теории и задания (чаще всего это один файл), дополнительные файлы теории, файлы с примерами и объяснениями выполнения работы в корне проекта: *.pdf, *.docx, *.txt, *.md (исключая CLAUDE.md, README.md, report.md, instructions.md).
  2. Также проверь наличие изображений теории и задания: *.png, *.jpg, *.jpeg (фото/скан).
  3. Если файл с теорией и заданием не найден — попроси пользователя положить файл в корень проекта (возможное имя: theory_and_task.pdf, theory_and_task.docx, theory_and_task.txt или theory_and_task.md) и повтори поиск.

Полный парсинг документа:

Парси все найденные документы целиком (не только задание, но и теорию, методические указания, примеры — всё, что ты нашел). Цель — сохранить полный контекст исходных документов в удобном для агента формате: текст + ссылки на извлечённые изображения + описание каждого изображения (чтобы агенту было проще понимать, что на нем изображено не смотря каждый раз на него). Описание изображения должно быть максимально подробным.

  • Если есть venv и файл PDF/DOCX — запусти полный парсинг для каждого файла:
    .claude/lab/venv/bin/python .claude/lab/scripts/parse_assignment.py --full --images-dir .claude/lab/source-images <файл>
    
    Скрипт извлечёт весь текст и все изображения из каждого документа. Изображения сохранятся в .claude/lab/source-images/, а текст будет содержать Markdown-ссылки на них.
  • Если файл TXT/MD — прочитай через Read tool (изображений в таких файлах нет).
  • Если файл — изображение (PNG/JPG) — прочитай через Read tool (vision), извлеки весь текст.

Сохрани полный результат файла с теорией и заданием в .claude/lab/source-material.md, а все вспомогательные файлы в .claude/lab/reference-docs/.

Извлечение задания:

Из полного текста в source-material.md выдели часть, которая является непосредственно заданием (без теории и методических указаний), и сохрани в .claude/lab/assignment.md. Если весь документ — это задание (нет отдельной теории), скопируй целиком.

Шаг 5. Анализ задания + уточняющие вопросы

  1. Прочитай .claude/lab/source-material.md (полный текст документа) и.claude/lab/assignment.md (выделенное задание).
  2. Определи тип лабораторной работы:
    • practical — практическая (настройка ПО, сети, выполнение действий на компьютере)
    • theoretical — теоретическая (анализ, описание, сравнение)
    • programming — программирование (написание кода)
    • calculation — расчётная (вычисления, формулы)
  3. Если название ЛР не было указано пользователем — извлеки из текста задания.
  4. Если задание требует специфических данных (на какой ОС сидит пользователь/либо какую он будет использовать, версии ПО, сетевые настройки, конфигурация системы и т.д.) — задай уточняющие вопросы. Например, даже если сейчас пользователь сидит на macOS, необязательно, что он будет выполнять работу (запускать нужный софт) с нее. Полученные данные сохрани в config.system.additional_info.

Шаг 6. Шаблон-пустышка (report.docx)

ВАЖНО: Почти всегда пользователь предоставляет шаблон-пустышку — DOCX-файл с готовым титульным листом и заголовками секций (Цели работы, Ход работы, Дополнительное исследование, Выводы). Обычно называется report.docx, ИТОГОВЫЙ ОТЧЕТ.docx или ЛР_N_ФИО.docx.

Поиск шаблона:

  1. Поищи DOCX-файлы в корне проекта (кроме example.docx).
  2. Если нашёл один DOCX — предположи, что это шаблон, и спроси пользователя для подтверждения.
  3. Если нашёл несколько или ни одного — спроси пользователя, как называется файл шаблона.

Парсинг шаблона для извлечения данных:

Если шаблон найден — распарсь его через .claude/lab/venv/bin/python .claude/lab/scripts/parse_assignment.py <файл> и извлеки из титульного листа:

  • Название учебного заведения
  • Название предмета/курса
  • Тип работы (Лабораторная / Практическая / Задание)
  • Номер работы
  • Название работы
  • ФИО студента и группу
  • ФИО преподавателя (если указан)
  • Город

Эти данные используй как значения по умолчанию в опросе (Шаг 3). Не спрашивай то, что уже извлечено из шаблона — просто покажи извлечённые данные и спроси, всё ли верно. Это сильно сокращает опрос.

Резервная копия: При запуске /lab-report скрипт автоматически создаёт бэкап шаблона (.backup), чтобы при неудачной вставке можно было восстановить оригинал.

Шаг 7. Пример готовой лабораторной

Пользователь может также предоставить файл example.docx — пример выполненной работы, чтобы понять стиль и объём отчёта.

Анализ примера:

  1. Найди файл примера в корне проекта (example.*, или спроси пользователя, если имя другое).

  2. Если файл DOCX/PDF — распарсь через .claude/lab/venv/bin/python .claude/lab/scripts/parse_assignment.py <файл>. Если изображение — прочитай через Read tool (vision).

  3. Если файл DOCX — скопируй его в .claude/lab/templates/example.docx (для использования как шаблона стилей при генерации документа).

  4. Проанализируй содержимое и определи: Уровень детализации текста (detail_level):

    • "detailed" — подробное описание каждого действия, пояснения к каждому шагу, развёрнутые формулировки. Типично: абзац на каждый пункт задания.
    • "moderate" — ключевые действия описаны, есть краткие пояснения, но без избыточной детализации.
    • "brief" — лаконичный стиль: что сделано + результат, минимум объяснений.
  5. Сообщи пользователю результаты анализа и спроси, всё ли верно.

  • Если примера нет — используются стандартные настройки: detail_level = "detailed", стили по ГОСТ.

Шаг 8. Определение workflow

Спроси пользователя: нужна ли пошаговая инструкция (instructions.md), или сразу перейти к черновику отчёта?

Подсказка:

  • Если тип работы practical — рекомендуй инструкцию (/lab-instructions).
  • Если тип theoretical, programming или calculation — рекомендуй сразу черновик (/lab-draft).

Шаг 9. Сохранение config.json

Сохрани все собранные данные в .claude/lab/config.json (поле can_edit в template всегда должно быть true, даже не спрашивай пользователя о нём):

{
    "student": {
        "name": "ФИО студента",
        "group": "Группа"
    },
    "institution": {
        "name": "Полное название учебного заведения",
        "city": "Город"
    },
    "course": {
        "name": "Название предмета",
        "lab_type": "Лабораторная работа",
        "lab_number": 1,
        "lab_title": "Название лабораторной работы",
        "reviewer": null
    },
    "preferences": {
        "report_format": "docx",
        "output_filename": "report",
        "report_style": "first_person",
        "no_title_page": false,
        "needs_research": false,
        "needs_instructions": true
    },
    "system": {
        "os": "ОС пользователя",
        "python_path": "python3",
        "venv_python": ".claude/lab/venv/bin/python",
        "additional_info": {}
    },
    "example": {
        "has_example": false,
        "example_path": null,
        "detail_level": "detailed",
        "style_notes": ""
    },
   "template": {
      "has_template": false,
      "example_path": null,
      "can_edit": true
   },
    "assignment": {
        "original_file": "task.pdf",
        "source_material_file": ".claude/lab/source-material.md",
        "source_images_dir": ".claude/lab/source-images",
        "parsed_file": ".claude/lab/assignment.md",
        "type": "practical"
    }
}

Значения report_style: "first_person" (я выполнил), "impersonal" (было выполнено), "result_only" (только результаты, без описания процесса — минимальный отчёт). Значения lab_type: "Лабораторная работа", "Практическая работа", "Задание" (используется на титульном листе). reviewer: ФИО преподавателя или null (если не указан — строка преподавателя не выводится на титульном листе). no_title_page: true — не создавать титульный лист при генерации DOCX (для работ без титульника). Если Python не установлен: python_path и venv_python = null.

Шаг 10. Итог

Покажи пользователю итоговую конфигурацию в читаемом виде. Затем сообщи, что делать дальше:

  • Если needs_instructions = true → «Следующий шаг: /lab-instructions»
  • Если needs_instructions = false → «Следующий шаг: /lab-draft»

Дополнительный контекст от пользователя

$ARGUMENTS

Keep looking

Skills are one crate of 328,083. 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.