Руководство ROFL
ROFL держит модель вашего кода и отвечает на вопросы о ней с доказательством. Эти страницы — документация для людей: что он отвечает, как спрашивать, как писать свои правила. Каждый вывод команды в них напечатан самим инструментом при сборке руководства, а не набран руками, так что вы читаете то, что действительно работает. Страницы публикуются на disentinel.github.io/rofl/guide при каждом слиянии в main.
Английский текст — исходный; перевод идёт за ним с отставанием не больше недели. Код, команды и их вывод везде остаются английскими: это то, что вы увидите у себя на экране. Глава, которой ещё нет по-русски, открывается по-английски и помечена в списке слева как «(en)».
С чего начать
| 1 | WHAT.md | Что такое ROFL и что он отвечает, на одном маленьком примере: ответ с доказательством, где останавливается «нет» и чего модель не увидела |
| 2 | INSTALL.md, QUICKSTART.md | Установить, пройти учебник, написать свой блокнот, направить его на свой код |
| 3 | ASKING.md | Те же вопросы из командной строки, для человека или агента: rofl ask, why, whynot, --json, сохранённый мир, коды выхода |
Пишем своё
| CONCEPTS.md | Ячейки, предложения, факты, правила, строки-вопросы, коды выхода; словарь терминов |
| WRITING.md | Форма предложения: все её правила на одной странице |
| CHEATSHEET.md | Всё то же на одном экране |
| DRAWING.md | draw: картинка того, к чему пришёл блокнот |
| MODELS.md | translate: языковая модель пишет ячейку rofl по просьбе словами, и что ей разрешено читать |
Для агентов и авторов инструментов
| AGENTS.md | Фрагмент для CLAUDE.md проекта, rofl-nb --json, коды выхода |
| ADAPTERS.md | Как написать адаптер: как мир спрашивает внешнее — базу данных, программу, MCP-сервер или HTTP API — и получает факты назад |
Что нового
1.5 (1.5.0 — 24 октября 2026, 1.5.1 — 25 октября)
- Установка из npm:
npm install -g @grafema/rofl(INSTALL.md). npm скачивает движок только для вашей машины. Если у вас стоял 1.4 из архива, сначала выполнитеnpm uninstall -g rofl-nb. 1.5.1 — тот же инструмент, но скачивается 1 МБ вместо 1,6 МБ. - Спрашивать о коде можно из любого каталога.
rofl scan DIR --out code.roflпревращает JavaScript в факты, а@rules/js.filesнаходит модель JS, которая лежит в пакете;rofl --versionговорит, какая версия работает (ASKING.md). - Повторный вопрос после правки стоит дёшево. Сохранённый мир забирает изменённый файл и хранит рядом с прежним миром только то, что изменилось. На 250 файлах VS Code правка и вопрос после неё занимают около секунды, а тот же вопрос ещё раз — около трети секунды.
- Неполный ответ так и говорит. Если сканирование упало или мир вырос больше предела кэша (
ROFL_CACHE_GB), ответ помечен как частичный, а код выхода — 5 (ASKING.md, «Коды выхода»). - Мир может обратиться наружу. Правило
wantспрашивает программу, базу SQLite, MCP-сервер, HTTP API или другой мир ROFL, и ответы приходят фактами, которые правила читают как любые другие (ADAPTERS.md). - Мир, сохранённый версией 1.4, один раз вычисляется заново: формат сохранённого мира изменился.
Уже в main, но ещё не в выпуске
Адаптерная часть уже описана в ADAPTERS.md, но в установленном 1.5.1 ничего из этого пока нет.
- Книгу адаптера можно подписать на узле Roflenox, и движок её проверит; адаптер
roflможет спрашивать мир, который обслуживает другой процесс; человек входит в сервис адаптера через браузер (rofl adapter login); время события сводится к одному моменту, в каком бы часовом поясе его ни записали. - Модель JS говорит, когда код вызывает у объекта член, которого у него нет, и читает
Mapв том порядке, в каком записаны вызовыset. - Правка сохранённого мира стоит меньше: на 250 файлах VS Code десятый файл, добавленный один за другим, обходится в 4,3 с вместо 13.
Дальше
Проектные решения, стоящие за всем этим, лежат в docs/, по файлу на решение; они написаны для людей и агентов, которые работают над движком. Каждый флаг командной строки описан в docs/cli.md; что изменилось в каждом выпуске и что агенту теперь делать иначе — в docs/releases/. Блокнот работает и в браузере, ничего не устанавливая: disentinel.github.io/rofl.