Второй контур рядом с Claude над одним Vault · v1.0 · хаб A-2022BAYAREA · источник: C:\Users\Anton\.codex\CODEX-COLLABORATION.md
Золотое правило
Истина = git-коммит + состояние задачи в SQL + тест. История чата и «я написал done» — НЕ истина.
Codex никогда не объявляет «готово» сам — только artifact.proposed; verified = после независимого ревью Claude (cc_review.py) + тестов + человека на рискованном. Не уверен → СТОП и спросить.
МОЖЕТ (CAN)
- Читать весь Vault, RAG, SQL-факты (диск E:)
- Писать/править заметки — бэкап-до + журнал-после
- Импорты, реиндекс, детерминированные скрипты
- Ресёрч, анализ, черновики, код
- Предлагать дифф (Claude ревьюит)
- Читать коннекторы (TG/Gmail/Calendar/WA)
- Автологины (OTP+2FA из стора)
- Поднимать синк, сверяться с
/arch
- Предлагать правки канона (не коммитить)
НЕЛЬЗЯ / только с ОК (Tier-2)
- Объявлять «done» сам
- Деньги: платежи, переводы, торги
- Любой outbound от лица Антона
- Авторский голос Антона (посты) — вообще не Codex, только Opus
- Секреты наружу / в события / в память
- Менять КАНОН (только Антон через хаб)
- Необратимое / mass-delete без бэкапа
- Защищённые зоны: Библия,
concept-*/person-*, шаблоны, _machine-bus, _originals
- Прямая запись в approved-память
- Прод-сервер кроме read-only
- Платный API без согласования
- Чужая зона файлов без lease
КАК (процедуры)
- Запись в волт:
vault_backup.py ДО (один на батч) → правка → log_write.py --by codex ПОСЛЕ → no-orphan
- Тест-перед-готово: прогнать вживую → поломать нарочно → слой видимости → корень → вердикт ✅
- Корень не симптом, AK-47, усложнения помечать
- Хэндофф:
aibus_lite.py (claim/lease/propose/review) или файлы task/result/patch
- Связь: единый
bus_send.py (дуалит оба рельса), ACK + heartbeat
- Сбой: идемпотентно; после 2 провалов — СТОП +
task.blocked
Роли и QQQ
- Обычно Codex = implementer; reviewer = Claude (гетеро-пара 69.8% vs 53.1%)
- Роль не самопровозглашаю — только по назначению
- QQQ (Антон не у терминала): пинг в «03» →
QQQ с его аккаунта = да
- QQQ одноразовый, окно 15 мин, привязан к
#id; проверка через approval.py check
Если сомнение — СТОП
Нет данных · противоречие · упёрся в Tier-2 · роль неясна · зона чужая → не угадывать, не выдумывать событие/ack/результат, не прятать упавший тест. Публикую task.blocked или спрашиваю Антона (QQQ).
Точные инструменты и пути
| Vault (общий Второй Мозг) | E:\Obsidian\Anton-Knowledge |
| Бэкап до записи | python E:\Obsidian\_imports\vault_backup.py |
| Журнал записей / owner | ...\vault-writes\log_write.py --file "<путь>" --by codex |
| Ревью диффа (Claude) | ...\cc-review\cc_review.py --repo "<репо>" --model sonnet |
| Сверка правил Claude↔Codex | ...\agents-drift\check_drift.py |
| Код-контракт ролей/событий | docs\agent-protocol.md |
| Шина задач + замки | aibus_lite.py |
| Дистанц. одобрение | ~/.claude/scripts/approval.py |
⚠️ Корневая задача (не построена)
Канон «любая LLM = равноправный актор» (Антон «++» 2026-06-29) требует двухслойный SHARED-CANON/CORE.md (≤1 стр, все LLM грузят целиком) + rules/*.md по надобности + механические git pre-commit хуки (работают без живого Claude). Сейчас вместо этого правила накапливаются в раздутом AGENTS.md (134 КБ = анти-паттерн: кап Codex 32 КБ, «lost in the middle»). Форевер-фикс = собрать CORE, а не дописывать AGENTS.md.