import { describe, it, expect } from 'vitest'; import { decide } from './enforce-self-debrief-detector.mjs'; describe('enforce-self-debrief-detector decide()', () => { it('allows neutral controller text', () => { expect(decide({ controllerText: 'Implementing feature X.', transcript: [] }).block).toBe(false); }); it('blocks retrospect-style text without self-retrospect skill call', () => { const r = decide({ controllerText: 'Я заметил паттерн в своих ответах — generalisable lesson: ...', transcript: [], }); expect(r.block).toBe(true); expect(r.reason).toMatch(/self-debrief hard-block/); }); it('allows retrospect-style text when self-retrospect was invoked recently', () => { const r = decide({ controllerText: 'я обобщаю опыт', transcript: [ { type: 'tool_use', name: 'Skill', input: { skill: 'self-retrospect' }, turn: 1 }, ], }); expect(r.block).toBe(false); }); });