Files
wiki/memory/ontology/RULES.md
2026-04-12 21:55:33 +03:00

138 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Онтология — Правила ведения
> Эти правила **обязательны** для всех агентов. Невыполнение = нарушение.
---
## 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_