system/core/generator/CLAUDE.md

Code Generator — Автогенерация кода из YAML

Версия: 1.0.0
Дата: 2026-02-17
Тип: Core Component
Статус: Active


ЧТО ЭТО

Code Generator — движок автоматической генерации кода из YAML конфигураций с DELTA наследованием.

Основа для: "запустить платформу на автомат" (автоматизация создания компонентов).


АРХИТЕКТУРА

generator/
├── src/
│   ├── preprocessor.py          ← YAML + DELTA наследование
│   ├── validator.py             ← Валидация конфигов
│   ├── backend_generator.py     ← FastAPI → Python
│   ├── frontend_generator.py    ← React → TypeScript
│   ├── database_generator.py    ← SQL DDL → PostgreSQL
│   ├── api_generator.py         ← OpenAPI specs
│   └── utils.py
│
├── templates/
│   ├── backend/       ← Jinja2 шаблоны для Python
│   ├── frontend/      ← Jinja2 шаблоны для React
│   ├── database/      ← SQL DDL шаблоны
│   └── api/           ← OpenAPI шаблоны
│
├── tests/             ← Unit тесты
└── cli.py             ← CLI интерфейс

ИСПОЛЬЗОВАНИЕ

Генерация из конфига

# Полная генерация проекта
python cli.py generate \
  --config constructor/l2_industry_crm.yaml \
  --output projects/generated/crm/

# Только backend
python cli.py generate \
  --config constructor/l2_industry_crm.yaml \
  --target backend \
  --output projects/generated/crm/backend/

# Только одна entity
python cli.py generate \
  --config constructor/l2_industry_crm.yaml \
  --entity Contact \
  --output projects/generated/crm/

КОНФИГУРАЦИЯ YAML

Пример с наследованием

# l0_universal.yaml
entities:
  - name: Entity
    fields:
      - name: id
        type: uuid
        primary_key: true
      - name: created_at
        type: timestamp
      - name: updated_at
        type: timestamp

# l1_platform.yaml
extends: l0_universal.yaml

entities:
  += Contact:  # DELTA: добавить новую entity
    fields:
      - name: email
        type: email
        unique: true

DELTA операции


PREPROCESSOR

Обрабатывает:
1. Загрузку базового YAML
2. Рекурсивное разрешение extends
3. Применение DELTA операций
4. Валидацию итогового конфига


ГЕНЕРАТОРЫ

Backend (FastAPI)

Генерирует:
- models/entity.py — SQLAlchemy модели
- routers/entity.py — CRUD endpoints
- schemas/entity.py — Pydantic схемы

Database (PostgreSQL)

Генерирует:
- schema.sql — CREATE TABLE
- migrations/ — Alembic миграции

Frontend (React)

Генерирует:
- components/EntityGrid.tsx — DataGrid
- components/EntityForm.tsx — Форма
- hooks/useEntity.ts — API hooks

API (OpenAPI)

Генерирует:
- openapi.yaml — OpenAPI 3.0 спецификация


ВРЕМЯ РАЗРАБОТКИ

Оценка AI: 60 часов = ~2 недели


СЛЕДУЮЩИЕ ШАГИ

После реализации Code Generator:
1. Реализация Phase 0 (Core Primitives) через генератор = 4ч вместо 40ч
2. Вся платформа через генератор = 100ч вместо 500ч


Ссылки:
- PLATFORM_COMPONENTS_FULL.md
- CONSTRUCTOR_ARCHITECTURE.md