8.7 KiB
SPEC-REVIEW-443-r2
- Issue: https://github.com/Matysh/houseplan-card/issues/443
- Этап: ревью ТЗ (PROCESS.md §2.4)
- Заход: r2, блокирующих циклов израсходовано 1 из 4
- Материал:
docs/specs/443-vacuum-route-polish.mdна веткеissue/443-vacuum-route-polish, коммит0d8cfffb(Validate на этом SHA зелёный — https://github.com/Matysh/houseplan-card/actions/runs/33800001581) - Предыдущий раунд: r1, жёлтый, SHA
a488e898, документdocs/reviews/SPEC-REVIEW-443-r1.md - Дельта:
git diff a488e898..0d8cfffb -- docs/specs/443-vacuum-route-polish.md— 12 строк в двух разделах («Карта реализации», «Release-артефакты»), один коммит0d8cfffb("docs: address spec review for vacuum routes")
Почему разбор сокращён, а не заново
Дельта строго локальна: правка целиком лежит в тексте документа, не трогает
разделы «Сценарий», «Что человек увидит», «Контракт» (§1–§4), список AC1–AC8,
«Не-скоуп», «План тестирования» или «Принятые предположения». Автор прямо
заявил в комментарии к issue: «Контракт и acceptance criteria не менялись» —
и git diff это подтверждает построчно: единственные изменённые строки —
путь src/i18n/support/{en,ru,de,fr}.json в карте реализации и четыре новые
строки в разделе «Release-артефакты» про docs/CONFIG-COMPATIBILITY.md и
docs/USER-GUIDE.ru.md. Продуктовый контракт не менялся, новая подсистема не
затронута, ребейза не было (SHA r1 — прямой предок SHA r2, git merge-base a488e898 0d8cfffb = a488e898). Оснований для полного повторного разбора
нет — разбор ограничен закрытием двух находок r1 и беглой проверкой, что
дельта не задела ничего, признанного выполненным в r1.
Закрытие раунда r1
| Находка r1 | Чем закрыта | Где это видно |
|---|---|---|
Medium: раздел «Release-артефакты» не называет docs/CONFIG-COMPATIBILITY.md и docs/USER-GUIDE.ru.md |
Оба документа добавлены и в «Карту реализации», и в «Release-артефакты», с конкретной формулировкой правки (различие absent/null/explicit-empty/[] для первого; новая группа «Пространство удалено» для второго) |
docs/specs/443-vacuum-route-polish.md:279-281 (карта реализации), :301-305 (release-артефакты) |
Low: путь i18n src/locales/{en,ru,de,fr}.ts не существует |
Путь исправлен на фактический src/i18n/support/{en,ru,de,fr}.json |
docs/specs/443-vacuum-route-polish.md:275 |
Обе правки текстовые, ограничены заявленными строками, AC/контракт/скоуп не менялись — соответствует тому, что фикс требовался «чисто текстовый».
Унаследовано из r1
Всё содержательное сверение кода/документов из r1 наследуется без повторной проверки — дельта r2 не касается ни одного из проверенных там утверждений:
- обе (frontend/backend) причины пункта (а) issue,
kept_routes or Noneв export, детерминированный (но не сгруппированный) comparator пункта (б), полный скан ростера в_renderVacuumsпункта (в) — построчно сверены сorigin/dev; - контракт §1 (4-состояния authority), §2 (single-space export), §3 (группа удалённых пространств), §4 (vacuum-only snapshot) — однозначны, не оставляют выбора автору;
- все восемь AC пронумерованы, у каждого указан способ доказательства, включая обязательный отрицательный прогон в AC2;
- план автотестов называет два новых мутанта
scripts/mutation-gate.mjs; - «Принятые предположения» отделяют технические решения от уже принятых владельцем фактов, догадка за факт не выдаётся;
- открытых продуктовых вопросов нет;
- i18n-текст группы не изобретён с нуля (
vac.route_status_missing_space); - «одно число — один источник» неприменимо (задача не вводит новую пользовательскую величину) — рассмотрено и отклонено в r1, не заново.
Источник: docs/reviews/SPEC-REVIEW-443-r1.md, SHA a488e898.
Находки r2
Нет. Обе находки r1 закрыты текстуально и точно, новых текстовых проблем в делте не внесено.
Что проверено в r2
- Полный
git diff a488e898..0d8cfffb— единственный тронутый файл документов класса-C —docs/specs/443-vacuum-route-polish.md(плюс сам документ ревью r1, который конвейер закоммитил как артефакт — его содержание не является предметом проверки автора). - Раздел «Карта реализации» (
docs/specs/443-vacuum-route-polish.md:269-281) и «Release-артефакты» (:296-311) прочитаны целиком в актуальном состоянии, не только по диффу — формулировки конкретны («различает absent,null, explicit empty и non-empty», «новую видимую группу … в Device editor»), не общие фразы. docs/specs/README.mdне затронут дельтой — трассируемость §7.1, подтверждённая в r1, не могла испортиться этой правкой.- Merge-base SHA r1/r2 подтверждает отсутствие ребейза
(
git merge-base a488e898 0d8cfffb=a488e898).
Чего не проверял
- Не перечитывал заново разделы «Сценарий», «Что человек увидит», «Контракт» §1–§4, AC1–AC8, «Не-скоуп», «План тестирования», «Принятые предположения» — дельта их не касается, наследуются из r1 (см. выше).
- Не запускал
typecheck/test/build— этап ревью ТЗ, диапазон изменений толькоdocs/specs/**, Validate уже зелёный на этом SHA (см. материал выше); продуктового кода по-прежнему нет. - Не проверял golden/смоки/perf/инварианты модели — относятся к implementation loop и предрелизному гейту, кода ещё нет.
Материал раунда
- SHA:
0d8cfffb(веткаissue/443-vacuum-route-polish) - Дерево ТЗ:
docs/specs/443-vacuum-route-polish.md - Round: r2, budget циклов 1/4
- Предыдущий раунд: r1, SHA
a488e898,docs/reviews/SPEC-REVIEW-443-r1.md
Материал раунда
- Ветка:
issue/443-vacuum-route-polish, коммит0d8cfffb9286— ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет. - Дерево материала:
b899b29a6fbe75966853a43a6282cff22c146762git log --all --format='%H %T' | grep b899b29a6fbe - ТЗ
docs/specs/443-vacuum-route-polish.md, блобeb5bc721764abebb38a642cf9e450f52c6e608d7git log --all --find-object=eb5bc721764abebb38a642cf9e450f52c6e608d7 -- docs/specs/443-vacuum-route-polish.md