Skip to content

Концепциялар

Loadout

AIM-де «loadout» сөзінің екі мағынасы бар — өнімдік және техникалық.

Loadout метафорасы — AI-құралдармен жұмыс жасайтын әзірлеушінің толық оқ қорамсасы. Оған дағдылар, MCP серверлері және AI орталарын жұмысқа дайын ететін параметрлер кіреді. aiman sync командасы — жаңа машинада осы қорамсаны жылдам қайта зарядтау. Өнімнің атауы да осыдан шыққан: AIM Loadout.

Техникалық loadout — контекстпен жұмыс істеуге арналған инвентарьдың атаулы ішкі жиыны, мысалы Documentation Work немесе Architecture Work. Ол loadouts/<name>.yaml файлында сақталады және aiman apply --loadout <name> командасымен декларативті түрде қолданылады: AI орталары инвентарьға белгілі элементтер шегінде дәл loadout жинағына келтіріледі. Loadout-тан тыс инвентарь элементтері орталардан жойылады; қолмен немесе басқа құралмен жасалған файлдар қозғалмайды.

МағынасыНені білдіредіКоманда
Loadout метафорасыинвентарь тұтасыменaiman sync, aiman apply
Техникалық loadoutинвентарьдың атаулы ішкі жиыныaiman apply --loadout <name>

--loadout флагысыз aiman apply виртуалды Default loadout режимінде жұмыс істейді — бұл бүкіл жарамды инвентарь; оның мінез-құлқы аддитивті: элементтерді орнатады және жаңартады, бірақ орталардан ештеңе жоймайды. aiman sync-те --loadout флагы мүлде жоқ — бұл толық инвентарьдың тасымалы, — бірақ оны қолдану кезіндегі мінез-құлқы пинге байланысты: пинсіз ол --loadout-сыз apply сияқты аддитивті; белсенді пинмен ол орталарды бекітілген loadout жинағына декларативті түрде келтіреді — дәл apply --loadout <name> сияқты.

Контекст ауыстыру сценарийі — Жұмыс циклдарында, файл форматы — инвентарь форматында.

Loadout пині

apply --loadout <name> — бір реттік әрекет: ол AI орталарын loadout жинағына бір рет қана келтіреді және ештеңені есте сақтамайды. Келесі aiman sync орталарды қайтадан толық инвентарьға дейін кеңейтеді, өйткені sync әдепкі бойынша apply арқылы жасалған таңдау туралы білмейді.

Пин — сол бір loadout механизмінің үстіндегі сақталған күй: бекітілген loadout атауы пайдаланушының жаһандық конфигінде (~/.config/aim/config.yaml, loadout өрісі) сақталады және оны арнайы алып тастамайынша, CLI-дің әр іске қосылуы арасында белсенді болып қалады. Пин орнатылған кезде aiman sync толық инвентарьды аддитивті қолданудың орнына орталарды бекітілген loadout жинағына декларативті түрде келтіреді — apply --loadout <name> сияқты, жинақтан тыс элементтерді жоюды қоса алғанда.

apply --loadout <name>apply --loadout <name> --pin
Не боладыжинақты бір рет қолданадыжинақты қолданады және оны белсенді пин ретінде есте сақтайды
Келесі sync нені көредітаңдау туралы білмейді — толық инвентарьды қолданадытолық инвентарьдың орнына сол loadout-ты қолданады
Қайда сақталадыешқайда, әсері тек AI орталарындажаһандық конфигте, loadout: <name>
Қалай алып тастау керекештеңе алып тастаудың қажеті жоқ — sync толық жинақты өзі қайтарадыaiman apply --unpin немесе aiman apply --default

Пинді apply флагтары басқарады:

  • apply --loadout <name> --pin — қолдану және бекіту;
  • apply --default — бүкіл инвентарьды бір әрекетпен қолдану және пинді алып тастау;
  • apply --unpin — ештеңе қолданбай пинді алып тастау.

aiman status белсенді пинді Pinned loadout: өрісінде көрсетеді. aiman switch инвентарьдың басқа репозиторийіне ауысқанда пинді әрдайым сөзсіз алып тастайды — тіпті жаңа репозиторийде дәл сол атаумен loadout болса да: әр машинада репозиторий бойынша пиндер жиынтығы емес, тек бір ғана жаһандық көрсеткіш сақталады.

Пин енді жоқ loadout-қа сілтесе (атауы өзгертілген, жойылған немесе switch мұндай атауы жоқ репозиторийге алып келген), sync толық инвентарьға үнсіз оралудың орнына pinned loadout "X" not found in inventory қатесімен тоқтайды — осылайша рассинхрондау байқаусыз қалмайды. Бұл пинсіз apply --loadout беретін loadout "X" not found in loadouts/ қатесінен бөлек тексеру.

Флагтардың, қақтығыстардың және шығарудың толық сипаттамасы — CLI анықтамалығында, пайдалану сценарийі — Жұмыс циклдарында.

Inventory

Inventory (инвентарь) — AIM пайдаланушының AI орталарына қолданатын файлдары бар Git репозиторийі.

Ағымдағы үлгіде инвентарь мыналарды қамтиды:

  • skills/ — дағдылар;
  • mcp/ — MCP серверлері;
  • loadouts/ — инвентарьдың атаулы ішкі жиындары (міндетті емес);
  • aim.yaml — жалпы конфигурация;
  • .gitignore — кем дегенде aim.local.yaml-ды шығарып тастайды;
  • aim.local.yaml — әр машинадағы жергілікті файл, Git-ке сақталмайды.

Library Item

Library Item — инвентарьдың бірлігі. Ағымдағы MVP-да екі тип бар: Skill Item және MCP Item.

Инвентарьдағы орынға кандидат — AI орталары өнеркәсіптік стандарт ретінде қабылдаған сущность: оның тұрақты форматы бар, оны бірнеше өндіруші қолдайды және оны орталар арасында елеулі өзгертулерсіз тасымалдауға болады. Мұндай сущность тасымалданатын актив ретінде мағынасы бар — оны орталықтандырып сақтап, адаптерлер арқылы қолданған жөн.

Skill Item

Skill Item — AI ортасына арналған Markdown нұсқаулығы.

Файл skills/<name>.md ретінде сақталады:

md
---
name: review-code
description: Дұрыстыққа баса назар аударып code review жүргіз
targets:
  - claude-code
  - cursor
---

# Role

...

Қолданғаннан кейін AIM дағдыны нақты AI ортасы күтетін форматта орнатады.

Дағды қалта түрінде де сақтала алады (skills/<name>/SKILL.md) — қосымша анықтамалық файлдармен, мысалы agent-patterns.md немесе examples.md. Бұл жағдайда AIM бүкіл қалтаны тұтасымен көшіреді. Толығырақ — Инвентарь форматы анықтамалығында.

MCP Item

MCP Item — MCP серверінің YAML сипаттамасы:

yaml
name: context7
description: MCP арқылы кітапхана құжаттамасы
command: npx
args:
  - -y
  - "@upstash/context7-mcp"
targets:
  - claude-code
  - cursor
  - codex
env:
  - name: API_KEY
    description: API key
    required: true

Env айнымалыларының мәндері Git-ке сақталмайды. AIM оларды жергілікті сұрайды және aim.local.yaml-да сақтайды.

Болашақтағы мүмкін түрлер

AI орталары жаңа стандарттар туралы келіскен сайын инвентарьға қосымша түрлер кіруі мүмкін.

Субагент нұсқаулығы. Claude Code субагент нұсқаулықтарын қазірдің өзінде қолдайды. Codex CLI мен Cursor бұл форматты қабылдаған кезде, ол дербес Library Item бола алады.

Жоба/каталог жүйелік нұсқаулығы. Claude Code оны CLAUDE.md-да, Codex — AGENTS.md-да сақтайды, Cursor екі файлды да оқиды. Бұл нұсқаулықтар іс жүзінде ұқсас форматқа жақындап жатыр. Болашақта AIM мұндай нұсқаулықты бірыңғай актив ретінде сақтап, sync кезінде адаптерлер арқылы орталарға бөле алады.

Ағымдағы MVP-да бұл түрлердің ешқайсысы жүзеге асырылмаған. Library Item — тек Skill Item немесе MCP Item.

Инвентарьды жинау

Инвентарьды басқарудың алдында оны толтыру керек. AIM элементтер қосудың екі тәсілін қолдайды.

aiman add — жергілікті файлдан немесе stdin-нен:

bash
aiman add skill cool-skill.md
cat prompt.md | aiman add skill -

aiman add mcp jira.yaml
cat jira.yaml | aiman add mcp -

aiman add skill қалталық дағдыға (немесе оның SKILL.md-іне) жол да қабылдайды — бұл жағдайда инвентарьға бүкіл қалта көшіріледі: SKILL.md және оның жанындағы барлық анықтамалық файлдар.

MCP сервері қосылған кезде AIM файлдан env айнымалыларының нақты мәндерін автоматты түрде шығарып, aim.local.yaml-да сақтайды — инвентарьға (және Git-ке) тек секретсіз дескрипторлар түседі.

aiman import — орнатылған AI ортасынан:

bash
aiman import skill review-code --from claude-code
aiman import skill my-prompt --from codex

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

aiman import тек белсенді инвентарь репозиторийіне жазады: репозиторий қосылмаған болса, команда ағымдағы каталогта файл жасамай, қатемен аяқталады және алдымен aiman init орындауды сұрайды.

Ортада қалта түрінде сақталған дағдыны (<name>/SKILL.md және анықтамалық файлдары) импорттағанда инвентарьға бүкіл қалта көшіріледі — aiman add skill <dir> кезіндегідей.

MCP серверін импорттаған кезде AIM AI ортасының тірі конфигурациясын оқып, env-strip қолданады және дескрипторды mcp/<name>.yaml-ға жазады. Env айнымалыларының нақты мәндері aim.local.yaml-ға түседі, бірақ Git-ке емес. Тек stdio серверлері (command өрісі барлар) импортталады; HTTP/SSE транспортындағы серверлерді AIM көшірмейді.

Элемент қосылғаннан кейін ол жергілікті инвентарьда пайда болады (skills/<name>.md немесе mcp/<name>.yaml). Жариялау үшін aiman push пайдаланыңыз.

Нақты командалар мен флагтар туралы — CLI анықтамалығында.

Adapter

Adapter — нақты AI ортасының форматын білетін AIM бөлігі.

Адаптер мыналарға жауапты:

  • AI ортасының базалық каталогын анықтауға;
  • aiman import skill кезінде дағдыларды сканерлеуге — адаптер AI ортасының дағдыларды қайда сақтайтынын біледі;
  • aiman import mcp кезінде MCP конфигурациясын сканерлеуге — адаптер ортаның тірі конфигурациясын оқиды;
  • Skill Item орнатуға;
  • MCP серверін тиісті JSON немесе TOML конфигіне жазуға.

Қолдау көрсетілетін орталар:

  • Claude Code;
  • Cursor;
  • Codex CLI.

apply, push және sync

aiman apply Git операцияларынсыз ағымдағы жергілікті жұмыс ағашын қолданады. Бұл дағды әзірлеудің ішкі циклы.

aiman apply --loadout <name>apply командасының контексттік нұсқасы: AI орталарын инвентарьдың атаулы ішкі жиынына дәл келтіреді, оның ішінде loadout-тан тыс инвентарь элементтерін орталардан жояды (Loadout бөлімін қараңыз).

aiman push инвентарьды валидациялайды, commit жасайды және өзгерістерді қашықтағы репозиторийге жібереді. Бұл — жариялау.

aiman sync Git-тен жарияланған күйді алып, жергілікті AI орталарына қолданады. Бұл — басқа машинаға тасымалдау немесе ағымдағыны жаңарту. Пинсіз sync бүкіл инвентарьды аддитивті қолданады; белсенді пинмен ол орталарды бекітілген loadout жинағына декларативті түрде келтіреді — apply --loadout <name> сияқты.

Нәтиже жолынан кейінгі өзгерістер құрамы

Үш команда да нәтиже жолынан кейін өзгерістер құрамын — не қосылды (A), өзгертілді (M) немесе жойылды (D) — көрсетеді. push-та D маркері әрдайым инвентарьдан жойылған файлды білдіреді. apply-да ол тек --loadout кезінде пайда болады және элементтің AI ортасынан жойылғанын білдіреді. sync-те D-нің мағынасы контекстке байланысты: git-дельтасында (жарияланған инвентарьда не өзгергені) ол жойылған файлды білдіреді, ал pinned режимінде қосымша екінші, бөлек блок — орталарға қолдану құрамы басылады, онда D apply --loadout-тағы сияқты мағынаны білдіреді (қараңыз: CLI анықтамалығы):

text
synced: 67451fc · 21 skills, 1 MCP server → 3 environments
  M skills/commit-message.md
  A skills/refactor-helper.md

Мұнда екі санды ажырата білу маңызды. Нәтиже жолындағы санауыштар (21 skills) — операция көлемі: барлығы қанша қолданылды. Төмендегі блок — өзгерістер құрамы: жаңа немесе өзгерген нәрселер. 21 skills — 21 өзгеріс емес, жалпы 21 дағды. Ештеңе өзгермесе, блок басылмайды — тек нәтиже жолы қалады.

Дағдылар үшін өзгерістер құрамы мазмұнды салыстыру арқылы есептеледі. MCP серверлері үшін ол әзірге есептелмейді (толығырақ — анықтамалықтағы белгілі шектеуді қараңыз).

aiman status неліктен remote-қа жүгінеді

aiman status «менің инвентарымда жарияланған күйге қатысты не өзгерді» деген сұраққа жауап береді. Бұл сұрақ remote күйін анықтамалық ретінде қарастырады, сондықтан позицияны есептеу алдында команда Git fetch орындайды.

Бұл — желіге жүгінбейтін жергілікті git status-тан саналы айырмашылық: оның сұрағы тек жергілікті жұмыс ағашы туралы. aiman status-тің «шынайы» жергілікті жауабы жоқ — fetch-сіз позиция ескірген ref бойынша есептелер еді және адастыруы мүмкін. Сондықтан fetch-ке кеткен қысқа кідіріс — күтілетін мінез-құлық, ақаулық емес. Remote қолжетімсіз болса, status қатып қалмайды: позиция unknown (remote unreachable) ретінде көрсетіледі, команда сәтті аяқталады.

aim.local.yaml

aim.local.yaml әр машинада жеке жасалады және Git-ке түспейді.

Онда мыналар сақталады:

  • AI орталарына жолдар;
  • соңғы сәтті push пен sync-тің hash белгілері;
  • MCP серверлерінің env айнымалыларының жергілікті мәндері.

Hash белгілері ақпараттық сипатта: олар күйді түсіндіруге көмектеседі, бірақ push пен sync-тің қауіпсіздігі Git күйіне сүйенеді.


Одан әрі

Released under the Apache 2.0 License.