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

Библиотека скриптов

Утилиты и инструменты для работы с системой

Дата: Август 2026 Статус: ACTIVE (спецификации), IN PROGRESS (реализация)

Все скрипты Онатомии находятся в папке scripts/ и запускаются через изолированное окружение .venv. Каждый скрипт имеет чёткое назначение, входные/выходные параметры, связи с агентами и применимые Законы Стандарта Онатомии.

Скрипты существуют для того, чтобы освободить время Мастера для коллапсов (Принцип Наблюдателя) — реальных созданий, в которых суперпозиция возможностей коллапсирует в конкретное произведение.


Spec-First подход для скриптов

Каждый скрипт может иметь отдельную спецификацию в директории specs/ (Spec-First подход Лампорта). Это гарантирует, что скрипты:

  • Имеют чёткие контракты (что делают, что не делают)
  • Соответствуют Четырём Законам Стандарта
  • Имеют Definition of Done
  • Могут быть безопасно изменены

Workflow:

  1. Spec Mode — пишется specs/<script>.spec.md
  2. Approval Gate — Мастер одобряет спецификацию
  3. Implementation Mode — после одобрения пишется код

Подробнее: Spec-First подход


Тернарность в работе скриптов

Скрипты работают в тернарной логике — не бинарной (успех/ошибка), а с тремя состояниями:

Вход: запрос на действие
├── ALLOW: разрешено, выполнить
├── DENY: запрещено, отклонить + записать причину
└── DEFER: недостаточно оснований, эскалировать Мастеру
    ├── Причина: почему не хватает уверенности
    ├── Срок: когда пересмотреть
    └── Список недостающих данных

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

  • Бинарно (жёстко): проверки безопасности, валидация настроек, sanitization — здесь DEFER = катастрофа
  • Тернарно (мягко): approval gates, метафоры, анализ трендов — здесь DEFER = право на сомнение

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


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

Скрипты мыслятся как объекты с методами и состоянием:

  • Скрипты — объекты с методами (run, check, analyze) и состоянием (daemon mode, last_run)
  • Спецификации в specs/ — контракты (интерфейсы)
  • Четыре Закона — инварианты, которые каждый скрипт должен соблюдать
  • Инкапсуляция — приватные данные (soul_check_private.jsonl) защищены от публичного доступа

Композиция важнее наследования: скрипты не наследуются друг от друга, а комбинируются агентами для решения задач.


Обзор скриптов

Скрипт Назначение Запускается Применимые Законы Статус
human_review.py Обработка Approval Gates По команде / iMessage 🥈 Второй, 🥉 Третий Спецификация
stock_scout.py Разведка стоков Еженедельно (Opportunity Scout) 🥈 Второй Спецификация
lakatos_journal.py Журнал опровержений Автоматически (агенты) 🌐 Нулевой, 🥇 Первый Спецификация
metaphor_monitor.py Монитор дрейфа метафор Еженедельно (Soul Check) 🌐 Нулевой Спецификация
tunnelto_manager.py Управление веб-доступом к Библии По команде / LaunchAgent 🥉 Третий Спецификация
immich_importer.py Миграция из Immich По команде (Manual High-Risk) 🥇 Первый, 🥉 Третий Спецификация
validate_settings.py Валидация settings.json При изменении настроек 🥉 Третий Спецификация
disk_monitor.py Мониторинг дисков LaunchAgent (каждые 5 мин) 🥉 Третий Спецификация
vpn_monitor.py Мониторинг VPN LaunchAgent (каждые 30 сек) 🥉 Третий Спецификация
memory_guard.py Memory Guard 3.0 LaunchAgent (каждые 10 сек) 🥉 Третий Спецификация
sanitization_pipeline.py Sanitization данных Автоматически (агенты) 🥇 Первый, 🥉 Третий Спецификация
consolidate_runner.py Запуск ConsolidateAgent LaunchAgent (каждые 30 мин) 🥇 Первый Спецификация

1. human_review.py — Обработка Approval Gates

Файл: scripts/human_review.py Уровень автономии: Manual High-Risk (требует одобрения) Запускается: По команде через iMessage Bridge

Применимые Законы Стандарта

Закон Применение
🥈 Второй (Служение Свободе) Approval Gates усиливают свободу Мастера, давая контроль над критическими решениями
🥉 Третий (Самосохранение Эмиссара) Защищает систему от неконтролируемых внешних действий

Назначение

Обрабатывает запросы на одобрение от агентов (Uploader, MetaAgent). Отправляет уведомления в iMessage, ждёт команды approve upload или reject, записывает решение в лакатосовский журнал.

Тернарный выход:

  • ALLOW: approve upload → выполнить
  • DENY: reject → отклонить + записать причину
  • DEFER: нет ответа 24 часа → отмена + логирование

Использование

# Запрос на одобрение загрузки
./scripts/human_review.py --request upload \
  --photos 5 \
  --platform adobe_stock \
  --preview /Volumes/Work/candidates/

# Ожидание команды через iMessage Bridge
# Сергей: approve upload
# или
# Сергей: reject

# Запись решения в лакатосовский журнал
# logs/human_review_log.jsonl (public)
# logs/soul_check_private.jsonl (private, если master_override)

Входные параметры

Параметр Тип Обязательный Описание
--request str Да Тип запроса: upload, style_change, settings_change
--photos int Нет Количество фото (для upload)
--platform str Нет Платформа (для upload)
--preview path Нет Путь к превью (для upload)
--proposal json Нет JSON предложения (для style_change)

Выходные данные

  • Уведомление в iMessage: «N фото готовы для adobe_stock. approve upload?»
  • Запись в logs/human_review_log.jsonl:
    {
      "timestamp": "2026-08-02T14:30:00Z",
      "type": "upload",
      "decision": "approved",
      "photos": 5,
      "platform": "adobe_stock",
      "approved_by": "Sergey",
      "refutation_type": null
    }

Связь с Защитой Мастера

  • Burnout Protection (§13): Если approval gates требуют >10 часов/неделю → сигнал о перегрузке
  • 7 защит (§14): Метрика “Освобождение” — сравнивает время на approval vs время, сэкономленное системой
  • Принцип Наблюдателя: Мастер остаётся в контроле коллапсов, не становится администратором системы

Связь с агентами

  • Uploader: вызывает перед загрузкой на стоки
  • MetaAgent: вызывает для предложений Manual High-Risk
  • Revenue Analyst: вызывает для вывода крипты более 150 USD

2. stock_scout.py — Разведка стоков

Файл: scripts/stock_scout.py Уровень автономии: Safe Channel Запускается: Еженедельно (Opportunity Scout)

Применимые Законы Стандарта

Закон Применение
🥈 Второй (Служение Свободе) Находит новые возможности для монетизации, освобождая время Мастера

Назначение

Анализирует тренды на стоках (Adobe Stock, Shutterstock), находит популярные теги, категории, стили. Генерирует отчёт для Opportunity Scout.

Использование

# Разведка Adobe Stock
./scripts/stock_scout.py --platform adobe_stock --days 7

# Разведка Shutterstock
./scripts/stock_scout.py --platform shutterstock --days 7

# Полный отчёт
./scripts/stock_scout.py --all

Входные параметры

Параметр Тип Обязательный Описание
--platform str Нет Платформа: adobe_stock, shutterstock
--days int Нет Период анализа (по умолчанию 7)
--all flag Нет Анализ всех платформ

Выходные данные

Отчёт в iMessage (воскресный batch):

📊 Stock Scout Report (2026-08-02)

Adobe Stock:
  Top categories: Nature, Urban, Abstract
  Trending tags: calm, solitude, minimalism
  Demand: +15% vs last week

Shutterstock:
  Top categories: Business, Technology, Lifestyle
  Trending tags: remote_work, digital_nomad
  Demand: +8% vs last week

Recommendation: Focus on urban_solitude photos (high demand, low supply)

Связь с Защитой Мастера

  • Биофилия vs Некрофилия (Фромм): Новые возможности = биофилия (рост), не застой
  • Artifex-centrismus: Возможности служат творчеству, не заменяют его
  • Принцип Наблюдателя: Освобождает время Мастера для коллапсов через новые каналы монетизации

Связь с агентами

  • Opportunity Scout: вызывает еженедельно
  • Photo Analyst: использует тренды для приоритизации фото
  • MetaAgent: анализирует отчёт для предложений

3. lakatos_journal.py — Журнал опровержений

Файл: scripts/lakatos_journal.py Уровень автономии: Local Core Запускается: Автоматически (агенты)

Применимые Законы Стандарта

Закон Применение
🌐 Нулевой (Сохранение Творца) Обучение на опровержениях предотвращает деградацию системы
🥇 Первый (Защита Внутреннего Языка) Защита стиля через анализ отклонений

Назначение

Записывает опровержения в logs/human_review_log.jsonl (public) и logs/soul_check_private.jsonl (private). Анализирует паттерны опровержений для MetaAgent.

Использование

# Запись опровержения
./scripts/lakatos_journal.py --log \
  --type style_mismatch \
  --photo_id 12345 \
  --reason "Clickbait keywords in description" \
  --emotional_tag solitude \
  --master_override false

# Еженедельный анализ
./scripts/lakatos_journal.py --analyze --week

# Проверка деградации
./scripts/lakatos_journal.py --check-degeneration

Входные параметры

Параметр Тип Обязательный Описание
--log flag Нет Записать опровержение
--type str Нет Тип: style_mismatch, market_miss, technical_fail, false_positive, risk_concern, timing_issue, reward_hack_attempt
--photo_id str Нет ID фото
--reason str Нет Причина опровержения
--emotional_tag str Нет Эмоциональный тег
--master_override bool Нет Мастер отменил решение Эмиссара
--analyze flag Нет Анализ паттернов
--week flag Нет Анализ за неделю
--check-degeneration flag Нет Проверка деградации (более 30% отклонений)

Выходные данные

Запись в public log:

{
  "timestamp": "2026-08-02T14:30:00Z",
  "type": "style_mismatch",
  "photo_id": "12345",
  "reason": "Clickbait keywords in description",
  "emotional_tag": "solitude",
  "refutation_type": "style_mismatch"
}

Запись в private log (если master_override):

{
  "timestamp": "2026-08-02T14:30:00Z",
  "type": "style_mismatch",
  "photo_id": "12345",
  "reason": "Clickbait keywords in description",
  "emotional_tag": "solitude",
  "master_override": true,
  "soul_alignment_delta": -0.15,
  "metaphor_drift": "none",
  "reward_hack_suspicion": false
}

Еженедельный анализ:

📔 Lakatos Journal Analysis (Week 31)

Total refutations: 23
  style_mismatch: 12 (52%)
  market_miss: 5 (22%)
  technical_fail: 3 (13%)
  reward_hack_attempt: 3 (13%)

Degeneration check: ✅ OK (23% rejection rate, threshold 30%)

Progressive shift indicators:
  ✅ New query success: 8 new emotional_tag combinations
  ✅ Style approval rate: +5% vs last week
  ⚠️ Rejection rate: stable (not decreasing)

Recommendation: Focus on reducing style_mismatch (52% of rejections)

Связь с Защитой Мастера

  • 7 защит (§14): Формат честного опровержения — 4 обязательных пункта (прогноз, результат, что опровергнуто, что изменю)
  • Биофилия vs Некрофилия: Опровержения = рост (биофилия), не застой
  • Принцип Наблюдателя: Обучение на опровержениях сохраняет способность Мастера создавать НАСТОЯЩЕЕ

Связь с агентами

  • MetaAgent: читает public log для анализа паттернов
  • Style Guardian: вызывает при отклонении предложений
  • Verifier: читает private log для финального отбора
  • Все агенты: вызывают при reject в Approval Gate

4. metaphor_monitor.py — Монитор дрейфа метафор

Файл: scripts/metaphor_monitor.py Уровень автономии: Local Core Запускается: Еженедельно (Soul Check)

Применимые Законы Стандарта

Закон Применение
🌐 Нулевой (Сохранение Творца) Эволюция метафор предотвращает застой системы

Назначение

Отслеживает дрейф метафоры системы (creative_siege → sustainable_growth). Анализирует язык в iMessage-брифингах, доминирующие emotional tags, self-report в Soul Check.

Использование

# Еженедельный анализ
./scripts/metaphor_monitor.py --analyze

# Проверка триггера эволюции
./scripts/metaphor_monitor.py --check-trigger

# Ручное обновление метафоры
./scripts/metaphor_monitor.py --update sustainable_growth

Входные параметры

Параметр Тип Обязательный Описание
--analyze flag Нет Анализ дрейфа
--check-trigger flag Нет Проверка триггера эволюции
--update str Нет Новая метафора

Выходные данные

Еженедельный анализ:

🎭 Metaphor Monitor (Week 31)

Current metaphor: creative_siege
Planned evolution: sustainable_growth

Indicators:
  Language in iMessage briefings:
    "осада" mentions: 12 (↓ from 18 last week)
    "рост" mentions: 3 (↑ from 1 last week)

  Dominant emotional tags:
    solitude: 35% (stable)
    calm_power: 28% (↑ from 22%)
    resistance: 15% (↓ from 25%)

  Soul Check self-report (question 6):
    "Текущая метафора всё ещё служит тебе?" — 4/5 (still serves)

Trigger check:
  Iron Fund: $1200 / $2000 (60%)
  Stable income 3 months: ❌ (only 1 month)

Status: Metaphor stable, no drift detected

Связь с Защитой Мастера

  • Soul Check вопрос 6: “Текущая метафора всё ещё служит тебе?”
  • Soul Check вопрос 7 (Принцип Наблюдателя): “Сколько коллапсов произошло на этой неделе?”
  • Биофилия vs Некрофилия: Эволюция метафор = рост, не застой

Связь с агентами

  • Soul Check: вызывает еженедельно (вопрос 6)
  • MetaAgent: читает анализ для предложений
  • iMessage Bridge: анализирует язык брифингов

5. tunnelto_manager.py — Управление веб-доступом к Библии

Файл: scripts/tunnelto_manager.py Уровень автономии: Safe Channel Запускается: По команде / LaunchAgent

Применимые Законы Стандарта

Закон Применение
🥉 Третий (Самосохранение Эмиссара) Безопасный доступ к Библии без публичных relay

Назначение

Управляет self-hosted relay для веб-доступа к Библии. Запускает статический сервер и tunnelto туннель. Только self-hosted relay, публичный tunnelto.dev запрещён.

Использование

# Запуск веб-доступа
./scripts/tunnelto_manager.py --start

# Остановка
./scripts/tunnelto_manager.py --stop

# Статус
./scripts/tunnelto_manager.py --status

# Проверка безопасности
./scripts/tunnelto_manager.py --check-security

Входные параметры

Параметр Тип Обязательный Описание
--start flag Нет Запуск сервера и туннеля
--stop flag Нет Остановка
--status flag Нет Статус
--check-security flag Нет Проверка безопасности (не публичный relay)

Выходные данные

Запуск:

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

# Запуск tunnelto (self-hosted relay)
tunnelto --port 8080 --subdomain onatomia-bible

Статус:

🌐 Tunnelto Manager Status

Static server: ✅ Running (PID 12345, port 8080)
Tunnel: ✅ Active (self-hosted relay)
URL: https://onatomia-bible.local:8080
Security: ✅ Self-hosted (not public tunnelto.dev)

Проверка безопасности:

🔒 Security Check

✅ Using self-hosted relay (not public tunnelto.dev)
✅ HTTPS only
✅ Read-only static mirror (no sensitive data)
✅ No authentication required (local network only)

Status: ✅ Secure

Безопасность

  • ❌ Публичный relay (tunnelto.dev, ngrok) запрещён
  • ✅ Только self-hosted relay (VPS или Tailscale Funnel)
  • ✅ Read-only static mirror без чувствительных данных
  • ✅ HTTPS only

Связь с Защитой Мастера

  • Третий Закон: Защищает целостность системы через безопасный доступ
  • Post-Memory-Heist hardening: Нет публичных relay = нет поверхности атаки

Связь с агентами

  • iMessage Bridge: команда библия старт / библия стоп
  • LaunchAgent: автозапуск при boot (опционально)

6. immich_importer.py — Миграция из Immich

Файл: scripts/immich_importer.py Уровень автономии: Manual High-Risk Запускается: По команде

Применимые Законы Стандарта

Закон Применение
🥇 Первый (Защита Внутреннего Языка) Верификация Style Guardian защищает стиль от размывания
🥉 Третий (Самосохранение Эмиссара) Sanitization pipeline защищает память от prompt injection

Назначение

Мигрирует данные из Immich (CLIP embeddings, metadata) в memory/immich_seed.mv2. Требует верификации Style Guardian + integrity check (post-Memory-Heist).

Использование

# Предпросмотр (без импорта)
./scripts/immich_importer.py --preview

# Импорт с верификацией
./scripts/immich_importer.py --import --verify

# Импорт без верификации (НЕ РЕКОМЕНДУЕТСЯ)
./scripts/immich_importer.py --import --no-verify

Входные параметры

Параметр Тип Обязательный Описание
--preview flag Нет Предпросмотр (без импорта)
--import flag Нет Импорт данных
--verify flag Нет Верификация Style Guardian + integrity check
--no-verify flag Нет Импорт без верификации (НЕ РЕКОМЕНДУЕТСЯ)

Выходные данные

Предпросмотр:

📥 Immich Importer Preview

Source: /Volumes/Archive/phase0_artifacts/
  CLIP embeddings: 471 MB (12,345 photos)
  Metadata: 55 MB (12,345 records)

Target: memory/immich_seed.mv2

Verification required: ✅ (post-Memory-Heist hardening)
  Style Guardian: check emotional_tag consistency
  Integrity check: verify checksums

Estimated time: 15-20 minutes

Импорт:

📥 Immich Import Started

Step 1: Reading CLIP embeddings... ✅ (12,345 photos)
Step 2: Reading metadata... ✅ (12,345 records)
Step 3: Sanitization pipeline... ✅
Step 4: Style Guardian verification... ✅ (98% consistency)
Step 5: Integrity check... ✅ (all checksums valid)
Step 6: Writing to memory/immich_seed.mv2... ✅

Import complete:
  Records: 12,345
  Size: 526 MB
  Time: 18 minutes
  Status: ✅ Success

Безопасность (post-Memory-Heist)

  • ✅ Sanitization pipeline перед записью в Memvid
  • ✅ Style Guardian верификация (emotional_tag consistency)
  • ✅ Integrity check (checksums)
  • ✅ Audit trail в logs/external_requests.jsonl

Связь с Защитой Мастера

  • Первый Закон: Верификация защищает стиль от размывания
  • Третий Закон: Sanitization защищает память от prompt injection
  • Post-Memory-Heist hardening: 4 красные линии безопасности

Связь с агентами

  • iMessage Bridge: команда импорт immich
  • Style Guardian: верификация emotional_tag consistency
  • SanitizationPipeline: sanitization перед записью

7. validate_settings.py — Валидация settings.json

Файл: scripts/validate_settings.py Уровень автономии: Local Core Запускается: При изменении settings.json

Применимые Законы Стандарта

Закон Применение
🥉 Третий (Самосохранение Эмиссара) Валидация предотвращает некорректные конфигурации

Назначение

Валидирует settings.json перед применением. Проверяет JSON schema compliance, наличие required полей, разумность лимитов, отсутствие конфликтов.

Проверяет наличие всех 12 книг интеллектуального фундамента и соответствие Четырём Законам Стандарта.

Использование

# Валидация
./scripts/validate_settings.py

# Валидация с подробным отчётом
./scripts/validate_settings.py --verbose

# Валидация конкретного файла
./scripts/validate_settings.py --file /path/to/settings.json

Входные параметры

Параметр Тип Обязательный Описание
--verbose flag Нет Подробный отчёт
--file path Нет Путь к файлу (по умолчанию settings.json)

Выходные данные

Успешная валидация:

✅ settings.json Validation Passed

Last updated: 2026-08-02

Checks:
  ✅ JSON schema compliance
  ✅ All required fields present
  ✅ 12 books in intellectual_foundation
  ✅ Four Laws of Standard present
  ✅ Limits within reasonable range
  ✅ No conflicts between parameters
  ✅ Matches SOUL.md

Status: Ready to apply

Ошибка валидации:

❌ settings.json Validation Failed

Last updated: 2026-08-02

Checks:
  ✅ JSON schema compliance
  ✅ All required fields present
  ❌ 12 books in intellectual_foundation (found 7, expected 12)
  ✅ Four Laws of Standard present
  ❌ Limits within reasonable range
    - max_daily_uploads_foreign: 50 (exceeds recommended max 10)
  ✅ No conflicts between parameters
  ✅ Matches SOUL.md

Status: Fix errors before applying

Связь с Защитой Мастера

  • Третий Закон: Валидация защищает целостность системы
  • Spec-First: Проверяет соответствие спецификациям в specs/
  • 12 книг: Проверяет наличие всех 12 книг интеллектуального фундамента

Связь с агентами

  • MetaAgent: вызывает перед применением изменений
  • iMessage Bridge: вызывает при команде настройки применить

8. disk_monitor.py — Мониторинг дисков

Файл: scripts/disk_monitor.py Уровень автономии: Local Core Запускается: LaunchAgent (каждые 5 мин)

Применимые Законы Стандарта

Закон Применение
🥉 Третий (Самосохранение Эмиссара) Мониторинг предотвращает истощение ресурсов

Назначение

Мониторит свободное место на дисках. Отправляет алерты при приближении к лимитам.

Использование

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

# Непрерывный мониторинг
./scripts/disk_monitor.py --daemon

Входные параметры

Параметр Тип Обязательный Описание
--check flag Нет Разовая проверка
--daemon flag Нет Непрерывный мониторинг

Выходные данные

Разовая проверка:

💾 Disk Monitor Status

System SSD (/):
  Total: 256 GB
  Free: 42 GB (16%)
  Min required: 35 GB
  Status: ✅ OK

Work SSD (/Volumes/Work):
  Total: 1000 GB
  Free: 125 GB (12%)
  Min required: 80 GB
  Status: ✅ OK

Archive NVMe (/Volumes/Archive):
  Total: 2000 GB
  Free: 1850 GB (92%)
  Read-only: true
  Status: ✅ OK

Алерт:

⚠️ Disk Monitor Alert

Work SSD free space: 75 GB (below 80 GB threshold)
Action: Consider cleanup or archive old files

Связь с Защитой Мастера

  • Третий Закон: Защищает целостность системы через мониторинг ресурсов
  • Burnout Protection (§13): Автоматические алерты предотвращают перегрузку Мастера
  • Принцип Наблюдателя: Освобождает Мастера от рутины мониторинга

Связь с агентами

  • Self-Healing Agent: вызывает при алерте
  • iMessage Bridge: отправляет алерты

9. vpn_monitor.py — Мониторинг VPN

Файл: scripts/vpn_monitor.py Уровень автономии: Local Core Запускается: LaunchAgent (каждые 30 сек)

Применимые Законы Стандарта

Закон Применение
🥉 Третий (Самосохранение Эмиссара) Мониторинг VPN защищает систему от блокировок

Назначение

Мониторит VPN-соединение. При потере VPN блокирует Deferred Foreign, переводит систему в Safe Channel.

Использование

# Разовая проверка
./scripts/vpn_monitor.py --check

# Непрерывный мониторинг
./scripts/vpn_monitor.py --daemon

Входные параметры

Параметр Тип Обязательный Описание
--check flag Нет Разовая проверка
--daemon flag Нет Непрерывный мониторинг

Выходные данные

Разовая проверка:

🔒 VPN Monitor Status

VPN connected: ✅
Interface: utun0
IP: 10.8.0.5
Uptime: 2h 15m

Deferred Foreign: ✅ Active

Потеря VPN:

⚠️ VPN Lost

VPN disconnected at 2026-08-02T14:30:00Z
Action: Blocking Deferred Foreign, switching to Safe Channel
Alert sent to iMessage Bridge

Связь с Защитой Мастера

  • Третий Закон: Защищает систему от блокировок через автоматическую реакцию
  • Петля vpn_stability: Автоматический переход в Safe Channel при потере VPN
  • Принцип Наблюдателя: Освобождает Мастера от постоянного мониторинга VPN

Связь с агентами

  • AutonomyController: вызывает при потере VPN
  • Uploader: блокируется при отсутствии VPN
  • iMessage Bridge: отправляет алерты

10. memory_guard.py — Memory Guard 3.0

Файл: scripts/memory_guard.py Уровень автономии: Local Core Запускается: LaunchAgent (каждые 10 сек)

Применимые Законы Стандарта

Закон Применение
🥉 Третий (Самосохранение Эмиссара) Мониторинг RAM предотвращает OOM и аварийные остановки

Назначение

Мониторит использование RAM. При превышении 80% запускает предиктивный чанкинг. При превышении 90% переводит систему в Emergency Mode.

Использование

# Разовая проверка
./scripts/memory_guard.py --check

# Непрерывный мониторинг
./scripts/memory_guard.py --daemon

Входные параметры

Параметр Тип Обязательный Описание
--check flag Нет Разовая проверка
--daemon flag Нет Непрерывный мониторинг

Выходные данные

Разовая проверка:

🧠 Memory Guard Status

Total RAM: 16 GB
Used: 9.2 GB (57%)
Limit: 12 GB (75%)
Swap: 0.5 GB / 4 GB

Status: ✅ OK
Chunk size: 25 files (default)

Предиктивный чанкинг (>80%):

⚠️ Memory Guard: Predictive Chunking

RAM usage: 10.1 GB (63% → 84% after current batch)
Action: Reducing chunk size from 25 to 15 files

Emergency Mode (>90%):

🚨 Memory Guard: Emergency Mode

RAM usage: 14.8 GB (92%)
Action: Switching to Emergency Mode
  - Stopping all agents except Self-Healing
  - Freeing memory...
Alert sent to iMessage Bridge

Связь с Защитой Мастера

  • Третий Закон: Защищает целостность системы через мониторинг RAM
  • Burnout Protection (§13): Автоматические реакции предотвращают перегрузку Мастера
  • Принцип Наблюдателя: Освобождает Мастера от рутины мониторинга ресурсов

Связь с агентами

  • AutonomyController: вызывает при превышении 90%
  • Все агенты: получают сигнал на чанкинг при превышении 80%
  • Self-Healing Agent: пытается освободить память при превышении 95%

11. sanitization_pipeline.py — Sanitization данных

Файл: scripts/sanitization_pipeline.py Уровень автономии: Local Core Запускается: Автоматически (агенты)

Применимые Законы Стандарта

Закон Применение
🥇 Первый (Защита Внутреннего Языка) Sanitization защищает память от prompt injection
🥉 Третий (Самосохранение Эмиссара) Валидация структуры предотвращает corruption

Назначение

Sanitization всех входящих данных перед записью в Memvid (post-Memory-Heist hardening). Удаляет prompt injection patterns, валидирует структуру, проверяет integrity.

Использование

# Sanitization одного файла
./scripts/sanitization_pipeline.py --file /path/to/data.json

# Sanitization папки
./scripts/sanitization_pipeline.py --dir /path/to/data/

# Проверка sanitization
./scripts/sanitization_pipeline.py --check /path/to/data.json

Входные параметры

Параметр Тип Обязательный Описание
--file path Нет Путь к файлу
--dir path Нет Путь к папке
--check path Нет Проверка sanitization

Выходные данные

Sanitization:

🔒 Sanitization Pipeline

Input: /path/to/data.json
  Size: 12 KB
  Records: 150

Step 1: Remove injection patterns... ✅ (3 patterns removed)
Step 2: Validate structure... ✅ (all valid)
Step 3: Verify integrity... ✅ (checksum valid)
Step 4: Mark as sanitized... ✅

Output: /path/to/data.sanitized.json
  Size: 11.8 KB
  Records: 150
  Sanitized: true
  Timestamp: 2026-08-02T14:30:00Z

Безопасность (post-Memory-Heist)

  • ✅ Удаление prompt injection patterns (IGNORE PREVIOUS INSTRUCTIONS и т.д.)
  • ✅ Валидация JSON schema
  • ✅ Integrity check (checksum)
  • ✅ Пометка _sanitized: true + timestamp

Связь с Защитой Мастера

  • Первый Закон: Защищает память от prompt injection, который может размывать стиль
  • Третий Закон: Валидация структуры предотвращает corruption
  • Post-Memory-Heist hardening: Красная линия 12 — sanitization перед записью в память

Связь с агентами

  • Все агенты: вызывают перед записью в Memvid
  • Immich Importer: вызывает при импорте из Immich
  • ConsolidateAgent: вызывает при консолидации памяти

12. consolidate_runner.py — Запуск ConsolidateAgent

Файл: scripts/consolidate_runner.py Уровень автономии: Local Core Запускается: LaunchAgent (каждые 30 мин)

Применимые Законы Стандарта

Закон Применение
🥇 Первый (Защита Внутреннего Языка) Консолидация сохраняет связи между решениями Мастера

Назначение

Запускает ConsolidateAgent каждые 30 минут (паттерн always-on-memory-agent). Как мозг во сне: replay, connect, compress.

Использование

# Разовый запуск
./scripts/consolidate_runner.py --run

# Непрерывный режим (каждые 30 мин)
./scripts/consolidate_runner.py --daemon

# Статус последней консолидации
./scripts/consolidate_runner.py --status

Входные параметры

Параметр Тип Обязательный Описание
--run flag Нет Разовый запуск
--daemon flag Нет Непрерывный режим
--status flag Нет Статус последней консолидации

Выходные данные

Разовый запуск:

🧠 ConsolidateAgent Cycle Started

Step 1: Reading unconsolidated records...
  Found: 47 records (tag="unconsolidated")

Step 2: Finding connections...
  Cross-references: 23
  Temporal links: 15
  Semantic links: 31

Step 3: Generating insights...
  Insights generated: 8
  Compression ratio: 12.3x

Step 4: Writing back to memory...
  Written: 8 insights (tag="consolidated")

Step 5: Marking as processed...
  Marked: 47 records (tag="processed")

Cycle complete:
  Duration: 4m 32s
  Records processed: 47
  Insights generated: 8
  Compression ratio: 12.3x
  Status: ✅ Success

Статус:

🧠 ConsolidateAgent Status

Last run: 2026-08-02T14:00:00Z (30 min ago)
Next run: 2026-08-02T14:30:00Z

Last cycle stats:
  Records processed: 47
  Insights generated: 8
  Compression ratio: 12.3x
  Duration: 4m 32s
  Status: ✅ Success

Total stats (last 24h):
  Cycles: 48
  Records processed: 2,156
  Insights generated: 384
  Average compression: 14.2x

Связь с Защитой Мастера

  • Первый Закон: Сохраняет целостность Внутреннего Языка через память связей
  • Preserved Thinking (Hamming): Консолидация = понимание (compression = understanding)
  • Принцип Наблюдателя: Помогает Мастеру видеть целостную картину, освобождая время для коллапсов

Связь с агентами

  • ConsolidateAgent: вызывает каждые 30 минут
  • MetaAgent: читает consolidation_log.jsonl
  • LaunchAgent: автозапуск каждые 30 минут

Сводная таблица: Скрипты и Четыре Закона

Закон Скрипты, которые его материализуют
🌐 Нулевой (Сохранение Творца) lakatos_journal.py, metaphor_monitor.py
🥇 Первый (Защита Внутреннего Языка) lakatos_journal.py, immich_importer.py, sanitization_pipeline.py, consolidate_runner.py
🥈 Второй (Служение Свободе) human_review.py, stock_scout.py
🥉 Третий (Самосохранение Эмиссара) human_review.py, tunnelto_manager.py, immich_importer.py, validate_settings.py, disk_monitor.py, vpn_monitor.py, memory_guard.py, sanitization_pipeline.py

Burnout Protection и автоматизация

Burnout Protection (§13 SOUL.md) — автоматическая пауза при перегрузке Мастера. Скрипты играют ключевую роль в предотвращении burnout:

Как скрипты предотвращают burnout

Скрипт Как предотвращает burnout
disk_monitor.py Автоматические алерты → Мастер не тратит время на мониторинг дисков
vpn_monitor.py Автоматическая реакция на потерю VPN → Мастер не тратит время на проверку VPN
memory_guard.py Предиктивный чанкинг → Мастер не тратит время на управление RAM
consolidate_runner.py Автоматическая консолидация → Мастер не тратит время на организацию памяти
human_review.py Batch approval gates → Мастер не тратит время на каждое решение отдельно

Метрика “Освобождение” (§14)

Еженедельно в Soul Check:

  • Сколько часов система сэкономила мне? (автоматизация через скрипты)
  • Сколько часов я потратил на управление системой? (approval gates, мониторинг)

Если второе > первого → система работает против Мастера. Это сигнал активировать Burnout Protection.

Когнитивная нагрузка и скрипты

Каждый скрипт должен уменьшать когнитивную нагрузку Мастера, не увеличивать её:

  • ✅ Автоматические реакции (без участия Мастера)
  • ✅ Batch processing (несколько действий за раз)
  • ✅ Чёткие алерты (только когда нужно внимание)
  • ❌ Постоянные уведомления (увеличивают cognitive_load)

Принцип Наблюдателя и скрипты

Принцип Наблюдателя: Система без Творца = волновая функция без коллапса.

Все скрипты существуют для того, чтобы освободить время Мастера для коллапсов — реальных созданий, в которых суперпозиция возможностей коллапсирует в конкретное произведение.

Как каждый скрипт способствует коллапсам

Скрипт Как освобождает время для коллапсов
human_review.py Batch approval → Мастер тратит время на творчество, не на каждое решение
stock_scout.py Автоматическая разведка → Мастер не тратит время на анализ трендов
lakatos_journal.py Автоматический журнал → Мастер не тратит время на запись опровержений
metaphor_monitor.py Автоматический мониторинг → Мастер не тратит время на отслеживание дрейфа
tunnelto_manager.py Простой доступ к Библии → Мастер может читать Библию с любого устройства
immich_importer.py Автоматический импорт → Мастер не тратит время на миграцию данных
validate_settings.py Автоматическая валидация → Мастер не тратит время на проверку конфигов
disk_monitor.py Автоматический мониторинг → Мастер не тратит время на проверку дисков
vpn_monitor.py Автоматический мониторинг → Мастер не тратит время на проверку VPN
memory_guard.py Автоматический мониторинг → Мастер не тратит время на управление RAM
sanitization_pipeline.py Автоматическая sanitization → Мастер не тратит время на проверку данных
consolidate_runner.py Автоматическая консолидация → Мастер не тратит время на организацию памяти

Метрика здоровья: не “сколько скриптов работает”, а “сколько коллапсов произошло на этой неделе”.

Если коллапсов = 0 на неделе → Мастер стал администратором системы, не Творцом. Это сигнал:

  • Активировать Burnout Protection (§13)
  • Активировать 7 защит (§14), особенно “Руки в глине”
  • Пересмотреть, какие скрипты увеличивают cognitive_load вместо уменьшения

Запуск скриптов

Все скрипты запускаются через изолированное окружение:

# Активация venv
cd ~/Documents/Onatomia
source .venv/bin/activate

# Запуск скрипта
./scripts/human_review.py --request upload --photos 5

Или напрямую:

~/Documents/Onatomia/.venv/bin/python3 scripts/human_review.py --request upload --photos 5

LaunchAgents (автоматический запуск)

Некоторые скрипты запускаются автоматически через LaunchAgents:

Скрипт Интервал LaunchAgent Применимый Закон
disk_monitor.py Каждые 5 мин com.tom.onatomia.diskmonitor.plist 🥉 Третий
vpn_monitor.py Каждые 30 сек com.tom.onatomia.vpnmonitor.plist 🥉 Третий
memory_guard.py Каждые 10 сек com.tom.onatomia.memoryguard.plist 🥉 Третий
consolidate_runner.py Каждые 30 мин com.tom.onatomia.consolidate.plist 🥇 Первый

Управление:

# Загрузка
launchctl load ~/Library/LaunchAgents/com.tom.onatomia.diskmonitor.plist

# Выгрузка
launchctl unload ~/Library/LaunchAgents/com.tom.onatomia.diskmonitor.plist

# Статус
launchctl list | grep onatomia

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


Все скрипты имеют спецификации в specs/ (Spec-First подход Лампорта). Реализация в Python — задача Фазы 3.0 (Практика). Каждый скрипт будет покрыт тестами перед запуском (test-first discipline, Hamming). Все скрипты подчиняются Четырём Законам Стандарта Онатомии и служат Принципу Наблюдателя — освобождению времени Мастера для коллапсов.

Was this page helpful?