docs: документация переведена на канон av-dev-pm 3

- роадмап отвечает «что умеет и чего не умеет»: PLAN.md → ROADMAP.md, четыре
  канонические секции, достигнутые звенья строками в «Готово», цели
  переформулированы возможностями приложения
- задачи: род работы и «Затрагивает» набору спринта, 34 заголовка в форму
  действия, «Завершение» целей перечнями со ссылкой из каждой задачи
- вычитка проходами task-form и doc-wording, починены протухшие факты в README,
  паспорте и review.md
This commit is contained in:
av
2026-08-04 20:48:30 +03:00
parent b1d3b25827
commit d33f37249c
63 changed files with 489 additions and 346 deletions
+15 -12
View File
@@ -1,6 +1,6 @@
# Правило полноты против last wins
# Измерить, нужно ли правило полноты рядом с LWW
- **Секция:** ядро
- **Секция:** Ядро
- **Зачем:** Полнота решает 1,2% спорных координат, и неизвестно, была ли более полная точка более поздней — от этого зависит, нужна ли она вообще
- **Теги:** goal:merge-robustness, sprint:2026-08-03
@@ -8,17 +8,21 @@
зависит ровно там, где замер показал, что без этого теряются данные. Сегодня
неизвестно, какой из двух случаев верен.
Двигает строку «Завершения» цели: «Правило выбора между версиями измерено: полнота либо нужна, либо снята».
## Откуда задача
Владелец предложил 2026-08-04 держаться стратегии **last wins**: экспорт Apple
Владелец предложил 2026-08-04 держаться стратегии **LWW** («выигрывает
последняя»): экспорт Apple
Health — база снапшота, новые доставки HAE затирают предыдущие. Это отменяет
`critical`-инвариант `CLAUDE.md` «при столкновении выигрывает более полная
точка, а не последняя», и потому меняется не молча, а этой задачей.
Соседняя задача [tie-break-equal-completeness](tie-break-equal-completeness.md)
двигает то же правило в ту же сторону, но осторожнее: она меняет только
тай-брейк при **равной** полноте, оставляя саму полноту первичной. Эта задача
решает, надо ли снимать и её.
Соседняя задача «Тай-брейк при равной полноте» двигала то же правило в ту же
сторону, но осторожнее: она поменяла только тай-брейк при **равной** полноте,
оставив саму полноту первичной. Она сделана 2026-08-04 — решение записано в
[ADR о тай-брейке по порядку журнала](../../adr/ADR-2026-08-04-tie-break-po-poryadku-zhurnala.md).
Эта задача решает, надо ли снимать и саму полноту.
## Замер — первый шаг, и от него ветвится всё остальное
@@ -32,11 +36,11 @@ Health — база снапшота, новые доставки HAE затир
Вопрос ровно один: **в этих 1 022 случаях более полная точка была более поздней
или более ранней?**
- **Всегда более поздней** — полнота ничего не решает сверх порядка, `last wins`
- **Всегда более поздней** — полнота ничего не решает сверх порядка, LWW
строго проще и ничего не теряет. Ветка полноты удаляется, инвариант в
`CLAUDE.md` переписывается.
- **Иногда более ранней** — значит HAE присылает обеднённые версии задним
числом, и `last wins` будет молча стирать поля. Тогда полнота остаётся, а
числом, и LWW будет молча стирать поля. Тогда полнота остаётся, а
граница её применения записывается числом: сколько таких случаев, у каких
метрик, какие поля пропадали.
@@ -77,9 +81,8 @@ Health — база снапшота, новые доставки HAE затир
Схему не трогаем. Отпечаток витрины изменится — пересборка обязательна и
делается человеком при остановленном сервисе; подмена файла базы необратима и в
задаче не выполняется. Берётся **после**
[tie-break-equal-completeness](tie-break-equal-completeness.md): та меняет то же
место, и замер до её вливания ответит на вопрос про уже неактуальное правило.
задаче не выполняется. Тай-брейк при равной полноте уже влит, поэтому замер
отвечает про действующее правило, а не про снятое.
Связано: находки 10, 47, 49, 53; `docs/architecture.md` → «Разрешение
столкновений»; `docs/review.md`, запись 2026-08-04.