From 9a624d4e13976a0ad955f1beaaa618c595b767d5 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 7 Aug 2026 17:09:52 +0300 Subject: [PATCH] =?UTF-8?q?tasks:=20=D0=BE=D1=81=D1=82=D0=B0=D1=82=D0=BE?= =?UTF-8?q?=D0=BA=20=D1=83=D1=80=D0=BE=D0=B6=D0=B0=D1=8F=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B2=D1=8C=D1=8E=20=D1=80=D0=B0=D0=B7=D0=BD=D0=B5=D1=81=D1=91?= =?UTF-8?q?=D0=BD=20=D0=BF=D0=BE=20=D0=B4=D0=BE=D0=BC=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - tests-convention: два кандидата про тесты — один стенд чужого API на пакет, интеграционный тест обязан утверждать - convention-candidates: язык вывода в пяти местах без связывающего правила - quality-review-agents: четыре прохода не сообщили потолок находок — первый замер калибровки --- docs/tasks/items/convention-candidates.md | 11 +++++++++++ docs/tasks/items/quality-review-agents.md | 7 +++++++ docs/tasks/items/tests-convention.md | 12 ++++++++++++ 3 files changed, 30 insertions(+) diff --git a/docs/tasks/items/convention-candidates.md b/docs/tasks/items/convention-candidates.md index ce4bd5a..a1b2ae7 100644 --- a/docs/tasks/items/convention-candidates.md +++ b/docs/tasks/items/convention-candidates.md @@ -46,3 +46,14 @@ - **Время.** Явный TZ всегда, хранение и логи в UTC. Уже частично в `CLAUDE.md` и `conventions/logging.md`, а `time.Now` вне `store` запрещён линтером — этот пункт, вероятно, закрыт и подлежит вычёркиванию. +- **Язык вывода связан с мапперами.** Провенанс — ревью `tvdb-title-locale` + (2026-08-07, + [отчёт триажа](../../../openspec/changes/archive/2026-08-07-tvdb-title-locale/review/report.md), + находка R2 прохода `architecture`). Язык вывода живёт в пяти местах четырёх + пакетов, и теста, связывающего множество кодов языка с мапперами, нет: + забытая ветка молча даст английский вывод вместо ошибки. Кандидат в правило + `internal/archrules`, а не в прозу. **Дешёвый паллиатив, если правило окажется + дорогим:** строка «язык вывода» в `docs/architecture.md` → «Единые точки + проекта» — тогда расхождение хотя бы спросит проход по теме `architecture`. + Число мест перед правкой перепроверить: оно снято ревью одной задачи и с тех + пор могло измениться. diff --git a/docs/tasks/items/quality-review-agents.md b/docs/tasks/items/quality-review-agents.md index 87d3550..f3c1aaf 100644 --- a/docs/tasks/items/quality-review-agents.md +++ b/docs/tasks/items/quality-review-agents.md @@ -51,6 +51,13 @@ OpenSpec в сторону воспроизводимых автопроверо - **Калибровка проходов** по процедуре `references/calibration.md` скилла `av-dev-pipeline:review-pipeline` — ни один проход ещё не замерен инъекцией. До замера ничего не удаляем и промпты не правим. +- **Проходы не сообщают свой потолок находок.** На прогоне `tvdb-title-locale` + (2026-08-07) о потолке промолчали четверо из шести — `autotests`, `specs`, + `architecture`, `ops`; триаж свой назвал («6 из 7, потолок не выбран»). + Устав требует объявлять сработавший потолок строкой, и без неё «находок + больше нет» неотличимо от «больше не поместилось» — то есть ровно тот сигнал, + ради которого потолок и заведён. Первый замер калибровки стоит начать с этого: + дефект прогона виден без инъекции. - **Заполнить журнал дефектов** в [docs/review.md](../../review.md) случаями, которые уже проскочили ревью, — они станут первыми пробами калибровки. - **Решить судьбу упразднённых проходов:** нужен ли проекту свой `idiom` поверх diff --git a/docs/tasks/items/tests-convention.md b/docs/tasks/items/tests-convention.md index e1c51d8..709a7b0 100644 --- a/docs/tasks/items/tests-convention.md +++ b/docs/tasks/items/tests-convention.md @@ -23,6 +23,18 @@ а дома у неё нет — источником ей служит только семантика гейта из `CLAUDE.md`, то есть «что краснеет», а не «что стоит проверять». +**Два кандидата пришли из ревью `tvdb-title-locale`** (2026-08-07, +[отчёт триажа](../../../openspec/changes/archive/2026-08-07-tvdb-title-locale/review/report.md) +→ «Promote candidates»), оба с провенансом прохода, а не из головы: + +- **один стенд чужого API на пакет.** В `tvdb_test.go` завелись два фейка одного + и того же API. Когда форма ответа поменяется по факту разведки, забытый + `fakeTVDB` останется зелёным и продолжит подтверждать опровергнутое + предположение; +- **интеграционный тест обязан утверждать, а не печатать.** `TestIntegration_TVDB` + печатает результат и ничего не проверяет: `PASS` с пустым выводом неотличим от + подтверждения. Тест, который нельзя провалить, оракулом не является. + ## Затрагивает - `docs/conventions/tests.md` — новый файл записи конвенции;