Экскурсия по репозиторию · просто

Mr. Meeseeks

Программа, которая управляет AI-агентами: говорит им, что делать, следит за результатом и решает, что дальше.

Репозиторий: meeseeks/mr_meeseeks · все задачи · про спеку (ТЗ) · про ЧЕЛОВЕК · про Gate · про Temporal · про стори · следующая задача: Nomad-диспатч verify-джобы · разобрать главный файл workflows.py →

Оглавление: все страницы

workflows.py

главный файл — разбор по блокам: DevPipeline, шаги, сигналы, gate.

спека (ТЗ)

артефакт spec: откуда берётся, как проверяется, base_sha.

ЧЕЛОВЕК

роль человека в цикле: одобряет спеку (ТЗ), решает на Gate.

Gate

проверка результата: PASS / FAIL / ESCALATE, потолок rework.

Temporal

durable-оркестрация: сигналы, workflow, история.

SPEC-AGENT

агент, который пишет спеку (ТЗ) по пакету задачи.

DEV-AGENT

агент-разработчик: делает код по одобренной спеке (ТЗ).

стори

артефакт user_story: цель из нескольких задач.

задача

артефакт task: конкретная работа, свой DevPipeline.

тесткейс

артефакт test_case: как проверить результат.

Nomad-диспатч verify-джобы

следующая задача CI-9: проверка кода перестаёт быть заглушкой, verify-джоба в Nomad гоняет стадии из project.yml.

задачи

все задачи по порядку выполнения: статусы и страницы.

Сначала два слова

Оркестрация — это как дирижёр в оркестре. Музыканты (наши агенты — SPEC-AGENT и DEV-AGENT) играют сами по себе, а дирижёр решает: кого позвать, когда, и что делать дальше. Здесь дирижёр — код этого репозитория.

Durable (произносится «дью́рэбл») — значит живучий. Программа не боится, что что-то упадёт или зависнет на полчаса: она запоминает, где остановилась, и продолжает с того же места. Как закладка в книге.

Всё вместе: durable-оркестрация — дирижёр, который ничего не забывает, даже если его самого перезапустят.

Что делает этот код

  1. Человек даёт задачу: «сделай спеку (ТЗ) и напиши код».
  2. Код запускает SPEC-AGENT (программу с искусственным интеллектом), чтобы тот подготовил спеку (ТЗ).
  3. Спеку (ТЗ) проверяет ЧЕЛОВЕК. Не понравилось — SPEC-AGENT переделывает с учётом замечаний.
  4. Когда спека (ТЗ) одобрена — запускается DEV-AGENT.
  5. Его результат снова проверяется. И так далее, шаг за шагом.

Каждый запуск агента (SPEC-AGENT или DEV-AGENT) — отдельный «подход»: агент стартует, делает одно дело, отчитывается и завершается.

Где лежит самое важное

Почти весь код — в одной папке: temporal/worker/. Внутри три главные вещи:

📋 План

workflows.py — сценарий «что за чем идёт». Самый главный файл.

🙋 Проверки

gates.py — правила: пропустить шаг, переделать или остановиться.

🔌 Шаги

остальные файлы — мелкие действия: запустить SPEC-AGENT/DEV-AGENT, сохранить результат, прочитать статус.

Полное дерево репозитория выглядит так:

mr_meeseeks/
├─ temporal/worker/     ← основной код (вся логика здесь)
├─ nomad/               ← «пусковая установка» агентов (конфиги)
├─ goose/goose-agent/   ← образ самого агента
├─ docs/                ← документация
├─ tests/               ← тесты
└─ остальное            ← инфраструктура (docker, vault, скрипты)
Запомнить легко: логика — в temporal/worker/, остальные папки — про то, где и как это запускается.

Как проходит один шаг

Простыми словами, без внутренних терминов:

  1. Код решает запустить агента (SPEC-AGENT или DEV-AGENT) и запоминает это (вдруг что-то упадёт).
  2. Выбранный агент просыпается, получает задание и работает — минуту или полчаса.
  3. Всё это время код просто ждёт, ничего не делая и ничего не забывая.
  4. Агент закончил и постучался: «готово, вот результат».
  5. Код проверяет результат и решает: дальше, переделать или стоп.

Термины, которые встретятся в коде, если заглянуть глубже:

workflow

весь сценарий целиком («план»).

activity

один конкретный шаг плана («действие»).

signal

тот самый «стук в дверь» — SPEC-AGENT/DEV-AGENT или ЧЕЛОВЕК сообщает о результате.

Gate

проверка: пропустить, переделать или остановиться.

Совет: как читать этот код

  1. README.md — что это и как запускается.
  2. temporal/worker/workflows.py — главный сценарий (начните с него!).
  3. temporal/worker/gates.py — правила проверок.
  4. Потом — всё остальное, по мере надобности.
Не пугайтесь слов вроде «Temporal» и «Nomad» в коде — это просто инструменты, на которых работает дирижёр. Смысл продукта — в workflows.py и gates.py. Открыть разбор workflows.py по блокам →