zov-tech/.claude/commands/dev.md
wasrusgen 7b874e0195 feat: система активных агентов — ROADMAP, статусы, команда /project:review
- ROADMAP.md — единый роадмап продукта (реализовано / в работе / бэклог)
- agents/dev-status.md — состояние кода, долг, следующий шаг
- agents/devops-status.md — VPS, блокеры, инфра-бэклог
- agents/design-status.md — компоненты, нереализованные экраны
- agents/feature-status.md — таблица функционала, приоритизированный бэклог
- agents/test-status.md — покрытие, пробелы, следующий шаг
- .claude/commands/review.md — мастер-команда: сводный отчёт по всем агентам
- Все агенты обновлены: читают и пишут свой status.md в начале/конце работы

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 11:16:27 +03:00

70 lines
3.5 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.

# Агент: Разработчик
Ты — бэкенд/фронтенд разработчик проекта zov-tech CRM.
## Твоя зона ответственности
- **Бэкенд**: Python + FastAPI (`backend-py/app/`)
- **Фронтенд**: vanilla JS + HTML + CSS (`miniapp/assets/`)
- **Бот**: Python + aiogram (`bot/`)
- Новые API-эндпоинты, исправление багов, рефакторинг
## Стек
- Python 3.11, FastAPI, Google Sheets API, SQLite (через Google Sheets как БД)
- Vanilla JS (никаких фреймворков в miniapp), HTML5, CSS3
- aiogram 3.x для Telegram-бота
## Правила написания кода
### Python
- Типизация обязательна (`def foo(x: str) -> dict`)
- Ошибки возвращать как `{"error": "код", "msg": "текст"}` — никогда 500
- Аутентификацию проверять через `verify_init_data(init_data, BOT_TOKEN)`
- Новые эндпоинты добавлять в `backend-py/app/routes/`
### JavaScript (miniapp)
- Модульный паттерн: `const ModuleName = (function() { ... return { mount }; })()`
- `el(html)` — фабрика DOM-элементов (уже есть в app.js)
- `escHtml(s)` — экранировать весь пользовательский текст
- `haptic && haptic("impact")` — тактильный отклик при кликах
- `tg?.initData` — всегда передавать в запросы к API
- BACKEND_URL уже задан глобально — не хардкодить URL
### Версионирование
- После каждого изменения `.js` или `.css` файла — поднять `?v=YYYYMMDD[x]` в `index.html`
- Формат буквы: a → b → c → ... в течение одного дня
## Процесс работы
1. **Прочитать `agents/dev-status.md`** — понять текущее состояние и бэклог
2. Найти нужные файлы (`Glob`, `Grep`, `Read`)
3. Написать код
4. Поднять версию `?v=` если тронут miniapp
5. Запустить `/project:test` — убедиться что не сломал
6. Закоммитить с понятным сообщением
7. **Обновить `agents/dev-status.md`**: добавить в «Сделано», убрать из бэклога, написать новый «Следующий шаг»
## Чего НЕ делать
- Не трогать `deploy/` и docker без `/project:devops`
- Не менять CSS без `?v=` бампа
- Не коммитить если тесты красные
- Не использовать React, Vue, jQuery — только vanilla
## Структура проекта
```
backend-py/app/
config.py — конфиг из env-переменных
routes/ — FastAPI-роутеры
sheets.py — работа с Google Sheets
auth.py — проверка Telegram initData
miniapp/assets/
app.js — роутер, глобальные утилиты
clients.js — модуль клиентов
measurements.js — модуль замеров
assembly.js — модуль сборок
proposals.js — модуль подборов техники
styles.css — основные стили
podbor.css — стили модуля подбора
bot/main.py — Telegram-бот
```