49 lines
3.1 KiB
Markdown
49 lines
3.1 KiB
Markdown
# BAT-013 Implementation
|
|
|
|
## Plan summary
|
|
|
|
BAT-013 implements dcy-011 Phase 6 by extracting advanced finance workflows into dedicated owning application services: `cross_transfer_service.py`, `reconciliation_service.py`, `assets_service.py`, and `uncategorized_workbench_service.py`. Existing broad modules remain as compatibility layers so MCP/service/dashboard callers keep their contracts.
|
|
|
|
## Changed files
|
|
|
|
- `jarca_ledger_mcp/application/assets_service.py`
|
|
- `jarca_ledger_mcp/application/asset_account_services.py`
|
|
- `jarca_ledger_mcp/application/cross_transfer_service.py`
|
|
- `jarca_ledger_mcp/application/import_transfer_services.py`
|
|
- `jarca_ledger_mcp/application/reconciliation_service.py`
|
|
- `jarca_ledger_mcp/application/transaction_report_services.py`
|
|
- `jarca_ledger_mcp/application/uncategorized_workbench_service.py`
|
|
- `jarca_ledger_mcp/application/categorization_services.py`
|
|
- `jarca_ledger_mcp/application/__init__.py`
|
|
- `jarca_ledger_mcp/service.py`
|
|
- `docs/srs/index.md`
|
|
- `docs/srs/Non-Functional/req-017_advanced-finance-workflow-service-split.md`
|
|
- `docs/batches/index.md`
|
|
- `docs/batches/bat-013_20260703_advanced-workflow-service-split/*`
|
|
- `docs/discovery/dcy-011_20260703_backend-refactor-phase4-write-import-workflow-adapter-narrowing.md`
|
|
|
|
## Execution log
|
|
|
|
- 2026-07-03 07:55 KST: dcy-011 Phase 6 범위로 `REQ-017`/`BAT-013`를 생성하고 Approved 상태를 확정했다.
|
|
- 2026-07-03 07:57~07:59 KST: AST-extracted function ranges를 기준으로 assets / cross-transfer / reconciliation / uncategorized workbench 흐름을 새 owning services로 이동했다.
|
|
- 2026-07-03 07:59 KST: `asset_account_services.py`, `import_transfer_services.py`, `transaction_report_services.py`, `categorization_services.py`를 compatibility delegation 레이어로 축소했다.
|
|
- 2026-07-03 08:00 KST: `application/__init__.py`와 `service.py` export/proxy surface를 새 owning modules까지 확장했다.
|
|
- 2026-07-03 08:00~08:01 KST: targeted workflow regression, full pytest, MCP discovery, provenance checks를 실행했고 모두 PASS했다.
|
|
|
|
## Validation
|
|
|
|
- `python3 -m py_compile jarca_ledger_mcp/application/*.py jarca_ledger_mcp/service.py` → PASS
|
|
- `pytest -q tests/test_cross_account_transfer_matching.py tests/test_asset_snapshots.py tests/test_categorization.py tests/test_contract_regression.py tests/test_service.py` → PASS (`24 passed`)
|
|
- `pytest -q` → PASS (`42 passed, 4 skipped`)
|
|
- `hermes mcp test jarca-ledger` → PASS (`Connected`, `Tools discovered: 56`)
|
|
- `python3` provenance check → PASS
|
|
- cross-transfer APIs → `jarca_ledger_mcp.application.cross_transfer_service`
|
|
- reconciliation API → `jarca_ledger_mcp.application.reconciliation_service`
|
|
- asset workflows → `jarca_ledger_mcp.application.assets_service`
|
|
- uncategorized workbench APIs → `jarca_ledger_mcp.application.uncategorized_workbench_service`
|
|
|
|
## Remaining risks / follow-up notes
|
|
|
|
- broad compatibility layers still exist by design; final dcy-011 batch should narrow MCP/Streamlit adapter imports and refresh baseline docs.
|
|
- top-level module names remain public to avoid breaking monkeypatch/tests; final cleanup should preserve this constraint.
|