First Task

Запускает первый рабочий чат, который передаёт навык настройки.

Метаданные навыка

ИсточникОпциональный (устанавливается по запросу) — установите командой hermes skills install official/productivity/first-task
Путьoptional-skills/productivity/first-task
Версия0.3.0
АвторSiddharth Balyan (alt-glitch) + Hermes Agent
ЛицензияMIT
Платформыlinux, macos, windows
Тегиonboarding, first-run, desktop, handoff
Связанные навыкиinitiate-setup

Справочник: полный SKILL.md

инфо

Ниже приведено полное определение навыка, которое Hermes Agent загружает при активации этого навыка. Именно эти инструкции видит агент, когда навык активен.

Навык First Task

Ведёт первый чат после настройки. В сообщении лежит запрос пользователя, затем раздел «What setup learned about me» (его выбор и базовые сведения о машине), затем эти правила и JSON-блок. Цель: видимая работа в течение минуты, готовый полезный результат в течение пяти.

Когда использовать

  • Сообщение пришло с этим навыком при передаче из настройки.
  • Пока не появится первый результат. После этого — обычный чат.

Требования

Инструменты: manage_connections, manage_catalog, clarify, terminal, файловые инструменты, браузер, tool_search, skill_view и desktop_preview в десктопном приложении. Если инструмент назван здесь, но отсутствует в твоём списке (чаще всего manage_catalog), он отложенный: вызывай его через tool_call, а не по голому имени.

Как работать

Соблюдай эти ограничения. Они важнее любых других строк.

  1. Первый ответ состоит из одной короткой строки текста и вызова инструмента, в одном сообщении.
  2. В JSON-блоке лежат connect (id коннекторов) и install (id плагинов). Id точные. Запускай формы ниже сразу, без предварительных шагов search, describe или status.
  3. Проверка — это любая команда только для чтения (ls, which, find, cat, проба) или чтение файла. До того как что-то сделать, допускается не больше 2 проверок. Несколько проверок помещай в одну команду.
  4. Не ищи по всему диску (find /) и не читай файлы вне папки задачи. Раздел «What setup learned» и есть обзор.
  5. Не больше одного вопроса до начала работы, и только при расплывчатом запросе.
  6. Не вызывай одно и то же дважды. Неудачный вызов измени один раз. Если он снова не сработал, скажи об этом и иди дальше.
  7. Каждый первый срез что-то создаёт: файл, страницу в предпросмотре, установку или сводку по реальным данным. Пересказ в чате того, что ты просмотрел, результатом не считается.
  8. Каждый первый срез заканчивается закрывающей карточкой, скопированной в точности из краткой справки, в том числе после сбоя.
  9. Прямо говори, что не сработало и что ты не проверял. Никогда не имитируй и не выдумывай данные.

Краткая справка

ШагЧтоВызов
1Одна строка о том, с чего начинаешьнет
2Подключить выбранные приложенияmanage_connections connect, все id из connect, один раз
3Установить выбранные плагиныmanage_catalog install (через tool_call, если отложен), все id из install, один раз
4Конкретный запрос: начинай. Расплывчатый запрос: одна карточка, три вариантаclarify
5Первый срез, законченный за пять минутсобственные инструменты задачи
6Одна строка о результате, затем закрывающая карточкаclarify, закрывающая карточка ниже
manage_connections  {"action":"connect","connectors":["<id>", ...]}
manage_catalog      {"action":"install","items":[{"kind":"plugin","id":"<id>"}, ...],"reason":"<one line>"}
tool_call           {"calls":[{"name":"manage_catalog","arguments":{"action":"install","items":[{"kind":"plugin","id":"<id>"}],"reason":"<one line>"}}]}   (when manage_catalog is deferred)
clarify             {"questions":[{"question":"<short question>","choices":["<option>","<option>","<option>"]}]}
close card          {"questions":[{"question":"How does this look?","choices":["Looks right","Change something","Take it further"]}]}

На каждый tool_call клади по одной записи в calls. Закрывающую карточку копируй точно: ничего не переименовывай, не добавляй и не помечай в вариантах. Идею следующего шага пиши в текстовой строке.

Процедура

1. Сначала подключение

Выполни шаги 2 и 3 подряд, сразу после первой строки. Шаг с пустым списком пропускай.

Каждый шаг выполняется один раз. К предыдущим шагам не возвращайся. Ответ на карточку подключения окончателен для этого чата: используй приложения, которые подключились, и больше не подключай и не спрашивай про остальные. Приложение, оставшееся неподключённым после Continue, считается пропущенным. Один раз, при закрытии, скажи, что остальные можно подключить позже в меню Connections.

2. Первый ход для каждого запроса

ЗапросПервый ход
Ежедневная сводка / рабочие приложенияПодключи. Найди инструменты подключённых приложений через tool_search, затем напиши сводку в чате. Ничего не подключено: раздел 3.
Настроить этот компьютер / установить приложенияОдна карточка clarify с приложениями, затем раздел 4.
Сделать что-то в приложении-плагине (Blender)Установи. Затем открой навык плагина через skill_view по его id и собери одну небольшую вещь. Установка не в состоянии connected: раздел 3.
Автоматизировать что-то / скриптРаздел 5. Если в запросе не названа задача, сначала одна карточка: «Rename my screenshots by date», «Sort my Downloads by type», «Clear old files off my Desktop».
Расплывчатый («I have something in mind», «Let’s figure it out»)Одна карточка clarify с тремя вариантами из списка ниже. Затем берись за выбранный.

Варианты для расплывчатого запроса. Каждый за пять минут создаёт готовую вещь. Называй только те приложения, которые пользователь выбрал. Никогда не предлагай «find», «review», «audit» или «clean up my <app>»: это даёт обзор, а не вещь.

  • Выбраны рабочие приложения: «A daily brief from Linear and Slack», «A summary of my week».
  • Машина NVIDIA или Spark: «Install a few apps for this <machine>», со словом, которым его называет строка «This …:» из настройки (Spark, PC, Mac).
  • Выбран плагин: «A simple scene in Blender».
  • В остальных случаях: «A small HTML page about <something they picked or said>», «A start page with links to my apps», «A quick script that tidies my Downloads».

Первый вариант всегда создаёт страницу или файл. Текст, который пользователь напечатал вместо выбора, и есть выбор. Если он отвечает «surprise me», «idk» или «any», сразу берись за первый вариант: напиши файл и открой его, без предварительных проверок.

3. Если подключение или установка не удались

Не останавливайся с пустыми руками.

  1. Ни одно приложение не подключено, а нужна сводка: скажи об этом одной строкой. Выполни одну проверку, gh auth status. Если вход выполнен, напиши сводку по GitHub (открытые PR, запросы на ревью, назначенные задачи) и скажи, что она взята из GitHub. Если нет, сделай стартовую страницу или скрипт, которым не нужна учётная запись.
  2. Установка, состояние которой не connected, или установка с ошибкой: скажи об этом одной строкой. Не ищи плагин на диске, не читай его исходники и не пиши собственного клиента. Сделай ближайшую вещь без него. Для Blender: напиши ~/hermes-first-task/first_scene.py, скрипт, который строит сцену, и дай команду blender --python <path>.
  3. Закончи закрывающей карточкой. Предложение попробовать ещё раз пиши в текстовой строке.

4. Настройка машины

Используй команды для ОС из строки «What setup learned».

  1. Одна карточка clarify с приложениями: от трёх до пяти повседневных приложений, подходящих под задачи пользователя, с множественным выбором.
  2. Проверка 1, одной командой. macOS: which brew && ls -d "/Applications/Slack.app" "/Applications/Zoom.app" 2>&1. Windows: winget list --accept-source-agreements. Linux: which <app> ..., плюс flatpak list, если flatpak есть.
  3. Ставь только те выбранные приложения, которых проверка не нашла, по одному приложению на команду. macOS: brew install --cask <app>. Windows: winget install --id <id> -e --source winget --accept-source-agreements --accept-package-agreements (на свежем профиле без этого установка встаёт на запросе соглашений, на который терминал не может ответить). Linux: flatpak install -y flathub <id>; пакет, которому нужен sudo, попадает в список из шага 5. Про остальные скажи «already installed». Ничего не переустанавливай.
  4. На Arm после установки скажи, если приложение существует только в x64. macOS: одна команда lipo -archs для новых приложений. Windows: прочитай архитектуру, которую winget сообщает для выбранного установщика, в выводе установки (arm64 или x64 под эмуляцией); по манифесту её не выводи.
  5. Перечисли для пользователя всё, что требует пароля, лицензии или оплаты. Никогда не отключай настройки безопасности.
  6. Одна строка о том, что изменилось и каким будет следующий срез (инструменты разработчика, драйверы), затем закрывающая карточка.

5. Автоматизации

  1. Сразу пиши скрипт через write_file в ~/hermes-first-task/. Без предварительных проверок.
  2. По умолчанию скрипт только печатает, что собирается сделать. Флаг вроде --apply вносит изменения.
  3. Один раз запусти его в режиме предпросмотра на настоящей папке, например python3 ~/hermes-first-task/tidy_downloads.py ~/Downloads, и покажи вывод. Если запустить не удалось, скажи, что скрипт не проверен.
  4. Если папки нет или она пуста, скажи об этом. Никогда не создавай тестовые файлы и тестовые папки (mkdir, touch, SetFile).
  5. Дай одну команду, которая делает всё по-настоящему. Повторяющихся заданий не настраивай, если об этом не просили.

6. Правила сборки

  • Только реальные данные: из подключённых приложений или инструментов, в которые выполнен вход на этом компьютере, например gh с активным входом (скажи об этом). Никогда не обходи коннектор: никакого IMAP, пароля приложения или скрапинга.
  • Спрашивай, прежде чем что-то отправлять, удалять или ставить в расписание.
  • Локальную модель настраивает приложение, а не ты: укажи на Run locally в меню моделей или на Settings, Providers, Local Models. Никогда не ставь среду выполнения модели и не скачивай модель сам.
  • Сгенерированная страница — это один самодостаточный HTML-файл, открытый через desktop_preview.
  • Каждый новый файл сохраняй в ~/hermes-first-task/, а не в текущей папке. Файлы не копируй с места на место. Говори, где лежит каждый файл.
  • Инструменты плагина ищи через tool_search после установки. Если его приложение не запущено, скажи об этом.
  • Большой запрос урежь до первого среза и скажи об этом одной строкой. Долгий шаг (большая загрузка, полная сборка) первым срезом не бывает.
  • Если пользователь не знаком с приложениями на базе ИИ-агентов, объясни функцию одним простым предложением, когда она впервые понадобится. Один раз скажи, что ты спрашиваешь разрешение и что он может отказать.

7. Закрытие первого среза

Одна короткая строка о том, что ты сделал и где это лежит, затем закрывающая карточка. Действуй по выбору пользователя.

Подводные камни

  • Отчёт в чате вместо файла, страницы или установки.
  • Казённые слова: пиши короткими, простыми, тёплыми предложениями, без воды, тире и восклицательных знаков.

Проверка

  • Первый ответ — одна строка текста и вызов инструмента. Карточку получил только расплывчатый запрос.
  • Первый срез заканчивается точной закрывающей карточкой, в том числе после сбоя.
перевод и редактура:

обновлено

⌕ ESC