Files
samreshu_docs/agents/context.md
Anton 99cd8ae727 docs: add full project documentation
- Architecture: overview, 7 ADR, tech stack
- Principles: code-style, git-workflow, security
- API contracts: auth, profile, tests, admin endpoints
- Database schema: tables, relationships, indexes
- LLM strategy: prompts, fallback, validation, Qwen 2.5 14B
- Onboarding: setup, Docker, .env template
- Progress: roadmap, changelog
- Agents: context, backend instructions

Made-with: Cursor
2026-03-04 12:07:17 +03:00

60 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Контекст проекта для AI-агентов
Этот документ — краткое описание проекта для использования AI-ассистентами при генерации кода.
## Проект
**samreshu** — веб-приложение для тестирования знаний по веб-технологиям. Пользователь выбирает стек и уровень, получает тест из вопросов (сгенерированных LLM или из банка), отвечает и видит результат с разбором.
## Tech stack
- **Backend**: Fastify + TypeScript, Drizzle ORM, PostgreSQL, Redis
- **Frontend**: React + TypeScript + Vite
- **LLM**: Локальный (Ollama/LM Studio, OpenAI-совместимый API), в prod — облачный
- **Логирование**: Pino
- **Тесты**: Vitest
- **Deploy**: VPS + Docker Compose
## Архитектурные принципы (обязательны)
1. Подписка пользователя читается из БД через subscription middleware — не хардкодить права в контроллерах
2. Вопросы копируются в `test_questions` при старте теста (снепшот) — не читать `question_bank` во время теста
3. Все LLM-вызовы только через `LlmService` — код не знает какая модель работает
4. Все внешние данные (webhooks, LLM) валидируются по JSON-схеме
5. Проверки прав и лимитов только на backend — frontend отображает состояние
6. Все даты хранятся в UTC — конвертация только на фронте
7. Конфигурация через env переменные — без хардкодов
## Code style
- Язык кода: английский
- Язык коммитов: английский (conventional commits)
- TypeScript strict, `any` запрещён
- `console.log` запрещён — использовать Pino logger
- Prettier + ESLint strict + security plugin
## Структура репозиториев
```text
samreshu-backend Fastify + TS + Drizzle
samreshu-frontend React + TS + Vite
samreshu-docs Документация
```
Общие типы хранятся в каждом репо отдельно.
## Где найти детали
- Схема БД: `database/schema.md`
- API контракты: `api/contracts.md`
- LLM стратегия: `llm/strategy.md`
- Roadmap: `progress/roadmap.md`
- Code style: `principles/code-style.md`
## Инструкции для агентов в code-репо
В каждом code-репо будет `.cursor/rules/` со специфичными инструкциями:
- Backend: структура папок, как писать сервисы/плагины Fastify, Drizzle-паттерны
- Frontend: структура компонентов, state management, роутинг