Библиотека скриптов
Утилиты и инструменты для работы с системой
Дата: Август 2026 Статус: ACTIVE (спецификации), IN PROGRESS (реализация)
Все скрипты Онатомии находятся в папке scripts/ и запускаются через изолированное окружение .venv. Каждый скрипт имеет чёткое назначение, входные/выходные параметры, связи с агентами и применимые Законы Стандарта Онатомии.
Скрипты существуют для того, чтобы освободить время Мастера для коллапсов (Принцип Наблюдателя) — реальных созданий, в которых суперпозиция возможностей коллапсирует в конкретное произведение.
Spec-First подход для скриптов
Каждый скрипт может иметь отдельную спецификацию в директории specs/ (Spec-First подход Лампорта). Это гарантирует, что скрипты:
- Имеют чёткие контракты (что делают, что не делают)
- Соответствуют Четырём Законам Стандарта
- Имеют Definition of Done
- Могут быть безопасно изменены
Workflow:
- Spec Mode — пишется
specs/<script>.spec.md - Approval Gate — Мастер одобряет спецификацию
- 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
Связь с другими разделами
- Стандарт Онатомии — Четыре Закона, которым подчиняются все скрипты
- Обзор архитектуры — как скрипты вписываются в общую архитектуру, тернарность, ООП
- Спецификации агентов — какие агенты вызывают какие скрипты, Spec-First подход
- Справочник настроек — конфигурация скриптов в settings.json
- Диагностика — troubleshooting скриптов
- Защита Мастера — Burnout Protection (§13), 7 защит (§14)
- SOUL.md — контракт, красные линии, которые скрипты не должны нарушать
Все скрипты имеют спецификации в specs/ (Spec-First подход Лампорта). Реализация в Python — задача Фазы 3.0 (Практика). Каждый скрипт будет покрыт тестами перед запуском (test-first discipline, Hamming). Все скрипты подчиняются Четырём Законам Стандарта Онатомии и служат Принципу Наблюдателя — освобождению времени Мастера для коллапсов.