type: standard
layer: proj
object: project
aspect: structure
form: text
title: "Структура проекта"
status: active
version: 1.0.0
date: 2026-04-14
knowledge_level: У1
parent: ../lifecycle/project-lifecycle.md
supersedes: arch-project-structure.md
Стандарт описывает что такое проект, типологию, структуру папки, жизненный цикл, inbox, процедуру создания и наборы документов по типу.
Проект — автономная единица работы. Тип проекта кодируется в имени папки: @{тип}-{имя}/.
Четыре категории на верхнем уровне:
projects/
org/ ← коммерческие клиенты
my/ ← личные проекты
pub/ ← общественные / некоммерческие
sys/ ← системные проекты платформы
10 типов проектов (префикс @{тип}):
| Тип | Назначение |
|---|---|
@org |
Организация / холдинг — верхний уровень компании |
@domain |
Предметная область — объединяет бизнес и IT по теме |
@biz |
Бизнес-направление, продукт |
@it |
IT-система, сайт, приложение |
@ops |
Операции, логистика |
@hr |
HR, найм, команда |
@fin |
Финансы, бюджет |
@mkt |
Маркетинг, реклама |
@rd |
R&D, исследование |
@phys |
Физический объект |
Иерархия через вложенность:
org/
@org-lideravto/ ← компания
@domain-zapchasti/ ← домен "запчасти"
@biz-zapchasti/ ← бизнес-документы
@it-lideravto/ ← IT-документы + общие данные
@it-lideravto-drupal/ ← Drupal (текущий стек)
@it-lideravto-cscart/ ← CS-Cart (архив)
sys/
platform-update/ ← системные: без @ (нет типа клиента)
Когда использовать @domain: когда одна предметная область имеет одновременно бизнес-документы (@biz) и несколько IT-систем на разных стеках.
Именование IT-проектов: @it-{проект}-{стек} или @it-{проект}-{стек}-v{N}
Версия добавляется только при параллельном существовании двух реализаций на одном стеке.
Системные проекты (sys/) — артефакты после завершения переходят в architect/ или system/.
Маршрутизация: куда положить новый проект?
Заказчик — внешняя организация? → projects/org/
Личный проект оператора? → projects/my/
Некоммерческий / публичный? → projects/pub/
Улучшение самой платформы? → projects/sys/
| Признак | org/ |
sys/ |
|---|---|---|
| Кто заказчик | внешний клиент | платформа |
| Чьи деньги | клиента | свои |
| Результат | продукт для клиента | стандарт / компонент платформы |
| После завершения | архив в org/archive/ |
артефакты → architect/ или system/ |
| Пример | @org-lideravto/, @it-shop/ |
platform-update/, agents-v2/ |
Правило sys/: если результат проекта пополняет architect/, system/, projector/ или coder/ — это sys/.
@{тип}-{имя}/
├── AI.md ← контекст проекта для AI
├── CLAUDE.md ← AI.md + Claude-специфичное
├── README.md ← AI.md + объяснения для людей
├── INDEX.md ← оглавление проекта
│
├── inbox/ ← сырые материалы от оператора
│
├── management/ ← управление (обязательно)
│ ├── STATUS.md
│ ├── LOG.md
│ └── TODO.md
│
├── design/ ← проектирование
│ ├── BRIEF.md
│ ├── CONCEPT.md
│ └── REQUIREMENTS.md
│
├── research/ ← исследования (по необходимости)
├── analysis/ ← аналитика (по необходимости)
├── practice/ ← накопленный опыт (по необходимости)
│
└── {домен}/ ← рабочие папки (@it, @biz, data...)
Обязательный минимум:
AI.md + CLAUDE.md + README.md
management/STATUS.md
management/LOG.md
Правило папки: 1 файл → файл в корне, 2+ файла → создать папку. Папки создаются по необходимости, не заранее. Только management/ обязательна с первого дня.
init → active → completed → archived
| Статус | Что означает |
|---|---|
init |
Создан, настраивается |
active |
В работе |
on-hold |
Приостановлен временно |
completed |
Цель достигнута |
cancelled |
Отменён |
archived |
Перенесён в архив |
Фиксируется в management/STATUS.md. Подробно: project-lifecycle.md
@{тип}-{имя}/
inbox/ ← сырые материалы от оператора
Платформа читает всё из inbox/, извлекает данные → заполняет BRIEF.md, REQUIREMENTS.md, CONCEPT.md. После обработки inbox/ очищается — материалы либо разложены, либо в archive/inbox/.
Шаг 1. Определить тип и имя
→ выбрать @{тип} из 10 вариантов
→ slug: латиница, дефисы, lowercase
Шаг 2. Скопировать шаблон
cp -r projector/templates/@{тип}/ projects/{категория}/@{тип}-{имя}/
Шаг 3. Заполнить плейсхолдеры
{ИМЯ} → полное название
{имя} → slug
{тип} → тип из таблицы §1
{YYYY-MM-DD} → дата создания
Шаг 4. Обработать inbox (если есть материалы)
Шаг 5. Проверить минимум
✅ AI.md + CLAUDE.md + README.md заполнены
✅ management/STATUS.md: статус = init
✅ management/LOG.md: первая запись с датой
Шаг 6. Добавить в INDEX.md родителя
| Тип | Порядок создания документов |
|---|---|
@biz |
BRIEF → CONCEPT → REQUIREMENTS |
@it |
BRIEF → DESIGN → REQUIREMENTS → README → LAUNCH |
@ops |
BRIEF → REQUIREMENTS → GUIDE → PROCESSES |
@hr |
BRIEF → REQUIREMENTS → GUIDE |
@fin |
BRIEF → REQUIREMENTS → GUIDE |
@mkt |
BRIEF → CONCEPT → REQUIREMENTS → ANALYTICS |
@rd |
BRIEF → REQUIREMENTS → DESIGN → GUIDE |
@phys |
BRIEF → REQUIREMENTS → GUIDE → LAUNCH |
@org |
STRUCTURE → PROCESSES → GLOSSARY |
BRIEF всегда первый.
IT-проекты — стековые документы:
| Стек | Дополнительные документы |
|---|---|
| Drupal | INSTALL.md, modules/ |
| Python / FastAPI | API.md, DEPLOY.md |
| CS-Cart | CATALOG.md, IMPORT.md |