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

ИЕРАРХИЯ ПРОЕКТОВ

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


ОПРЕДЕЛЕНИЕ

Иерархия проектов — 4-уровневая структура для организации бизнесов, направлений и технических компонентов.


ИЕРАРХИЯ (4 уровня)

УРОВЕНЬ 0: WORKSPACE
   Все проекты владельца
   $WORKSPACE/

└── УРОВЕНЬ 1: БИЗНЕС
       Юридическое/организационное лицо
       pirotehnika/, lideravto/, seller1/
    
    └── УРОВЕНЬ 2: НАПРАВЛЕНИЕ
           Продуктовая линия / канал / сегмент
           retail/, ozon/, wholesale/, b2b/
        
        └── УРОВЕНЬ 3: МОДУЛЬ (@)
               Технический компонент
               @site/, @api/, @service/
            
            └── УРОВЕНЬ 4: ЗАДАЧА
                    Атомарное действие

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

Определение

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

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

Аспект Описание
Цель Общая миссия и видение
Ресурсы Бюджет, команда, инфраструктура
Данные Общие каталоги, клиенты, аналитика
Ответственность Единый владелец

Структура папки

{business}/
├── CLAUDE.md                 ← Контекст для AI
├── index.yaml                ← Метаданные + связи
├── PROJECT.md                ← Миссия, видение, стратегия
│
├── design/
│   └── STRATEGY.md           ← Бизнес-стратегия
│
├── management/
│   ├── STATUS.md             ← Общий статус бизнеса
│   ├── METRICS.md            ← KPI бизнеса (агрегированные)
│   ├── ROADMAP.md            ← Дорожная карта
│   └── BUDGET.md             ← Бюджет (опционально)
│
├── _shared/                  ← Общие данные (в workspace)
├── services/                 ← Общие сервисы
└── {directions}/             ← Направления

index.yaml бизнеса

# ═══════════════════════════════════════════
# БАЗОВЫЕ ПОЛЯ
# ═══════════════════════════════════════════
name: "Название бизнеса"
type: business
status: active                # draft | planning | development | active | paused | archived
version: "1.0.0"

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

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

# ═══════════════════════════════════════════
# СЕРВИСЫ (общие модули)
# ═══════════════════════════════════════════
services:
  - "@pim.service"
  - "@market.app"

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

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

Определение

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

Типы направлений

Тип Описание Пример
main Главное, генерирует основной доход retail/
satellite Зависит от главного, дополняет ozon/, wholesale/
experiment Тестируем гипотезу b2b/
service Обслуживает другие направления services/

Правила

Структура папки

{business}/{direction}/
├── CLAUDE.md                 ← Контекст направления
├── index.yaml                ← Метаданные
│
├── design/
│   ├── GOALS.md              ← Цели направления
│   └── PLAN.md               ← План развития
│
├── management/
│   ├── STATUS.md             ← Статус
│   ├── TODO.md               ← Задачи
│   └── METRICS.md            ← KPI направления
│
├── @{modules}/               ← Технические модули
└── _data/                    ← Данные направления (локальные)

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"

# ═══════════════════════════════════════════
# МЕТРИКИ (специфичные для направления)
# ═══════════════════════════════════════════
metrics:
  revenue_monthly: 500000
  orders_monthly: 150
  margin: 0.35
  # Дополнительные по типу направления

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

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

Определение

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

Типы модулей

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

Структура папки

{direction}/@{module}/
├── CLAUDE.md                 ← Контекст модуля
├── index.yaml                ← Метаданные
│
├── design/                   ← Архитектура
├── solution/                 ← Код
├── management/               ← Задачи
└── reports/                  ← Отчёты

index.yaml модуля

name: "Название модуля"
type: module
module_type: site             # site | api | service | app | bot | cli
status: production            # draft | development | testing | production | maintenance | deprecated

# Технологии
stack:
  platform: "OpenCart"
  version: "3.0"
  hosting: "@beget-kondurov.server"

# Связи
depends_on:
  - "@pim.service"
provides_to:
  - "analytics"

# Метрики (технические)
metrics:
  uptime: 0.99
  response_time_ms: 200

СВЯЗИ МЕЖДУ НАПРАВЛЕНИЯМИ

Типы связей

Связь Описание Пример
parent → child Сателлит зависит от главного retail → ozon
provides → consumes Поставляет данные/товары retail provides → ozon consumes
shares Общие ресурсы retail ↔ wholesale (склад)

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

                    ┌─────────────┐
                       БИЗНЕС    
                     pirotehnika 
                    └──────┬──────┘
                           
        ┌──────────────────┼──────────────────┐
                                            
                                            
   ┌─────────┐       ┌──────────┐       ┌──────────┐
    retail  │◄──────│   ozon          wholesale 
     MAIN   providesSATELLITE       SATELLITE 
   └────┬────┘       └────┬─────┘       └────┬─────┘
                                           
                ┌────────┴────────┐         
                                          
                                          
   ┌─────────────────────────────────────────────┐
                 SERVICES (общие)               
     @pim.service    @market.app    _shared/    
   └─────────────────────────────────────────────┘

ЖИЗНЕННЫЙ ЦИКЛ

Бизнес

idea  planning  development  active  scaling  mature  exit
                                                        │
Идея   Планируем   Строим     Работает  Растём   Стабильно  Продаём/
                                                           закрываем

Направление

idea → validation → launch → growth → optimize → sunset
  │        │          │        │         │         │
Гипотеза  Проверяем  Запуск  Растим   Оптимизируем  Закрываем
          MVP                          маржу

Модуль

draft → development → testing → production → maintenance → deprecated

СТАТУСЫ

Статус Бизнес Направление Модуль
draft Идея, нет действий Гипотеза Проектируем
planning Бизнес-план Валидация
development Строим Строим MVP Пишем код
active Работает Запущено
production В проде
paused Приостановлен На паузе Заморожен
archived Закрыт Закрыто
deprecated Устарел

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

Бизнес (агрегация)

Метрика Источник Формула
revenue_total Все направления SUM(direction.revenue)
margin_avg Все направления AVG(direction.margin)
directions_active Подсчёт COUNT(status=active)

Направление (специфичные)

Тип направления Метрики
retail revenue, orders, avg_check, conversion
marketplace revenue, orders, returns, rating
wholesale revenue, clients, avg_order
b2b deals, pipeline, win_rate

Модуль (технические)

Метрика Описание
uptime Доступность
errors Ошибки
response_time Время ответа
deploys Количество деплоев

ПРОЦЕССЫ

Создать новое направление

1. ГИПОТЕЗА
    Файл: {business}/_ideas/{name}.md
    Описать: проблема, решение, метрики успеха

2. ВАЛИДАЦИЯ (status: planning, role: experiment)
    Создать: {business}/{direction}/
    Минимум: CLAUDE.md, index.yaml
    MVP план

3. ЗАПУСК (status: development  active)
    Создать модули (@)
    Настроить метрики
    Запустить

4. ОЦЕНКА (через 1-3 месяца)
    experiment  satellite (если успех)
    experiment  archived (если провал)

Закрыть направление

1. РЕШЕНИЕ (L1  требует подтверждения)
    Причина закрытия
    План миграции данных/клиентов

2. SUNSET (status: paused)
    Уведомить зависимые направления
    Перенести данные в _archive/

3. АРХИВАЦИЯ (status: archived)
    Модули  deprecated
    Документация  archive/
    Метрики  финальный отчёт

Перевести satellite → main

1. АНАЛИЗ
    satellite приносит >50% revenue
    Или: старый main закрывается

2. РЕШЕНИЕ (L1)
    Утвердить новый main
    Пересмотреть зависимости

3. РЕСТРУКТУРИЗАЦИЯ
    Обновить role в index.yaml
    Обновить parent у других satellites
    Пересмотреть ресурсы

HUB (ДАННЫЕ)

Структура на Hub

$DATASPACE/projects/
│
└── {business}/
    ├── _inbox/               ← Неразобранные документы
    ├── _archive/             ← Архив
    ├── _shared/              ← Общие данные бизнеса
    │   ├── products/         ← Каталог товаров
    │   ├── prices/           ← Цены
    │   └── assets/           ← Медиа
    │
    └── {direction}/          ← Данные направления
        ├── orders/           ← Заказы
        ├── analytics/        ← Аналитика
        └── reports/          ← Отчёты

Правила хранения

Данные Где хранить Доступ
Товары _shared/products/ Все направления читают
Цены _shared/prices/ или {direction}/ Зависит от модели
Заказы {direction}/orders/ Только своё направление
Аналитика {direction}/analytics/ Агрегация в бизнес
Медиа _shared/assets/ Все направления

ПРИМЕР: pirotehnika

pirotehnika/                           БИЗНЕС
├── CLAUDE.md
├── index.yaml
├── PROJECT.md

├── design/
   └── STRATEGY.md

├── management/
   ├── STATUS.md
   ├── METRICS.md
   └── ROADMAP.md

├── _shared/                           Общие данные
   └── config/

├── retail/                            НАПРАВЛЕНИЕ: Розница (MAIN)
   ├── CLAUDE.md
   ├── index.yaml
   ├── design/
      └── GOALS.md
   ├── management/
      ├── STATUS.md
      └── TODO.md
   └── @pirotehnika.spb.ru/           МОДУЛЬ: Сайт
       ├── CLAUDE.md
       ├── index.yaml
       ├── design/
       ├── solution/
       └── management/

├── ozon/                              НАПРАВЛЕНИЕ: OZON (SATELLITE)
   ├── CLAUDE.md
   ├── index.yaml
   ├── management/
   └── @ozon.api/                     МОДУЛЬ: API

├── wholesale/                         НАПРАВЛЕНИЕ: Опт (SATELLITE)
   ├── CLAUDE.md
   └── index.yaml

└── services/                          ОБЩИЕ СЕРВИСЫ
    ├── @pim.service/
    └── @market.app/

СВЯЗИ


ИСТОРИЯ


Версия: 1.0.0