Spec: AI-first MCP interface phase (ledger-mcp, receipt store, capability parity)

This commit is contained in:
swaits committed 2026-10-11 01:07:47 +00:00
1 parent 3a9d83ec6c
commit ae61f02eb8
1 file changed
+27 -21
+27 -21
View File
@@ -1,19 +1,27 @@
# Roadmap
## Phase 1 — Semantics core (now)
## Phase 1 — Semantics core (done)
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.
Parity floor: 6 done.
## Phase 2 — Close the accounting loop
## Phase 2 — AI-first interface (now)
- Period close (fiscal periods, closing entries, locked periods)
- Cash flow statement, indirect method
- `proptest` with shrinking; properties for close and cash flow
- Parity floor moves; goldens grow
The primary interface is MCP, not a cloned GUI (Stephen's call, 2026-10-10).
- `ledger-store`: SQLite persistence, append-only triggers, amounts as TEXT,
event log, migrations, rebuild-from-log verify. Spec: `docs/receipt-store.md`.
- Blob store: content-addressed receipts and documents, attachment metadata,
Drive backfill script.
- `ledger-mcp`: stdio transport first, Streamable HTTP later; narrow tools,
preview-before-post, digest, read-only resources, the agent operating
contract in the tool descriptions. Spec: `docs/mcp-interface.md`.
- Capability parity vs the GSheet+GDrive system: `docs/capability-parity.md`.
- Parallel run with the sheet; cutover per the cutover rule.
- Done when: every specced capability-parity row is covered, a month of
parallel run diffs clean, Stephen approves the cutover.
## Phase 3 — Oracle harness
@@ -25,25 +33,23 @@ golden-covered.
- Done when: a fixture book produces byte-identical snapshots from both
engines with zero manual steps
## Phase 4 — App shell (egui)
## Phase 4 — Read-only GUI
- `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 `Ledger` command
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
- Consumes the `ledger-store` event log: live updates via tail/SSE — the
answer to "watch its files to update live."
- egui or web; a dumb client holding no accounting logic.
- This is the trust layer for humans (Stephen, Kat, the CPA), not the
primary interface. Read-only at first; editing stays with the agent.
## 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
- Period close and cash flow (engine R-FUTURE items) land as their phases
demand, not before
- The goal: a self-hosted bookkeeping system with a tested claim to
semantic parity with GnuCash and capability parity with the old
GSheet+GDrive workflow — no SaaS subscription required
## Explicitly not on the roadmap