docs: the local pre-push gate no longer calls the full mutation registry a pre-release gate

Code review r1 (M1): scripts/pre-push-gate.mjs — in its comment and in
the text every developer sees before a push — still named the full
mutation registry a pre-release gate; the same phrase lived in the
header of test/mutation-gate.test.mjs. Both now point at the nightly
schedule (#513); golden/smokes/HA harness are named as the heavy
Validate set on the candidate.

Issue: #513
User-Visible: no
This commit is contained in:
Codex
2026-09-09 21:00:54 +03:00
parent f5fb7a0f8a
commit 0b9acd6382
4 changed files with 12 additions and 10 deletions
+3 -2
View File
@@ -1055,8 +1055,9 @@ node scripts/pre-push-gate.mjs --max-smokes=3 --max-mutants=1
- **громко перечисляет, чего не проверял** — молчаливый пропуск дважды стоил
проекту дня (#171, #207), а «Verified» без названной команды и её результата
доказательством не является;
- **не претендует на полноту.** Golden, полная матрица смоков, HA-харнесс и весь
мутационный реестр — предрелизный гейт, а не этот набор.
- **не претендует на полноту.** Golden, полная матрица смоков, HA-харнесс —
heavy-набор Validate на кандидате; весь мутационный реестр — ночное
расписание (#513), а не этот набор.
Бандл не собирается: `bundle-sync.mjs` раскладывает закоммиченный `dist`, а
свежесть проверяет сам продукт — `assertFreshDemoBundle` внутри каждого смока
+2 -2
View File
@@ -8489,7 +8489,7 @@ function runCleanGuards(mutants) {
/**
* Мутанты, чьи патч-файлы задеты диффом (#332). Дифф-режим — для локальной
* проверки и ревью-циклов; полный набор остаётся предрелизным контрактом,
* проверки и ревью-циклов; полный набор идёт ночным расписанием (#513),
* поэтому пустая выборка — честный успех с явным сообщением, а не ошибка.
*/
/**
@@ -8786,7 +8786,7 @@ async function main(argv) {
+ `мутантов затронуто ${selected.length} из ${before} (по файлам ${picked.byFiles.length}, по определениям ${picked.byRegistry.length})`);
if (!selected.length) {
console.log('дифф не задевает ни одного patch.file — гонять нечего; '
+ 'полный реестр остаётся предрелизным контрактом');
+ 'полный реестр идёт ночным расписанием (#513)');
return 0;
}
}
+6 -5
View File
@@ -19,9 +19,10 @@
* 2. **Он громко перечисляет, чего НЕ проверял.** Молчаливый пропуск дважды
* стоил проекту дня (#171, #207), а «Verified» без названной команды и её
* результата доказательством не является.
* 3. **Он не претендует на полноту.** Golden, полная матрица смоков,
* HA-харнесс и весь мутационный реестр — предрелизный гейт; здесь только то,
* что укладывается в минуты и ловит 90% возвратов.
* 3. **Он не претендует на полноту.** Golden, полная матрица смоков и
* HA-харнесс — heavy-набор Validate на кандидате; весь мутационный реестр —
* ночное расписание (#513); здесь только то, что укладывается в минуты и
* ловит 90% возвратов.
*
* Бандл не собирается: `bundle-sync.mjs` раскладывает закоммиченный `dist`, а
* свежесть проверяет сам продукт — `assertFreshDemoBundle` внутри каждого смока
@@ -179,8 +180,8 @@ if (skipped.length) {
console.log('\nЧего этот набор НЕ проверял:');
for (const item of skipped) console.log(` · ${item}`);
}
console.log(' · golden, полная матрица смоков, HA-харнесс, весь мутационный реестр —'
+ ' предрелизный гейт, не этот набор');
console.log(' · golden, полная матрица смоков, HA-харнесс — heavy-набор Validate на кандидате;'
+ ' весь мутационный реестр — ночное расписание (#513), не этот набор');
if (failed.length) {
console.log(`\nПровалов: ${failed.length}. Пуш до починки — это лишний раунд ревью.`);
for (const step of failed) console.log(` ${step.command}`);
+1 -1
View File
@@ -14,7 +14,7 @@ import {
const repoRoot = fileURLToPath(new URL('..', import.meta.url));
// Дешёвая половина гейта, идёт с обычными юнитами на каждом прогоне. Полный
// прогон с пересборкой бандла на мутанта — предрелизный, он в
// прогон с пересборкой бандла на мутанта — ночное расписание (#513), он в
// .github/workflows/mutation-gate.yml.
//
// Реестр, отставший от кода, хуже отсутствующего: он выглядит защитой. Поэтому