Files
SSAUGenerator/AGENTS.md
2026-10-11 23:34:14 +04:00

134 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AGENTS.md — управление проектом SSAU Generator
Репозиторий содержит два независимых генератора отчётных документов из Markdown.
Этот файл описывает управление проектом в целом. Правила работы с конкретным
документом — в [`docx/AGENTS.md`](docx/AGENTS.md) и [`pptx/AGENTS.md`](pptx/AGENTS.md).
## Что использовать по запросу пользователя
- Просит **сгенерировать документ** (отчёт, DOCX, пояснительную записку,
лабораторную работу) — используйте генератор в папке `docx/`.
- Просит **сгенерировать презентацию** (PPTX, слайды) — используйте генератор в
папке `pptx/`.
Команды запускаются из корня репозитория; генератору указывается `config.yaml`
нужного проекта. Содержимое документа задаётся Markdown-файлами и `config.yaml`
проекта, а не кодом генератора.
## Правила работы над проектом
- **Уточните название проекта.** Если пользователь не указал, над каким проектом
ведётся работа, сначала спросите его. Проект — это папка `content/<проект>/`.
- **Один проект за сессию.** В рамках одной сессии работайте только над одним
проектом.
- **Создание — только через `--init`.** Новый проект создавайте командами с флагом
`--init` (см. ниже): они формируют правильную структуру и общий каталог
ресурсов.
- **Сначала план — потом работа.** Прежде чем наполнять проект, составьте план и
сохраните его в `content/<проект>/PLAN.md` (см. раздел «Планирование проекта»).
Работу над содержимым начинайте только после согласования плана с пользователем.
- **Имя результата = имя проекта.** Документ и презентация собираются в папку
проекта, а имя файла совпадает с именем проекта:
`content/<проект>/<проект>.docx` и `content/<проект>/<проект>.pptx`.
Соответствующий путь задаётся ключом `output` в `config.yaml`.
- **Пересобирайте после правок.** При любом изменении исходных файлов
(`config.yaml`, `*.md`, ресурсов в `assets/`) заново запускайте сборку docx
и/или pptx, чтобы результат соответствовал исходникам.
## Структура репозитория
```
ssau-generator/
├── docx/ # генератор DOCX (только код)
├── pptx/ # генератор PPTX (только код)
├── tools/ # общий plantuml.jar (не в git)
├── content/ # проекты (в git хранится только example)
│ └── example/
│ ├── assets/ # общие ресурсы проекта (для docx и pptx)
│ ├── docx/ # config.yaml + *.md
│ ├── pptx/ # config.yaml + slides/
│ └── PLAN.md # согласованный план проекта
├── AGENTS.md # этот файл
└── README.md
```
## Проекты и каталог content
- **Один проект = одна папка** `content/<проект>/`.
- Внутри проекта при необходимости лежат папки `docx/` и `pptx/`.
- **Общие ресурсы проекта** (титульный лист, задники, изображения, исходники
`.puml`) размещаются в `content/<проект>/assets/` и используются обоими
генераторами. В `docx/` и `pptx/` внутри проекта хранятся только `config.yaml`
и Markdown.
- Папки `content/*` добавлены в `.gitignore`; в репозитории хранится только
`content/example/`. Рабочие проекты пользователя коммитить не нужно.
## Планирование проекта
Перед наполнением проекта составьте план и сохраните его в
`content/<проект>/PLAN.md`. План создаётся **до** работы над `config.yaml` и
Markdown и согласуется с пользователем. В плане укажите:
- **реквизиты** — студент (ФИО), группа, дисциплина;
- **тему** работы и её цель;
- **структуру** — разделы и подразделы с названиями и пунктами (для документа —
по `sections`, для презентации — список слайдов);
- **краткое содержание** каждого раздела/слайда;
- **список источников** — если согласован с пользователем;
- **нюансы** — особые требования пользователя (объём, оформление, сроки,
ограничения и т.п.), если они указаны;
- прочие согласованные детали.
Пример готового плана — `content/example/PLAN.md`.
## Создание нового проекта
Проект создаётся командами с флагом `--init` — они формируют структуру и общие
ресурсы автоматически:
```powershell
# только документ DOCX
node docx/src/cli.js --content content/<проект>/docx --init
# только презентация PPTX
node pptx/src/cli.js -c content/<проект>/pptx/config.yaml --init
# оба генератора (каталог content/<проект>/assets/ создаётся первым вызовом
# и переиспользуется вторым)
```
После создания отредактируйте `config.yaml` и Markdown; общие ресурсы
(титульный лист, задники, изображения, `.puml`) положите в
`content/<проект>/assets/`.
## Сборка
```powershell
# Документ DOCX
node docx/src/cli.js --content content/<проект>/docx --check
node docx/src/cli.js --content content/<проект>/docx
# Презентация PPTX
node pptx/src/cli.js -c content/<проект>/pptx/config.yaml --check
node pptx/src/cli.js -c content/<проект>/pptx/config.yaml
```
Результат: `content/<проект>/<проект>.docx` или
`content/<проект>/<проект>.pptx` (имя и путь задаются ключом `output` в
`config.yaml`). После правок исходников пересобирайте файлы.
## Требования
- Node.js 18+, зависимости устанавливаются командой `npm install` в `docx/` и
`pptx/`.
- Java 11+ и файл `tools/plantuml.jar` (не хранится в git) — для рендеринга схем
PlantUML (`.puml`).
## Правила
- Для сборки документа не редактируйте код генераторов — меняйте `config.yaml`
и Markdown проекта.
- Не коммитьте содержимое `content/`, кроме `content/example/`.
- Не храните ресурсы внутри `docx/` и `pptx/` — общие файлы живут в
`content/<проект>/assets/`.