mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-28 19:01:34 +00:00
docs: address the core budget spec review (#425)
User-Visible: no Issue: #425
This commit is contained in:
@@ -9,6 +9,24 @@
|
||||
- Ревизия: 1 (2026-09-03)
|
||||
- Заменяет #34 ([HP-ARCH-01]), который закрывается вместе с этой задачей
|
||||
|
||||
## Сценарий
|
||||
|
||||
Продуктового сценария у задачи нет — она инженерная, и это сказано явно, а не
|
||||
подразумевается. Разработчик добавляет функцию, кладёт её в ядро, потому что
|
||||
там уже всё, и ядро прибавляет ещё пятьсот строк. Никто не против: каждый шаг
|
||||
разумен, а счёт никто не ведёт. Через год 42% кода снова в двух файлах, и
|
||||
следующая функция стоит дороже предыдущей.
|
||||
|
||||
## Что человек увидит до и после
|
||||
|
||||
Пользователь — ничего: продуктовый код задача не трогает.
|
||||
|
||||
**До**: ядра растут молча, и узнать об этом можно только из аудита, если кто-то
|
||||
удосужится посчитать.
|
||||
**После**: рост выше потолка роняет `npm test` и называет цену числом, а
|
||||
уменьшение требует опустить потолок — то есть выигрыш фиксируется, а не
|
||||
испаряется.
|
||||
|
||||
## Почему не проект, а ограничитель
|
||||
|
||||
#34 заведён 09.08, за 25 дней не сдвинулся и шестой аудит подряд отмечается как «без движения». При этом декомпозиция идёт — но не как проект, а попутно: файлов в `src/` было 18 на v1.58, сейчас больше сотни; `houseplan-editor-runtime.ts` выделен из ядра между v1.66 и v1.69; за последние недели отдельными модулями вышли `support-feedback.ts`, `command-stack.ts`, `device-area-relocation.ts`, `danger-confirm.ts`.
|
||||
@@ -42,13 +60,13 @@
|
||||
- **AC1**. Рост любого из двух ядер выше потолка роняет `npm test` с сообщением, называющим файл, потолок и превышение в строках. Доказательство: мутант, добавляющий строки в `houseplan-card.ts`, прогнанный штатным раннером.
|
||||
- **AC2**. Уменьшение ядра больше чем на 250 строк ниже потолка тоже роняет тест — с требованием опустить потолок. Доказательство: юнит на чистой функции.
|
||||
- **AC3**. Изменение в пределах люфта тест не трогает. Доказательство: тот же юнит.
|
||||
- **AC4**. Потолки записаны числами в самом тесте: любое их изменение видно в дифе и проходит ревью как решение, а не как побочный эффект.
|
||||
- **AC4**. Потолки записаны числами в самом тесте: любое их изменение видно в
|
||||
дифе и проходит ревью как решение, а не как побочный эффект. Доказательство:
|
||||
ревью кода — в тесте нет чтения потолков из внешнего источника (файла,
|
||||
переменной окружения, вычисления от текущего размера), и юнит на то, что
|
||||
функция принимает потолки аргументом, а не добывает их сама.
|
||||
- **AC5**. Гейт судит только два ядра. Остальные файлы `src/` не ограничиваются: цель — не заморозить размер кода, а сделать рост ядер осознанным.
|
||||
|
||||
## Откат
|
||||
|
||||
Удаление одного тестового файла и одного мутанта.
|
||||
|
||||
## Скоуп / не-скоуп
|
||||
|
||||
**В скоупе**: один тест с потолками и храповиком, мутант, строка в
|
||||
|
||||
Reference in New Issue
Block a user