# Axiom AO — source documentation excerpts

Curated excerpts from project documentation, inspected on 2026-10-14. Original language: Russian. These excerpts establish the provenance of implementation descriptions; they are reported documentation, not independent execution or a fresh test. Hashes identify the complete source file at inspection time. Historical test revisions remain specific to the reported scenarios.

## organization/constitution.md, lines 3–9

Source SHA-256: 0376ee7215c3eca7496c0f8dbaca9f50460a075df07f3c7fb914f4368745de3e
Inspected: 2026-10-14T20:45:40+00:00

АО имеет устойчивую идентичность, назначение, полномочия, ресурсы и историю.
Владелец задаёт назначение и границы. ИИ-менеджер принимает организационные
решения и создаёт исполнителей под задачи. Служебный Python-код хранит состояние.

Один локальный экземпляр имеет одного действующего менеджера. Исполнители
и проверяющие не присваивают управление организацией. Реальные ограничения
ОС и движка действуют независимо от текста мандата.

## organization/constitution.md, lines 11–14

Source SHA-256: 0376ee7215c3eca7496c0f8dbaca9f50460a075df07f3c7fb914f4368745de3e
Inspected: 2026-10-14T20:45:40+00:00

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

## INSTALL.md, lines 3–7

Source SHA-256: 807074e6c5993c2234f0f469ec098b1c93ab3ea6f45872ba7d45d01c3e46b2d6
Inspected: 2026-10-14T20:45:40+00:00

Первый целевой профиль — Linux, Python 3.11+ и Git. Контейнеры не требуются.
Установка клиента и авторизация выполняются по официальной документации:
[Codex](https://developers.openai.com/codex/cli),
[Claude Code](https://code.claude.com/docs/en/setup),
[Antigravity CLI](https://www.antigravity.google/docs/cli/).

## INSTALL.md, lines 9–16

Source SHA-256: 807074e6c5993c2234f0f469ec098b1c93ab3ea6f45872ba7d45d01c3e46b2d6
Inspected: 2026-10-14T20:45:40+00:00

1. Получите репозиторий целиком и перейдите в его корень. Для ZIP создайте
   собственный Git через `git init`. Не используйте Git родительского проекта.
2. Проверьте `python3 --version`, `git --version`, выбранный клиент и его
   авторизацию штатным способом. Не копируйте auth-файлы в проект.
3. Выполните `python3 -m runtime doctor`. runtime_ready подтверждает файлы
   и локальные предпосылки, но не доступ к модели и не полный агентный цикл.
4. Откройте новую сессию в этом каталоге и поручите запуск с названием и целью.
   Либо используйте `python3 -m runtime run --engine <engine> --prompt <purpose>`.

## INSTALL.md, lines 18–27

Source SHA-256: 807074e6c5993c2234f0f469ec098b1c93ab3ea6f45872ba7d45d01c3e46b2d6
Inspected: 2026-10-14T20:45:40+00:00

Можно заранее задать name/goal в organization/mandate.toml или вызвать:

```bash
python3 -m runtime init --name "Research AO" --goal "Исследовать локальные материалы" --engine codex
```

init создаёт новую UUID и SQLite. Повтор с теми же параметрами сохраняет UUID;
изменение параметров существующего экземпляра через init запрещено. Действующее
name/goal хранится в SQLite; редактирование шаблонных значений после init его
не меняет. Границы читаются из organization/mandate.toml при каждой сессии.

## docs/runtime.md, lines 3–15

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

Версия 0.3.0-dev, Linux, Python 3.11+, стандартная библиотека. Менеджер принимает
организационные решения; runtime хранит состояние и обеспечивает доставку.
Нативные права клиента/ОС действуют независимо от мандата.

## Владельцы состояния

| Состояние | Единственный источник |
|---|---|
| Идентичность, сессии, задачи, действия, сообщения | state/organization.sqlite3 |
| События, пакеты и подтверждённые результаты | Та же SQLite, events/batches/receipts |
| Обещания, маршруты, расписание, фокус и изменения | Та же SQLite, отдельные таблицы |
| Эпохи памяти и снимки источников | state/agent-memory.sqlite3 |
| Нативные определения и инструкции | organization/; клиентские файлы генерируются |

## docs/runtime.md, lines 29–40

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

```text
wake receive -> wake start <batch>
  -> разрешённая работа и сохранение результата
  -> wake result <batch> --event-ids <JSON-list> --actions <evidence>
  -> wake done <batch>
```

Каждая команда менеджера получает `--session <id>` перед подкомандой или
AO_SESSION в окружении. При повторной доставке сохраняются id пакета и событий.
Сбой после result перед done позволяет сверить saved_result и подтвердить
выполненное. Получение и завершение — разные переходы. Подтверждение требует
всех event_ids ровно один раз и непустого результата.

## docs/runtime.md, lines 51–60

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

```bash
python3 -m runtime message send --id request-1 --text "Подготовь обзор локальных материалов"
python3 -m runtime message list --to owner
```

Сообщение сохраняется до запуска модели. Повтор с тем же id и содержимым
идемпотентен; другое содержимое с тем же id отклоняется. Ответ менеджера
содержит reply_to исходного сообщения. Имя участника является меткой локального
канала; аутентификация удалённых клиентов в этом выпуске не реализована.
Подключение чата не изменяет действующего менеджера.

## docs/runtime.md, lines 70–80

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

Он ожидает события, создаёт одну управляющую сессию, запускает конечный рабочий
ход нативного клиента и освобождает сессию после подтверждённого завершения
процесса. CLI получает AO_SESSION автоматически. Менеджер сохраняет checkpoint;
в этом режиме release выполняет запускатель. При занятом интерактивном менеджере
служба ожидает и не захватывает управление.

Метка service_running видна и между ходами; интерактивный claim в это время
отклоняется. PID/start_ticks/cwd привязываются до exec клиента. После рестарта
можно восстановить только сервисную сессию с проверяемой прежней привязкой,
если эта идентичность процесса больше не существует. Живой прежний менеджер
сохраняет управление. Неподтверждённая остановка оставляет работу blocked.

## docs/runtime.md, lines 175–178

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

Без проверенной привязки автоматическая остановка запрещена. Оператор может
выполнить session recover после фактической проверки остановки. Механизм локален;
он не является распределённым fencing или границей безопасности между процессами
с правами на изменение самой SQLite.

## docs/runtime.md, lines 182–197

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

commitment add требует promise/sensor, поддерживает due; close требует evidence,
drop — причину. Открытые обязательства возвращаются в context после перезапуска.
route связывает работу с ролью и нативным агентом: spawn/send/skip_paused/skip_closed.
Регистрация не доказывает реальный запуск; результаты клиента проверяются отдельно.

focus хранит незавершённый вопрос, следующее действие и условие возобновления.
coverage хранит область исследования, перечисленные объекты, причины выбора,
наблюдения и связь с решениями. Повторный анализ с прежними снимками выявляется
как диагностическое замечание; численные квоты на мышление не вводятся.
change хранит предложение, ожидание, решение менеджера и последующий результат.

Память независима от движка: state/memory/agents/<role>/. Команда
`python3 -m runtime.memory --role worker status` показывает применимость записей.
Изменение заметки, её зависимостей или срока отменяет прежнюю применимость.
Reset создаёт новую эпоху и снимки, сохраняя историю. MEMORY.md — генерируемый
индекс, не источник полномочий. Для append/index требуется управляющая сессия.

## docs/runtime.md, lines 209–219

Source SHA-256: b08dcf45074e8f962407822136f63dd0a0c26b705ff08f27ec816671a9d5f1e7
Inspected: 2026-10-14T20:45:40+00:00

Эти три механизма используют ту же organization.sqlite3 (схема 3). Журнал
изменений состояния history, квитанции tool_calls, наблюдения tool_observations
и audit_history имеют разные назначения; наблюдение клиента не подтверждает
действие во внешней системе. Общий API сейчас исполняет только локальные
file.read и file.write. Произвольной оболочки и внешних записей в нём нет.

Прежний action record остаётся реестром намерений внешних действий, которые
runtime не исполняет. Локальная запись через tool call имеет собственную
квитанцию и не дублируется в actions; завершение событий по-прежнему принадлежит
только пакетному протоколу очереди.


## VALIDATION.md, lines 22–25

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

| Контейнеры и перезагрузка хоста | Не проверены; образов и автоматического развёртывания нет |
| v0.3: допуски, квитанции, аудит и миграция v2 → v3 | 16 новых сценариев unittest; отзыв/срок/политика/попытка, параллельная запись, сбой после эффекта, точная версия доказательства и атомарность wake |
| v0.3: реальный Codex с допусками и аудитом | Пройден на SHA 8d68ba1: два нативных агента, два допуска, четыре квитанции, accepted-задача, закрытый аудит и два done-пакета |
| v0.3: PostToolUse-приёмники Codex / Claude / agy | Проверены синтетическими envelope и отдельным CLI-процессом; реальная загрузка хуков клиентами не подтверждена |

## VALIDATION.md, lines 35–43

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

## Полномочия и аудит v0.3, 2026-10-14

На SHA `8d68ba1901c000e6f683bca9fde50ca10050855e` выполнен реальный
`tools/smoke_service.py --engine codex --governance --timeout 900` в чистом клоне.
Менеджер создал worker и reviewer; их нативные spawn receipts совпали с
зарегистрированными id. Под задачу выданы два отдельных допуска. С допуском
worker выполнены file.read и file.write, с допуском reviewer — два file.read.
Вызовы завершились succeeded и сохранили квитанции с задачей, родительской
сессией, обработанным пакетом, версиями политики/мандата и Git HEAD.

## VALIDATION.md, lines 47–53

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

Отчёт принят после независимой проверки. Менеджер создал замечание и
JSON-доказательство для его id/revision/fingerprint, затем закрыл замечание.
Исходный запрос и созданный audit.required обработаны в двух завершённых
пакетах. Ответ связан с запросом, UUID сохранена, сессия освобождена,
исходники клона не изменились, незавершённых tool_calls нет.
Все десять checks сценария — true, native exit_code=0. После теста процессов
этого каталога на хосте не осталось. Сам бланк остался blank.

## VALIDATION.md, lines 55–62

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

Локальные проверки дополнительно воспроизводят отказ вне выданных путей,
ошибочный/отозванный/истёкший допуск, смену мандата/политики/попытки и родителя,
отсутствие manager fallback, read-only reviewer, симлинки/hardlinks, устаревший
overwrite и конкурирующие записи. Сбой после файлового эффекта оставляет
started, повтор не исполняет запись, новый менеджер сверяет байты и сохраняет
reconciled_by с действующими хешами мандата/политики. Изменение доказательства
возвращает аудит к рассмотрению; устаревшее доказательство не закрывает новую
revision. История сохраняется; открытый аудит не вводит бизнес-вето.

## VALIDATION.md, lines 68–73

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

В указанном реальном запуске native tool_observations=0: загрузка новых
PostToolUse-хуков не засчитана. Нативные инструменты вне общего API не получают
его проверки допуска автоматически. Полный повтор v0.3 на Claude Code и agy,
доверие/загрузка hooks и ограничения ОС между недоверенными исполнителями
не подтверждены этим сценарием. Прежние 15-минутные испытания ниже относятся
к указанным SHA v0.2; они не переобозначены испытаниями нового выпуска.

## VALIDATION.md, lines 140–140

Source SHA-256: 8ff11543a90d5fb1269ab0ad505b2354958efe5fcb170fd58aaa7890ade993bb
Inspected: 2026-10-14T20:45:40+00:00

Наблюдение 15 минут не является суточным испытанием или проверкой перезагрузки ОС.
