8.3 KiB
8.3 KiB
Онтология — Правила ведения
Эти правила обязательны для всех агентов. Невыполнение = нарушение.
1. Когда использовать онтологию
Обязательно при:
- Работе с проектами (создание, обновление, закрытие)
- Работе с задачами (создание, изменение статуса, удаление)
- Распределении работ между агентами
- Проверке зависимостей между задачами
- Планировании новых активностей
Онтология — единственный источник истины о проектах и задачах. Не держать информацию в голове, в daily notes или в MEMORY.md — только в онтологии.
1.1 Строгая иерархия проекта и задачи
- Task без Project не существует.
- Каждый
Project— это отдельный контейнер с собственной документацией. - Каждая
Taskобязана принадлежать одномуProject. - Если работа не укладывается в существующий проект, сначала создаётся новый
Project, затем задачи внутри него. - У
Taskесть уникальный идентификатор и отдельная папка внутри папки проекта. - У
Projectесть общая документация на уровне всей папки проекта. - Человеческое имя объекта хранится в
name/title; машинныйidостаётся внутренним и не должен быть частью читаемого названия в документации и папках.
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 | ✅ | planning, active, paused, completed, archived |
folder |
string | ✅ | Папка проекта: tasks/{project-slug}/ |
doc_path |
string | ✅ | Главный файл проекта, обычно PROJECT.md |
description |
string | — | Краткое описание |
start_date |
date | — | Дата старта |
end_date |
date | — | Дата окончания |
Task
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
title |
string | ✅ | Человеческое название задачи |
project |
string | ✅ | ID проекта |
folder |
string | ✅ | Папка задачи внутри проекта |
doc_path |
string | ✅ | Главный файл задачи, обычно TASK.md |
assignee |
string | — | Исполнитель |
status |
enum | ✅ | open, in_progress, done, blocked, cancelled |
priority |
enum | — | high, medium, low, urgent |
description |
string | — | Детали задачи |
4. Жизненный цикл
Создание проекта
- Слава/агент предлагает → обсуждаем
- Слава соглашается → Стрим создаёт в онтологии
- Привязываем
folderиdoc_path - Создаём структуру
tasks/{project}/
Создание задачи
- Предложение → описание → assignee → приоритет
- Слава ОК → Стрим создаёт
- Task привязывается к Project
- Назначаем
folderиdoc_path
Обновление статуса
- Кто-то сообщает (Слава, агент, результат работы)
- Стрим проверяет → обновляет в онтологии
- Если задача done → проверяем есть ли зависимые
Закрытие проекта
- Все задачи done
- Слава подтверждает → status → done
- Description обновить с датой закрытия
5. Проверки (автоматически)
При каждом запросе涉及 проектов/задач:
- Данные взяты из онтологии
- Статусы актуальны
- Нет конфликтующих задач
- Assignee соответствует
При планировании:
- Проверены зависимости
- Нет блокирующих задач
- Учтены приоритеты
6. Недопустимо
- ❌ Создавать задачи минуя онтологию
- ❌ Держать важные данные только в MEMORY.md
- ❌ Изменять онтологию без ведома Славы
- ❌ Другим агентам писать напрямую
- ❌ Удалять сущности без подтверждения
7. Файлы онтологии
memory/ontology/
├── schema.yaml — схема типов и полей (обязательна валидация)
├── graph.jsonl — сами сущности и связи
└── RULES.md — этот файл
Ontology skill reference:
skills/ontology/references/schema.md
Ontology script:
skills/ontology/scripts/ontology.py
8. Исключения
Всё что не относится к проектам/задачам — в MEMORY.md или daily notes:
- Личные заметки о Славе
- Пароли/ключи (только .env)
- Техническая документация (TZ, PROJECT.md)
- Архивные данные
9. Стандарт структуры папок
Project
tasks/<project-slug>/
├── PROJECT.md
├── docs/
├── journal/
├── assets/
├── meta/
└── TASKS/
├── backlog/
├── active/
├── blocked/
├── done/
└── archive/
Task
tasks/<project-slug>/TASKS/<status>/<task-id>/
├── TASK.md
├── context.md
├── report.md
└── attachments/
Правило путей
Project.folder— папка проекта, всегда читаемый slug.Project.doc_path— главный документ проекта.Task.folder— папка задачи внутри папки проекта, всегда читаемый slug.Task.doc_path— главный документ задачи.Taskвсегда связан сProjectи живёт внутри его структуры.- В именах папок и документов не использовать внутренние
idкак часть человекочитаемого названия; внутреннийidхранится только в онтологии.
Обновлено: 2026-04-09