docs: put the smoke shortlist into the gate rules

Issue: #241
User-Visible: no
This commit is contained in:
Matysh
2026-08-22 18:33:17 +03:00
parent c0a4fa29ee
commit 6683e526d8
3 changed files with 19 additions and 9 deletions
+13 -7
View File
@@ -360,13 +360,19 @@ jobs:
с красным job `docs` до следующей задачи (#237).
По необходимости, и «необходимость» определяется diff'ом и AC:
- браузерные смоки `demo/smoke_*.mjs` — названные в AC плюс
относящиеся к тронутым поверхностям. Их 163; прогон всех уместен
только когда задача действительно задевает всё. Выбирать по теме
недостаточно: регресс #234 поймал `smoke_wall_junctions`, который
по названию про стыки стен, а не про толщину отрезка. Надёжнее
grep — искать в `demo/smoke_*.mjs` имена изменённых функций и
полей, и прогонять найденное;
- браузерные смоки `demo/smoke_*.mjs` — названные в AC плюс те,
что печатает `node scripts/smoke-select.mjs --base <base> --head <head>`.
Их 167; прогон всех уместен только когда задача действительно
задевает всё. Выбирать по теме недостаточно: регресс #234 поймал
`smoke_wall_junctions`, который по названию про стыки стен, а не
про толщину отрезка. Инструмент печатает три вида ответа, и они
разные: «прямое совпадение» — смок называет изменённый символ,
«зарегистрированная связь» — смок проверяет следствие контракта,
не называя его, «НЕОПРЕДЕЛЁННОСТЬ» — связь не доказана, и это не
разрешение ничего не прогонять. Вывод инструмента прикладывается
к комментарию ревью вместе с решением по каждой строке: прогнал
либо не прогнал и почему. Слабые связи (одно распространённое
имя) — повод посмотреть, а не обязанность прогонять;
- `npm run golden:verify` — если diff может изменить видимый
результат: рендер, геометрия, стили, слои;
- `python -m pytest tests_backend -q` — если тронут
+5 -2
View File
@@ -538,6 +538,7 @@ npx tsc --noEmit
npm test
npm run build && cmp dist/houseplan-card.js custom_components/houseplan/frontend/houseplan-card.js \
&& cmp dist/houseplan-card.js demo/srv/assets/houseplan-card.js
node scripts/smoke-select.mjs --base origin/dev --head HEAD # какие смоки относятся к диффу
node demo/smoke_<целевые>.mjs
npm run golden:verify # если менялся визуал
node scripts/check-docs.mjs # если менялся src/**
@@ -547,8 +548,10 @@ python -m pytest tests_backend -q # py3.13, если менялся бэке
**Объём гейтов на код-ревью соразмерен задаче** (issue #127). Всегда:
`typecheck`, `npm test`, `npm run build` со сверкой трёх копий бандла, а при
любом diff'е по `src/**` — ещё и `node scripts/check-docs.mjs`. По
необходимости, определяемой diff'ом и AC: браузерные смоки (их 163 — прогон всех
уместен только когда задача задевает всё), `golden:verify` при изменении видимого
необходимости, определяемой diff'ом и AC: браузерные смоки (их 167 — прогон всех
уместен только когда задача задевает всё; какие относятся к диффу, печатает
`node scripts/smoke-select.mjs --base origin/dev --head HEAD`, и его вывод
прикладывается к ревью вместе с решением по каждой строке), `golden:verify` при изменении видимого
результата, `pytest tests_backend` при правках в Python, performance-профили при
названном в AC влиянии. **Полные наборы — предрелизный гейт, а не гейт ревью.**
+1
View File
@@ -9,6 +9,7 @@
"watch": "rollup -c --watch",
"typecheck": "tsc --noEmit",
"test": "tsc -p tsconfig.test.json && node scripts/fix-test-build.mjs && node --test test/*.test.mjs",
"smokes:select": "node scripts/smoke-select.mjs",
"inventory": "node scripts/inventory.mjs",
"audit:config": "node scripts/config-audit.mjs",
"benchmark:large-house": "node demo/benchmark_large_house.mjs",