test(skills): гард проверенного диапазона версий формата

Допустимый список версий был независимым литералом в десяти файлах, и сверять его
было не с чем. Именно так волна 2.21 прошла по четырём валидаторам и молча обошла
пятый — form-validate остался на 2.17–2.20 (issue #63).

check-format-versions.mjs держит три инварианта: границы диапазона одинаковы во всех
навыках и на обоих портах; дефолт -FormatVersion у *-init лежит внутри диапазона;
верхняя граница совпадает с последней ЗАМЕРЕННОЙ ступенью таблицы §7.1 из
1c-configuration-spec.md — так расхождение спеки и кода падает здесь, а не на чужой
выгрузке. Отдельно ловится возврат ValidateSet/choices в *-init.

Get-FormatRank разъехался бы по восьми новым копиям — они внесены в реестр семьи
format_rank в check-inline-drift.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-13 14:21:07 +03:00
co-authored by Claude Opus 5
parent beaa75c742
commit 06f21ab3d1
3 changed files with 215 additions and 4 deletions
+4 -4
View File
@@ -102,10 +102,10 @@ const FAMILIES = [
name: 'format_rank', py: 'format_rank', ps1: 'Get-FormatRank',
variants: [
{ id: 'base', authority: 'meta-compile',
consumers: ['cfe-borrow', 'cfe-init', 'form-add', 'form-compile', 'meta-validate',
'mxl-compile', 'role-compile', 'subsystem-compile', 'subsystem-edit', 'template-add',
'xdto-compile'],
consumersPy: ['epf-init', 'erf-init'] },
consumers: ['cf-init', 'cf-validate', 'cfe-borrow', 'cfe-init', 'cfe-validate', 'epf-build',
'epf-init', 'epf-validate', 'erf-init', 'form-add', 'form-compile', 'form-validate',
'meta-validate', 'mxl-compile', 'role-compile', 'subsystem-compile', 'subsystem-edit',
'template-add', 'xdto-compile'] },
],
},