Где решает человек
Jarvis останавливается и ждёт вас в нескольких случаях. Каждый раз понятно, чего именно он ждёт, и решение можно принять в терминале или на странице jarvis ui — результат одинаковый.
Утверждение документа
Два обязательных места: спецификация и готовый код. Задача показывает документ и ждёт решения:
- принять — задача идёт дальше; комментарий к принятию становится обязательным правилом для всех следующих шагов;
- вернуть с комментарием — документ уходит на доработку тому шагу, который его сделал. Агент получает ваш комментарий и прошлую версию и правит её, а не пишет заново;
- отклонить — задача заканчивается.
Решение привязано к точному содержимому документа. Если документ изменился, нужно новое решение. Если какое-то утверждение вам не нужно, его можно выключить в настройках проекта.
У документа бывают открытые вопросы. На странице над кнопками решения есть форма: у каждого вопроса — ответ, который Jarvis нашёл в источниках, варианты, поле для своего ответа, «спросить аналитика» или «не в этой задаче». Ответы уходят вместе с возвратом.
Вопрос агента
Агент требований (и агент разбора ревью) может остановиться с одним вопросом, если без ответа дальше нельзя. Он показывает, как понял требование, и какие видит варианты. Вы отвечаете текстом, агент уточняет или предлагает сформулированное правило, вы его принимаете. Правило становится обязательным для всех следующих шагов этой задачи, и спрашивать его снова никто не будет.
jarvis attach <задача> # разговор прямо в терминале
jarvis answer <тред> "…" # ответить без разговораЗаметка на ходу
Пока задача идёт, на странице можно оставить заметку агенту: «не трогай старый API», «смотри модуль оплаты». Текущий агент получит её со следующего обращения к модели, следующие шаги — тоже.
Пока идёт реализация, там же два переключателя для этой задачи: «Спросить меня, когда тесты падают» и «Остановиться после шага».
Упавшие проверки
Если проверки упали так же, как в прошлом круге, или тесты не запустились, задача останавливается и показывает, что упало, что ответил агент и полный вывод. Варианты: вернуть в реализацию с подсказкой, «тест неверный», «исправлю сам», идти дальше без этой проверки, вернуться к спецификации. Когда останавливаться, задаёт human.checks.ask в настройках проекта: при повторе (по умолчанию), при любом падении или только когда кончились круги.
Реализация и сама может спросить: если упавший тест противоречит спецификации, агент задаёт вопрос с вариантами ответа, и вы отвечаете кнопкой.
Замечания прямо в коде
Вместо утверждения кода можно открыть рабочую копию задачи и оставить замечания в комментариях:
// REVIEW: проверка статуса должна жить в доменном слое, а не здесь
export function canRestart(status: string) { … }Потом jarvis review submit <задача> --resume. Отдельный агент разберёт каждое замечание:
- исправить код — уходит в реализацию;
- ошибка в спецификации или требованиях — задача возвращается туда;
- вопрос — открывается разговор;
- правило, которое стоит записать на будущее, — становится кандидатом в стандарт или знание проекта;
- пожелание — принимается к сведению.
Маркеры удаляются из кода, когда результат переносится в вашу ветку.
Попробовать перед решением
На странице утверждения кода есть блок «Try it»: путь к рабочей копии, команда запуска, адрес, который открыть, и критерии приёмки из спецификации списком с галочками. Как запускать проект, задаётся в настройках, иначе Jarvis возьмёт команду из package.json и пометит её как догадку.
Свои правки
Пока задача ждёт, можно править файлы в её рабочей копии руками. Когда задача продолжится, правки сохранятся отдельной точкой в истории: агенты их увидят и не перезапишут. Если вы поправили файл, который в это же время менял текущий шаг, задача спросит, что оставить: вашу версию, версию задачи или объединить вручную.
Спецификацию, план и ревью тоже можно править как файлы: они лежат в рабочей копии задачи в .jarvis/runs/<задача>/, jarvis edit <задача> открывает их в редакторе. Ваша правка становится новой версией документа с пометкой «правка человека».
Данные из интернета
Если задача прочитала что-то из интернета, этим данным Jarvis не доверяет: дальше её действия наружу — комментарии, push, PR — ждут вашего одобрения. На странице задачи об этом есть баннер.
Pull request
Готовую задачу можно отправить pull request'ом: кнопка «Создать PR» рядом с Apply или jarvis apply <задача> --pr. Если в настройках проекта delivery.pr: approve, Jarvis сначала покажет PR и создаст его только после вашего одобрения.
Бюджет и тупики
Ещё два случая, когда задача ждёт:
- кончился бюджет шага или задачи — можно добавить или закончить шаг с тем, что уже есть (результат будет помечен неполным);
- возвраты исчерпаны — проверки так и не прошли. Можно поправить код самому и запустить шаг снова или дать реализации ещё один круг.
Автономный режим (experimental)
Задачу можно запустить без человека: галочка «Автономно» в «Новой задаче» или jarvis work … --autonomous. Режим пока обкатывается.
- Утверждения спецификации и кода проходят сами.
- На вопрос агента отвечать некому: он берёт самое осторожное допущение — менять как можно меньше, сохранить то, что есть, — записывает его в документ и продолжает.
- Упавшие проверки идут на все круги возврата; агент на лимите заканчивает с тем, что успел.
- Если задача упёрлась в тупик — круги исчерпаны, бюджет кончился, агент всё ещё спрашивает, — она заканчивается ошибкой с причиной. Полусделанное никуда не уходит.
Каждое такое решение видно в ленте задачи. Что касается внешнего мира, всё равно ждёт вас: действия после данных из интернета, действие с неизвестным исходом и PR, если проект требует его одобрять. Чтобы задача сама открыла PR, добавьте --deliver pr.
Вернуть задачу к шагу
Если результат шага не устраивает, задачу можно вернуть к любому пройденному шагу с комментарием:
jarvis redo <задача> spec --note "считать скидку до налогов, а не после"Шаг выполнится заново с этим комментарием как обязательным, следующие шаги — тоже. На странице это блок «Redo from here».