Novolis Docs
novolis-governance / library-vs-cli.md

Library vs CLI / tool apps

dotnetgovernancenovolis

Domain behavior lives in libraries. CLIs and file-based tools are shallow hosts.

KindOwnsExamples
LibraryAlgorithms, invariants, chapter-aware ops, DTOs`Novolis.Manuscript`, `Manuscript.Metrics`, `Manuscript.Editorial`, `Export.Pdf`, `Export.Audio`, `Manuscript.IO`
CLI / tool appArgv, exit codes, path glue, CI orchestration`Novolis.Manuscript.Cli`, books `tools/*` shims, `run-ci`
Product appHuman session + Layout compositionBooksWriterStudio, BooksMobile

Rules

  1. Ascii cleanup, metrics, character slices, surgery, doctor, editorial, and export pipelines are library APIs first.
  2. CLIs map --series / --book / flags onto those APIs. They do not reimplement normalize/metrics/print.
  3. Studio and Mobile call the same libraries in-process. Prefer compute APIs that do not require disk or Console.
  4. Content-repo one-offs (Calypso lore, starsystems) may stay in books; do not drag them into product chrome.

Related