architect/arh/standards/structure-old/ENTITY_HIERARCHY.md

ПОЛНАЯ ИЕРАРХИЯ СУЩНОСТЕЙ В ПРОЕКТАХ

Версия: 1.0.0
Дата: 2025-12-22
Уровень: L2 (Стандарт)


ОБЗОР ИЕРАРХИИ

L0: WORKSPACE (корень всего)

└── L1: БИЗНЕС (юридическое лицо, компания)
    
    ├── L2: НАПРАВЛЕНИЕ (канал продаж, продуктовая линия)
       
       └── L3: МОДУЛЬ (@) (технический компонент)
           
           └── L4: ЗАДАЧА (атомарное действие)
    
    └── ОБЩИЕ СЕРВИСЫ (вне направлений)
        └── L3: МОДУЛЬ (@)

УРОВЕНЬ 0: WORKSPACE

Определение

Workspace — корневое пространство всех проектов владельца.

Характеристики

Свойство Значение
Уникальность Один на владельца
Путь $WORKSPACE/
Владелец Физическое лицо / организация
Назначение Содержит все бизнесы и инфраструктуру

Состав

$WORKSPACE/
├── architect/              ← Методология (платформа)
├── system/                 ← Системные компоненты
├── infra/                  ← Инфраструктура
└── projects/               ← Бизнес-проекты
    ├── {business-1}/
    ├── {business-2}/
    └── {business-N}/

Метаданные (нет стандартных файлов)

Workspace не имеет CLAUDE.md или index.yaml. Это просто корневая директория.

Свойства

Свойство Тип Обязательно Описание
owner string Владелец workspace
path path Физический путь
hub_path path ⚠️ Путь к Hub (S3/NAS)

Типы проектов на уровне L0

Тип Назначение Пример
architect Методология architect/
system Платформенные компоненты system/
infra Инфраструктура infra/
projects Бизнес-проекты projects/{name}/

УРОВЕНЬ 1: БИЗНЕС

Определение

Бизнес — самостоятельная организационная единица с общей целью, ресурсами и ответственностью.

Характеристики

Свойство Значение
Автономность Может работать независимо
Цель Общая миссия и видение
Ресурсы Собственный бюджет, команда
Данные Общие каталоги, клиенты
Ответственность Единый владелец

Файловая структура

{business}/
├── CLAUDE.md                  ← Контекст для AI (обязательно)
├── index.yaml                 ← Метаданные (обязательно)
├── PROJECT.md                 ← Описание бизнеса (обязательно)
│
├── design/                    ← ПРОЕКТИРОВАНИЕ
│   ├── STRATEGY.md            ← Бизнес-стратегия
│   ├── ARCHITECTURE.md        ← Техническая архитектура
│   └── GOALS.md               ← Цели и метрики
│
├── management/                ← УПРАВЛЕНИЕ
│   ├── STATUS.md              ← Текущий статус
│   ├── TODO.md                ← Задачи (опционально)
│   ├── METRICS.md             ← KPI бизнеса
│   ├── ROADMAP.md             ← Дорожная карта
│   └── BUDGET.md              ← Бюджет (опционально)
│
├── _shared/                   ← ОБЩИЕ ДАННЫЕ (в workspace)
│   ├── data/                  ← Справочники, каталоги
│   ├── docs/                  ← Документы
│   ├── assets/                ← Медиа, ресурсы
│   └── work/                  ← Рабочие файлы
│
├── services/                  ← ОБЩИЕ СЕРВИСЫ
│   ├── @{service-1}/
│   └── @{service-2}/
│
├── {direction-1}/             ← НАПРАВЛЕНИЯ
├── {direction-2}/
└── {direction-N}/

Обязательные файлы

CLAUDE.md

# {Название бизнеса}

**Версия:** {version}
**Дата:** {date}
**Тип:** business

---

## Что это

{Краткое описание в 1-2 предложениях}

---

## Текущий фокус

{Что сейчас главное}

**Статус:** [management/STATUS.md](management/STATUS.md)
**Задачи:** [management/TODO.md](management/TODO.md)

---

## Структура

{Описание направлений и модулей}

---

## Серверы

{Список серверов и сервисов}

---

**Стандарт:** [architect/standards/structure/PROJECT_HIERARCHY.md]

index.yaml

# ═══════════════════════════════════════════
# БАЗОВЫЕ ПОЛЯ
# ═══════════════════════════════════════════
name: "Название бизнеса"
type: business                # business | platform | infrastructure
status: active                # draft | planning | development | active | paused | archived
version: "1.0.0"
created: "2024-01-01"
updated: "2025-12-22"

# ═══════════════════════════════════════════
# ВЛАДЕНИЕ
# ═══════════════════════════════════════════
owner: "Имя владельца"
stakeholders: []              # Заинтересованные стороны

# ═══════════════════════════════════════════
# СВЯЗИ
# ═══════════════════════════════════════════
hub: "projects/{name}/"       # Путь в Hub (S3)
depends_on:                   # Зависимости
  - "infra/@dev-pro.server"
  - "system/@hub.storage"

# ═══════════════════════════════════════════
# НАПРАВЛЕНИЯ
# ═══════════════════════════════════════════
directions:
  main: "retail"              # Главное направление (или null)
  list:
    - retail
    - ozon
    - wholesale

# ═══════════════════════════════════════════
# ОБЩИЕ СЕРВИСЫ
# ═══════════════════════════════════════════
services:
  - "@pim.service"
  - "@market.app"

# ═══════════════════════════════════════════
# МЕТРИКИ (агрегированные)
# ═══════════════════════════════════════════
metrics:
  revenue_monthly: null       # SUM из направлений
  margin_avg: null            # AVG из направлений
  directions_active: 3        # COUNT(status=active)
  employees: 2                # Количество людей

# ═══════════════════════════════════════════
# РЕСУРСЫ
# ═══════════════════════════════════════════
resources:
  budget_monthly: 100000      # Общий бюджет
  servers: ["@dev-pro.server"]
  databases: ["nocodb"]

PROJECT.md

# {Название бизнеса}

**Тип:** Целевая система (9 вопросов)
**Статус:** {status}
**Владелец:** {owner}

---

## ПОЧЕМУ? (Проблема)

{Какую проблему решаем}

## ЗАЧЕМ? (Цель)

{Чего хотим достичь}

## ЧТО? (Результат)

{Что создаём}

## КТО? (Роли)

{Кто участвует: клиенты, команда}

## КАК? (Способ)

{Как работает бизнес}

## ЧЕМ? (Ресурсы)

{Какие ресурсы используем}

## ГДЕ? (Контекст)

{Где работаем: регион, рынок}

## КОГДА? (Время)

{Когда запустились, планы}

## СКОЛЬКО? (Метрики)

{Ключевые показатели}

Свойства

Свойство Тип Обязательно Описание
name string Название бизнеса
type enum business | platform | infrastructure
status enum draft | planning | development | active | paused | archived
owner string Владелец
directions.main string ⚠️ Главное направление
directions.list array Список направлений
services array ⚠️ Общие сервисы
hub path Путь в Hub
metrics.* any ⚠️ Агрегированные метрики

Типы на уровне L1

Тип системы Описание Вопросов Пример
Целевая Решает проблему клиента 9 pirotehnika, lideravto
Обеспечивающая Поддерживает другие 7 infra (хостинг)
Информационная Хранит знания 5 architect (методология)

УРОВЕНЬ 2: НАПРАВЛЕНИЕ

Определение

Направление — бизнес-единица внутри бизнеса: продуктовая линия, канал продаж, клиентский сегмент.

Характеристики

Свойство Значение
Принадлежность Входит в бизнес
Автономность Частичная (зависит от бизнеса)
Цель Своя цель в рамках миссии бизнеса
Ресурсы Часть бюджета бизнеса
Метрики Свои KPI

Файловая структура

{business}/{direction}/
├── CLAUDE.md                  ← Контекст направления (обязательно)
├── index.yaml                 ← Метаданные (обязательно)
│
├── design/                    ← ПРОЕКТИРОВАНИЕ
│   ├── GOALS.md               ← Цели направления
│   ├── PLAN.md                ← План развития
│   └── ARCHITECTURE.md        ← Архитектура (опционально)
│
├── management/                ← УПРАВЛЕНИЕ
│   ├── STATUS.md              ← Статус направления
│   ├── TODO.md                ← Задачи
│   └── METRICS.md             ← KPI направления
│
├── @{module-1}/               ← МОДУЛИ
├── @{module-2}/
├── @{module-N}/
│
└── _data/                     ← ДАННЫЕ (локальные)
    ├── orders/                ← Заказы
    ├── analytics/             ← Аналитика
    └── reports/               ← Отчёты

Обязательные файлы

CLAUDE.md

# {Название направления}

**Бизнес:** {business}
**Тип:** {role} (main | satellite | experiment | service)
**Статус:** {status}

---

## Что это

{Описание направления}

---

## Цель

{Зачем существует}

---

## Модули

{Список модулей}

---

## Метрики

{Текущие показатели}

index.yaml

# ═══════════════════════════════════════════
# БАЗОВЫЕ ПОЛЯ
# ═══════════════════════════════════════════
name: "Название направления"
type: direction
role: main                    # main | satellite | experiment | service
status: active                # draft | planning | development | active | paused | archived
parent: null                  # Для satellite/experiment указать parent

# ═══════════════════════════════════════════
# ЗАВИСИМОСТИ
# ═══════════════════════════════════════════
depends_on: []                # От кого зависит
provides_to:                  # Кому поставляет данные/товары
  - "ozon"
  - "wholesale"

# ═══════════════════════════════════════════
# МОДУЛИ
# ═══════════════════════════════════════════
modules:
  - "@pirotehnika.spb.ru"
  - "@admin.app"

# ═══════════════════════════════════════════
# МЕТРИКИ
# ═══════════════════════════════════════════
metrics:
  revenue_monthly: 500000     # Выручка в месяц
  orders_monthly: 150         # Заказов в месяц
  margin: 0.35                # Маржинальность
  customers_active: 1200      # Активных клиентов

# ═══════════════════════════════════════════
# РЕСУРСЫ
# ═══════════════════════════════════════════
resources:
  budget_monthly: 50000
  team: ["owner", "assistant"]

Свойства

Свойство Тип Обязательно Описание
name string Название направления
type enum Всегда "direction"
role enum main | satellite | experiment | service
status enum draft | planning | development | active | paused | archived
parent string ⚠️ Родительское направление (для satellite/experiment)
depends_on array ⚠️ Зависимости от других направлений
provides_to array ⚠️ Кому поставляет данные
modules array Список модулей
metrics.* any Метрики направления

Типы ролей

Роль Описание Признак
main Главное направление Генерирует основной доход
satellite Зависит от главного Дополняет main, requires parent
experiment Тестируем гипотезу Может стать satellite или закрыться
service Обслуживает другие Не продаёт, а поддерживает

Типы систем на уровне L2

Тип системы Описание Пример
Целевая Продаёт клиентам retail, ozon
Обеспечивающая Обслуживает направления services, data
Процесс Выполняет операции logistics, production

УРОВЕНЬ 3: МОДУЛЬ (@)

Определение

Модуль — технический компонент, реализующий функциональность направления или бизнеса.

Характеристики

Свойство Значение
Назначение Выполняет конкретную функцию
Технология Конкретный стек
Размещение Сервер, контейнер
Префикс Всегда начинается с @

Файловая структура

@{module}/
├── CLAUDE.md                  ← Контекст модуля (обязательно)
├── index.yaml                 ← Метаданные (обязательно)
│
├── design/                    ← ПРОЕКТИРОВАНИЕ
│   ├── ARCHITECTURE.md        ← Архитектура модуля
│   ├── API.md                 ← API документация
│   └── DATABASE.md            ← Схема БД
│
├── solution/                  ← РЕАЛИЗАЦИЯ (код)
│   ├── src/                   ← Исходный код
│   ├── config/                ← Конфигурация
│   ├── scripts/               ← Скрипты
│   ├── tests/                 ← Тесты
│   └── docs/                  ← Техническая документация
│
├── management/                ← УПРАВЛЕНИЕ
│   ├── STATUS.md              ← Статус модуля
│   ├── TODO.md                ← Задачи
│   └── CHANGELOG.md           ← История изменений
│
└── reports/                   ← ОТЧЁТЫ
    └── {date}-{topic}.md

Обязательные файлы

CLAUDE.md

# @{module}

**Тип:** {module_type}
**Статус:** {status}
**Технологии:** {stack}

---

## Что это

{Описание модуля}

---

## Назначение

{Зачем нужен}

---

## Технологии

{Стек технологий}

---

## API / Endpoints

{Описание API, если есть}

---

## Развёртывание

{Как деплоить}

index.yaml

# ═══════════════════════════════════════════
# БАЗОВЫЕ ПОЛЯ
# ═══════════════════════════════════════════
name: "Название модуля"
type: module
module_type: site             # site | api | service | app | bot | cli | worker
status: production            # draft | development | testing | production | maintenance | deprecated

# ═══════════════════════════════════════════
# ТЕХНОЛОГИИ
# ═══════════════════════════════════════════
stack:
  platform: "OpenCart"        # Платформа/фреймворк
  language: "PHP"             # Язык
  version: "3.0"              # Версия
  database: "MySQL"           # БД
  hosting: "@beget-kondurov.server"

# ═══════════════════════════════════════════
# РАЗВЁРТЫВАНИЕ
# ═══════════════════════════════════════════
deployment:
  url: "https://pirotehnika.spb.ru"
  server: "@beget-kondurov.server"
  path: "/home/k/kondurov/pirotehnika.spb.ru/public_html"
  repository: "git@github.com:user/repo.git"

# ═══════════════════════════════════════════
# СВЯЗИ
# ═══════════════════════════════════════════
depends_on:
  - "@pim.service"            # Зависимости от других модулей
provides_to:
  - "analytics"               # Кому предоставляет данные

# ═══════════════════════════════════════════
# МЕТРИКИ (технические)
# ═══════════════════════════════════════════
metrics:
  uptime: 0.99                # Uptime (99%)
  response_time_ms: 200       # Среднее время ответа
  requests_daily: 5000        # Запросов в день
  errors_daily: 10            # Ошибок в день

# ═══════════════════════════════════════════
# ДОКУМЕНТАЦИЯ
# ═══════════════════════════════════════════
docs:
  api: "design/API.md"
  architecture: "design/ARCHITECTURE.md"
  deployment: "management/DEPLOYMENT.md"

Свойства

Свойство Тип Обязательно Описание
name string Название модуля
type enum Всегда "module"
module_type enum site | api | service | app | bot | cli | worker
status enum draft | development | testing | production | maintenance | deprecated
stack.* object Технологический стек
deployment.* object ⚠️ Параметры развёртывания
depends_on array ⚠️ Зависимости
metrics.* any ⚠️ Технические метрики

Типы модулей

module_type Суффикс Описание Пример
site (домен) Веб-сайт @pirotehnika.spb.ru
api .api API/Интеграция @ozon.api
service .service Микросервис @pim.service
app .app Приложение @market.app
bot .bot Бот @telegram.bot
cli .cli CLI-утилита @backup.cli
worker .worker Фоновый процесс @queue.worker

Типы систем на уровне L3

Тип системы Описание Пример
Целевая Интерфейс для клиента @site (сайт)
Обеспечивающая Сервис для других модулей @pim.service, @api
Агент Автономный процесс @bot, @worker

УРОВЕНЬ 4: ЗАДАЧА

Определение

Задача — атомарное действие, которое нужно выполнить в рамках модуля.

Характеристики

Свойство Значение
Атомарность Не делится дальше
Срок Обычно часы-дни
Результат Измеримый
Хранение В TODO.md или issue tracker

Формат

## Задача: {Название}

**Статус:** todo | in_progress | done | cancelled
**Приоритет:** P0 | P1 | P2 | P3
**Срок:** {дата}
**Ответственный:** {кто}

### Описание

{Что нужно сделать}

### Критерии завершения

- [ ] {Критерий 1}
- [ ] {Критерий 2}

### Связи

- Зависит от: #{task_id}
- Блокирует: #{task_id}

Свойства

Свойство Тип Обязательно Описание
title string Название задачи
status enum todo | in_progress | done | cancelled
priority enum P0 | P1 | P2 | P3
assignee string ⚠️ Ответственный
deadline date ⚠️ Срок
depends_on array ⚠️ Зависимости
blocks array ⚠️ Что блокирует

Типы задач

Тип Описание Пример
feature Новая функциональность "Добавить фильтр по цене"
bugfix Исправление ошибки "Исправить баг с корзиной"
refactor Улучшение кода "Рефакторинг API клиента"
docs Документация "Описать API endpoints"
test Тестирование "Написать тесты для оплаты"
deploy Развёртывание "Задеплоить на prod"

СВОДНАЯ ТАБЛИЦА

Уровень Название Префикс Обязательные файлы Метаданные Типы систем
L0 WORKSPACE нет нет нет -
L1 БИЗНЕС нет CLAUDE.md
index.yaml
PROJECT.md
business Целевая
Обеспечивающая
Информационная
L2 НАПРАВЛЕНИЕ нет CLAUDE.md
index.yaml
direction Целевая
Обеспечивающая
Процесс
L3 МОДУЛЬ @ CLAUDE.md
index.yaml
module Целевая
Обеспечивающая
Агент
L4 ЗАДАЧА нет нет task (в TODO.md) -

СВЯЗИ МЕЖДУ УРОВНЯМИ

Типы связей

Связь Направление Описание
contains L(n) → L(n+1) Содержит
depends_on L(n) → L(n) Зависит от (горизонтально)
provides_to L(n) → L(n) Поставляет данные
uses L(n+1) → L(n) Использует ресурсы

Диаграмма связей

┌─────────────────────────────────────────────┐
         L0: WORKSPACE                       
         (корень всего)                      
└────────────────┬────────────────────────────┘
                  contains
        ┌────────┴────────┐
                         
                         
┌──────────────┐   ┌──────────────┐
 L1: БИЗНЕС 1     L1: БИЗНЕС 2 
 (pirotehnika)    (lideravto)  
└──────┬───────┘   └──────────────┘
        contains
       ├──────────────┬──────────────┐
                                   
┌──────────┐   ┌──────────┐   ┌──────────┐
L2: retail   L2: ozon     L2: data  
  (MAIN)     (SATELLITE)   (SERVICE) 
└────┬─────┘   └────┬─────┘   └────┬─────┘
      contains                   
                                 
┌─────────┐    ┌─────────┐   ┌──────────┐
L3: @site    L3: @api    L3: @pim  
                           .service
└────┬────┘    └─────────┘   └──────────┘
      contains
     
┌──────────────────────────┐
 L4: ЗАДАЧИ               
 - Добавить фильтр        
 - Исправить баг корзины  
└──────────────────────────┘

ИМЕНОВАНИЕ

Правила

Уровень Формат Пример Правило
L0 workspace нет имени Корневая директория
L1 {business} pirotehnika Латиница, lowercase, без пробелов
L2 {direction} retail Латиница, lowercase, без пробелов
L3 @{module}.{type} @pim.service @ в начале, точка для типа
L3 @{domain} @pirotehnika.spb.ru Домен для сайтов
L4 {title} любой текст Произвольный текст

Специальные префиксы

Префикс Назначение Пример
_ Вспомогательные данные _shared, _inbox, _archive
@ Технический модуль @site, @api

СТАТУСЫ ПО УРОВНЯМ

L1: БИЗНЕС

Статус Описание
draft Идея, нет действий
planning Бизнес-план готовится
development Строим инфраструктуру
active Работает, приносит деньги
paused Приостановлен
archived Закрыт

L2: НАПРАВЛЕНИЕ

Статус Описание
draft Гипотеза
planning Валидация MVP
development Строим
active Запущено
paused На паузе
archived Закрыто

L3: МОДУЛЬ

Статус Описание
draft Проектируем
development Пишем код
testing Тестируем
production В проде
maintenance Поддержка
deprecated Устарел

L4: ЗАДАЧА

Статус Описание
todo Запланирована
in_progress Выполняется
done Завершена
cancelled Отменена

МЕТРИКИ ПО УРОВНЯМ

L1: БИЗНЕС (агрегированные)

metrics:
  revenue_monthly: 1000000    # SUM(directions.revenue)
  margin_avg: 0.35            # AVG(directions.margin)
  directions_active: 3        # COUNT(status=active)
  modules_total: 8            # COUNT(modules)
  employees: 5

L2: НАПРАВЛЕНИЕ (специфичные)

metrics:
  revenue_monthly: 500000
  orders_monthly: 150
  margin: 0.35
  customers_active: 1200
  avg_check: 3333
  conversion: 0.025

L3: МОДУЛЬ (технические)

metrics:
  uptime: 0.99
  response_time_ms: 200
  requests_daily: 5000
  errors_daily: 10
  deploys_monthly: 4

ПРИМЕР: ПОЛНАЯ ИЕРАРХИЯ pirotehnika

L0: $WORKSPACE/
└── projects/
    └── pirotehnika/                     L1: БИЗНЕС
        ├── CLAUDE.md                   (type: business)
        ├── index.yaml
        ├── PROJECT.md
        
        ├── retail/                      L2: НАПРАВЛЕНИЕ (main)
           ├── CLAUDE.md               (type: direction, role: main)
           ├── index.yaml
           
           └── @pirotehnika.spb.ru/     L3: МОДУЛЬ (site)
               ├── CLAUDE.md           (type: module, module_type: site)
               ├── index.yaml
               ├── design/
               ├── solution/
               └── management/
                   └── TODO.md          L4: ЗАДАЧИ
        
        ├── ozon/                        L2: НАПРАВЛЕНИЕ (satellite)
           ├── CLAUDE.md               (role: satellite, parent: retail)
           ├── index.yaml
           
           └── @ozon.api/               L3: МОДУЛЬ (api)
               ├── CLAUDE.md           (module_type: api)
               └── index.yaml
        
        └── services/                    Общие сервисы
            └── @pim.service/            L3: МОДУЛЬ (service)
                ├── CLAUDE.md           (module_type: service)
                ├── index.yaml
                └── solution/

СВЯЗИ


Версия: 1.0.0
Создано: 2025-12-22
Автор: Claude Sonnet 4.5