Files
nifodea/.agent/analysis-report.md
T
2026-07-12 21:48:27 +03:00

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-ассистент — заглушка, промпты готовы
- Лицензия не выбрана — требуется решение