Версия: 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)
Путь: $WORKSPACE/CLAUDE.md
Содержит:
- Общие правила работы
- Структура workspace
- Глобальные инструменты
- Стандарты и процессы
НЕ содержит: Данные конкретных проектов.
Пример:
# WORKSPACE: Claude Workspace
## Назначение
Рабочее пространство для всех проектов.
## Структура
- `architect/` — методология
- `system/` — платформа
- `projects/` — все проекты
## Стандарты
- [Context Blocks](architect/standards/CONTEXT_BLOCKS.md)
- [Процессы](architect/standards/processes/)
## Инструменты
- cache-resolver
- claude-loader
Путь: $WORKSPACE/projects/CLAUDE.md
Содержит:
- Список организаций
- Общие данные организаций
- Шаблоны проектов
Наследует: WORKSPACE
Пример:
---
extends: ../CLAUDE.md
---
# ORG: Projects
## Организации
- `org/` — бизнес-проекты
- `internal/` — внутренние инструменты
## Стандарты организации
- Структура проектов
- Naming conventions
Путь: 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
Запуск:
pytest tests/test_auth.py -v
Критерии:
- Coverage ≥ 90%
- Все edge cases покрыты
- Performance: validate_token < 10ms
Ссылка на тесты:
tests/test_auth.py
Запустить юнит-тесты:
bash
pytest tests/test_auth.py
Проверить интеграцию:
bash
pytest tests/integration/test_auth_flow.py
Валидация токена вручную:
bash
python3 -m auth.cli validate TOKEN
Метрики:
- Response time < 10ms
- Success rate > 99.9%
# Из ../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
---
Какие секции нужны из родителя:
---
extends: ../CLAUDE.md
include:
- credentials
- api_endpoints
---
Кеш данных из других файлов:
---
cache:
shared:
$ref: ../shared/api.yaml#endpoints
auth:
$ref: ../auth/CLAUDE.md#interface
---
Скомпилированный кеш (auto-generated):
---
resolved:
credentials:
database: {PROJECT_NAME}_db
endpoints:
login: POST /auth/login
---
claude-loader compile auth/CLAUDE.md
auth/CLAUDE.mdextends: ../CLAUDE.mdinclude:$ref из cache:resolved: секциюОДИН файл содержит:
- Контекст WORKSPACE (стандарты)
- Контекст ORG (организация)
- Контекст PROJECT (credentials, API)
- Контекст BLOCK (интерфейс, зависимости)
- Кеш из других блоков
= ВЕСЬ НУЖНЫЙ КОНТЕКСТ для решения задачи.
---
# Наследование
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
{команда запуска тестов}
{специфичное для уровня}
---
## ИНСТРУМЕНТЫ
### 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: секции существуют в родителе
extends: (кроме WORKSPACE)include: (что нужно из родителя)cache: (внешние зависимости)claude-loader validate| Тип | Описание | Пример |
|---|---|---|
| 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
v3/v2/ln -sf v3/code codeCLAUDE.md (version: v3, status: active)v2/CLAUDE.md (status: deprecated)$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
$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 | Протокол работы с документами |
Проверить текущую структуру:
tree projects/org/{PROJECT_NAME} -L 2
Создать PROJECT CLAUDE.md:
bash
touch projects/org/{PROJECT_NAME}/CLAUDE.md
Заполнить по шаблону (PROJECT Level)
Создать BLOCK CLAUDE.md для каждой папки:
bash
touch projects/org/{PROJECT_NAME}/auth/CLAUDE.md
touch projects/org/{PROJECT_NAME}/orders/CLAUDE.md
Заполнить по шаблону (BLOCK Level)
claude-loader validate projects/org/{PROJECT_NAME}/auth/CLAUDE.md
claude-loader compile projects/org/{PROJECT_NAME}/auth/CLAUDE.md
Проверить что все $ref разрешаются:
claude-loader update projects/org/{PROJECT_NAME}/auth/CLAUDE.md
НЕ копировать данные из родителя — использовать include: и cache:.
Плохо:
# auth/CLAUDE.md
credentials:
database:
host: localhost # дублирование из PROJECT
Хорошо:
# auth/CLAUDE.md
include:
- credentials # взять из родителя
Всегда указывать какие документы нужны для работы:
## Зависимости
1. [Project credentials](../CLAUDE.md#credentials)
2. [Shared API](../shared/api.yaml)
3. [Orders interface](../orders/CLAUDE.md#interface)
Каждый блок должен иметь:
- Критерии готовности
- Команды для тестирования
- Метрики успеха
deprecated версии для историиcode/ на активную версиюВ VERSION CLAUDE.md указывать:
- Что изменилось от предыдущей версии
- Почему изменили
- Обратная совместимость (да/нет)
A: Не обязательно. Только для:
- Логических блоков (auth, orders)
- Версий (v1, v2)
- Проектов
Служебные папки (utils/, helpers/) могут не иметь.
A: Да, через cache: и $ref:
cache:
shared_lib:
$ref: ../../internal/library/api.yaml#functions
A: Автоматически:
claude-loader update auth/CLAUDE.md
Или вручную при компиляции — resolved: генерируется на лету.
A: Перекомпилировать:
claude-loader update auth/CLAUDE.md
Или Claude автоматически загрузит свежий при чтении.
A: Нет, только один прямой родитель. Но родитель сам extends следующего → получается цепочка.
claude-loader (реализация)Версия: 1.0.0
Автор: Claude Opus 4.5
Дата создания: 2026-02-01