From bb635298c153ba8d5104e19a70e695d1fcf1a5c5 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 31 Aug 2026 04:26:14 +0300 Subject: [PATCH] docs: #399 spec revision 3 per SPEC-REVIEW-399-r2 User-Visible: no Issue: #399 --- docs/specs/399-backend-gate-honesty.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/specs/399-backend-gate-honesty.md b/docs/specs/399-backend-gate-honesty.md index b356e92a..cada8a5f 100755 --- a/docs/specs/399-backend-gate-honesty.md +++ b/docs/specs/399-backend-gate-honesty.md @@ -3,8 +3,8 @@ - Issue: https://github.com/Matysh/houseplan-card/issues/399 - Приоритет: P2, infra; полный трек — класс B (конфигурация гейта, workflow, тесты), три несвязанные поверхности в одном issue по решению аудита -- Ревизия: 2 (2026-08-31) — по SPEC-REVIEW-399-r1 (Medium: перебор по каталогу, - а не по паре имён) +- Ревизия: 3 (2026-08-31) — по SPEC-REVIEW-399-r2 (Medium: план тестов повторял + снятую формулировку AC5) ## Сценарий @@ -152,8 +152,14 @@ include`) и/или шаг линта в `.github/workflows/validate.yml`, 1. Пин фронтенда совпадает с ожидаемой версией закреплённого HA (AC1). 2. Списки деревьев в `include` и в шаге линта совпадают (AC2). 3. Синтетический workflow без обеих зацепок → проверка пинов краснеет (AC4). -4. Явный список обходимых файлов зафиксирован; добавление нового файла в - workflows без обновления списка краснеет (AC5). +4. Каталог `.github/workflows/*.yml` перебирается целиком: синтетический + третий workflow с `pip install pytest` без версий краснеет **без** правки + каких-либо списков в тесте (AC5). Списка обходимых файлов в тесте нет и + быть не должно — файл, не ставящий python-зависимостей, распознаётся по + собственному содержимому. +5. Реальный каталог проверяется тем же кодом: девять workflow, установка + python-зависимостей найдена ровно в двух — это вывод проверки, а не + зафиксированное в ней ожидание (AC5). **Мутанты** (`scripts/mutation-gate.mjs`): @@ -161,6 +167,9 @@ include`) и/или шаг линта в `.github/workflows/validate.yml`, `validate-workflow.test.mjs` красный. - `lint-scope-drifts`: добавить дерево в `include`, не тронув workflow → контракт скоупа красный. +- `workflow-scan-hardcodes-the-list`: заменить перебор каталога на + фиксированный список имён → пункт 4 плана красный (иначе от снятой + конструкции ничто не удерживает). ## Риски