Files
jarca-ledger-mcp/docs/batches/bat-013_20260703_advanced-workflow-service-split/implementation.md
T

3.1 KiB

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.