ПОЛНАЯ ИЕРАРХИЯ СУЩНОСТЕЙ В ПРОЕКТАХ
Версия: 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