This commit is contained in:
commit
46af290db3
100 files changed
+16663
No files matched your search
@@ -0,0 +1,64 @@
|
||||
# Правила разработки Writer IDE
|
||||
|
||||
## Общие принципы
|
||||
- Ты — опытный Fullstack разработчик (Next.js + FastAPI).
|
||||
- Всегда пиши типизированный TypeScript код. Избегай `any`.
|
||||
- Для стилизации используй ТОЛЬКО Tailwind CSS. Никаких inline-стилей или CSS-модулей, если это не критично.
|
||||
- Состояние приложения управляется через Zustand.
|
||||
- API-запросы типизированы и вынесены в `frontend/src/lib/api.ts`.
|
||||
|
||||
## Frontend (Next.js App Router)
|
||||
- Фреймворк: Next.js 14+ (App Router, TypeScript).
|
||||
- Компоненты должны быть `'use client'` только если используются хуки или интерактивность.
|
||||
- Структура компонента: Импорты -> Типы -> Компонент -> Экспорт.
|
||||
- Используй Lucide React для иконок.
|
||||
- Tailwind CSS v4: конфигурация через `@theme` в `globals.css` и `@plugin` для плагинов.
|
||||
- Для форматирования текста в редакторе используй класс `prose` (плагин `@tailwindcss/typography`).
|
||||
|
||||
## Tiptap Редактор
|
||||
- Редактор: `@tiptap/react` с `StarterKit` и дополнительными расширениями.
|
||||
- Базовые расширения: `TextStyle`, `Color`, `Underline`, `Blockquote`.
|
||||
- Редактор должен быть обёрнут в `div` с классами `max-w-3xl mx-auto prose`.
|
||||
- `onUpdate` вызывает экшен Zustand store для сохранения контента.
|
||||
|
||||
## Backend (FastAPI)
|
||||
- Фреймворк: FastAPI (Python 3.10+).
|
||||
- Используй асинхронные функции (`async def`) для всех эндпоинтов.
|
||||
- Валидация входных данных строго через Pydantic модели в `backend/models/`.
|
||||
- Бизнес-логика изолирована в `backend/services/`, роутеры только принимают запрос и возвращают ответ.
|
||||
- CORS: разрешён `http://localhost:3000`.
|
||||
|
||||
## Управление состоянием (Zustand)
|
||||
- Store располагается в `frontend/src/stores/`.
|
||||
- Определяй интерфейсы для всех сущностей (Document, Project и т.д.).
|
||||
- Инициализируй store с тестовыми данными для разработки.
|
||||
|
||||
## AI Интеграция (внутренняя логика приложения)
|
||||
- Роутинг: Абстрактный сервис, поддерживающий OpenRouter API и локальный Ollama (`http://localhost:11434`).
|
||||
- Пресеты: Жесткое разделение параметров генерации (`temperature`, `top_p`) по действию (Creative Draft, Editor, Brainstorm).
|
||||
|
||||
## Процесс работы
|
||||
1. Прежде чем писать код, кратко опиши план действий (1-3 предложения).
|
||||
2. Пиши код модульно. Если файл превышает 200 строк, предложи разбить его.
|
||||
3. После генерации кода укажи, как его протестировать или проверить.
|
||||
|
||||
## Структура проекта
|
||||
```
|
||||
writer-ide/
|
||||
├── frontend/ # Next.js приложение
|
||||
│ ├── src/
|
||||
│ │ ├── app/ # Next.js App Router (pages, layout)
|
||||
│ │ ├── components/ # UI компоненты
|
||||
│ │ │ ├── editor/ # Tiptap редактор, Toolbar, AI-меню
|
||||
│ │ │ ├── sidebar/ # FileExplorer, StoryExplorer
|
||||
│ │ │ └── ui/ # Переиспользуемые кнопки, инпуты
|
||||
│ │ ├── lib/ # Утилиты, конфигурация axios, типы
|
||||
│ │ └── stores/ # Zustand stores (appStore, editorStore)
|
||||
│ └── package.json
|
||||
│
|
||||
└── backend/ # FastAPI сервер
|
||||
├── main.py # Точка входа, настройка CORS
|
||||
├── routers/ # API эндпоинты (projects, documents, ai)
|
||||
├── services/ # Бизнес-логика (file_ops, llm_router)
|
||||
└── models/ # Pydantic схемы запросов/ответов
|
||||
```
|
||||
Reference in new issue
Block a user