architect/arh/standards/before-reform-2026-02-19/CLAUDE_HIERARCHY.md

ИЕРАРХИЯ CLAUDE.md

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


ПРИНЦИП

Каждая папка = дочерний класс, наследует контекст родителя.

НИКАКОГО ХАРДКОДИНГА — все данные через наследование или кеш.


УРОВНИ ИЕРАРХИИ

WORKSPACE ($WORKSPACE)
    ↓
ORG (projects/*)
    ↓
PROJECT (projects/org/name)
    ↓
BLOCK (projects/org/name/block)
    ↓
VERSION (projects/org/name/block/v1)

1. WORKSPACE Level

Путь: $WORKSPACE/CLAUDE.md

Содержит:
- Общие правила работы
- Структура workspace
- Глобальные инструменты
- Стандарты и процессы

НЕ содержит: Данные конкретных проектов.

Пример:

# WORKSPACE: Claude Workspace

## Назначение
Рабочее пространство для всех проектов.

## Структура
- `architect/` — методология
- `system/` — платформа
- `projects/` — все проекты

## Стандарты
- [Context Blocks](architect/standards/CONTEXT_BLOCKS.md)
- [Процессы](architect/standards/processes/)

## Инструменты
- cache-resolver
- claude-loader

2. ORG Level

Путь: $WORKSPACE/projects/CLAUDE.md

Содержит:
- Список организаций
- Общие данные организаций
- Шаблоны проектов

Наследует: WORKSPACE

Пример:

---
extends: ../CLAUDE.md
---

# ORG: Projects

## Организации
- `org/` — бизнес-проекты
- `internal/` — внутренние инструменты

## Стандарты организации
- Структура проектов
- Naming conventions

3. PROJECT Level

Путь: projects/org/{PROJECT_NAME}/CLAUDE.md

Содержит:
- Описание проекта
- Credentials (БД, API ключи)
- Структура блоков
- Ссылка на ROADMAP.md

Наследует: ORG → WORKSPACE

Пример:

---
extends: ../CLAUDE.md

# Кеширование данных проекта
project:
  name: {PROJECT_NAME}
  type: ecommerce

credentials:
  database:
    host: localhost
    name: {PROJECT_NAME}_db
    user: {PROJECT_NAME}_user

  api:
    url: https://api.{PROJECT_NAME}.ru

  ozon:
    seller_id: 12345
    client_id: xxx
    # API key в .credentials.md
---

# ПРОЕКТ: Pirotehnika

## Назначение
E-commerce платформа для пиротехники.

## Блоки

- `auth/` — авторизация JWT
- `orders/` — управление заказами
- `sync/` — синхронизация с OZON
- `shared/` — общие данные

## Роадмап

См. [ROADMAP.md](./ROADMAP.md)

## Документы для подгрузки

При работе с проектом:
1. Этот CLAUDE.md (контекст проекта)
2. ROADMAP.md (план)
3. CONTEXT_BLOCKS.md (карта блоков)
4. Конкретный блок: `{block}/CLAUDE.md`

## Проверка проекта

### Критерии готовности
- [ ] Все блоки completed
- [ ] Интеграционные тесты пройдены
- [ ] Документация актуальна

### Тесты
```bash
pytest tests/integration/
---

### 4. BLOCK Level

**Путь:** `projects/org/{PROJECT_NAME}/auth/CLAUDE.md`

**Содержит:**
- Описание блока
- Границы (что делает / не делает)
- Интерфейс (API)
- Зависимости (другие блоки)
- Кеш данных из родителя
- Стадии/версии
- Проверка корректности

**Наследует:** PROJECT  ORG  WORKSPACE

**Пример:**
```markdown
---
extends: ../CLAUDE.md

# Что нужно из родителя
include:
  - credentials
  - api.url

# Кеш из других блоков
cache:
  shared:
    $ref: ../shared/api.yaml#auth_endpoints

# Метаданные блока
block:
  id: auth
  type: CODE
  status: completed
  version: v2
---

# КОНТЕКСТБЛОК: Auth

## Назначение
JWT авторизация и валидация токенов.

## Границы

**ЧТО ДЕЛАЕТ:**
- Генерация JWT токенов
- Валидация токенов
- Проверка прав доступа

**ЧТО НЕ ДЕЛАЕТ:**
- Регистрация пользователей  [registration] блок
- Хранение паролей  [users] блок

## Структура

- `v1/`  первая версия (deprecated)
- `v2/`  текущая версия (активная)
- `code/`  symlink на v2/code
- `tests/`  тесты

## Интерфейс

```python
def validate_token(token: str) -> bool:
    """Проверяет JWT токен."""
    pass

def generate_token(user_id: int) -> str:
    """Генерирует JWT токен."""
    pass

Зависимости

Какие документы подгрузить при работе с блоком:
1. Этот CLAUDE.md (контекст блока)
2. Shared API — endpoints
3. Project credentials — секреты
4. v2/CLAUDE.md — текущая версия (детали)

Стадии/Версии

Текущая: v2

Роадмап блока

  1. ✅ v1 базовая реализация
  2. ✅ v2 рефакторинг
  3. ⏳ v3 OAuth (в плане)

Проверка корректности

Критерии готовности

Тесты

Запуск:

pytest tests/test_auth.py -v

Критерии:
- Coverage ≥ 90%
- Все edge cases покрыты
- Performance: validate_token < 10ms

Ссылка на тесты:
tests/test_auth.py

Как удостовериться

  1. Запустить юнит-тесты:
    bash pytest tests/test_auth.py

  2. Проверить интеграцию:
    bash pytest tests/integration/test_auth_flow.py

  3. Валидация токена вручную:
    bash python3 -m auth.cli validate TOKEN

  4. Метрики:
    - Response time < 10ms
    - Success rate > 99.9%

Кеш данных (resolved)

# Из ../CLAUDE.md#credentials
credentials:
  database:
    host: localhost
    name: {PROJECT_NAME}_db
  api:
    url: https://api.{PROJECT_NAME}.ru

# Из ../shared/api.yaml#auth_endpoints
endpoints:
  login: POST /auth/login
  logout: POST /auth/logout
  validate: POST /auth/validate
---

### 5. VERSION Level

**Путь:** `projects/org/{PROJECT_NAME}/auth/v2/CLAUDE.md`

**Содержит:**
- Детали конкретной версии
- Изменения от предыдущей
- Статус (active/deprecated)
- Код этой версии

**Наследует:** BLOCK → PROJECT → ORG → WORKSPACE

**Пример:**
```markdown
---
extends: ../CLAUDE.md

version:
  number: v2
  status: active
  date: 2026-01-15
  deprecated: null
---

# VERSION: Auth v2

## Изменения от v1

- Рефакторинг на async/await
- Добавлен refresh token
- Улучшена производительность (3x)

## Статус

**ACTIVE** — текущая рабочая версия.

## Содержимое

- `code/` — исходный код v2
- `tests/` — тесты v2

## Обратная совместимость

✅ API совместим с v1
✅ Миграция не требуется

## Проверка

```bash
pytest v2/tests/
---

## ПРАВИЛА НАСЛЕДОВАНИЯ

### 1. extends:

Каждый дочерний CLAUDE.md указывает родителя:

```yaml
---
extends: ../CLAUDE.md
---

2. include:

Какие секции нужны из родителя:

---
extends: ../CLAUDE.md
include:
  - credentials
  - api_endpoints
---

3. cache:

Кеш данных из других файлов:

---
cache:
  shared:
    $ref: ../shared/api.yaml#endpoints
  auth:
    $ref: ../auth/CLAUDE.md#interface
---

4. resolved:

Скомпилированный кеш (auto-generated):

---
resolved:
  credentials:
    database: {PROJECT_NAME}_db
  endpoints:
    login: POST /auth/login
---

КОМПИЛЯЦИЯ КОНТЕКСТА

Команда

claude-loader compile auth/CLAUDE.md

Процесс

  1. Читает auth/CLAUDE.md
  2. Видит extends: ../CLAUDE.md
  3. Читает родителя рекурсивно (до WORKSPACE)
  4. Извлекает секции из include:
  5. Разрешает $ref из cache:
  6. Генерирует resolved: секцию
  7. Возвращает СКОМПИЛИРОВАННЫЙ документ со ВСЕМ контекстом

Результат

ОДИН файл содержит:
- Контекст WORKSPACE (стандарты)
- Контекст ORG (организация)
- Контекст PROJECT (credentials, API)
- Контекст BLOCK (интерфейс, зависимости)
- Кеш из других блоков

= ВЕСЬ НУЖНЫЙ КОНТЕКСТ для решения задачи.


ШАБЛОН УНИВЕРСАЛЬНОГО CLAUDE.md

---
# Наследование
extends: ../CLAUDE.md

# Секции из родителя
include:
  - credentials
  - api_endpoints

# Кеш внешних данных
cache:
  dependency_name:
    $ref: ../path/to/file.yaml#section

# Метаданные (опционально)
meta:
  level: workspace|org|project|block|version
  type: CODE|DOCS|OPS|DESIGN|CONTENT|TEST
  status: planned|in_progress|completed|deprecated

# Скомпилированный кеш (auto-generated, не редактировать)
resolved:
  # Здесь данные после компиляции
---

# {LEVEL}: {Name}

## Назначение

{одно предложение — что делает}

## Структура / Блоки / Содержимое

{что внутри}

## Зависимости

Какие документы подгрузить:
- [Name](path/to/CLAUDE.md)
- [File](path/to/file.yaml)

## Роадмап / Стадии

{план или ссылка на ROADMAP.md}

## Проверка корректности

### Критерии готовности
- [ ] Критерий 1
- [ ] Критерий 2

### Тесты
```bash
{команда запуска тестов}

Как удостовериться

  1. Шаг 1
  2. Шаг 2

Кеш / Интерфейс / Данные

{специфичное для уровня}

---

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

### claude-loader

**Компиляция:**
```bash
claude-loader compile auth/CLAUDE.md > auth/COMPILED.md

Чтение с компиляцией:

claude-loader read auth/CLAUDE.md
# Возвращает скомпилированный контекст

Обновление кеша:

claude-loader update auth/CLAUDE.md
# Обновляет resolved: секцию

Валидация

claude-loader validate auth/CLAUDE.md
# Проверяет:
# - extends: указан правильно
# - $ref: разрешаются
# - include: секции существуют в родителе

ЧЕКЛИСТ СОЗДАНИЯ CLAUDE.md


ТИПЫ КОНТЕКСТБЛОКОВ

Тип Описание Пример
CODE Исходный код, функции auth/, orders/
DOCS Документация specs/, guides/
OPS Операции, скрипты deploy/, backup/
DESIGN Дизайн, макеты ui/, mockups/
CONTENT Контент, тексты articles/, pages/
TEST Тесты tests/, integration/

СТАТУСЫ БЛОКОВ

Статус Описание
planned Запланирован, не начат
in_progress В разработке
completed Готов, работает
deprecated Устарел, не использовать

ПРАВИЛО ВЕРСИОНИРОВАНИЯ

Структура версий

block/
├── v1/           ← первая версия (deprecated)
├── v2/           ← текущая версия (active)
├── v3/           ← следующая версия (planned)
├── code/         ← symlink → v2/code
├── tests/        ← тесты текущей версии
└── CLAUDE.md     ← описание блока

Активная версия

Symlink code/ всегда указывает на активную версию:

ln -sf v2/code code

Миграция версий

  1. Создать новую папку v3/
  2. Скопировать код из v2/
  3. Внести изменения
  4. Обновить тесты
  5. Переключить symlink: ln -sf v3/code code
  6. Обновить CLAUDE.md (version: v3, status: active)
  7. Пометить v2/CLAUDE.md (status: deprecated)

ПРИМЕРЫ ПОЛНЫХ ИЕРАРХИЙ

Пример 1: Проект Pirotehnika

$WORKSPACE/
├── CLAUDE.md                           [WORKSPACE]
└── projects/
    ├── CLAUDE.md                       [ORG]
    └── org/
        └── {PROJECT_NAME}/
            ├── CLAUDE.md               [PROJECT]
            ├── ROADMAP.md
            ├── CONTEXT_BLOCKS.md
            ├── auth/
               ├── CLAUDE.md           [BLOCK]
               ├── v1/
                  └── CLAUDE.md       [VERSION]
               ├── v2/
                  └── CLAUDE.md       [VERSION]
               ├── code/  v2/code
               └── tests/
            ├── orders/
               ├── CLAUDE.md           [BLOCK]
               └── code/
            └── shared/
                ├── CLAUDE.md           [BLOCK]
                └── api.yaml

Пример 2: Внутренний инструмент

$WORKSPACE/
└── projects/
    └── internal/
        └── monitoring/
            ├── CLAUDE.md               [PROJECT]
            ├── alerts/
               └── CLAUDE.md           [BLOCK]
            └── metrics/
                └── CLAUDE.md           [BLOCK]

СВЯЗЬ С ДРУГИМИ СТАНДАРТАМИ

Стандарт Связь
CONTEXT_BLOCKS.md Концепция контекстблоков
PROJECT_BOOTSTRAP.md Создание проекта с CLAUDE.md
QUESTIONS.md Словарь терминов для CLAUDE.md
PROTOCOL.md Протокол работы с документами

МИГРАЦИЯ СУЩЕСТВУЮЩИХ ПРОЕКТОВ

Шаг 1: Оценка

Проверить текущую структуру:

tree projects/org/{PROJECT_NAME} -L 2

Шаг 2: Создать иерархию

  1. Создать PROJECT CLAUDE.md:
    bash touch projects/org/{PROJECT_NAME}/CLAUDE.md

  2. Заполнить по шаблону (PROJECT Level)

  3. Создать BLOCK CLAUDE.md для каждой папки:
    bash touch projects/org/{PROJECT_NAME}/auth/CLAUDE.md touch projects/org/{PROJECT_NAME}/orders/CLAUDE.md

  4. Заполнить по шаблону (BLOCK Level)

Шаг 3: Компиляция

claude-loader validate projects/org/{PROJECT_NAME}/auth/CLAUDE.md
claude-loader compile projects/org/{PROJECT_NAME}/auth/CLAUDE.md

Шаг 4: Тестирование

Проверить что все $ref разрешаются:

claude-loader update projects/org/{PROJECT_NAME}/auth/CLAUDE.md

BEST PRACTICES

1. Минимальное дублирование

НЕ копировать данные из родителя — использовать include: и cache:.

Плохо:

# auth/CLAUDE.md
credentials:
  database:
    host: localhost  # дублирование из PROJECT

Хорошо:

# auth/CLAUDE.md
include:
  - credentials  # взять из родителя

2. Явные зависимости

Всегда указывать какие документы нужны для работы:

## Зависимости

1. [Project credentials](../CLAUDE.md#credentials)
2. [Shared API](../shared/api.yaml)
3. [Orders interface](../orders/CLAUDE.md#interface)

3. Проверяемость

Каждый блок должен иметь:
- Критерии готовности
- Команды для тестирования
- Метрики успеха

4. Версионирование

5. Документация изменений

В VERSION CLAUDE.md указывать:
- Что изменилось от предыдущей версии
- Почему изменили
- Обратная совместимость (да/нет)


FAQ

Q: Нужно ли каждой папке иметь CLAUDE.md?

A: Не обязательно. Только для:
- Логических блоков (auth, orders)
- Версий (v1, v2)
- Проектов

Служебные папки (utils/, helpers/) могут не иметь.

Q: Можно ли кешировать данные из других проектов?

A: Да, через cache: и $ref:

cache:
  shared_lib:
    $ref: ../../internal/library/api.yaml#functions

Q: Как обновить resolved: секцию?

A: Автоматически:

claude-loader update auth/CLAUDE.md

Или вручную при компиляции — resolved: генерируется на лету.

Q: Что если родитель изменился?

A: Перекомпилировать:

claude-loader update auth/CLAUDE.md

Или Claude автоматически загрузит свежий при чтении.

Q: Можно ли несколько extends?

A: Нет, только один прямой родитель. Но родитель сам extends следующего → получается цепочка.


ROADMAP СТАНДАРТА

v1.0 (2026-02-01) — текущая

v1.1 (план)

v2.0 (план)


ССЫЛКИ


Версия: 1.0.0
Автор: Claude Opus 4.5
Дата создания: 2026-02-01