Структура репозитория
Inventory — обычный Git-репозиторий.
Структура верхнего уровня
<inventory>/
├── skills/
│ └── review-code.md
├── mcp/
│ └── context7.yaml
├── loadouts/
│ └── documentation-work.yaml
├── aim.yaml
└── .gitignoreДиректория loadouts/ опциональна: репозиторий без неё полностью валиден.
Локально на каждой машине также создаётся:
aim.local.yamlaim.local.yaml не должен попадать в Git.
skills/
Один файл — один Skill Item:
skills/<name>.mdИмя файла без .md должно совпадать с полем name во frontmatter.
Навык может храниться и папкой — так его записывают aiman add skill <dir> и aiman import skill для папочного навыка из AI-среды:
skills/<name>/SKILL.md
skills/<name>/references/...Имя навыка в этом случае задаёт имя директории. Подробнее — в формате инвентаря.
mcp/
Один файл — один MCP Item:
mcp/<name>.yamlФайл описывает команду запуска MCP-сервера, аргументы, targets и env-переменные.
aim.yaml
Общий конфиг инвентаря. Хранится в Git.
.gitignore
Минимально должен исключать:
aim.local.yamlaim.local.yaml
Локальный конфиг машины:
- пути AI-сред;
- hash-метки;
- значения env-переменных MCP-серверов.
Файл создаётся AIM и не коммитится.
loadouts/
Один файл — один Loadout Item, именованное подмножество инвентаря:
loadouts/<name>.yamlПример:
name: Documentation Work
description: Навыки и MCP для работы с документацией
targets:
- claude-code
items:
- skill:create-spec
- skill:wpage
- mcp:context7Соглашение об имени файла: kebab-case; имя файла — это поле name после нормализации (пробелы → дефисы, нижний регистр). name: Documentation Work → loadouts/documentation-work.yaml. Несовпадение — предупреждение при aiman push, не ошибка.
Директория опциональна. aiman init её не создаёт — заведите её сами, когда понадобится первый loadout.
Loadout применяется командой aiman apply --loadout <name> (справочник CLI); формат полей и инварианты — в формате инвентаря.
Публикация. aiman push валидирует loadouts/ и публикует эти файлы вместе с skills/ и mcp/ — отдельная команда git add не нужна.