process: mutants run only in the nightly full registry; speed rules for ship/show (#709)

Owner's decision 2026-09-29: mutants check the tests, not the product.
During development they are not run at all — not locally, not in CI,
not by the reviewer. The whole registry is the nightly run
(mutation-gate.yml, #513); a survivor files an issue (#472). The #693
post-mortem: 36 of 57 minutes of a one-line fix went to optional work.

- process-track.mjs: `mutants` is always false (no track, no label).
- classify-changes.mjs: Validate requests no diff mutants on any event;
  the `mutants` input stays so old `-f mutants=…` calls do not fail.
- _process.yml: the default for the gate and the merge is false.
- pre-push-gate.mjs: the manual run no longer runs mutants.
- Canon: PROCESS §2.7 (a mutant is written, not run; `--check` keeps the
  anchors), §5.1 (`ci:mutants` retired), §8 (ship/show: nothing beyond
  gate:small and the spec — one proof per item, no `--smokes` on ship,
  a stray flake is an issue, not an investigation), §10.4; AUTHOR,
  REVIEWER, AGENTS, TESTING.
- Registry: four mutants of the old request rules replaced by
  dev-mutants-requested-again and track-pays-for-mutants-again.

Issue: #709
User-Visible: no
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
This commit is contained in:
Claude
2026-09-29 23:04:41 +03:00
parent 18c9f8e77c
commit a8321e32cc
15 changed files with 143 additions and 152 deletions
+8 -5
View File
@@ -21,12 +21,11 @@ on:
description: 'Полный набор: смоки, golden, performance_smoke (без мутантов — #601)'
type: boolean
default: true
# Мутанты по диффу бегут только по явному запросу (#510, #601):
# ревью-конвейер и слияние кандидата запускают `-f full=false
# -f mutants=true` на материале. `full=true`, трейлер `Release:` и ночь
# их не включают — ночью идёт полный реестр (mutation-gate.yml).
# #709: мутанты в разработке не гоняются — вход оставлен, чтобы старые
# вызовы `-f mutants=…` не падали, но job мутантов по диффу он больше не
# включает (classify-changes.mjs). Весь реестр — ночью (mutation-gate.yml).
mutants:
description: 'Мутанты по диффу на этом SHA (кандидат ревью или слияния)'
description: 'Не действует с #709: мутанты — только ночной полный прогон'
type: boolean
default: false
@@ -650,6 +649,10 @@ jobs:
# слияние кандидата запускают Validate по кнопке с `mutants=true` на
# материале; PR берёт её сам. За 08–09.09 на промежуточных пушах она стоила
# 48 из 56 часов job-минут и в основном отменялась следующим пушем. С #601
# С #709 job не запрашивает никто: мутанты в разработке не гоняются, весь
# реестр проверяет ночь (mutation-gate.yml). Job оставлен до отдельной уборки
# вместе с контрактом имён job (#622); `mutants_requested` всегда false.
# Ниже — история до #709.
# её не запрашивают ни `full=true`, ни кандидат беты (`Release:`): к бете
# каждая задача уже прогнана мутантами на ревью и на слитом кандидате, а
# ночь покрыта полным реестром. Когда мутанты запрошены, job бежит даже при