type: standard
layer: arch
object: stack
aspect: bootstrap
form: text
title: "Стандарт стека IT-проекта"
status: active
version: 1.0.0
date: 2026-04-11
knowledge_level: У1
parent: arch-component-structure.md
deps:
- arch-component-structure.md
- arch-project-structure.md
- arch-workspace-structure.md
Стек — специализация IT-проекта по технологии. Определяет: какой код, какие модули, какие паттерны деплоя используются. Этот стандарт описывает: что такое стек, как его определить, как зарегистрировать, как создать шаблон.
Стек = тип IT-системы × технология
Drupal CMS = web-cms × drupal
FastAPI = web-api × python/fastapi
Next.js = web-ui × nextjs
Telegram-бот = bot × python/aiogram
Стек — это не просто технология. Стек включает:
- Шаблон структуры проекта
- Типовые модули / библиотеки
- Паттерны деплоя
- Специализированный @{стек}.coder
Стеки платформы хранятся в: architect/templates/@it/stacks/
| ID стека | Тип системы | Технология | Статус | Кодер |
|---|---|---|---|---|
drupal |
web-cms | Drupal 10/11 + Commerce | ✅ active | @drupal.coder |
python |
web-api / bot | Python 3.11 + FastAPI / aiogram | ⏸ draft | @python.coder |
cs-cart |
web-shop | CS-Cart 4.x | ✅ active (legacy) | — |
nextjs |
web-ui | Next.js 14/15 + TypeScript | ⏸ draft | @nextjs.coder |
Каждый стек — папка в architect/templates/@it/stacks/{id}/:
stacks/{id}/
├── stack.yaml ← манифест стека (обязательно)
├── CLAUDE.md ← навигатор для Claude Code
├── project-structure/ ← шаблон структуры IT-проекта
│ ├── it/
│ ├── biz/
│ └── management/
└── patterns/ ← типовые паттерны для этого стека
├── deploy.md
├── testing.md
└── modules.md
id: drupal
type: web-cms
technology: drupal
version: "10.x / 11.x"
language: php
coder: "@drupal.coder"
status: active
dependencies:
- php: ">=8.1"
- composer: ">=2.0"
- postgresql: ">=14"
modules_standard:
- commerce
- paragraphs
- webform
deploy:
method: docker-compose
image: drupal:11-php8.2-apache
port: 80
testing:
method: phpunit
coverage: required
При создании нового стека:
1. Определить тип системы (web-cms / web-api / bot / web-ui / ...)
2. Выбрать технологию
3. Изучить best practices технологии
4. Определить обязательные зависимости (language, framework, db)
5. Выбрать стандартные модули/пакеты для типа системы
6. Определить метод деплоя
7. Заполнить stack.yaml
ВЫПОЛНЮ:
1. Создать папку architect/templates/@it/stacks/{id}/
2. Создать stack.yaml по шаблону §3
3. Создать CLAUDE.md с навигатором
4. Добавить в реестр §2 этого документа
5. Создать @{id}.coder в coder/ (или пометить planned)
6. Зарегистрировать в arch-project-it-structure.md
Новый стек нельзя использовать без заполненного stack.yaml.
При старте IT-проекта:
1. Определить тип системы (§3 arch-project-it-structure.md)
2. Выбрать стек из реестра
3. Скопировать шаблон из stacks/{id}/project-structure/ → projects/org/{домен}/{проект}/
4. Указать стек в index.yaml проекта: stack: drupal
5. Назначить кодера: @drupal.coder
Стек версионируется в stack.yaml:
version: "11.x"
deprecated_at: null
replaced_by: null
При переходе на новую major-версию (например Drupal 11 → 12):
- Создать новый stack.yaml с version: "12.x"
- Старый пометить deprecated_at: 2026-12-01
- Указать replaced_by: drupal12 (если разный ID)
Родитель:
- arch-component-structure.md — структура компонентов
Связанные:
- arch-project-it-structure.md — IT-проект: тип × стек
- arch-project-structure.md — структура проекта
- arch-workspace-structure.md — coder/ компонент