architect/standards/9-guidance/guidance-fractal-architecture.md

type: standard
aspect: guidance
title: "СТАНДАРТ: Fractal Architecture"
version: 1.0.0
date: 2026-02-19
status: active


СТАНДАРТ: Fractal Architecture

Версия: 1.0.0
Дата: 2026-02-01
Статус: Active


Концепция

Фрактальная архитектура — рекурсивная структура проекта, где каждый уровень является микро-проектом с одинаковой структурой.

ПРОЕКТ ≈ МОДУЛЬ ≈ БЛОК ≈ ПОКОЛЕНИЕ

Одна и та же структура на всех уровнях:
  CLAUDE.md + CACHE.yaml + planning/ + dev/ + testing/ + deploy/

Принцип рекурсии

ПРОЕКТ
  ├── dev/
      ├── МОДУЛЬ (микро-проект)
          ├── dev/
              ├── БЛОК (микро²-проект)
                  ├── dev/
                      └── ПОКОЛЕНИЕ (микро³-проект)

Каждый уровень:
- Самодостаточен (можно разрабатывать независимо)
- Тестируем (имеет testing/)
- Деплоим (имеет deploy/ с результатом)
- Декомпозируем (имеет planning/ с описанием блоков)


Минимальная структура (любой уровень)

микро-проект/
├── CLAUDE.md          ← описание, метаданные, интерфейс
├── CACHE.yaml         ← входные данные, зависимости
│
├── planning/          ← планирование
│   ├── requirements.md   ← требования
│   ├── blocks.md         ← декомпозиция на под-блоки
│   └── criteria.md       ← критерии готовности
│
├── dev/               ← разработка
│   ├── [под-блоки]       ← рекурсия (микро-проекты)
│   └── [код]             ← или финальный код (атом)
│
├── testing/           ← тесты
│   ├── unit/
│   ├── integration/
│   └── criteria.md       ← результаты тестов
│
└── deploy/            ← результат (финальная сборка)
    ├── dist/             ← собранный продукт
    └── README.md         ← как использовать

Типы структур

Для CODE блока

блок/
├── CLAUDE.md
├── CACHE.yaml
├── planning/
│   ├── requirements.md
│   ├── blocks.md      ← список функций/классов
│   └── criteria.md    ← coverage >80%, 0 bugs
│
├── dev/
│   ├── функция_1/     ← под-блок (если сложная)
│   ├── функция_2/
│   └── utils.py       ← вспомогательный код
│
├── testing/
│   ├── unit/
│   │   ├── test_функция_1.py
│   │   └── test_функция_2.py
│   └── integration/
│
└── deploy/
    └── module.py      ← финальный модуль

Для DOCS блока

блок/
├── CLAUDE.md
├── CACHE.yaml
├── planning/
│   ├── requirements.md    ← что документировать
│   ├── blocks.md          ← разделы документации
│   └── criteria.md        ← полнота, ясность
│
├── dev/
│   ├── раздел_1.md
│   ├── раздел_2.md
│   └── диаграммы/
│
├── testing/
│   └── review.md          ← ревью документации
│
└── deploy/
    └── final.md           ← финальная документация

Для OPS блока

блок/
├── CLAUDE.md
├── CACHE.yaml
├── planning/
│   ├── requirements.md    ← что автоматизировать
│   ├── blocks.md          ← шаги скрипта
│   └── criteria.md        ← надёжность, откат
│
├── dev/
│   ├── validation/
│   ├── backup/
│   └── cleanup/
│
├── testing/
│   ├── dry-run.sh         ← тест без изменений
│   └── rollback.sh        ← тест отката
│
└── deploy/
    └── script.sh          ← финальный скрипт

Рекурсивный цикл разработки

Фаза 1: ДЕКОМПОЗИЦИЯ (top-down, planning)

Алгоритм: Спускаемся вглубь, разбивая на всё более мелкие части.

1. ПРОЕКТ
   ├── Определить стадии (planning, dev, testing, deploy)
   ├── Для dev/  определить модули/компоненты
   
2. МОДУЛЬ (микро-проект)
   ├── CLAUDE.md  описать модуль
   ├── CACHE.yaml  входные данные
   ├── planning/requirements.md  требования
   ├── planning/blocks.md  декомпозировать на БЛОКИ
   ├── planning/criteria.md  критерии готовности
   
3. БЛОК (микро²-проект)
   ├── CLAUDE.md  описать блок
   ├── CACHE.yaml  входные данные
   ├── planning/requirements.md  требования
   ├── planning/blocks.md  декомпозировать на ПОКОЛЕНИЯ
   ├── planning/criteria.md  критерии готовности
   
4. ПОКОЛЕНИЕ (микро³-проект, АТОМ)
   ├── CLAUDE.md  описать поколение
   ├── CACHE.yaml  входные данные
   ├── planning/requirements.md  требования
   ├── planning/criteria.md  критерии готовности
   └── dev/  КОД (атомарный уровень, влезает в контекст)

Критерий остановки: Уровень влезает в контекст Claude (~300 строк кода).

Результат фазы:
- Полное дерево декомпозиции
- Все CLAUDE.md заполнены
- Все planning/ заполнены
- Все CACHE.yaml определены


Фаза 2: УТОЧНЕНИЕ (на каждом уровне)

Для каждого узла рекурсии:

# CLAUDE.md — интерфейс уровня
block:
  name: "..."
  type: CODE|DOCS|OPS
  inputs: [...]     ← что требует
  outputs: [...]    ← что производит

# CACHE.yaml — входные данные
dependencies: [...]
inputs: {...}
resolved: {...}

# planning/requirements.md — требования
- Функциональные требования
- Нефункциональные требования
- Ограничения

# planning/blocks.md — декомпозиция
Список под-блоков с кратким описанием

# planning/criteria.md — критерии
- Критерии готовности
- Метрики качества
- Условия приёмки

Результат фазы:
- Каждый уровень полностью описан
- Все параметры уточнены
- Все зависимости определены
- Критерии тестирования зафиксированы


Фаза 3: РЕАЛИЗАЦИЯ (bottom-up, development)

Алгоритм: Поднимаемся снизу вверх, собирая результаты.

НАЧАТЬ С САМОГО ГЛУБОКОГО УРОВНЯ (атом):

Уровень N (атомарный):
  1. claude-loader compile CLAUDE.md  загрузить контекст
  2. dev/  реализовать код
  3. testing/  написать и запустить тесты
  4. Если тесты FAILED  вернуться к dev/
  5. Если тесты PASSED  deploy/ собрать результат
  6. ПРОДУКТ УРОВНЯ N ГОТОВ

Уровень N-1 (использует результаты N):
  1. CACHE.yaml  resolved += deploy/ уровня N
  2. claude-loader compile CLAUDE.md  загрузить контекст
  3. dev/  интегрировать под-блоки
  4. testing/  тесты интеграции
  5. Если тесты FAILED  проверить под-блоки или интеграцию
  6. Если тесты PASSED  deploy/ собрать результат
  7. ПРОДУКТ УРОВНЯ N-1 ГОТОВ

Продолжать до КОРНЯ (проект):
  - Каждый уровень использует deploy/ под-уровней
  - Каждый уровень тестируется независимо
  - Результат собирается в deploy/

Ключевой принцип: Уровень N не знает внутреннее устройство уровня N+1, только использует его deploy/.


Фаза 4: ИНТЕГРАЦИЯ и ВАЛИДАЦИЯ (на каждом уровне)

ДЛЯ КАЖДОГО УРОВНЯ (снизу вверх):

1. СБОРКА deploy/
   - Собрать результаты под-уровней
   - Создать финальный продукт уровня
   - Документировать deploy/README.md

2. ТЕСТИРОВАНИЕ
   - Запустить testing/unit/
   - Запустить testing/integration/
   - Проверить criteria.md

3. ВАЛИДАЦИЯ
   - Все тесты PASSED?
   - Критерии выполнены?
   - Покрытие достаточное?

4. ФИКСАЦИЯ
   - Обновить CLAUDE.md (status: completed)
   - Записать метрики в testing/criteria.md
   - Зафиксировать версию в deploy/

5. ПОДЪЁМ НА УРОВЕНЬ ВЫШЕ
   - deploy/ текущего → CACHE.yaml родителя
   - Повторить процесс для родителя

Пример: 4-уровневая рекурсия

УРОВЕНЬ 1: ПРОЕКТ lideravto

# planning/blocks.md
Модули:
- library/connectors/api/ozon — API клиент Ozon
- dev/catalog — Каталог товаров
- dev/import — Импорт BAZON

# Декомпозируем в dev/

УРОВЕНЬ 2: МОДУЛЬ ozon

library/connectors/api/ozon/
├── CLAUDE.md
   block:
     name: ozon
     inputs: [API_KEY, API_URL]
     outputs: [OrdersClient, ProductsClient, StocksClient]

├── CACHE.yaml
   resolved:
     api_key: "..."
     api_url: "https://api-seller.ozon.ru"

├── planning/
   ├── requirements.md
      - Поддержка FBO/FBS заказов
      - Управление товарами
      - Синхронизация остатков
   
   ├── blocks.md
      Блоки:
      - orders  работа с заказами
      - products  управление товарами
      - stocks  синхронизация остатков
   
   └── criteria.md
       - API compatibility: 100%
       - Test coverage: >85%
       - Rate limits: respected

├── dev/
   ├── orders/     БЛОК (декомпозируем дальше)
   ├── products/
   └── stocks/

├── testing/
   ├── integration/
   └── criteria.md (результаты)

└── deploy/
    └── __init__.py
        # from .orders.deploy.orders import OrdersClient
        # from .products.deploy.products import ProductsClient
        # from .stocks.deploy.stocks import StocksClient

УРОВЕНЬ 3: БЛОК orders

dev/orders/
├── CLAUDE.md
   block:
     name: orders
     inputs: [api_client]
     outputs: [OrdersClient]
     current_version: v2

├── CACHE.yaml
   resolved:
     api_client: {$ref: ../../CACHE.yaml#api_client}

├── planning/
   ├── requirements.md
      - Список заказов FBO/FBS
      - Получение деталей заказа
      - Отмена заказа
   
   ├── blocks.md
      Поколения:
      - v1  базовый функционал
      - v2  пагинация + rate limits
   
   └── criteria.md
       - Unit tests: 10+
       - Integration tests: 3+
       - Rate limit handling: YES

├── dev/
   ├── v1/         ПОКОЛЕНИЕ (атом, декомпозируем)
   └── v2/         ПОКОЛЕНИЕ (атом, реализуем)

├── testing/
   ├── unit/
      ├── test_list.py
      ├── test_get.py
      └── test_cancel.py
   ├── integration/
      └── test_real_api.py
   └── criteria.md ( 12 unit,  3 integration)

└── deploy/
    └── orders.py
        # class OrdersClient:
        #     def list_orders(...)
        #     def get_order(...)
        #     def cancel_order(...)

УРОВЕНЬ 4: ПОКОЛЕНИЕ v2 (АТОМ)

dev/v2/
├── CLAUDE.md
   generation:
     version: v2
     description: "Пагинация + rate limits"
     size: 280 строк
     inputs: [api_client]
     outputs: [OrdersClient class]

├── CACHE.yaml
   resolved:
     api_client: {$ref: ../../../CACHE.yaml#api_client}

├── planning/
   ├── requirements.md
      - Добавить пагинацию (limit, offset)
      - Обработка rate limits (429)
      - Retry logic
   
   └── criteria.md
       - Функции: list_orders, get_order, cancel_order
       - Unit tests: 5+
       - Rate limit: обработан

├── dev/
   └── orders.py           АТОМАРНЫЙ КОД (280 строк)
       ```python
       class OrdersClient:
           def list_orders(self, limit=100, offset=0):
               # реализация с пагинацией
               ...
           def get_order(self, order_id):
               # реализация с retry
               ...
           def cancel_order(self, order_id):
               # реализация
               ...
       ```

├── testing/
   ├── unit/
      ├── test_pagination.py       2 теста
      ├── test_rate_limits.py      2 теста
      └── test_retry.py            1 тест
   └── criteria.md
        5 unit tests PASSED
        Rate limit handling: OK

└── deploy/
    └── orders.py           финальная версия v2

Рекурсивный цикл (пример)

ШАГ 1: Декомпозиция (top-down)

ПРОЕКТ lideravto
   декомпозиция
dev/library/connectors/api/ozon (МОДУЛЬ)
   декомпозиция
dev/orders (БЛОК)
   декомпозиция
dev/v2 (ПОКОЛЕНИЕ  АТОМ, 280 строк)

Результат: Дошли до атома (влезает в контекст).


ШАГ 2: Реализация АТОМА (уровень 4)

dev/v2/
  1. claude-loader compile CLAUDE.md
      Загружен контекст: requirements, api_client

  2. dev/orders.py
      Написан код (280 строк)

  3. testing/unit/
      5 тестов написаны и PASSED

  4. deploy/orders.py
      Финальная версия v2 готова

Результат: deploy/orders.py (продукт уровня 4).


ШАГ 3: Интеграция в БЛОК (уровень 3)

dev/orders/
  1. CACHE.yaml
     resolved:
       v2_result: {$ref: dev/v2/deploy/orders.py}

  2. claude-loader compile CLAUDE.md
      Контекст: v1, v2 готовы

  3. deploy/orders.py
      Экспортируем v2 (current)

  4. testing/integration/
      3 теста интеграции PASSED

Результат: deploy/orders.py (продукт уровня 3).


ШАГ 4: Интеграция в МОДУЛЬ (уровень 2)

library/connectors/api/ozon/
  1. CACHE.yaml
     resolved:
       orders: {$ref: dev/orders/deploy/orders.py}
       products: {$ref: dev/products/deploy/products.py}
       stocks: {$ref: dev/stocks/deploy/stocks.py}

  2. deploy/__init__.py
      Собрать экспорты всех блоков

  3. testing/integration/
      Тесты модуля PASSED

Результат: deploy/__init__.py (продукт уровня 2).


ШАГ 5: Интеграция в ПРОЕКТ (уровень 1)

lideravto/
  1. CACHE.yaml
     resolved:
       ozon: {$ref: library/connectors/api/ozon/deploy/__init__.py}

  2. deploy/
      Релиз проекта v2.0

  3. testing/e2e/
      End-to-end тесты PASSED

Результат: Релиз проекта v2.0 — безупречный продукт.


Безупречность продукта

Почему это работает

Принцип Результат
Полная декомпозиция Каждая часть влезает в контекст Claude
Уточнение параметров Нет неопределённости, всё зафиксировано
Тестирование на каждом уровне Ошибки найдены рано, не распространяются
Bottom-up сборка Каждый уровень использует протестированные компоненты
Изоляция Уровни независимы, изменения не ломают другие части
Рекурсивная проверка Тесты на каждом уровне + интеграционные тесты

Критерии безупречности

# Для каждого уровня должны быть TRUE:

✅ planning/requirements.md — все требования зафиксированы
✅ planning/blocks.md — декомпозиция понятна
✅ planning/criteria.md — критерии определены
✅ CACHE.yaml — все входные данные resolved
✅ dev/ — реализовано (код или интеграция блоков)
✅ testing/ — все тесты PASSED
✅ testing/criteria.md — критерии выполнены
✅ deploy/ — результат собран и задокументирован

Если все уровни ✅ → продукт безупречен.


Workflow: От идеи до безупречного продукта

1. ИДЕЯ
   
2. ДЕКОМПОЗИЦИЯ (Фаза 1)
   - Разбить на стадии
   - Разбить на модули
   - Разбить на блоки
   - Разбить на поколения
   - До атомарного уровня
   
3. УТОЧНЕНИЕ (Фаза 2)
   - CLAUDE.md на каждом уровне
   - CACHE.yaml на каждом уровне
   - planning/ на каждом уровне
   
4. РЕАЛИЗАЦИЯ (Фаза 3, bottom-up)
   - Начать с атомов
   - dev/  testing/  deploy/
   - Подняться на уровень выше
   - Повторить до корня
   
5. ВАЛИДАЦИЯ (Фаза 4)
   - Тесты на каждом уровне
   - Критерии на каждом уровне
   - Интеграция на каждом уровне
   
6. БЕЗУПРЕЧНЫЙ ПРОДУКТ

Метрики качества

На каждом уровне

metrics:
  planning:
    requirements_coverage: 100%
    blocks_defined: YES
    criteria_defined: YES

  development:
    code_size: < 500 строк (если атом)
    dependencies_resolved: 100%

  testing:
    unit_tests_passed: 100%
    integration_tests_passed: 100%
    criteria_met: 100%

  deployment:
    build_success: YES
    documentation: YES

На уровне проекта

project_metrics:
  levels_total: 4
  levels_completed: 4
  atoms_total: 12
  atoms_passed: 12
  overall_coverage: 87%
  bugs_found: 0
  quality_score: A+

Чеклист рекурсивного цикла

Фаза 1: Декомпозиция

Фаза 2: Уточнение

Для каждого уровня рекурсии:
- [ ] CLAUDE.md заполнен (inputs, outputs)
- [ ] CACHE.yaml заполнен (dependencies, inputs)
- [ ] planning/requirements.md написан
- [ ] planning/blocks.md написан
- [ ] planning/criteria.md написан

Фаза 3: Реализация (снизу вверх)

Для каждого уровня от атома до корня:
- [ ] claude-loader compile CLAUDE.md
- [ ] dev/ реализован (код или интеграция)
- [ ] testing/unit/ написаны и PASSED
- [ ] testing/integration/ написаны и PASSED
- [ ] testing/criteria.md проверен (все ✅)
- [ ] deploy/ собран
- [ ] deploy/README.md написан

Фаза 4: Валидация


Связанные стандарты

Стандарт Назначение
../PROJECT_DEVELOPMENT_AI.md 4-мерная иерархия проектов
../PROJECT_DEVELOPMENT_AI.md Концепция контекстблоков
../PROJECT_DEVELOPMENT_AI.md Иерархия CLAUDE.md

Инструменты

Инструмент Назначение
claude-loader.py Компиляция CLAUDE.md с кешем
fractal-init.py Создание фрактальной структуры (TODO)
fractal-validate.py Проверка полноты рекурсии (TODO)

Changelog

Версия Дата Изменения
1.0.0 2026-02-01 Первая версия стандарта

Версия: 1.0.0
Статус: Active