Skip to content

Как проходит задача ​

Задача — это один прогон по сценарию из шагов. Полный сценарий запускает jarvis work, короткие — fix, spec, research. В «Новой задаче» на странице три режима: Specification (до утверждённой спецификации), Implementation (весь путь) и Bugfix. Ниже — полный путь.

Сплошные стрелки — обычный путь, пунктир — возвраты. У каждого возврата есть предел: если реализация трижды не прошла ревью, Jarvis не будет крутиться бесконечно, а остановится и спросит вас.

Шаги по порядку ​

Что за проект. Без модели: Jarvis смотрит, на чём написан репозиторий, есть ли граф кода, чем запускаются тесты. Если стек совсем не поддерживается, задача останавливается сразу с понятной причиной.

Источники задачи. Тоже без модели. Jarvis читает тикет, связанные страницы Confluence и макеты Figma, если они подключены, и ищет в коде места, где упоминаются названия и тексты из задачи. Агенты получают всё это готовым и не тратят время на повторное чтение.

Смежная работа. Тоже без модели, и её можно выключить для задачи. Jarvis смотрит другие задачи эпика — сначала другой стороны: для фронтовой задачи бэковые — их ветки и PR из панели Development в Jira и что они меняют в контракте: поля DTO, эндпоинты. Ветку читает из репозитория у вас на машине, а если его нет — через Bitbucket. Так спека фронта строится на контракте бэка, который уже написан, но ещё не влит в dev, — с явной пометкой, что это зависимость от неслитой ветки. Перед реализацией Jarvis проверяет, не ушла ли ветка вперёд.

Исследование. Агент читает код и источники и записывает, что известно: какие части проекта затронуты, где уже есть похожее поведение, что проверено по файлам, а что осталось неизвестным. Отдельно — противоречия в требованиях: две страницы говорят разное, текст расходится с макетом.

Требования. Агент разбирает требования на пронумерованные пункты и ищет дыры: неясные формулировки, пропущенные состояния, гонки, частичные отказы. Если без ответа человека дальше нельзя, он задаёт один вопрос, и задача ждёт ответа.

Спецификация. Из исследования и требований получается документ с критериями приёмки, которые можно проверить. Здесь задача останавливается: спецификацию читаете и утверждаете вы.

Анализ влияния. Какие файлы, тесты, документация и настройки затронет изменение. Если спецификация прямо называет файлы, а граф кода показывает их зависимых, это считается без модели. В остальных случаях работает агент.

План. Реализация раскладывается на маленькие шаги, каждый из которых можно проверить.

Реализация. Агент идёт по плану пункт за пунктом: открыл файлы пункта, поправил, проверил, отметил, перешёл к следующему. Пишет он в отдельную рабочую копию, ваш каталог не меняется.

Проверки. Несколько вещей сразу:

  • команды проекта — тесты, проверка типов, линтер — на изменённых файлах;
  • стандарты проекта, которые проверяются кодом;
  • агент тестов дописывает и запускает тесты к изменению;
  • агенты документации и телеметрии проверяют, что изменение описано и наблюдаемо.

Если что-то упало, реализация получает конкретные причины: какой тест, что ожидали, что получили, в какой строке, и была ли эта строка изменена в этой задаче. Ошибки проверки типов и линтера агент получает списком «файл:строка — сообщение», а не весь лог. Тесты, которые падали ещё до задачи, ей в вину не ставятся.

Если проверки упали ровно так же, как в прошлом круге, или тесты вообще не запустились, Jarvis не тратит следующий круг впустую: задача останавливается и спрашивает вас — подробнее на странице где решает человек.

Ревью. Агент сравнивает изменение со спецификацией, планом и стандартами. Может вернуть на доработку, а если ошибка в плане или в требованиях — вернуть туда.

Утверждение кода. Вы смотрите дифф и решаете. Можно принять, вернуть с комментарием или оставить замечания прямо в коде — подробнее на странице где решает человек.

Заметки к релизу. Короткое описание изменения для людей. После этого задача готова. Результат можно перенести в свою ветку одним коммитом (jarvis apply, кнопка Apply) или отправить pull request'ом (jarvis apply --pr, кнопка «Создать PR»). Задача может открыть PR и сама, если запущена с --deliver pr.

Короткие сценарии ​

СценарийШаги
researchчто за проект → источники → исследование. Только из терминала; потом можно продолжить в полный путь, исследование не повторится
specдо утверждённой спецификации, потом можно продолжить
fixисследование → спецификация → ваше утверждение → правка → проверки → ревью → ваше утверждение
свойсценарий — это YAML в .jarvis/workflows/: можно убрать шаги, добавить проверку, изменить число возвратов. Подробно — сценарии задач

Когда что-то идёт не так ​

Задача никогда не пропадает молча. Её состояние сохраняется на каждой границе шага, поэтому любую остановку можно продолжить.

Что случилосьЧто делает Jarvis
Вы закрыли терминал или нажали Ctrl-Cзадача стоит на месте, jarvis c или кнопка Resume продолжает
Кончилась квота моделизадача ставится на паузу до освобождения окна и продолжается сама; если у роли есть запасная модель в другом пуле, вызов уходит ей
Модель не отвечаетзадача ждёт и периодически проверяет, не вернулась ли модель
Агент упёрся в лимит вызововспрашивает вас: добавить ещё или закончить шаг с тем, что есть
Возвраты исчерпаныостанавливается и ждёт: можно поправить код руками и запустить шаг снова
Нужно переделать шаг иначеjarvis redo <задача> <шаг> --note "что изменить" — задача возвращается к шагу с вашим комментарием
Задача упала или отмененаjarvis restart <задача> --from <шаг> — новая задача с этого шага, пройденное до него переносится
Процесс упал посреди действия наружузадача спрашивает, произошло ли оно (комментарий, push, PR), и не повторяет его вслепую: jarvis effect <задача> --happened или --again, те же кнопки на странице
Новому кругу не хватит квотыкруг не начинается, задача ждёт освобождения окна, а не обрывается посредине

Как это устроено внутри — на странице архитектура.

Apache-2.0