-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
Restructure the repository from the current flat package layout into a domain-driven architecture with clear ownership boundaries.
Target Package Structure
packages/
domain/ — Pure types, invariants, value objects
ledger/ — Accounts, balances, postings, transfers, snapshots, reconciliation
ingestion/ — CSV/OFX/QFX adapters, file templates, row parsing, provenance
resolution/ — Merchant resolution, alias graph, duplicate clustering, transfer detection
analytics/ — Trend analysis, debt scenarios, budget vs actual, burn rate
advice/ — Plan generation, recommendation ranking, scenario comparisons
ai-providers/ — LLM provider abstraction (demoted from center stage)
mcp-server/ — MCP tools exposing stable domain/analytics operations
Current State
packages/shared→ becomespackages/domainpackages/financial-tools→ split intoledger,ingestion,resolution,analyticspackages/ai-integration→ becomespackages/ai-providers(utility, not core)packages/mcp-server→ stays, but depends on real domain operationspackages/vscode-extension→ keep as-is for now
Principles
- Each package has a single clear owner domain
- No cross-package circular dependencies
- AI is a supporting capability, not the architecture
- Domain types are strict — no "optional everything" models
Acceptance
- All 8 packages created with clear boundaries
- Existing code migrated to correct packages
- Package dependency graph is acyclic
- Each package has its own tsconfig, tests, exports
Reactions are currently unavailable