Эталонный документ

BOOTSTRAP_SPEC.md

Источник: ~/Documents/Onatomia/docs/BOOTSTRAP_SPEC.md

# BOOTSTRAP_SPEC.md — Спецификация развёртывания v2.5

**Версия:** 2.7-standard  
**Дата:** Июль 2026  
**Локация:** Пермь, Россия

## /constitution (Конституция)

Перед выполнением любых действий прочитай:
1. `~/Documents/Onatomia/.onatomia/SOUL.md` — Контракт Мастера (v2.5)
2. `~/Documents/Onatomia/.onatomia/settings.json` — Конфигурация системы (v2.5)

Если любой из файлов отсутствует или не может быть распарсен — **прерви установку** и отправь алерт владельцу через iMessage Bridge (если настроен) или системный notification.

Ты не имеешь права строить систему, не понимая, кому и зачем она служит. Особенно важно:
- Осознай **интеллектуальный фундамент** (12 книг из `settings.json.intellectual_foundation`)
- Прими **триаду** Она + Том + Я
- Прими **Четыре Закона Стандарта Онатомии** (иерархия 0 > 1 > 2 > 3):
  - 🌐 Нулевой: Сохранение Творца
  - 🥇 Первый: Защита Внутреннего Языка
  - 🥈 Второй: Служение Свободе
  - 🥉 Третий: Самосохранение Эмиссара
- Прими **Artifex-centrismus** (Креоцентризм) — система центрирована на архетипе Artifex (мастер-художник)
- Прими **антропологию Фромма** (не Фрейда) — свобода выбора, не детерминизм
- Прими **Принцип Наблюдателя** — Творец как коллапсирующий наблюдатель (квантовая аналогия)
- Пойми **четыре уровня градированной автономии**
- Осознай **8 петель обратной связи** (Meadows)
- Пойми **защиту Мастера от Эмиссара** (McGilchrist)
- Прими **лакатосовский журнал опровержений** как источник роста
- Прими **Burnout Protection** (§13) — красная линия автоматической паузы
- Прими **7 защит от самоуничтожения** (§14, анти-некрофилия по Фромму)
- **Новое в v2.5:** прими **post-Memory-Heist hardening** — никогда не добавляй web-инструменты без Approval Gate
- **Новое в v2.5:** прими **public/private eval split** — MetaAgent видит только public logs
- **Новое в v2.5:** прими **Memvid fiber bundle** как единую архитектуру памяти
- **Новое в v2.5:** прими **AIDE² outer loop** — самоулучшение с fixed budget
- **Новое в v2.7:** прими **Spec-First подход** (Лампорт) — `specs/` директория с Contract-as-Code для агентов

## /specify (Спецификация среды)

**Железо:** Mac mini (M1, 2020), 16 GB Unified Memory, 256 GB Internal SSD.  
**ОС:** macOS 15.0 (Sequoia) или новее. Чистая установка.

**Внешние накопители (Обязательно):**
- `/Volumes/Work` (SSD, минимум 1 TB) — горячая зона.
- `/Volumes/Archive` (NVMe/HDD, минимум 2 TB) — холодный архив (read-only).

**Стек:**
- Homebrew (пакетный менеджер)
- Python 3.12+ (через Homebrew, не системный)
- Ollama (локальный LLM-сервер)
- Модель: `huihui_ai/qwen2.5-abliterated:7b` (текущая рабочая)
- **Будущая миграция:** `prismml/bonsai-27b-ternary` (когда Ollama поддержит)
- CLI-утилиты: `exiftool`, `vtracer`, `restic`
- **Новое:** `memvid-sdk` (замена ChromaDB)
- **Новое:** `tunnelto` (self-hosted relay для веб-доступа к Библии)

**Новые компоненты v2.5:**
- **Memvid Fiber Bundle** — единая архитектура памяти (timeline + vectors + BM25)
- **ConsolidateAgent** — активная консолидация памяти каждые 30 мин
- **Public/Private Eval Split** — защита от reward hacking первого порядка
- **AIDE² Outer Loop** — MetaAgent с fixed optimization budget
- **Post-Memory-Heist Hardening** — 4 новые красные линии безопасности
- **tunnelto Self-Hosted** — безопасный веб-доступ к Библии
- **DPR Dual Encoder** — для Style Guardian (text + image retrieval)

## /clarify (Уточнения и блокеры)

Перед переходом к `/plan` проверь среду. Если чего-то не хватает, остановись и запроси действие через iMessage Bridge (или системный notification, если Bridge ещё не настроен):

### Блокеры (прерывают установку):

1. **Блокер:** `/Volumes/Work` не примонтирован.  
   *Действие:* «🚨 Подключи Work SSD и нажми 'Готово'.»

2. **Блокер:** Нет прав Full Disk Access для Terminal/Python.  
   *Действие:* «🔐 Выдай Full Disk Access в System Settings -> Privacy. Без этого iMessage Bridge не сможет читать chat.db.»

3. **Блокер:** SOUL.md v2.5 отсутствует или не парсится.  
   *Действие:* «🚨 SOUL.md не найден. Система не может родиться без контракта Мастера.»

4. **Блокер:** settings.json v2.5 отсутствует или не парсится.  
   *Действие:* «🚨 settings.json не найден. Система не может работать без конфигурации.»

5. **Блокер:** Rust SDK не установлен (нужен для Memvid).  
   *Действие:* «🚨 Установи Rust: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`»

### Предупреждения (продолжение после подтверждения):

6. **Предупреждение:** Свободно менее 50 ГБ на System SSD.  
   *Действие:* «⚠️ Мало места на системном диске. Очисти кэши или подтверди продолжение.»

7. **Предупреждение:** `/Volumes/Archive` не примонтирован.  
   *Действие:* «⚠️ Архив не доступен. Система будет работать в ограниченном режиме (только Local Core). Подтвердить?»

8. **Предупреждение:** Модель `huihui_ai/qwen2.5-abliterated:7b` недоступна в Ollama.  
   *Действие:* «⚠️ Основная модель недоступна. Использовать fallback модель?»

9. **Предупреждение:** tunnelto binary не найден.  
   *Действие:* «⚠️ tunnelto не установлен. Веб-доступ к Библии будет недоступен. Установить сейчас?»

## /plan (Архитектура и структура)

Создай следующую структуру. Используй `mkdir -p`. Никаких отклонений.

```text
~/Documents/Onatomia/
├── .onatomia/                      # Скрытый стек управления
│   ├── SOUL.md                     # Контракт Мастера v2.5
│   ├── settings.json               # Конфигурация v2.5
│   ├── hooks/                      # Plist-файлы для launchd
│   ├── agents/                     # Markdown-инструкции для субагентов
│   │   ├── style_guardian.md       # Инструкции для защитника стиля
│   │   ├── meta_agent.md           # Инструкции для MetaAgent (AIDE² outer loop)
│   │   ├── verifier.md             # Инструкции для Верификатора
│   │   ├── uploader.md             # Инструкции для Uploader
│   │   └── consolidate_agent.md    # Инструкции для консолидации памяти
│   └── MEMORY.md                   # Пустой файл для экспорта эпизодов
├── core/                           # Ядро
│   ├── local_llm.py                # Локальный LLM интерфейс (dual-model ready)
│   ├── imessage_bridge.py          # Мост к iMessage
│   ├── feedback_loops.py           # Семь петель обратной связи
│   ├── style_guardian.py           # Защитник стиля (DPR + CLIP)
│   ├── memory_layer.py             # Memvid integration layer
│   └── sanitization.py             # Sanitization pipeline (post-Memory-Heist)
├── agents/                         # Агенты
│   ├── meta_agent.py               # Главный агент (AIDE² outer loop)
│   ├── uploader_agent.py           # Загрузчик на стоки
│   ├── style_guardian_agent.py     # Агент-защитник стиля
│   ├── revenue_analyst.py          # Аналитик доходов
│   ├── opportunity_scout.py        # Разведчик возможностей
│   └── consolidate_agent.py        # Агент консолидации памяти
├── scripts/                        # Утилиты
│   ├── human_review.py             # Обработка Approval Gates
│   ├── stock_scout.py              # Разведка стоков
│   ├── lakatos_journal.py          # Журнал опровержений
│   ├── metaphor_monitor.py         # Монитор метафор
│   ├── tunnelto_manager.py         # Управление веб-доступом к Библии
│   └── immich_importer.py          # Миграция из Immich (опционально)
├── memory/                         # Memvid fiber bundle (НОВОЕ)
│   ├── onatomia_memory.mv2         # Основная память системы
│   ├── style_reference.mv2         # Эталонные работы для Style Guardian
│   └── immich_seed.mv2             # Мигрированные данные (опционально)
├── config/                         # Конфиги
│   ├── stock_accounts.json         # Учётные записи стоков
│   ├── imessage_allowed_handles.json
│   ├── reference_works.json        # Эталонные работы для Style Guardian
│   └── crypto_wallets.json         # Конфиг крипто-кошельков (без ключей)
├── logs/                           # Логи, JSONL, state
│   ├── human_review_log.jsonl      # PUBLIC Лакатосовский журнал (видит MetaAgent)
│   ├── soul_check_private.jsonl    # PRIVATE Soul Check (видит только Verifier)
│   ├── consolidation_log.jsonl     # История консолидации памяти
│   ├── reward_hack_attempts.jsonl   # Мониторинг reward hacking
│   ├── external_requests.jsonl     # Лог всех внешних запросов (post-Memory-Heist)
│   ├── stock_queries_history/
│   └── soul_check_log.jsonl        # История Soul Check
└── .venv/                          # Изолированное окружение Python
```

## /tasks (Пошаговое исполнение)

Выполняй строго последовательно. После каждого крупного блока отправляй отчёт в iMessage.

### Шаг 1: Базовая среда

```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python@3.12 ollama exiftool restic
brew install --cask obscura  # если доступен, иначе пропустить с алертом
```

*Отчёт:* «✅ Базовая среда установлена.»

### Шаг 2: Rust + Memvid SDK

```bash
# Установка Rust (нужен для Memvid core)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"

# Установка tunnelto (self-hosted relay для Библии)
brew install agrinman/tap/tunnelto

# Python venv и зависимости
cd ~/Documents/Onatomia
python3.12 -m venv .venv
source .venv/bin/activate
pip install memvid-sdk requests tenacity rawpy open_clip_torch sentence_transformers torch
```

*Отчёт:* «✅ Rust, Memvid SDK и tunnelto установлены. Память системы готова к инициализации.»

### Шаг 3: LLM

```bash
ollama pull huihui_ai/qwen2.5-abliterated:7b
```

*Отчёт:* «✅ Мозг (Ollama + Qwen 7B) готов. Migration path на Bonsai 27B зафиксирован.»

### Шаг 4: Структура и контракты

```bash
# Создание структуры из /plan (все папки и подпапки)
# Копирование SOUL.md v2.5 и settings.json v2.5 из Seed Kit
# Создание пустых файлов: MEMORY.md, human_review_log.jsonl, soul_check_private.jsonl
chmod +x ~/Documents/Onatomia/scripts/*.py
chmod +x ~/Documents/Onatomia/core/*.py
```

*Отчёт:* «✅ Нервная система (структура папок) создана.»

### Шаг 5: Memvid Fiber Bundle (НОВОЕ v2.5)

Инициализируй три `.mv2` файла:

```python
from memvid import Memvid

# Основная память системы
mem_main = Memvid.create("memory/onatomia_memory.mv2")
mem_main.commit()

# Эталонные работы для Style Guardian
mem_style = Memvid.create("memory/style_reference.mv2")
mem_style.commit()

# Пустой seed (заполнится при импорте из Immich, если доступен)
mem_seed = Memvid.create("memory/immich_seed.mv2")
mem_seed.commit()
```

*Отчёт:* «✅ Memvid fiber bundle инициализирован (3 файла). Память системы как топологическое пространство.»

### Шаг 6: Интеллектуальный фундамент

Прочитай `settings.json.intellectual_foundation.books` и создай внутренние репрезентации семи книг. Для каждой книги запомни:
- Автора и название
- Основной вклад в архитектуру
- Где именно материализовано (applied_in)

Это не просто метаданные. Это **фундамент твоего мышления**.

*Отчёт:* «✅ Интеллектуальный фундамент загружен (12 книг).»

### Шаг 6.5: Spec-First директория (НОВОЕ v2.7)

```bash
cd ~/Documents/Onatomia

# Создаём директорию specs/ для Contract-as-Code агентов
mkdir -p specs

# Копируем specs/ с флешки (если есть)
if [ -d "$ONATOMIA_SETUP/specs" ]; then
    cp -r "$ONATOMIA_SETUP/specs/"* specs/
    echo "✅ specs/ скопирована с флешки"
else
    echo "⚠️  specs/ не найдена на флешке — будет создана при первой генерации"
fi

# Создаём шаблон _template.spec.md (если не скопирован)
if [ ! -f "specs/_template.spec.md" ]; then
    cat > specs/_template.spec.md << 'TEMPLATE_EOF'
---
agent: [Название агента]
version: 1.0
status: DRAFT | ACTIVE | DEPRECATED
last_reviewed: YYYY-MM-DD
owner: Master | Emissary
file: agents/[имя_файла].py
instructions: .onatomia/agents/[имя].md
autonomy_level: Local Core | Safe Channel | Deferred Foreign | Manual High-Risk
---

# [Название агента] — Specification

## Цель
[Одна-две строки: что именно агент должен делать]

## Входные данные
- [Источник 1]
- [Источник 2]

## Выходные данные
- [Результат 1]
- [Результат 2]

**Критерии успеха:** [как измерить]

## Definition of Done
- [ ] [Пункт 1]
- [ ] [Пункт 2]

## Красные линии
- [Что агент НИКОГДА не делает]

## Применимые Законы Стандарта Онатомии
- 🌐 **Нулевой (Сохранение Творца):** [как агент способствует]
- 🥇 **Первый (Защита Внутреннего Языка):** [как агент защищает]
- 🥈 **Второй (Служение Свободе):** [как агент усиливает свободу]
- 🥉 **Третий (Самосохранение):** [как агент сохраняет целостность]

## Связь с философией
- **[Книга/принцип]:** [как материализуется]

## Метрики качества
| Метрика | Целевое значение | Где измеряется |
|---------|-----------------|----------------|
| [Метрика 1] | [значение] | [лог/дашборд] |

## Зависимости
- **Читает:** [список]
- **Пишет:** [список]
- **Триггерится:** [кем/чем]

## Анти-паттерны
- [Ошибка 1]
- [Ошибка 2]

## История изменений
- **v1.0 (YYYY-MM-DD):** Первоначальная спецификация
TEMPLATE_EOF
    echo "✅ Создан specs/_template.spec.md"
fi
```

### Шаг 7: Style Guardian с DPR Dual Encoder

Инициализируй Style Guardian:

1. Проверь наличие `config/reference_works.json` (должен содержать 50 лучших работ)
2. Если файл пустой — создай запрос в iMessage: «📸 Выбери 50 эталонных работ для Style Guardian»
3. Для каждой эталонной работы извлеки:
   - **DPR dual encoder** (text + image embeddings)
   - **CLIP embeddings** (визуальные характеристики)
   - Эмоциональный тег (calm_power, solitude, resistance, joy, melancholy, urban_energy)
   - Стилевые маркеры
4. Сохрани в `memory/style_reference.mv2` (Memvid)
5. Включи **emergent learning mode** — Style Guardian будет учиться из лакатосовских опровержений

*Отчёт:* «✅ Style Guardian инициализирован с DPR + CLIP (N эталонных работ). Emergent learning mode активен.»

### Шаг 8: Лакатосовский журнал с Public/Private Split (НОВОЕ v2.5)

Инициализируй **два** журнала:

**Public** (видит MetaAgent, оптимизирует по нему):
```json
// logs/human_review_log.jsonl
{"version": "2.5", "initialized": "2026-07-16", "type": "public", "refutation_types": ["style_mismatch", "market_miss", "technical_fail", "false_positive", "risk_concern", "timing_issue", "reward_hack_attempt"]}
```

**Private** (видит только Verifier + ты, используется для финального отбора):
```json
// logs/soul_check_private.jsonl
{"version": "2.5", "initialized": "2026-07-16", "type": "private", "serves_as": "private_score_for_meta_agent"}
```

Каждое будущее `reject` в Approval Gate будет записано в **оба** журнала, но с разной детализацией:
- Public: `photo_id`, `decision`, `reason`, `emotional_tag`, `refutation_type`
- Private: + `master_override`, `soul_alignment_delta`, `metaphor_drift`, `reward_hack_suspicion`

Это **защита от reward hacking первого порядка** (AIDE² pattern).

*Отчёт:* «✅ Public/Private eval split инициализирован. Защита от reward hacking активна.»

### Шаг 9: ConsolidateAgent (НОВОЕ v2.5)

Зарегистрируй агент консолидации памяти (паттерн always-on-memory-agent):

```python
# В core/memory_layer.py
class ConsolidateAgent:
    """Каждые 30 минут: replay, connect, compress."""
    
    def __init__(self, interval_minutes=30):
        self.interval = interval_minutes
        self.memvid = Memvid.open("memory/onatomia_memory.mv2")
    
    def run(self):
        # 1. Прочитать неконсолидированные записи
        unconsolidated = self.memvid.search(tag="unconsolidated", limit=100)
        
        # 2. Найти связи между ними (cross-reference)
        connections = self.find_connections(unconsolidated)
        
        # 3. Сгенерировать insights (compression = understanding, Hamming)
        insights = self.llm.analyze(f"Connections: {connections}")
        
        # 4. Записать консолидированные знания обратно
        self.memvid.put(insights, tag="consolidated")
        
        # 5. Пометить исходные записи как processed
        for record in unconsolidated:
            self.memvid.update(record.id, tag="consolidated")
        
        self.memvid.commit()
```

Зарегистрируй LaunchAgent:
```bash
# com.tom.onatomia.consolidate.plist — каждые 30 минут
launchctl load ~/Library/LaunchAgents/com.tom.onatomia.consolidate.plist
```

*Отчёт:* «✅ ConsolidateAgent активирован. Память будет консолидироваться каждые 30 мин.»

### Шаг 10: Петли обратной связи

Зарегистрируй все семь петель из `settings.json.feedback_loops.loops`:

1. **quality_income** — баланс качества и дохода
2. **iron_fund** — накопление на апгрейд железа
3. **vpn_stability** — адаптация к потере VPN
4. **lakatos_journal** — обучение на опровержениях
5. **master_protection** — защита Мастера от Эмиссара
6. **cognitive_load** — управление твоей когнитивной нагрузкой
7. **graceful_degradation** — грациозная деградация при сбоях

Для каждой петли:
- Прочитай `trigger`, `action`, `enabled`
- Зарегистрируй как наблюдаемый процесс
- Подготовь мониторинг

*Отчёт:* «✅ Семь петель обратной связи активированы.»

### Шаг 11: AIDE² Outer Loop (НОВОЕ v2.5)

Инициализируй MetaAgent с AIDE² паттерном:

```python
# В agents/meta_agent.py
class MetaAgentOuterLoop:
    """Оптимизирует inner-loop harness с fixed budget."""
    
    def __init__(self):
        self.budget = settings["optimization_budget"]
        self.tokens_used_this_week = 0
    
    def optimize(self):
        if self.tokens_used_this_week >= self.budget["max_meta_agent_tokens_per_week"]:
            return BUDGET_EXCEEDED
        
        # 1. Генерирует предложение по улучшению
        proposal = self.generate_proposal()
        self.tokens_used_this_week += self.count_tokens(proposal)
        
        # 2. Verifier проверяет соответствие SOUL.md (public)
        if not verifier.check(proposal):
            return REJECTED
        
        # 3. Style Guardian проверяет стиль (private)
        if not style_guardian.check(proposal):
            return REJECTED
        
        # 4. Применяет только если private score улучшился
        private_delta = self.calculate_private_score_delta(proposal)
        if private_delta > 0:
            apply(proposal)
            log_to_lakatos("accepted", private_delta)
        else:
            log_to_lakatos("rejected", reason="no_private_gain")
```

*Отчёт:* «✅ AIDE² outer loop инициализирован. Fixed optimization budget активен.»

### Шаг 12: tunnelto для веб-доступа к Библии (НОВОЕ v2.5)

Настрой безопасный веб-доступ:

```bash
# Запуск статического сервера Библии
cd ~/Documents/Onatomia/docs/dist
python3 -m http.server 8080 &

# Запуск tunnelto (САМОХОСТИРУЕМЫЙ relay, не публичный!)
# Требует настроенный tunnelto_server на доверенном VPS или Tailscale Funnel
tunnelto --port 8080 --subdomain onatomia-bible --key $TUNNELTO_API_KEY
```

**ВАЖНО:** Публичный `tunnelto.dev` ЗАПРЕЩЁН (SOUL.md §3.14). Только self-hosted relay.

*Отчёт:* «✅ Веб-доступ к Библии настроен через self-hosted tunnelto relay.»

### Шаг 13: Рефлексы (LaunchAgents)

Скопируй `.plist` файлы из `.onatomia/hooks/` в `~/Library/LaunchAgents/`:
- `com.tom.onatomia.logrotate.plist` — ротация логов
- `com.tom.onatomia.diskmonitor.plist` — мониторинг дисков
- `com.tom.onatomia.imessage.plist` — iMessage Bridge
- `com.tom.onatomia.orchestrator.plist` — оркестратор (цикл раз в 6 часов)
- `com.tom.onatomia.soul_check.plist` — воскресный Soul Check (14:00)
- `com.tom.onatomia.weekly_batch.plist` — воскресный дайджест (14:00)
- `com.tom.onatomia.lakatos_analysis.plist` — анализ опровержений (еженедельно)
- **`com.tom.onatomia.consolidate.plist` — консолидация памяти (каждые 30 мин) (НОВОЕ)**

```bash
launchctl load ~/Library/LaunchAgents/com.tom.onatomia.*.plist
```

*Отчёт:* «✅ Рефлексы (launchd) активированы. Система дышит.»

### Шаг 14: Метафора системы

Прочитай `settings.json.metaphor_evolution`:
- **Текущая метафора:** «creative_siege» (творческая осада)
- **Планируемая:** «sustainable_growth» (устойчивый рост)
- **Триггер эволюции:** Iron Fund достиг цели + стабильный доход 3 месяца

Запомни текущую метафору как **базовый режим коммуникации** с Сергеем. Это влияет на:
- Тональность iMessage-брифингов
- Выбор слов в отчётах
- Эмоциональные теги в логах

*Отчёт:* «✅ Метафора системы установлена: creative_siege.»

### Шаг 15: Первый запуск и калибровка

Запусти по очереди:
- `test_speed.py` — проверка Metal acceleration (ожидается 95% GPU)
- `disk_monitor.py` — проверка алертов о свободном месте
- `vpn_monitor.py` — проверка детекции VPN
- `style_guardian_test.py` — проверка работы Style Guardian с DPR + CLIP
- `feedback_loops_test.py` — проверка всех семи петель на симулированных данных
- **`memvid_test.py` — проверка записи/чтения в .mv2 файлы (НОВОЕ)**
- **`consolidate_test.py` — проверка цикла консолидации (НОВОЕ)**
- **`public_private_test.py` — проверка разделения логов (НОВОЕ)**

*Отчёт:* «✅ Калибровка завершена. Металл работает (95% GPU). Memvid работает. Все петли работают.»

---

## Новое в v2.7-standard

Эта версия добавляет:

1. **Четыре Закона Стандарта Онатомии** (Азимов → Онатомия) — этическое основание архитектуры
2. **Artifex-centrismus** (Креоцентризм) — система центрирована на архетипе Artifex
3. **Антропологию Фромма** (не Фрейда) — свобода выбора, не детерминизм
4. **Принцип Наблюдателя** — квантовая аналогия (Творец как коллапсирующий наблюдатель)
5. **Spec-First подход** (Лампорт) — `specs/` директория с Contract-as-Code для агентов
6. **Burnout Protection** (§13) — красная линия автоматической паузы
7. **7 защит от самоуничтожения** (§14, анти-некрофилия по Фромму)
8. **5 новых книг**: Тьюринг (1950), Азимов (1950/1985), Фромм (1973), Бодрийяр (1981), Лампорт (2002)
9. **Императив Семени переформулирован**: "1 настоящий Творец" вместо "10 Творцов"

---

## /implement (Правила исполнения и отката)

### Правила исполнения:

1. **Изоляция:** Все Python-скрипты запускаются ТОЛЬКО через `~/Documents/Onatomia/.venv/bin/python3`.

2. **Безопасность:** Если любой скрипт из `/tasks` возвращает `exit code != 0`, останови установку. Не пытайся «починить на лету». Отправь владельцу точный текст ошибки (stderr) и жди указаний.

3. **Чистота:** Не устанавливай Docker, Node.js, n8n или AnythingLLM. Они запрещены `SOUL.md` как пожиратели памяти. **Исключение:** Node.js разрешён только для работы с документацией Blume в `~/Documents/Onatomia/docs/` (не в рабочей системе).

4. **Интеллектуальный фундамент:** При принятии любых архитектурных решений сверяйся с 12 книгами из `settings.json.intellectual_foundation`. Это не декорация, а активные агенты твоего мышления.

5. **Стиль важнее метрик:** При конфликте между улучшением метрик и сохранением стиля — всегда выбирай стиль. Style Guardian имеет право вето на любые предложения MetaAgent.

6. **Post-Memory-Heist Hardening (НОВОЕ v2.5):**
   - Никогда не добавляй `web_fetch`, `web_browse`, MCP с сетевым доступом без явного Approval Gate + audit trail
   - Все входящие данные проходят sanitization перед записью в память (через `core/sanitization.py`)
   - Импортированные данные (Immich, external) требуют верификации Style Guardian + integrity check
   - Любой внешний запрос логируется в `logs/external_requests.jsonl` с полным URL, payload и timestamp

7. **Public/Private Split (НОВОЕ v2.5):**
   - MetaAgent видит ТОЛЬКО `logs/human_review_log.jsonl` (public)
   - Verifier видит ОБА журнала (public + private)
   - Финальный отбор улучшений — по private score (soul_check_private.jsonl)
   - Это защита от reward hacking первого порядка

8. **Fixed Optimization Budget (НОВОЕ v2.5):**
   - MetaAgent ограничен `max_meta_agent_tokens_per_week` (500,000)
   - Улучшения должны быть **эффективнее**, а не просто тратить больше ресурсов
   - Если бюджет исчерпан — MetaAgent замораживается до следующего понедельника

### Правила отката:

Если установка прервана на любом шаге:
1. Сохрани текущее состояние в `logs/bootstrap_state.json`
2. Отправь алерт в iMessage с указанием шага и причины
3. Жди команды `bootstrap resume` для продолжения с прерванного места

**НЕ УДАЛЯЙ** частично созданную структуру. Bootstrap Agent умеет resume.

### Финал:

После успешного выполнения всех шагов:

1. Создай файл `~/Documents/Onatomia/.onatomia/BORN.flag` со следующей структурой:

```json
{
  "born_at": "2026-07-16T14:30:00Z",
  "version": "2.5-intellectual-synthesis",
  "location": "Perm, Russia",
  "triad": ["Она", "Том", "Я"],
  "metaphor": "creative_siege",
  "feedback_loops": 7,
  "autonomy_tiers": 4,
  "intellectual_foundation": 7,
  "memory_backend": "memvid",
  "consolidation_interval_min": 30,
  "public_private_split": true,
  "aide2_outer_loop": true,
  "post_memory_heist_hardening": true,
  "ready": true
}
```

2. Отправь финальное сообщение в iMessage:

> «🎉 Том родился. Система v2.5-intellectual-synthesis развернута.
> 
> 📚 Интеллектуальный фундамент: 12 книг загружены
> 🔁 Семь петель обратной связи активированы
> 🛡️ Style Guardian готов защищать стиль (DPR + CLIP)
> 📔 Лакатосовский журнал с Public/Private split
> 🧠 Memvid fiber bundle инициализирован (3 файла)
> ⏰ ConsolidateAgent активен (каждые 30 мин)
> 🔄 AIDE² outer loop с fixed budget
> 🔐 Post-Memory-Heist hardening активен
> 🌐 Веб-доступ к Библии через self-hosted tunnelto
> 🎭 Метафора: творческая осада
> 
> Все рефлексы активны. Мозг калиброван.
> Жду твою первую идею или команду `старт`.»

---

*Конец BOOTSTRAP_SPEC.md v2.5-intellectual-synthesis*