mirror of
https://github.com/Matysh/houseplan-card
synced 2026-10-01 04:09:17 +00:00
@@ -0,0 +1,167 @@
|
||||
# CODE-REVIEW-628-r2
|
||||
|
||||
Issue: #628 · Материал раунда: `a32744255f10b6d5dfa590ab24cb94b4e7d020de` (HEAD,
|
||||
рабочая копия на нём) · диапазон `origin/dev..HEAD` (4 коммита), дифф
|
||||
`origin/dev...HEAD`.
|
||||
|
||||
## Скоуп
|
||||
|
||||
Инфраструктурная задача без ТЗ (трек «infrastructure-only», AGENTS.md):
|
||||
разовый `git gc --prune=now` клона владельца на Windows-машине, замер
|
||||
до/после, фиксация решения в `docs/DEVELOPMENT.md`. Скоуп и AC не менялись
|
||||
с r1 (см. `docs/reviews/CODE-REVIEW-628-r1.md`).
|
||||
|
||||
Диапазон `origin/dev..HEAD` — четыре коммита:
|
||||
|
||||
```
|
||||
774b7c7e docs: record repository GC baseline
|
||||
f86bc34d docs: review document for #628 (пайплайн, r1)
|
||||
054a7139 docs: preserve workstation section hierarchy (правка автора по r1)
|
||||
a3274425 docs(reviews): индекс после сдвига каталога (#628) (пайплайн)
|
||||
```
|
||||
|
||||
`774b7c7e` содержит тот же текст, что рецензировался в r1 под именем
|
||||
`66b2b576` — этот SHA осиротел ребейзом, что документ r1 сам предсказал
|
||||
(«ребейз его осиротит, и это нормально»); материал ищется по дереву/блобу
|
||||
(REVIEWER.md, «Повторный раунд»), и `774b7c7e` — тот же diff `+27` строк по
|
||||
`docs/DEVELOPMENT.md`, что и `66b2b576` в r1 (проверено построчным `git
|
||||
diff` — идентичен процитированному в r1 тексту). `f86bc34d` и `a3274425` —
|
||||
служебные коммиты конвейера (публикация документа r1, пересчёт индекса);
|
||||
их дифф не относится к продукту задачи. Единственный содержательный коммит
|
||||
автора в этом раунде — `054a7139`.
|
||||
|
||||
Трейлеры на `054a7139` и `a3274425`: `Issue: #628`, `User-Visible: no` —
|
||||
верно, оба коммита не меняют видимое пользователю поведение (внутренняя
|
||||
`docs/DEVELOPMENT.md` и служебный `docs/reviews/INDEX.md`); правка
|
||||
CHANGELOG не требуется и не сделана. Дифф не касается `src/**`,
|
||||
`custom_components/**/*.py`, манифестов — задача остаётся вне класса A.
|
||||
|
||||
## Закрытие раунда r1
|
||||
|
||||
| Находка r1 | Чем закрыта | Где это видно |
|
||||
|---|---|---|
|
||||
| Medium: новый раздел `## Local repository maintenance (#628)` разрывал секцию `## Local Windows workstation` и её подсекцию `### ⚠️ File-sync pitfalls (critical)`, меняя владельца подсекции по дереву заголовков | Коммит `054a7139` «docs: preserve workstation section hierarchy» переносит блок `## Local repository maintenance (#628)` **после** `### ⚠️ File-sync pitfalls (critical)` и **перед** `## Tests`, оставляя `File-sync pitfalls` подсекцией `Local Windows workstation` | `git diff 774b7c7e 054a7139 -- docs/DEVELOPMENT.md` — чистое перемещение блока (12 строк вверх/вниз, содержание не тронуто); `grep -n '^#' docs/DEVELOPMENT.md` на HEAD: `93 ## Local Windows workstation` → `168 ### ⚠️ File-sync pitfalls (critical)` → `177 ## Local repository maintenance (#628)` → `204 ## Tests` — иерархия и порядок ровно те, что требовала находка |
|
||||
|
||||
## Унаследовано из r1 (не перепроверялось заново)
|
||||
|
||||
- Арифметика четырёх чисел раздела `## Local repository maintenance (#628)`
|
||||
(1084.39 → 467.63 MiB, разница 616.76, порог 487.63) — перепроверена
|
||||
вручную в r1, текст блока в этом раунде не менялся (подтверждено диффом
|
||||
`054a7139`: перемещение без правки содержимого) — доказательство r1
|
||||
остаётся в силе.
|
||||
- AC1 (решение владельца зафиксировано текстом, совпадающим с выбранным
|
||||
«вариант 1» и умолчаниями-отказами по LFS/`dist/**`/истории) — та же
|
||||
логика и тот же неизменный текст, разобрано в r1.
|
||||
- Единственность источника чисел (`size-pack`/`count-objects`/`git gc`
|
||||
встречаются в `docs/**` только в этом разделе) — проверено в r1 по
|
||||
неизменному тексту; дополнительно перепроверено в этом раунде (см. ниже)
|
||||
на предмет того, что перемещение блока не создало второго вхождения.
|
||||
- Трейлеры коммита `774b7c7e` (`Issue: #628`, `User-Visible: no`) — те же,
|
||||
что были на предыдущем SHA этого коммита, разобраны в r1.
|
||||
- Дешёвые гейты (`typecheck`/`test`/`build`) не нужны диффу без кода —
|
||||
установлено в r1 и остаётся верным: `054a7139` и `a3274425` тоже не
|
||||
трогают код.
|
||||
|
||||
## Как проверялось в этом раунде
|
||||
|
||||
- Прочитаны новые комментарии issue #628 с r1: ответ владельца — не
|
||||
требовался (Medium в скоупе фиксится автором без эскалации); отчёт
|
||||
автора «Исправлен Medium из r1: `File-sync pitfalls` снова является
|
||||
подсекцией `Local Windows workstation`… Новый SHA: `78cdc4e5`» — этот
|
||||
локальный SHA не встречается в текущей истории, что ожидаемо: пуш
|
||||
прошёл через ребейз пайплайна и лёг как `054a7139` (то же
|
||||
правило «SHA не резолвится — не находка», примерено уже ко всей цепочке
|
||||
этого раунда).
|
||||
- `git log --oneline origin/dev..HEAD` и `git diff origin/dev...HEAD --stat`
|
||||
— подтверждён полный список изменённых файлов: `docs/DEVELOPMENT.md`
|
||||
(+27/-0 относительно `dev`), `docs/reviews/CODE-REVIEW-628-r1.md` (новый,
|
||||
публикация r1), `docs/reviews/INDEX.md` (+2/-1, пересчёт индекса).
|
||||
- `git diff origin/dev...HEAD -- docs/DEVELOPMENT.md` прочитан целиком:
|
||||
единственный блок изменений — вставка раздела `## Local repository
|
||||
maintenance (#628)` в 27 строк ровно между `### File-sync pitfalls` и
|
||||
`## Tests`; никакого разрыва существующих секций, содержание раздела
|
||||
не изменилось.
|
||||
- `git diff 774b7c7e 054a7139 -- docs/DEVELOPMENT.md` — прочитан отдельно,
|
||||
чтобы убедиться, что правка автора — чистое перемещение блока (12 строк
|
||||
вверх, 9 строк вниз в терминах unified diff), а не переписывание текста;
|
||||
подтверждено: строки внутри обоих блоков побайтово совпадают до и после.
|
||||
- `grep -n '^#' docs/DEVELOPMENT.md` на HEAD — построено полное дерево
|
||||
заголовков файла, порядок секций в диапазоне строк 93–236 прочитан
|
||||
целиком (`Read` offset 93, limit 115) и сверен со смыслом: `Local
|
||||
Windows workstation` → её подсекция `File-sync pitfalls` → новая
|
||||
`Local repository maintenance (#628)` → `Tests`. Логическая
|
||||
принадлежность подсекции восстановлена.
|
||||
- `grep -rn "size-pack|count-objects|git gc" docs/` — повторно (после
|
||||
перемещения блока) единственное вхождение всё ещё в
|
||||
`docs/DEVELOPMENT.md`, второго источника с конфликтующим числом не
|
||||
появилось.
|
||||
- `git diff origin/dev...HEAD --check` — 0 находок (нет висячих
|
||||
пробелов/конфликт-маркеров).
|
||||
- `node scripts/check-docs.mjs --screenshots=warn` — прогнал сам:
|
||||
`Documentation checks passed (7 files, 12 external links)`, то же
|
||||
неотносящееся к диффу предупреждение про устаревший screenshot
|
||||
fingerprint, что и в r1 и в отчёте автора.
|
||||
- Проверены трейлеры `054a7139` и `a3274425` (`git show -s --format`) —
|
||||
`Issue: #628`, `User-Visible: no` на обоих.
|
||||
- Green Validate на материале раунда (`a3274425`) подтверждён владельцем
|
||||
промпта: https://github.com/Matysh/houseplan-card/actions/runs/36122795014
|
||||
— покрывает `typecheck`/`test`/`build`+сверку бандла, их повторно не
|
||||
гонял.
|
||||
|
||||
## Находки
|
||||
|
||||
Нет. Единственная Medium-находка r1 закрыта чистым перемещением блока без
|
||||
побочных изменений; новых находок при разборе дельты не появилось.
|
||||
|
||||
## Что проверено и корректно
|
||||
|
||||
- AC1 и AC2 — без изменений с r1, остаются доказанными (см. «Унаследовано
|
||||
из r1»).
|
||||
- Structural fix Medium-находки r1 — подтверждён построением дерева
|
||||
заголовков и побайтовым сравнением содержимого блоков до/после
|
||||
перемещения.
|
||||
- Трейлеры всех содержательных коммитов раунда корректны.
|
||||
- Дифф раунда не расширяет скоуп: единственный контентный файл —
|
||||
`docs/DEVELOPMENT.md`, правка ограничена перестановкой ранее
|
||||
рецензированного блока.
|
||||
- Единственность источника чисел сохранена после перемещения.
|
||||
|
||||
## Чего не проверял и почему
|
||||
|
||||
- **`npx tsc --noEmit`, `npm test`, `npm run build`** — не перегонял: дифф
|
||||
раунда не содержит кода (только `docs/**`), и зелёный Validate на точном
|
||||
SHA материала (`a3274425`, run 36122795014) уже покрывает эти гейты.
|
||||
- **Смоки, `golden:verify`, `pytest tests_backend`, инварианты модели,
|
||||
performance-профили** — не прогонял и не применимы: дифф не в `src/**`,
|
||||
`demo/**`, Python или геометрии, ни один не назван в AC1/AC2.
|
||||
`smoke-select.mjs` не запускал по той же причине.
|
||||
- **Сам замер AC2** (2026-10-25 или позже) — вне предмета этого раунда, как
|
||||
и в r1: документ готовит критерий, будущий замер — отдельное действие.
|
||||
- **Первичный факт измерений владельца** (`git gc` на его Windows-машине) —
|
||||
не перепроверял повторно: числа не менялись с r1, где уже была
|
||||
пересчитана их внутренняя арифметика; повторный пересчёт дельта не
|
||||
требует, так как текст блока не редактировался, только перемещён.
|
||||
|
||||
## Вердикт
|
||||
|
||||
Зелёный: единственная Medium-находка r1 закрыта точечным перемещением
|
||||
блока без изменения содержания и без побочных эффектов; новых находок
|
||||
нет. High: 0, Medium: 0.
|
||||
|
||||
---
|
||||
|
||||
<!-- material-anchors: заполняется конвейером (#414) -->
|
||||
|
||||
---
|
||||
|
||||
<!-- material-anchors: сгенерировано конвейером (#414) -->
|
||||
|
||||
## Материал раунда
|
||||
|
||||
- Ветка: `issue/628-repository-gc`, коммит `a32744255f10` — ребейз его осиротит, и это нормально: ниже якоря, которые ребейз не меняет.
|
||||
- Дерево материала: `2b98213a6dc9ec3a9cb60908bcb00eb22dfdd0fd`
|
||||
```
|
||||
git log --all --format='%H %T' | grep 2b98213a6dc9
|
||||
```
|
||||
- Тело issue: `9b54257641bbb6e8f0276842401740d958c3593af319626ccc1c8a88e0e6c671`
|
||||
- Вердикт конвейера: `green` · High 0
|
||||
@@ -1,6 +1,6 @@
|
||||
# Индекс ревью
|
||||
|
||||
Генерируется `node scripts/reviews-index.mjs` (#635) — не редактировать руками. Документов: 1050, issue: 370. Вердикт: 🟢 зелёный · 🟡 жёлтый · 🔴 красный · ⚪ не распознан (свободная форма старых документов). H/M — число High/Medium по строке вердикта или заголовкам находок. Файлы — пути, названные в находках; ищите по имени файла: `grep form-kit INDEX.md`.
|
||||
Генерируется `node scripts/reviews-index.mjs` (#635) — не редактировать руками. Документов: 1051, issue: 370. Вердикт: 🟢 зелёный · 🟡 жёлтый · 🔴 красный · ⚪ не распознан (свободная форма старых документов). H/M — число High/Medium по строке вердикта или заголовкам находок. Файлы — пути, названные в находках; ищите по имени файла: `grep form-kit INDEX.md`.
|
||||
|
||||
| Issue | Документ | Этап · раунд | Вердикт | H | M | Находки | Файлы |
|
||||
|---|---|---|---|---:|---:|---|---|
|
||||
@@ -42,6 +42,7 @@
|
||||
| #629 | [CODE-REVIEW-629-r1.md](CODE-REVIEW-629-r1.md) | code · r1 | 🟢 зелёный | 0 | 0 | — | — |
|
||||
| #629 | [CODE-REVIEW-629-r2.md](CODE-REVIEW-629-r2.md) | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
|
||||
| #628 | [CODE-REVIEW-628-r1.md](CODE-REVIEW-628-r1.md) | code · r1 | 🟡 жёлтый | 0 | 1 | Новый раздел разрывает существующую секцию «Local Windows workstation» и меняет владель… | `docs/DEVELOPMENT.md` |
|
||||
| #628 | [CODE-REVIEW-628-r2.md](CODE-REVIEW-628-r2.md) | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
|
||||
| #627 | [SPEC-REVIEW-627-r1.md](SPEC-REVIEW-627-r1.md) | spec · r1 | 🟢 зелёный | 0 | 0 | избыточное (не противоречивое) условие в AC2; влияние на touch не названо явным пунктом | `docs/TOUCH-SUPPORT.md` |
|
||||
| #627 | [CODE-REVIEW-627-r1.md](CODE-REVIEW-627-r1.md) | code · r1 | 🟡 жёлтый | 0 | 1 | demo/smoke_danger_confirmation.mjs не переведён на ожидание составного гейта; диалог оп… | `demo/smoke_danger_confirmation.mjs` `src/houseplan-card.ts` `de.ts` `smoke_danger_confirm_branches.mjs` |
|
||||
| #627 | [CODE-REVIEW-627-r2.md](CODE-REVIEW-627-r2.md) | code · r2 | 🟢 зелёный | 0 | 0 | — | — |
|
||||
|
||||
Reference in New Issue
Block a user