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

Стандарт компонентов платформы

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

Вытекает из: ../../concept/ARCHITECTURE.md


ПРИНЦИП

КОМПОНЕНТ = ОПИСАНИЕ + КОД + ДАННЫЕ + НАСТРОЙКИ

Любой компонент платформы имеет единую структуру из 4 слоёв.


ТИПЫ КОМПОНЕНТОВ

┌─────────────────────────────────────────────────────────────────────────────┐
  ТИП             ЧТО                        ГДЕ                           
├────────────────┼───────────────────────────┼────────────────────────────────┤
  BUSINESS        Бизнес-контейнер           pirotehnika/, lider/          
  CODE            Сайт, сервис, API          @domain/, @name.type/         
  DATA            Данные, каталоги           _shared/, products/           
  INFRA           Серверы, хранилища         infra/@name.server/           
  PLATFORM        Методология, агенты        architect/, system/           
  CONNECTOR       Коннектор к API/БД         library/connectors/           
  AGENT           AI-агент                   system/agents/                
└─────────────────────────────────────────────────────────────────────────────┘

БАЗОВАЯ СТРУКТУРА (все компоненты)

{component}/
│
├── CLAUDE.md           ← Контекст для AI
├── index.yaml          ← Метаданные и связи
├── README.md           ← Описание для человека
├── .env                ← Настройки (не в git)
│
├── design/             ← Проектирование
├── solution/           ← Код и скрипты
├── data/               ← Данные
└── archive/            ← Архив

СОДЕРЖИМОЕ БАЗОВЫХ ФАЙЛОВ

CLAUDE.md

# {Название компонента}

**Тип:** {business|code|data|infra|platform}
**Статус:** {active|development|archived}
**Версия:** X.Y.Z

---

## КОНТЕКСТ

{Что это и зачем — 2-3 предложения}

## СТРУКТУРА

{Что где лежит}

## ПРАВИЛА

{Как работать с компонентом}

## СВЯЗИ

- **Родитель:** {ссылка}
- **Зависит от:** {список}
- **Предоставляет:** {список}

index.yaml

name: "{Название}"
type: "{тип}"
status: "{active|development|archived}"
version: "X.Y.Z"

parent: "../"
children:
  - child1/
  - child2/

depends_on:
  - {зависимость}

provides_to:
  - {потребитель}

hub: "projects/{path}/"  # если есть данные в Hub

README.md

# {Название}

{Краткое описание — 1 предложение}

## Быстрый старт

{Как запустить/использовать — шаги}

## Структура

{Что где лежит — дерево или таблица}

## Ссылки

- [Документация](design/PROJECT.md)
- [Настройки](.env.example)

.env

# {Название компонента}
# Описание настроек

# Категория 1
KEY1=value1
KEY2=value2

# Категория 2
KEY3=value3

СОДЕРЖИМОЕ БАЗОВЫХ ПАПОК

design/ — Проектирование

design/
├── PROJECT.md          ← Описание проекта (обязательно)
├── RULES.md            ← Правила домена (если есть)
└── ARCHITECTURE.md     ← Архитектура (если сложный)

PROJECT.md — описывает ЧТО и ЗАЧЕМ:

# {Название}: Проект

**Версия:** X.Y.Z

## Цель
{Зачем нужен проект}

## Scope
{Что входит / не входит}

## Решения
{Ключевые архитектурные решения}

solution/ — Код

solution/
├── scripts/            ← Скрипты (*.py, *.sh)
├── src/                ← Исходный код
└── tests/              ← Тесты

data/ — Данные

data/
├── input/              ← Входящие данные
├── output/             ← Результаты
└── cache/              ← Кэш

Или ссылка на Hub: data/ → hub/projects/{name}/

archive/ — Архив

archive/
└── {YYYY-MM-DD}_{description}/

ДОПОЛНЕНИЯ ПО ТИПАМ

BUSINESS (бизнес-контейнер)

{business}/
├── [БАЗОВАЯ СТРУКТУРА]
│
├── _shared/            ← + Общие данные бизнеса
│   ├── CLAUDE.md
│   ├── products/
│   └── work/
│
├── @{domain}/          ← + Дочерние CODE-проекты
├── @{name}.api/
└── @{name}.service/

CODE (сайт, сервис, API)

@{name}.{type}/
├── [БАЗОВАЯ СТРУКТУРА]

├── docker-compose.yaml  + Контейнеризация
├── solution/
   ├── src/             + Исходный код приложения
   └── tests/           + Тесты
└── config/              + Конфигурации
    ├── .env.example
    └── settings.yaml

INFRA (сервер, хранилище)

@{name}.server/  или  @{name}.storage/
├── [БАЗОВАЯ СТРУКТУРА]
│
├── infra.yaml          ← + Характеристики
├── design/
│   ├── SECURITY.md     ← + Безопасность, доступы
│   └── SERVICES.md     ← + Список сервисов
└── solution/
    └── scripts/        ← + Bash-скрипты управления

infra.yaml:

type: "server|storage"
provider: "{провайдер}"
location: "{дата-центр}"

# Для серверов
ip: "X.X.X.X"
cpu: "N cores"
ram: "N GB"
disk: "N GB"
os: "Ubuntu XX.XX"

# Для хранилищ
endpoint: "s3://{bucket}"
size: "N GB"

DATA (данные, каталоги)

_shared/  или  {data}/
├── [БАЗОВАЯ СТРУКТУРА]
│
├── MASTER.md           ← + Описание структуры данных
├── data/
│   ├── index/          ← + Мастер-данные (итоговые)
│   ├── originals/      ← + Оригиналы от поставщиков
│   └── processed/      ← + Обработанные
└── solution/
    └── scripts/        ← + Скрипты обработки данных

PLATFORM (методология)

architect/
├── [БАЗОВАЯ СТРУКТУРА]
│
├── theory/             ← + Теория (LOCKED)
├── concept/            ← + Концепция
├── standards/          ← + Стандарты (этот документ)
├── patterns/           ← + Паттерны
└── templates/          ← + Шаблоны

CONNECTOR (коннектор)

Минимальная структура — только файлы:

library/connectors/{type}/
├── {name}.py            Код коннектора
├── {name}.md            Документация API
├── {name}.test.py       Тесты
└── .env.example         Пример credentials

{name}.py — структура:

"""
{Название} Connector

Доступ к {система} API.
"""

class {Name}Connector:
    """Коннектор к {система}."""

    def __init__(self, credentials: dict):
        """Инициализация с credentials."""
        pass

    # Методы API

{name}.md — документация:

# {Название} Connector

**Система:** {название системы}
**API:** {тип API}
**Документация:** {ссылка на официальную документацию}

## Credentials

| Переменная | Описание |
|------------|----------|
| {NAME}_API_KEY | API ключ |
| {NAME}_CLIENT_ID | ID клиента |

## Методы

| Метод | Описание |
|-------|----------|
| get_* | Получить данные |
| update_* | Обновить данные |

## Примеры

{примеры использования}

AGENT (AI-агент)

Минимальная структура — один файл:

system/agents/
└── {name}.ai.md        ← Контекст агента

{name}.ai.md — структура:

# {Название} — AI-агент

**Версия:** X.Y.Z
**Тип:** {ассистент|исполнитель}

---

## РОЛЬ

{Кто ты — 1 предложение}

## ЗОНА ОТВЕТСТВЕННОСТИ

### Делаю
- {что делает агент}

### Не делаю
- {что не делает}

## АЛГОРИТМ

{Как принимаю решения — шаги}

## ПРАВИЛА

### Можно
- {разрешённые действия}

### Нельзя
- {запрещённые действия}

## ИНСТРУМЕНТЫ

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

## СВЯЗИ

- **Получает задачи от:** {кто}
- **Делегирует:** {кому}

ИМЕНОВАНИЕ

Принцип: CAPS.md = для людей и AI, lowercase = для машин

UPPER_CASE.md    ← Документация (читают люди и AI)
lowercase.yaml   ← Данные/метаданные (читают программы)
lowercase.py     ← Код (исполняют машины)

Почему так:
- CAPS-файлы видны первыми при сортировке
- CAPS.md = "это важно, прочитай" (документы)
- lowercase = данные, конфиги, код (для автоматизации)

Папки

Тип Формат Пример
Бизнес {name}/ pirotehnika/
Сайт @{domain}/ @pirotehnika.spb.ru/
API @{name}.api/ @ozon.api/
Сервис @{name}.service/ @pim.service/
Приложение @{name}.app/ @market.app/
Сервер @{name}.server/ @dev-pro.server/
Хранилище @{name}.storage/ @beget-s3.storage/
Данные _{name}/ _shared/

Файлы

UPPER_CASE (документация для людей и AI)

Файл Назначение Когда создавать
CLAUDE.md Контекст для AI Всегда (обязательно)
README.md Описание для человека Для CODE, INFRA, PLATFORM
PROJECT.md Описание проекта В design/ для CODE
MASTER.md Структура данных Для DATA компонентов
RULES.md Правила домена Если есть бизнес-правила
ARCHITECTURE.md Архитектура Для сложных систем

lowercase.yaml (метаданные для машин)

Файл Назначение Когда создавать
index.yaml Метаданные компонента Всегда (обязательно)
infra.yaml Характеристики инфры Для INFRA компонентов

lowercase (код и конфиги)

Тип Формат Пример
AI-агент kebab-case.ai.md coder-v1.ai.md
Код Python snake_case.py weekly_report.py
Код Bash kebab-case.sh deploy-prod.sh
Конфиг YAML kebab-case.yaml docker-compose.yaml
Секреты .env (не в git)

МАТРИЦА ОБЯЗАТЕЛЬНОСТИ

                     BUSINESS  CODE  INFRA  DATA  PLATFORM  CONNECTOR  AGENT 
────────────────────┼──────────┼──────┼───────┼──────┼──────────┼───────────┼───────┤
CLAUDE.md                                                             
index.yaml                                                            
README.md                                                             
.env                                                                  
design/                                                               
solution/                                                             
data/                                                                 
archive/                                                              
────────────────────┼──────────┼──────┼───────┼──────┼──────────┼───────────┼───────┤
_shared/                                                              
docker-compose.yaml                                                   
infra.yaml                                                            
MASTER.md                                                             
{name}.py                                                             
{name}.ai.md                                                          

 = обязательно     = опционально     = не применимо

ПОЛНАЯ ИЕРАРХИЯ

$WORKSPACE/

├── CLAUDE.md                            Точка входа (терминал)
├── index.yaml                           Корневой индекс

├── architect/                           PLATFORM: методология
   ├── CLAUDE.md
   ├── index.yaml
   ├── README.md
   
   ├── theory/                          Теория (LOCKED)
      ├── MERKABA.md
      ├── QUESTIONS.md
      ├── SYSTEMS.md
      └── ASPECTS.md
   
   ├── concept/                         Концепция
      ├── PLATFORM.md
      └── ARCHITECTURE.md
   
   ├── standards/                       Стандарты
      ├── structure/
         ├── WORKSPACE.md
         └── COMPONENTS.md            ЭТОТ ДОКУМЕНТ
      ├── types/
      ├── roles/
      ├── formats/
      └── processes/
   
   ├── patterns/                        Паттерны
   └── templates/                       Шаблоны

├── system/                              PLATFORM: агенты и код
   ├── CLAUDE.md
   ├── index.yaml
   ├── README.md
   
   ├── agents/                          AI-агенты
      ├── coder-v1.ai.md
      ├── infra.ai.md
      ├── analyst.ai.md
      └── ...
   
   ├── connectors/                      Коннекторы
      ├── marketplaces/
         ├── ozon.py
         ├── ozon.md
         └── .env.example
      ├── databases/
         └── nocodb.py
      └── communications/
          └── telegram.py
   
   └── lib/                             Библиотеки
       ├── utils.py
       ├── excel.py
       └── dates.py

├── infra/                               INFRA: серверы и хранилища
   ├── CLAUDE.md
   ├── index.yaml
   
   ├── @dev-pro.server/
      ├── CLAUDE.md
      ├── index.yaml
      ├── infra.yaml
      ├── design/
         ├── PROJECT.md
         ├── SECURITY.md
         └── SERVICES.md
      └── solution/scripts/
   
   ├── @dev-prod-rf.server/
   └── @beget-s3.storage/

├── pirotehnika/                         BUSINESS
   ├── CLAUDE.md
   ├── index.yaml
   ├── README.md
   
   ├── _shared/                         DATA: общие данные
      ├── CLAUDE.md
      ├── MASTER.md
      ├── data/
         ├── products/
         └── ozon/
      └── solution/scripts/
   
   ├── @pirotehnika.spb.ru/             CODE: сайт
      ├── CLAUDE.md
      ├── index.yaml
      ├── design/PROJECT.md
      └── solution/
   
   ├── @ozon.api/                       CODE: интеграция
      ├── CLAUDE.md
      ├── index.yaml
      ├── design/
         ├── PROJECT.md
         └── RULES.md
      └── solution/scripts/
   
   └── @pim.service/                    CODE: сервис

├── lider/                               BUSINESS
   ├── CLAUDE.md
   ├── index.yaml
   └── @lideravto.ru/

└── archive/                             Архив

СВЯЗИ

┌─────────────────────────────────────────────────────────────────────────────┐
                           ПЛАТФОРМА                                         
                                                                             
  ┌─────────────┐    определяет    ┌─────────────┐                          
   METHODOLOGY │─────────────────►│   AGENTS                              
    architect/                      system/                             
  └─────────────┘                  └──────┬──────┘                          
                                                                            
                                    управляют                                
                                                                            
  ┌─────────────┐    хранят        ┌──────▼──────┐                          
      DATA     │◄─────────────────│    INFRA                              
      Hub                            infra/                             
  └──────┬──────┘                  └──────┬──────┘                          
                                                                           
└─────────┼────────────────────────────────┼──────────────────────────────────┘
                    обслуживают           
                                          
┌─────────────────────────────────────────────────────────────────────────────┐
                         БИЗНЕС-ПРОЕКТЫ                                      
                                                                             
  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐                     
   pirotehnika         lider           seller1                        
    BUSINESS         BUSINESS         BUSINESS                        
                                                                      
   ┌─────────┐      ┌─────────┐                                       
     CODE           CODE                                          
    @site          @site                                          
    @api          └─────────┘                                       
    @service                                                        
   └─────────┘                                                        
   ┌─────────┐                                                        
     DATA                                                           
    _shared                                                         
   └─────────┘                                                        
  └─────────────┘    └─────────────┘    └─────────────┘                     
                                                                             
└─────────────────────────────────────────────────────────────────────────────┘

ВАЛИДАЦИЯ

Чеклист нового компонента

Чеклист существующего компонента


ИСТОРИЯ


Версия: 1.0.0