type: standard
layer: arch
object: project-it
aspect: structure
form: table
title: "IT-проект: двумерная модель тип × стек"
status: active
version: 1.0.0
date: 2026-04-11
knowledge_level: У1
parent: arch-project-structure.md
deps:
- arch-project-structure.md
- arch-stack-bootstrap.md
- arch-class-system.md
IT-проект определяется по двум осям: тип системы (что строим) × стек (на чём строим). Без обеих координат нет формальной основы для выбора @{стек}.coder, шаблона и паттернов деплоя.
СТЕК →
drupal python nextjs cs-cart ...
ТИП ↓
web-cms ✅ — — ✅ ...
web-api — ✅ — — ...
web-ui — — ✅ — ...
bot — ✅ — — ...
web-shop ✅ — ✅ ✅ ...
Тип = назначение системы (что делает для бизнеса)
Стек = технология реализации (на чём написано)
Одна точка на плоскости = конкретный вид IT-проекта.
| ID типа | Описание | Примеры |
|---|---|---|
web-cms |
Контент-система, публичный сайт | Каталог, корпоративный сайт |
web-shop |
Интернет-магазин с корзиной и оплатой | lideravto, pirotehnika |
web-api |
REST/GraphQL API без UI | Backend для мобильного приложения |
web-ui |
Frontend SPA/SSR | Личный кабинет, дашборд |
bot |
Telegram-бот / webhook | Уведомления, ввод данных |
data-pipeline |
ETL, импорт, обработка данных | Синхронизация с Ozon |
integration |
Коннектор между системами | Ozon API ↔ CRM |
platform-service |
Сервис платформы (не проект) | @vault.service, @md-viewer |
| drupal | python/fastapi | nextjs | python/aiogram | cs-cart | |
|---|---|---|---|---|---|
web-cms |
✅ осн. | — | — | — | — |
web-shop |
✅ + Commerce | — | — | — | ✅ legacy |
web-api |
⚡ (REST Views) | ✅ осн. | — | — | — |
web-ui |
⚡ (Twig) | — | ✅ осн. | — | — |
bot |
— | ✅ осн. | — | ✅ осн. | — |
data-pipeline |
— | ✅ осн. | — | — | — |
integration |
— | ✅ осн. | — | — | — |
✅ осн. = основной выбор · ⚡ = возможно, но не оптимально · — = не подходит
В index.yaml IT-проекта:
type: it
class: ItProject
system_type: web-shop # тип системы (§2)
stack: drupal # стек (из arch-stack-bootstrap.md)
coder: "@drupal.coder" # назначенный кодер
version: "1.0.0"
В CLAUDE.md проекта — раздел СТЕК:
## СТЕК
| Параметр | Значение |
|---------|---------|
| Тип системы | web-shop |
| Стек | Drupal 11.3 + Commerce 3.x |
| Кодер | @drupal.coder |
| База | PostgreSQL 15 |
| Деплой | Docker Compose |
Алгоритм:
1. Нужен ли публичный URL?
Да → веб-тип (web-cms / web-shop / web-api / web-ui)
Нет → сервис-тип (bot / data-pipeline / integration)
2. Есть ли корзина и оплата?
Да → web-shop
Нет, но есть контент → web-cms
3. Нужен ли API?
Только API → web-api
API + UI → web-api + web-ui (два проекта)
4. Это бот?
Telegram-бот → bot
5. Это обработка данных?
ETL, импорт → data-pipeline
Коннектор систем → integration
Крупный проект может включать несколько стеков:
# index.yaml
type: it
class: ItProject
system_type: web-shop
stack: drupal # основной стек
additional_stacks:
- python # для data-pipeline
coder: "@drupal.coder"
pipeline_coder: "@python.coder"
Правило: основной стек определяет основного кодера. Дополнительные — отдельные модули.
Родитель:
- arch-project-structure.md — структура IT-проекта
Связанные:
- arch-stack-bootstrap.md — реестр стеков и шаблоны
- arch-class-system.md — ItProject класс
- arch-agent-registry.md — кодеры: @drupal.coder, @python.coder