Главная/Документация/Статусы/Настройка статусов
Статусы

Настройка статусов

Добавление и изменение пользовательских статусов в конфигурации workspace.

Добавляйте пользовательские статусы и изменяйте существующие.

Просто спросите своего агента. Самый простой способ настроить статусы — описать, что вам нужно:

  • «Добавь статус Blocked с красным цветом»
  • «Создай статус Waiting для диалогов в ожидании»
  • «Добавь статус In Review между In Progress и Done»

Агент автоматически обрабатывает конфигурацию.

Вы также можете настроить статусы вручную, отредактировав файл конфигурации статусов workspace.

Файл конфигурации

Конфигурация статусов хранится по пути:

terminalbash
~/.craft-agent/workspaces/{workspace-id}/statuses/config.json

Схема конфигурации

Файл конфигурации имеет следующую структуру:

terminaljson
{
  "version": 1,
  "statuses": [
    {
      "id": "todo",
      "label": "Todo",
      "category": "open",
      "isFixed": true,
      "isDefault": false,
      "order": 0
    }
  ],
  "defaultStatusId": "todo"
}

Свойства статуса

Каждый объект статуса поддерживает следующие свойства:

Свойство Тип Обязательно Описание
id string Да Уникальный идентификатор (строчные буквы, только дефисы)
label string Да Отображаемое имя в интерфейсе
category "open" | "closed" Да Определяет размещение в инбоксе или архиве
isFixed boolean Да Если true, статус нельзя удалить или изменить метку
isDefault boolean Да Если true, статус нельзя удалить, но можно изменить
order number Да Порядок отображения (меньшие числа отображаются первыми)
color string Нет Шестнадцатеричный цвет (например, "#EF4444") или класс Tailwind
icon string Нет Эмодзи (например, "🔥") или URL-адрес файла иконки

Если color не указан, используется цвет по умолчанию из дизайн-системы. Если icon не указан, приложение ищет автоматически обнаруженный файл по пути statuses/icons/{id}.{ext} (поддерживает .svg, .png, .jpg, .jpeg).

Добавление пользовательских статусов

Чтобы добавить пользовательский статус, например, "Blocked" или "Waiting", добавьте новый объект в массив statuses:

terminaljson
{
  "id": "blocked",
  "label": "Blocked",
  "color": "#EF4444",
  "icon": "🚫",
  "category": "open",
  "isFixed": false,
  "isDefault": false,
  "order": 3
}

Убедитесь, что при необходимости скорректировали значения order других статусов, чтобы правильно расположить новый статус.

Пример: Добавление нескольких пользовательских статусов

terminaljson
{
  "version": 1,
  "statuses": [
    {
      "id": "backlog",
      "label": "Backlog",
      "category": "open",
      "isFixed": false,
      "isDefault": true,
      "order": 0
    },
    {
      "id": "todo",
      "label": "Todo",
      "category": "open",
      "isFixed": true,
      "isDefault": false,
      "order": 1
    },
    {
      "id": "in-progress",
      "label": "In Progress",
      "icon": "🔄",
      "category": "open",
      "isFixed": false,
      "isDefault": false,
      "order": 2
    },
    {
      "id": "blocked",
      "label": "Blocked",
      "color": "#EF4444",
      "icon": "🚫",
      "category": "open",
      "isFixed": false,
      "isDefault": false,
      "order": 3
    },
    {
      "id": "waiting",
      "label": "Waiting",
      "icon": "⏳",
      "category": "open",
      "isFixed": false,
      "isDefault": false,
      "order": 4
    },
    {
      "id": "needs-review",
      "label": "Needs Review",
      "category": "open",
      "isFixed": false,
      "isDefault": true,
      "order": 5
    },
    {
      "id": "done",
      "label": "Done",
      "category": "closed",
      "isFixed": true,
      "isDefault": false,
      "order": 6
    },
    {
      "id": "cancelled",
      "label": "Cancelled",
      "category": "closed",
      "isFixed": true,
      "isDefault": false,
      "order": 7
    }
  ],
  "defaultStatusId": "todo"
}

Настройка иконок

Иконки можно настроить несколькими способами:

Файловые иконки (рекомендуется)

Поместите файл SVG в каталог statuses/icons/ с именем, соответствующим идентификатору статуса:

terminalbash
statuses/icons/blocked.svg
statuses/icons/waiting.svg

Эти файлы автоматически обнаруживаются — конфигурация не требуется.

Эмодзи-иконки

Установите свойство icon в эмодзи:

terminalbash
"icon": "🔥"

Быстро и просто, работает везде.

URL-иконки

Укажите URL-адрес файла иконки:

terminalbash
"icon": "https://example.com/icon.svg"

Иконка автоматически загружается и кэшируется локально.

Руководство по SVG-иконкам

При создании пользовательских SVG-иконок:

  • Размер: 24x24 пикселей
  • Используйте currentColor для заливки/обводки, чтобы поддерживать тему
  • stroke-width: 2
  • stroke-linecap: round
  • stroke-linejoin: round

Изменение цветов

Установите свойство color, чтобы настроить внешний вид статуса:

terminaljson
{
  "id": "blocked",
  "label": "Blocked",
  "color": "#EF4444",
  ...
}

Вы можете использовать:

  • Шестнадцатеричные цвета: "#EF4444", "#22C55E"
  • Классы Tailwind: "text-red-500", "text-green-500"

Фиксированные статусы

Следующие статусы нельзя удалить или переименовать:

ID Почему фиксирован
todo Статус по умолчанию для новых диалогов
done Необходимое закрытое состояние для завершённой работы
cancelled Необходимое закрытое состояние для прекращённой работы

Вы всё ещё можете настроить их свойства color и icon.

Валидация

Всегда проверяйте конфигурацию после внесения изменений.

После редактирования файла конфигурации проверьте его, чтобы выявить ошибки до их возникновения:

terminalbash
config_validate({ target: "statuses" })

Валидатор проверяет:

  • Существование обязательных фиксированных статусов (todo, done, cancelled)
  • Отсутствие дубликатов идентификаторов статусов
  • Ссылка defaultStatusId на существующий статус
  • Наличие хотя бы одного статуса в каждой категории (open и closed)
  • Существование файлов иконок при ссылке на них

Недопустимые конфигурации возвращаются к значениям по умолчанию во время выполнения, но валидация помогает выявлять проблемы заранее.

Нужен такой агент в вашей компании?

Устанавливаем под ключ: настройка на компьютерах сотрудников, единый аккаунт, интеграция с 1С и внутренними системами, обучение команды. Подробнее о внедрении →