2.0 KiB
2.0 KiB
Roadmap
Phase 1 — Semantics core (now)
The engine: money, accounts, journal, ledger commands, trial balance, P&L,
balance sheet, golden files, property tests, and the docs an agent needs to
work here (AGENTS.md, requirements, architecture, oracle, parity, glossary).
Done when the parity floor is 6+ and every done item is tested +
golden-covered.
Phase 2 — Close the accounting loop
- Period close (fiscal periods, closing entries, locked periods)
- Cash flow statement, indirect method
proptestwith shrinking; properties for close and cash flow- Parity floor moves; goldens grow
Phase 3 — Oracle harness
ledger-import: GnuCash XML read-only importledger-oracle: fixture books through our engine and GnuCash headless, automaticsnapshot()diffing viacargo xtask oracle- Parity catalog becomes machine-readable; CI enforces the non-regression floor
- Done when: a fixture book produces byte-identical snapshots from both engines with zero manual steps
Phase 4 — App shell (egui)
books-app: one Rust codebase, native desktop + WASM (the storytold stack: egui/eframe, no Electron, no React)- Command-driven UI: every UI action goes through the
Ledgercommand surface; the UI holds no accounting logic - storytold's screenshot-in-the-loop returns: agents verify UI changes visually, against reference screenshots of GnuCash/QuickBooks kept maintainer-local (never committed)
- Workflow parity catalog starts (QuickBooks/Xero reference): invoices, bills, bank rec, chart management
Phase 5 — Workflow parity
- A/R and A/P workflows, bank reconciliation, budgets, scheduled transactions
- Multi-currency with FX translation
- The goal: a self-hosted bookkeeping app with a tested claim to semantic parity with GnuCash and workflow parity with QuickBooks — no SaaS subscription required
Explicitly not on the roadmap
Bank feeds, payment processing, payroll, tax filing. Those are integrations and regulated domains, not cloning targets. The engine gets clean seams for them; someone else's API provides them.