A public, single-author web system where a file being received, prepared, approved, published and a case being closed are five distinct operations — and none silently performs the next. This page is not about the product screens: it is about the engineering that makes those guarantees checkable. Every number below is counted from the repository and points at the file it came from.
Support desks that put a language model in front of an organisation's knowledge fail in predictable ways: the model improvises when the corpus is silent, nobody can say which version of which document an answer came from, and a file that was merely received quietly becomes citable. LedgerDesk was built around refusing each of those shortcuts.
README.md, whose ledger, gateway and grounding code remain in the repository and under test; the fourth is the working convention of the current increments, docs/SYSTEM_OVERVIEW.md.Scope note, in the repository's own words: the accepted deliveries (INC-01, INC-02, INC-03 T01–T02) are experimental and run on synthetic documents and accounts. They do not authorise real data or production use. One temporal nonconformity (R24) and two intermittent browser failures are tracked as open, and the README states that successful checks do not close them. The academic context is CQUniversity's COIT20273 capstone, Term 2 2026. What this page claims is the engineering discipline — not a production deployment.
Next.js serves the consoles; a typed contract layer sits between the browser and the server; PostgreSQL enforces tenant isolation and the ledger; and a single chokepoint is the only place a model can be called from. The dependency arrows only point inward.
src/app/src/contracts/src/server/migrations/agents/workers/ · ci/intake/Using a tool is not an approach. These are the places where a first attempt failed, an alternative was rejected on record, and the repository was shaped by the choice. Each one names the file where the decision lives.
The workflow is one file and fourteen jobs. Reading it top to bottom: one static job with no database, ten producers that each leave evidence behind, one gate that refuses to pass unless all ten reported, and two database jobs that cannot share a cluster.
The results of an engineering case study are the artefacts. Every figure below was counted on 19 September 2026 against origin/main (commit a1a9175), and the column on the right says how.