architect/standards/arch-stack-bootstrap.md

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-проекта по технологии. Определяет: какой код, какие модули, какие паттерны деплоя используются. Этот стандарт описывает: что такое стек, как его определить, как зарегистрировать, как создать шаблон.


1. ЧТО ТАКОЕ СТЕК

Стек = тип IT-системы × технология

Drupal CMS  = web-cms    × drupal
FastAPI     = web-api    × python/fastapi
Next.js     = web-ui     × nextjs
Telegram-бот = bot       × python/aiogram

Стек — это не просто технология. Стек включает:
- Шаблон структуры проекта
- Типовые модули / библиотеки
- Паттерны деплоя
- Специализированный @{стек}.coder


2. РЕЕСТР СТЕКОВ

Стеки платформы хранятся в: 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

3. СОСТАВ СТЕКА

Каждый стек — папка в 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

stack.yaml — манифест

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

4. КАК ОПРЕДЕЛИТЬ СОСТАВ СТЕКА

При создании нового стека:

1. Определить тип системы (web-cms / web-api / bot / web-ui / ...)
2. Выбрать технологию
3. Изучить best practices технологии
4. Определить обязательные зависимости (language, framework, db)
5. Выбрать стандартные модули/пакеты для типа системы
6. Определить метод деплоя
7. Заполнить stack.yaml

5. КАК ЗАРЕГИСТРИРОВАТЬ НОВЫЙ СТЕК

ВЫПОЛНЮ:
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.


6. ВЫБОР СТЕКА ДЛЯ ПРОЕКТА

При старте IT-проекта:

1. Определить тип системы (§3 arch-project-it-structure.md)
2. Выбрать стек из реестра
3. Скопировать шаблон из stacks/{id}/project-structure/  projects/org/{домен}/{проект}/
4. Указать стек в index.yaml проекта: stack: drupal
5. Назначить кодера: @drupal.coder

7. ВЕРСИОНИРОВАНИЕ СТЕКА

Стек версионируется в 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)


8. СВЯЗАННЫЕ ДОКУМЕНТЫ

Родитель:
- arch-component-structure.md — структура компонентов

Связанные:
- arch-project-it-structure.md — IT-проект: тип × стек
- arch-project-structure.md — структура проекта
- arch-workspace-structure.md — coder/ компонент