Проект и команда
Всё, что одинаково для команды, лежит в .jarvis/ проекта и коммитится вместе с кодом. Главный файл — .jarvis/project.yaml. Пустой файл с одной строкой version: 1 уже рабочий; ниже — что стоит добавить и зачем.
.jarvis/
project.yaml настройки проекта
knowledge/ документы о проекте и глоссарий
standards/ правила с проверками
skills/ как делать типовые изменения (ещё .agents/skills/ в общем формате SKILL.md)
agents/ свои инструкции для агентов (если встроенных мало)
workflows/ свои сценарии задач
approvals/ утверждения, сохранённые для CIКак проверять код
Самое важное. Без этих команд агенты пишут код, но не могут его проверить.
tools:
local:
tests: "pnpm vitest run"
typecheck: "pnpm tsc --noEmit"
lint: "pnpm biome check"Имена с test, typecheck и lint в начале Jarvis запускает на шаге проверок, причём линтер — только на изменённых файлах. Ошибки, которые были в репозитории до задачи, ей в вину не ставятся.
Какие из проверок обязательны, решаете вы. По умолчанию обязательны только тесты: без них проект считается неготовым, а проверка типов и линтер — по желанию. Если команде нужно больше:
tools:
required: [tests, lint]jarvis onboard, jarvis doctor и страница сервисов назовут, чего из обязательного не хватает, а остальное покажут как необязательное. Для tests подходит любая команда, имя которой начинается с test, для lint — с lint.
Несколько удобных добавок:
tools.fix— форматтер или линтер с автоисправлением. Запускается на каждый файл, который записал агент, чтобы агент не тратил круг доработки на переносы строк;tools.rebuild— что пересобрать перед проверками, если изменилась общая библиотека монорепозитория;workspace.setup— что выполнить в новой рабочей копии, обычно установку зависимостей. Сworkspace.cacheзависимости переживают рабочую копию, и следующая задача стартует за секунды.
Модели и данные
dataClass: confidential # public | internal | confidential
language: ru
roles:
implementation: { models: [coder] }dataClass — насколько чувствителен код. От него зависит, каким моделям и сетям его можно показывать:
| Класс | Модели | Внешние сервисы |
|---|---|---|
| public | внутри контура и облачные | любые |
| internal | только внутри контура | любые |
| confidential (по умолчанию) | только внутри контура | только внутренняя сеть |
Роли из проекта важнее ролей машины: команда может договориться, какая модель пишет код.
Где работают задачи
workspace:
mode: worktree # у каждой задачи своя ветка и своя рабочая копия
setup: "pnpm install --frozen-lockfile"
retentionDays: 7 # через сколько дней jarvis gc уберёт старые копии
try:
run: "pnpm dev"
url: http://localhost:3000Ваш рабочий каталог задача не трогает. Результат попадает в вашу ветку одним коммитом по jarvis apply.
try — как запустить результат, чтобы посмотреть его перед утверждением. Эти команды показываются в блоке «Try it» на странице.
Человек
human:
gates:
spec: { required: true }
implementation: { required: true }
clarification: { maxTurns: 8 }
suggestAnswers: true # подсказывать ответы на открытые вопросы документа
checks:
ask: same-failure # остановиться, если проверки упали так же, как в прошлом кругеУтверждение, которое команде не нужно, можно выключить: задача пройдёт его молча, но в истории это останется. checks.ask — когда упавшие проверки останавливают задачу: same-failure (по умолчанию), every-failure — при любом падении, when-rounds-end — только когда кончились круги.
Pull request
delivery:
pr: approve # allow (по умолчанию) | approve — сначала одобрение | deny — запрещеноPR создаётся вашим git и через MCP-сервер Bitbucket. Пока поддерживается только Bitbucket.
Бюджет
budget:
perRun: { outputTokens: 200000 }
perStep: { outputTokens: 40000 }
agents:
research: { limits: { maxToolCalls: 80 } }Бюджет задачи и шага — сверх квот моделей. Лимиты агента — сколько раз за шаг он может вызвать инструменты и модель. Когда лимит кончился, агент заканчивает с тем, что успел, а результат помечается неполным; для шагов, где это дороже вопроса, Jarvis спросит вас.
Тикеты, вики, макеты
Jira, Confluence, Bitbucket и Figma подключаются через MCP-серверы. Список серверов можно держать в проекте, а токены — у каждого в своём ~/.jarvis/config.yaml.
mcp:
servers:
jira:
transport: stdio
command: npx
args: ["-y", "@atlassian-dc-mcp/jira"]
env: { JIRA_HOST: jira.example.com, JIRA_API_TOKEN: keychain:jira }
profile: atlassian
allow: [jira.get, jira.search] # только чтениеПрофиль говорит Jarvis, какие инструменты сервера что значат. Для Atlassian, Bitbucket и Figma профили встроены. Сервер без профиля тоже подключается, но инструменты, которые что-то меняют, агентам не выдаются: Jarvis не сможет проверить, выполнились ли они.
Безопасность
security:
deniedPaths: ["**/.env*", "secrets/**"]
secretEnv: [CORP_TOKEN]Файлы из deniedPaths агент не прочитает вообще. Всё, что похоже на секрет, вычищается из вывода инструментов до того, как попадёт к модели, в документ или в лог. Подробнее — в надёжности и безопасности.
Свои инструкции и сценарии
.jarvis/agents/<агент>.mdзаменяет инструкции встроенного агента — подробно на странице как промпт настраивает агента;.jarvis/workflows/<имя>.yaml— свой сценарий задачи или замена встроенного под тем же именем, подробно на странице сценарии задач;- скиллы — откуда берутся и как попадают к агентам, на странице скиллы.
Смежная работа
relatedWork:
enabled: true # по умолчанию; на задачу — галочка в «Новой задаче» или --no-related
sides: { "Back Task": back, "Middle Task": back, "Front Task": front }Перед спекой Jarvis читает ветки и PR других задач эпика и что они меняют в контракте. Для этого у MCP-сервера Atlassian должна быть доступна jira.devInfo, а у Bitbucket — bitbucket.branch.commits, bitbucket.commit.get, bitbucket.file.get (если в настройках сервера есть allow, их нужно туда добавить).
Сообщить о проблеме
Кнопка с жуком в шапке jarvis ui открывает форму: что не так, что ожидали, как повторить. Форма собирает текст и открывает новый issue на GitHub уже заполненным, а отправляете его вы. Версию, ОС и шаг прогона можно приложить галочками, текст задачи — только если отметить его отдельно. Куда открывается issue, задаёт настройка:
feedback:
repo: acme/jarvis-fork # свой форк; false — кнопки нет
host: https://github.com # или адрес GitHub EnterpriseПроверить
jarvis config show --sources # итоговые настройки и откуда каждая взялась
jarvis doctor # что помешает запуску
jarvis standards list # какие стандарты увидит агент
jarvis skills list # какие скиллы