План миграции на 12 классов артефактов
Версия: 2.0.0
Дата: 2025-12-23
Статус: DRAFT
Связан с: TICKET-004, ARTIFACT_CLASSES.md v2.0.0
ПРИНЯТЫЕ РЕШЕНИЯ (2025-12-23)
- Драйверы = подкласс коннекторов (
connectors/device/)
- Агенты остаются в
system/agents/ (часть ядра, не library)
- system/ = ядро платформы (runtime)
- library/ = готовый переиспользуемый код
- infra/ = только серверы и хранилища (чистить от не-инфры)
- _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