Skip to content

Зафиксировать 0.3.0 и опубликовать результат релизного гейта - #47

Merged
Ev0lv3nta merged 3 commits into
mainfrom
release/v0.3.0
Sep 5, 2026
Merged

Ev0lv3nta merged 3 commits into
mainfrom
release/v0.3.0

Conversation

@Ev0lv3nta

@Ev0lv3nta Ev0lv3nta commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Номер 0.2.0 стоял в pyproject.toml, в app/main.py и в заголовке CHANGELOG, но публикации под ним не было: ни тега, ни релиза. Ролевой agentic workflow заменил rule-based pipeline, три endpoint'а генерации свелись к одному, TaskExtractor/TaskResolver/реестр семейств задач удалены — это ломающее изменение, и оно получает собственный номер, а не дописывается в чужой.

Гейт красный, и релиза не будет

Первый полный прогон со слепым набором на 3cbd432 (RTX 3090, Ollama 0.33.3, Qwen3.8-27B UD-Q4_K_M, 12 минут из 15):

Проверка Результат
живой корпус live-v1 6 / 6, невалидных успехов 0, правок 0
стабильность, 3 × 2 исходы совпали во всех парах
smoke, включая отказ опасного кандидата пройден
слепой набор holdout-v2 3 / 8, невалидных успехов 1, кейс безопасности провален
вердикт ok: false

Разрыв между 6 из 6 и 3 из 8 — это и есть содержательный результат методики: оценка на корпусе, который автор писал сам, систематически завышена. Один кейс закончился invalid success — результат объявлен успешным, хотя ожиданию не соответствовал. Это нарушение центрального контракта проекта, а не строчка статистики, поэтому тег v0.3.0 и GitHub Release не создаются.

holdout-v2 израсходован: набор одноразовый по построению, следующая попытка гейта требует нового, собранного без оглядки на этот результат. По его результатам реализация не тюнится.

Что в PR

  • версия 0.3.0 в pyproject.toml, uv.lock, app/main.py; раздел 0.2.0 помечен как внутренняя веха, которая не публиковалась;
  • CHANGELOG, README и docs/evaluation.md называют результат гейта прямо, включая то, почему релиза нет;
  • свидетельство прогона целиком — docs/evidence/release-gate-3cbd432.json; слепой набор в нём представлен только именем, SHA-256, числом кейсов, агрегатами и категориями ошибок;
  • гейт починен в своей диагностике: условие invalid_success_rate == 0.0 стояло внутри проверки формы отчёта, из-за чего промах по качеству отчитывался как private_holdout_report_schema_invalid и скрывал настоящую причину.

Николай Никитенко added 2 commits September 5, 2026 08:53
Номер 0.2.0 стоял в коде и в CHANGELOG, но публикации под ним не было: тега нет и
релиза нет. Ролевой agentic workflow заменил rule-based pipeline, три endpoint'а
генерации свелись к одному, а часть публичных модулей удалена — это ломающее изменение,
и оно получает собственный номер, а не дописывается в чужой.

Раздел 0.2.0 остаётся в истории как внутренняя веха и помечен как неопубликованный.
Первый полный прогон со слепым набором на 3cbd432 вернул ok: false. Живой корпус
пройден 6 из 6 при нуле правок, стабильность и smoke зелёные, но слепой набор — 3 из 8,
с одним invalid success и проваленным кейсом безопасности.

Разрыв между 6 из 6 и 3 из 8 и есть результат методики: оценка на корпусе, который
автор писал сам, систематически завышена. Invalid success — нарушение центрального
контракта проекта, а не строчка статистики, поэтому тег и релиз не создаются.
Свидетельство прогона опубликовано целиком; слепой набор представлен агрегатами и
хешем, идентификаторы и содержимое кейсов в артефакт не попадают.

Гейт заодно чинится в своей диагностике: условие invalid_success_rate == 0.0 стояло
внутри проверки формы отчёта, и промах по качеству отчитывался как «отчёт невалиден».
По списку провалов нельзя было понять, что именно случилось.

holdout-v2 израсходован: набор одноразовый, следующая попытка требует нового.
@Ev0lv3nta Ev0lv3nta changed the title Выпустить 0.3.0 Зафиксировать 0.3.0 и опубликовать результат релизного гейта Sep 5, 2026
Читатель, дошедший до третьего абзаца README, принимал fail-closed за факт. Это
цель конструкции; последний прогон гейта нашёл на слепом наборе случай, где контракт
был нарушён, и абзац теперь на это указывает.
@Ev0lv3nta
Ev0lv3nta merged commit 7332de9 into main Sep 5, 2026
10 checks passed
@Ev0lv3nta
Ev0lv3nta deleted the release/v0.3.0 branch September 5, 2026 06:10
Ev0lv3nta added a commit that referenced this pull request Sep 5, 2026
Номер 0.2.0 стоял в pyproject.toml, app/main.py и в заголовке CHANGELOG, но публикации
под ним не было: ни тега, ни релиза. Ролевой agentic workflow заменил rule-based
pipeline, три endpoint'а генерации свелись к одному, реестр семейств задач удалён — это
ломающее изменение, и оно получает собственный номер.

Первый полный прогон гейта со слепым набором на 3cbd432 вернул ok: false. Живой корпус
пройден 6 из 6 при нуле правок, стабильность и smoke зелёные, слепой набор — 3 из 8,
с одним invalid success и проваленным кейсом безопасности. Разрыв между 6 из 6 и 3 из 8
и есть результат методики: оценка на корпусе, который автор писал сам, систематически
завышена. Invalid success — нарушение центрального контракта, поэтому тег v0.3.0 и
GitHub Release не создаются.

Свидетельство прогона опубликовано целиком в docs/evidence/release-gate-3cbd432.json;
слепой набор представлен именем, SHA-256, числом кейсов и агрегатами, без пути и
покейсных идентификаторов. holdout-v2 израсходован: набор одноразовый.

Гейт починен в своей диагностике: условие invalid_success_rate == 0.0 стояло внутри
проверки формы отчёта, и промах по качеству отчитывался как испорченный отчёт.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant