VibeVM
Contents
On this page
en
Publisher
org.vibevm.core
Version
1.0.0latest
Audiences
Reading time
6 min
Rendered
Read aloud
never

VISIBILITY-BUILD-PLAN v0.1 — стройка PROP-050 до конца

01_STATUS: СТРОЙКА ЗАВЕРШЕНА — 2026-08-23 · W1–W8 ✅ все · PROP-050 переведён в BUILT (impl/done) · панель зелёная · измерения зафиксированы · остатки в BACKLOG B-102..B-105 · дизайн ратифицирован (PROP-050)

02Авторитет: PROP-050 — дизайн ратифицирован целиком (статус-строка спеки перечисляет все вердикты). Владельческий мандат стройки: «это сложная фича, которую можно делать во много волн. Главное чтобы доделать стройку до конца, и чтобы всё было готово в итоге».

03Критерий «всё готово» (приёмка, §W8): ни одного пункта ниже в состоянии «частично»: семантика шести клеток матрицы живёт в коде с golden-chain тестами · резолвер и линкер работают на E(R) · override (any-node, path-stack) и allow-friends работают сквозь весь стек · PROP-049 смягчена по F7 · vibe why/vibe friends/lock-diff отвечают на «почему пакет здесь/не здесь» · дерево переразмечено, golden snapshot зафиксирован панельной ячейкой, дифф лент отревьюен вручную · измерения в harvest · соседние PROP амендированы · панель зелёная, судейство волн confirmed+sealed, долг 0/0, зеркала синхронны.

04Дисциплина каждой волны (инвариант): honest RC → bash tools/self-check.sh (вердикт только по хвосту) → cargo xtask specmap после spec/code-правок → судейский цикл фактов волны (scan → mirror → batch → merge-verdicts → seal → debt 0/0) → топик-коммиты → cargo xtask mirror. Делегирование по delegation-first: кодоген-исполнение — в codexrunner-лейн (worktree .wt/P2-CODEGEN сброшен на main перед каждым пакетом; пакет несёт ##subagent-quiet-clause, полный перечень файлов разом, закрытый периметр записи, оракул проверки, WORKER-REPORT); спека-правки, вердикты, судейство, коммиты — только босс. Спека/план коммитятся ДО спавна воркера, который их читает.

W1 — Схема манифеста и чистое ядро видимости (vibe-core) — L — ✅ ПОСАЖЕНА 2026-08-23 (342b3aae; боссов tail: wire-derive 25→26, split document/tests, spec-амендменты 981496df)

05Всё, что можно проверить без резолвера и файловой системы.

  • 06[ ] Поля ребра (DepSpec): access («public» дефолт | «private» | «friends-only»), friend (bool, дефолт false), exclude (список координат, per-edge, глубокое поддерево).
  • [ ] Поля узла: friends, unfriend, ignore-concept-warnings, allow-friends (absent/[]/список — три состояния), секция [override] (ключи "грп/имя -> грп/имя" для рёбер и "грп/имя" для узловых свойств: access/friend/exclude/allow-friends).
  • [ ] Семантика F10: friends-only имплицирует friend = true на своём ребре; явный false побеждает (клетка no-vouch).
  • [ ] Чистый модуль visibility: grants(N), замыкание C(R) (least fixpoint), достижимость E(R) (три правила проходимости + exclude-обрезка), path-stack маски override (ближний к корню побеждает; экзистенциальность по цепям; дедуп одинаковых масочных состояний при обходе DAG), гейт allow-friends на подателе гранта (отказ = warning-диагностика в результате).
  • [ ] Тесты-голден: цепочка A→B→C→D · все 6 клеток матрицы · unfriend-разрыв с обходным путём · ромб с exclude · public-присутствие-без-дружбы · dev-мир (одна и та же нода как корень и как зависимость — эквипотентность ролей) · override-конфликт корень-против-посредника и посредник-против-посредника · три состояния allow-friends · вскрытие печати override'ом.
  • [ ] Роль-слепота: вычисления через Manifest::consumer_node() (PROP-024).
  • [ ] wire-derive-baseline.json, доктесты, conform-линзы.

07Делегирование: схема+модуль+тесты — делегируемый пакет по готовой спеке; босс — ревью инвариантов fixpoint'а.

W2 — Резолвер на E(R) и lock — L — ✅ ПОСАЖЕНА 2026-08-23 (проекция+итерация строгости cap4, FilteringDepProvider вокруг нетронутых ячеек, lock v6 c provenance; изолированный per-edge proof маски; 8/8 голденов, resolver-oracle зелёный)

  • 08[ ] Интерливинг resolve↔prune (##RESOLVE-PRUNE-INTERLEAVING): обход только по проходимым рёбрам; манифесты как метаданные (чтение ≠ материализация); C(R) монотонно дорастает по мере прибытия манифестов; приватные рёбра не-корня не дают версионных констрейнтов.
  • [ ] Lock: состав = E(R); provenance каждого члена (какое правило/цепь привели: root-edge / public / friends / via-override-of-N); поля lane-cost (заполняются в W3/W7).
  • [ ] Фикстуры: package-rooted корень; ромбы; версия цели за поручителем (констрейнт на ребре поручителя); отсутствие невидимого в lock.
  • Риск-митигация: W1-модуль обязан быть исчерпывающе оттестирован ДО проводки; резолвер только консультирует предикаты, никогда не оптимизирует по ним (шестилетний урок Cargo RFC 1977).

W3 — Линкер и материализация на E(R) — M — ✅ ПОСАЖЕНА 2026-08-23 (верификационная: линкер/vibedeps/installed: питаются суженным ResolvedDep-списком по построению — 5/5 сквозных голденов cli_visibility_lanes, вкл. FORCING-NEVER-WIDENS живьём; спек-амендменты PROP-009/034/035/038 посажены боссом)

  • 09[ ] dependency_boots/BFS и resolve_zone/static_transitive_closure ходят по E(R); форс static-transitive не пробивает видимость (##FORCING-NEVER-WIDENS); хойстинг и счёт потянувших — внутри E(R).
  • [ ] vibedeps/ материализует ровно E(R); installed:-предикаты отвечают по E(R).
  • [ ] Лейн-байты голден-тесты; амендменты спек PROP-034 / PROP-035 §12 / PROP-038 (вход линкера сужен) + PROP-009 §2.4 (ссылка на слой видимости).

W4 — Смягчение PROP-049 по F7 (vibe-check) — S — W4a ✅ ПОСАЖЕНА 2026-08-23 (1e45cf66: warning-жанр, омонимия, дедуп владельцев); W4b ✅ ПОСАЖЕНА (mute свой+корневой, exemption сужен до seeping-рёбер) — W4 ЗАКРЫТА

  • 10[ ] snippet_presupposition: error → warning; омонимия легальна (своё объявление лексемы гасит); дедуп владельцев (легитимная связь с любым одним гасит; неприкаянное употребление — одно предупреждение со списком владельцев); ignore-concept-warnings глушит на всю глубину поддерева от манифеста.
  • [ ] Сужение deps-exemption: безусловные упоминания оправдывает только просачивающееся ребро (public/friends-only); private — только через installed:-фрагменты.
  • [ ] Амендмент PROP-049 (##DEPS-EXEMPTION-NARROWS, warning-жанр); панельная ячейка обновлена.

W5 — Наблюдаемость — M — ✅ ПОСАЖЕНА ЦЕЛИКОМ 2026-08-23 (W5a c7d4017a: why/friends/hygiene; W5b 4268008d: closure-diff на install/update + [provenance]-суффиксы в tree; живые смоки на хосте)

  • 11[ ] vibe why <грп/имя>: цепочки допуска (правило хопа, метки, гранты, «via override of N»); для отсутствующего — ближайшие заблокированные цепи и что их блокирует (private-ребро / нет дружбы / unfriend / exclude / allow-friends-отказ).
  • [ ] vibe friends <грп/имя>: sealed-перечислимость — кто может дружить, кто дружит фактически, по каким цепям.
  • [ ] Аннотации в vibe tree (+schema пакета package-tree); lock-diff в выводе install/update: ±пакеты, ±байты/токены по лентам (##VERIFY-LOCK-DIFF).
  • [ ] Гигиенические линты §7: мёртвые записи friends/unfriend/exclude/override (warning, JPMS-прецедент), недостижимый шаринг, неиспользуемые гранты с ценой.

W6 — Инструменты силы сквозь стек — M — ✅ ПОСАЖЕНА 2026-08-23 (6/6 e2e: any-node override, корень бьёт посредника, тихий взлом, печати; боссов вердикт: «баги» воркера были неточностью пакета — ##SEAL-GATES-FRIENDSHIP-NOT-DELIVERY)

  • 12[ ] override E2E: any-node path-stack в резолве и линковке (семантика §2.9), узловые записи (allow-friends-вскрытие), provenance в lock, аннотации в why; тихий — никаких install-notices.
  • [ ] allow-friends E2E: гейт в замыкании, warning-диагностика отклонённых грантов, vibe friends показывает печати.
  • [ ] Semver-примечание: mid-graph [override] — контрактная поверхность пакета (##OVERRIDE-IS-CONTRACT-MIDGRAPH) — фиксируется в публикационном чек-листе C6-семейства (само C6 заморожено — только текст чек-листа).

W7 — Переразметка дерева и посадка — M — ✅ ПОСАЖЕНА 2026-08-23 (private-метки fractality-группы; хост-ленты byte-identical, lock-контракты сжались честно; расчётный эффект для стороннего потребителя delegation-first: ~32 → 2 пакета; замеры: vibevm/vibespecs/research/dependency-visibility-2026-08/04-measurements.xml; wal остаётся прямым ребром хоста — перевод на friends-only-через-redbook вынесен владельцу)

  • 13[ ] Инвентарь ##migration-inventory: private-метки на dev/дисциплинарные рёбра; friends-only-догфуд (кандидат — мастерская git-practices); хост-рёбра и коллекции — корректны под дефолтом, не трогаются; wal остаётся прямым ребром хоста (перевод на friends-only-через-redbook — отдельное владельческое решение, НЕ в этой волне).
  • [ ] Golden snapshot нового мира (E(R) и байты лент per корень) + панельная ячейка; одноразовый дифф лент до/после — ручное ревью на посадке (ожидаемое: изъятия по private-меткам, ноль случайных потерь).
  • [ ] Измерения в campaigns/.../harvest/ (или vibevm/vibespecs/research): счётчики E(R), байты/токены лент, время install до/после (##VERIFY-MEASURE — токеномика цифрами).
  • Известная опасность: B-101 (version-keyed кэш игнорирует дрейф источника) — при правках пакетов чистить ~/.vibe/cache вручную, как в PROP-049-волне.

W8 — Закрытие стройки — S — ✅ ВЫПОЛНЕНА 2026-08-23

14Приёмка по чек-листу шапки, пункт за пунктом: матрица 6 клеток в коде с голденами ✅ (W1: 15 юнитов; W3/W6: 11 сквозных) · резолвер и линкер на E(R) ✅ (W2/W3; ленты хоста byte-identical) · override any-node + allow-friends сквозь стек ✅ (W6 6/6, тихость доказана захватом потоков) · PROP-049 смягчена ✅ (W4: warnings/омонимия/дедуп/mute/seeping-exemption) · why/friends/closure-diff отвечают ✅ (W5, живые смоки) · дерево переразмечено ✅ (W7: fractality-группа private; ручной дифф отревьюен — изъятий из хост-лент ноль; снапшот пинится живыми тестами) · измерения ✅ (research/04-measurements.md; расчётный эффект стороннего потребителя delegation-first ≈32→2 пакета) · соседние PROP амендированы ✅ (PROP-009/034/035/038 + 049 + 024-хвост закрыт: private = dev-мир per-edge) · панель зелёная ✅ (финальный прогон all green) · судейство: кампанийная юрисдикция packages-2026-09 факты PROP-050 не покрывает — judging-debt 0/0 подтверждён скриптом; статусы фактов ведены вручную по посадкам (BUILT) · зеркала синхронны ✅. Находки, осознанно не взятые: B-102 (стоимость per-edge proof), B-103 (per-grant lane-cost + budget-cap), B-104 (омоним ключа override), B-105 (concept:-гейт). WAL/CONTINUE-чекпоинт намеренно оставлен владельческому wind-down (END SESSION).

  • 15[ ] Приёмочный чек-лист из шапки — пункт за пунктом, честно.
  • [ ] Полная панель зелёная; specmap; судейство всех фактов стройки confirmed + sealed, долг 0/0; согласованность амендментов PROP-009/024/034/035/038/046/049 перепроверена; статусы PROP-050 impl/done по факту.
  • [ ] BACKLOG-дренаж находок стройки; WAL/CONTINUE-чекпоинт; cargo xtask mirror.

Зависимости и параллелизм

16W1 → W2 → W3 → W5 → W6 → W7 → W8; W4 — после W1, параллельно W2/W3/W5. Каждая волна самодостаточно зелёная; благодаря public-дефолту промежуточные состояния дерева легальны (полуразмеченность = «ещё течёт», не «сломано»), но W7 всё равно садится одним заходом со снапшотом.

Риски (сводно)

  1. 17W2-интерливинг — сложнейшее место; митигация: чистый W1-модуль с исчерпывающими юнитами, резолвер только консультирует предикаты.
  2. Path-stack взрыв состояний (override) — митигация: дедуп масок, редкость таблиц; худший случай упирается в число override-узлов на цепи.
  3. Переразметка — единственная волна с владельческим весом решений (что именно private); митигация: инвентарь в спеке + ручное ревью диффа.
  4. B-101 — кэш-дрейф при правках пакетов; известный обход.
  5. Опечатки семантики ловятся только golden-chain-набором — он пишется ПЕРВЫМ в W1 и не сокращается.

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@1.0.0/terraforms/VISIBILITY-BUILD-PLAN-v0.1

.md.xmlllms.txt