mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
docs: spec #331 revision 3 — AC6 tells the two sides apart
r2 M-r2-1: AC6 now mirrors AC5's structure with two explicit cases — a candidate-side TypeError is an honest WS error, a previous-side TypeError falls back to "no baseline" and the unrelated write passes. An implementation with swapped or missing asymmetry turns at least one of the two units red. L2: the risk wording follows §2.3's component-sum phrasing. Issue: #331 User-Visible: no
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Issue #331 — пограничная точность ограничений стыков (#329)
|
||||
|
||||
Статус: ревизия 2 (spec-ревью r1: H1 — квантование по формуле канонизации
|
||||
Статус: ревизия 3 (r2: M-r2-1 — AC6 различает стороны, L2 — формулировка риска синхронизирована с §2.3. spec-ревью r1: H1 — квантование по формуле канонизации
|
||||
вместо нативного round, M1 — порог инцидентности 2e-7 и исправленный пример,
|
||||
M2 — узкий except только для кандидата, M3 — обход по рёбрам вместо DFS,
|
||||
M4 — USER-GUIDE, L1 — пользовательская фраза §1). Родители: #329 (правила), #330 (производительность —
|
||||
@@ -141,9 +141,13 @@ python. Порог выбран на два порядка грубее кано
|
||||
- **AC5 (fail-closed).** Синтетическое исключение в проверке кандидата
|
||||
(мутант/подмена) — запись отклонена с тостом `junction.limit_check_failed`;
|
||||
исключение на baseline — запись проходит. Смок/юнит.
|
||||
- **AC6 (except).** Битая форма документа (TypeError в миграции) — честная
|
||||
ошибка WS, не тихое «нарушений нет»; `WallSegmentMigrationError` —
|
||||
прежний фолбэк «нет базы». Backend-юниты.
|
||||
- **AC6 (except).** Два явных случая по образцу AC5 (r2 M-r2-1):
|
||||
(а) TypeError в миграции **кандидата** — честная ошибка WS, не тихое
|
||||
«нарушений нет»; (б) TypeError в миграции **previous** — запись
|
||||
ПРОХОДИТ по фолбэку «нет базы для наследования» (несвязанную правку не
|
||||
блокирует баг чужой стороны). `WallSegmentMigrationError` в обоих случаях
|
||||
— прежний фолбэк «нет базы». Реализация с перепутанными сторонами или без
|
||||
асимметрии красит хотя бы один из двух юнитов. Backend-юниты.
|
||||
- **AC7 (паритет и регресс).** Паритет-набор расширен всеми классами выше;
|
||||
все существующие юниты/смоки/мутанты #329+#330 и бенч #330 зелёные без
|
||||
изменения ожиданий (кроме прямо описанных в §3 пограничных вердиктов).
|
||||
@@ -163,8 +167,8 @@ python. Порог выбран на два порядка грубее кано
|
||||
- **i18n**: один новый ключ `junction.limit_check_failed` (en+ru).
|
||||
- **Touch**: не задет.
|
||||
- **Риски**: (1) квантование ключей меняет вердикты классов входов —
|
||||
закрыто явным перечнем §3 и паритетом; (2) выбор максимальной ветви может
|
||||
легализовать ранее отклонявшиеся конфигурации — это исправление
|
||||
закрыто явным перечнем §3 и паритетом; (2) сумма коллинеарной компоненты
|
||||
может легализовать ранее отклонявшиеся конфигурации — это исправление
|
||||
занижения, фиксируется юнитом с точным ожиданием; (3) 0°-нарушение
|
||||
может всплыть на легаси-планах с дублями — наследование #329 §3
|
||||
по-прежнему пропускает несвязанные правки (инвариант не трогается).
|
||||
|
||||
Reference in New Issue
Block a user