Files
wiki/memory/ontology/RULES.md
2026-04-18 15:40:01 +03:00

8.3 KiB
Raw Blame History

Онтология — Правила ведения

Эти правила обязательны для всех агентов. Невыполнение = нарушение.


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. Жизненный цикл

Создание проекта

  1. Слава/агент предлагает → обсуждаем
  2. Слава соглашается → Стрим создаёт в онтологии
  3. Привязываем folder и doc_path
  4. Создаём структуру tasks/{project}/

Создание задачи

  1. Предложение → описание → assignee → приоритет
  2. Слава ОК → Стрим создаёт
  3. Task привязывается к Project
  4. Назначаем folder и doc_path

Обновление статуса

  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 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