Когда и зачем создаётся каждый документ
Версия: 1.0.0
Дата: 2026-02-08
Это мастер-файл! Создаётся ПЕРВЫМ на каждом уровне.
Зачем:
- Метаданные (type, version, status)
- Навигация (ссылки на дочерние)
- Конфигурация (окружения, зависимости)
Когда создавать:
- ✅ ВСЕГДА первым делом на новом уровне
- ✅ Перед любыми другими документами
Пример organization/index.yaml:
type: organization
name: ЛидерАвто
industry: retail
domains:
- biz
- fin
- it
Пример module/index.yaml:
type: module
name: catalog
purpose: Каталог товаров
dependencies:
- import
- search
version: 1.0.0
Правило: Нет index.yaml = уровень не существует официально
Триггер: Новый проект/модуль/компонент
Создаём:
1. index.yaml ← МАСТЕР-ФАЙЛ (обязательно)
Содержимое index.yaml:
- type (какой уровень)
- name (название)
- status (статус)
- version (если project/module)
Пример:
type: module
name: catalog
status: planning
Триггер: Нужно объяснить ЗАЧЕМ это нужно
Создаём:
2. .biz.md ← ЗАЧЕМ (бизнес-ценность)
Зачем .biz:
- Объяснить ЗАЧЕМ это нужно
- Бизнес-ценность
- Требования верхнего уровня
- Метрики успеха
Когда создавать:
- ✅ Новый модуль — объяснить зачем
- ✅ Новый проект — бизнес-требования
- ✅ Новая компания — видение
- ❌ Компонент — слишком мелкий уровень
- ❌ Рефакторинг — нет новой ценности
Содержимое:
# Назначение
Краткое описание зачем.
## Бизнес-задача
Какую проблему решаем.
## Ценность
- Что получим
- Метрики успеха
## Требования
- Требование 1
- Требование 2
Пример использования:
Ситуация: Начинаем модуль catalog
Создаём: catalog/purpose.biz.md
Содержимое: "Каталог товаров с фильтрами. Ценность: конверсия +30%"
Триггер: Понятно ЗАЧЕМ, нужно определить КАК (общее)
Создаём один из:
3a. .arc.md ← КАК устроена система (архитектура)
Зачем .arc:
- Техстек (технологии)
- Компоненты системы
- Инфраструктура
- Интеграции
Когда создавать:
- ✅ Новый project — техстек и архитектура
- ✅ Domain (it) — общий техстек направления
- ❌ Module — слишком детально, используй .dsg
- ❌ Organization — слишком высокий уровень
Содержимое:
# Архитектура
## Технологии
- Backend: PHP
- Frontend: JS
- БД: MySQL
## Компоненты
1. Модуль A
2. Модуль B
## Интеграции
- Система X через API
3b. .dsg.md ← КАК устроен модуль (дизайн)
Зачем .dsg:
- Техническое решение
- Компоненты модуля
- Данные и таблицы
- Алгоритм работы
Когда создавать:
- ✅ Новый модуль — дизайн решения
- ✅ Сложный модуль — много компонентов
- ❌ Простой модуль — можно пропустить, сразу .spc
- ❌ Project — используй .arc
Содержимое:
# Дизайн: Название
## Компоненты
1. Products — управление товарами
2. Filters — фильтрация
## Данные
| Компонент | Таблица | API |
|-----------|---------|-----|
| Products | products | fn_get_products() |
## Алгоритм
1. Получить фильтры
2. Построить SQL
3. Вернуть результат
Правило выбора:
- Project/Domain → .arc.md (архитектура системы)
- Module → .dsg.md (дизайн модуля)
Триггер: Понятно КАК общее, нужны ДЕТАЛИ
Создаём:
4. .spc.md ← ЧТО ДЕЛАЕТ (детально)
Зачем .spc:
- Детальное описание функций
- Параметры и возвращаемые значения
- SQL запросы
- Алгоритмы
- Тесты (чек-листы)
Когда создавать:
- ✅ ВСЕГДА для module (основной документ)
- ✅ Для component если сложный
- ❌ Для project/domain (слишком высокий уровень)
Дробление:
Если модуль большой → несколько .spc файлов:
catalog/
├── catalog-products.spc.md ← спека товаров
├── catalog-filters.spc.md ← спека фильтров
└── catalog-search.spc.md ← спека поиска
Содержимое:
# Спецификация: Products
## Функция
### fn_get_products($params)
**Параметры:**
- `$params` (array) — фильтры
**Возвращает:**
- array — список товаров
**SQL:**
```sql
SELECT * FROM products
WHERE category_id = ?
**Правило:** .spc = обязательный документ для модуля
---
### Этап 4: API документация (30-60 минут)
**Триггер:** Спеки готовы, нужно задокументировать интерфейс
**Создаём:**
**Зачем .api:**
- Публичные функции модуля
- Примеры использования
- Параметры и возвраты (короткая форма)
- Шаблоны (если есть)
**Когда создавать:**
- ✅ Module с публичным API
- ✅ Module используется другими модулями
- ❌ Component (API на уровне модуля)
- ❌ Project (нет кода)
**Содержимое:**
```markdown
# API: Catalog
## Функции
### fn_get_products($params)
Получить товары с фильтрацией
### fn_get_categories()
Получить категории
## Использование
```php
$products = fn_get_products([
'category_id' => 5,
'brand' => 'MAN'
]);
**Отличие от .spc:**
- `.spc` — КАК работает ВНУТРИ (алгоритм, SQL)
- `.api` — КАК использовать СНАРУЖИ (примеры)
---
### Этап 5: Промпты для AI (20-40 минут)
**Триггер:** Спеки готовы, нужно СГЕНЕРИРОВАТЬ код
**Создаём:**
**Зачем .pmt:**
- Инструкции для AI
- Требования к коду
- Что использовать
- Что НЕ использовать
**Когда создавать:**
- ✅ Генерируем код AI
- ✅ Сложная логика (нужны детали)
- ❌ Пишем код вручную
- ❌ Тривиальный код
**Дробление:**
Один промпт = одна задача для AI:
catalog/
├── products-create.pmt.md ← создать Products
├── filters-create.pmt.md ← создать Filters
└── search-create.pmt.md ← создать Search
**Содержимое:**
```markdown
# Промпт: Создать Products
Создай класс Products в `src/Products.php`
## Требования
1. По спеке catalog-products.spc.md
2. PDO prepared statements
3. Типизация
## Использовать
- db_get_array()
- fn_paginate()
## НЕ использовать
- Прямой SQL
- eval()
Правило: .pmt создаётся ПЕРЕД генерацией кода
Триггер: Код готов или ПЕРЕД кодом (TDD)
Создаём:
7. .tst.md ← ТЕСТ-ПЛАН
Зачем .tst:
- Unit-тесты (чек-лист)
- Интеграционные тесты
- Ручные тесты (сценарии)
- Критерии прохождения
Когда создавать:
- ✅ Module (рекомендуется)
- ✅ Сложный component
- ❌ Простой component
- ❌ Project/Domain (тесты в модулях)
Содержимое:
# Тесты: Catalog
## Unit-тесты
- [ ] fn_get_products() возвращает массив
- [ ] Фильтр по категории работает
## Интеграционные
- [ ] Товары из БД отображаются
- [ ] Фильтры применяются
## Ручные
1. Открыть /catalog
2. Выбрать категорию
3. Проверить: товары показаны
## Критерии
- Все unit пройдены
- Все ручные пройдены
Правило: .tst = опционально, но рекомендуется для модулей
Триггер: Всё спроектировано, можно кодить
Создаём:
8. src/ ← КОД
Зачем src/:
- Реализация функций
- Классы и компоненты
- Исполняемый код
Когда создавать:
- ✅ Module — основной код
- ✅ Component — компонент
- ✅ Engine — код движка
- ❌ Organization/Domain/Project (нет кода)
Структура:
src/
├── Products.php
├── Filters.php
└── Search.php
Правило: Код создаётся ПОСЛЕДНИМ (после документов)
Эти документы создаются не в прогрессии, а когда появляется триггер:
Триггер: Нужно описать процессы/деплой
Создаём:
.ops.md ← ПРОЦЕССЫ
Зачем:
- Инструкции деплоя
- Процессы (backup, monitoring)
- Чеклисты операций
Когда:
- ✅ Project перед деплоем → deployment.ops.md
- ✅ Organization → processes.ops.md
- ✅ Domain → deployment.ops.md
- ❌ Module (операции на уровне проекта)
Триггер: Нужно показать оргструктуру
Создаём:
.str.md ← СТРУКТУРА
Зачем:
- Оргструктура
- Отделы и роли
Когда:
- ✅ Organization → departments.str.md
- ❌ Другие уровни (нет оргструктуры)
Триггер: Нужен роадмап/план
Создаём:
.prj.md ← ПЛАН
Зачем:
- Роадмап
- Milestone'ы
- График работ
Когда:
- ✅ Project → roadmap.prj.md
- ❌ Module (план на уровне проекта)
НАЧИНАЕМ НОВЫЙ УРОВЕНЬ
↓
1. Создать index.yaml ← ВСЕГДА первым
↓
2. Нужно объяснить ЗАЧЕМ?
├─→ ДА → .biz.md
└─→ НЕТ → пропустить
↓
3. Какой уровень?
├─→ project/domain → .arc.md (архитектура)
├─→ module → .dsg.md (дизайн)
└─→ component → пропустить
↓
4. Нужны детали?
├─→ ДА → .spc.md (спецификации)
└─→ НЕТ → пропустить
↓
5. Есть публичный API?
├─→ ДА → .api.md
└─→ НЕТ → пропустить
↓
6. Генерируем AI?
├─→ ДА → .pmt.md (промпты)
└─→ НЕТ → пропустить
↓
7. Нужны тесты?
├─→ ДА → .tst.md
└─→ НЕТ → пропустить
↓
8. Есть код?
├─→ ДА → src/
└─→ НЕТ → готово
↓
ПАРАЛЛЕЛЬНО (когда нужно):
├─→ Деплой? → .ops.md
├─→ Оргструктура? → .str.md
└─→ План проекта? → .prj.md
| Документ | Триггер | Обязательно? | Уровни |
|---|---|---|---|
| index.yaml | Новый уровень | ✅ ВСЕГДА | все |
| .biz | Нужно объяснить зачем | ✅ Рекомендуется | org, domain, project, module |
| .arc | Нужна архитектура системы | ✅ Да | domain, project |
| .dsg | Нужно спроектировать модуль | ✅ Да (если сложный) | module |
| .spc | Нужны детали функций | ✅ ОБЯЗАТЕЛЬНО | module, component |
| .api | Есть публичный интерфейс | ⚠️ Опционально | module |
| .pmt | Генерируем AI | ⚠️ Опционально | module, component |
| .tst | Нужны тесты | ⚠️ Рекомендуется | module |
| src/ | Есть код | ✅ Да | engine, module, component |
| .ops | Нужны процессы/деплой | ⚠️ Когда нужно | org, domain, project |
| .str | Нужна оргструктура | ⚠️ Когда нужно | org |
| .prj | Нужен план проекта | ⚠️ Когда нужно | project |
День 1 (10 мин):
1. catalog/index.yaml ← мастер-файл
2. catalog/purpose.biz.md ← зачем
3. catalog/catalog.spc.md ← что делает
День 2 (2 часа):
4. catalog/src/Catalog.php ← код
ИТОГО: 4 файла
День 1 (30 мин):
1. catalog/index.yaml ← мастер-файл
2. catalog/purpose.biz.md ← зачем
День 2 (1 час):
3. catalog/design.dsg.md ← как устроен
День 3 (3 часа):
4. catalog/catalog-products.spc.md
5. catalog/catalog-filters.spc.md
6. catalog/catalog-search.spc.md
День 4 (1 час):
7. catalog/api.api.md ← API
День 5 (1 час):
8. catalog/products-create.pmt.md
9. catalog/filters-create.pmt.md
10. catalog/search-create.pmt.md
День 6 (4 часа):
11. catalog/src/Products.php ← код по промптам
12. catalog/src/Filters.php
13. catalog/src/Search.php
День 7 (1 час):
14. catalog/test.tst.md ← тесты
ИТОГО: 14 файлов за неделю
День 1 (1 час):
1. lideravto-2026/index.yaml ← мастер-файл
2. lideravto-2026/requirements.biz.md ← требования
День 2 (2 часа):
3. lideravto-2026/roadmap.prj.md ← план
4. lideravto-2026/architecture.arc.md ← архитектура
День 3-7:
[Создание модулей внутри проекта]
Перед деплоем:
5. lideravto-2026/deployment.ops.md ← инструкции
ИТОГО: 5 файлов проекта + файлы модулей
❌ Неправильно:
catalog/
├── purpose.biz.md
└── src/
✅ Правильно:
catalog/
├── index.yaml ← ПЕРВЫМ ДЕЛОМ!
├── purpose.biz.md
└── src/
❌ Неправильно:
День 1:
- index.yaml
- purpose.biz.md
- design.dsg.md
- spec.spc.md
- api.api.md
- test.tst.md
- deployment.ops.md ← Зачем?!
✅ Правильно:
День 1:
- index.yaml
- purpose.biz.md
День 2:
- design.dsg.md
День 3:
- spec.spc.md
... по мере необходимости
❌ Неправильно:
1. src/Products.php ← сразу код
2. spec.spc.md ← потом спека?!
✅ Правильно:
1. index.yaml
2. purpose.biz.md
3. design.dsg.md
4. spec.spc.md
5. src/Products.php ← код ПОСЛЕДНИМ
index.yaml = точка входа уровня
Метаданные:
yaml
type: module
version: 1.0.0
status: development
Навигация:
```yaml
dependencies:
Конфигурация:
```yaml
environments:
index.yaml НЕ дублирует документы!
index.yaml:
type: module
purpose: Каталог товаров ← краткое (1 строка)
purpose.biz.md:
# Назначение
Каталог товаров... ← полное (много текста)
## Бизнес-задача
...
Правило:
- index.yaml — краткие метаданные
- .md файлы — полное описание
Можно генерировать из index.yaml:
# catalog/index.yaml
type: module
children:
- products
- filters
- search
Генерируем README.md:
# Catalog
## Компоненты
- [Products](src/Products/)
- [Filters](src/Filters/)
- [Search](src/Search/)
Шаг 1: Мастер-файл
- [ ] Создан index.yaml
- [ ] Указан type
- [ ] Указан status
- [ ] Указаны зависимости (если есть)
Шаг 2: Бизнес
- [ ] Нужно объяснить зачем? → .biz.md
- [ ] Описана ценность
- [ ] Описаны требования
Шаг 3: Архитектура/Дизайн
- [ ] Project/Domain? → .arc.md
- [ ] Module? → .dsg.md
- [ ] Описаны компоненты
- [ ] Описаны данные
Шаг 4: Спецификации
- [ ] Созданы .spc.md для функций
- [ ] Описаны параметры
- [ ] Описаны алгоритмы
- [ ] Добавлены чек-листы тестов
Шаг 5: API (если нужно)
- [ ] Создан .api.md
- [ ] Описаны функции
- [ ] Добавлены примеры
Шаг 6: Промпты (если AI)
- [ ] Созданы .pmt.md
- [ ] Указано что использовать
- [ ] Указано что НЕ использовать
Шаг 7: Тесты (рекомендуется)
- [ ] Создан .tst.md
- [ ] Unit-тесты
- [ ] Интеграционные
- [ ] Ручные
Шаг 8: Код
- [ ] Создана папка src/
- [ ] Реализованы функции
- [ ] Код по промптам/спекам
Параллельно (когда нужно):
- [ ] Деплой? → .ops.md
- [ ] План? → .prj.md
- [ ] Структура? → .str.md
ЛЮБОЙ УРОВЕНЬ:
1. index.yaml ← ВСЕГДА
MODULE (обязательно):
1. index.yaml
2. .spc.md ← минимум
3. src/ ← код
MODULE (рекомендуется):
1. index.yaml
2. purpose.biz.md
3. design.dsg.md
4. .spc.md
5. api.api.md
6. test.tst.md
7. src/
index.yaml ← День 0 (мастер)
↓
.biz ← День 1 (зачем)
↓
.arc/.dsg ← День 2 (как общее)
↓
.spc ← День 3-4 (детали)
↓
.api ← День 5 (интерфейс)
↓
.pmt ← День 6 (инструкции)
↓
src/ ← День 7+ (код)
Параллельно:
.ops, .str, .prj, .tst ← когда нужно
Создавай документы последовательно, по мере необходимости!
НЕ создавай всё сразу. Каждый документ появляется когда нужен.
Версия: 1.0.0
Связанные стандарты:
- FOLDERS_FILES_STRUCTURE.md
- LAYERS_EXPLAINED.md
- LAYERS_GUIDE.md