mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 12:18:51 +00:00
@@ -0,0 +1,117 @@
|
||||
# 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`
|
||||
|
||||
---
|
||||
|
||||
<!-- material-anchors: сгенерировано конвейером (#414) -->
|
||||
|
||||
## Материал раунда
|
||||
|
||||
- Ветка: `issue/443-vacuum-route-polish`, коммит `0d8cfffb9286` — ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет.
|
||||
- Дерево материала: `b899b29a6fbe75966853a43a6282cff22c146762`
|
||||
```
|
||||
git log --all --format='%H %T' | grep b899b29a6fbe
|
||||
```
|
||||
- ТЗ `docs/specs/443-vacuum-route-polish.md`, блоб `eb5bc721764abebb38a642cf9e450f52c6e608d7`
|
||||
```
|
||||
git log --all --find-object=eb5bc721764abebb38a642cf9e450f52c6e608d7 -- docs/specs/443-vacuum-route-polish.md
|
||||
```
|
||||
Reference in New Issue
Block a user