mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 11:18:48 +00:00
Сверка PROCESS.md, ролевых выжимок, AGENTS.md, TESTING.md, CONTRIBUTING.md и скриптов по 26 найденным расхождениям (D1–D26): трейлеры по классам изменений, gate:small как единственный источник состава, пороги ревью, путь реестра мутантов, golden по ci:golden, порядок чтения промпта ревью. - scripts/change-classes.mjs: классы A/B/C/D — один модуль для process-gate и проверки трейлеров. - commit-msg: коммит только с файлами класса C (документация) трейлеров не требует; указанные трейлеры по-прежнему проверяются. - Маршрут автора без docs/STATUS.md: 5345 → 4703 слова. - Промпт ревью читает SCOPE → AGENTS → REVIEWER, как ROUTES.reviewer. Issue: #701 User-Visible: no Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018qZfe7YS4rqEMKoVeS3GKd
44 lines
1.9 KiB
JavaScript
44 lines
1.9 KiB
JavaScript
// Классы изменений, PROCESS.md §1 — одна таблица на все гейты (#701).
|
||
//
|
||
// Вынесена из process-gate.mjs: её читает и `validate-commit-provenance.mjs`
|
||
// (хук commit-msg), которому process-gate сам импортирует — общий модуль
|
||
// снимает круговую зависимость.
|
||
// Порядок важен: D проверяется первым, иначе собранный бандл попадёт в A,
|
||
// а demo/golden/baselines — в B.
|
||
const CLASS_D = [
|
||
/^dist\//,
|
||
/^custom_components\/houseplan\/frontend\//,
|
||
/^demo\/srv\/assets\/houseplan-card\.js$/,
|
||
/^demo\/golden\/baselines\//,
|
||
];
|
||
const CLASS_A = [
|
||
/^src\//,
|
||
/^custom_components\/houseplan\/.*\.py$/,
|
||
/^hacs\.json$/,
|
||
/^custom_components\/.*\/manifest\.json$/,
|
||
/^custom_components\/.*\/translations\//,
|
||
];
|
||
const CLASS_B = [
|
||
/^test\//, /^tests_backend\//, /^demo\//, /^scripts\//,
|
||
/^\.github\//, /^\.githooks\//, /^rollup\.config\.mjs$/, /^tsconfig.*\.json$/,
|
||
/^package(-lock)?\.json$/, /^pytest\.ini$/, /^\.gitignore$/, /^\.gitattributes$/,
|
||
// Пины toolchain — производные от validate.yml (#496), конфиг сборки.
|
||
/^\.nvmrc$/, /^\.python-version$/,
|
||
];
|
||
const CLASS_C = [
|
||
/^docs\//, /^README/, /^CHANGELOG/, /^AGENTS\.md$/, /^LICENSE$/,
|
||
/^CONTRIBUTING\.md$/, /^PROCESS.*\.md$/, /^(CODE|SPEC)-REVIEW-.*\.md$/,
|
||
// #682: архив выпущенного — документы ревью и ТЗ прошлых линий. Только
|
||
// Markdown; исполняемого там нет (#678 вынес всё прочее из дерева).
|
||
/^legacy\//,
|
||
];
|
||
|
||
|
||
export function classify(path) {
|
||
if (CLASS_D.some((r) => r.test(path))) return 'D';
|
||
if (CLASS_A.some((r) => r.test(path))) return 'A';
|
||
if (CLASS_B.some((r) => r.test(path))) return 'B';
|
||
if (CLASS_C.some((r) => r.test(path))) return 'C';
|
||
return '?';
|
||
}
|