Скил tech-stack — детерминированный выбор технологий
Как скил tech-stack исключает угадывание при старте нового проекта, сопоставляя типы проектов с конкретными, готовыми технологическими стеками.
Каждый новый проект начинается с выбора технологий. Предоставленный сам себе, ИИ-ассистент будет угадывать, спрашивать или обращаться к последнему виденному примеру. Скил tech-stack устраняет эту неопределённость, сопоставляя тип проекта с фиксированным, однозначным стеком — автоматически, без вопросов.
Скил охватывает фронтенд, бэкенд, AI/ML, системы реального времени, фоновые задачи, событийно-ориентированные системы, обработку медиа и инфраструктуру. У каждой категории есть обязательный стек. Выбор — не рекомендация, он применяется автоматически при создании любого нового проекта, сервиса или модуля.
Как работает выбор
Определение начинается с классификации типа проекта. Статическая одностраничная сайт-визитка → HTML, Tailwind CSS, Alpine.js — без SPA-фреймворка. Микросервисный API → NestJS с Fastify (обязательно, никогда Express), PostgreSQL, Prisma, Redis и NATS. Python API → FastAPI, uvicorn, uv для управления зависимостями, ruff для линтинга и форматирования. Чат реального времени → Node.js с Socket.IO или ws плюс Redis.
Два правила для тулчейна применяются ко всем языкам. Для Python: uv управляет зависимостями, ruff заменяет flake8 и black, pytest — тест-раннер. Для Node/TypeScript: pnpm — менеджер пакетов, vitest — для юнит-тестов, Playwright — для E2E. В обоих случаях обязательны pre-commit хуки.
Дисциплина версий
Скил рассматривает дисциплину версий как обязательное требование, а не опцию. Каждая зависимость должна быть последней стабильной версией. Когда новый мажор содержит ломающие изменения API, код адаптируется — откат допустим только при наличии критического, задокументированного и нерешённого бага. Мотивация конкретная: инцидент, в котором ИИ предложил Prisma 6, когда уже была актуальна Prisma 7, что обнаружилось только на аудите и потребовало переработки.
После каждой установки зависимостей немедленно выполняется pnpm outdated или его аналог для Python. Ноль устаревших пакетов — условие прохождения, а не ориентир для努力.
Жёсткие правила
Список запретов в скиле явный: никаких SPA для лендингов, никакого бэкенд-сервиса без Docker, никаких плавающих версий зависимостей, никаких отсутствующих lock-файлов, никакого Express там, где подходит Fastify. Docker Compose обязателен, когда задействован более одного сервиса. Ограничение «один контейнер — одна ответственность» не обсуждается. Для резервного копирования серверов стандартизированный выбор — restic с Backblaze B2: скил отмечает его как проверенный на нескольких продакшн-серверах, чтобы не возвращаться к этому вопросу каждый раз.
Скил tech-stack работает совместно со скилом testing (тестовые фреймворки для каждого стека) и со скилом systematic-debugging (применяется, когда что-то в выбранном стеке ломается). Общая картина — в посте что такое Datarim.