Описание
gost-report-skill — скилл сборки отчётов по лабораторным: вход — код, скриншоты схем и файл методички, выход — готовый docx, оформление по ГОСТ 7.32-2001 — структура, нумерация и оформление по стандарту отчёта о НИР, сборка целиком — агент собирает документ из разрозненных материалов. Для студентов технических вузов, оформляющих лабораторные по ГОСТ без ручной возни в Word.
Что умеет:
— собирать отчёт из кода и скриншотов;
— оформлять по ГОСТ 7.32-2001;
— выдавать готовый docx;
— работать с файлом методички.
Полная документация ниже — автоматически из репозитория taraved/gost-report-skill (ветка main). Оригинальные материалы проекта распространяются на условиях его лицензии.
📑 GOST Report Skill
AI-agent skill for generating GOST 7.32-2001 compliant lab reports as .docx
Описание •
Установка •
Файлы лабы •
Структура •
JSON Schema
🇷🇺 Русская версия · 🇬🇧 English version
🇷🇺 Русский
📋 Описание
GOST Report Skill — это инструкция (skill) для AI-агентов (Hermes Agent, Claude Code, Codex CLI и др.), которая позволяет автоматически оформлять отчёты по лабораторным работам в соответствии с ГОСТ 7.32-2001.
Как это работает:
- Вы даёте агенту исходный код, скриншоты схем и, если есть, методичку.
- Агент анализирует материалы (через Vision для схем, парсинг для кода).
- Агент формирует структурированный
data.jsonс описанием каждого задания. - Скрипт
generate_docx.pyпревращает JSON в готовый.docx-файл с титульным листом, оглавлением, таблицами, листингами и нумерацией по ГОСТ.
Всё, что нужно от вас — дать агенту два файла и сказать: «Сделай отчёт по лабораторной работе».
🤖 Как установить
Hermes Agent
Положите skill/SKILL.md и scripts/generate_docx.py в директорию навыков:
cp skill/SKILL.md ~/.hermes/skills/gost-lab-docx/SKILL.md
cp scripts/generate_docx.py ~/.hermes/skills/gost-lab-docx/scripts/generate_docx.py
Затем скажите агенту: «Используй навык gost-lab-docx для оформления отчёта».
Агент самостоятельно установит python-docx, проанализирует файлы, создаст data.json и запустит скрипт генерации.
Claude Code
Скопируйте содержимое skill/SKILL.md в файл CLAUDE.md вашего проекта или укажите в системном промпте.
Другие агенты
Любой агент с доступом к файловой системе и Python может:
- Прочитать
skill/SKILL.mdкак инструкцию. - Сформировать
data.json. - Вызвать
python scripts/generate_docx.py.
📂 Организация файлов для лучшего результата
Чтобы система не ошибалась, рекомендуется следующая структура в папке с вашей лабораторной работой:
Одно задание
Lab/
├── методичка.pdf (опционально, для постановки задачи)
├── схема.jpeg (скриншот схемы для анализа Vision)
├── main.cpp (исходный код)
└── README.md (ваши краткие заметки, если нужно)
Несколько заданий
Lab/
├── 1.jpeg (скриншот схемы для Vision)
├── 1a.txt (описание задания)
├── 1.txt (исходный код)
├── 2.jpeg (скриншот схемы для Vision)
├── 2a.txt (описание задания)
├── 2.txt (исходный код)
├── 3.jpeg (скриншот схемы для Vision)
├── 3a.txt (описание задания)
└── 3.txt (исходный код)
📂 Структура проекта
gost-report-skill/
├── LICENSE # MIT лицензия
├── README.md # Этот файл
├── pyproject.toml # Python-пакет (PEP 621)
├── .gitignore
├── skill/
│ └── SKILL.md # Инструкция для AI-агента
├── scripts/
│ ├── __init__.py
│ └── generate_docx.py # Генератор .docx
├── examples/
│ ├── data.json # Пример входных данных
│ ├── sample_report.docx # Готовый отчёт-пример
│ └── sample_circuit.jpeg # Пример схемы
└── docs/
├── screenshot_1.png
├── screenshot_2.png
├── screenshot_3.png
├── screenshot_4.png
└── usage.md # Справочник по ошибкам
📐 JSON Schema
Отчёт описывается JSON-файлом. Вот полная структура с пояснениями.
Пример
{
"discipline": "Алгоритмы и техника программирования",
"lab_number": 5,
"student_name": "Иванов И.И.",
"student_group": "РИ-231001",
"teacher": "Петров П.П.",
"city": "Екатеринбург",
"year": "2026",
"keywords": ["Qt", "C++", "GUI"],
"introduction": "Цель работы — освоить базовые приёмы...",
"conclusion": "Все задачи выполнены в полном объёме.",
"tasks": [
{
"number": 1,
"title": "Название задания",
"problem_statement": "Текст постановки задачи",
"test_data": {
"headers": ["Ввод", "Вывод"],
"rows": [["значение1", "результат1"]]
},
"algorithm": "1. Шаг первый...\n2. Шаг второй...",
"code_files": [
{
"caption": "main.cpp",
"content": "int main() { return 0; }"
}
],
"image_path": "docs/screenshot.png",
"image_caption": "Схема подключения"
}
],
"bibliography": [
"Автор. Название — М.: Изд-во, 2025. — 200 с."
],
"appendix": [
{
"title": "Приложение А",
"content": "Полный листинг..."
}
]
}
Обязательные поля
| Поле | Тип | Описание |
|---|---|---|
lab_number |
int |
Номер лабораторной работы |
tasks |
array |
Массив заданий (минимум 1) |
Поля каждого задания (tasks[])
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
number |
int |
✅ | Номер задания |
title |
string |
✅ | Краткое название |
problem_statement |
string |
✅ | Формальная постановка задачи |
test_data |
object |
Таблица с headers и rows |
|
algorithm |
string |
Пошаговое описание (через \n) |
|
code_files |
array |
✅ | Массив объектов {caption, content} |
image_path |
string |
Путь к скриншоту/схеме | |
image_caption |
string |
Подпись к рисунку |
Примечание:
test_data.headersиtest_data.rowsне обязательны, но без них таблица в отчёте не появится.
📄 Лицензия
MIT — делайте что хотите, но упомяните автора.
🙌 Как помочь
- PR и Issues приветствуются.
- Нашли ошибку? Создайте issue.
- Хотите добавить поддержку формул или сложных таблиц? Форк и вперёд.
🇬🇧 English
📋 Description
GOST Report Skill is an AI-agent skill (for Hermes Agent, Claude Code, Codex CLI, etc.) that automates lab report generation in GOST 7.32-2001 format — the Russian state standard for academic documentation.
How it works:
- You provide the agent with source code, screenshots, and (optionally) a lab manual.
- The agent analyzes everything (Vision for diagrams, text parsing for code).
- The agent produces a structured
data.jsondescribing each task. - The
generate_docx.pyscript turns the JSON into a polished.docxreport with title page, TOC, tables, listings, and GOST-compliant numbering.
All you need is to give the agent two files and say: "Generate a lab report".
🤖 How to install
Hermes Agent
Place skill/SKILL.md and scripts/generate_docx.py into your skills folder:
cp skill/SKILL.md ~/.hermes/skills/gost-lab-docx/SKILL.md
cp scripts/generate_docx.py ~/.hermes/skills/gost-lab-docx/scripts/generate_docx.py
Then tell your agent: "Use the gost-lab-docx skill to format my lab report".
The agent will install python-docx, analyze your files, create data.json, and run the generation script — all automatically.
Claude Code
Copy skill/SKILL.md contents into CLAUDE.md or your system prompt.
Other agents
Any agent with filesystem and Python access can:
- Read
skill/SKILL.mdas instructions. - Build
data.json. - Run
python scripts/generate_docx.py.
📂 File organization for best results
To help the agent understand your lab, structure your files like this:
Single task
Lab/
├── manual.pdf (optional, for problem statement)
├── circuit.jpeg (screenshot for Vision analysis)
├── main.cpp (source code)
└── README.md (your notes, if needed)
Multiple tasks
Lab/
├── 1.jpeg (screenshot for Vision analysis)
├── 1a.txt (task description)
├── 1.txt (source code)
├── 2.jpeg (screenshot for Vision analysis)
├── 2a.txt (task description)
├── 2.txt (source code)
├── 3.jpeg (screenshot)
├── 3a.txt (task description)
└── 3.txt (source code)
📂 Project Structure
gost-report-skill/
├── LICENSE # MIT license
├── README.md # This file
├── pyproject.toml # Python packaging (PEP 621)
├── .gitignore
├── skill/
│ └── SKILL.md # AI-agent instructions
├── scripts/
│ ├── __init__.py
│ └── generate_docx.py # .docx generator
├── examples/
│ ├── data.json # Sample input
│ ├── sample_report.docx # Sample output
│ └── sample_circuit.jpeg # Sample diagram
└── docs/
├── screenshot_1.png
├── screenshot_2.png
├── screenshot_3.png
├── screenshot_4.png
└── usage.md # Troubleshooting guide
📐 JSON Schema
The report is described by a JSON file. Here is the full structure:
Example
{
"discipline": "Algorithms and Programming",
"lab_number": 5,
"student_name": "Ivanov I.I.",
"student_group": "RI-231001",
"teacher": "Petrov P.P.",
"city": "Yekaterinburg",
"year": "2026",
"keywords": ["Qt", "C++", "GUI"],
"introduction": "The goal of this work...",
"conclusion": "All tasks completed.",
"tasks": [
{
"number": 1,
"title": "Task title",
"problem_statement": "Formal problem description",
"test_data": {
"headers": ["Input", "Output"],
"rows": [["value1", "result1"]]
},
"algorithm": "1. Step one...\n2. Step two...",
"code_files": [
{
"caption": "main.cpp",
"content": "int main() { return 0; }"
}
],
"image_path": "docs/screenshot.png",
"image_caption": "Connection diagram"
}
],
"bibliography": ["Author. Title — Moscow: Publisher, 2025. — 200 p."],
"appendix": [
{
"title": "Appendix A",
"content": "Full listing..."
}
]
}
Required fields
| Field | Type | Description |
|---|---|---|
lab_number |
int |
Lab work number |
tasks |
array |
Array of tasks (min 1) |
Per-task fields (tasks[])
| Field | Type | Required | Description |
|---|---|---|---|
number |
int |
✅ | Task number |
title |
string |
✅ | Short title |
problem_statement |
string |
✅ | Formal problem statement |
test_data |
object |
Table with headers and rows |
|
algorithm |
string |
Step-by-step description (use \n) |
|
code_files |
array |
✅ | Array of {caption, content} objects |
image_path |
string |
Path to screenshot/diagram | |
image_caption |
string |
Image caption |
Note:
test_data.headersandtest_data.rowsare optional — without them no table is generated.
📄 License
MIT — do whatever you want, but give credit.
🙌 Contributing
PRs and issues are welcome. Found a bug? Open an issue.