Forwarded from Лаборатория Математики и Программирования Сергея Бобровского
Супер-синхронизм: мой конца февраля пост про DSL
"как нейронки агенты использовать, чтобы писать в 1000 раз компактный код (любые технологии фреймворки, не важно), и чтобы человек уровня миддл мог реализовывать проекты любой сложности, сохраняя её рост линейным."
А 4 марта выходит мощный пейпер "A Generalized Algebraic Theory for Type Theory with Explicit Universe Polymorphism" учёных четырёх европейских университетов (я уже говорил не раз, что все годы придерживаюсь подходов именно европейской школы computer science, она сегодня топчик). Это математическая теория для создания DSL, и при этом строго в рамках теории типов! В самой статье DSL не упоминается, это как-то слишком приземлённо, но разбирается именно это, просто на более высоких уровнях абстракции.
Конкретную программу пишем на DSL, и этот язык предметной области формально описывается мета-системой (GAT из статьи), которая описывается мета-мета-системой (Алан Кэй: "Lisp isn't a language, it's a building material").
И вот наконец данная работа развивает эту идею до математического абсолюта: GAT/CwF позволяют создавать языки с формально доказанными свойствами, и отсюда мы попадаем и в существенно облегчённую формальную верификацию, и суперпродуктивную работу с нейронками, которые так здорово понимают лингвистически формализованные бизнес-темы, генеря реально хороший код.
Алан Кэй мечтал о системах, где:
- всё есть язык (объекты общаются сообщениями);
- можно менять систему на лету (мета-программирование);
- система может описывать саму себя.
Пейпер добавляет к этому:
- система может математически доказать свою корректность;
- любой DSL, описанный в этом мета-языке, наследует все эти гарантии!
Это мета-инструмент для создания инструментов -- способ легко и просто делать языки/фреймворки, в которых ошибки (включая ошибки кодогенерации нейронками) невозможны в принципе!
=
Сама статья даёт категорный взгляд на синтаксис и правила вывода, позволяющий строить т.н. "начальные" модели и доказывать их единственность через общую алгебраическую теорию (GAT) (в рамках MLTT например). "Начальные" - это по сути математический объект, где синтаксис языка (то, что пишет программист) однозначно соответствует его семантике (тому, что происходит при выполнении).
Обобщение многосортных алгебраических теорий: сорта и операторы могут иметь зависимые типы, позволяет описывать синтаксис и правила типизации как сигнатуру с уравнениями.
CwF (Category with Families): категориальная модель зависимых типов.
Индексация уровнями, уровни вселенных организуются как untyped cwf (явный полиморфизм). Вы же помните мой трек по HoTT? :)
Каждая теория представляется как GAT. Синтаксис -- это начальная модель. Категориальная абстракция устраняет зависимость от конкретных правил вывода. Связь с Second-Order Generalised Algebraic Theories, Quotient Inductive-Inductive Types, Logical Frameworks...
Метод применим вообще к любым формальным дедуктивным системам!!
=
Когда вы пишете DSL на Racket или Scala, RoR или Haskell, вы полагаетесь на свой опыт, тесты и code review, и всё. Даже в Template Haskell нету гарантий корректности.
Когда мы описываем DSL через GAT (как в статье), мы получаем
- математическую гарантию, что наш DSL корректен;
- автоматическую верификацию всех программ на этом DSL;
- наследование свойств через иерархию мета-уровней.
Это и есть та самая "meta-system" Алана Кэя, доведённая до логического и математического совершенства.
"как нейронки агенты использовать, чтобы писать в 1000 раз компактный код (любые технологии фреймворки, не важно), и чтобы человек уровня миддл мог реализовывать проекты любой сложности, сохраняя её рост линейным."
А 4 марта выходит мощный пейпер "A Generalized Algebraic Theory for Type Theory with Explicit Universe Polymorphism" учёных четырёх европейских университетов (я уже говорил не раз, что все годы придерживаюсь подходов именно европейской школы computer science, она сегодня топчик). Это математическая теория для создания DSL, и при этом строго в рамках теории типов! В самой статье DSL не упоминается, это как-то слишком приземлённо, но разбирается именно это, просто на более высоких уровнях абстракции.
Конкретную программу пишем на DSL, и этот язык предметной области формально описывается мета-системой (GAT из статьи), которая описывается мета-мета-системой (Алан Кэй: "Lisp isn't a language, it's a building material").
И вот наконец данная работа развивает эту идею до математического абсолюта: GAT/CwF позволяют создавать языки с формально доказанными свойствами, и отсюда мы попадаем и в существенно облегчённую формальную верификацию, и суперпродуктивную работу с нейронками, которые так здорово понимают лингвистически формализованные бизнес-темы, генеря реально хороший код.
Алан Кэй мечтал о системах, где:
- всё есть язык (объекты общаются сообщениями);
- можно менять систему на лету (мета-программирование);
- система может описывать саму себя.
Пейпер добавляет к этому:
- система может математически доказать свою корректность;
- любой DSL, описанный в этом мета-языке, наследует все эти гарантии!
Это мета-инструмент для создания инструментов -- способ легко и просто делать языки/фреймворки, в которых ошибки (включая ошибки кодогенерации нейронками) невозможны в принципе!
=
Сама статья даёт категорный взгляд на синтаксис и правила вывода, позволяющий строить т.н. "начальные" модели и доказывать их единственность через общую алгебраическую теорию (GAT) (в рамках MLTT например). "Начальные" - это по сути математический объект, где синтаксис языка (то, что пишет программист) однозначно соответствует его семантике (тому, что происходит при выполнении).
Обобщение многосортных алгебраических теорий: сорта и операторы могут иметь зависимые типы, позволяет описывать синтаксис и правила типизации как сигнатуру с уравнениями.
CwF (Category with Families): категориальная модель зависимых типов.
Индексация уровнями, уровни вселенных организуются как untyped cwf (явный полиморфизм). Вы же помните мой трек по HoTT? :)
Каждая теория представляется как GAT. Синтаксис -- это начальная модель. Категориальная абстракция устраняет зависимость от конкретных правил вывода. Связь с Second-Order Generalised Algebraic Theories, Quotient Inductive-Inductive Types, Logical Frameworks...
Метод применим вообще к любым формальным дедуктивным системам!!
=
Когда вы пишете DSL на Racket или Scala, RoR или Haskell, вы полагаетесь на свой опыт, тесты и code review, и всё. Даже в Template Haskell нету гарантий корректности.
Когда мы описываем DSL через GAT (как в статье), мы получаем
- математическую гарантию, что наш DSL корректен;
- автоматическую верификацию всех программ на этом DSL;
- наследование свойств через иерархию мета-уровней.
Это и есть та самая "meta-system" Алана Кэя, доведённая до логического и математического совершенства.
Forwarded from AI-Driven Development. Родион Мостовой
Сегодня в 13:00 по МСК мы проводим митап как раз на тему системного мышления и его применения в SDD - Иван Закутный (@neuralstack) расскажет нам про FPF (First Principle Framework) операционную систему мышления для LLM и как он на основе FPF сделал обвязку для Claude Code, набравшую более 1000 звёзд на GitHub.
Добавляйте встречу в календарь, чтобы не пропустить: https://luma.com/z0hnbsnl
Добавляйте встречу в календарь, чтобы не пропустить: https://luma.com/z0hnbsnl
fpf_meet_notes.md
16.6 KB
Ну вот и прошел наш стрим! Как мне кажется вышло вполне не плохо!
Мы отошли в некоторой степени (примерно на половину) от моего плана, но все равно получилось здорово!
Отдельное спасибо Анатолию Игоревичу за поддержку в чате! Про FPF и системное мышление очень тяжело говорить, особенно когда ты далеко от хотя бы какой то квалификации в последнем🙏
Для всех кто слушал подкаст, вот обещанная "методичка", а на самом деле минимальная напоминалка об FPF и шаги с которых вы можете начать прямо сегодня.
На днях я дополнительно напишу пост, проговорю все что хотел по плану стрима, плюс планы на сам quint-code – почему я его воскрешаю и как думаю его развивать!
***
Подписывайтесь на Канал Родиона AI-Driven Development
Забирайте FPF Simple Skill
Пробуйте Quint Code
Оригинал FPF Спецификации Анатолия Левенчука
Больше ссылок, напоминалки и примеры промптов в прикрепленном маркдауне.
stay tuned как говорится, и спасибо за ваше внимание 💖
Мы отошли в некоторой степени (примерно на половину) от моего плана, но все равно получилось здорово!
Отдельное спасибо Анатолию Игоревичу за поддержку в чате! Про FPF и системное мышление очень тяжело говорить, особенно когда ты далеко от хотя бы какой то квалификации в последнем
Для всех кто слушал подкаст, вот обещанная "методичка", а на самом деле минимальная напоминалка об FPF и шаги с которых вы можете начать прямо сегодня.
На днях я дополнительно напишу пост, проговорю все что хотел по плану стрима, плюс планы на сам quint-code – почему я его воскрешаю и как думаю его развивать!
***
Подписывайтесь на Канал Родиона AI-Driven Development
Забирайте FPF Simple Skill
Пробуйте Quint Code
Оригинал FPF Спецификации Анатолия Левенчука
Больше ссылок, напоминалки и примеры промптов в прикрепленном маркдауне.
stay tuned как говорится, и спасибо за ваше внимание 💖
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы вдруг послушали вчерашний подкаст и побежали пробовать quint-code – остановитесь!
Потому что переписывание квинткода пошло куда быстрее и лучше, чем я думал.
Версия 5(которая сейчас в dev ветке – намек поняли?) переделана в плане интерфейса более чем полностью!
Фрикций меньше, easy-mode есть, онбординг проще! Раньше квинт код затащить в brownfield было сложнее, а теперь... А теперь только пальцем покажи!
По поводу фрейма – если раньше QC был ADI focused, то теперь тут на первом месте ProblemOps – у вас все идет от проблем! Сначала вы ее фреймите, потом углубляетесь в нее. Или не углубляетесь, квинткод сам скажет – "эээ, бро, ну это совсем trivial, давай, может, сразу пофиксим и запишем артефакт decision?"
И таки пофиксит! И запишет! То есть "автодокументация" из старого квинта все еще остается. И довелась до ума фишка с устареванием артефактов – тут будет RefreshOps!
Мне очень нравится, что получается. Я уже во всю использую nightly сборку и для догфудинга, и для рабочих проектов.
Я думаю, что на этой неделе 5 версия выкатится в main официально 🙂
А дальше – больше! У меня уже есть наполеоновские планы куда делать ходы чтобы "штука" была более FPF complient.
И все это с более человеческим UX, который вас не карает. Никаких фашиствующих стейт машин.
да, все еще придется разобраться в этом интерфейсе – что там за команда, в каком порядке и примерно для чего их вызывать надо... но это много проще, и даже если не разобраться, базовый
В общем огонь!
Потому что переписывание квинткода пошло куда быстрее и лучше, чем я думал.
Версия 5
Фрикций меньше, easy-mode есть, онбординг проще! Раньше квинт код затащить в brownfield было сложнее, а теперь... А теперь только пальцем покажи!
По поводу фрейма – если раньше QC был ADI focused, то теперь тут на первом месте ProblemOps – у вас все идет от проблем! Сначала вы ее фреймите, потом углубляетесь в нее. Или не углубляетесь, квинткод сам скажет – "эээ, бро, ну это совсем trivial, давай, может, сразу пофиксим и запишем артефакт decision?"
И таки пофиксит! И запишет! То есть "автодокументация" из старого квинта все еще остается. И довелась до ума фишка с устареванием артефактов – тут будет RefreshOps!
Мне очень нравится, что получается. Я уже во всю использую nightly сборку и для догфудинга, и для рабочих проектов.
Я думаю, что на этой неделе 5 версия выкатится в main официально 🙂
А дальше – больше! У меня уже есть наполеоновские планы куда делать ходы чтобы "штука" была более FPF complient.
И все это с более человеческим UX, который вас не карает. Никаких фашиствующих стейт машин.
да, все еще придется разобраться в этом интерфейсе – что там за команда, в каком порядке и примерно для чего их вызывать надо... но это много проще, и даже если не разобраться, базовый
/q-reason теперь умет в "основной" FPF.В общем огонь!
Добрый вечер, я – диспетчер пятой версии Quint Code 🎉
Кто-то ждал этого так долго, что уже перестал ждать.
Кто-то (я) не ждал этого вообще и похоронил Quint Code в мыслях и сердце своем
уже как месяц-другой (я во всю уже собирался делать standalone cli agent – но зачем?), пользовался
В общем есть много чего почитать:
• Обновленный лендинг -> https://quint.codes/
• Длиннопост на русском который я обещал на стриме у Родиона
• Длиннопост на английском там же или на SubStackПОДПИШИСЬ 💗
TL;DR – оно стало лучше; Оно стало тем чем должно было быть с самого начала. И есть куда расти!
Пока я обновлял лендинг, свой сайт и дописывал письмо – уже почти готова 5.1.0🤣 – но все подробности читайте по ссылкам выше!
С вас – поделиться с другом, я ведь не только для себя QC делаю, чем больше будет фидбека тем лучше оно станет.
Впрочем идея standalone режима не мертва🤫
Кто-то ждал этого так долго, что уже перестал ждать.
Кто-то (я) не ждал этого вообще и похоронил Quint Code в мыслях и сердце своем
уже как месяц-другой (я во всю уже собирался делать standalone cli agent – но зачем?), пользовался
FPF-Spec.md + Чатик, и мечтал об "умном агенте инженере но так чтобы и мозги не делал мне, и по FPF умел когда надо..."В общем есть много чего почитать:
• Обновленный лендинг -> https://quint.codes/
• Длиннопост на русском который я обещал на стриме у Родиона
• Длиннопост на английском там же или на SubStack
TL;DR – оно стало лучше; Оно стало тем чем должно было быть с самого начала. И есть куда расти!
Пока я обновлял лендинг, свой сайт и дописывал письмо – уже почти готова 5.1.0
С вас – поделиться с другом, я ведь не только для себя QC делаю, чем больше будет фидбека тем лучше оно станет.
Впрочем идея standalone режима не мертва
Please open Telegram to view this post
VIEW IN TELEGRAM
Темпы разработки quint code ужасают и радуют.
Все идеи, которые я вынашивал 2 месяца, вымысливал письмом в личные заметки, в разные проекты, несчетные deep-researches – все это сейчас обрастает структурой. Это конечно не конвергенция технологий, но явление концептуально похожее! Просто в микроскопическом масштабе.
Во вчерашнем письме я рассказываю про потенциальный roadmap, но как-то мямлю о том что "ну этого всего может и не будет..."
Будет, как не быть!
Solo-dev это круто, инди хакер, все дела. Но огромное число людей работают в командах, поэтому тут нужен и problem-ops для каждого киборга (человек + его агент), и коллективная база знаний (желательно мутирующая, со всем RefreshOps и остальной красотой которую обещает текущая версия квинткода в разработке).
5.1.0 посидит в dev еще какое то время, потому что кроме spec coverage туда приедет миграция. Мы выносим sqlite базу из репы и делаем ее центральной, это уже ход на то что quint-code у вас скоро начнет собирать в одном месте не просто спеки из разных реп, но и будет стремиться собирать "общую базу lessons-learned" по всем вашим проектам, своего рода гибридный контекст.
Все это пока еще будет только для solo dev mode, basic – назовем его так. Следующий шаг на team dev-ex неминуемо принесет второй процесс для центрального сервера, который будет крутиться демоном. Сделаю это все конечно красиво, чтобы устанавливалось и разворачивалось по людски, без мамбо джабо с докер контейнерами и прочей морально устаревшей, тяжелой фигней.
Этот процесс все еще можно будет запускать локально "только для себя, моя прелесть🌟 ".
Зачем отдельный процесс а не просто в общую базу лить? Ну, во-первых, там неминуемо будут конфликты.
Во-вторых, центральный сервер-мозг открывает нам кучу новых возможностей, за которые правда придется заплатить некоторым количеством шекелей/токенов. Но это уже совсем другая история 🙂
UPD: про шекели/токены это я имел в виду про "заплатите сами за доп LLM фичи", BYOK и все дела. Если я в какой то момент сделаю quint-cloud, очень маловероятно что там будут какие то only paywall фичи.
Все то же самое, что можно развернуть своими руками – Open Core здорового человека💗
Все идеи, которые я вынашивал 2 месяца, вымысливал письмом в личные заметки, в разные проекты, несчетные deep-researches – все это сейчас обрастает структурой. Это конечно не конвергенция технологий, но явление концептуально похожее! Просто в микроскопическом масштабе.
Во вчерашнем письме я рассказываю про потенциальный roadmap, но как-то мямлю о том что "ну этого всего может и не будет..."
Будет, как не быть!
Solo-dev это круто, инди хакер, все дела. Но огромное число людей работают в командах, поэтому тут нужен и problem-ops для каждого киборга (человек + его агент), и коллективная база знаний (желательно мутирующая, со всем RefreshOps и остальной красотой которую обещает текущая версия квинткода в разработке).
5.1.0 посидит в dev еще какое то время, потому что кроме spec coverage туда приедет миграция. Мы выносим sqlite базу из репы и делаем ее центральной, это уже ход на то что quint-code у вас скоро начнет собирать в одном месте не просто спеки из разных реп, но и будет стремиться собирать "общую базу lessons-learned" по всем вашим проектам, своего рода гибридный контекст.
Все это пока еще будет только для solo dev mode, basic – назовем его так. Следующий шаг на team dev-ex неминуемо принесет второй процесс для центрального сервера, который будет крутиться демоном. Сделаю это все конечно красиво, чтобы устанавливалось и разворачивалось по людски, без мамбо джабо с докер контейнерами и прочей морально устаревшей, тяжелой фигней.
Этот процесс все еще можно будет запускать локально "только для себя, моя прелесть
Зачем отдельный процесс а не просто в общую базу лить? Ну, во-первых, там неминуемо будут конфликты.
Во-вторых, центральный сервер-мозг открывает нам кучу новых возможностей, за которые правда придется заплатить некоторым количеством шекелей/токенов. Но это уже совсем другая история 🙂
UPD: про шекели/токены это я имел в виду про "заплатите сами за доп LLM фичи", BYOK и все дела. Если я в какой то момент сделаю quint-cloud, очень маловероятно что там будут какие то only paywall фичи.
Все то же самое, что можно развернуть своими руками – Open Core здорового человека
Please open Telegram to view this post
VIEW IN TELEGRAM
Ринат запустил эстафету "Код есть? А если найду?", ко мне она приехала от Кости
Ну ладно, давайте искать.
Только я решил сделать дашбордик (буду его периодически пересобирать).
Меня Сэнсей учил выпендриваться🌟
Дашборд сделан CC по всем моим git-репозитории – публичный GitHub, приватные рабочие (и личные) проекты, локальные архивы тоже имеются в выборке (но там мало, и в основном старье за
Итого насчитало: 10,280 коммитов по 160 репозиториев за ~5 лет😨
Quint Code конечно жестко ползет наверх)))
На графике видно что в 2024 я начал сильно уставать🤪
Остальное можете сами посмотреть
👉 https://ivanzakutnii.com/is-commited/ (смотреть с большого экрана)
Передаю эстафету: @ai_driven и @itpepper
Ну ладно, давайте искать.
Только я решил сделать дашбордик (буду его периодически пересобирать).
Меня Сэнсей учил выпендриваться
Дашборд сделан CC по всем моим git-репозитории – публичный GitHub, приватные рабочие (и личные) проекты, локальные архивы тоже имеются в выборке (но там мало, и в основном старье за
2022-2023). Итого насчитало: 10,280 коммитов по 160 репозиториев за ~5 лет
Quint Code конечно жестко ползет наверх)))
На графике видно что в 2024 я начал сильно уставать
Остальное можете сами посмотреть
👉 https://ivanzakutnii.com/is-commited/ (смотреть с большого экрана)
Передаю эстафету: @ai_driven и @itpepper
Please open Telegram to view this post
VIEW IN TELEGRAM
Тут доехала до релиза запись подкаста с Александром
мы писали его примерно за неделю до стрима с Родионом, так что по меркам происходящего сейчас это уже голос из далекого далекого прошлого!
Там у меня не было веры в воскрешение Quint Code, поэтому если будете слушать – слушайте помня об этом
Из других новостей:
Люди пользуются Quint Code: кто-то в первый раз, кто-то, увидев, что оно наконец стало более дружелюбным на фоне прошлых версий, возвращается. И все несут вопросы: кто про онбординг – "а что с ним делать?", кто про внутрянку – "а оно там так, как надо, или руки не дошли доделать?"
Все понятно – нужна нормальная документация с большим количеством примеров использования, с более подробным описанием установки и онбординга.
А, ой уже готово!
А еще сегодня ближе к ночи будет релиз версии 5.1, сразу с обновленной документацией кучи новых добавлений и исправлений :)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Тысяча фичей
63. Системное мышление для инженера.
Как инженеру остаться у кормушки в 2026?
В гостях Иван Закутний @neuralstack автор https://github.com/m0n0x41d/quint-code
--
Авторский тгк Саши @toxic_enterprise
Альтер эго Саши @sashimi_pub
--
🎧 Слушать в Apple Podcasts | Spotify | Яндекс | браузер
Как инженеру остаться у кормушки в 2026?
В гостях Иван Закутний @neuralstack автор https://github.com/m0n0x41d/quint-code
--
Авторский тгк Саши @toxic_enterprise
Альтер эго Саши @sashimi_pub
--
🎧 Слушать в Apple Podcasts | Spotify | Яндекс | браузер
🚀 quint-code 5.1.0
Мы строили строили и наконец!
Что там внутри:
Codebase Awareness – квинткод теперь видит ваш проект не как набор файлов, а как структуру модулей. Go, TypeScript, Python, Rust – парсит импорты, строит граф зависимостей, показывает какие модули покрыты решениями, а какие нэт. Может быть полезным. Вы же хотите себе доку для каждого модуля?))) Spec Coverage блин!
Когда код под решением меняется – drift detection поднимает флаг в
Cross-Project Recall – решения теперь живут не в репе, а в вашей домашней директории. Фреймите (
Зачаточный Decision Integrity – перед записью решения агент теперь запускает adversarial check, я знаю что модели сами себя критикуют плохо, да еще с тем же контекстом, но это лучше чем ничего (этому есть куда расти в будущем).
Note-Decision Dedup – если агент попробуе записать заметку которая дублирует существующее решение то MCP даст по рукам, поймает и скажет "бро, тут эт, уже есть dec-003, может не надо?"
Ну и дока, к новой версии и еще лучше! И там больше деталей, читайте. Например там про то что quint-code еще и проблем-таск-трекер...)
Миграция с 5.0: quint-code init в каждом проекте. Данные сохранятся, база сама переедет в ~/.quint-code/. Подробности там же в доке.
Что дальше? НУ вообще надо делать нормальный Team mode.
Центральный сервер, один бинарь, PostgreSQL или SQLite на выбор, мысли такие.
Архитектура уже заложена. Но это уже следующая и длиннющая серия.
⭐ github.com/m0n0x41d/quint-code
Мы строили строили и наконец!
Что там внутри:
Codebase Awareness – квинткод теперь видит ваш проект не как набор файлов, а как структуру модулей. Go, TypeScript, Python, Rust – парсит импорты, строит граф зависимостей, показывает какие модули покрыты решениями, а какие нэт. Может быть полезным. Вы же хотите себе доку для каждого модуля?))) Spec Coverage блин!
Когда код под решением меняется – drift detection поднимает флаг в
/q-status. Когда модуль A меняется и от него зависит модуль B – вам тоже об этом должн квинткод сказать.Cross-Project Recall – решения теперь живут не в репе, а в вашей домашней директории. Фреймите (
/q-frame) проблему в проекте B – и вам (вашему агенту, ну в общем) с высокой вероятностью всплывает похожее решение из проекта A, которое вы приняли какое-то время назад. Еще и с пометкой насколько контекст релевантен)))Зачаточный Decision Integrity – перед записью решения агент теперь запускает adversarial check, я знаю что модели сами себя критикуют плохо, да еще с тем же контекстом, но это лучше чем ничего (этому есть куда расти в будущем).
Note-Decision Dedup – если агент попробуе записать заметку которая дублирует существующее решение то MCP даст по рукам, поймает и скажет "бро, тут эт, уже есть dec-003, может не надо?"
Ну и дока, к новой версии и еще лучше! И там больше деталей, читайте. Например там про то что quint-code еще и проблем-таск-трекер...)
Миграция с 5.0: quint-code init в каждом проекте. Данные сохранятся, база сама переедет в ~/.quint-code/. Подробности там же в доке.
Что дальше? НУ вообще надо делать нормальный Team mode.
Центральный сервер, один бинарь, PostgreSQL или SQLite на выбор, мысли такие.
Архитектура уже заложена. Но это уже следующая и длиннющая серия.
⭐ github.com/m0n0x41d/quint-code
quint.codes
Documentation | haft
Decision engineering for AI coding tools.
Что происходит в репозитории квинткода?
Снаружи выглядит как тишина, было несколько мелких релизов с добавлением C/C++ spec coverage, мелкие и средние багфиксы.
В dev ветке тоже тихо, но это на remote origin)))
В локальном репозитории происходит жуть. Где-то на ~80% готов standalone agent.
ЧТОООО? что это значит? MCP-plugin костыли – press F?
Нет. Ядро quint-code достаточно чистое, оно выживает – мне почти ничего не мешает строить агента вокруг него. Но standalone агент – это вообще другой класс инструмента.
TL;DR: MCP-plugin – это попытка вставить FPF-инструменты в чужой reasoning loop. Standalone agent – это попытка выстроить FPF reasoning loop с собственными инструментами.
***
Фундаментальная проблема MCP-плагин режима: хост-агент (Claude Code, Cursor, кто угодно) контролирует reasoning loop.
Мы можем напихать ему инструменты через MCP или скиллы, но не можем НОРМАЛЬНО контролировать, когда и в каком порядке он их вызывает.
Мы, конечно, можем продолжать работать с дистиллятом-промптом типа "сначала сформулируй проблему, потом исследуй варианты, потом реши", но это не структурное решение, никакого контроля за работой нет. А ведь так хочется рабочий цикл (а точнее лемнискату), где между фазами будет нормальный hand-off задач, артефактов, сигналы не будут теряться.
И вот новый агент отдаёт контроль над reasoning loop естественным образом мне (а я вам).
Тотальный context engineering – я контролирую что, когда и сколько попадает в контекст LLM. Собираю системный промпт на каждой фазе.
Сделал нормальный repo-map через tree-sitter (я вообще не уверен, что Claude Code тащит его под собой, потому что мой агент УЖЕ лучше ориентируется в больших репозиториях, чем Claude Code. Это, конечно, субъективное ощущение – моё и Claude Code. Когда я последнему принёс отчёт о проблеме от нового агента, Claude Code сказал "ого, солидно, я это всё упустил". Да, догфудинг нового агента уже начинается), а значит decision records после имплементации будут не просто про файлы знать, а уже на уровне строк/сущностей в коде.
Потом появится overseer процесс в том или ином виде, который будет по шине агенту "бить по рукам", если он потенциально начнёт ломать "установленные инварианты". Туда же потом приедет LSP.
Компакт, и всё-всё-всё остальное прочее тоже пишем сами. Я не заявляю, что Борис и Ко что-то делают не так, просто цели другие, что ли.
Ну и так далее по списку.
***
Этот мой агент, конечно, целиком successor библиотек charmbracelet – всё у них хорошо(кроме нехватки функциональных возможностей crush 🤣 ), поэтому интерфейс обещает быть приятным.
Разумеется, я планирую "саксессировать" и на их catwalk – репозитории провайдеров и моделей, поэтому новый агент будет поддерживать всё, что поддерживается и там.
И да, к сожалению, Anthropic всё-таки встал в позу "не юзайте auth токен от Pro/Max подписки". Я до конца не решил, что с этим делать. Возможно, появится какой-то плагин/сайдкар/прокси в опенсорсе (как у opencode), который позволит использовать, возможно, нет.
Одно хорошо – поза OpenAI/Codex в этом вопросе – одобрительная, так что догфудинг уже происходит на 5.4 из codex подписки))
quint-code будет переименован, ибо "Не путайте с языком спецификаций" мне надоело. Но об этом в другой раз.
upd. Ну да, ядро то же остается, артефакты в базу пишутся – значит mcp живой, значит будет оно дружить со всеми вашими другими агентами если пожелаете)))
Снаружи выглядит как тишина, было несколько мелких релизов с добавлением C/C++ spec coverage, мелкие и средние багфиксы.
В dev ветке тоже тихо, но это на remote origin)))
В локальном репозитории происходит жуть. Где-то на ~80% готов standalone agent.
ЧТОООО? что это значит? MCP-plugin костыли – press F?
Нет. Ядро quint-code достаточно чистое, оно выживает – мне почти ничего не мешает строить агента вокруг него. Но standalone агент – это вообще другой класс инструмента.
TL;DR: MCP-plugin – это попытка вставить FPF-инструменты в чужой reasoning loop. Standalone agent – это попытка выстроить FPF reasoning loop с собственными инструментами.
***
Фундаментальная проблема MCP-плагин режима: хост-агент (Claude Code, Cursor, кто угодно) контролирует reasoning loop.
Мы можем напихать ему инструменты через MCP или скиллы, но не можем НОРМАЛЬНО контролировать, когда и в каком порядке он их вызывает.
Мы, конечно, можем продолжать работать с дистиллятом-промптом типа "сначала сформулируй проблему, потом исследуй варианты, потом реши", но это не структурное решение, никакого контроля за работой нет. А ведь так хочется рабочий цикл (а точнее лемнискату), где между фазами будет нормальный hand-off задач, артефактов, сигналы не будут теряться.
И вот новый агент отдаёт контроль над reasoning loop естественным образом мне (а я вам).
Тотальный context engineering – я контролирую что, когда и сколько попадает в контекст LLM. Собираю системный промпт на каждой фазе.
Сделал нормальный repo-map через tree-sitter (я вообще не уверен, что Claude Code тащит его под собой, потому что мой агент УЖЕ лучше ориентируется в больших репозиториях, чем Claude Code. Это, конечно, субъективное ощущение – моё и Claude Code. Когда я последнему принёс отчёт о проблеме от нового агента, Claude Code сказал "ого, солидно, я это всё упустил". Да, догфудинг нового агента уже начинается), а значит decision records после имплементации будут не просто про файлы знать, а уже на уровне строк/сущностей в коде.
Потом появится overseer процесс в том или ином виде, который будет по шине агенту "бить по рукам", если он потенциально начнёт ломать "установленные инварианты". Туда же потом приедет LSP.
Компакт, и всё-всё-всё остальное прочее тоже пишем сами. Я не заявляю, что Борис и Ко что-то делают не так, просто цели другие, что ли.
Ну и так далее по списку.
***
Этот мой агент, конечно, целиком successor библиотек charmbracelet – всё у них хорошо
Разумеется, я планирую "саксессировать" и на их catwalk – репозитории провайдеров и моделей, поэтому новый агент будет поддерживать всё, что поддерживается и там.
И да, к сожалению, Anthropic всё-таки встал в позу "не юзайте auth токен от Pro/Max подписки". Я до конца не решил, что с этим делать. Возможно, появится какой-то плагин/сайдкар/прокси в опенсорсе (как у opencode), который позволит использовать, возможно, нет.
Одно хорошо – поза OpenAI/Codex в этом вопросе – одобрительная, так что догфудинг уже происходит на 5.4 из codex подписки))
quint-code будет переименован, ибо "Не путайте с языком спецификаций" мне надоело. Но об этом в другой раз.
upd. Ну да, ядро то же остается, артефакты в базу пишутся – значит mcp живой, значит будет оно дружить со всеми вашими другими агентами если пожелаете)))
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы вот вроде работаете над своим проектом, а пощупать его, показать кому-то всё никак не получается?
За последний ~месяц ко мне обратилось три разных человека, из трёх разных стран, с разными проектами. На установочном звонке истории были такие:
- «полгода делаем, но продавать и рынку показать ещё нечего»
- «запустили AI-пайплайн, но слишком много "человеков-в-цикле", хочется постабильнее»
- «команда погибает под текучкой, 4 месяца назад наняли ещё 3 разработчиков – заонбордились, а ситуация качественно не поменялась»
И знаете что?
В каждом проекте, докопавшись до сути, оказалась одна и та же проблема – люди тратили ресурсы (время и экспертизу) не туда.
Кто-то вместо продуктовой системы забуксовал на разработке AI вайбкод пайплайна – и забуксовал на несколько месяцев.
Кто-то не имел элементарного процесса приоритезации задач – боялись даже формировать бэклог.
А кто-то просто боялся признать, что построили не то, что нужно, и теперь надо либо переделывать, либо как-то натягивать цифры.
Причины везде одни – мало внимания и собранности на системе, которую мы строим, и на работе, которая происходит вот «прямо сейчас».
При этом в своих прикладных областях все эти люди – сильные специалисты, вопросов нет.
Серебряной пули-пиллюли тут нет.
Но если попытаться её отлить – я как попугай повторю три слова:
внимание, собранность, экзокортекс.
И да – первые два слова по сути про одно и то же. Это действительно ТАК важно.
***
А что с экзокортексом?
Даже если вы в моменте начинаете замечать проблемы, «отклонения от курса» – вам это мало поможет, если вы это никуда не фиксируете.
Буквально – никуда. Не записал => не подумал => не вспомнишь.
Начните записывать куда угодно – в Obsidian, в description карточки в JIRA / Linear, в Apple Notes, в промпт форму Claude Code, черт возьми, вариантов слишком много!
Ибо если не фиксируете – вы каждый раз думаете одни и те же мысли заново. Зачем? Надо нарабатывать решения проблем)))
---
Если совсем упростить:
нет фиксации – нет накопления понимания
нет накопления – нет нормального развития проекта
(и вы крутитесь на месте.)
***
В случае, когда вы не готовы писать/думать – хотя бы наговаривайте.
Есть можество text-to-speech платных и бесплатных приложений, например Superwhisper.
Главное – чтобы это осталось где-то вне вашей головы.
***
Вашу личную и профессиональную деятельность этот метод изменит драматически.
Проверено неоднократно и не одним человеком! :)
***
А если у вас прямо сейчас что-то горит (или догорает) – пишите в форму или в мне личку.
@m0n0x41d🌟
Эмммм-вэээ-пэээ, ауууу, где же ты?За последний ~месяц ко мне обратилось три разных человека, из трёх разных стран, с разными проектами. На установочном звонке истории были такие:
- «полгода делаем, но продавать и рынку показать ещё нечего»
- «запустили AI-пайплайн, но слишком много "человеков-в-цикле", хочется постабильнее»
- «команда погибает под текучкой, 4 месяца назад наняли ещё 3 разработчиков – заонбордились, а ситуация качественно не поменялась»
И знаете что?
В каждом проекте, докопавшись до сути, оказалась одна и та же проблема – люди тратили ресурсы (время и экспертизу) не туда.
Кто-то вместо продуктовой системы забуксовал на разработке AI вайбкод пайплайна – и забуксовал на несколько месяцев.
Кто-то не имел элементарного процесса приоритезации задач – боялись даже формировать бэклог.
А кто-то просто боялся признать, что построили не то, что нужно, и теперь надо либо переделывать, либо как-то натягивать цифры.
Причины везде одни – мало внимания и собранности на системе, которую мы строим, и на работе, которая происходит вот «прямо сейчас».
При этом в своих прикладных областях все эти люди – сильные специалисты, вопросов нет.
Серебряной пули-пиллюли тут нет.
Но если попытаться её отлить – я как попугай повторю три слова:
внимание, собранность, экзокортекс.
И да – первые два слова по сути про одно и то же. Это действительно ТАК важно.
***
А что с экзокортексом?
Даже если вы в моменте начинаете замечать проблемы, «отклонения от курса» – вам это мало поможет, если вы это никуда не фиксируете.
Буквально – никуда. Не записал => не подумал => не вспомнишь.
Начните записывать куда угодно – в Obsidian, в description карточки в JIRA / Linear, в Apple Notes, в промпт форму Claude Code, черт возьми, вариантов слишком много!
Ибо если не фиксируете – вы каждый раз думаете одни и те же мысли заново. Зачем? Надо нарабатывать решения проблем)))
---
Если совсем упростить:
нет фиксации – нет накопления понимания
нет накопления – нет нормального развития проекта
(и вы крутитесь на месте.)
***
В случае, когда вы не готовы писать/думать – хотя бы наговаривайте.
Есть можество text-to-speech платных и бесплатных приложений, например Superwhisper.
Главное – чтобы это осталось где-то вне вашей головы.
***
Вашу личную и профессиональную деятельность этот метод изменит драматически.
Проверено неоднократно и не одним человеком! :)
***
А если у вас прямо сейчас что-то горит (или догорает) – пишите в форму или в мне личку.
@m0n0x41d
Please open Telegram to view this post
VIEW IN TELEGRAM