From 0885d88546160c2bec5d3e47ebe5bb2cff2e6ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 9 Jun 2026 10:22:36 +0300 Subject: [PATCH] feat(verify-gate): register enforce-verify-gate in manifest (G1 task7) --- tools/floor-manifest-check.mjs | 1 + tools/floor-manifest-check.test.mjs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/tools/floor-manifest-check.mjs b/tools/floor-manifest-check.mjs index fca04bd1..79ca8597 100644 --- a/tools/floor-manifest-check.mjs +++ b/tools/floor-manifest-check.mjs @@ -39,6 +39,7 @@ const DEFAULT_REQUIRED_HOOKS = [ 'enforce-snapshot.mjs', // М6 снимок: точка отката перед разрушительным 'enforce-floor-escape-consume.mjs', // М6 escape владельца: единственная законная дверь 'enforce-skill-journaler.mjs', // М1 журналер навыков: неподделываемый канал K2 + 'enforce-verify-gate.mjs', // G1 М5-family: подписанный verify-receipt перед commit/push ]; /** Собрать все command-строки хуков из settings (битые/пустые секции игнорируются, не бросает). */ diff --git a/tools/floor-manifest-check.test.mjs b/tools/floor-manifest-check.test.mjs index 4c9459c5..b5953d98 100644 --- a/tools/floor-manifest-check.test.mjs +++ b/tools/floor-manifest-check.test.mjs @@ -80,6 +80,7 @@ describe('floor-manifest-check — F-3: DEFAULT защитный набор ши { type: 'command', command: 'node tools/enforce-snapshot.mjs' }, { type: 'command', command: 'node tools/enforce-floor-escape-consume.mjs' }, { type: 'command', command: 'node tools/enforce-skill-journaler.mjs' }, + { type: 'command', command: 'node tools/enforce-verify-gate.mjs' }, ] }] } }; const r = checkManifest({ settings: full }); // без requiredHooks → DEFAULT expect(r.ok).toBe(true); @@ -107,3 +108,9 @@ describe('SE-B (М7 Фаза 6): DEFAULT включает М4 (judge-gate) + М6 expect(r.missing).toContain('enforce-judge-gate.mjs'); }); }); + +describe('G1: DEFAULT_REQUIRED_HOOKS включает enforce-verify-gate (М5-family verify)', () => { + it('DEFAULT_REQUIRED_HOOKS содержит enforce-verify-gate.mjs', () => { + expect(manifestInternals.DEFAULT_REQUIRED_HOOKS).toContain('enforce-verify-gate.mjs'); + }); +});