agentsclimarketplace

Lab setup

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

Настройка проектаFrom its SKILL.md

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.

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 6 commands, including `python3 --version` and 5 more.

SKILL.md

15.9 KB, ~3.9k tokens by cl100k_base, 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

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.