76 lines
2.9 KiB
Markdown
76 lines
2.9 KiB
Markdown
# Analysis Report
|
|
|
|
## Session
|
|
|
|
- **Session ID:** `metaagent-002`
|
|
- **Target repo:** `S:\Git\nifodea`
|
|
- **Date:** 2026-07-12
|
|
- **Project type:** `existing`
|
|
|
|
## 1. Общая информация
|
|
|
|
- **README:** CashFlow Forecast — личная финансовая модель с прогнозом денежных потоков, сценарным анализом и AI-ассистентом
|
|
- **Лицензия:** не указана
|
|
- **CI/CD:** отсутствует
|
|
- **Точка входа:** `cli/main.py:app` (команда `cf`)
|
|
- **Система сборки:** `pyproject.toml` (setuptools)
|
|
|
|
## 2. Стек технологий
|
|
|
|
| Компонент | Значение |
|
|
|---|---|
|
|
| Язык | Python 3.11+ (фактически 3.13) |
|
|
| Фреймворк | Typer (CLI), openpyxl (Excel) |
|
|
| База данных | JSON-файлы |
|
|
| Тестовый раннер | pytest |
|
|
| Пакетный менеджер | pip + venv |
|
|
| Линтер | ruff |
|
|
|
|
## 3. Архитектура
|
|
|
|
**Паттерн:** Модульный монолит (Layered)
|
|
|
|
```
|
|
cli/ → sync/ ⇒ cashflow_model/ ⇔ engine/ → ai/
|
|
(Excel) (Entity Model) (Forecast) (Prompts)
|
|
```
|
|
|
|
**Модули:**
|
|
- `cashflow_model/` — сущности dataclass + JSON сериализация (Account, Transaction, RecurringCashflow, Asset, Liability, ForecastScenario, FinancialModel)
|
|
- `engine/` — ForecastService (прогноз), ScenarioService (сценарии + what-if)
|
|
- `sync/` — ExcelSync (импорт/экспорт .xlsx через openpyxl)
|
|
- `ai/` — AssistantService (промпты, заглушка), PromptsTemplate
|
|
- `cli/` — Typer CLI (init, forecast, scenario, whatif, compare, import, export, analyze)
|
|
- `tests/` — pytest тесты (26 tests)
|
|
|
|
**Внешние зависимости:** openpyxl, typer, rich
|
|
|
|
## 4. Конвенции кода
|
|
|
|
- **Стиль:** ruff (E, F, I, N, W), line-length=100
|
|
- **Именование:** snake_case для функций/переменных, PascalCase для классов
|
|
- **Типизация:** аннотации типов
|
|
- **Обработка ошибок:** кастомные исключения (ModelError, SyncError, ForecastError)
|
|
- **Логирование:** не используется
|
|
|
|
## 5. Тесты
|
|
|
|
- **Типы:** unit-тесты
|
|
- **Расположение:** `tests/`
|
|
- **Запуск:** `pytest`
|
|
- **Текущее состояние:** 26/26 passed (100%)
|
|
- **Покрытие:** не измеряется
|
|
|
|
## 6. Базовая проверка
|
|
|
|
- **Сборка:** pip install -e . — success
|
|
- **Импорты:** все модули импортируются без ошибок
|
|
- **Линтер:** ruff check — All checks passed
|
|
- **Git status:** clean
|
|
|
|
## 7. Примечания
|
|
|
|
- Проект полностью реализован (MVP)
|
|
- AI-ассистент — заглушка, промпты готовы
|
|
- Лицензия не выбрана — требуется решение
|