architect/arh/operations/MIGRATION_PLAN_12_CLASSES.md

План миграции на 12 классов артефактов

Версия: 2.0.0
Дата: 2025-12-23
Статус: DRAFT
Связан с: TICKET-004, ARTIFACT_CLASSES.md v2.0.0


ПРИНЯТЫЕ РЕШЕНИЯ (2025-12-23)

  1. Драйверы = подкласс коннекторов (connectors/device/)
  2. Агенты остаются в system/agents/ (часть ядра, не library)
  3. system/ = ядро платформы (runtime)
  4. library/ = готовый переиспользуемый код
  5. infra/ = только серверы и хранилища (чистить от не-инфры)
  6. _draft/_beta удалить — код в разработке = в projects/

ТЕКУЩЕЕ СОСТОЯНИЕ

library/ (частично создано)

library/
├── _draft/           ⚠️ УДАЛИТЬ (код в разработке = projects/)
├── _beta/            ⚠️ УДАЛИТЬ
├── connectors/       ⚠️ есть, но ПУСТО
├── extensions/        есть (структура cms/erp/other)
└── applications/      есть (пусто)

system/ (содержит код, который должен быть в library/)

system/
├── connectors/       ⚠️  library/connectors/api/
   ├── messaging/telegram/
   ├── marketplaces/ozon/
   ├── delivery/pochta_russia/
   ├── erp/1c_odata/
   └── nocodb/            library/connectors/data/

├── adapters/         ⚠️  library/functions/parsers/
   ├── spreadsheets/     (xlsx, csv)
   ├── documents/        (pdf)
   └── data/             (json, xml)

├── stores/           ⚠️  library/connectors/data/
   ├── sql/postgresql/
   ├── nosql/redis/
   └── object/s3/

├── drivers/          ⚠️  library/connectors/device/
   ├── printers/
   └── scanners/

└── functions/        ⚠️  library/functions/formatters/
    └── formatters/   (text.py, date.py, money.py, status.py)

infra/ (содержит НЕ-инфру)

infra/
├── @dev-pro.server        ИНФРА  оставить
├── @beget-s3.storage      ИНФРА  оставить
├── @backup.service        ИНФРА  оставить (инфра-сервис)

├── @nocodb.app           ⚠️  library/applications/?
├── @wikijs.app           ⚠️  library/applications/?
├── @messenger.service    ⚠️  library/services/?
├── @openrouter.connector ⚠️  library/connectors/api/?
└── @file-exchange.service ⚠️  library/services/?

projects/org/ (требует анализа)

projects/org/
├── pirotehnika/       type: business  правильно
├── lideravto/         type: business  правильно
├── mcrm/              type: product  правильно
├── seller1/           type: product  правильно
├── pro1/              type: platform  правильно
├── content-factory/    library/applications/?
├── drupal-lab/         library/applications/?
└── ideal-shop/         library/applications/?

ПЛАН ИЗМЕНЕНИЙ

Фаза 1: СТРУКТУРА library/

1.0 Удалить _draft/_beta

rm -rf library/_draft library/_beta

1.1 Создать недостающие папки

# Функции (класс 3)
mkdir -p library/functions/{parsers,formatters,validators,calculators,generators}

# Коннекторы (классы 4-5-5b)
mkdir -p library/connectors/{api,data,device}

# Интеграции (класс 7)
mkdir -p library/integrations

# Сервисы (класс 8)
mkdir -p library/services

# Конфигурации (класс 10)
mkdir -p library/configurations

1.2 Переместить system/connectors/ → library/connectors/

Источник Назначение Класс
system/connectors/marketplaces/ozon/ library/connectors/api/ozon/ 4. API-коннектор
system/connectors/messaging/telegram/ library/connectors/api/telegram/ 4. API-коннектор
system/connectors/erp/1c_odata/ library/connectors/api/1c/ 4. API-коннектор
system/connectors/delivery/pochta_russia/ library/connectors/api/pochta/ 4. API-коннектор
system/connectors/nocodb/ library/connectors/data/nocodb/ 5. Data-коннектор

1.3 Переместить system/functions/ → library/functions/

Источник Назначение
system/functions/formatters/ library/functions/formatters/

1.4 Переместить system/adapters/ → library/functions/parsers/

Источник Назначение
system/adapters/spreadsheets/xlsx/ library/functions/parsers/xlsx/
system/adapters/spreadsheets/csv/ library/functions/parsers/csv/
system/adapters/documents/pdf/ library/functions/parsers/pdf/
system/adapters/data/json/ library/functions/parsers/json/
system/adapters/data/xml/ library/functions/parsers/xml/

1.5 Переместить system/stores/ → library/connectors/data/

Источник Назначение
system/stores/sql/postgresql/ library/connectors/data/postgres/
system/stores/nosql/redis/ library/connectors/data/redis/
system/stores/nosql/mongodb/ library/connectors/data/mongodb/
system/stores/object/s3/ library/connectors/data/s3/

1.6 Переместить system/drivers/ → library/connectors/device/

Источник Назначение
system/drivers/printers/ library/connectors/device/printer/
system/drivers/scanners/ library/connectors/device/scanner/

Фаза 2: ДОКУМЕНТАЦИЯ

2.1 Файлы с упоминанием system/connectors/ (18 файлов)

Файл Действие
CLAUDE.md (корневой) Обновить ссылки system/connectors → library/connectors
architect/concept/PLATFORM.md Обновить структуру
architect/concept/RESOURCES.md Обновить ссылки
architect/concept/ARCHITECTURE.md Обновить ссылки
architect/standards/CODE_LIBRARY.md Обновить структуру library/
architect/standards/structure/WORKSPACE.md Обновить структуру
architect/standards/structure/COMPONENTS.md Обновить ссылки
architect/theory/ECOSYSTEM.md Обновить примеры
architect/theory/TERMINOLOGY.md Обновить терминологию
system/agents/dispatcher.ai.md Обновить ссылки
system/agents/librarian.ai.md Обновить ссылки
system/monitor/CLAUDE.md Обновить ссылки
system/connectors/CLAUDE.md → Удалить или перенести
system/functions/CLAUDE.md → Удалить или перенести
.context/PROTOCOL.md Обновить ссылки
INDEX.md Обновить структуру

2.2 Обновить library/CLAUDE.md

Добавить:
- functions/ (класс 3)
- connectors/api/ и connectors/data/ (классы 4-5)
- integrations/ (класс 7)
- services/ (класс 8)
- configurations/ (класс 10)

2.3 Обновить architect/CLAUDE.md

Добавить ссылку на:
- standards/ARTIFACT_CLASSES.md


Фаза 3: ПРОЕКТЫ (требует решения)

Вопрос: content-factory, drupal-lab, ideal-shop

Проект Текущее место Варианты
content-factory projects/org/ A) library/applications/ (шаблон)
drupal-lab projects/org/ B) Оставить (эксперимент/проект)
ideal-shop projects/org/ C) library/configurations/ (конфигурация)

Критерий:
- Если это шаблон для создания решений → library/applications/
- Если это конкретный проект/экспериментprojects/
- Если это отраслевая конфигурацияlibrary/configurations/


Фаза 4: INFRA CLEANUP

4.1 Оставить в infra/ (инфраструктура)

@dev-pro.server        сервер
@beget-s3.storage      хранилище
@backup.service        инфра-сервис (бэкапы)
@beget-kondurov.server
@yandex-disk.storage

4.2 Переместить из infra/ (не инфра)

Источник Назначение Причина
infra/@nocodb.app/ library/applications/nocodb/ Приложение
infra/@wikijs.app/ library/applications/wikijs/ Приложение
infra/@messenger.service/ library/services/messenger/ Сервис
infra/@openrouter.connector/ library/connectors/api/openrouter/ Коннектор
infra/@file-exchange.service/ library/services/file-exchange/ Сервис

Альтернатива: Если это развёрнутые инстансы (не шаблоны), оставить в infra/ как "инфра-слой".


Фаза 5: IMPORTS В КОДЕ

После перемещения нужно обновить импорты:

# Было
from system.connectors.marketplaces.ozon import OzonClient

# Стало
from library.connectors.api.ozon import OzonClient

Затронутые файлы (поиск по from system.connectors):
- Все файлы в projects/
- Все файлы в system/


РИСКИ

Риск Митигация
Сломаются импорты Фаза 4 — обновить все импорты
system/connectors/ используется напрямую Сначала поиск всех использований
systemd сервисы используют старые пути Проверить все .service файлы

ПОРЯДОК ВЫПОЛНЕНИЯ

ПОДГОТОВКА:
1.  [  ] Удалить library/_draft, library/_beta (Фаза 1.0)
2.  [  ] Создать структуру папок (Фаза 1.1)

МИГРАЦИЯ SYSTEM/ → LIBRARY/:
3.  [  ] Перенести system/connectors/ (Фаза 1.2)
4.  [  ] Перенести system/functions/ (Фаза 1.3)
5.  [  ] Перенести system/adapters/ (Фаза 1.4)
6.  [  ] Перенести system/stores/ (Фаза 1.5)
7.  [  ] Перенести system/drivers/ (Фаза 1.6)

МИГРАЦИЯ INFRA/:
8.  [  ] Очистить infra/ от не-инфры (Фаза 4)

КОД:
9.  [  ] Обновить импорты во всех файлах (Фаза 5)

ДОКУМЕНТАЦИЯ:
10. [  ] Обновить 18 файлов документации (Фаза 2)

РЕШЕНИЯ:
11. [  ] Решить по content-factory/drupal-lab/ideal-shop (Фаза 3)

ФИНАЛИЗАЦИЯ:
12. [  ] Обновить TICKET-004
13. [  ] Удалить пустые system/connectors/, system/functions/, etc.

СВЯЗИ


Версия: 2.0.0