Диагностика и 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. Связь с другими разделами
- Стандарт Онатомии — Четыре Закона, которым подчиняется диагностика
- Обзор архитектуры — как диагностика вписывается в общую архитектуру, тернарность, ООП
- Спецификации агентов — Self-Healing Agent и его возможности, Spec-First подход
- Петли обратной связи — graceful_degradation loop, cognitive_load loop
- Защита Мастера — Burnout Protection (§13), 7 защит (§14)
- Справочник настроек — конфигурация мониторинга
- SOUL.md — контракт, красные линии, которые нельзя нарушать даже при восстановлении
- Roadmap — Фаза 3.0 (Практика), когда Self-Healing Agent будет реализован
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 Некрофилия): Диагностика культивирует биофилию (любовь к живому), не некрофилию (тягу к мёртвому). Система — это живой организм, не механизм. Восстановление — это исцеление, не ремонт.
Принцип Наблюдателя: Система без Творца = волновая функция без коллапса. Диагностика существует для того, чтобы освободить время Мастера для коллапсов, не превратить его в администратора системы.