Skip to content

Рабочие циклы

Добавление скилла из файла

Чтобы добавить готовый навык в инвентарь:

bash
aiman add skill path/to/skill.md

Если файл с таким именем уже существует в инвентаре с другим содержимым:

bash
aiman add skill path/to/skill.md --overwrite    # перезаписать
aiman add skill path/to/skill.md --name new-name  # сохранить под другим именем

Из stdin:

bash
cat skill.md | aiman add skill -

После добавления запустите aiman push, чтобы опубликовать изменение.

Добавление MCP-сервера из файла

Чтобы добавить конфигурацию MCP-сервера в инвентарь:

bash
aiman add mcp path/to/server.yaml

Если файл с таким именем уже существует в инвентаре с другим содержимым:

bash
aiman add mcp path/to/server.yaml --overwrite    # перезаписать
aiman add mcp path/to/server.yaml --name new-name  # сохранить под другим именем

Из stdin:

bash
cat server.yaml | aiman add mcp -

Если входной файл содержит поля value в блоке env, AIM автоматически переносит их в aim.local.yaml и не записывает в mcp/<name>.yaml. Это гарантирует, что секреты не попадут в Git.

После добавления запустите aiman push, чтобы опубликовать изменение.

Импорт скилла из AI-среды

Если навык уже установлен в одной из AI-сред, его можно импортировать напрямую:

bash
aiman import skill hello --from claude-code
aiman import skill review-code --from codex

Посмотреть содержимое без записи:

bash
aiman import skill hello --from claude-code --dry-run

Поддерживаемые источники: claude-code, cursor, codex.

Cursor не хранит скиллы нативно — --from cursor всегда вернёт пустой результат.

После добавления запустите aiman push, чтобы опубликовать изменение.

Импорт MCP-сервера из AI-среды

Если MCP-сервер уже настроен в одной из AI-сред, его можно импортировать напрямую:

bash
aiman import mcp context7 --from claude-code
aiman import mcp jira --from cursor

Посмотреть содержимое без записи:

bash
aiman import mcp context7 --from claude-code --dry-run

Импортировать и установить все три AI-среды как целевые:

bash
aiman import mcp context7 --from claude-code --targets all

Поддерживаемые источники: claude-code, cursor, codex.

AIM читает живую конфигурацию указанной среды, извлекает дескриптор MCP-сервера и применяет env-strip: реальные значения env-переменных записываются в aim.local.yaml, в инвентарь и Git попадают только дескрипторы без секретов.

Если сервер с таким именем уже есть в инвентаре с другим содержимым, команда завершится с ошибкой. Для перезаписи используйте --overwrite:

bash
aiman import mcp context7 --from claude-code --overwrite

После добавления запустите aiman push, чтобы опубликовать изменение.

Локальная итерация: edit -> apply -> test

Используйте aiman apply, когда хотите проверить изменение до публикации.

bash
$EDITOR skills/review-code.md
aiman apply

Что делает apply:

  • читает локальные skills/ и mcp/;
  • валидирует элементы;
  • применяет валидные элементы в обнаруженные AI-среды;
  • не делает commit;
  • не обращается к remote;
  • не обновляет published_hash и synced_hash.

Этот цикл подходит для разработки навыков: правка, применение, проверка в AI-инструменте, повторная правка. Большинство AI-сред читают навыки при старте сессии — после aiman apply перезапустите сессию агента, чтобы изменения подхватились.

Публикация: status -> push

Когда локальное изменение готово:

bash
aiman status
aiman push

status показывает состояние управляемых файлов. push валидирует инвентарь, создаёт commit и отправляет его в удалённый репозиторий.

push --dry-run показывает план публикации без записи в Git:

bash
aiman push --dry-run

Перенос на другую машину: init -> sync

На новой машине:

bash
aiman init git@github.com:you/aim-loadout.git
aiman sync

sync выполняет Git fetch, проверяет историю, получает опубликованное состояние и применяет его в локальные AI-среды.

Защита от потери изменений

sync блокируется, если локальные изменения могут быть потеряны.

bash
aiman sync
# error: local changes detected ...

Варианты действий:

  • опубликовать изменения через aiman push;
  • вручную сохранить или удалить локальные изменения;
  • использовать aiman sync --force, если локальные изменения можно потерять.

Состояния истории

После fetch AIM различает несколько ситуаций:

СостояниеПоведение
Local уже равен remoteприменить inventory без reset
Local отстаёт от remotefast-forward reset и применить
Local содержит неопубликованные commit'ыостановиться и попросить aiman push
История разошласьостановиться и попросить ручное восстановление Git

Когда использовать какую команду

ЗадачаКоманда
Добавить скилл из файлаaiman add skill <file>
Добавить MCP-сервер из файлаaiman add mcp <file>
Импортировать скилл из AI-средыaiman import skill <name> --from <env>
Проверить содержимое скилла без записиaiman import skill <name> --from <env> --dry-run
Импортировать MCP-сервер из AI-средыaiman import mcp <name> --from <env>
Проверить MCP-дескриптор без записиaiman import mcp <name> --from <env> --dry-run
Проверить локальный навык без публикацииaiman apply
Посмотреть, что измененоaiman status
Опубликовать готовый инвентарьaiman push
Применить опубликованный инвентарь на машинеaiman sync
Проверить окружение и конфигиaiman doctor

Released under the Apache 2.0 License.