# BAT-001 Implementation ## Status - Status: implemented-qc-passed - Last Updated (KST): 2026-06-26 23:41 ## Changed Files - `jarca_ledger_mcp/server.py` - `delete_category_rule(rule_id: str)` MCP tool을 additive 등록했다. - `dashboard/app.py` - 분류 규칙 page의 `seed_default_category_rules`, `preview_categorization`, `apply_categorization_rules` 호출이 page-level `db_path`를 전달하도록 수정했다. - `tests/test_category_rule_filters.py` - category rule 삭제 성공, 삭제 후 list 제외, missing ID `not_found` regression을 추가했다. - StagePilot 문서 - `docs/srs/Interface/req-001_category-rule-ops.md` - `docs/srs/index.md` - `docs/batches/bat-001_20260626_category-rule-ops/*` - `docs/batches/index.md` - `docs/discovery/dcy-001_20260626_streamlit-ux-e2e-categorization-refund-workflows.md` ## Execution Log - 2026-06-26 23:31 KST: batch-lite 계획 수립. - 2026-06-26 23:33 KST: MCP delete tool, Streamlit db_path 전달, deletion regression test 구현. - 2026-06-26 23:36 KST: service/pytest/MCP/Streamlit AppTest smoke 검증 완료. - 2026-06-26 23:41 KST: 검수관 QC gate `PASS_WITH_NOTES` 확인, blocker 없음. ## Validation During Implementation - `python -m py_compile jarca_ledger_mcp/*.py dashboard/app.py`: pass. - `pytest tests/test_category_rule_filters.py`: 3 passed. - `pytest tests/test_cross_account_transfer_matching.py`: 3 passed. - `pytest`: 17 passed, 4 skipped. - `hermes mcp test jarca-ledger`: connected, 41 tools discovered, `delete_category_rule` discovered. - Streamlit smoke: port 8502 synthetic fixture DB `/tmp/jarca-ledger-bat-001-smoke.sqlite3`; browser tool unavailable because local Chromium snap is not installed, so `streamlit.testing.v1.AppTest` was used. 분류 규칙 page rendered without exceptions; title/subheader/buttons/rule item were visible; preview/apply buttons ran without errors; default 운영 DB mtime unchanged. ## Remaining Risks - Browser screenshot evidence was not captured because `/usr/bin/chromium-browser` requires the unavailable chromium snap. AppTest + HTTP 200 smoke was used as substitute evidence. - Import/rollback and cancel/refund workflows remain outside BAT-001 and should be handled by later REQ/BAT.