diff --git a/ACTIONS.md b/ACTIONS.md new file mode 100644 index 0000000..77fe0bb --- /dev/null +++ b/ACTIONS.md @@ -0,0 +1,74 @@ +# ACTIONS.md + +Внутренний ранбук действий для ассистента в этом репозитории. +Цель: выполнять типовые задачи одинаково, быстро и в рамках `AGENTS.md`. + +## Операционный протокол (для любого action) +1. Проверить ограничения из `AGENTS.md` и подтвердить границы задачи. +2. Зафиксировать короткий план выполнения (3-7 шагов). +3. Выполнить изменения минимально и точечно. +4. Проверить результат по чек-листу action. +5. Показать пользователю итог и спросить разрешение на commit/push. + +## Шаблон action +- `Команда`: уникальный идентификатор `section:name`. +- `Назначение`: какой результат должен быть получен. +- `Входы`: конкретные файлы/источники. +- `План`: исполняемые шаги без абстракций. +- `Проверка`: как подтверждается корректность. +- `Выход`: какие файлы меняются. +- `Отчет пользователю`: формат финального сообщения. + +## Action: создать новый action +- `Команда`: `action:new` +- `Назначение`: добавить новый повторяемый сценарий в `ACTIONS.md`. +- `Входы`: описание задачи от пользователя. +- `План`: + 1. Уточнить цель, границы, ожидаемый результат. + 2. Предложить имя команды `section:name` и согласовать. + 3. Заполнить все поля шаблона action. + 4. Проверить уникальность команды в файле. + 5. Показать пользователю готовый блок перед commit. +- `Проверка`: + - Команда не дублируется. + - План выполним в рамках `AGENTS.md`. + - Есть явный критерий завершения. +- `Выход`: обновленный `ACTIONS.md`. +- `Отчет пользователю`: + - Что добавлено. + - Какой командой запускать. + - Что будет считаться завершением. + +## Action: обновление перевода +- `Команда`: `translation:update` +- `Назначение`: синхронизировать `russian.xml` с upstream English с сохранением терминологии. +- `Входы`: + - `Mods/DnD 5.5e AIO Russian/Localization/Russian/russian.xml` + - upstream English (ссылка в `AGENTS.md`) + - `glossary/glossary.normalized.json` +- `План`: + 1. Сопоставить English и Russian по ключам. + 2. Разделить расхождения на `new`, `changed`, `stale-candidate`. + 3. Обновить перевод для `new` и `changed` по глоссарию. + 4. Проверить XML-целостность и служебные атрибуты. + 5. Подготовить краткий список выполненных изменений. +- `Проверка`: + - XML не поврежден. + - Термины согласованы с глоссарием. + - Нет изменений за пределами локализации/разрешенных метаданных. +- `Выход`: + - обновленный `russian.xml` + - при релизном шаге: согласованные изменения в `meta.lsx` по правилам версии +- `Отчет пользователю`: + - Сколько строк добавлено/обновлено/помечено как `stale-candidate`. + - Какие файлы изменены. + - Нужен ли следующий релизный шаг. + +## Action: отчет по выполнению (внутренний формат) +- `Команда`: `action:report` +- `Назначение`: единый короткий формат отчета после любого action. +- `Шаблон отчета`: + 1. Что сделано. + 2. Какие файлы изменены. + 3. Что проверено. + 4. Что остается (если есть). diff --git a/AGENTS.md b/AGENTS.md index 02d3140..96cf80f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,6 +14,7 @@ - Build script (single source of build truth): `scripts/build.ps1` - CI workflow: `.gitea/workflows/build.yml` - Glossary (primary terminology reference): `glossary/glossary.normalized.json` +- Action catalog and command playbooks: `ACTIONS.md` - Upstream English reference: `https://github.com/Yoonmoonsik/dnd55e/blob/main/Mods/DnD2024_897914ef-5c96-053c-44af-0be823f895fe/Localization/English/english.xml` ## Packaging Invariants (MUST)