3.3 KiB
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.pyjarca_ledger_mcp/application/import_transfer_services.pyjarca_ledger_mcp/application/shared.pyjarca_ledger_mcp/application/__init__.pyjarca_ledger_mcp/infrastructure/parsers/__init__.pyjarca_ledger_mcp/infrastructure/parsers/kb_bank_pdf.pyjarca_ledger_mcp/infrastructure/parsers/toss_bank_pdf.pyjarca_ledger_mcp/infrastructure/parsers/toss_securities_pdf.pyjarca_ledger_mcp/infrastructure/parsers/seoulpay_xlsx.pyjarca_ledger_mcp/service.pydocs/srs/index.mddocs/srs/Non-Functional/req-016_import-pipeline-application-infrastructure-split.mddocs/batches/index.mddocs/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→ PASSpytest -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)python3provenance check → PASS (all import preview/import/rollback exports resolve tojarca_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 범위 밖이다.