Линтер с базой заложенной во время работы в Astramanga. На данный момент в стадии написания RFC.
Статический анализатор JavaScript и TypeScript, построенный поверх полного графа программы — не только AST, но и IR, CFG, DFG, alias-анализ, граф вызовов и зависимостей.
Конкуренция не в скорости — а в способности видеть то, что другие инструменты не могут.
Существующие линтеры (ESLint, Biome, oxlint) работают на уровне AST-паттернов. Этого достаточно для стилистических проверок, но принципиально недостаточно для обнаружения проблем, требующих понимания потока данных и межпроцедурного контекста.
Этот проект строит полный граф программы и даёт правилам доступ ко всем уровням одновременно.
Wrapper — политика: что показывать пользователю
↑ факты + флаги достоверности
Ring 1 — анализ: alias-analysis, query engine, правила
↑ структурный артефакт
Ring 0 — парсер: AST, IR, CFG, DFG, граф вызовов
- Ring 0 — «тупой парсер». Строит граф, помечает достоверность, не знает о правилах. Результат — переносимый артефакт (можно передать через git).
- Ring 1 — анализ. Summary-based alias analysis через CFL-reachability, fused pull-push execution, demand-driven дорогие анализы.
- Wrapper — конфигурация и решение о репортинге.
Реализация на Rust. Правила пишутся на JS, компилируются в Rule IR.
Стадия архитектурного дизайна. Полный RFC: RFC.md