<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title id="root">Глоссарий</title>
  <status stage="doc" state="work" audience="user,author,dev,agent"/>
  <p p="1">Одно определение на термин, и это единственное место, где термин определён. Каждая другая страница ведёт сюда, когда впервые употребляет слово из этого списка; рядом с русским термином стоит английский, потому что команды, манифесты и спецификации говорят по-английски.</p>
  <section id="adaptation" title="адаптация">
    <p p="2">Версия документации на другом языке (*adaptation*): отдельный пакет, который зеркалит источник блок в блок и свободен предложение за предложением. В этом руководстве «перевод» и «адаптация» значат одно и то же. См. *перевод*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#STYLE-SOURCE-LANGUAGE" p="3"/>
  </section>
  <section id="agent-session" title="сессия агента">
    <p p="4">Один запуск агента-кодера в проекте (*agent session*): от момента, когда он читает файл с инструкциями, до момента, когда останавливается. Стартовая полоса — это то, что vibe готовит к началу сессии.</p>
  </section>
  <section id="anchor" title="якорь">
    <p p="5">Идентификатор раздела или факта внутри спецификации (*anchor*), часть адреса после `#`. Опубликованный якорь никогда не меняется; переименование оставляет надгробие.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#INV-ANCHORS-IMMUTABLE" p="6"/>
  </section>
  <section id="block-number" title="номер блока">
    <p p="7">Порядковый номер `pNN`, который каждый блок страницы документации получает при сборке (*block number*); он один и тот же в веб-странице, в Markdown и в XML, так что человек и агент ссылаются на одно место. Он называет текущий текст и может сдвинуться после правки, как номер строки.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#READER-NUMBERED-BLOCKS" p="8"/>
  </section>
  <section id="boot-lane" title="стартовая полоса">
    <p p="9">Упорядоченный список чтения, по которому агент идёт в начале сессии (*boot lane*): управляемый блок в файле с инструкциями, затем `STATIC.md` целиком, затем записи `INDEX.md`. Вычисляется vibe из графа зависимостей, руками не пишется никогда.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#SESSION-START-ORDER" p="10"/>
  </section>
  <section id="boot-snippet" title="стартовый фрагмент">
    <p p="11">Вклад пакета в стартовую полосу (*boot snippet*): один короткий текст, объявленный в `[boot_snippet]` с категорией, который каждый потребитель читает при каждом старте сессии. У пакетов документации его нет.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#SCHEMA-BOOT-SNIPPET" p="12"/>
  </section>
  <section id="capability" title="возможность">
    <p p="13">Абстрактное умение, которое пакет предоставляет или требует (*capability*), записывается как `namespace:name` с необязательным ограничением версии; при установке резолвер сводит требующих с предоставляющими.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#IDENTITY-TUPLE" p="14"/>
  </section>
  <section id="community" title="документация сообщества">
    <p p="15">Документация пакета, которая объявляет свой предмет, но предметом не названа (*community documentation*): на сайте показывается со своим издателем, ниже официальной полки. См. *официальная документация*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-OFFICIAL-IS-CONVERGENCE" p="16"/>
  </section>
  <section id="companion" title="компаньон">
    <p p="17">Пакет, связанный с другим по имени ради умолчания об официальности и ничем больше (*companion*): документация `&lt;name&gt;-docs` пакета или перевод `&lt;docname&gt;-&lt;lang&gt;` документации. Компаньон держит собственную линию версий и не входит в унисон семейства.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-028#ROLE-DOCS" p="18"/>
  </section>
  <section id="contribution" title="вклад">
    <p p="19">Привязка обработчика к точке расширения (*contribution*), объявленная таблицей `[[extension]]` в пакете или проекте; единица, которую жизненный цикл выполняет и о которой отчитывается.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#CONTRIB-GRAMMAR" p="20"/>
  </section>
  <section id="coordinate" title="координата">
    <p p="21">Имя пакета (*coordinate*): группа, косая черта и имя, `org.vibevm.world/wal`, с `@version`, когда имеется в виду версия. Вид в неё не входит.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-008#IDENTITY-TUPLE" p="22"/>
  </section>
  <section id="deploy-profile" title="профиль выкладки">
    <p p="23">Именованный упорядоченный список целей и провайдеров, которые применяют к ним упакованные артефакты (*deploy profile*); `vibe deploy` выполняет один профиль, `vibe undeploy` откатывает его.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-DEPLOY-RUNTIME" p="24"/>
  </section>
  <section id="effective-set" title="действующее множество">
    <p p="25">Пакеты, которые метки видимости пропускают от вашего корня (*effective set*): то, что видит подбор версий, что записывает лок-файл и что держит дерево зависимостей. Приватное ребро пакета, который не ваш корень, лежит вне его.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#RESOLVE-EFFECTIVE-ONLY" p="26"/>
  </section>
  <section id="embedded-registry" title="встроенный реестр">
    <p p="27">Пакеты из дерева исходников собранного из них vibe, к которым он обращается автоматически как к реестру (*embedded registry*): первым — в сборке разработчика, после объявленных реестров — в распространяемой.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-030#AMBIENT-DEFAULT" p="28"/>
  </section>
  <section id="extension-point" title="точка расширения">
    <p p="29">Именованное место в жизненном цикле, к которому привязывается вклад (*extension point*): фаза, слот внутри фазы или позиция в компиляторе полосы, записывается как `family:name`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#POINT-GRAMMAR" p="30"/>
  </section>
  <section id="fact" title="факт">
    <p p="31">Одна заякоренная единица спецификации со статусом (*fact*): правило, решение, вводная. В XML — элемент, названный по своему идентификатору, с `fact="true"`; в Markdown — абзац, начинающийся с `@fact:ID`. Адресуемый атом, на который ссылается агент.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-045#NAMED-FACT-ELEMENTS" p="32"/>
  </section>
  <section id="family" title="семейство">
    <p p="33">Набор пакетов с общей основой имени, которые движутся в унисон (*family*): бандл `&lt;family&gt;`, языковой гайд `&lt;family&gt;-lang`, сервер `&lt;family&gt;-mcp`. Изменение любого члена поднимает всех до одной версии.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-028#FAMILY-DEF" p="34"/>
  </section>
  <section id="feature" title="фича">
    <p p="35">Необязательный добавочный набор содержимого пакета (*feature*), объявленный в `[features]` и включаемый при установке; фичи могут зависеть от фич.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-resolver/PROP-003#FEATURES-TABLE" p="36"/>
  </section>
  <section id="fingerprint" title="отпечаток">
    <p p="37">Хэш поставляемого дерева пакета (*fingerprint*), половина идентичности версии пакета; записывается как `content_hash` в лок-файл и проверяется при каждом скачивании.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-008#HASH-UNCHANGED" p="38"/>
  </section>
  <section id="freshness-fingerprint" title="отпечаток свежести">
    <p p="39">Хэш объявленных входов прогона фазы (*freshness fingerprint*), записанный под `.vibe/`; фаза, чей отпечаток свежести не изменился, при следующем прогоне пропускается.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#PHASE-FINGERPRINT" p="40"/>
  </section>
  <section id="friend-closure" title="замыкание друзей">
    <p p="41">Пакеты, с которыми проект подружился (*friend closure*): напрямую, через `friend = true` или строку `friends`, либо по цепочке рёбер «только для друзей». Зависимость «только для друзей» доходит лишь до проектов, чьё замыкание друзей содержит её поставщика.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#ACCESS-FRIENDS" p="42"/>
  </section>
  <section id="git-source" title="git-источник">
    <p p="43">Зависимость, объявленная git-репозиторием и тегом, коммитом или веткой вместо реестра (*git source*); дисциплина идентичности и отпечатков та же, а ветка при обновлении обходится заново.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#GS-IDENTITY" p="44"/>
  </section>
  <section id="handler" title="обработчик">
    <p p="45">То, что выполняет вклад (*handler*): встроенная функция, скрипт, бинарник, нативная библиотека или промпт агента.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#HANDLER-KINDS" p="46"/>
  </section>
  <section id="hook" title="хук">
    <p p="47">Скрипт пакета `pre-install` или `post-install` (*hook*), выполняемый в слоте пакета; установка пакета и есть согласие его запустить, а его последствия не отслеживаются.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-020#WHAT-HOOKS-ARE" p="48"/>
  </section>
  <section id="index-registry" title="индекс (реестра)">
    <p p="49">Репозиторий рядом с пакетами реестра, где записаны сводка и отпечаток каждой опубликованной версии (*index*); кэш, который ускоряет поиск и холодные установки и никогда не служит истиной.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-index/PROP-005#REPOS-AUTHORITATIVE" p="50"/>
  </section>
  <section id="kind" title="вид">
    <p p="51">Для чего пакет нужен (*kind*), один из восьми: `flow`, `feat`, `stack`, `tool`, `lang`, `mcp`, `doc`, `app`. Метаданные, а не идентичность; набор растёт только поправкой.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-000#KIND-SET" p="52"/>
  </section>
  <section id="lifecycle" title="жизненный цикл">
    <p p="53">Фиксированный порядок шагов сборки, которые выполняет vibe (*lifecycle*): однофазный цикл `clean` и девятифазный цикл `default` от `validate` до `deploy`. См. *фаза*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#LIFECYCLES" p="54"/>
  </section>
  <section id="link-type" title="тип связи">
    <p p="55">Как стартовый фрагмент зависимости попадает в полосу потребителя (*link type*): `static` — вкомпилирован в `STATIC.md`, или `dynamic` — перечислен в `INDEX.md` и читается по требованию; задаёт потребитель, предлагает пакет.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-009#INCLUSION-TYPES" p="56"/>
  </section>
  <section id="lock-file" title="лок-файл">
    <p p="57">`vibe.lock`: записанный результат подбора (*lock file*), один на рабочее пространство, с точной версией, отпечатком и происхождением каждого пакета. Пишет vibe, коммитите вы.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-011#LOCKFILE-RESPECTING" p="58"/>
  </section>
  <section id="managed-block" title="управляемый блок">
    <p p="59">Область между строками `&lt;vibevm&gt;` и `&lt;/vibevm&gt;` в конце `CLAUDE.md`, `AGENTS.md` и `GEMINI.md` (*managed block*), единственная часть этих файлов, которую пишет vibe; она указывает агенту на стартовую полосу.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-012#ONE-BLOCK-LAW" p="60"/>
  </section>
  <section id="manifest" title="манифест">
    <p p="61">`vibe.toml`: единственный файл, который вы пишете, чтобы описать проект, пакет или рабочее пространство (*manifest*); его таблицы решают, какую роль играет узел.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#ONE-MANIFEST" p="62"/>
  </section>
  <section id="mcp-server" title="MCP-сервер">
    <p p="63">Программа, с которой агент общается по Model Context Protocol (*MCP server*). Собственный сервер vibe открывает пакеты проекта; пакет вида `mcp` поставляет свои серверы.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-mcp/PROP-027#MCP-KIND-DEF" p="64"/>
  </section>
  <section id="mirror" title="зеркало">
    <p p="65">Запасной адрес того же реестра (*mirror*), к которому обращаются ради доступности и который проверяют по тем же отпечаткам; в лок-файл не записывается никогда.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#MIRROR-WALK-SEMANTICS" p="66"/>
  </section>
  <section id="official" title="официальная документация">
    <p p="67">Документация, у которой сходятся рёбра (*official documentation*): предмет называет пакет в `[documentation]` или по соглашению `-docs`, а пакет называет предмет в `[[documents]]`. Одна из них может быть первичной. Вычисляется при каждом рендере, флагом не хранится нигде.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-NO-OFFICIAL-FLAG" p="68"/>
  </section>
  <section id="override" title="переопределение">
    <p p="69">Замещающий источник для одной координаты, который обходит реестры (*override*); в лок-файле помечен, чтобы никто не принял его за опубликованную версию. Тем же словом названа таблица `[override]`, переписывающая метки видимости рёбер, которыми вы не владеете.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#OVERRIDE-SHORT-CIRCUIT" p="70"/>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-050#OVERRIDE-ANYWHERE" p="71"/>
  </section>
  <section id="package" title="пакет">
    <p p="72">Единица, которую устанавливает vibe (*package*): папка с манифестом и тем текстом или инструментами, которые она приносит; публикуется как собственный репозиторий, опознаётся по координате, версии и хэшу содержимого. Пакет — это проект, который сделали устанавливаемым.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-024#PKG-PROJECT-LAW" p="73"/>
  </section>
  <section id="phase" title="фаза">
    <p p="74">Один шаг жизненного цикла (*phase*): `validate`, `install`, `generate`, `build`, `test`, `create`, `verify`, `package`, `deploy`. Назвать фазу — значит выполнить все фазы до неё.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#INVOKE-RUNS-PRIORS" p="75"/>
  </section>
  <section id="project" title="проект">
    <p p="76">Любая папка с `vibe.toml` (*project*); потребитель пакетов, помеченный таблицей `[project]`, или рабочее пространство таких потребителей.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#PACKAGE-XOR-PROJECT" p="77"/>
  </section>
  <section id="provider" title="провайдер">
    <p p="78">То, что отвечает за исполнение механизма (*provider*): встроенная или поставленная пакетом реализация шага сборки, упаковки или выкладки либо модельная конечная точка за обработчиком-агентом. Выбирается точным маршрутом или пином.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-NATIVE-DEPLOY-PROVIDER" p="79"/>
  </section>
  <section id="receipt" title="квитанция">
    <p p="80">Запись, которую выкладка делает о каждом созданном ресурсе (*receipt*): что, где, под каким поколением, каким профилем владеется. Единственное основание для удаления.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-054#R8-DEPLOY-RUNTIME" p="81"/>
  </section>
  <section id="registry" title="реестр">
    <p p="82">Хостинг-организация, где публикуются пакеты, по репозиторию на пакет (*registry*); проект перечисляет реестры, которым доверяет, по порядку.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-002#SHAPE-OWN-REPO" p="83"/>
  </section>
  <section id="relay" title="эстафета">
    <p p="84">Почтовый ящик под `.vibe/agentic/`, куда vibe кладёт инструкцию, которую не может выполнить сам (*relay*); агент разбирает его командой `vibe command`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-018#RELAY-PARKS" p="85"/>
  </section>
  <section id="scrape" title="scrape">
    <p p="86">Окончательное снятие слоя vibe с проекта, по контракту, с планом и доказательством здоровья; у слова нет устоявшегося русского эквивалента, команда так и называется — `vibe scrape`. Не путать с `clean`.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-056#SCRAPE-TERM-BOUNDARY" p="87"/>
  </section>
  <section id="skill" title="навык">
    <p p="88">Файл, который пакет объявляет в `[[skill]]` и который чему-то учит агента (*skill*); `vibe skill install` проецирует его в папки навыков агентов.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-018#PROJECTION-DEF" p="89"/>
  </section>
  <section id="specification" title="спецификация">
    <p p="90">Нормативный текст пакета или проекта под `vibevm/vibespecs/` (*specification*): адресуемые единицы со статусами, в Markdown или в XML-диалекте. То, что документация цитирует и никогда не пересказывает.</p>
    <rule ref="spec://org.vibevm.world/addressable-specs/flows/addressable-specs/ADDRESSABLE-SPECS-PROTOCOL#THE-SPEC-TREE-IS-THE-ONLY-CHANNEL" p="91"/>
  </section>
  <section id="store" title="хранилище">
    <p p="92">Общий для машины кэш скачанных версий пакетов под `~/.vibe/cache/` (*store*), с ключом по идентичности, общий для всех проектов, очищается только по просьбе.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-registry/PROP-010#CACHE-MACHINE-GLOBAL" p="93"/>
  </section>
  <section id="subject" title="предмет">
    <p p="94">Пакет, который документирует пакет документации (*subject*); назван в его таблице `[[documents]]` с диапазоном версий.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#REL-DOCUMENTS-REQUIRED" p="95"/>
  </section>
  <section id="subskill" title="поднавык">
    <p p="96">Выбираемый срез содержимого пакета (*subskill*), включаемый контекстом потребителя, например версией библиотеки, которую использует проект.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-resolver/PROP-003#DESCRIBES-ON-SUBSKILLS" p="97"/>
  </section>
  <section id="traceability-map" title="карта прослеживаемости">
    <p p="98">`specmap.json`: сгенерированный граф единиц спецификации, помеченных элементов кода и рёбер между ними (*traceability map*); его проверяет сборка и запрашивают `vibe explain`, `vibe query` и `vibe select`.</p>
    <rule ref="spec://org.vibevm.ai-native/core-ai-native/mechanisms/PROP-014#FORCE-INVARIANTS-ARE-MACHINE-CHECKED" p="99"/>
  </section>
  <section id="translation" title="перевод">
    <p p="100">Отдельный пакет документации на другом языке (*translation*), который называет свой источник в `[translates]` и зеркалит его дерево; официален, когда опубликован группой источника под именем `&lt;docname&gt;-&lt;lang&gt;`. См. *адаптация*.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-057#LOC-OFFICIAL-TRANSLATION" p="101"/>
  </section>
  <section id="version-constraint" title="ограничение версии">
    <p p="102">То, что просит манифест (*version constraint*): диапазон вроде `^1.0`, точная `=1.2.0` или ничего — тогда новейшая стабильная. Лок-файл записывает ту одну версию, которую резолвер выбрал внутри него.</p>
    <rule ref="spec://org.vibevm.core/vibevm/common/PROP-000#CF-RANGE" p="103"/>
  </section>
  <section id="workspace" title="рабочее пространство">
    <p p="104">Репозиторий, разрабатывающий несколько пакетов вместе (*workspace*); объявляется таблицей `[workspace]` со списком путей участников; один лок-файл в корне и один общий подбор версий на всех участников.</p>
    <rule ref="spec://org.vibevm.core/vibevm/modules/vibe-workspace/PROP-007#WORKSPACE-TABLE" p="105"/>
  </section>
</spec>
