Что принёс эпик жизненного цикла
01С июля по сентябрь 2026 года vibe вырос из установщика пакетов в систему сборки с машиной расширений, нативным ABI, записью каждой выкладки и экспортом терминала. Эта страница рассказывает этот маршрут как одну систему: что решили по дороге и что оставили на потом.
Маршрут в восемь этапов
02Работа шла восемью нумерованными этапами, каждый приземлялся атомарными коммитами с тестами и картой прослеживаемости и записывался в леджер, который называет каждый коммит. Читайте их как одну историю, а не как восемь функций.
| Этап | Что принёс |
|---|---|
| R1, диф-материализация | строгая запись на слот зависимости, так что установка пишет только изменившееся и никогда не стирает дерево; хеш-ворота для изменяемых источников; хуки, которые выполняются только при настоящем изменении |
| R2, движок жизненного цикла | строгая грамматика [[extension]], линия девяти фаз с её глаголами и цепочка очистки, упорядоченный сбор вкладов, конверт контекста, долговечная свежесть с --force, обработчики script и binary, пресеты данных, vibe extensions |
| R3, компилятор | явное промежуточное представление компилятора старта с пятью уровнями и шестью носителями, типизированный менеджер проходов, конвейер проходов от разбора до выдачи, верификатор и трассы компиляции со снимками и таймингами |
| R4, поэтапные преобразования | один чистый реестр расширений ниже жизненного цикла и рабочего пространства, четыре позиции преобразований с активацией в области владельца и отпечатками на единицу, встроенный минификатор XML и анализатор полосы, который относит байты скомпилированной полосы к их источникам |
| R5, нативный ярус | ABI из C и JSON для расширений, безопасный SDK автора и карантинный загрузчик, разрешение исходников и готовых сборок со сборкой в слоте и доказательства паритета между нативным минификатором и встроенным |
| R6, полные проходы компилятора | грамматика проходов за compiler_internals, проекция всего IR на провод без потерь, позиции before, after и replace, обязательный верификатор после проходов плагинов и сквозной текстовый фронтенд с JSON-бэкендом |
| R7, провайдеры и агенты | шов провайдера модели с адаптером, совместимым с OpenAI, обработчик agent в CLI, размещённые исходящие с делегированным продолжением, MCP-поверхности жизненного цикла и подложка для внешней оркестрации |
| R8, упаковка, сборка и выкладка | привязка навыка проекта, грамматика механизмов и артефактов, записи артефактов и граф целей, провайдер сборки Cargo, навыки из одного файла, каталог Agent Plugins, проекции клиентов, профили выкладки с намерениями, квитанциями и восстановлением, детерминированный zip, применимость к платформам и нативные провайдеры из пакетов |
04Рядом с маршрутом отдельным контрактом приземлилась операция зачистки: детерминированное удаление слоя vibe из законченного проекта, с планом, доказательством здоровья и восстановимой транзакцией на месте.
05 A scraped tree is a project tree for which every contract-selected Vibe path, dependency, managed marker, source annotation, tool script and environment reference is absent or explicitly retained under a neutral identity, and whose required native health panel is accepted after scraping under the declared strict or no-regression baseline policy. A retained non-pass verdict is never described as an unconditional pass.
Решения, которые держатся
06Одна линия из девяти фаз: материализация зависимостей — это install, размещение вне проекта — deploy, а package не меняет ни одного места назначения. Одна плоскость расширений: запланированные вклады отвечают «когда», соседние провайдеры механизмов отвечают «как», а встроенные — обычные провайдеры, которых хозяин может заменить точным пином. Нативный провод — C плюс JSON, схема первична; SDK автора — безопасный Rust, а загрузчик в карантине. У каждой внешней мутации есть план, намерение, независимая проверка и квитанция, а третий наблюдённый дайджест — отказ. Автоматическая привязка навыка — только для проекта; установка для пользователя и клиента — явная выкладка. Каждая подсистема сохраняет полный алгоритмический режим; модель улучшает и никогда не запирает.
07 Decision. The lifecycle hooks and the compiler plugins are ONE machine with two families of extension points, not two machines. One declaration grammar, one context-envelope shape, one handler taxonomy, one trust gate, one ordering rule. A user who has written a lifecycle contribution knows how to write a compiler transform, and vice versa — this is the mandate's «похоже и синергично» made structural.
08 8.1 The ABI is C + JSON, never the Rust ABI
09 Every core VibeVM subsystem retains a complete algorithmic mode. An LLM may improve quality when the operator explicitly enables that feature; credentials, endpoint presence, provider configuration or construction never activate a feature. VibeVM remains useful with no provider, no API access and no agent host.
Границы совместимости и миграции
10Запись слота зависимости и состояние жизненного цикла — строгие версионированные машинные форматы; старые деревья мигрируют один раз при следующей установке и никогда не читаются на месте. Проекция IR компилятора на провод версионируется по носителю. Квитанции выкладки и отпечатки свежести живут под .vibe/, это машинное состояние, которое не коммитят; их потеря стоит одного полного прогона, а не корректности. Рукописные проводные типы считаются храповиком против замороженной базы, так что новый машинный формат не может появиться без схемы.
11 Fingerprints and last-run records live in.vibe/lifecycle.tomlat the workspace root — machine state beside the project settings that already live in.vibe/, inside the shippable-tree denylist (PROP-024 §2.2), never committed, never hashed.vibe cleandoes NOT remove it (it describes work, it is not derived prompt state); a--forceflag on any phase ignores it for one run.
Намеренно оставлено на потом
12Цели выкладки за пределами первых жанров, ярус расширений на WebAssembly, переопределения предпочтений по языку и по ресурсу, облачная синхронизация пользовательских предпочтений, встроенный бэкенд инференса и общая грамматика фаз за пределами clean install для цикла очистки. Каждое названо в своей спецификации с законом совместимости, так что дверь остаётся открытой, а за ней не стоит полусобранная функция.
13 Deploy first targets — CLOSED (owner, 2026-08-26; extended 2026-09-04): selected genres are project/user agent projections for Claude Code, Codex and OpenCode; VibeVM-owned local tools under~/.vibe/bin; receipt-owned operator launchers under the VibeVM-controlled~/.vibe/opt/bin; an explicit custom installer for ordinary applications; registry/marketplace/server/remote providers; and future system-scope package/config/service providers. The first commissioning cut is isolated local projection/vibe-bin/vibe-opt-launcher, never a live publish/server mutation. The commissioned local and native provider statuses are closed at the R8 successor anchors; live remote/system mutation remains future work under ordinary authority boundaries.
14 WASM handlers — deferred, not rejected: a wasm component would buy sandboxing (the PROP-020 §4 accepted-risk posture could tighten) and cross-platform artifacts, at the cost of a runtime dependency and awkward filesystem/process access — exactly the operations phase handlers exist to do. When the sandboxing need fires (third-party plugin ecosystems beyond the allow-list), this anchor is where the design resumes. Until then the trust gate is the boundary, exactly as PROP-020 records it.
Отставленные дорожки, сохранённые как история
15Кампания также использовала дорожки выполнения, которые больше не актуальны: внешнюю дорожку воркеров на подписке владелец отставил в сентябре 2026 года, и её источник пакета остаётся в дереве как история, а зависимость хоста и стартовый вклад удалены. Читатель, который встретит её имя в старых леджерах, должен считать её свидетельством того, как делалась работа, а не поддерживаемым способом пользоваться продуктом.
Где живут улики
16Поэтапный леджер с хешами коммитов — campaigns/packages-2026-09/LIFECYCLE-EXTENSIONS-IMPLEMENTATION-LEDGER.md в репозитории; контракт — PROP-054, контракт зачистки — PROP-056, документы о нативном ABI и архитектуре компилятора лежат рядом с леджером. Леджер — запись, а не план: он называет, что приземлилось и что измерили, и ничто в этом руководстве не пересказывает из него ни одного числа.
17 R8 — package/build/deploy substance accepted in implementation. Artifact DAG/records, Cargo, static skill, Agent Plugin, three client adapters,vibe-bin, profiles/intent/receipt/recovery, platform applicability and package-supplied native deploy/build/package providers are implemented. Deploy restart rehydration remains read-only; Build/Package replacement executes through exact prepared carriage and a real installed two-cdylib build→A2→package E2E with no builtin fallback. Evidence through deployd475963c, then M-00700cabac8,93df9d28,e9388559,2193e6e7,fe0eb9df,0ca2b781,123ac504,68ce9078,55cfbf94. This node is done. All technical/full/conform/generated/specmap/no-transform and mirror work is complete at39fa498a34d30c7744c8598c9f1a0673a6aeee62; the PROP root remainsimpl/worksolely because owner final inspection in the current chat is pending.