export const READ_SOURCE = "Read "; export const LINES_SUFFIX = " line(s), "; export const RECORDS_SUFFIX = " record(s)."; export const WROTE = "Wrote "; export const SEEDS_SUFFIX = " seed(s), "; export const INCOMPLETE_SUFFIX = " incomplete."; export const INCOMPLETE_SEED = "Incomplete seed "; export const MISSING_FIELDS = " is missing "; export const MODULES_MEASURED = " module(s) measured."; export const TOKENS_SUFFIX = " token(s) from "; export const SOURCES_SUFFIX = " source(s)."; export const CHAPTER_WRITTEN = "Chapter written: "; export const CHAPTER_REMOVED = "Stale chapter removed: "; export const CHAPTERS_DONE = " chapter(s) rendered to "; export const NO_TWINS = "A page this shape renders has no built payload or Markdown twin; build the site first: "; export const NO_README_INPUTS = "The README composes the methodology, the FAQ and the exhibit pages, and one of their payloads is missing; build the site first."; export const SHAPE_UNKNOWN = "The output shape is not one the renderer knows; pass repository or wiki: "; export const FINDINGS_HEAD = " finding(s):"; export const CLEAN_GRAPH = "Every content graph resolves: each concept taught once, every requirement earlier, every trace known."; export const CLEAN_LEAKS = "No payload string carries an internal identifier or a workspace path."; export const UNTAUGHT_HEAD = "Inventory slugs no section teaches:"; export const RENDER_UNSTABLE = "Rendering the chapters twice produced different bytes for: "; export const RENDER_STABLE = "Rendering the chapters twice produced identical bytes."; export const NO_GRAPHS = "No content graph is declared; nothing to validate."; export const NO_INVENTORY = "The rule inventory has not been derived; run the inventory entrypoint first: "; export const NO_SEEDS = "The lesson seeds have not been derived; run the seed entrypoint first: "; export const NO_LEAK_SET = "The leak set has not been derived; run the leak entrypoint with the derive flag first: "; export const NO_LINK_SET = "No link baseline has been taken; run the link entrypoint with the derive flag first: "; export const NO_PAYLOAD = "This page has no built payload; build the site first: "; export const LINKS_SUFFIX = " link(s) across "; export const SECTIONS_SUFFIX = " section(s)."; export const CLEAN_LINKS = "Every link in the baseline is still in the section it was taken from."; export const LINK_LOST = "lost from the page: "; export const LINK_MOVED = " moved to another section of the same page: "; export const SIGNOFF_MISSING = "not signed off yet; its current fingerprint is "; export const SIGNOFF_CHANGED = "changed since it was signed off; its current fingerprint is "; export const CLEAN_WRITING = "Every section in the rewrite scope reads as signed off."; export const UNREAD_SUFFIX = " section(s) outside the rewrite scope have not been read yet."; export const FINDING_INDENT = " "; export const SLOT_WORDS_MISSING = "The model template names no slot words; the invariant scanner has nothing to derive its slots from."; export const DUPLICATE_SEED_IDS = "Seed ids collide across sources: ";