---
name: workflow-new-project
description: |
  Greenfield project initialization protocol. Tech stack selection, folder 
  structure, initial setup. For: new projects, bootstrapping, MVP creation. 
  NOT for adding features to existing project (use workflow-feature).
---

# 🆕 New Project Workflow — Инициализация Нового Проекта

<purpose>
Протокол создания нового проекта с нуля.
От идеи до рабочего скелета с настроенной инфраструктурой.
Применяется для любой сложности: 🟢 🟡 🔴
</purpose>

---

## Когда Использовать

**Триггеры:**

- Новый проект с нуля
- MVP / PoC
- Новый сервис в существующей экосистеме
- Форк/переписывание с чистого листа

**НЕ использовать для:**

- Фичей в существующем проекте → `feature.md`
- Рефакторинга → `refactoring.md`
- Миграции архитектуры → `architecture-change.md`

---

## Фаза 1: Scope & Requirements

### Шаг 1.1: Понимание Задачи

**Действия:**

1. Уточни у пользователя:
   - Что должен делать проект? (ключевые функции)
   - Для кого? (целевая аудитория, пользователи, системы)
   - Какие ограничения? (бюджет, сроки, хостинг)
   - Есть ли интеграции? (существующие системы, API)

2. Определи тип проекта:
   - Web App (SPA, MPA, SSR)
   - API Service (REST, GraphQL, gRPC)
   - CLI Tool
   - Library / SDK
   - Mobile App
   - Desktop App
   - Microservice

**Выход:** Понимание scope + первичный список требований.

### Шаг 1.2: Оценка Сложности

| Критерий | 🟢 Simple | 🟡 Medium | 🔴 Complex |
|----------|-----------|-----------|------------|
| Время | 1-2 дня | 1-2 недели | >2 недели |
| Компоненты | 1-2 | 3-5 | >5 |
| Интеграции | 0-1 | 2-3 | >3 |
| БД | SQLite / NoSQL | PostgreSQL + cache | Multi-DB / Sharding |
| Auth | Нет / Basic | OAuth / JWT | SSO / RBAC / Multi-tenant |
| Deploy | Static / Single server | Container + CI/CD | K8s / Multi-region |

**Правило:** При сомнении выбирай более высокий уровень сложности.

---

## Фаза 2: Stack Selection

### Шаг 2.1: Выбор Технологий

**Критерии выбора:**

- Команда уже знает технологию?
- Подходит ли для задачи?
- Есть ли ограничения от заказчика?
- Long-term support и community

**Действия:**

1. Предложи 2-3 варианта стека
2. Для каждого варианта укажи Pros/Cons
3. Дай рекомендацию с обоснованием

**Артефакт (🟡🔴):**

```markdown
## Stack Options

### Option A: [Название]
**Pros:** ...
**Cons:** ...

### Option B: [Название]
**Pros:** ...
**Cons:** ...

**Рекомендация:** Option A, потому что [обоснование]
```

### Шаг 2.2: STOP-Gate (🟡🔴)

```
🛑 STOP — Утверждение стека перед продолжением
```

Для 🟢 достаточно устного подтверждения или предложения по умолчанию.

---

## Фаза 3: Knowledge Base Setup

### Шаг 3.1: Создание Структуры `/docs`

**Действия:**

1. Создай директорию `/docs`
2. Создай базовые файлы из шаблонов:

```
/docs/
├── Requirements.md     # templates/requirements.md
├── Architecture.md     # templates/architecture.md
├── Rules.md            # Конвенции и ограничения
├── Tasks.md            # Текущий бэклог
└── Context.md          # Краткое описание для LLM
```

### Шаг 3.2: Заполнение Requirements.md

**Действия (используй `templates/requirements.md`):**

1. Перенеси требования из Фазы 1
2. Приоритизируй (Must / Should / Could)
3. Определи MVP scope

### Шаг 3.3: Заполнение Rules.md

**Базовые секции:**

```markdown
# Rules

## Code Conventions
- [Naming conventions]
- [File structure]
- [Import order]

## Forbidden Patterns
- [Что НЕ использовать и почему]

## Dependencies
- [Правила добавления зависимостей]

## Git Workflow
- [Branch naming]
- [Commit format]
```

---

## Фаза 4: Architecture Definition

### Шаг 4.1: Выбор Архитектурного Паттерна

**Опции (см. `/patterns/`):**

- `clean-architecture.md` — слоёная архитектура
- `modular-monolith.md` — модульный монолит
- Microservices — для 🔴 проектов

**Действия:**

1. Выбери паттерн на основе Requirements
2. Адаптируй под конкретный стек
3. Задокументируй в Architecture.md

### Шаг 4.2: Определение Компонентов

**Для каждого компонента определи:**

- Название и ответственность
- Зависимости (от чего зависит / что от него зависит)
- Интерфейсы (публичные контракты)

### Шаг 4.3: Создание Architecture.md

**Используй `templates/architecture.md`:**

- Диаграмма компонентов (Mermaid)
- Описание каждого слоя/модуля
- Data Flow
- Ключевые технические решения

### Шаг 4.4: STOP-Gate (🟡🔴)

```
🛑 STOP — Утверждение архитектуры перед scaffold
```

---

## Фаза 5: Project Scaffolding

### Шаг 5.1: Создание Скелета

**Действия:**

1. Сформировать промпт для @coder с задачей:
   - Инициализация проекта (npm init / cargo new / etc.)
   - Создание структуры директорий
   - Базовая конфигурация (tsconfig, eslint, etc.)
   - Инициализация Git + .gitignore

2. Делегировать @coder

**Структура должна соответствовать выбранной архитектуре.**

### Шаг 5.2: Настройка Инфраструктуры

**В зависимости от сложности:**

🟢:

- Package manager + deps
- Linter + Formatter
- Basic scripts (dev, build, test)

🟡:

- CI конфиг (GitHub Actions / GitLab CI)
- Docker (опционально)
- Pre-commit hooks

🔴:

- Full CI/CD pipeline
- Docker + Docker Compose
- Infrastructure as Code
- Monitoring setup

### Шаг 5.3: Smoke Test

**Критерии успешного scaffolding:**

- [ ] Проект запускается (`npm run dev` / etc.)
- [ ] Линтер проходит без ошибок
- [ ] Тесты запускаются (пустой тест-сьют OK)
- [ ] Структура соответствует Architecture.md

---

## Фаза 6: Initial Implementation

### Шаг 6.1: Определение Первого Deliverable

**Выбери минимальный рабочий срез:**

- Один endpoint / одна страница / одна команда
- End-to-end путь (от входа до выхода)
- Валидирует архитектурные решения

### Шаг 6.2: Реализация

**Протокол:**

1. Создать Plan.md для первого deliverable
2. Делегировать @coder
3. Делегировать @reviewer
4. Обновить `/docs/*` по результатам

---

## Фаза 7: Verification

### Шаг 7.1: Финальная Проверка

**Чеклист:**

- [ ] Проект запускается и работает
- [ ] Все файлы `/docs` актуальны
- [ ] Git history чистая
- [ ] README.md понятен новому разработчику
- [ ] Первый deliverable демонстрируем

### Шаг 7.2: Handoff

**Действия:**

1. Убедиться что пользователь понимает структуру
2. Показать Quick Start (как запустить)
3. Объяснить следующие шаги

---

## Чеклист New Project

### Фаза 1: Requirements

- [ ] Scope понятен
- [ ] Тип проекта определён
- [ ] Сложность оценена

### Фаза 2: Stack

- [ ] Технологии выбраны
- [ ] Утверждение получено (🟡🔴)

### Фаза 3: Knowledge Base

- [ ] `/docs` структура создана
- [ ] Requirements.md заполнен
- [ ] Rules.md определён

### Фаза 4: Architecture

- [ ] Паттерн выбран
- [ ] Architecture.md создан
- [ ] Утверждение получено (🟡🔴)

### Фаза 5: Scaffold

- [ ] Проект инициализирован
- [ ] Структура соответствует архитектуре
- [ ] Smoke test пройден

### Фаза 6: First Delivery

- [ ] Первый deliverable реализован
- [ ] @reviewer PASS

### Фаза 7: Handoff

- [ ] Документация актуальна
- [ ] Пользователь понимает структуру

---

## Quick Reference

```
Idea
  ↓
Requirements → Оценка 🟢🟡🔴
  ↓
Stack Selection → [🟡🔴 STOP]
  ↓
/docs Structure
  ↓
Architecture.md → [🟡🔴 STOP]
  ↓
Scaffold (@coder) → Smoke Test
  ↓
First Deliverable → @reviewer → DONE
```

---

## Anti-Patterns

❌ **Не начинай кодить без Requirements.md**
❌ **Не пропускай Architecture.md для 🟡🔴**
❌ **Не переусложняй стек для простых проектов**
❌ **Не создавай пустой каркас без первого deliverable**
❌ **Не забывай Rules.md — он экономит время позже**

---

**Связанные файлы:**

- `references/prd-template.md` — шаблон PRD
- `references/tech-stack-selection.md` — гайд по выбору технологий
- `.claude/skills/pattern-clean-architecture/SKILL.md` — паттерн чистой архитектуры
- `.claude/skills/pattern-modular-monolith/SKILL.md` — паттерн модульного монолита

---

**END OF WORKFLOW**
