Стандарт структуры проектов
Версия: 1.0.0
Дата: 2025-11-29
Уровень: У1 (Правила)
Вытекает из: ../README.md
ПРИНЦИП
Проект = единица работы с понятной структурой
Тип проекта определяет структуру
ТИПЫ ПРОЕКТОВ
| Тип |
Назначение |
Пример |
| CODE |
Код приложения |
pim, market, shop |
| DATA |
Данные, файлы |
products, _shared |
| INFRA |
Инфраструктура |
@infra-dev-pro |
| BUSINESS |
Контейнер проектов |
pirotehnika/ |
СТРУКТУРА CODE-ПРОЕКТА
{project}/
├── CLAUDE.md ← Контекст для Claude (ОБЯЗАТЕЛЬНО)
├── index.yaml ← Индекс проекта (ОБЯЗАТЕЛЬНО)
│
├── design/ ← Проектирование
│ ├── PROJECT.md ← Описание проекта
│ ├── ARCHITECTURE.md ← Архитектура (если сложный)
│ └── ROADMAP.md ← План развития
│
├── management/ ← Управление
│ ├── README.md ← Быстрый старт
│ ├── TODO.md ← Текущие задачи
│ └── CHANGELOG.md ← История изменений
│
├── solution/ ← Решение (код)
│ ├── code/ ← Исходный код
│ └── scripts/ ← Вспомогательные скрипты
│
└── data/ ← Локальные данные (или → hub)
СТРУКТУРА DATA-ПРОЕКТА
{project}/
├── CLAUDE.md ← Контекст (ОБЯЗАТЕЛЬНО)
├── index.yaml ← Индекс (опционально)
│
├── index/ ← Мастер-файлы (источник правды)
├── originals/ ← Оригиналы (неизменяемые)
├── processed/ ← Обработанные
├── scripts/ ← Скрипты обработки
├── new/ ← Входящие (для обработки)
└── archive/ ← Архив (→ hub)
СТРУКТУРА BUSINESS-ПРОЕКТА (контейнер)
{business}/
├── CLAUDE.md ← Контекст бизнеса (ОБЯЗАТЕЛЬНО)
├── index.yaml ← Индекс бизнеса (ОБЯЗАТЕЛЬНО)
│
├── _shared/ ← Общие данные бизнеса
│ ├── CLAUDE.md
│ └── {domain}/ ← По доменам (ozon/, suppliers/)
│
├── {code-project}/ ← CODE-проекты
├── {data-project}/ ← DATA-проекты
└── {site-domain}/ ← Сайты (по имени домена)
ОБЯЗАТЕЛЬНЫЕ ФАЙЛЫ
| Файл |
Назначение |
Когда обязателен |
| CLAUDE.md |
Контекст для Claude |
ВСЕГДА |
| index.yaml |
Индекс и связи |
CODE, BUSINESS |
| design/PROJECT.md |
Описание проекта |
CODE |
| management/README.md |
Быстрый старт |
CODE |
ПРАВИЛА ИМЕНОВАНИЯ
Папки
| Тип |
Формат |
Пример |
| Сайт |
домен |
pirotehnika.spb.ru |
| Инфра |
@infra-{name} |
@infra-dev-pro |
| Сервис |
@service-{name} |
@service-ozon |
| Данные |
snake_case |
products, _shared |
| Код |
snake_case |
market, pim |
Файлы
| Тип |
Формат |
Пример |
| Документ |
UPPER_CASE.md |
CLAUDE.md, README.md |
| AI-агент |
kebab-case.ai.md |
terminal.ai.md |
| Код |
snake_case.py |
fix_prices.py |
| Данные |
snake_case.csv |
products.csv |
ЗАПРЕЩЕНО
| Что |
Почему |
| Файлы в корне без назначения |
Мусор |
| Дублирование (INDEX.md + index.yaml) |
DRY |
| solution/ без design/ |
Нет контекста |
| Данные в коде |
Workspace ≠ Hub |
ПРИМЕРЫ
CODE: market (Streamlit MVP)
market/
├── CLAUDE.md
├── index.yaml
├── design/
│ └── PROJECT.md
├── management/
│ └── README.md
└── solution/
└── code/
├── app.py
└── pages/
DATA: products (товары)
products/
├── CLAUDE.md
├── index/
│ ├── master.xlsx
│ └── sku_mapping.xlsx
├── originals/
│ └── suppliers/
├── processed/
└── scripts/
└── parse_prices.py
BUSINESS: pirotehnika
pirotehnika/
├── CLAUDE.md
├── index.yaml
├── _shared/
│ └── ozon/
├── pim/ ← CODE
├── market/ ← CODE
├── ozon/ ← CODE
├── products/ ← DATA
└── pirotehnika.spb.ru/ ← CODE (сайт)
Версия: 1.0.0