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

КЛАССИФИКАЦИЯ СУЩНОСТЕЙ: Мухи и Котлеты

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


ОБЗОР

Четкое разделение сущностей по их физической природе, роли и месту в иерархии.


ИЗМЕРЕНИЕ 1: ФИЗИЧЕСКАЯ ПРИРОДА

1. ФИЗИЧЕСКИЕ ОБЪЕКТЫ

Реально существующие на диске/сервере.

1.1. ФАЙЛЫ

Характеристика: Единица хранения данных на диске

Типы:

Тип файла Расширение Содержание Примеры
Markdown .md Документация, описания CLAUDE.md, PROJECT.md, README.md
YAML .yaml, .yml Метаданные, конфигурация index.yaml, config.yaml
Данные .json, .csv, .xlsx Структурированные данные products.json, orders.csv
Код .php, .py, .js, .ts Исполняемый код index.php, app.py
Конфигурация .env, .conf, .ini Настройки .env, nginx.conf
SQL .sql Схемы БД, миграции schema.sql, migration_001.sql

Свойства:

path: "/absolute/path/to/file.md"
size_bytes: 12345
created_at: "2025-12-22T10:00:00Z"
modified_at: "2025-12-22T12:30:00Z"
owner: "user"
permissions: "rw-r--r--"
encoding: "UTF-8"

Метаданные в index.yaml:

files:
  required:
    - CLAUDE.md
    - index.yaml
  optional:
    - README.md
    - PROJECT.md

1.2. ДИРЕКТОРИИ (ПАПКИ)

Характеристика: Контейнер для файлов и других директорий

Типы:

Префикс Назначение Уровень Пример
Нет Логическая сущность (Бизнес, Направление) L1, L2 pirotehnika/, retail/
@ Технический модуль (код) L3 @site/, @pim.service/
_ Вспомогательные данные L1, L2 _shared/, _data/, _inbox/
Стандартное имя Функциональная роль Любой design/, management/, solution/

Свойства:

path: "/absolute/path/to/directory"
size_total_bytes: 1234567890
files_count: 543
subdirs_count: 12
owner: "user"
permissions: "rwxr-xr-x"

1.3. РЕПОЗИТОРИИ (GIT)

Характеристика: Версионированное хранилище кода

Типы:
- Монорепозиторий — весь workspace в одном repo
- Отдельный репозиторий — для каждого модуля свой repo

Свойства:

repository:
  type: "git"
  remote: "git@github.com:user/repo.git"
  branch: "main"
  commits: 1234
  contributors: 3
  last_commit: "2025-12-22T12:00:00Z"

1.4. БАЗЫ ДАННЫХ

Характеристика: Структурированное хранилище данных

Типы:

Тип БД Назначение СУБД Примеры
Реляционная Структурированные данные PostgreSQL, MySQL Products, Orders, Customers
NoSQL Документы, JSON MongoDB, CouchDB Logs, Sessions
Key-Value Кеш, сессии Redis, Memcached Cache, Queue
Граф Связи Neo4j Dependencies, Relations

Свойства:

database:
  type: "postgresql"
  host: "localhost"
  port: 5432
  name: "pirotehnika_db"
  schema: "pt7k98pv0fwi1el"
  tables:
    - pim_products
    - pim_pirotehnika
  size_mb: 1024
  records_count: 5623

2. ЛОГИЧЕСКИЕ СУЩНОСТИ

Абстракции, существующие как концепции.

2.1. ПРОЕКТЫ

Характеристика: Организационная единица работы

Типы по иерархии:

Уровень Тип Физическое воплощение Пример
L0 WORKSPACE Корневая директория $WORKSPACE/
L1 БИЗНЕС Поддиректория pirotehnika/
L2 НАПРАВЛЕНИЕ Поддиректория retail/
L3 МОДУЛЬ Директория с @ @site/

Свойства:

project:
  name: "Pirotehnika"
  type: "business"
  level: "L1"
  path: "projects/pirotehnika/"
  status: "active"
  owner: "owner"

Физически: Директория + набор файлов


2.2. СИСТЕМЫ

Характеристика: Функциональная роль проекта

Типы по назначению:

Тип системы Вопросов Назначение Примеры
Целевая 9 Решает проблему клиента Торговля, SaaS, Услуги
Обеспечивающая 7 Поддерживает другие системы Инфраструктура, Платформа
Информационная 5 Хранит и передает знания База знаний, Документация
Процесс 8 Описывает workflow Логистика, Производство
Структура 4 Описывает устройство Схема БД, Архитектура
Агент 6 Действует автономно Бот, Worker

Свойства:

system:
  type: "target"                    # целевая
  questions: 9
  purpose: "Решение проблемы клиента"

Физически: Набор директорий + файлов, организованных по принципу системы


2.3. ЗАДАЧИ

Характеристика: Атомарная единица работы

Типы:
- feature — новая функция
- bugfix — исправление
- refactor — улучшение
- docs — документация
- test — тестирование
- deploy — развёртывание

Свойства:

task:
  id: "#001"
  title: "Добавить фильтр по цене"
  type: "feature"
  status: "in_progress"
  priority: "P0"
  assignee: "owner"
  deadline: "2025-12-25"
  estimate_hours: 4
  module: "@pirotehnika.spb.ru"

Физически: Запись в TODO.md или ticket файл


3. ПРОЦЕССЫ

Действия, происходящие во времени.

3.1. WORKFLOW (Бизнес-процессы)

Характеристика: Последовательность действий для достижения результата

Примеры:
- Обработка заказа
- Логистика
- Производство
- Разработка фичи
- Деплой

Свойства:

workflow:
  name: "Order Processing"
  steps:
    - name: "Получение заказа"
      actor: "Клиент"
      output: "Заказ в системе"
    - name: "Подтверждение"
      actor: "Менеджер"
      output: "Подтвержденный заказ"
    - name: "Комплектация"
      actor: "Склад"
      output: "Собранный заказ"
    - name: "Доставка"
      actor: "Курьер"
      output: "Доставленный товар"
  metrics:
    cycle_time_hours: 24
    success_rate: 0.95

Физически: Документ WORKFLOW.md или SOP.md


3.2. RUNTIME ПРОЦЕССЫ

Характеристика: Запущенные программы в памяти

Типы:

Тип Длительность Запуск Примеры
Daemon Постоянно При загрузке системы nginx, postgresql, docker
Service Постоянно По требованию FastAPI app, Node.js server
Worker Фоновый По расписанию/событию Celery worker, Queue processor
Cron Job Периодический По расписанию Бэкап, Парсинг, Синхронизация
One-off Разовый Вручную Скрипт миграции, Import

Свойства:

runtime:
  process_id: 12345
  name: "uvicorn app:app"
  type: "service"
  status: "running"
  uptime_seconds: 86400
  memory_mb: 256
  cpu_percent: 5.2
  port: 8000
  user: "www-data"

Физически: PID в системе, процесс в ps aux


3.3. ОПЕРАЦИИ (Actions)

Характеристика: Разовое действие

Примеры:
- git commit
- deploy.sh
- backup.py
- scrape_products.py
- upload_to_hub.py

Свойства:

operation:
  name: "scrape_producer_sites.py"
  type: "one-off"
  trigger: "manual"
  duration_seconds: 120
  result: "success"
  output: "200 products scraped"
  timestamp: "2025-12-22T12:00:00Z"

Физически: Скрипт (.py, .sh) или команда


4. ДАННЫЕ

Информация в структурированном виде.

4.1. СПРАВОЧНИКИ (Catalogs)

Характеристика: Относительно статичные данные

Примеры:
- Каталог товаров
- Список категорий
- Справочник клиентов
- Прайс-листы

Свойства:

catalog:
  name: "Products Catalog"
  type: "reference"
  source: "pim_products"
  records: 5623
  update_frequency: "daily"
  last_updated: "2025-12-22T06:00:00Z"
  fields:
    - article
    - name
    - price
    - category

Физически:
- Таблица в БД
- JSON/CSV файл
- Excel файл


4.2. ТРАНЗАКЦИОННЫЕ ДАННЫЕ

Характеристика: Часто меняющиеся данные операций

Примеры:
- Заказы
- Платежи
- Логи действий
- История изменений

Свойства:

transactional:
  name: "Orders"
  type: "operational"
  source: "orders_db"
  records_total: 12345
  records_daily: 150
  retention_days: 365
  archive_after_days: 730

Физически: Таблица в БД


4.3. АНАЛИТИЧЕСКИЕ ДАННЫЕ

Характеристика: Агрегированные данные для анализа

Примеры:
- Отчёты
- Метрики
- Дашборды
- Статистика

Свойства:

analytics:
  name: "Sales Report"
  type: "report"
  period: "monthly"
  source: "orders + products"
  metrics:
    - revenue
    - orders_count
    - avg_check
    - conversion
  format: "markdown"
  location: "reports/2025-12-sales.md"

Физически:
- Markdown файл
- Excel/CSV
- BI дашборд


4.4. КОНФИГУРАЦИОННЫЕ ДАННЫЕ

Характеристика: Настройки систем

Примеры:
- .env файлы
- config.yaml
- settings.php
- Credentials

Свойства:

configuration:
  name: "Database Config"
  type: "settings"
  format: "yaml"
  location: "config/database.yaml"
  encrypted: false
  version: "1.0"

Физически: Файл конфигурации


5. ИНФОРМАЦИОННЫЕ ОБЪЕКТЫ

Знания, описания, документация.

5.1. ДОКУМЕНТАЦИЯ

Характеристика: Описание систем и процессов

Типы:

Тип Назначение Примеры
Проектная Описание проекта PROJECT.md, CLAUDE.md
Техническая Как работает код ARCHITECTURE.md, API.md
Операционная Как использовать README.md, DEPLOYMENT.md
Процессная Как делать SOP.md, WORKFLOW.md

Свойства:

documentation:
  name: "ARCHITECTURE.md"
  type: "technical"
  audience: "developers"
  status: "actual"
  version: "1.0"
  last_updated: "2025-12-22"
  size_lines: 543

Физически: Markdown файл


5.2. ЗНАНИЯ (Knowledge Base)

Характеристика: Накопленный опыт и методология

Примеры:
- theory/
- concept/
- standards/
- patterns/
- knowledge/

Свойства:

knowledge:
  domain: "Architecture"
  type: "methodology"
  documents: 150
  pages: 5000
  contributors: 3
  locked: true                    # Некоторые разделы LOCKED

Физически: Набор директорий с .md файлами


5.3. МЕТАДАННЫЕ

Характеристика: Данные о данных

Примеры:
- index.yaml — метаданные проекта
- .git/config — метаданные репозитория
- database schema — метаданные БД

Свойства:

metadata:
  target: "pirotehnika/"
  type: "project_metadata"
  format: "yaml"
  schema_version: "1.0"
  fields:
    - name
    - type
    - status
    - owner

Физически: YAML/JSON файл


ИЗМЕРЕНИЕ 2: РОЛЬ В СИСТЕМЕ

Каждая физическая сущность может играть разные роли.

Матрица: Природа × Роль

Физическая природа Целевая Обеспечивающая Информационная Процесс Агент
Директория pirotehnika/ infra/ architect/ logistics/
Модуль (@) @site/ @pim.service/ @bot/
Файл .md PROJECT.md (9 Q) PROJECT.md (7 Q) INDEX.md (5 Q) WORKFLOW.md (8 Q)
Код (.py) app.py (сайт) service.py (API) bot.py
База данных orders_db system_db knowledge_db
Runtime web-server api-service cron-job worker

ИЗМЕРЕНИЕ 3: МЕСТО В ИЕРАРХИИ

Иерархия физических объектов

L0: WORKSPACE (директория)

├── L1: БИЗНЕС (директория)
   ├── CLAUDE.md (файл)
   ├── index.yaml (файл метаданных)
   ├── PROJECT.md (файл документации)
   
   ├── design/ (директория)
      └── STRATEGY.md (файл)
   
   ├── management/ (директория)
      └── STATUS.md (файл)
   
   ├── _shared/ (директория данных)
      └── data/ (директория)
          └── products.json (файл данных)
   
   └── L2: НАПРАВЛЕНИЕ (директория)
       ├── CLAUDE.md (файл)
       ├── index.yaml (файл)
       
       ├── _data/ (директория данных)
          └── orders.csv (файл данных)
       
       └── L3: МОДУЛЬ @ (директория)
           ├── CLAUDE.md (файл)
           ├── index.yaml (файл)
           
           ├── solution/ (директория кода)
              ├── src/ (директория)
                 ├── app.py (файл кода)
                 └── models.py (файл кода)
              ├── config/ (директория)
                 └── .env (файл конфигурации)
              └── requirements.txt (файл метаданных)
           
           └── management/ (директория)
               └── TODO.md (файл)
                   └── L4: ЗАДАЧА (запись в файле)

Тип каждой сущности:
- Директории — контейнеры
- Файлы .md — документация/информация
- Файлы .yaml — метаданные
- Файлы .py/.php/.js — код
- Файлы .json/.csv — данные
- Записи в TODO.md — логические сущности (задачи)


ИЗМЕРЕНИЕ 4: СВЯЗИ

Типы связей между физическими объектами

Связь Природа Направление Пример
Содержит Физическая вложенность Контейнер → Элемент pirotehnika/retail/
Ссылается Логическая ссылка A → B depends_on: ["@pim.service"]
Импортирует Код Модуль → Модуль from utils import helper
Читает Данные Код → Файл/БД pd.read_csv("data.csv")
Пишет Данные Код → Файл/БД df.to_csv("output.csv")
Запускает Процесс Триггер → Процесс cronbackup.sh
Вызывает API Клиент → Сервер @site@pim.service/api
Наследует Настройки Дочерний → Родитель retail/index.yamlpirotehnika/index.yaml

Примеры связей

Физические:

pirotehnika/retail/@site/solution/src/catalog.php
    ├── [читает] pirotehnika/retail/_data/products.csv
    ├── [импортирует] pirotehnika/_shared/utils/helpers.php
    └── [вызывает] pirotehnika/services/@pim.service/api/products

Логические:

pirotehnika (L1, Целевая)
    ├── [содержит] retail (L2, Целевая, role: main)
       └── [содержит] @site (L3, Целевая)
           └── [зависит от] @pim.service (L3, Обеспечивающая)
    └── [содержит] services (L2, Обеспечивающая, role: service)
        └── [содержит] @pim.service
            └── [обслуживает] @site

ПОЛНАЯ КЛАССИФИКАЦИЯ СУЩНОСТЕЙ

1. ФИЗИЧЕСКИЕ + Роль + Уровень

ID Сущность Природа Роль Уровень Пример
1.1 Workspace Dir Директория Структура L0 $WORKSPACE/
1.2 Business Dir Директория Целевая/Обесп./Инф. L1 pirotehnika/
1.3 Direction Dir Директория Целевая/Обесп./Инф./Процесс L2 retail/
1.4 Module Dir Директория @ Целевая/Обесп./Инф./Агент L3 @site/
1.5 Data Dir Директория _ Вспомогательная L1, L2 _shared/, _data/
1.6 Functional Dir Директория Служебная Любой design/, solution/

2. ФАЙЛЫ + Роль + Уровень

ID Сущность Природа Роль Уровень Пример
2.1 CLAUDE.md Markdown Метаданные для AI L1, L2, L3 Контекст
2.2 index.yaml YAML Метаданные L1, L2, L3 Свойства сущности
2.3 PROJECT.md Markdown Документация L1 9/7/5 вопросов
2.4 INDEX.md Markdown Навигация L1 (Инф.) Оглавление
2.5 README.md Markdown Описание Любой Краткое введение
2.6 TODO.md Markdown Управление L2, L3 Задачи
2.7 .env Config Конфигурация L3 Переменные окружения
2.8 .py, .php, *.js Code Исполняемый код L3 Программы
2.9 .json, .csv Data Данные Любой Справочники, отчёты
2.10 *.sql SQL Схема БД L3 Миграции

3. ЛОГИЧЕСКИЕ СУЩНОСТИ

ID Сущность Природа Роль Уровень Физическое воплощение
3.1 Workspace Проект Структура L0 Директория
3.2 Business Проект Целевая/Обесп./Инф. L1 Директория + файлы
3.3 Direction Проект Целевая/Обесп./Инф./Процесс L2 Директория + файлы
3.4 Module Проект Целевая/Обесп./Инф./Агент L3 Директория @ + код
3.5 Task Задача Процесс L4 Запись в TODO.md

4. RUNTIME ПРОЦЕССЫ

ID Сущность Природа Роль Длительность Физическое воплощение
4.1 Web Server Daemon Целевая Постоянно nginx процесс
4.2 API Service Service Обеспечивающая Постоянно FastAPI app процесс
4.3 Bot Agent Агент Постоянно bot.py процесс
4.4 Worker Worker Агент Фоновый celery worker процесс
4.5 Cron Job Scheduled Процесс Периодический cron + скрипт
4.6 Script One-off Операция Разовый python script.py

5. ДАННЫЕ

ID Сущность Природа Роль Изменяемость Физическое воплощение
5.1 Справочник Catalog Информационная Низкая Таблица БД / JSON
5.2 Транзакции Operational Целевая Высокая Таблица БД
5.3 Аналитика Report Информационная Низкая MD файл / Excel
5.4 Конфигурация Settings Обеспечивающая Низкая .env / YAML
5.5 Метаданные Metadata Структура Низкая index.yaml

6. ИНФОРМАЦИЯ

ID Сущность Природа Роль Аудитория Физическое воплощение
6.1 Документация проекта Docs Информационная Команда PROJECT.md, README.md
6.2 Техдокументация Docs Информационная Разработчики ARCHITECTURE.md, API.md
6.3 База знаний Knowledge Информационная Все architect/
6.4 Процедуры Process Docs Процесс Исполнители SOP.md, WORKFLOW.md

ПРИМЕРЫ РАЗДЕЛЕНИЯ

Пример 1: PIM

Что это физически?
- База данных PostgreSQL (NocoDB)
- Схема pt7k98pv0fwi1el
- Таблицы: pim_products, pim_pirotehnika
- Скрипты Python: scrape_*.py, upload_*.py

Роль в системе:
- Обеспечивающая система (7 вопросов)
- Предоставляет данные о товарах другим модулям

Место в иерархии:
- Вариант 1: pirotehnika/services/@pim.service/ (L3)
- Вариант 2: pirotehnika/data/ (L2, Информационная)

Связи:
- Обслуживает: @site, @ozon.api, @admin.app
- Источники: Producer сайты (внешние)
- Синхронизирует с: Hub (S3), 1C


Пример 2: Сайт pirotehnika.spb.ru

Что это физически?
- Директория: pirotehnika/retail/@pirotehnika.spb.ru/
- Код: OpenCart (PHP)
- База данных: MySQL
- Runtime процесс: nginx + php-fpm
- Сервер: Beget (@beget-kondurov.server)

Роль в системе:
- Целевая система (9 вопросов)
- Интерфейс для клиентов

Место в иерархии:
- L3 (Модуль)
- Внутри L2 (retail)
- Внутри L1 (pirotehnika)

Связи:
- Зависит от: @pim.service (данные товаров)
- Использует: _shared/ (общие ресурсы)
- Размещён на: infra/@beget-kondurov.server


Пример 3: Задача "Добавить фильтр"

Что это физически?
- Запись в pirotehnika/retail/@site/management/TODO.md
- Строки 42-67 файла

Роль в системе:
- Процесс (упрощённый, без описания 8 вопросов)
- Атомарная единица работы

Место в иерархии:
- L4 (Задача)
- Внутри L3 (@site)

Связи:
- Изменит файлы: catalog.php, filter.js
- Зависит от: #123 (другая задача)
- Блокирует: #125


Пример 4: Скрипт парсинга

Что это физически?
- Файл: scrape_producer_sites.py
- Код: Python
- Расположение: pirotehnika/app/mp1/solution/scripts/

Роль в системе:
- Операция (разовое действие)
- Часть workflow обновления PIM

Место в иерархии:
- Внутри L3 (модуль mp1)
- Или может быть в @pim.service/scripts/

Связи:
- Читает: pim_pirotehnika (БД)
- Пишет: pim_products (БД)
- Вызывает: upload_images_to_hub.py
- Запускается: Вручную или cron


ИТОГОВАЯ СИСТЕМАТИЗАЦИЯ

4 независимых измерения:

СУЩНОСТЬ = Физическая природа × Роль × Место × Связи

1. Физическая природа (ЧТО ЭТО):
- Файл (.md, .yaml, .py, .json, .csv)
- Директория (обычная, @, _)
- База данных (PostgreSQL, MySQL, Redis)
- Процесс (daemon, service, worker, cron, script)
- Запись (в TODO.md, в БД)

2. Роль в системе (ЗАЧЕМ ОНО):
- Целевая (9 вопросов) — решает проблему клиента
- Обеспечивающая (7) — поддерживает другие системы
- Информационная (5) — хранит знания
- Процесс (8) — workflow
- Структура (4) — устройство
- Агент (6) — автономное действие

3. Место в иерархии (ГДЕ ОНО):
- L0: WORKSPACE
- L1: БИЗНЕС
- L2: НАПРАВЛЕНИЕ
- L3: МОДУЛЬ (@)
- L4: ЗАДАЧА

4. Связи (КАК ВЗАИМОДЕЙСТВУЕТ):
- Содержит (⊃)
- Зависит от (→)
- Обслуживает (⇒)
- Использует (↔)
- Читает/Пишет (R/W)
- Импортирует (import)
- Вызывает (API call)


СВЯЗИ С ДРУГИМИ ДОКУМЕНТАМИ


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