architect/patterns/ADD_MODULE.md

ПАТТЕРН: Добавление модуля в проект

Версия: 1.0.0
Дата: 2025-12-04
Статус: Паттерн


НАЗНАЧЕНИЕ

Алгоритм добавления нового модуля (@name.type) в существующий проект.


КОГДА ПРИМЕНЯТЬ


ТИПЫ МОДУЛЕЙ

Постфикс Тип Пример
(домен) Сайт @pirotehnika.spb.ru/
.api API @ozon.api/
.service Сервис @pim.service/
.app Приложение @market.app/
.server Сервер @dev-pro.server/
.storage Хранилище @beget-s3.storage/

АЛГОРИТМ

Шаг 1: Определить тип модуля

Что создаём?
├── Сайт  @domain.tld/
├── REST API  @name.api/
├── Сервис (backend)  @name.service/
├── Приложение (frontend)  @name.app/
├── Сервер  @name.server/
└── Хранилище  @name.storage/

Шаг 2: Создать папку модуля

mkdir -p {project}/@{name}.{type}/

Шаг 3: Создать CLAUDE.md модуля

# @{name}.{type}

**Тип:** module/{type}
**Статус:** draft
**Родитель:** {project}/
**Обновлено:** {YYYY-MM-DD}

---

## Что это

{Назначение модуля}

---

## Технологии

| Компонент | Технология |
|-----------|------------|
| Язык | {Python/Node/PHP/...} |
| Фреймворк | {FastAPI/Express/...} |

---

## Сервер

| Параметр | Значение |
|----------|----------|
| Сервер | @{server}.server |
| Порт | {port} |
| URL | {url} |

---

## Запуск

```bash
# Development
{команда}

# Production
{команда}

Ключевые файлы

Файл Назначение
src/main.py Точка входа

Версия: 0.1.0

### Шаг 4: Создать базовую структуру

**Для .api / .service:**
```bash
mkdir -p {project}/@{name}.{type}/src
mkdir -p {project}/@{name}.{type}/tests
touch {project}/@{name}.{type}/requirements.txt  # Python
touch {project}/@{name}.{type}/package.json      # Node

Для .app:

mkdir -p {project}/@{name}.app/src
mkdir -p {project}/@{name}.app/public

Для .server:

mkdir -p {project}/@{name}.server/configs
touch {project}/@{name}.server/RUNBOOK.md

Шаг 5: Обновить CLAUDE.md проекта

Добавить в секцию "Модули":

| `@{name}.{type}/` | {Тип} | {Описание} |

Шаг 6: Обновить index.yaml проекта

modules:
  - name: "@{name}.{type}"
    type: {type}
    status: draft

ЧЕКЛИСТ


ПРИМЕР

Добавление @analytics.service/ в pirotehnika/:

# Шаг 2
mkdir -p pirotehnika/@analytics.service/

# Шаг 4
mkdir -p pirotehnika/@analytics.service/{src,tests}
touch pirotehnika/@analytics.service/requirements.txt

# Шаги 3,5,6: создать/обновить файлы

Связанные документы:
- templates/CLAUDE_TEMPLATE.md — секция "Модуль"
- Родительский проект CLAUDE.md