Умный движок правил
Умный движок правил превращает MORAYA.md вашей базы знаний в эффективную систему контекста «по требованию» для ИИ-ассистента — так что большие файлы правил больше не обрезаются жёстко и не тарифицируются полностью при каждом сообщении.
Какую проблему он решает
Раньше MORAYA.md инъецировался в системный промпт ИИ с фиксированным ограничением по количеству символов. Это вызывало три проблемы: правила могли обрываться на середине предложения, большие файлы наращивали стоимость токенов при каждом запросе, а ИИ приходилось угадывать, когда перечитать файл.
Движок правил заменяет «обрезку единого файла» на автоматическое разбиение + индексированную загрузку по требованию. Вы по-прежнему ведёте один файл; Moraya компилирует его в сегменты правил, которые ИИ загружает, только когда они уместны.
Как это работает
Когда вы сохраняете MORAYA.md, Moraya сравнивает хеш его содержимого. Если он изменился, файл разбивается по заголовкам верхнего уровня на сегменты в производной директории .moraya/rules/:
- Сегменты с glob-тегами — сегмент, помеченный
<!-- globs: ... -->, загружается автоматически, когда вы редактируете подходящий файл (условная загрузка с высоким приоритетом). - Сегменты без тегов — индексируются по заголовку; ИИ читает полный сегмент по требованию с помощью своих файловых инструментов.
- Нет структуры заголовков — файл возвращается к инъекции целиком (прежнее поведение без изменений), а интерфейс предлагает добавить заголовки.
Затем системный промпт несёт компактный индекс плюс содержимое любых сегментов, совпавших по glob, вместо всего файла.
Принципы проектирования
| Принцип | Что это значит |
|---|---|
| Единый источник истины | Вы ведёте только MORAYA.md; .moraya/rules/ — сгенерированный артефакт |
| Нулевая кривая обучения | Не нужен синтаксис glob — просто пишите хорошие заголовки Markdown |
| Выигрывают все | Вы видите весь документ, ИИ читает сегменты, тарификация — по требованию |
| Самовосстановление | .moraya/ не коммитится в Git; новая машина перестроит его автоматически |
| Обратная совместимость | Файлы без заголовков ведут себя точно так же, как раньше |
Добавление условных правил
Чтобы ограничить правило определёнными файлами, добавьте glob-комментарий под его заголовком:
## API documentation style
<!-- globs: docs/api/**/*.md -->
- Every endpoint must document its error responses.
- Use `snake_case` for JSON field names.
Теперь этот раздел инъецируется только тогда, когда вы редактируете файл в docs/api/. Разделы без glob-комментария остаются в индексе и подгружаются ИИ, когда они релевантны разговору.
Советы
- Держите каждое правило под чётким описательным заголовком — заголовок становится записью в индексе, с которой ИИ сопоставляет запрос.
- Группируйте широко применимые правила (тон, терминология) без globs; ограничивайте узкие правила (соглашения для конкретной папки) с помощью globs.
- Производную директорию
.moraya/можно безопасно удалить — она перестроится при следующем сохранении.