<?xml version="1.0" encoding="UTF-8"?>
<spec xmlns="https://vibevm.org/spec/1">
  <title>Исследование: эволюция форматов vibevm</title>
  <p p="1">_2026-08-09. Что здесь лежит, чем получено и в каком порядке читать._</p>
  <section title="Начинать отсюда">
    <p p="2">**`12-HANDOFF.xml`** — состояние работы, пять вопросов владельца, и в разделе 2
**полный список обязательного чтения** в правильном порядке. Владелец потребовал
прочитать всё перечисленное **до** разговора с ним.</p>
    <p p="3">**`13-NEXT-SESSION-PROMPT.xml`** — промт для новой сессии (копия того, что лежит
в репозитории как `NEXT-SESSION-PROMPT.md`).</p>
  </section>
  <section title="Если читать только одно">
    <p p="4">**`11-fable-review-and-verdict.xml`** — вердикт финального ревьюера.
Если и его много — там первый абзац написан как итог на случай, что дальше
читать не будут.</p>
  </section>
  <section title="Если читать два">
    <p p="5">Плюс **`10-MEGA-REPORT.xml`** — свод всего. Его раздел 5 — разбор семи
противоречий, включая три ошибки в собственном своде босса, найденные
воркерами. Это интеллектуальное ядро всей серии.</p>
  </section>
  <section title="Вопрос, ради которого всё затевалось">
    <p p="6">vibevm публикует **каталог пакетов**: JSON-файлы в git-репозитории, которые
читают чужие инструменты. Внешних потребителей **ноль** — значит ломающее
изменение сейчас бесплатно и потом никогда не будет.</p>
    <p p="7">Начали с узкого: где провести границу генерации типов из схем, раз одна форма
в языке схем невыразима. Пришли к широкому: **какова политика эволюции
долговечных форматов vibevm** — их три (каталог, `vibe.toml`, `vibe.lock`),
решены они по-разному, и никто этого не решал.</p>
  </section>
  <section title="Файлы">
    <table p="8">
      <tr>
        <td>файл</td>
        <td>что это</td>
        <td>чем получено</td>
      </tr>
      <tr>
        <td>`00-INDEX.xml`</td>
        <td>этот файл</td>
        <td></td>
      </tr>
      <tr>
        <td>`01-measure-our-wire-format-claudez.xml`</td>
        <td>23 типа, 86 полей, все объединения, все словари, кругооборот — исчерпывающий замер нашего дерева</td>
        <td>GLM по дереву</td>
      </tr>
      <tr>
        <td>`02-research-package-indexes-web.xml`</td>
        <td>crates.io, OCI, Debian, прокси Go, npm, Maven, RPM, PyPI, NuGet, Homebrew. 13 сходимостей</td>
        <td>веб, дословные цитаты с датами</td>
      </tr>
      <tr>
        <td>`02-primary-sources-cache/`</td>
        <td>сырые первоисточники, скачанные при исследовании</td>
        <td>веб</td>
      </tr>
      <tr>
        <td>`03-research-serialization-mechanics-web.xml`</td>
        <td>протобуф, Avro, Thrift, JTD, Cap'n Proto, Kafka. Развороты решений и их причины</td>
        <td>веб, дословные цитаты с датами</td>
      </tr>
      <tr>
        <td>`04-research-client-survival-web.xml`</td>
        <td>Meta, Twitter, Google, LinkedIn, Badoo, GraphQL, Discord, разбор аварии Cloudflare. Критерий переносимости</td>
        <td>веб, дословные цитаты с датами</td>
      </tr>
      <tr>
        <td>`05-boss-findings-digest.xml`</td>
        <td>свод босса — вход для GLM. **Содержит три ошибки**, найденные воркерами; исправления в файле 10 §5</td>
        <td>босс</td>
      </tr>
      <tr>
        <td>`06-glm-neighbours-and-principles.xml`</td>
        <td>принцип за приёмами соседей; отличия нашего случая; шесть возражений</td>
        <td>GLM, без сети</td>
      </tr>
      <tr>
        <td>`07-glm-format-mechanics.xml`</td>
        <td>**пять конкретных форм тега** для нашего объединения с ценой каждой; скепсис к модели Avro; граница терпимости</td>
        <td>GLM, без сети</td>
      </tr>
      <tr>
        <td>`08-glm-clients-and-vocabularies.xml`</td>
        <td>формы запасного значения в словарях; **четыре места в нашем каталоге, где старый читатель разберёт успешно и поймёт неверно**</td>
        <td>GLM, без сети</td>
      </tr>
      <tr>
        <td>`09-glm-manifest-and-unified-policy.xml`</td>
        <td>манифест; сильнейший довод против единой политики; чекер как набор машинных правил</td>
        <td>GLM, без сети</td>
      </tr>
      <tr>
        <td>`10-MEGA-REPORT.xml`</td>
        <td>свод всего + разрешение семи противоречий + предложение + вопросы владельцу</td>
        <td>босс</td>
      </tr>
      <tr>
        <td>`11-fable-review-and-verdict.xml`</td>
        <td>финальное ревью и вердикт</td>
        <td>Fable</td>
      </tr>
      <tr>
        <td>`worker-reports/`</td>
        <td>отчёты воркеров, каждый с обязательным разделом «с чем я не согласен»</td>
        <td>GLM</td>
      </tr>
    </table>
    <p p="9">Суффикс в имени говорит, чем получено: `-web` — с доступом в интернет,
`-claudez` / `-glm` — дешёвым воркером по дереву, без сети, `-boss` — мной.</p>
  </section>
  <section title="Как это делалось, чтобы результату можно было верить">
    <p p="10">**Три независимые веб-полосы** собирали факты с дословными цитатами и датами
обращения; каждая обязана была помечать «не найдено» с описанием того, что
искала, вместо правдоподобного заполнения.</p>
    <p p="11">**Четыре GLM-воркера** получили сведённые находки как **опциональный** вход с
прямой инструкцией: *«согласие без добавления — самый бесполезный из возможных
ответов»*, и обязательным разделом «с чем я не согласен». Интернета у них нет,
и это сказано прямо: своей памятью пользоваться можно, но каждое утверждение
о внешнем мире помечено `[ИЗ СВОДА]`, `[ИЗ ДЕРЕВА]` с файлом и строкой, либо
`[ПО ПАМЯТИ, НЕ ПРОВЕРЕНО]`.</p>
    <p p="12">**Это окупилось.** Трое из четырёх независимо нашли одну и ту же фактическую
ошибку в своде босса; двое независимо оспорили самую красивую идею свода и
оказались правы; один переопределил стратегию целиком. Все правки внесены в
файл 10 §5 с указанием, кто нашёл.</p>
    <p p="13">**Финальное ревью** велось отдельной моделью по всему корпусу, с требованием
проверить числа по дереву самостоятельно и найти то, что пропустили все
восемь предыдущих участников.</p>
  </section>
</spec>
