Об этом проекте
Genie — это слой планирования и выполнения в командной строке для агентов ИИ-кодинга. Слоган — «wishes in, PRs out»: вы описываете желаемое одним предложением, а Genie проводит с вами интервью до плана, отправляет агентов собирать его параллельно, проверяет результат на соответствие критериям приёмки и возвращает нечто готовое к слиянию.
Архитектура намеренно минимальна. Здесь нет демонов и нет Postgres: основа — это набор skills, простые markdown-документы, хранящиеся в git, и единственный файл SQLite на репозиторий (`.genie/genie.db`) на встроенном движке Bun. Команда открывает базу данных, выполняет одну транзакцию и завершается. Пакет описывается как примерно 0,9 МБ с четырьмя runtime-зависимостями, а `nats` инициализируется только при запуске Omni runner.
Установка — это shell-скрипт, передаваемый через curl. Релизы подписаны cosign с SLSA provenance, а установщик проверяет бинарник через `gh attestation verify` с запасным вариантом `cosign verify-blob`. Поставляются три поверхности: подписанный бинарник, skills (доставляемые через канал skills.sh или через `npx skills add automagik-dev/genie`) и опциональный плагин Orca, регистрируемый на стороне Orca.
Рабочий процесс управляется skills: `brainstorm` (идея в DESIGN.md плюс ревью дизайна), `wish` (дизайн в ограниченный WISH.md с группами выполнения), `review` (обязательное ревью плана), `work` (нативные ролевые субагенты собирают каждую одобренную группу) и финальное независимое ревью реализации, возвращающее SHIP, FIX-FIRST или BLOCKED. Skills написаны runtime-нейтрально и устанавливаются в каждый обнаруженный дом skills агента (Claude Code, общий дом `~/.agents/skills`, используемый Codex и другими, Goose, Windsurf).
Состояние и документы разделены: wishes, designs и brainstorms — это markdown в `.genie/`, тогда как задачи, доски, рёбра зависимостей и состояние выполнения живут в SQLite. Связанные worktree одного репозитория используют одну базу данных, определяемую из общего каталога git, поэтому задачи видны во всех worktree без шага синхронизации. Команда `genie context` выдаёт версионированный JSON, описывающий контекст порождения (ветка, базовый SHA, готовые задачи).
У Genie два режима жизненного цикла. `standalone` — режим по умолчанию; `genie setup --orchestration-mode orca` делает Orca единственным источником жизненного цикла после проверки совместимого runtime, и в этом режиме Genie отказывается от локальных чтений/записей жизненного цикла, а не откатывается к ним молча. Устаревшие MCP-сервер и UI-мост выведены из эксплуатации: `genie mcp` и `genie ui-bridge` завершаются с ненулевым кодом и стабильной диагностикой. Опциональный мост `genie omni` подключает работающего агента к WhatsApp через Omni hub поверх NATS для удалённых одобрений и входящих one-shot сообщений.
Примечательные операционные детали: `genie doctor` сообщает о состоянии установки и наличии skills у каждого агента; `genie update` обрабатывает вывод из эксплуатации остатков эпохи плагинов с приоритетом резервного копирования, сохраняя изменённые или неоднозначные ресурсы; `genie uninstall` удаляет только те артефакты, принадлежность которых Genie он может доказать. В README прямо указано, что живой обмен с WhatsApp — это документированный шаг ручного QA, тогда как поведение Omni проверяется в тестовом наборе на фейковом транспорте.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.