Laravel, Copilot и Spec-Driven Development: собираем пайплайн
Привет, коллеги!
Мы все уже наигрались с ChatGPT и Copilot. Пофиксить баг, написать метод, сгенерировать тест — это стало рутиной. Но что дальше? Очевидно, что следующий шаг — не просто точечные запросы, а интеграция ИИ в сам процесс разработки.
Сегодня разберу два интересных подхода, которые сигнализируют о новом тренде: структурированной, почти инженерной работе с ИИ-ассистентами. Один — "народный кейс" от разработчика, другой — research-проект от самого GitHub.
1. Laravel Copilot Workspace: Конвейер специализированных агентов
Недавно я наткнулся на статью, где автор построил вокруг кастомных агентов GitHub Copilot (тех, что описываются в .agent.md файлах) целый рабочий конвейер для Laravel-проекта.
Суть подхода:
- Специализация: Вместо одного "умного Copilot" создается целая команда узких специалистов: 10-requirements-create (аналитик), 20-architecture-plan (архитектор), 30-code-build (кодер), 40-tests-run (тестировщик), 50-docs-update (техписатель).
- Общий контекст: Вся информация о проекте лежит в строго структурированных папках: inputs/ (ТЗ, домен), rules/ (стандарты команды), docs/ (документация). Каждый агент знает, откуда читать и куда писать.
- Процесс как код: Работа разбивается на "батчи" (пачки задач), и агенты последовательно ведут проект по этапам, от идеи до релиз-пакета.
Это прагматичное решение проблемы контекста. Больше не нужно каждый раз объяснять ИИ "а вот у нас DDD, а вот тут такие-то правила". Контекст живёт в файлах, а агенты — это просто "исполнители" с разными ролями. Идеально ложится на Laravel с его четкой структурой.
2. Spec Kit от GitHub: Разработка через исполняемые спецификации (Spec-Driven Development)
Почти одновременно с этим GitHub анонсировал свой исследовательский проект Spec Kit. Идея идет еще дальше.
Суть подхода — SDD (Spec-Driven Development): Главный артефакт разработки — это спецификация (spec) на естественном языке. Не код, не ТЗ в Jira, а именно spec. Далее, специальный CLI-инструмент specify помогает:
- Создать "конституцию" проекта (/speckit.constitution) — принципы и ограничения.
- Написать spec (/speckit.specify) — что и зачем мы строим.
- Создать технический план (/speckit.plan) — как и на чём.
- Разбить на задачи (/speckit.tasks).
- Исполнить (/speckit.implement) — и вот здесь ИИ на основе spec, constitution и plan генерирует код.
Фокус смещается с написания кода на проектирование и формализацию intent (намерения). Код становится производным, почти "скомпилированным" из спецификации.
Что общего и в чем разница?
Общее — это тренд:
- Оба подхода борются с "vibe coding" — когда каждый запрос ИИ начинается с чистого листа.
- И ИИ, и разработчик должны иметь единый источник правды о проекте.
- Акцент на последовательности шагов, где результат одного этапа — основа для следующего.
Разница:
- Laravel Workspace — это тактическое решение "снизу" для уже сложившегося процесса (Laravel + GitHub Copilot). Оно про автоматизацию и порядок.
- Spec Kit — это стратегическая гипотеза "сверху" о новом виде разработки (SDD). Оно про смену парадигмы.
Зачем это PHP-разработчику сейчас?
- Создать папку project_context/ с README о домене и правилах, написать пару кастомных .agent.md файлов для типовых задач (например, "Создать Eloquent-модель с Observer и тестами") — это даст сиюминутный прирост в качестве и скорости.
- Даже если не использовать CLI, сама идея "сначала детальная spec, потом код" — это мощный mental-сдвиг. Попробуйте перед тем как писать фичу, не набрасывать код, а подробно описать её в Markdown-файле так, как если бы это было ТЗ для ИИ-коллеги. Вы удивитесь, сколько проблем отсеется на этапе проектирования.
ИИ становится частью CI/CD
Эти проекты показывают, что сообщество перестает воспринимать ИИ как магический чёрный ящик, начинают интегрировать в инженерные практики, строить вокруг него процессы, требовать воспроизводимости и структуры.
Для нас, backend-разработчиков, это значит, что скоро (а где-то уже сейчас) ценным навыком станет не только умение "договориться с Copilot", но и способность проектировать и описывать системы так, чтобы их понял не только коллега, но и AI-агент.
Что думаете, коллеги? Видите ли вы место подобным структурированным подходам в своих проектах или считаете, что это избыточная сложность?