Skip to content

Проект и команда ​

Всё, что одинаково для команды, лежит в .jarvis/ проекта и коммитится вместе с кодом. Главный файл — .jarvis/project.yaml. Пустой файл с одной строкой version: 1 уже рабочий; ниже — что стоит добавить и зачем.

.jarvis/
  project.yaml        настройки проекта
  knowledge/          документы о проекте и глоссарий
  standards/          правила с проверками
  skills/             как делать типовые изменения (ещё .agents/skills/ в общем формате SKILL.md)
  agents/             свои инструкции для агентов (если встроенных мало)
  workflows/          свои сценарии задач
  approvals/          утверждения, сохранённые для CI

Как проверять код ​

Самое важное. Без этих команд агенты пишут код, но не могут его проверить.

yaml
tools:
  local:
    tests: "pnpm vitest run"
    typecheck: "pnpm tsc --noEmit"
    lint: "pnpm biome check"

Имена с test, typecheck и lint в начале Jarvis запускает на шаге проверок, причём линтер — только на изменённых файлах. Ошибки, которые были в репозитории до задачи, ей в вину не ставятся.

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

yaml
tools:
  required: [tests, lint]

jarvis onboard, jarvis doctor и страница сервисов назовут, чего из обязательного не хватает, а остальное покажут как необязательное. Для tests подходит любая команда, имя которой начинается с test, для lint — с lint.

Несколько удобных добавок:

  • tools.fix — форматтер или линтер с автоисправлением. Запускается на каждый файл, который записал агент, чтобы агент не тратил круг доработки на переносы строк;
  • tools.rebuild — что пересобрать перед проверками, если изменилась общая библиотека монорепозитория;
  • workspace.setup — что выполнить в новой рабочей копии, обычно установку зависимостей. С workspace.cache зависимости переживают рабочую копию, и следующая задача стартует за секунды.

Модели и данные ​

yaml
dataClass: confidential    # public | internal | confidential
language: ru
roles:
  implementation: { models: [coder] }

dataClass — насколько чувствителен код. От него зависит, каким моделям и сетям его можно показывать:

КлассМоделиВнешние сервисы
publicвнутри контура и облачныелюбые
internalтолько внутри контуралюбые
confidential (по умолчанию)только внутри контуратолько внутренняя сеть

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

Где работают задачи ​

yaml
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» на странице.

Человек ​

yaml
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 ​

yaml
delivery:
  pr: approve              # allow (по умолчанию) | approve — сначала одобрение | deny — запрещено

PR создаётся вашим git и через MCP-сервер Bitbucket. Пока поддерживается только Bitbucket.

Бюджет ​

yaml
budget:
  perRun:  { outputTokens: 200000 }
  perStep: { outputTokens: 40000 }
agents:
  research: { limits: { maxToolCalls: 80 } }

Бюджет задачи и шага — сверх квот моделей. Лимиты агента — сколько раз за шаг он может вызвать инструменты и модель. Когда лимит кончился, агент заканчивает с тем, что успел, а результат помечается неполным; для шагов, где это дороже вопроса, Jarvis спросит вас.

Тикеты, вики, макеты ​

Jira, Confluence, Bitbucket и Figma подключаются через MCP-серверы. Список серверов можно держать в проекте, а токены — у каждого в своём ~/.jarvis/config.yaml.

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 не сможет проверить, выполнились ли они.

Безопасность ​

yaml
security:
  deniedPaths: ["**/.env*", "secrets/**"]
  secretEnv: [CORP_TOKEN]

Файлы из deniedPaths агент не прочитает вообще. Всё, что похоже на секрет, вычищается из вывода инструментов до того, как попадёт к модели, в документ или в лог. Подробнее — в надёжности и безопасности.

Свои инструкции и сценарии ​

  • .jarvis/agents/<агент>.md заменяет инструкции встроенного агента — подробно на странице как промпт настраивает агента;
  • .jarvis/workflows/<имя>.yaml — свой сценарий задачи или замена встроенного под тем же именем, подробно на странице сценарии задач;
  • скиллы — откуда берутся и как попадают к агентам, на странице скиллы.

Смежная работа ​

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, задаёт настройка:

yaml
feedback:
  repo: acme/jarvis-fork        # свой форк; false — кнопки нет
  host: https://github.com      # или адрес GitHub Enterprise

Проверить ​

sh
jarvis config show --sources   # итоговые настройки и откуда каждая взялась
jarvis doctor           # что помешает запуску
jarvis standards list   # какие стандарты увидит агент
jarvis skills list      # какие скиллы

Apache-2.0