# configuration/strings/coverage.strings.ts

> 41 lines of code and 27 definitions.

Tree: Bane's Lab Content
Language: typescript
Layer: product
Canonical: https://banes-lab.com/anatomy/content#file-content-configuration-strings-coverage-strings-ts
Source text: https://banes-lab.com/source/content/configuration/strings/coverage.strings.ts.txt

Listed in [configuration/strings](https://banes-lab.com/api/source/content/configuration/strings.md), after [configuration/strings/coordination.strings.ts](https://banes-lab.com/source/content/configuration/strings/coordination.strings.ts.md) and before [configuration/strings/derivation.strings.ts](https://banes-lab.com/source/content/configuration/strings/derivation.strings.ts.md).

## Definitions

- `citeUnresolved` (lexical_declaration, line 35, exported)
- `DIGEST_SHOWN` (lexical_declaration, line 1)
- `SECTION_UNDECLARED` (lexical_declaration, line 3, exported)
- `SECTION_UNTAUGHT` (lexical_declaration, line 6, exported)
- `TRACE_UNKNOWN` (lexical_declaration, line 9, exported)
- `CONCEPT_TAUGHT_TWICE` (lexical_declaration, line 11, exported)
- `REQUIRES_UNKNOWN` (lexical_declaration, line 14, exported)
- `REQUIRES_FORWARD` (lexical_declaration, line 16, exported)
- `CYCLE_FOUND` (lexical_declaration, line 19, exported)
- `GRAPHS_VALIDATED` (lexical_declaration, line 21, exported)
- `GROUNDING_CONTRADICTED` (lexical_declaration, line 23, exported)
- `GROUNDING_UNDECLARED` (lexical_declaration, line 26, exported)
- `CITE_NODE` (lexical_declaration, line 29, exported)
- `LIST_SEPARATOR` (lexical_declaration, line 31)
- `LIST_LAST` (lexical_declaration, line 33)
- `named` (lexical_declaration, line 36, exported)
- `CITE_TREE_ONLY` (lexical_declaration, line 41, exported)
- `CITE_UNQUALIFIED` (lexical_declaration, line 43, exported)
- `GROUNDING_SUMMARY` (lexical_declaration, line 46, exported)
- `GROUNDING_UNASSESSED` (lexical_declaration, line 48, exported)
- `PAGES_SUFFIX` (lexical_declaration, line 50, exported)
- `LEAK_INLINE` (lexical_declaration, line 52, exported)
- `LEAK_IDENTIFIER` (lexical_declaration, line 54, exported)
- `LEAK_PATH` (lexical_declaration, line 56, exported)
- `privateTermLine` (lexical_declaration, line 58, exported)
- `machinePathLine` (lexical_declaration, line 62, exported)
- `PAYLOAD_MISSING` (lexical_declaration, line 66, exported)

## Contained in

- [configuration/strings](https://banes-lab.com/anatomy/content/folder-content-configuration-strings.md)

## Used by

- [core/validators/evidence.validator.ts](https://banes-lab.com/source/content/core/validators/evidence.validator.ts.md)

## Linked from

- [core/validators](https://banes-lab.com/anatomy/content/folder-content-core-validators.md)

## Source

```typescript
const DIGEST_SHOWN = 12;

export const SECTION_UNDECLARED =
    "The built payload carries this section and the content graph does not declare it; declare what it teaches or mark it narrative.";

export const SECTION_UNTAUGHT =
    "This section teaches no concept and is not declared narrative; a section is either a lesson or declared narrative.";

export const TRACE_UNKNOWN = "This section traces to an id neither the rule inventory nor the lesson seeds carry: ";

export const CONCEPT_TAUGHT_TWICE =
    "A concept is taught in more than one place; a concept has one home and every other mention links to it: ";

export const REQUIRES_UNKNOWN = "This section requires a concept no section teaches: ";

export const REQUIRES_FORWARD =
    "This section requires a concept taught later in the tab order; the levels are the topological order of the concepts: ";

export const CYCLE_FOUND = "This section sits on a cycle of requirements; a requirement graph is acyclic.";

export const GRAPHS_VALIDATED = " content graph(s) validated over ";

export const GROUNDING_CONTRADICTED =
    "This section is grounded in constructs of the tree and also declared absent; a section is one or the other.";

export const GROUNDING_UNDECLARED =
    "The evidence registry names a section no content graph declares; point it at a real section or remove it.";

export const CITE_NODE = "The EVIDENCE entry names ";

const LIST_SEPARATOR = ", ";

const LIST_LAST = " or ";

export const citeUnresolved = function citeUnresolved(trees: readonly string[]): string {
    const named =
        trees.length > 1 ? trees.slice(0, -1).join(LIST_SEPARATOR) + LIST_LAST + String(trees.at(-1)) : trees.join("");
    return `, and no file, folder or definition in the ${named} has that name. A rename, a move or a deletion leaves an entry like this; change the entry to the current name, or remove it.`;
};

export const CITE_TREE_ONLY = ", which exists only in the ";

export const CITE_UNQUALIFIED =
    " tree. A name without a tree prefix is looked up in the Site tree first, so a Site file with the same name would take its place; write the entry as ";

export const GROUNDING_SUMMARY = "Teaching sections grounded in the tree, declared absent, and not yet assessed: ";

export const GROUNDING_UNASSESSED = "This teaching section is in neither EVIDENCE nor EVIDENCE_ABSENT.";

export const PAGES_SUFFIX = " page(s).";

export const LEAK_INLINE = "carries an internal identifier inside inline code: ";

export const LEAK_IDENTIFIER = "carries an internal identifier: ";

export const LEAK_PATH = "carries a workspace path: ";

export const privateTermLine = function privateTermLine(line: number, digest: string): string {
    return `carries a private term at line ${String(line)}, digest ${digest.slice(0, DIGEST_SHOWN)}. Remove the term, or allow the exact string that carries it.`;
};

export const machinePathLine = function machinePathLine(line: number): string {
    return `carries an absolute workspace path at line ${String(line)}. Publish the path relative to the workspace root.`;
};

export const PAYLOAD_MISSING = "The built payload for this page is missing; build the site first: ";
```
