Проект Acai.sh представляет собой новый инструмент для работы с требованиями к программному обеспечению, который пытается решить проблему «размытия» спецификаций в эпоху агентов на базе ИИ. Автор, столкнувшись с тем, что контекстное окно нейросетей лимитировано, а сессии часто прерываются или терпят неудачу, пришел к выводу: нужно записывать требования на бумаге. Просто в виде текстовых файлов. Инструмент предлагает формат feature.yaml, где каждое требование помечается уникальным ACID (Acceptance Criteria ID). Это позволяет связать код и тесты напрямую с пунктами спецификации. Например, если меняется код, инструмент автоматически проверяет, не нарушает ли это написанное в feature.yaml. Автор также запустил веб-панель, где можно видеть прогресс выполнения требований и оставлять комментарии по каждому пункту.
В основе подхода лежит простая идея: спецификация должна описывать, каким должно быть поведение системы, а не то, как она работает сейчас. Для этого используются простые файлы, а не громоздкие инструменты вроде GitHub SpecKit или Kiro, которые либо слишком зависят от промптов, либо используют неудобный синтаксис. Acai.sh фокусируется на том, чтобы помочь разработчикам отслеживать соответствие кода требованиям через feature.yaml. Это не просто текстовые файлы, а строгий стандарт. Если агент ИИ пишет код, он должен ссылаться на эти ACIDs. Это снижает количество ручного правления файлов и ускоряет процесс, так как проверка покрытия тестами перестает быть главным bottleneck. Проект также поддерживает интеграцию через CLI и GitHub Actions, что позволяет автоматизировать цикл: план, реализация, проверка.
Автор признает, что подход не подходит для всех проектов. Если вы делаете простой сайт и не боитесь ошибок, можно продолжать писать только промпты. Но для сложных систем, где требуется четкая верификация, список приемочных критериев в feature.yaml — отличный старт. Инструмент также учит ИИ следовать этим правилам, используя специальные команды. Критики могут отметить, что формат feature.yaml является своего рода догмой, и что привязка кода к номерам требований может создать лишний трудозатрат при изменении спецификации. Однако авторы утверждают, что флаги deprecated и replaced_by решают эти проблемы. В итоге, Acai.sh предлагает путь к тому, чтобы выйти из режима «сломанного кода» и перейти к работе с четко определенными требованиями, где важность спецификации растет по мере того, как скорость генерации кода увеличивается.