Files
jarca-ledger-mcp/docs/batches/bat-012_20260703_import-pipeline-split/implementation.md
T

3.3 KiB

BAT-012 Implementation

Plan summary

BAT-012 implements dcy-011 Phase 5 by extracting import preview/import/rollback orchestration into application/imports_service.py, introducing an infrastructure/parsers/* seam, and shrinking application/import_transfer_services.py toward advanced workflow ownership while preserving public contracts.

Changed files

  • jarca_ledger_mcp/application/imports_service.py
  • jarca_ledger_mcp/application/import_transfer_services.py
  • jarca_ledger_mcp/application/shared.py
  • jarca_ledger_mcp/application/__init__.py
  • jarca_ledger_mcp/infrastructure/parsers/__init__.py
  • jarca_ledger_mcp/infrastructure/parsers/kb_bank_pdf.py
  • jarca_ledger_mcp/infrastructure/parsers/toss_bank_pdf.py
  • jarca_ledger_mcp/infrastructure/parsers/toss_securities_pdf.py
  • jarca_ledger_mcp/infrastructure/parsers/seoulpay_xlsx.py
  • jarca_ledger_mcp/service.py
  • docs/srs/index.md
  • docs/srs/Non-Functional/req-016_import-pipeline-application-infrastructure-split.md
  • docs/batches/index.md
  • docs/batches/bat-012_20260703_import-pipeline-split/*
  • docs/discovery/dcy-011_20260703_backend-refactor-phase4-write-import-workflow-adapter-narrowing.md

Execution log

  • 2026-07-03 07:49 KST: dcy-011 Phase 5 범위로 REQ-016/BAT-012를 생성하고 승인 상태를 정리했다.
  • 2026-07-03 07:50 KST: application/import_transfer_services.py의 AST function ranges를 추출해 import-owned 함수와 advanced workflow 함수를 기계적으로 분리할 준비를 했다.
  • 2026-07-03 07:51 KST: application/imports_service.py를 생성하고 import preview/import/rollback + import-specific account/classification helpers를 이동했다.
  • 2026-07-03 07:51 KST: application/import_transfer_services.py를 advanced workflow 중심 모듈로 축소하고 import-facing public functions는 compatibility delegation으로 전환했다.
  • 2026-07-03 07:51 KST: infrastructure/parsers/* seam을 추가하고 application/shared.py가 top-level parser 구현 대신 infrastructure seam을 통해 parser를 가져오도록 정렬했다.
  • 2026-07-03 07:52~07:53 KST: targeted import regression, full pytest, MCP discovery, export provenance를 검증했고 모두 PASS했다.

Validation

  • python3 -m py_compile jarca_ledger_mcp/application/*.py jarca_ledger_mcp/infrastructure/parsers/*.py jarca_ledger_mcp/service.py → PASS
  • pytest -q tests/test_kb_bank_pdf.py tests/test_seoulpay_xlsx.py tests/test_toss_securities_pdf.py tests/test_service.py → PASS (12 passed, 4 skipped)
  • pytest -q → PASS (42 passed, 4 skipped)
  • hermes mcp test jarca-ledger → PASS (Connected, Tools discovered: 56)
  • python3 provenance check → PASS (all import preview/import/rollback exports resolve to jarca_ledger_mcp.application.imports_service)

Remaining risks / follow-up notes

  • application/import_transfer_services.py에는 cross-transfer review/matching advanced workflow가 아직 남아 있으며 Phase 6 배치에서 별도 분리해야 한다.
  • parser relocation은 seam-first 방식이므로 top-level parser implementation files는 아직 compatibility/implementation 위치로 남아 있다. 필요 시 후속 cleanup은 adapter/baseline 갱신과 함께 진행한다.
  • UI/adapter 표면 축소와 baseline 문서 갱신은 BAT-012 범위 밖이다.