75 lines
4.1 KiB
Markdown
75 lines
4.1 KiB
Markdown
# BAT-014 Verification
|
|
|
|
## Verification summary
|
|
|
|
Status: PASS
|
|
|
|
All required code-path checks for BAT-014 passed, and local browser-level screenshot/DOM evidence was successfully captured against a synthetic fixture DB. No production ledger DB, real financial statement files, passwords, or raw financial payloads were used.
|
|
|
|
## Acceptance criteria evidence
|
|
|
|
### AC-1. MCP contract/helper seam and Streamlit page/domain gateways exist
|
|
- Evidence:
|
|
- `jarca_ledger_mcp/adapters/mcp/tool_contracts.py` added and `adapters/mcp/server.py` now calls `contracts.*`.
|
|
- `search_files('*_gateway.py')` under `adapters/streamlit` returned 9 gateway/aggregator files.
|
|
|
|
### AC-2. `dashboard/app.py` no longer uses a flat broad gateway surface
|
|
- Evidence:
|
|
- `search_files(pattern='service\\.', path='dashboard', file_glob='app.py')` returned 0 matches after rewiring.
|
|
- Dynamic hot-reload lookup now targets passed gateway modules (`categorization_gateway`, `transfers_gateway`) instead of a flat `service` binding.
|
|
|
|
### AC-3. Regression, adapter verification, and browser smoke pass
|
|
- `python3 -m py_compile jarca_ledger_mcp/adapters/mcp/*.py jarca_ledger_mcp/adapters/streamlit/*.py dashboard/app.py` → PASS
|
|
- `pytest -q tests/test_dashboard_app.py` → PASS (`....`)
|
|
- `pytest -q` → PASS (`........................ss...............ss...`)
|
|
- `hermes mcp test jarca-ledger` → PASS, 56 tools discovered
|
|
- `.venv/bin/python scripts/streamlit_browser_evidence.py` → PASS
|
|
- Output dir: `docs/batches/bat-014_20260703_adapter-surface-narrowing-baseline-refresh/evidence/run-20260703-100358/`
|
|
- Artifacts: `overview.png`, `rules.png`, `transfer-review.png`, `import.png` plus matching `*.dom.html` and `manifest.json`
|
|
- Cleanup check: `search_files('chrome-profile-*')` under the run dir returned 0 results after the retry-cleanup fix
|
|
|
|
### AC-4. Baseline docs, discovery metadata, and BAT-local evidence tooling reflect completion
|
|
- Evidence:
|
|
- `docs/project-structure.md` updated with new owning services, parser seam, MCP contract helper, and Streamlit page/domain gateways.
|
|
- `docs/runtime-flows.md` updated with import/parser seam, MCP contract routing, and dashboard gateway flow.
|
|
- `docs/runbooks/streamlit-browser-evidence.md` now points at the BAT-014 evidence root and includes `요약` in the default capture set.
|
|
- dcy-011 metadata and close-out notes updated to reference `REQ-015`~`REQ-018` / `BAT-011`~`BAT-014` completion.
|
|
|
|
## Browser evidence details
|
|
|
|
Evidence source: `docs/batches/bat-014_20260703_adapter-surface-narrowing-baseline-refresh/evidence/run-20260703-100358/manifest.json`
|
|
|
|
### Captured pages
|
|
- `요약`
|
|
- Screenshot: `overview.png`
|
|
- DOM: `overview.dom.html`
|
|
- Evidence text included `📊 요약`, `가계부 운영 대시보드`, and the synthetic fixture DB path under the BAT-014 evidence directory.
|
|
- `분류 규칙`
|
|
- Screenshot: `rules.png`
|
|
- DOM: `rules.dom.html`
|
|
- Evidence text included `⚙️ Rule Engine`, `분류 규칙`, and seeded default categorization rules.
|
|
- `확인필요 큐`
|
|
- Screenshot: `transfer-review.png`
|
|
- DOM: `transfer-review.dom.html`
|
|
- Evidence text included `🔁 Transfer Review`, `KB↔토스뱅크 확인필요 큐`, and a synthetic transfer-review row for `2026-06-29` / `SYNTHETIC_TRANSFER` / `120,000원` / `이체` / `확인필요`.
|
|
- `Import`
|
|
- Screenshot: `import.png`
|
|
- DOM: `import.dom.html`
|
|
- Evidence text included `📥 Statement Import`, Toss Securities import copy, and Toss Bank import copy.
|
|
|
|
### Automation script close-out
|
|
- Script: `scripts/streamlit_browser_evidence.py`
|
|
- Behavior:
|
|
- Generates a synthetic fixture DB under the BAT-014 evidence run directory.
|
|
- Starts Streamlit against that fixture DB only.
|
|
- Uses local Chrome DevTools Protocol to capture screenshots and DOM snapshots.
|
|
- Writes `manifest.json` with page/url/path/byte-size evidence.
|
|
- Retries Chrome profile cleanup and leaves only the intended evidence artifacts in the final run directory.
|
|
|
|
## Safety boundary
|
|
|
|
- Synthetic/temp DBs only.
|
|
- No destructive migration.
|
|
- No production ledger DB mutation.
|
|
- No real statement files, passwords, or raw payloads in screenshots, DOM snapshots, or manifest output.
|