# CLAUDE.md

Рабочие соглашения проекта gntodo (см. docs/TZ.md — источник требований).

## Язык

- Общаемся и документируем по-русски; идентификаторы кода — английские.

## Стек и конвенции

- Backend: Python 3.12, FastAPI, uv. Линтер ruff (line-length 100), mypy strict.
  Зависимости через uv (`uv add`); gnexus-gauth — git-зависимость.
- Frontend: Vue 3 + TypeScript + Vite. UI только через gnexus-ui-kit (git-зависимость,
  НЕ форкать и не копировать стили — кит часто обновляется; использовать публичный API).
  Принцип: используем максимум готовых Vue-компонентов кита (Gn*), сырой HTML —
  только когда в ките нет подходящего компонента.
- Не редактировать файлы зависимостей в node_modules/.venv.
- Формат ответов API: /api/* префикс. Конфиг — из окружения (pydantic-settings), .env не коммитим.

## ТЗ

Требования живут в docs/TZ.md — при расхождении кода с ТЗ ТЗ правится явно (версия
в шапке). Открытые вопросы ТЗ не реализуем молча — обсуждаем.

## Вехи

M0 каркас → M1 MVP задач → M2 автодетализация (Ollama) → M3 дерево →
M4 прогнозы/«3 варианта» → M5 MCP → M6 PWA → M7 Docker.