В начале года я написал заметку про проблему обновления состояния пакетов, где в качестве решения предлагалось создавать специально заточенный под конкретный проект инструмент, который по декларативному описанию приводил пакеты в требуемое состояние. Идею я подсмотрел у Валентина Удальцова и сделал библиотеку PHP Scaffolder Library, чтобы такие инструменты создавать было легче.
Но жизнь показала, что сейчас такой инструмент не нужен 🤷♂️
Какие конкретно вещи в проекте меняет scaffolder? Посмотрим на примере PHPTG Scaffolder:
• конфигурация GitHub Actions
• конфигурация инструментов для разработки: PHPUnit, PHPStan и т. д.
•
composer.json•
.gitignore и .gitattributes• файл лицензии
• ...
Сложность в том, что часто нужно не просто скопировать какой-то файл, а сделать какие-то точечные правки, специфичные для каждого из пакетов. Та же конфигурация CI от проекта к проекту немного, но отличается. Настройки инструментов — аналогично. Учитывать все эти нюансы довольно трудозатратно.
И если раньше это имело смысл, то сегодня у нас есть ИИ 🤖. Куда проще рассказать про CI, используемые утилиты и прочие вещи агенту, чем учитывать множество особенностей в собственном инструменте. Не нужно делать сложную логику — её возьмёт на себя ИИ.
Можно оформить требования в виде скила, можно описать требования в базе знаний и из системного промпта сослаться на них. В любом случае использование ИИ для решения поставленной задачи будет проще как в разработке, так и в поддержке.
❌ PHP Scaffolder Library отправлена в архив.
❌ PHPTG Scaffolder отправлен в архив.
Для пакетов Yii3 планировал делать свой Yii Scaffolder, но вместо него начал делать специализированную обвязку над ИИ-агентами и это оказалось гораздо практичнее и удобнее.