# Онтология — Правила ведения > Эти правила **обязательны** для всех агентов. Невыполнение = нарушение. --- ## 1. Когда использовать онтологию **Обязательно** при: - Работе с проектами (создание, обновление, закрытие) - Работе с задачами (создание, изменение статуса, удаление) - Распределении работ между агентами - Проверке зависимостей между задачами - Планировании новых активностей **Онтология — единственный источник истины** о проектах и задачах. Не держать информацию в голове, в daily notes или вMEMORY.md — только в онтологии. --- ## 2. Правила записи ( Stream — curator) ### 2.1 Стрим — единственный writer - Все изменения в онтологию вносит **только Стрим** - Другие агенты (Dev, Legal, Feda) **не пишут напрямую** - Запросы на изменения → `sessions_send` → Стрим → проверка → внесение ### 2.2 Изменения — только с подтверждения Славы - Любое изменение (создание, удаление, обновление сущности) → **только после ОК Славы** - Исключение: мелкие правки по типу "обновить статус на done" если Слава сам сказал - Спорные вопросы → Слава решает ### 2.3 Принцип одного источника - Информация о проекте/задаче должна быть **только в онтологии** - Не дублировать в MEMORY.md, daily notes, TZ файлах - Исключение: MEMORY.md содержит только **ссылки** на онтологию --- ## 3. Атрибуты сущностей ### Project | Поле | Тип | Обязательно | Описание | |------|-----|-------------|----------| | `name` | string | ✅ | Название проекта | | `status` | enum | ✅ | active, paused, done, planned | | `folder` | string | — | Путь к документации: `tasks/{project}/` | | `description` | string | — | Краткое описание | | `start_date` | date | — | Дата старта | ### Task | Поле | Тип | Обязательно | Описание | |------|-----|-------------|----------| | `title` | string | ✅ | Название задачи | | `project` | string | ✅ | ID проекта (proj_xxx) | | `assignee` | string | ✅ | Кто выполняет: dev, p_slava, legal, feda | | `status` | enum | ✅ | open, in_progress, done, blocked | | `priority` | enum | — | high, medium, low | | `description` | string | — | Детали задачи | --- ## 4. Жизненный цикл ### Создание проекта 1. Слава/агент предлагает → обсуждаем 2. Слава соглашается → Стрим создаёт в онтологии 3. Привязываем folder, создаём структуру `tasks/{project}/` ### Создание задачи 1. Предложение → описание → assignee → приоритет 2. Слава ОК → Стрим создаёт 3. Task привязывается к Project ### Обновление статуса 1. Кто-то сообщает (Слава, агент, результат работы) 2. Стрим проверяет → обновляет в онтологии 3. Если задача done → проверяем есть ли зависимые ### Закрытие проекта 1. Все задачи done 2. Слава подтверждает → status → done 3. Description обновить с датой закрытия --- ## 5. Проверки (автоматически) При каждом запросе涉及 проектов/задач: - [ ] Данные взяты из онтологии - [ ] Статусы актуальны - [ ] Нет конфликтующих задач - [ ] Assignee соответствует При планировании: - [ ] Проверены зависимости - [ ] Нет блокирующих задач - [ ] Учтены приоритеты --- ## 6. Недопустимо - ❌ Создавать задачи минуя онтологию - ❌ Держать важные данные только в MEMORY.md - ❌ Изменять онтологию без ведома Славы - ❌ Другим агентам писать напрямую - ❌ Удалять сущности без подтверждения --- ## 7. Файлы онтологии ``` memory/ontology/ ├── schema.yaml — схема типов и полей (обязательна валидация) ├── graph.jsonl — сами сущности и связи └── RULES.md — этот файл ``` ontology.py: ``` skills/ontology/scripts/ontology.py ``` --- ## 8. Исключения Всё что **не относится** к проектам/задачам — в MEMORY.md или daily notes: - Личные заметки о Славе - Пароли/ключи (только .env) - Техническая документация (TZ, PROJECT.md) - Архивные данные --- _Обновлено: 2026-04-09_