
Стена трёх месяцев
Если ваше приложение, созданное через vibe coding, развалилось через 3 месяца, если вы столкнулись с дрейфом, при котором ИИ перезаписывает существующую логику, если вы хотите защитить API-контракты от изменений кода — Hurl и ratchet решают эту проблему.
Вы создаёте SaaS через vibe coding. Сначала быстро. «Сделай логин» — 30 секунд. «Добавь платежи» — 2 минуты. MVP за 3 недели.
Через 3 месяца начинаются странности. ИИ «наводит порядок» в платёжной логике и тихо меняет расчёт скидки. Новый эндпоинт ломает существующую аутентификацию. Просишь рефакторинг — меняются имена полей публичного API, все клиенты падают.
Это называется логический дрейф — ИИ непреднамеренно изменяет существующую бизнес-логику. Регрессионные баги есть и в традиционной разработке. Но логический дрейф — другое. Изменения, которых разработчик не планировал, происходят без его ведома по всей кодовой базе. Потому что каждый промпт начинается в новом контекстном окне.
Дрейф в цифрах
Это не ощущения. Есть данные.
Цена скорости — сложность. Команда Carnegie Mellon сравнила 807 репозиториев GitHub до и после внедрения Cursor (MSR 2026). В первый месяц добавление кода выросло в 3-5 раз. Через 2 месяца преимущество в скорости исчезло. Осталось: рост предупреждений статического анализа на 30%, постоянный рост сложности кода на 41%. Liu et al. (2026) проанализировали 302 600 ИИ-коммитов в 6 299 репозиториях — нерешённый технический долг вырос с нескольких сотен в начале 2025 до более 110 000 к февралю 2026.
Не ускорилось — замедлилось. METR провели рандомизированное контролируемое исследование с 16 опытными разработчиками open source (2025). На знакомых проектах группа с ИИ-инструментами выполняла задачи на 19% дольше. При этом сами разработчики считали, что стали на 20% быстрее. Разрыв между восприятием и реальностью — 39пп.
Стабильность рушится при масштабе. Согласно отчёту Google DORA (2025), на каждые 25% роста внедрения ИИ стабильность доставки ПО снижается на 7,2%.
Действительно рухнула. Amazon обязала использовать ИИ-кодинг по всей компании в 2025 и развернула 21 000 ИИ-агентов. За тот же период уволены ~30 000 сотрудников. Результат: 4 инцидента Sev-1 за 90 дней. 5 марта 2026 — 6-часовой сбой, потеря ~6,3 млн заказов.
«Делай TDD» — не ответ
Исследование TDAD (arxiv 2026) проверило это точно. Qwen3-Coder 30B решал 100 экземпляров SWE-bench Verified.
| Условие | Частота регрессий |
|---|---|
| Базовая линия (без инструкции о тестах) | 6,08% |
| Процедурная инструкция «делай TDD» | 9,94% (хуже) |
| Предоставление затронутых тест-файлов как контекста | 1,82% (снижение на 70%) |
Не инструкция «как тестировать», а контракт «что должно пройти».
Hurl: контракты в plain text
Hurl применяет принцип Design by Contract Мейера (1992) к HTTP-границе. Инструмент тестирования, объявляющий HTTP-запросы и ожидаемые ответы в plain text. Поддерживается Orange, бинарь на Rust без зависимостей, 18,7k звёзд на GitHub.
# Успешный логин
POST http://localhost:8080/api/auth/login
{
"email": "test@example.com",
"password": "secret123"
}
HTTP 200
[Asserts]
jsonpath "$.token" exists
jsonpath "$.user.email" == "test@example.com"
# Неаутентифицированный доступ → 401
GET http://localhost:8080/api/pages
HTTP 401
Два контракта. Логин возвращает 200 с токеном, неаутентифицированный доступ — 401.
Почему Hurl
Unit-тесты проверяют внутренние функции — структурно связаны с реализацией. Hurl на HTTP-границе. Объявляет только запросы и ответы. Естественно независим от реализации.
| Unit-тесты | Hurl | |
|---|---|---|
| Объект верификации | Внутренние функции | HTTP-контракт |
| При рефакторинге ИИ | Меняются вместе | Не меняются |
| Обнаружение дрейфа | Условное | Естественное |
Hurl проверяет не код, а поведение.
Фиксация храповиком
Когда тест Hurl проходит, он фиксируется. Это храповик. Зафиксированный Hurl-тест — это ratchet code: детерминированный код, делающий прошедший API-контракт необратимым. Агент должен рефакторить, сохраняя всё существующее поведение.
Работает и на легаси
Шаг 1: Захватите текущее поведение в Hurl. Шаг 2: Подключите к CI. Шаг 3: Теперь безопасно.
Не закладка фундамента, а сейсмическое усиление. Укрепляете здание, не закрывая магазин.
Не конец vibe coding, а эволюция
Karpathy в феврале 2026: «Эра vibe coding закончилась.» Новая парадигма — агентная инженерия. Storey (2026) ввёл когнитивный долг и долг намерения. Hurl-файл — экстернализация намерения.
Один файл Hurl — один контракт. Не меняйте модель. Добавьте контракт.
Связанные статьи
- yongol — киль SaaS для ИИ-кодинга — 10 SSOT для full-stack согласованности. Hurl — один из них.
- Ratchet Pattern — как заставить агентов завершить работу — Теоретическая база детерминированной верификации.
- Ratchet-код, использующий IFEval — Петли обратной связи на смещении угодливости и Reins.
Источники
- Cursino, D. et al. (2026). “Speed at the Cost of Quality? The Impact of AI Coding on Software.” MSR 2026. arxiv.org/abs/2511.04427
- METR (2025). “Measuring the Impact of Early AI on Experienced Open-source Developer Productivity.” arxiv.org/abs/2507.09089
- Google Cloud (2025). DORA Report 2025. cloud.google.com
- Wang, Z. et al. (2026). “TDAD: Test-Driven Agentic Development.” ACM AIWare 2026. arxiv.org/abs/2603.17973
- Autonoma (2026). “Amazon Vibe Coding Failures: 4 Sev-1s in 90 Days.” getautonoma.com
- CNBC (2026). “Amazon convenes ‘deep dive’ internal meeting to address AI-related outages.” cnbc.com
- Thoughtworks (2025). “Spec-Driven Development.” Technology Radar Vol.33. thoughtworks.com
- Karpathy, A. (2026). “From Vibe Coding to Agentic Engineering.” thenewstack.io
- Fowler, M. et al. (2025). “SDD Tools.” martinfowler.com
- Liu, Y. et al. (2026). “Debt Behind the AI Boom.” arxiv.org/abs/2603.28592
- Meyer, B. (1992). “Applying ‘Design by Contract’.” Computer, 25(10), pp. 40-51. doi.org/10.1109/2.161279
- Storey, M.-A. (2026). “From Technical Debt to Cognitive and Intent Debt.” arxiv.org/abs/2603.22106
- Hurl. hurl.dev | github.com/Orange-OpenSource/hurl
История изменений
- 2026-05-22: Первая версия