Accounting desk
Accounting at/accounting is the analytical desk beside Books and Audit.
It is screen-first and read-oriented; there is no Accountant chat route in the browser.
All money crosses the API as exact decimal strings.
Each row retains the native reference and journal-link state instead of flattening the desk into a second reporting database.
Canonical line attribution
Analysis reads the canonical accounting-event detail rather than inferring attribution from labels in a summary row. Each journal line reports activity, party, cost object, flow, and cost-centre attribution ascomplete, partial, missing, inconclusive, or error.
An omitted attribution object means the response did not answer the question; it is not evidence that the line has no attribution.
Contradictory stored fields and source records make the affected attribution unavailable instead of being merged into a plausible label.
Close binder
The binder route accepts oneYYYY-MM period.
Organization and access are derived from the verified server session, and the browser cannot choose an actor, organization, table, or query.
A successful response is shown only after the complete package validates; download returns the exact response bytes rather than a client-side reconstruction.
Unavailable source claims remain in the package’s declined-evidence index.

Close keeps coverage separate from cleanliness. The selected open demo period has no stored run, so the desk withholds both ready and blocked verdicts until the live checks run.

Adjustments exposes its full truth vocabulary even when the durable workpaper register was read successfully with zero matching rows.
What this surface refuses
The desk does not allow the model to post, close a period, approve an adjustment, or choose an organization. Close and adjustment mutations, where offered through a review workspace, re-read canonical state and require exact revision, named-human authority, maker-checker separation, and a durable receipt. An unsupported or incomplete link stays incomplete; the UI does not join records by a similar-looking label.When the answer is unknown
Journal links reportlinked, unlinked, not_recorded, or unknown.
Allocation, costing, and adjustment responses carry explicit partial or unavailable rows, and a malformed successful response is treated as unreadable rather than as no accounting activity.
Adjustment commit outcomes remain unknown until a canonical reread or receipt proves them.
Verified at source
- The GreatBook web repository’s
src/lib/accounting-nav.tsdefines the seven desk destinations and confirms that the workspace is not a browser chat agent. - Its
src/lib/accounting-reads.ts,accounting-analysis.ts, andaccounting-close.tsdefine strict exact-money, paging, partial, unavailable, and link-state contracts. - Its
src/lib/close-binder.tsandsrc/app/accounting/binder/page.tsxvalidate one complete period package, keep declined evidence visible, and download the exact server bytes. langgraph_chat/devcenter/gl_api.pyis the canonical attribution source consumed by Analysis; summary omission, factual absence, incomplete sources, and endpoint failure are separate states.langgraph_chat/devcenter/accounting_api.pyowns the corresponding server reads.langgraph_chat/agents/accountant/owns the close and adjustment proposal logic; canonical mutation still passes through named domain services and the ledger writer.