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

Library vs executable hosts

dotnetgovernancenovolis

Domain behavior lives in libraries. Executable hosts are shallow compositions over those libraries, and their publishing home is determined by audience and lifecycle.

KindOwnsExamples
LibraryAlgorithms, invariants, chapter-aware ops, DTOsNovolis.Manuscript, Manuscript.Metrics, Manuscript.Editorial, Export.Pdf, Export.Audio, Manuscript.IO
ToolArgv, exit codes, path glue, CI orchestration for .NET developersnovolis-manuscript, novolis-coverage, novolis-docs in novolis-tools
UtilityOne small technical executable, with optional tiny UINDJSON explorer, ADB utility, WireFish viewer in novolis-utilities
Product appHuman session + Layout compositionBooksWriterStudio, BooksMobile
LabTemporary integration host, smoke, benchmark, or walkthroughnovolis-lab

Rules

  1. Ascii cleanup, metrics, character slices, surgery, doctor, editorial, and export pipelines are library APIs first.
  2. Tools map --series / --book / flags onto those APIs. They do not reimplement normalize/metrics/print.
  3. Utilities map technical files, devices, or wire protocols onto the same APIs. They do not become a second product UI.
  4. Studio and Mobile call the same libraries in-process. Prefer compute APIs that do not require disk or Console.
  5. Content-repo one-offs (Calypso lore, starsystems) may stay in labs or private repository tools; do not drag them into product chrome.
  6. Domain tool hosts do not live beside their libraries. novolis-tools is the sole publisher for PackAsTool commands.

Related