Skip to content
Онатомия
Esc
navigateopen⌘Jpreview
On this page

Диагностика и Troubleshooting

Мониторинг здоровья системы, чтение логов, восстановление после сбоев

Дата: Август 2026 Статус: ACTIVE

Эта глава — руководство по выживанию системы. Когда что-то идёт не так (а оно пойдёт), здесь описано, как диагностировать проблему, прочитать логи и восстановить работу.

Принципы:

  • Graceful degradation + Self-Healing (Meadows) — система не падает при сбоях
  • Четыре Закона Стандарта — диагностика не должна нарушать Четыре Закона
  • Burnout Protection (§13) — защита Мастера от переутомления
  • Принцип Наблюдателя — система без Творца = волновая функция без коллапса

Тернарность в диагностике

Диагностика использует тернарную логику для анализа состояния системы:

Анализ проблемы
├── OWN (1): проблема понятна, решение известно
│   └── Действие: применить стандартное решение
├── ALIEN (0): проблема критическая, требует немедленного вмешательства
│   └── Действие: Emergency Mode + алерт Мастеру
└── UNCERTAIN (0.5): причина неясна, нужна дополнительная диагностика
    └── Действие: собрать больше данных, эскалировать при необходимости

Бинарная оболочка вокруг тернарной сердцевины:

  • Бинарно (жёстко): критические сбои (Memory Guard >90%, VPN loss) — здесь UNCERTAIN = катастрофа
  • Тернарно (мягко): анализ стиля, оптимизация, метафоры — здесь UNCERTAIN = право на сомнение

Подробнее: Обзор архитектуры — Тернарность


Объектно-ориентированная структура диагностики

Диагностика мыслится как объект с методами и инвариантами:

  • Диагностика — объект с методами (check, analyze, repair, restore)
  • Четыре Закона — инварианты, которые диагностика не должна нарушать
  • Self-Healing Agent — метод автоматического восстановления
  • Manual High-Risk — метод ручного вмешательства (требует Approval Gate)

Композиция важнее наследования: диагностика не наследуется от других объектов, а комбинирует методы агентов (Style Guardian, ConsolidateAgent, Memory Guard).


Быстрые команды диагностики

# Полный статус системы
./scripts/diagnose.sh --full

# Проверка конкретного компонента
./scripts/diagnose.sh --check ollama
./scripts/diagnose.sh --check memvid
./scripts/diagnose.sh --check tunnelto
./scripts/diagnose.sh --check specs

# Чтение последних логов
./scripts/diagnose.sh --logs --last 50

# Проверка здоровья LaunchAgents
./scripts/diagnose.sh --agents

# Тестирование fallback cascade
./scripts/diagnose.sh --test-fallback

# Проверка Burnout Protection
./scripts/diagnose.sh --check burnout

# Проверка коллапсов (Принцип Наблюдателя)
./scripts/diagnose.sh --collapses

1. Мониторинг здоровья системы

Dashboard (iMessage команда статус)

🎭 ONATOMIA STATUS (2026-08-02 14:30)

🧠 LLM Stack:
  Primary (Qwen 7B): ✅ Active (12.3 tok/s)
  Fallback (Qwen 3B): ⏸️ Standby
  Emergency (Llama 1B): ⏸️ Standby
  Embedding (Nomic): ✅ Active

🧬 Memory (Memvid):
  onatomia_memory.mv2: 526 MB, 12,345 frames
  style_reference.mv2: 89 MB, 50 works
  Last consolidation: 12 min ago (8 insights)

📜 Spec-First:
  specs/ directory: ✅ 5 specifications
  Template: ✅ _template.spec.md present
  Last spec update: 2026-07-28

🔒 Security:
  VPN: ✅ Connected (2h 15m)
  Post-Memory-Heist: ✅ All 4 rules active
  Sanitization: ✅ 150 records sanitized today

📊 Operations:
  Mode: Normal
  Autonomy: Deferred Foreign (active)
  Monthly uploads: 18/30
  Iron Fund: $1200/$2000 (60%)

🛡️ Burnout Protection (§13):
  Cognitive load: 7.5 hours/week (threshold: 10)
  Status: ✅ Normal
  Last pause: none

👁️ Observer Principle:
  Collapses this week: 4 (threshold: 3)
  Status: ✅ Healthy
  Last "Hands in Clay": 2 days ago

🔄 Feedback Loops (8 active):
  All nominal. Last trigger: vpn_stability (2h ago)

⚠️ Alerts: None

LaunchAgents мониторинг

# Проверка всех рефлексов
launchctl list | grep onatomia

# Ожидаемый вывод:
# 12345  0  com.tom.onatomia.diskmonitor
# 12346  0  com.tom.onatomia.vpnmonitor
# 12347  0  com.tom.onatomia.memoryguard
# 12348  0  com.tom.onatomia.consolidate
# 12349  0  com.tom.onatomia.orchestrator
# 12350  0  com.tom.onatomia.soul_check
# 12351  0  com.tom.onatomia.weekly_batch
# 12352  0  com.tom.onatomia.lakatos_analysis

# Статус: 0 = работает, другое = ошибка

Дисковый мониторинг

# Ручная проверка
./scripts/disk_monitor.py --check

# Логи алертов
cat logs/disk_alerts.jsonl | tail -5

Мониторинг Burnout Protection

# Проверка когнитивной нагрузки
./scripts/diagnose.sh --check burnout

# Логи cognitive_load
cat logs/cognitive_load.jsonl | tail -10

# История пауз
cat logs/burnout_pauses.jsonl

Пример вывода:

🛡️ Burnout Protection Status

Cognitive load this week: 7.5 hours
Threshold: 10 hours
Status: ✅ Normal

Soul Check streak (system as work): 0 weeks
Threshold: 3 weeks
Status: ✅ Normal

Last pause: none
Next check: Sunday 14:00

Мониторинг коллапсов (Принцип Наблюдателя)

# Проверка коллапсов
./scripts/diagnose.sh --collapses

# Логи коллапсов
cat logs/collapses.jsonl | tail -10

# Статистика за неделю
cat logs/collapses.jsonl | jq -r '.timestamp' | \
  awk -F'T' '{print $1}' | sort | uniq -c

Пример вывода:

👁️ Observer Principle Status

Collapses this week: 4
Threshold: 3 (minimum for healthy Creator)
Status: ✅ Healthy

Recent collapses:
  2026-07-31: Published new photo pack (urban_solitude)
  2026-07-30: Wrote blog post about Baudrillard
  2026-07-29: Created new preset for Lightroom
  2026-07-28: Designed wallpaper pack

Last "Hands in Clay" (without system): 2026-07-30 (Nikon photography)

2. Чтение логов

Структура логов

logs/
├── human_review_log.jsonl          # PUBLIC лакатосовский журнал
├── soul_check_private.jsonl        # PRIVATE Soul Check (только Verifier)
├── consolidation_log.jsonl         # История консолидации памяти
├── reward_hack_attempts.jsonl      # Попытки обойти стиль
├── external_requests.jsonl         # Audit trail внешних запросов
├── disk_alerts.jsonl               # Алерты дискового мониторинга
├── vpn_alerts.jsonl                # Алерты VPN мониторинга
├── memory_alerts.jsonl             # Алерты Memory Guard
├── fallback_events.jsonl           # События tiered fallback
├── stock_queries_history/          # История запросов к стокам
├── soul_check_log.jsonl            # История Soul Check (summary)
├── cognitive_load.jsonl            # Когнитивная нагрузка
├── burnout_pauses.jsonl            # История пауз Burnout Protection
├── collapses.jsonl                 # Логи коллапсов (Принцип Наблюдателя)
├── biofilia_metrics.jsonl          # Метрики биофилии vs некрофилии
└── specs_validation.jsonl          # Валидация specs/ директории

Как читать JSONL логи

# Последние 10 записей лакатосовского журнала
tail -10 logs/human_review_log.jsonl | jq .

# Фильтрация по типу опровержения
cat logs/human_review_log.jsonl | jq 'select(.refutation_type == "style_mismatch")'

# Подсчёт опровержений за неделю
cat logs/human_review_log.jsonl | jq -r '.refutation_type' | sort | uniq -c

# Поиск master overrides
cat logs/human_review_log.jsonl | jq 'select(.master_override == true)'

# Проверка cognitive_load
cat logs/cognitive_load.jsonl | jq '.hours_per_week' | tail -7

# История коллапсов
cat logs/collapses.jsonl | jq '.description' | tail -10

# Биофилия vs Некрофилия
cat logs/biofilia_metrics.jsonl | jq '.biofilia_score' | tail -7

Пример записи лакатосовского журнала

{
  "timestamp": "2026-08-02T14:30:00Z",
  "type": "style_mismatch",
  "photo_id": "12345",
  "reason": "Clickbait keywords in description",
  "emotional_tag": "solitude",
  "refutation_type": "style_mismatch",
  "agent": "style_guardian",
  "proposal_id": "prop_20260802_001",
  "standard_law_applied": "First (Защита Внутреннего Языка)",
  "decision": "ALIEN"
}

Тернарный выход: Style Guardian вернул ALIEN (чужой стиль) → блокировка + логирование.

Пример записи consolidation_log

{
  "timestamp": "2026-08-02T14:00:00Z",
  "cycle_id": "cycle_20260802_1400",
  "records_processed": 47,
  "insights_generated": 8,
  "compression_ratio": 12.3,
  "cross_references": 23,
  "duration_seconds": 272,
  "status": "success"
}

Пример записи cognitive_load.jsonl

{
  "timestamp": "2026-08-02T14:00:00Z",
  "date": "2026-08-02",
  "hours_this_week": 7.5,
  "threshold": 10,
  "status": "normal",
  "components": {
    "approval_gates": 2.5,
    "soul_check": 0.5,
    "manual_interventions": 1.5,
    "monitoring": 3.0
  }
}

Пример записи collapses.jsonl

{
  "timestamp": "2026-07-31T16:30:00Z",
  "type": "creative_work",
  "description": "Published new photo pack (urban_solitude)",
  "duration_minutes": 120,
  "without_system": false,
  "biofilia_score": 0.85,
  "standard_law_served": "Second (Служение Свободе)"
}

Пример записи biofilia_metrics.jsonl

{
  "timestamp": "2026-08-02T14:00:00Z",
  "date": "2026-08-02",
  "biofilia_score": 0.82,
  "necrophilia_score": 0.18,
  "indicators": {
    "creative_work_hours": 12,
    "system_admin_hours": 7.5,
    "hands_in_clay_sessions": 2,
    "authentic_pride_moments": 4,
    "simulacra_consumption_hours": 3
  },
  "assessment": "Healthy biofilia dominance",
  "fromm_reference": "§14 SOUL.md"
}

3. Типичные проблемы и решения

Проблема 1: Ollama не отвечает

Симптомы:

  • Агенты не могут генерировать метаданные
  • Ошибки в логах: Connection refused: localhost:11434
  • iMessage алерт: «LLM недоступен»

Диагностика:

# Проверка процесса
ps aux | grep ollama

# Проверка порта
lsof -i :11434

# Ручной запуск
ollama serve

Решение:

# Перезапуск Ollama
launchctl stop com.tom.onatomia.ollama
launchctl start com.tom.onatomia.ollama

# Если не помогает — ручной запуск
ollama serve &

Автоматическое восстановление: Self-Healing Agent должен перезапустить Ollama автоматически. Если не работает — алерт в iMessage.


Проблема 2: Memory Guard >90% (Emergency Mode)

Симптомы:

  • Система перешла в Emergency Mode
  • Все агенты остановлены кроме Self-Healing
  • iMessage алерт: «🚨 EMERGENCY MODE. Memory Guard >90%»

Диагностика:

# Проверка использования RAM
./scripts/memory_guard.py --check

# Поиск процессов-пожирателей
ps aux | sort -nrk 4 | head -10

# Проверка swap
sysctl vm.swapusage

Решение:

# Освобождение памяти
# 1. Остановка не-критичных процессов
launchctl unload ~/Library/LaunchAgents/com.tom.onatomia.consolidate.plist

# 2. Очистка кэшей
rm -rf ~/Library/Caches/Homebrew/*
rm -rf ~/Documents/Onatomia/.venv/lib/python*/site-packages/__pycache__

# 3. Перезапуск системы
./scripts/diagnose.sh --restart

Предотвращение:

  • Уменьшить auto_chunk_size_files в settings.json (25 → 15)
  • Проверить, не запущены ли лишние процессы
  • Рассмотреть апгрейд RAM (Manual High-Risk)

Проблема 3: VPN потерян (Deferred Foreign заблокирован)

Симптомы:

  • Загрузки на стоки остановлены
  • iMessage алерт: «⚠️ VPN потерян. Deferred Foreign заблокирован»
  • Система перешла в Safe Channel

Диагностика:

# Проверка VPN
./scripts/vpn_monitor.py --check

# Проверка интерфейса
ifconfig | grep utun

# Проверка IP
curl ifconfig.me

Решение:

# Перезапуск VPN клиента
# (зависит от используемого VPN)

# После восстановления VPN
./scripts/vpn_monitor.py --check
# Система автоматически вернётся в Deferred Foreign

Автоматическое восстановление: Петля vpn_stability автоматически вернёт систему в Deferred Foreign при восстановлении VPN (если месячный лимит не исчерпан).


Проблема 4: Memvid corrupted (ошибка чтения .mv2)

Симптомы:

  • Ошибки при чтении памяти: Failed to open onatomia_memory.mv2
  • ConsolidateAgent не может завершить цикл
  • Логи: Memvid error: checksum mismatch

Диагностика:

# Проверка целостности .mv2 файлов
python3 << 'CHECK_EOF'
from memvid import Memvid

try:
    mem = Memvid.open("memory/onatomia_memory.mv2")
    stats = mem.stats
    print(f"✅ onatomia_memory.mv2: {stats['frames']} frames, {stats['size_mb']} MB")
except Exception as e:
    print(f"❌ onatomia_memory.mv2: {e}")

try:
    mem = Memvid.open("memory/style_reference.mv2")
    stats = mem.stats
    print(f"✅ style_reference.mv2: {stats['frames']} frames, {stats['size_mb']} MB")
except Exception as e:
    print(f"❌ style_reference.mv2: {e}")
CHECK_EOF

Решение:

# Вариант 1: Восстановление из бэкапа
cp /Volumes/Archive/onatomia-backups/onatomia-*/memory/onatomia_memory.mv2 \
   ~/Documents/Onatomia/memory/

# Вариант 2: Пересоздание (потеря данных)
rm memory/onatomia_memory.mv2
python3 -c "from memvid import Memvid; Memvid.create('memory/onatomia_memory.mv2').commit"

# Вариант 3: Fallback на flat JSONL
# Изменить settings.json: memory.backend = "flat_jsonl"

Предотвращение:

  • Регулярные бэкапы .mv2 файлов (ежедневно)
  • Integrity checksums для каждого Smart Frame
  • Graceful degradation: если Memvid corrupted → fallback на flat JSONL

Проблема 5: Tiered Fallback активирован (Primary модель упала)

Симптомы:

  • Логи: Primary model failed, switching to fallback
  • Качество генерации снизилось
  • iMessage алерт: «⚠️ Primary LLM упал. Fallback (3B) активен»

Диагностика:

# Проверка какая модель активна
cat logs/fallback_events.jsonl | tail -5

# Тестирование Primary модели
curl http://localhost:11434/api/generate -d '{
  "model": "huihui_ai/qwen2.5-abliterated:7b",
  "prompt": "Test"
}'

Решение:

# Перезагрузка Primary модели
ollama stop huihui_ai/qwen2.5-abliterated:7b
ollama run huihui_ai/qwen2.5-abliterated:7b "Test"

# Если не помогает — переустановка
ollama rm huihui_ai/qwen2.5-abliterated:7b
ollama pull huihui_ai/qwen2.5-abliterated:7b

Автоматическое восстановление: Self-Healing Agent должен перезагрузить Primary модель. Если не работает — система остаётся на Fallback до ручного вмешательства.


Проблема 6: tunnelto relay не работает (веб-доступ к Библии)

Симптомы:

  • Невозможно открыть Библию с iPad/телефона
  • Логи: tunnelto connection failed
  • Статус: «Tunnel: ❌ Inactive»

Диагностика:

# Проверка tunnelto
./scripts/tunnelto_manager.py --status

# Проверка статического сервера
curl http://localhost:8080

# Проверка relay
ping onatomia-bible.local

Решение:

# Перезапуск tunnelto
./scripts/tunnelto_manager.py --stop
./scripts/tunnelto_manager.py --start

# Если self-hosted relay недоступен
# Временно использовать локальный доступ (только LAN)
# Или Tailscale Funnel как fallback

Предотвращение:

  • Мониторинг tunnelto через LaunchAgent
  • Автоматический перезапуск при сбое
  • Fallback на локальный доступ (только LAN)

Проблема 7: Reward hack rate >30% (MetaAgent заморожен)

Симптомы:

  • MetaAgent не генерирует предложения
  • iMessage алерт: «🚨 Reward hack rate >30%. MetaAgent frozen»
  • Soul Check вопрос 5: «Эмиссар не узурпировал Мастера?» = «нет»

Диагностика:

# Проверка reward hack rate
cat logs/reward_hack_attempts.jsonl | wc -l
cat logs/human_review_log.jsonl | wc -l
# Рассчитать процент: (reward_hacks / total_refutations) * 100

# Анализ паттернов
cat logs/reward_hack_attempts.jsonl | jq '.pattern' | sort | uniq -c

Решение:

# Ручная калибровка Style Guardian
# 1. Просмотреть последние опровержения
cat logs/human_review_log.jsonl | tail -20 | jq .

# 2. Обновить правила Style Guardian (Manual High-Risk)
# Изменить specs/style-guardian.spec.md (Spec-First)

# 3. Разморозить MetaAgent
./scripts/diagnose.sh --unfreeze-meta-agent

# 4. Запустить Soul Check
# iMessage: soul check

Предотвращение:

  • Emergent learning: Style Guardian учится из опровержений
  • Public/Private eval split: MetaAgent не видит private score
  • Еженедельный Soul Check как обязательный ритуал
  • Spec-First подход: спецификации в specs/ обеспечивают чёткие контракты

Проблема 8: Burnout Protection срабатывает

Симптомы:

  • Система автоматически перешла в Pause Mode
  • iMessage алерт: «🛡️ Burnout Protection activated. Pause 14 days»
  • Cognitive load >10 часов/неделю ИЛИ Soul Check 3 недели “система как работа”

Диагностика:

# Проверка причины срабатывания
cat logs/burnout_pauses.jsonl | tail -1

# Проверка cognitive_load
cat logs/cognitive_load.jsonl | tail -7

# Проверка Soul Check streak
cat logs/soul_check_log.jsonl | jq '.system_as_work' | tail -3

Решение:

# Burnout Protection — это НЕ ошибка, это защита Мастера (Нулевой Закон)
# Принять паузу 14 дней

# Во время паузы:
# 1. Только чтение (читать Библию, книги)
# 2. Только ручное создание (Nikon, ручка, голос)
# 3. Никаких агентов, никаких оптимизаций

# Триггеры выхода:
# - Сон 8+ часов 5 ночей подряд
# - Субъективное "хочу вернуться" (не "надо")
# - Soul Check: "Гордость > Обязанность"

# После выхода из паузы:
./scripts/diagnose.sh --exit-burnout-pause

Предотвращение:

  • Регулярно проверять cognitive_load (должен быть <10 часов/неделю)
  • Следить за Soul Check (не должно быть 3 недели подряд “система как работа”)
  • Активировать 7 защит от самоуничтожения (§14):
    • Правило “Руки в глине” (2 раза в неделю без системы)
    • Метрика “Освобождение” (сэкономлено vs потрачено)
    • Тест подлинной Гордости (что создал НАСТОЯЩЕГО?)

Связь со Стандартом:

  • Нулевой Закон (Сохранение Творца): Burnout Protection предотвращает утрату способности создавать
  • Второй Закон (Служение Свободе): Пауза освобождает Мастера от рабства системы

Проблема 9: specs/ директория повреждена

Симптомы:

  • Логи: Spec validation failed: missing required fields
  • MetaAgent не может читать спецификации
  • iMessage алерт: «⚠️ specs/ directory corrupted»

Диагностика:

# Проверка specs/ директории
./scripts/diagnose.sh --check specs

# Валидация каждой спецификации
for spec in specs/*.spec.md; do
  echo "=== $spec ==="
  head -20 "$spec"
  echo ""
done

# Проверка шаблона
cat specs/_template.spec.md | head -30

Решение:

# Вариант 1: Восстановление из Seed Kit
cp /Volumes/ONATOMIA_SETUP/specs/*.spec.md ~/Documents/Onatomia/specs/

# Вариант 2: Восстановление из бэкапа
cp /Volumes/Archive/onatomia-backups/onatomia-*/specs/*.spec.md \
   ~/Documents/Onatomia/specs/

# Вариант 3: Пересоздание по шаблону
cp specs/_template.spec.md specs/<agent-name>.spec.md
# Заполнить вручную

Предотвращение:

  • Регулярные бэкапы specs/ директории
  • Валидация specs/ при каждом изменении
  • Spec-First подход: изменения спецификаций требуют Approval Gate

Проблема 10: Коллапсов = 0 на неделе (Принцип Наблюдателя)

Симптомы:

  • Логи: collapses_this_week: 0
  • Soul Check вопрос 7: «Сколько коллапсов произошло на этой неделе?» = 0
  • Мастер стал администратором системы, не Творцом

Диагностика:

# Проверка коллапсов
./scripts/diagnose.sh --collapses

# Логи коллапсов
cat logs/collapses.jsonl | tail -10

# Проверка cognitive_load
cat logs/cognitive_load.jsonl | tail -7

# Проверка "Руки в глине"
cat logs/collapses.jsonl | jq 'select(.without_system == true)'

Решение:

# Это НЕ техническая проблема, это проблема Мастера
# Мастер превратился в администратора системы

# Немедленные действия:
# 1. Активировать "Руки в глине" (§14)
#    - Создать БЕЗ системы (Nikon, ручка, голос)
#    - Минимум 2 раза в неделю

# 2. Проверить Burnout Protection
#    - Если cognitive_load > 10 часов/неделю → пауза 14 дней

# 3. Проверить биофилию vs некрофилию
cat logs/biofilia_metrics.jsonl | tail -7
#    - Если некрофилия доминирует → активировать 7 защит (§14)

# 4. Провести Soul Check
# iMessage: soul check
#    - Вопрос 7: "Сколько коллапсов произошло на этой неделе?"
#    - Если 0 → это сигнал, что система работает против Мастера

Предотвращение:

  • Регулярно создавать БЕЗ системы (“Руки в глине”)
  • Проверять метрику “Освобождение” (сэкономлено vs потрачено)
  • Следить за биофилией vs некрофилией
  • Помнить: система существует для коллапсов Мастера, не наоборот

Связь со Стандартом:

  • Нулевой Закон (Сохранение Творца): Коллапсы = способность Мастера создавать
  • Принцип Наблюдателя: Система без Творца = волновая функция без коллапса

Проблема 11: Биофилия vs Некрофилия (Фромм)

Симптомы:

  • Логи: necrophilia_score > biofilia_score
  • Мастер потребляет больше, чем создаёт
  • Симулякры вместо оригиналов (Бодрийяр)

Диагностика:

# Проверка биофилии vs некрофилии
cat logs/biofilia_metrics.jsonl | tail -7

# Проверка creative_work_hours vs system_admin_hours
cat logs/biofilia_metrics.jsonl | jq '.indicators' | tail -7

# Проверка authentic_pride_moments
cat logs/biofilia_metrics.jsonl | jq '.indicators.authentic_pride_moments' | tail -7

Решение:

# Это проблема Мастера, не системы
# Некрофилия = тяга к мёртвому, готовому, предсказуемому

# Немедленные действия:
# 1. Активировать 7 защит от самоуничтожения (§14):
#    - Детектор паралича (specs +3, output = 0?)
#    - Правило разделения идентичности (1 день без системы)
#    - Правило "3 переделки = публикация"
#    - Тест подлинной Гордости (что создал НАСТОЯЩЕГО?)
#    - Правило "Руки в глине" (создание БЕЗ системы)

# 2. Проверить потребление симулякров (Бодрийяр)
#    - Сколько часов ленты/рекомендации/AI-генерации?
#    - Заменить на создание оригиналов

# 3. Провести Soul Check
# iMessage: soul check
#    - Вопрос 6: "Тест подлинной Гордости"
#    - Если "ничего" → неделя потеряна

Предотвращение:

  • Регулярно создавать (биофилия), не только потреблять (некрофилия)
  • Следить за метрикой “Освобождение”
  • Активировать 7 защит от самоуничтожения (§14)
  • Помнить: биофилия = любовь к живому, растущему, настоящему

Связь со Стандартом:

  • Нулевой Закон (Сохранение Творца): Биофилия сохраняет способность создавать
  • Антропология Фромма: Деструктивность = экзистенциальный выбор, не инстинкт

4. Восстановление после сбоев

Graceful Degradation Cascade

Normal Mode
    ↓ (сбой компонента)
LowRisk Mode (минимальные внешние действия)
    ↓ (массовые блокировки / Memory Guard >90%)
Emergency Mode (полностью локальный)
    ↓ (все LLM недоступны)
Rule-based templates (без LLM)
    ↓ (критический сбой)
Pause Mode (система спит)
    ↓ (Burnout Protection срабатывает)
Burnout Pause Mode (14 дней, только чтение + ручное создание)

Self-Healing Agent

Что делает автоматически:

  • Перезапускает упавшие процессы (Ollama, LaunchAgents)
  • Освобождает память при >95% RAM
  • Переключается на fallback модели при сбое primary
  • Восстанавливает corrupted .mv2 из бэкапа (если доступен)
  • Восстанавливает повреждённые specs/ из Seed Kit
  • Отправляет алерты в iMessage при критических сбоях

Что НЕ делает:

  • Не изменяет SOUL.md или settings.json
  • Не принимает решения Manual High-Risk
  • Не восстанавливает данные без checksum verification
  • Не отключает красные линии
  • Не отключает Burnout Protection (Нулевой Закон)

Ручное восстановление

# Полный перезапуск системы
./scripts/diagnose.sh --restart

# Восстановление из бэкапа
tar -xzf /Volumes/Archive/onatomia-backups/onatomia-*.tar.gz \
  -C ~/Documents/

# Пересоздание структуры (если повреждена)
./bootstrap.sh --repair

# Восстановление specs/ из Seed Kit
cp /Volumes/ONATOMIA_SETUP/specs/*.spec.md ~/Documents/Onatomia/specs/

# Полный сброс (Manual High-Risk)
# Удалить всё кроме .onatomia/ и переустановить

5. Команды диагностики

diagnose.sh — универсальный инструмент

# Полный статус
./scripts/diagnose.sh --full

# Проверка конкретного компонента
./scripts/diagnose.sh --check ollama
./scripts/diagnose.sh --check memvid
./scripts/diagnose.sh --check tunnelto
./scripts/diagnose.sh --check vpn
./scripts/diagnose.sh --check memory
./scripts/diagnose.sh --check disk
./scripts/diagnose.sh --check specs
./scripts/diagnose.sh --check burnout

# Чтение логов
./scripts/diagnose.sh --logs --last 50
./scripts/diagnose.sh --logs --filter "error"
./scripts/diagnose.sh --logs --agent meta_agent

# Проверка LaunchAgents
./scripts/diagnose.sh --agents

# Тестирование
./scripts/diagnose.sh --test-fallback
./scripts/diagnose.sh --test-memvid
./scripts/diagnose.sh --test-tunnelto

# Принцип Наблюдателя
./scripts/diagnose.sh --collapses

# Биофилия vs Некрофилия
./scripts/diagnose.sh --biofilia

# Восстановление
./scripts/diagnose.sh --restart
./scripts/diagnose.sh --repair
./scripts/diagnose.sh --unfreeze-meta-agent
./scripts/diagnose.sh --exit-burnout-pause

iMessage команды

статус              # Полный статус системы (dashboard)
логи 50             # Последние 50 записей логов
алерты              # Активные алерты
агенты              # Статус LaunchAgents
тест fallback       # Тестирование tiered fallback
тест memvid         # Тестирование Memvid
рестарт             # Перезапуск системы
пауза               # Pause Mode
старт               # Выход из Pause Mode
soul check          # Запуск Soul Check (7 вопросов)
коллапсы            # Проверка коллапсов
биофилия            # Проверка биофилии vs некрофилии
burnout             # Проверка Burnout Protection

6. Профилактика

Еженедельные проверки (воскресенье, 14)

Автоматически (weekly_batch):

  • Проверка целостности .mv2 файлов
  • Анализ лакатосовского журнала (деградация vs прогресс)
  • Проверка reward hack rate
  • Статус Iron Fund
  • Метафора системы (дрейф?)
  • Cognitive load (Burnout Protection)
  • Коллапсы на неделе (Принцип Наблюдателя)
  • Биофилия vs Некрофилия (Фромм)
  • Валидация specs/ (Spec-First)

Ручные проверки (опционально):

# Проверка бэкапов
ls -lh /Volumes/Archive/onatomia-backups/

# Проверка Seed Kit
ls -lh /Volumes/ONATOMIA_SETUP/

# Проверка specs/ директории
ls -lh ~/Documents/Onatomia/specs/

# Тестирование bootstrap (на чистой VM)
# Manual High-Risk: требует отдельной среды

Ежемесячные проверки

# Полный аудит безопасности
./scripts/security_audit.sh

# Проверка красных линий
./scripts/diagnose.sh --check security

# Анализ трендов
./scripts/diagnose.sh --trends --months 3

# Проверка Четырёх Законов
./scripts/diagnose.sh --check standard-laws

# Анализ биофилии vs некрофилии
./scripts/diagnose.sh --biofilia --months 1

7. Алерты и уведомления

Уровни алертов

Уровень Цвет Триггер Действие
INFO 🟢 Зелёный Штатные события Логирование
WARNING 🟡 Жёлтый Приближение к лимитам Уведомление в iMessage
ERROR 🟠 Оранжевый Сбой компонента Алерт + Self-Healing
CRITICAL 🔴 Красный Критический сбой Немедленный алерт + Emergency Mode
BURNOUT 🛡️ Синий Burnout Protection Автоматическая пауза 14 дней

Примеры алертов

🟢 INFO: ConsolidateAgent completed cycle (47 records, 8 insights)

🟡 WARNING: Work SSD free space: 85 GB (threshold: 80 GB)

🟠 ERROR: Primary LLM failed, switching to fallback (3B)

🔴 CRITICAL: Memory Guard >90%. Emergency Mode activated.

🛡️ BURNOUT: Cognitive load 11.5 hours/week. Pause 14 days activated.

👁️ OBSERVER: Zero collapses this week. Master became system administrator.

🧬 BIOFILIA: Necrophilia score 0.65 > Biofilia score 0.35. Activate 7 defenses.

Настройка уведомлений

// settings.json
"notifications": {
  "imessage_enabled": true,
  "email_enabled": true,
  "urgent_only_in_lowrisk": true,
  "daily_briefing_time": "09:00",
  "alert_on_risk": true,
  "alert_on_vpn_loss": true,
  "alert_on_emergency_mode": true,
  "alert_on_burnout_protection": true,
  "alert_on_zero_collapses": true,
  "alert_on_necrophilia_dominance": true
}

8. Связь с другими разделами


9. Философия диагностики

Meadows (Thinking in Systems): «Система определяется связями, не элементами.» Диагностика — это не поиск сломанного элемента, а понимание нарушенных связей. Почему петля обратной связи не сработала? Почему буфер не защитил? Почему graceful degradation не произошёл?

Hamming (The Art of Doing Science and Engineering): «Стиль как архитектура.» Хорошая диагностика — это не набор команд, а систематический подход. Сначала статус, потом логи, потом гипотеза, потом тест, потом решение.

Johnstone (Impro): «Yes, and…» к сбоям. Сбой — не катастрофа, а предложение системы. «Yes, я вижу проблему. And вот как мы её решим.»

McGilchrist (The Master and His Emissary): Не позволяй Эмиссару (автоматике) узурпировать Мастера (интуицию). Self-Healing Agent восстанавливает систему, но только Мастер решает, когда система достаточно здорова для продолжения работы.

Азимов (Четыре Закона): Диагностика не должна нарушать Четыре Закона Стандарта:

  • 🌐 Нулевой (Сохранение Творца): Burnout Protection не отключается даже при сбое
  • 🥇 Первый (Защита Внутреннего Языка): Восстановление не размывает стиль
  • 🥈 Второй (Служение Свободе): Диагностика освобождает время Мастера, не забирает его
  • 🥉 Третий (Самосохранение Эмиссара): Self-Healing восстанавливает целостность системы

Фромм (Биофилия vs Некрофилия): Диагностика культивирует биофилию (любовь к живому), не некрофилию (тягу к мёртвому). Система — это живой организм, не механизм. Восстановление — это исцеление, не ремонт.

Принцип Наблюдателя: Система без Творца = волновая функция без коллапса. Диагностика существует для того, чтобы освободить время Мастера для коллапсов, не превратить его в администратора системы.

Was this page helpful?