{ "request_id": "req-T1", "task_id": "T1", "title": "Restructure to domain/application/infrastructure + schema version 1", "status": "ready_for_review", "goal": "Ввести явные слои и подготовить инфраструктуру миграций схемы", "changes": { "summary": "Перестроена пакетная структура: cashflow_model/ → domain/ (модели), engine/ → application/ (сервисы), cli/, sync/, ai/ → infrastructure/ (адаптеры). Обновлены все импорты в коде и тестах. В FinancialModel добавлено поле version=1 в to_dict() и миграционный хук _from_v0/_from_v1 в from_dict() для обратной совместимости. Обновлён pyproject.toml: cf = infrastructure.cli.main:app, packages.find = ['domain*', 'application*', 'infrastructure*'].", "commits": ["feb77ef217a54720868218b911312b040bcfb118"], "files_changed": [ "domain/ (new, 8 файлов из cashflow_model/)", "application/ (new, 3 файла из engine/)", "infrastructure/ai/ (new, из ai/)", "infrastructure/cli/ (new, из cli/)", "infrastructure/sync/ (new, из sync/)", "tests/* (8 файлов, импорты обновлены)", "pyproject.toml (cf entry + packages.find)", "data/model.json (version=1)" ] }, "verification": { "tests_passed": "63/63", "lsp_clean": true, "cf_command_works": true, "round_trip_v1": "ok", "legacy_v0_load": "ok" }, "fulfills_ac": [ "Структура domain/application/infrastructure создана", "Все исходные файлы перемещены в соответствующие слои", "Все импорты обновлены", "FinancialModel.to_dict() возвращает {'version': 1, ...}", "FinancialModel.from_dict() поддерживает v0 и v1", "pytest проходит 63/63" ] }