# Гештальт и уровень 4 — полное описание (BEAST)

Полная теоретическая и проектная документация. Исполняемая логика и структуры данных — в `gestalt.js`; этот файл — справочник для чтения и правок без разбора только исходников.

---

## 1. Теоретическая суть

В психологии «гештальт» — целостный образ ситуации, который стремится к завершению (замыканию). В BEAST под гештальтом понимается устойчивая запись о **нерешённой задаче**: связка «образ цели ↔ попытки ↔ степень продвижения». Это не копия эпизода памяти и не одно правило ЭП: это **доминанта**, которая может жить дольше одного цикла осмысления и направляет мета-уровень (ур.4), пока задача не снята с повестки или не обобщена в готовый опыт.

**Зачем отдельная сущность**

- ЭП фиксирует прошедшие события; гештальт фиксирует **открытую** проблему и накопленные гипотезы решения (ID автоматизмов, статус).
- Ур.3 решает «здесь и сейчас»; ур.4 умеет **держать** задачу в фоне, сопоставлять её с успехом в других циклах и сужать неопределённость.

Центральное явление — **инсайт** (раздел 2 ниже).

---

## 2. Инсайты

### 2.1 Что считать инсайтом в BEAST

Инсайт — это **событие** (не только смена числа в `status`), в котором система связывает **образ цели гештальта** с **конкретным кандидатом решения** так, что задача становится осмысливаемой в терминах действия — вплоть до проверки в ЭП.

### 2.2 Виды инсайта

1. **Локальный** — внутри цикла-хозяина.
2. **Кросс-цикловой / аналогический** — сигнатура успеха из другого цикла резонирует с гештальтом (см. буфер резонанса в `gestalt.js`).
3. **На обратной связи** — после закрытия кадра ЭП (`Gestalt_onEpisodeFeedbackClosed`).

### 2.3 Фазы (α–ε)

См. комментарии в `gestalt.js` и поля `lastInsightKind`, `insightChainCount`.

---

## 3. Модель данных

| Поле | Смысл |
|------|--------|
| `id` | ID записи |
| `problemTreeId` | Узел дерева проблем / ветка (в коде часто совпадает с `perceptionNodeId`) |
| `situationId` | Ситуация инфокартины |
| `goalImageId` | Образ цели (уникальность среди открытых — см. код) |
| `automatismIds` | Опробованные автоматизмы |
| `status` | 0…4 |
| `lastInsightPuls`, `lastInsightKind`, `insightChainCount` | Учёт инсайтов |
| `analogyPool` | Хвост предложений аналогии (ограниченный размер) |

---

## 4. Статусы

- **0** — заведено, нет устойчивого решения.
- **1** — начато (кандидаты, в т.ч. после резонанса).
- **2** — частичное (позитивный фидбек ЭП, уточнены ветка/ситуация).
- **3** — успешное закрытие (сильный позитивный эффект в реализации — порог настраивается в коде).
- **4** — архив / неактуально (зарезервировано).

---

## 5. Реализованные структуры (код)

### 5.1 `GestaltResonanceBuffer`

FIFO-очередь сигнатур успешных/закрытых эпизодов (после `closeLastFrame`). Каждая запись: `id`, `atPuls`, `sourceCycleId`, `goalImageId`, `problemTreeId`, `situationId`, `perceptionNodeId`, `automatismId`, `actionImageId`, `effect`, `kind`. Верхняя граница длины — константа в `gestalt.js`.

### 5.2 Сборка (analogyPool)

У открытого гештальта накапливаются записи о совпадениях с буфером (оценка `score`); детальная «гештальт-сборка» и имитация — зона расширения (TODO в коде помечены явно).

---

## 6. Точки интеграции

| Место | Роль |
|-------|------|
| `conscience_level_3_runFromChannel` | `Gestalt_prepareContextForCycle` — контекст для ур.3 до пайплайна |
| `conscience_level_4_runFromChannel` | `Gestalt_onConsciousnessTick` — резонанс, ведущий гештальт |
| `episodic_memory.closeLastFrame` | `Gestalt_onEpisodeFeedbackClosed` — фидбек, закрытие, пополнение буфера |

---

## 7. Согласованность с уровнями осмысления

- Ур.1–3 **не** переписываются: добавляются только вызовы подготовки контекста и логи.
- Гештальт **не** запускает мотор сам по себе в этой итерации: только статусы, буфер, контекст для последующих тиков.

---

## 8. Интерфейс оператора (`index.html`, `informing.js`)

- В строке заголовка **«Информационная картина:»** после индикатора «ситуации» выводится бейдж **`гешт: N`** (`#infoGestaltsIndicator`), стиль как у «цели:», «авто:» и т.д.
- **`Info_updateView`** обновляет число `N` и подсказку (число записей и длина буфера резонанса).
- По щелчку вызывается **`Info_showGestaltsList`** — список ID гештальтов; по ID — **`Info_showGestaltDetail`** (связи на образ цели, ветку, ситуацию, автоматизмы, JSON `analogyPool`).

---

*При изменении контракта обновляйте `beast/about_global_variables.md` и при необходимости `PROJECT_STATE_FOR_NEW_CHAT.md` и `beast/_9_Conscience/about_conscience.md`.*

**См. также:** констатация связки ур. 2 и ур. 4 с адаптивностью и смежными контурами — `about_adaptivity_levels_2_4.md`.
