diff --git a/docs/observer/STATUS.md b/docs/observer/STATUS.md index 7e43c309..0ae470d9 100644 --- a/docs/observer/STATUS.md +++ b/docs/observer/STATUS.md @@ -1,6 +1,6 @@ # Brain Status (auto-generated) -Last updated: 2026-05-28T09:10:54.147Z +Last updated: 2026-05-28T09:12:46.162Z | Контролёр | Состояние | Детали | |---|---|---| diff --git a/tools/router-classifier.test.mjs b/tools/router-classifier.test.mjs index a86e97d3..49a945c6 100644 --- a/tools/router-classifier.test.mjs +++ b/tools/router-classifier.test.mjs @@ -557,4 +557,26 @@ describe('PAMYATKA extensions (Phase 3 brain-retro #9)', () => { expect(system).toMatch(/coder-agent|#19|Task tool|субагент/); expect(system).toMatch(/однотипн|механич|N одинаковых|перенеси все/); }); + + it('PAMYATKA header reflects 8 patterns total', () => { + const { system } = buildClassifierPromptStructured('тест', registry, { enrichment: true }); + expect(system).toMatch(/=== ПАМЯТКА \(8 паттернов\) ===/); + }); + + it('all 8 patterns present in correct order', () => { + const { system } = buildClassifierPromptStructured('тест', registry, { enrichment: true }); + const indices = [1, 2, 3, 4, 5, 6, 7, 8].map(n => system.indexOf(`ПАТТЕРН ${n}`)); + indices.forEach((idx, i) => expect(idx, `ПАТТЕРН ${i + 1} missing`).toBeGreaterThan(-1)); + for (let i = 1; i < indices.length; i++) { + expect(indices[i]).toBeGreaterThan(indices[i - 1]); + } + }); + + it('original 4 patterns (brainstorming, discovery, plans, debugging) preserved verbatim', () => { + const { system } = buildClassifierPromptStructured('тест', registry, { enrichment: true }); + expect(system).toContain('минимум 3 alternative_considered'); + expect(system).toContain('discovery-interview'); + expect(system).toMatch(/single-step.*multi-step|multi-step.*single-step/); + expect(system).toContain('system/expected/actual'); + }); });