Reference
The reference area is split by kind of thing, mirroring how the Kandra codebase itself is
organized (see the platform's own
CLAUDE.md for the authoritative
layering):
- Attributes — the metadata vocabulary (
Kandra.Attributes) that drives every generator. - Entities (
*Base) — the pure EF Core model layer. - DTOs & Validators — the attribute-rich UI/API contract layer.
- Services — application/persistence services, behaviors, register writers/readers, posting, lookups, handlers, job scheduler.
- Source Generators — the Roslyn generators that remove hand-written plumbing.
- Register Engine — balance/turnover/info registers.
- Chart of Accounts / Posting — the independent accounting subsystem.
- Identity & Auth — users, roles, JWT, API keys, feature flags.
Two sources of truth
Reference content here comes from two places, and they're kept deliberately separate:
-
Hand-written pages — the
overview.md(or similarly named) page at the top of each section above. These explain why a layer exists and how its pieces fit together — the kind of narrative context that doesn't belong in an XML doc comment. Edit these directly. -
Generated API Reference — one page per type/member, produced mechanically from the C#
///XML doc comments in the source repos byscripts/sync-xml-docs.mjs. Never hand-edit anything underdocs/reference/generated/— edit the XML doc comment in the C# source and re-run the sync. Seexml-docs/README.mdfor how the pipeline and itsregistry.csvchange-tracking work.