VibeVM
Contents
On this page
ru
Publisher
org.vibevm.core
Version
1.0.0latest
Adapts
org.vibevm.core/vibevm-docs
Audiences
author
Reading time
3 min
Rendered
Read aloud
never

Написать пакет lang

01Пакет lang учит агента писать на языке или в нотации: идиомы, ограничения, форма хорошего файла. Эта страница пишет такой пакет и объясняет, как vibe распознаёт в нём языковую дисциплину.

02
Создай пакет lang org.acme/sql-style в текущем проекте VibeVM, как пакет в дереве под vibevm/vibepacks/: руководство о том, как наша команда пишет SQL. Дай ему стартовый фрагмент, который называет три правила, которым агент должен следовать всегда, и документ-руководство с полными идиомами, примерами и причинами. Запусти на нём vibe check.

навык vibevm, установленный у вашего агента; проект с vibe.toml в корне

vibevm/vibepacks/org.acme/sql-style/v0.1.0/vibe.toml объявляет kind = "lang" со стартовым фрагментом; у руководства под vibevm/vibespecs/ разделы с якорями, которые цитирует фрагмент; vibe check не находит ошибок

  • vibe check --path vibevm/vibepacks/org.acme/sql-style/v0.1.0 --quiet
  • grep -q "kind = \"lang\"" vibevm/vibepacks/org.acme/sql-style/v0.1.0/vibe.toml

Что происходит

03Агент создаёт скелет пакета, пишет руководство и его фрагмент так же, как пишут их для flow, и ставит вид lang. От flow это отличается жанром, а не механикой. Flow говорит, как работает команда; пакет lang говорит, как писать на чём-то. Вид сообщает агенту, реестру и сайту, что перед ними, ещё до того, как файл открыт.

04 kind ∈ {flow, feat, stack, tool, mcp, lang, doc, app} — eight kinds; mcp shipped with PROP-027; doc and app admitted by PROP-057 through the VIBEVM-SPEC.md §4.1 amendment of 2026-09-12 (pending the owner's ratification at the merge of the docs-2026-09 branch; the code learns the two kinds in that campaign's phase 2). (§Invariants INV-VOCABULARY in this file carries the same list.)

Что такое пакет lang, а что нет

05Жанр шире языков программирования: подходит руководство по языку запросов, нотации конфигурации, диалекту документации или домашнему стилю языка. Не подходит связка инструментов; это stack. Примеры в публичном реестре — руководства по языкам AI-Native для Rust, TypeScript и Go, каждое поставляет руководство, набор карточек и запускаемый тулчейн.

06Язык AI-Native распознаётся ровно по одному признаку: по зависимости от общего ядра дисциплины, org.vibevm.ai-native/core-ai-native. Не по группе и не по имени. Третья сторона может опубликовать собственную языковую дисциплину в своей группе, и её распознают так же, так что дисциплина — не закрытый клуб.

07 core-ai-native (flow) — the language-neutral discipline core. It stands ALONE: it is the shared foundation every language family requires, not itself an aggregator (there is nothing to aggregate beneath a foundation), so no core-ai-native-lang / -mcp exist. Each <family>-lang requires it.

Когда язык приносит инструменты

08Языковое руководство, которое поставляет ещё и инструменты, проверщик, форматер, оракул типов, становится семейством. Пакет руководства — <family>-lang; пакет сервера <family>-mcp обслуживает те же инструменты для агентов; бандл <family> закрепляет оба на одной версии. Участники двигаются в унисон; потребитель требует бандл и получает проверенный набор.

09 A package family is a set of packages sharing a <family> stem and delivering one coherent capability across three roles:
10 Within a family the members move in unison: a content change to any member bumps EVERY member of that family to one shared version, and the aggregator's version IS that family version.

11Основа семейства ведёт каждую именованную поверхность: крейты, бинарники, навыки и сервер несут префикс <family>, так что всё одного языка сортируется и читается вместе.

12 The family stem is language-FIRST and reaches every named surface a family ships, not only the package identities. Each crate, binary, agent skill, and MCP server carries the <family> prefix:

Руками

131. Создайте слот пакета, затем поставьте kind = "lang" в его манифесте:

14

152. Внутри слота напишите vibevm/vibespecs/boot/sql-style.xml с правилами, которым агент должен следовать каждый раз. Руководство положите под vibevm/vibespecs/lang/sql-style/, с причинами, идиомами и примерами.

163. Объявите [boot_snippet] source = "vibevm/vibespecs/boot/sql-style.xml", category = "stack", чтобы правила языка шли после flow-пакетов команды в списке чтения потребителя.

174. Проверьте: vibe check --path vibevm/vibepacks/org.acme/sql-style/v0.1.0.

Особые случаи и правила

18Что из принесённого языком можно запустить, отвечает vibe tools, а не вид: стартовая полоса говорит, какие дисциплины установлены, реестр инструментов — что они принесли.

19Пока вида lang не было, языковые руководства были stack-пакетами; пакет stack, который на самом деле руководство, должен перейти в lang при следующей версии, чтобы слово значило одно.

For an agent

This page has a machine mirror. The citation carries the version rather than latest, so what an agent quotes does not move under it.

spec://org.vibevm.core/vibevm-docs@1.0.0/authoring/write-a-lang-package

.md.xmlllms.txt