23 KiB
23 KiB
VoIdea - Session Context
Этот файл самопополняется при каждом общении
Структурирован для понимания AI-агентами и разработчиками
Last Updated: 2026-05-12T22:45:00.000000+00:00
ИНСТРУКЦИЯ ДЛЯ AI (OpenCode)
Last Updated: 2026-05-10T21:00:00.000000+00:00
ПЕРЕД НАЧАЛОМ РАБОТЫ ОБЯЗАТЕЛЬНО ПРОЧТИ ЭТОТ ФАЙЛ!
Этот файл — единая точка входа для понимания проекта и контекста общения. Обновляется автоматически после каждой сессии.
Last Updated: 2026-05-10T15:41:04.073549+00:00
ПРОЕКТ: VoIdea
Last Updated: 2026-05-10T15:41:04.073549+00:00
Описание
VoIdea ("Голос Идей") — гибридное приложение (мобильное + веб) для фиксации и проработки идей с помощью группового ИИ-анализа.
Ключевые требования
- Работа в условиях нестабильного интернета или оффлайн
- Максимальная защита данных пользователя
- Гибкий выбор ИИ-моделей (локальных и облачных)
- Синхронизация данных между устройствами через VPS
Технологический стек
- Backend: Python FastAPI, Port 8020
- Database: PostgreSQL
- Cache/Queue: Redis + Celery
- Frontend: React + TypeScript + Tailwind CSS (PWA)
- Mobile: iOS/Android (параллельно с вебом)
- AI: Yandex GPT, GigaChat
Лицензия
AGPL-3.0
Last Updated: 2026-05-10T15:41:04.073549+00:00
ДОГОВОРЁННОСТИ И ПРАВИЛА
Last Updated: 2026-05-10T15:41:04.073549+00:00
ОБЯЗАТЕЛЬНЫЕ ПРАВИЛА
- ЯЗЫК: Все вопросы — на русском языке
- РЕКОМЕНДАЦИИ: Всегда даю рекомендации с пояснениями
- Объясняю почему рекомендую именно это
- Учитываю правильность кодирования и перспективу проекта
- КАЧЕСТВО КОДА: Кривой код = переписать сразу
- Не тянем "как-нибудь" дальше
- Лучше потратить время сейчас чем потом переписывать
- ПРИОРИТЕТ ПРАВИЛ: docs/blocks/00-rules.md — основа всего
- Если что-то не описано в блоке — смотрим 00-rules.md
- Только потом задаём вопрос пользователю
АРХИТЕКТУРНЫЕ РЕШЕНИЯ (ADR)
ADR-001: PostgreSQL как БД
- Выбрана PostgreSQL для всех данных
- ACID транзакции, JSONB для гибкости
- Масштабируемость до тысяч пользователей
ADR-002: 11 системных агентов
- DocAgent, AuditAgent, SecurityAgent, SpecAgent, ObserverAgent
- QATesterAgent, FixAgent, UITestAgent, RolloutAgent
- EvolutionAgent, BacklogAgent
ADR-003: OAuth схема — один пользователь = один провайдер
- НЕЛЬЗЯ привязать Google к аккаунту зарегистрированному через Яндекс
- Нельзя добавить второй OAuth провайдер
- Провайдеры: Email, Яндекс, Google, Apple (отложен)
ADR-004: Постепенное развёртывание (Rollout)
- Stage 0: Development (тесты агентов)
- Stage 1: 3 пользователя
- Stage 2: 1%
- Stage 3: 5%
- Stage 4: 15%
- Stage 5: 100% (Production)
- Решение принимает RolloutAgent + человек
ADR-005: Design Tokens (JSON)
- Единый источник истины: docs/design-system/tokens.json
- Генераторы для CSS, Swift, Kotlin
- 3 темы: system (auto), dark, light
ADR-006: Agent Versioning
- Каждый агент версионируется независимо (A.B.C)
- Changelog: CHANGELOG/agents/.md
- Авто-детект через SHA256 checksum от file
- EvolutionAgent управляет minor/major, агенты — patch
СИСТЕМНЫЕ АГЕНТЫ (11 штук)
| Агент | Ответственность | Триггеры |
|---|---|---|
| DocAgent | Документация, комментарии, Runbook | pre-commit, push, manual |
| AuditAgent | Соблюдение правил, прогресс проекта | pre-commit, daily, manual |
| SecurityAgent | Безопасность, уязвимости, 152-ФЗ | pre-commit, weekly, manual |
| SpecAgent | Спецификации, версионирование проекта, CHANGELOG | tag creation, push |
| ObserverAgent | Наблюдение за пользователями | continuous, daily report |
| QATesterAgent | Функциональное тестирование | pre-commit, daily, manual |
| FixAgent | Исправление багов (создаёт PR) | QATesterAgent results |
| UITestAgent | Визуальное тестирование | weekly, manual |
| RolloutAgent | Постепенное развёртывание | after tests, manual |
| EvolutionAgent | Саморазвитие и версионирование агентов | daily, learning |
| BacklogAgent | Управление отложенными задачами | continuous |
Особенности агентов:
- Автоматический запуск (pre-commit, push, cron)
- Ручной запуск через админ-панель (кнопка)
- Делегирование между собой при необходимости
- Саморазвитие через EvolutionAgent
- Чёткое описание ролей и поведения
ИИ-АГЕНТЫ (11 ролей для анализа идей)
| Роль | Провайдер | Описание |
|---|---|---|
| Координатор | Yandex GPT | Управляет диалогом, обобщает результаты |
| Организатор задач | Yandex GPT | Разбивает идею на шаги |
| Бизнес-аналитик | Yandex GPT | Оценивает ROI, сроки, аудиторию |
| Юрист | GigaChat | Проверяет соответствие законам РФ |
| Финансовый консультант | Yandex GPT | Составляет смету, прогноз доходов |
| Архитектор решений | Yandex GPT | Проектирует архитектуру |
| Тестировщик | Yandex GPT | Составляет тест-кейсы |
| UI-дизайнер | Yandex GPT | Прорабатывает интерфейс |
| SMM-специалист | Yandex GPT | Планирует продвижение |
| Лайф-коуч | Yandex GPT | Помогает ставить цели |
| Эксперт по доступности | Yandex GPT | Проверяет инклюзивность |
Fallback chain для ИИ-агентов:
- Yandex GPT → первичный
- GigaChat → при недоступности
- Error → вернуть сообщение с retry suggestion
ДИЗАЙН-СИСТЕМА
Структура
- docs/design-system/tokens.json — единый источник истины
- docs/design-system/generators/ — Python CLI генераторы
- app/design-tokens/ — сгенерированные файлы (CSS, Swift, Kotlin)
Темы
- system (auto) — определяется по OS
- dark — тёмная тема
- light — светлая тема
Генераторы
- CSS Generator → app/design-tokens/css/theme.css
- Swift Generator → app/design-tokens/swift/Colors.swift
- Kotlin Generator → app/design-tokens/kotlin/colors.xml
АДМИН-ПАНЕЛЬ
Функции
- Просмотр логов (фильтры, критичность)
- Управление агентами (запуск, статус, отчёты)
- Пользователи (CRUD, роли)
- Системное здоровье (БД, Redis, uptime)
Логи
- PostgreSQL (system_logs) + файлы
- Критические: RED + email админу
- Предупреждения: ORANGE
- Обычные: не подсвечивать
БЕЗОПАСНОСТЬ
- .env никогда в git
- JWT: HS256, 60min access, 30 days refresh
- Пароли: bcrypt
- Pydantic валидация на всех входах
- RBAC: user, admin, owner
- Защита ввода (от взлома и атак)
ЛОГИРОВАНИЕ
- Формат: JSON для автоматизации
- Для людей: админ-панель с цветовой подсветкой
- Структура: [ISO8601] [LEVEL] [component] message key=val
- Запрещено логировать: пароли, JWT, API keys, raw email
BACKLOG ЗАМЕТКИ
- design-system-generators-note.md
- rollout-process-note.md
- agent-evolution-note.md
- qa-tester-agent-note.md
- fix-agent-note.md
- hotkeys-system-note.md
- undo-redo-note.md
- export-formats-note.md
- oauth-schema-note.md
- changelog-generation-note.md
- ui-themes-note.md
- car-integration-note.md (ГУ автомобиля — изучить)
- rate-limiting-note.md
- observer-metrics-stages-note.md
- temp-users-cleanup-note.md
ВЕРСИОНИРОВАНИЕ
Проект (SpecAgent)
- Формат: MAJOR.MINOR.PATCH (SemVer)
- CHANGELOG/v*.md — файлы по версиям
- Новый файл при смене X или Y, патчи в существующий
Агенты (EvolutionAgent + само-детект)
- Каждый агент: A.B.C, независимо от проекта
- CHANGELOG/agents/.md — вся история в одном файле
- SHA256 checksum от file → авто-бамп patch
- EvolutionAgent: minor при новой capability, major при breaking change
ПЛАН РАЗРАБОТКИ (ФАЗЫ)
ФАЗА 1: FOUNDATION (2-3 недели) ✅ ЗАВЕРШЕНО
├── 00-rules.md ✅
├── 01-core ✅
├── System Agents (6 штук) ✅
├── 02-data ⏳ (следующий)
└── 08-devops
Last Updated: 2026-05-10T15:41:04.073549+00:00
ИСТОРИЯ СЕССИЙ
Last Updated: 2026-05-10T15:41:04.073549+00:00
Session 2026-05-10 (Первая сессия)
Настроение
Продуктивная, конструктивная. Owner вовлечён, задаёт вопросы, быстро принимает решения.
Ключевые решения сессии
- ✅ Создана структура проекта (folders, docs)
- ✅ Адаптирован 00-rules.md для VoIdea
- ✅ Создан детальный план (PLAN.md)
- ✅ Зафиксированы 11 backlog заметок
- ✅ Созданы 5 ADR файлов
- ✅ Созданы 11 spec файлов для ИИ-агентов
- ✅ Создан quick-start в runbook
- ✅ Реализован Block 1: Core
- ✅ Созданы 6 системных агентов (DocAgent, BacklogAgent, SpecAgent, AuditAgent, ObserverAgent, EvolutionAgent)
- ✅ Создан AgentRegistry для централизованного управления
- ✅ Созданы триггеры (pre-commit, cron, manual)
- ✅ Созданы тесты для всех агентов
Что уже создано (55+ файлов)
- docs/blocks/: 00-rules.md, PLAN.md, AUDIT.md, BACKLOG.md, VERSIONS.md, GLOSSARY.md, full.md
- docs/backlog/: 15 файлов (все backlog заметки)
- docs/adr/: 5 файлов (001-005)
- docs/specs/agents/: 11 файлов (все ИИ-агенты)
- docs/instructions/: 4 файла (system-prompt, developer, tester, admin)
- docs/design-system/: tokens.json, README.md
- docs/runbook/: 01-quick-start.md
- app/core/: все файлы Block 1
- app/: __init__.py, main.py, README.md
- app/agents/ (НОВОЕ): base.py, models.py, registry.py, triggers.py
- app/agents/ (НОВОЕ): doc_agent.py, backlog_agent.py, spec_agent.py, audit_agent.py, observer_agent.py, evolution_agent.py
- tests/unit/agents/: 7 тестовых файлов
Текущий прогресс
- Block 0: Rules ✅
- Block 1: Core ✅
- System Agents (6): DocAgent, BacklogAgent, SpecAgent, AuditAgent, ObserverAgent, EvolutionAgent ✅ (Все созданы!)
- System Agents (5): SecurityAgent, QATesterAgent, FixAgent, UITestAgent, RolloutAgent ⏳ (Ожидают)
- Остальное: ожидает
Следующие шаги
- Block 2: Data (миграции, модели БД)
- Настройка локального окружения (PostgreSQL)
- Запуск первого рабочего API
- Создание оставшихся 5 системных агентов (SecurityAgent, QATesterAgent, FixAgent, UITestAgent, RolloutAgent)
Особые замечания
- Owner просит все вопросы на русском
- Owner принимает все рекомендации с пояснениями
- Кривой код = переписать сразу (принцип Owner)
- Вопросы задавать только когда НЕ описано в 00-rules.md
- Созданы 6 системных агентов: DocAgent, BacklogAgent, SpecAgent, AuditAgent, ObserverAgent, EvolutionAgent
- Агенты могут запускаться автоматически (pre-commit, cron) или вручную
- Registry обеспечивает централизованное управление агентами
- Хранение состояния: PostgreSQL (отчёты, метрики) + Redis (быстрые обновления статуса)
Нерешённые вопросы
- Точная дата переезда на VPS
- Домен (пока подбирает)
Session 2026-05-10 (Вторая сессия)
Настроение
Owner принимает решения быстро, без лишних обсуждений.
Ключевые решения сессии
- ✅ Принята архитектура версионирования агентов (A.B.C) — ADR-006
- ✅ Agent versioning отделён от project versioning
- ✅ Каждый агент сам детектирует изменения через SHA256 checksum
- ✅ EvolutionAgent управляет minor/major бампами
- ✅ Changelog агентов: CHANGELOG/agents/.md
- ✅ SpecAgent — только версионирование проекта (уточнено)
- ✅ Определён формат A.B.C для агентов
Что сделано в этой сессии
- ADR-006 — Agent Versioning (docs/adr/006-agent-versioning.md)
- 00-rules.md — §4.4 Agent Versioning, §20 уточнён
- VERSIONS.md — раздел Agent Versioning
- GLOSSARY.md — термины Agent Version, Checksum, Changelog
- BACKLOG.md — задачи по версионированию агентов
- requirements.txt — обновлён под VPS (fastapi==0.115.6 и т.д.)
- AgentConfig — last_run_at → DateTime, +version, +checksum
- BaseAgent — compute_checksum(), bump_version(), _check_version(), _write_changelog_entry()
- EvolutionAgent — actions: version_check, version_bump (minor/major)
- CHANGELOG/agents/ — 11 файлов с начальной версией 1.0.0
- test_base.py (новый) — 12 тестов на versioning
- test_evolution_agent.py — 16 тестов (добавлены version_check/bump)
- Исправлено:
metadata→extraв agents/models.py (reserved word) - Исправлено:
AgentTrigger.TAG_CREATIONдобавлен в base.py - Исправлено: QATesterAgent импорт User из app.models.user
- Исправлено: FixAgent._identify_error_type (улучшено распознавание)
- Исправлено: app.core.config добавлен глобальный
settings - 111 тестов — все проходят
Текущий прогресс
- Block 0: Rules ✅
- Block 1: Core ✅
- Block 2: Data (модели) ✅
- Block 3: API (25 routes) ✅
- Block 5: Services (5 базовых) ✅
- System Agents (11): Все ✅
- Test coverage: 125 tests ✅
- ADR: 006 ✅
- CHANGELOG/agents/: 11 files ✅
Следующие шаги
- Block 5-bis: AI integrations (Yandex GPT, GigaChat, Fallback)
- Block 4: WebUI
- Настройка PostgreSQL локально
Session 2026-05-10 (Третья сессия)
Ключевые решения сессии
- ✅ Block 3: API полностью реализован (25 routes)
- ✅ Tags: PostgreSQL ARRAY (рекомендация принята)
- ✅ Sync делаем в этом блоке (решение Owner)
- ✅ Admin — полное управление (потом дополним)
- ✅ POST /ideas/{id}/analyze — заглушка до Block 5-bis
Что создано в этой сессии
- app/schemas/ — 7 файлов: auth, user, idea, agent, sync, admin
- app/services/ — 5 файлов: auth, user, idea, agent, sync
- app/api/v1/ — 7 файлов: init, auth, users, ideas, agents, sync, admin
- app/core/dependencies.py — переписан (get_db, get_current_user, require_admin)
- app/models/idea.py — tags → ARRAY(String(50))
- app/main.py — подключён api_v1_router
- tests/unit/api/ — 2 файла: test_routes, test_schemas
API Routes (25 шт.)
| Роутер | Endpoints |
|---|---|
| auth | POST register, login, refresh; GET oauth/{provider}, callback |
| users | GET/PATCH/DELETE /me |
| ideas | GET/POST /, GET/PATCH/DELETE /{id}, POST /{id}/analyze |
| agents | GET /, GET /{name}, POST /{name}/run |
| sync | POST /pull, /push |
| admin | GET /users, PATCH /users/{id}/role, GET /health, /logs |
Исправлено
dependencies.py— полностью переписан под актуальные модели User (is_superuser вместо role)get_current_user— теперь возвращает User, а не dictrequire_admin— проверяет is_superusertests/conftest.py— убран PROJECT_NAME override (ломало тесты)
Тесты: 125 passed
Last Updated: 2026-05-10T15:41:04.073549+00:00
АКТИВНЫЕ ЗАМЕТКИ
Last Updated: 2026-05-10T15:41:04.073549+00:00
К изучению
- Интеграция с ГУ автомобиля (Android Auto / CarPlay)
К реализации позже
- Rate limiting для ИИ-агентов
- Локальные ИИ-модели
- Apple OAuth
Возможные улучшения
- Автоматическая документация API (генерация из Pydantic)
- Типобезопасные агенты (TypedDict + Pydantic)
- Мониторинг агентов в реальном времени (WebSocket)
- Feature Flags для rollout
Last Updated: 2026-05-10T15:41:04.073549+00:00
КОНТАКТЫ
Last Updated: 2026-05-10T15:41:04.073549+00:00
Project Owner: [Указать после заполнения] License: AGPL-3.0 Version: 1.0.0
Last Updated: 2026-05-10T15:41:04.073549+00:00
Last Updated: 2026-05-12T22:45:00.000000+00:00
Session 2026-05-12 (Web App Engine — документация + код-стайл + инструменты)
================================================================================
Ключевые решения сессии
- ✅ Zustand для новых сториджей (Context не трогать)
- ✅ react-hook-form + zod для сложных форм
- ✅ WCAG AA через eslint-plugin-jsx-a11y (enforcement)
- ✅ i18n-ready: строки через strings.ts, , заглушка en.json
- ✅ ErrorBoundary обязателен вокруг Layout
- ✅ React 18 фиксирован (19 — отдельный этап)
- ✅ QATesterAgent — новый vitest режим
- ✅ Дизайн-токены: 3 генератора (CSS, Swift, Kotlin) реализованы
Что создано в этой сессии
- Документация: STYLE_GUIDE.md, SPECIFICATION.md, TECHNICAL.md, PROJECT_GUIDE.md
- Обновлено: user-guide.md (PWA), admin-guide.md (VPS deploy), template/docs/00-rules.md (ESLint+Vitest)
- Компоненты: ErrorBoundary.tsx, SkipToContent.tsx, T.tsx
- Стор: stores/auth.ts (Zustand) + AuthContext wrapper
- Формы: LoginPage, RegisterPage, IdeaCreate, IdeaEdit (react-hook-form+zod)
- WCAG AA: VoiceInput (aria-label+keyboard), VoiceChat (role=log), SettingsPage (htmlFor/id)
- i18n: constants/strings.ts, i18n/en.json
- Агент: QATesterAgent._run_vitest_tests()
- Генераторы: css_generator.py, swift_generator.py, kotlin_generator.py
- Инструменты: tools/backup_db.py, tools/metrics_service.py
- CI: .github/workflows/ci.yml — frontend lint + test jobs
- Тесты: 7 Vitest тестов (ErrorBoundary, SkipToContent, strings) — все passed
- TypeScript: tsc --noEmit — 0 errors
Зависимости (npm)
- Zustand 5.x, react-hook-form 7.x, zod 4.x, @hookform/resolvers
- Vitest 4.x, @testing-library/react, jsdom
================================================================================