Glint: статический анализатор, который находит баги без запуска кода
⚡️ Что это. aiseeq собрал статический анализатор под Go и TypeScript, который ищет реальные ошибки ещё до запуска.
Писал его, чтобы AI-агенты быстрее вникали в чужую кодовую базу.
🔬 Как работает. Инструмент разбирает исходники в синтаксическое дерево и прогоняет по нему правила-детекторы.
Три слоя: одни ловят текстовые паттерны регулярными выражениями, другие разбирают структуру обходом дерева, а самые тяжёлые строят SSA-представление и отслеживают поток данных между функциями.
🐛 Что ловит. Конкретные баги. Классика Go: указатель на nil, завёрнутый в интерфейс, при сравнении с nil вдруг оказывается не nil.
Или маскирование ошибки, когда код возвращает ноль и делает вид, что всё прошло.
Или незакрытое тело HTTP-ответа, сравнение времени через
🛡️ У правила
Каждое срабатывание получает уровень серьёзности от низкой до критической, ложные глушатся в коде пометкой
Заточен под баги, которые реально роняют прод.
Пока знает Go и TypeScript, но как детектор под агентный ревью кода выглядит сильным.
Проект открыт для контрибьюторов.
Отдаём агенту ссылку и говорим создать себе на базе него навык для поиска ошибок.
Если хотите дополнить поддержкой других языков или функционалом, - велком.
#staticanalysis #golang #dev #glint
———
@tsingular
⚡️ Что это. aiseeq собрал статический анализатор под Go и TypeScript, который ищет реальные ошибки ещё до запуска.
Писал его, чтобы AI-агенты быстрее вникали в чужую кодовую базу.
🔬 Как работает. Инструмент разбирает исходники в синтаксическое дерево и прогоняет по нему правила-детекторы.
Три слоя: одни ловят текстовые паттерны регулярными выражениями, другие разбирают структуру обходом дерева, а самые тяжёлые строят SSA-представление и отслеживают поток данных между функциями.
🐛 Что ловит. Конкретные баги. Классика Go: указатель на nil, завёрнутый в интерфейс, при сравнении с nil вдруг оказывается не nil.
Или маскирование ошибки, когда код возвращает ноль и делает вид, что всё прошло.
Или незакрытое тело HTTP-ответа, сравнение времени через
==, затенение переменных, забытые мьютексы.🛡️ У правила
error-masking принцип: падать явно, без тихой деградации. Каждое срабатывание получает уровень серьёзности от низкой до критической, ложные глушатся в коде пометкой
//nolint:<rule>.Заточен под баги, которые реально роняют прод.
Пока знает Go и TypeScript, но как детектор под агентный ревью кода выглядит сильным.
Проект открыт для контрибьюторов.
Отдаём агенту ссылку и говорим создать себе на базе него навык для поиска ошибок.
Если хотите дополнить поддержкой других языков или функционалом, - велком.
#staticanalysis #golang #dev #glint
———
@tsingular
⚡6✍2👨💻1