# Сопровождение документации — регламент, черновик кампании {#root}

@status:spec/done

[p01] @fact:companion-line **Explains:** [PROP-058](../common/PROP-058-documentation-maintenance.xml). @status:spec/done

## 0. Зачем {#why}

[p02] @fact:why-1 Документация дрейфует с первого дня после публикации. Продукт меняет
команды и поля; читатели приносят вопросы, на которые страниц нет; мелкие
правки, накопившись, ломают лестницу понятий и тон. Ни один из трёх
процессов не останавливается сам. Значит, обновление — не «когда руки
дойдут», а регламент с триггерами, дежурными, инструментами и гейтами. @status:spec/done

[p03] @fact:why-2 Одно ограничение задано владельцем: продукт выходит по десять раз в день и
принимает по сто pull request'ов, документация между проверками неизбежно
дрейфует, и этот риск принят. Второе ограничение оттуда же: версия —
контракт на поведение, а не набор файлов; внутри версии продукт меняется
невидимо, десять релизов в день могут нести один номер, история
переписывается, и отличить одну amend-версию от другой не может никто.
Поэтому регламент не опирается ни на что, кроме номера версии, который
владелец меняет осознанно: единственная «разница», которую считает машина, —
разница между объявленными версиями по снимкам поверхности (§2.5), и она —
внутренняя кухня разработчиков документации; читатель видит номер и
контракт (`VISION.md`, D-27). Внутри версии всё сравнивается только с
текущим состоянием. Регламент не ставит технических замков между
релизом продукта и документацией. Он делает три вещи: измеряет дрейф,
показывает его читателю и закрепляет обещание команды время от времени
проводить полную сверку (§2.4). @status:spec/done

[p04] @fact:why-3 Этот документ описывает регламент **до** того, как документация написана,
чтобы кампания реализации сразу накапливала материал для него: каждая
удача, неудача и находка кампании записывается в журнал с пометкой, какое
правило регламента она подтверждает, меняет или создаёт. В фазе 6 регламент
переписывается по журналу и дважды репетируется на свежей документации,
прежде чем стать нормой. @status:spec/done

## 1. Три источника дрейфа и что их ловит {#drift}

[p05]
| Дрейф | Как выглядит | Что ловит уже по вижену | Что добавляет регламент |
| --- | --- | --- | --- |
| @fact:drift-1 **Продукт меняется** @status:spec/done | @fact:drift-2 новая команда, флаг, поле манифеста, поведение; текст спеки изменился @status:spec/done | @fact:drift-3 `rule` цитирует текущий текст спеки (D-14); `derived` регенерируется из текущего бинарника; примеры исполняются как golden-тесты; гейт покрытия видит команды, поля и обязательства без страницы @status:spec/done | @fact:drift-4 очередь `vibe doc todo` (§3) как измеритель текущих пробелов, не замок; полная сверка по обещанию команды (§2.4); долг документации в `BACKLOG.md`. Устаревшую **прозу** машина не видит — её читает человек @status:spec/done |
| @fact:drift-5 **Мир меняется** @status:spec/done | @fact:drift-6 вопросы без страницы; новый сценарий; агенты не находят ответ по якорю @status:spec/done | @fact:drift-7 манифест страниц и гейт покрытия обязательств (D-14) @status:spec/done | @fact:drift-8 сигналы использования (§5), очередь `vibe doc todo`, «страница недели» @status:spec/done |
| @fact:drift-9 **Текст стареет** @status:spec/done | @fact:drift-10 лестница сломана вставками; термин появился без введения; тон поплыл; страницу не читали год @status:spec/done | @fact:drift-11 линтер стиля (D-25) @status:spec/done | @fact:drift-12 правило пяти правок (§6), возраст страницы в `reviews.toml`, чтение вслух, месячное ревью @status:spec/done |

## 2. Четыре петли {#loops}

[p06]
| Петля | Триггер | Кто | Время | Вход | Выход | Гейт |
| --- | --- | --- | --- | --- | --- | --- |
| @fact:loops-1 **Коммита** (§2.1) @status:spec/done | @fact:loops-2 любой коммит в продукт или в документацию @status:spec/done | @fact:loops-3 автор коммита; для прозы — центральная сессия @status:spec/done | @fact:loops-4 минуты @status:spec/done | @fact:loops-5 дифф @status:spec/done | @fact:loops-6 документация в том же коммите или строка долга — привычка, не замок @status:spec/done | @fact:loops-7 панель: внутренние проверки документации зелёные; дрейф и долг — числом, не красным @status:spec/done |
| @fact:loops-8 **Недельная** (§2.2) @status:spec/done | @fact:loops-9 календарь, раз в неделю @status:spec/done | @fact:loops-10 дежурная центральная сессия; механика — дешёвая модель; владелец читает одну страницу @status:spec/done | @fact:loops-11 30–60 минут @status:spec/done | @fact:loops-12 `vibe doc todo`, сигналы недели @status:spec/done | @fact:loops-13 до пяти мелких правок, долг рассортирован, страница недели прочитана, запись в журнал @status:spec/done | @fact:loops-14 отчёт недели в журнале @status:spec/done |
| @fact:loops-15 **Месячная** (§2.3) @status:spec/done | @fact:loops-16 календарь, раз в месяц @status:spec/done | @fact:loops-17 центральная сессия с владельцем; код — Opus 5 @status:spec/done | @fact:loops-18 полдня @status:spec/done | @fact:loops-19 метрики §7, журнал месяца, аналитика @status:spec/done | @fact:loops-20 до трёх переписанных страниц, изменения регламента, релиз пакета документации @status:spec/done | @fact:loops-21 отчёт месяца; `reviews.toml` обновлён @status:spec/done |
| @fact:loops-22 **Полная сверка** (§2.4) @status:spec/done | @fact:loops-23 обещание команды: раз в квартал и перед крупной вехой; не на каждый релиз @status:spec/done | @fact:loops-24 центральная сессия с владельцем; механика — дешёвая модель; код — Opus 5 @status:spec/done | @fact:loops-25 день–два @status:spec/done | @fact:loops-26 `vibe doc todo` и `vibe doc check` против текущего продукта; весь корпус страниц @status:spec/done | @fact:loops-27 пробелы покрытия к нулю, `derived` перегенерированы, примеры зелёные, все страницы и адаптации перечитаны против текущего продукта, даты чтения обновлены, снимок поверхности текущей версии записан, релиз пакета документации @status:spec/done | @fact:loops-28 отчёт сверки; ноль пробелов и красных примеров на дату сверки; все страницы с датой чтения не старше сверки @status:spec/done |
| @fact:loops-29 **Смена версии** (§2.5) @status:spec/done | @fact:loops-30 осознанное решение владельца поднять номер версии продукта @status:spec/done | @fact:loops-31 разработчики документации: центральная сессия; механика — дешёвая модель @status:spec/done | @fact:loops-32 часы @status:spec/done | @fact:loops-33 `vibe doc diff <старая> <новая>` по снимкам поверхности @status:spec/done | @fact:loops-34 обновлены только перечисленные страницы, снимок новой версии записан, changelog для читателей написан руками, пакет документации выходит с новым `[[documents]] version` @status:spec/done | @fact:loops-35 все страницы из списка diff обновлены или получили долг с атомом; читателю не видно ничего, кроме номера @status:spec/done |

### 2.1 Петля коммита: мелочи {#loop-commit}

[p07] @fact:loop-commit-1 Правило одно, и это привычка команды, а не технический гейт: **изменение
продукта, которое видно пользователю, несёт документацию в том же коммите**
— как сегодня DEV-GUIDE и RUNTIME-GUIDE (план, R-11). «Видно пользователю»
— это новая или изменённая команда, флаг, поле манифеста или lock-файла,
формат отчёта, сообщение об ошибке с адресом, факт спеки с
`actionstage="doc"`, новый PROP. Привычку держит чекбокс в шаблоне pull
request'а: «документация: обновлена / долг записан / не нужна». @status:spec/done

[p08] @fact:loop-commit-2 Если документация в том же коммите невозможна (большая страница, ждёт
решения), коммит несёт **строку долга**: запись в `BACKLOG.md` с префиксом
`docs:` и severity, с адресом изменения. Панель считает строки долга и
печатает дрейф числом; ни то ни другое не роняет сборку — при десяти релизах
в день замок между продуктом и документацией недопустим, дрейф между
сверками принят как риск (§2.4). Месячная петля дренирует долг, полная
сверка добирает всё, что осталось. Долг без адреса не принимается. @status:spec/done

[p09] @fact:loop-commit-3 Для правок только документации — путь короткий: правка → `vibe doc check
--style --examples --citations` на затронутых страницах → коммит
`docs(vibevm-docs): …`. Мелкая правка подчиняется дисциплине §6. @status:spec/done

[p10] @fact:loop-commit-4 Первое действие любой правки — `git status` и проверка живого конфликта
писателей (журнал, J-005): две центральные сессии в одном дереве — стоп. @status:spec/done

### 2.2 Недельная петля: малое ревью {#loop-weekly}

[p11] @fact:loop-weekly-1 Порядок, буквально: @status:spec/done

1. [p12] @fact:loop-weekly-2 Дешёвая модель запускает `vibe doc todo --format md` и `vibe doc check`
   по всему пакету и кладёт отчёт в журнал недели. Центральная сессия читает
   отчёт, не сырые выводы. @status:spec/done
2. @fact:loop-weekly-3 Сортировка очереди: что чинится за пять минут — чинится сейчас (не больше
   пяти правок за петлю, иначе это не мелочь); что больше — становится
   строкой долга с severity; что спорно — вопрос владельцу одной строкой. @status:spec/done
3. @fact:loop-weekly-4 Сигналы недели (§5): вопросы людей и агентов, отставание адаптаций,
   страницы с аномальным поведением читателей. Каждый сигнал — либо правка,
   либо долг, либо «наблюдение без действия» с причиной. @status:spec/done
4. @fact:loop-weekly-5 **Страница недели.** Одна страница по кругу (порядок — `reviews.toml`);
   владелец или центральная сессия читает её вслух как читатель из
   `STYLE.md` §1. Спотыкание — правка или долг. Дата чтения — в
   `reviews.toml`. @status:spec/done
5. @fact:loop-weekly-6 Запись в журнал: что сделано, что отложено, что удивило. Мелкие правки
   публикуются патч-версией пакета документации раз в неделю (вопрос
   владельцу, §11). @status:spec/done

### 2.3 Месячная петля: большое ревью {#loop-monthly}

1. [p13] @fact:loop-monthly-1 **Метрики** (§7) за месяц — таблица в отчёте; тренд важнее значения. @status:spec/done
2. @fact:loop-monthly-2 **Аудит корпуса**: каждая верхнеуровневая команда, каждое поле манифеста,
   каждый kind имеет страницу (сверка с `derived`); глоссарий — одно слово,
   одно значение (поиск синонимов по корпусу); лестница между страницами
   (термин впервые введён там, где его ищут); дубли и мёртвые страницы;
   уровни `llms.txt` укладываются в бюджеты токенов; выборка из десяти
   промптов прогоняется агентом (`vibe doc check --prompts --sample 10`,
   D-30) — красный ассерт → правка страницы или долг. @status:spec/done
3. @fact:loop-monthly-3 **Аналитика**: страницы с высоким выходом и коротким чтением —
   кандидаты на переписывание; запросы поиска без результата (когда поиск
   появится); принятые IndexNow, ошибки Search Console. @status:spec/done
4. @fact:loop-monthly-4 **Адаптации**: суммарное отставание; страницы, где отставание больше трёх
   ревизий, — в очередь адаптации. @status:spec/done
5. @fact:loop-monthly-5 **Долг**: `BACKLOG.md` строки `docs:` — каждая либо закрыта, либо получила
   атом, либо переоценена с причиной. @status:spec/done
6. @fact:loop-monthly-6 **Стиль**: тики, проскочившие за месяц (найдены при чтении), добавляются
   в списки линтера; ложные срабатывания линтера — правка правила. @status:spec/done
7. @fact:loop-monthly-7 **Журнал → регламент**: каждая запись месяца с пустым полем «→ регламент»
   получает решение; изменения регламента — правки этого документа (потом
   PROP) с датой и ссылкой на записи. @status:spec/done
8. @fact:loop-monthly-8 **Чтение вслух трёх страниц** владельцем: одна новая, одна самая
   посещаемая, одна самая старая по `reviews.toml`. @status:spec/done
9. @fact:loop-monthly-9 **Релиз** пакета документации минорной версией с changelog, собранным из
   журнала месяца (человеческий текст пишет центральная сессия). @status:spec/done

### 2.4 Полная сверка: обещание команды, не замок {#loop-reconcile}

[p14] @fact:loop-reconcile-1 Продукт выходит по десять раз в день и принимает по сто pull request'ов;
документация между сверками дрейфует, и этот риск принят. Ни один
технический гейт не связывает релиз продукта с документацией, и ничто не
пытается измерить «сколько изменилось с прошлого раза» — такой меры нет по
замыслу проекта (D-27). Вместо замка — две вещи: **текущие пробелы**
измеряются (`vibe doc todo` печатает число команд, полей и обязательств без
страницы, красных примеров и неразрешимых цитат; никогда не роняет сборку) и
команда **обещает себе полную сверку**: раз в квартал и перед крупной вехой
— мажорной версией, публичным анонсом, — не на каждый релиз. @status:spec/done

[p15] @fact:loop-reconcile-2 Порядок сверки, день–два: @status:spec/done

1. [p16] @fact:loop-reconcile-3 Дешёвая модель собирает документацию против **текущего релизного**
   бинарника, не отладочного (J-001): `vibe doc todo`, `vibe doc check` со
   всеми флагами, все примеры и **все промпты через агента**
   (`--prompts`, D-30); отчёт — в журнал. @status:spec/done
2. @fact:loop-reconcile-4 Центральная сессия закрывает пробелы: страницы для новых команд, полей и
   обязательств пишутся или получают долг с атомом; `derived`
   перегенерируются; примеры с изменившимся выводом обновляются как
   golden-тесты; неразрешимые цитаты чинятся. @status:spec/done
3. @fact:loop-reconcile-5 **Каждая страница перечитывается против текущего продукта** — это и
   есть сверка, потому что устаревшую прозу машина не видит: рядом с
   текстом открыты `--help` и спека, коридоры переписываются там, где
   разошлись. Порядок — по `reviews.toml`, от самых давно не читанных.
   Страницы, до которых руки не дошли, остаются с прежней датой чтения —
   честно. @status:spec/done
4. @fact:loop-reconcile-6 Адаптации перечитываются против источника; расхождение структуры
   (`--translations`) — ноль. @status:spec/done
5. @fact:loop-reconcile-7 Пакет документации релизится версией, совместимой с текущим релизом
   продукта (`[[documents]] version`); сайт показывает её как `latest`; после
   публикации — `curl` корневых ссылок домена на `/doc/sitemap.xml` и
   `/doc/llms.txt` (J-004), IndexNow по изменённым адресам. @status:spec/done
6. @fact:loop-reconcile-8 Отчёт сверки в журнал: пробелы до и после, число перечитанных и
   переписанных страниц, время. Ноль пробелов и все даты чтения не старше
   сверки — единственный гейт, и это гейт сверки, не релиза продукта. @status:spec/done

### 2.5 Смена версии: псевдоистория для разработчиков документации {#loop-version}

[p17] @fact:loop-version-1 Версия — контракт на поведение. Владелец поднимает номер осознанно, когда
контракт изменился, и это единственный момент, когда машина считает
«разницу между версиями» (D-27). Смысл механизма — не искать, что
изменилось в файлах, а **алгоритмически назвать страницы, которые надо
обновить**, чтобы LLM правила их, а не перечитывала всю документацию. @status:spec/done

[p18] @fact:loop-version-2 Порядок, часы: @status:spec/done

1. [p19] @fact:loop-version-3 Владелец меняет номер версии продукта. Никакого технического гейта на
   этом шаге нет и не будет. @status:spec/done
2. @fact:loop-version-4 Дешёвая модель записывает снимок поверхности новой версии против
   текущего релизного бинарника: `vibe doc surface --record <новая>` →
   `maintenance/surface/<новая>.json`. Снимок старой версии уже лежит рядом —
   его записала последняя полная сверка или прошлая смена версии. @status:spec/done
3. @fact:loop-version-5 `vibe doc diff <старая> <новая>` печатает список: что изменилось в
   контракте (команда, флаг, поле, обязательство, схема) и какие страницы
   это цитируют, выводят или обязаны покрывать; у каждой страницы —
   причина. Пустой список — тоже ответ. @status:spec/done
4. @fact:loop-version-6 Центральная сессия обновляет **только перечисленные страницы** (и
   пишет новые для того, что появилось без страницы); остальное не трогается.
   То, что не успевает, — долг `docs:` с атомом. @status:spec/done
5. @fact:loop-version-7 Человеческий changelog между версиями для читателей пишется по выводу
   diff — руками, по `STYLE.md`; сам вывод diff наружу не публикуется. @status:spec/done
6. @fact:loop-version-8 Пакет документации выходит с новым `[[documents]] version`; сайт
   показывает его как `latest` для новой версии. Читатель видит номер и
   контракт, ничего из кухни. @status:spec/done
7. @fact:loop-version-9 Запись в журнал: сколько страниц назвал diff, сколько обновлено, время. @status:spec/done

[p20] @fact:loop-version-10 Внутри версии тот же инструмент можно запустить как `vibe doc diff <версия>
now` — подсказка полной сверке, какие страницы перечитать первыми. Это
кухня: никаких следов на страницах, никаких меток для читателя (вопрос
владельцу, `VISION.md` §10 п. 14). @status:spec/done

## 3. Инструменты {#tools}

- [p21] @fact:tools-1 **`vibe doc todo`** — очередь сопровождения по **текущему** состоянию, без
  сравнений «с тех пор»: команды, поля манифеста и обязательства без
  страницы (гейт покрытия), красные примеры, неразрешимые цитаты,
  расхождения структуры адаптаций, возраст страниц по `reviews.toml`
  (старше 90 дней), строки долга из `BACKLOG.md`, статистика линтера;
  `--format md` для отчёта недели, `--format json` для метрик. Печатает
  числа, никогда не роняет сборку. @status:spec/done
- @fact:tools-2 **`vibe doc check`** — существующие проверки (D-14, D-25); флаг
  `--prompts` прогоняет промпты страниц сценариев через агента-исполнителя
  и проверяет ассерты (D-30) — дорого, поэтому не в панели: руками, в
  месячной петле выборкой, на сверке целиком. @status:spec/done
- @fact:tools-3 **`vibe doc surface --record <версия>`** — снимок поверхности продукта
  на объявленную версию: структурный JSON (команды и флаги из `--help`,
  поля манифеста и lock-файла, схемы, тексты фактов с `actionstage="doc"`,
  реестр форматов), не хэш; ключ — только номер версии, который назвал
  владелец. Лежит в `maintenance/surface/<версия>.json` пакета документации;
  сайт этот каталог не рендерит. @status:spec/done
- @fact:tools-4 **`vibe doc diff <старая> <новая>`** — разница двух снимков, переведённая
  в страницы: через граф цитат `rule`, источники `derived` и карту покрытия
  — «что изменилось → какие страницы обновить → почему». Только для
  разработчиков документации (§2.5). @status:spec/done
- @fact:tools-5 **`reviews.toml`** в пакете документации: страница → дата последнего
  чтения вслух и кто читал; порядок «страницы недели». Данные, не генерат и
  не история: дата говорит «когда читали», а не «против чего». @status:spec/done
- @fact:tools-6 **`JOURNAL.md`** — журнал (§4). В кампании — в папке вижена, с фазы 1 в
  зоне кампании; после кампании — в пакете документации. @status:spec/done
- @fact:tools-7 **`CHANGELOG.md`** пакета документации — что изменилось для читателя,
  по версиям; пишется из журнала, человеческим текстом. @status:spec/done
- @fact:tools-8 **`BACKLOG.md`** хоста — долг документации строками `docs:` с severity. @status:spec/done

## 4. Журнал {#journal}

[p22] @fact:journal-1 Одна таблица, только дописывается. Поля: дата; тип — `успех`, `неудача`,
`находка`, `наблюдение`; стабильный идентификатор `J-NNN`; что случилось;
свидетельство (команда, коммит, якорь, файл); **→ регламент** — какое
правило это подтверждает, меняет или создаёт, либо «наблюдение без
действия: причина». @status:spec/done

[p23] @fact:journal-2 Три закона журнала: @status:spec/done

1. [p24] @fact:journal-3 **Запись делается в том же атоме**, где случилось событие: красная проба,
   ложное срабатывание линтера, опровергнутое предсказание, обходной путь,
   удачный приём. Не «в конце недели по памяти». @status:spec/done
2. @fact:journal-4 **Поле «→ регламент» не остаётся пустым** дольше месячной петли. @status:spec/done
3. @fact:journal-5 **Правило без находки — гипотеза.** Каждое правило регламента ссылается на
   записи журнала, которые его породили; правило без ссылки помечается
   «гипотеза» и проверяется. Так находки кампании не теряются и не
   выдумываются: регламент растёт только из того, что случилось. @status:spec/done

## 5. Сигналы {#signals}

[p25]
| Источник | Сигнал | Куда попадает |
| --- | --- | --- |
| @fact:signals-1 Сборка @status:spec/done | @fact:signals-2 неразрешимые цитаты, красные примеры, дыры покрытия, расхождения структуры адаптаций, статистика линтера @status:spec/done | @fact:signals-3 `vibe doc todo` @status:spec/done |
| @fact:signals-4 Продукт @status:spec/done | @fact:signals-5 новые команды, поля, обязательства и PROP без страницы — видны гейту покрытия как текущие пробелы, не как «изменения с тех пор» @status:spec/done | @fact:signals-6 `vibe doc todo`, петля коммита @status:spec/done |
| @fact:signals-7 Владелец @status:spec/done | @fact:signals-8 решение поднять номер версии продукта @status:spec/done | @fact:signals-9 §2.5: `vibe doc diff`, список страниц к обновлению @status:spec/done |
| @fact:signals-10 Промпты @status:spec/done | @fact:signals-11 красный ассерт при прогоне агентом; агент не понял промпт @status:spec/done | @fact:signals-12 правка страницы или долг `docs:`; два падения подряд — переписывание @status:spec/done |
| @fact:signals-13 Люди @status:spec/done | @fact:signals-14 вопросы в чате и issue, замечания владельца при чтении вслух @status:spec/done | @fact:signals-15 долг `docs:` или правка @status:spec/done |
| @fact:signals-16 Агенты @status:spec/done | @fact:signals-17 скилл `vibevm-docs` просит агента, не нашедшего ответ по якорю, записать вопрос строкой `docs-gap:` в `BACKLOG.md` проекта-потребителя; для хоста — в его `BACKLOG.md` @status:spec/done | @fact:signals-18 недельная петля @status:spec/done |
| @fact:signals-19 Сайт @status:spec/done | @fact:signals-20 просмотры, выходы, время чтения по страницам (Umami); поисковые запросы без результата, когда появится поиск; Search Console @status:spec/done | @fact:signals-21 месячная петля @status:spec/done |
| @fact:signals-22 Журнал @status:spec/done | @fact:signals-23 записи с пустым «→ регламент» @status:spec/done | @fact:signals-24 месячная петля @status:spec/done |

## 6. Дисциплина мелких правок {#small-edits}

1. [p26] @fact:small-edits-1 Одна правка — один коммит `docs(vibevm-docs): …` с конкретным описанием. @status:spec/done
2. @fact:small-edits-2 Якоря не меняются (R-06); `derived` руками не правится (R-03); число или
   имя поля в прозе — только с `rule` рядом (R-01). @status:spec/done
3. @fact:small-edits-3 Вставленный термин вводится на месте (`STYLE.md` §2); линтер стиля
   зелёный на странице. @status:spec/done
4. @fact:small-edits-4 **Правило пяти правок:** пятая мелкая правка одной страницы с последнего
   чтения вслух ставит страницу в очередь «страница недели» — накопленные
   заплатки ломают лестницу незаметно для каждого автора заплатки. @status:spec/done
5. @fact:small-edits-5 Мелкая правка, которая тянет за собой другие страницы, — не мелкая: она
   становится долгом с атомом. @status:spec/done

## 7. Метрики месячного ревью {#metrics}

[p27]
| Метрика | Как считать | Куда должна идти |
| --- | --- | --- |
| @fact:metrics-1 Пробелы на начало месяца @status:spec/done | @fact:metrics-2 число строк `vibe doc todo` по покрытию, примерам и цитатам @status:spec/done | @fact:metrics-3 к нулю @status:spec/done |
| @fact:metrics-4 Возраст страниц @status:spec/done | @fact:metrics-5 медиана дней с последнего чтения по `reviews.toml` @status:spec/done | @fact:metrics-6 ниже 90 @status:spec/done |
| @fact:metrics-7 Отставание адаптаций @status:spec/done | @fact:metrics-8 сумма ревизий по всем страницам адаптации @status:spec/done | @fact:metrics-9 к нулю на полной сверке @status:spec/done |
| @fact:metrics-10 Покрытие обязательств @status:spec/done | @fact:metrics-11 `vibe doc check --coverage` @status:spec/done | @fact:metrics-12 100 процентов @status:spec/done |
| @fact:metrics-13 Тики на тысячу слов @status:spec/done | @fact:metrics-14 линтер стиля по корпусу @status:spec/done | @fact:metrics-15 к нулю @status:spec/done |
| @fact:metrics-16 Долг @status:spec/done | @fact:metrics-17 строки `docs:` в `BACKLOG.md` по severity @status:spec/done | @fact:metrics-18 P1 = 0 @status:spec/done |
| @fact:metrics-19 Находки → регламент @status:spec/done | @fact:metrics-20 записей за месяц / из них с решением @status:spec/done | @fact:metrics-21 все с решением @status:spec/done |
| @fact:metrics-22 Дней с последней полной сверки @status:spec/done | @fact:metrics-23 по дате в `reviews.toml` @status:spec/done | @fact:metrics-24 не больше 90 при квартальной каденции @status:spec/done |

[p28] @fact:metrics-25 Восемь чисел, не больше; таблица в отчёте месяца, тренд рядом. @status:spec/done

## 8. Роли по ярусам {#roles}

[p29]
| Ярус | В петле коммита | В недельной | В месячной | В полной сверке | При смене версии |
| --- | --- | --- | --- | --- | --- |
| @fact:roles-1 Владелец @status:spec/done | @fact:roles-2 — @status:spec/done | @fact:roles-3 читает страницу недели (по желанию) @status:spec/done | @fact:roles-4 читает три страницы вслух; решает по регламенту @status:spec/done | @fact:roles-5 назначает дату, принимает отчёт сверки @status:spec/done | @fact:roles-6 поднимает номер; принимает changelog @status:spec/done |
| @fact:roles-7 Центральная сессия (Fable) @status:spec/done | @fact:roles-8 правит прозу, если коммит её требует @status:spec/done | @fact:roles-9 сортирует очередь, делает мелкие правки, пишет запись в журнал @status:spec/done | @fact:roles-10 аудит корпуса, переписывание страниц, изменения регламента, changelog @status:spec/done | @fact:roles-11 перечитывает страницы против текущего продукта, переписывает коридоры, закрывает пробелы новыми страницами @status:spec/done | @fact:roles-12 обновляет страницы из списка diff, пишет changelog для читателей @status:spec/done |
| @fact:roles-13 Opus 5 High @status:spec/done | @fact:roles-14 код инструментов @status:spec/done | @fact:roles-15 — @status:spec/done | @fact:roles-16 правки инструментов по находкам @status:spec/done | @fact:roles-17 правки инструментов и генераторов `derived` @status:spec/done | @fact:roles-18 правки `surface`/`diff` по находкам @status:spec/done |
| @fact:roles-19 Дешёвая модель @status:spec/done | @fact:roles-20 — @status:spec/done | @fact:roles-21 прогоняет `todo` и `check`, собирает отчёт @status:spec/done | @fact:roles-22 собирает метрики и аналитику, машинный черновик адаптации @status:spec/done | @fact:roles-23 прогоняет `todo`, `check` и примеры против текущего релиза, собирает отчёт; записывает снимок поверхности @status:spec/done | @fact:roles-24 записывает снимок новой версии, прогоняет `diff`, собирает список @status:spec/done |

## 9. Как меняется сам регламент {#self-change}

[p30] @fact:self-change-1 Регламент — не догма: он меняется по журналу в месячной петле (§2.3 п. 7).
Каждое изменение — правка с датой и ссылками на записи `J-NNN`. Раз в
квартал — вопрос владельцу: какие петли оказались лишними, какие метрики
никто не смотрит, какие правила ни разу не сработали. Правило, не
сработавшее за квартал, помечается «спящее» и выносится из чеклиста; правило
без записи-основания — «гипотеза». Так регламент худеет, а не толстеет. @status:spec/done

## 10. Куда ложится норма {#landing}

[p31]
| Что | Где | Когда |
| --- | --- | --- |
| @fact:landing-1 Норма петель, журнала, долга, гейта релиза @status:spec/done | @fact:landing-2 PROP «documentation maintenance», следующий свободный номер после PROP-057 @status:spec/done | @fact:landing-3 фаза 6, атом A6.4 @status:spec/done |
| @fact:landing-4 Страница для мейнтейнера «How this manual is maintained» (аудитория `dev`) @status:spec/done | @fact:landing-5 пакет `vibevm-docs` @status:spec/done | @fact:landing-6 A6.4 @status:spec/done |
| @fact:landing-7 Чеклисты `maintenance/weekly.md`, `monthly.md`, `release.md` @status:spec/done | @fact:landing-8 пакет `vibevm-docs` @status:spec/done | @fact:landing-9 A6.4 @status:spec/done |
| @fact:landing-10 `reviews.toml`, `JOURNAL.md`, `CHANGELOG.md` @status:spec/done | @fact:landing-11 пакет `vibevm-docs` @status:spec/done | @fact:landing-12 A6.1, A6.4 @status:spec/done |
| @fact:landing-13 `vibe doc todo` @status:spec/done | @fact:landing-14 `vibe-doc`, CLI @status:spec/done | @fact:landing-15 фаза 2, A2.27 @status:spec/done |
| @fact:landing-16 `vibe doc surface`, `vibe doc diff`, каталог `maintenance/surface/` @status:spec/done | @fact:landing-17 `vibe-doc`, CLI; пакет документации @status:spec/done | @fact:landing-18 фаза 2, A2.26; первый снимок — A6.5 @status:spec/done |
| @fact:landing-19 Календарь полной сверки, чеклист `maintenance/reconcile.md` @status:spec/done | @fact:landing-20 пакет документации; даты чтения в `reviews.toml` @status:spec/done | @fact:landing-21 A6.5 @status:spec/done |
| @fact:landing-22 Регламент как flow-пакет для чужих проектов с doc-пакетами @status:spec/done | @fact:landing-23 `org.vibevm.world/docs-maintenance` @status:spec/done | @fact:landing-24 вторая волна: когда второй проект захочет тот же ритуал @status:spec/done |

## 11. Открытые вопросы владельцу {#open}

1. [p32] @fact:open-1 Каденции: неделя и месяц, как здесь, или две недели и квартал. @status:spec/done
2. @fact:open-2 Дежурный по недельной петле: владелец с центральной сессией или только
   сессия с отчётом владельцу. @status:spec/done
3. @fact:open-3 Публиковать мелкие правки патч-версией еженедельно или копить до
   месячного релиза. @status:spec/done
4. @fact:open-4 Сигнал от агентов `docs-gap:` в `BACKLOG.md` проектов-потребителей —
   уместно ли писать в чужой файл по воле скилла, или только предлагать. @status:spec/done
5. @fact:open-5 Каденция полной сверки: раз в квартал, перед крупной вехой, или и то и
   другое. Рекомендация — и то и другое, с правом владельца отложить. @status:spec/done
6. @fact:open-6 Примеры с `expect` — единственная техническая связка продукта с
   документацией (golden-тесты в панели): оставить как тесты или тоже
   перевести в измеритель. Рекомендация — оставить: они правятся как любой
   golden-файл и стоят минуты. @status:spec/done
7. @fact:open-7 Псевдоистория версий (§2.5): где хранить снимки и разрешить ли
   внутренний `vibe doc diff <версия> now` как подсказку сверке
   (`VISION.md` §10 п. 14). @status:spec/done

