# shared/manifests/writing.document.manifest.ts

> 53 lines of code and 2 definitions.

Tree: Governance tree
Language: typescript
Layer: infrastructure
Canonical: https://banes-lab.com/anatomy/governance#file-governance-shared-manifests-writing-document-manifest-ts
Source text: https://banes-lab.com/source/governance/shared/manifests/writing.document.manifest.ts.txt

Listed in [shared/manifests](https://banes-lab.com/api/source/governance/shared/manifests.md), after [shared/manifests/writing.canon.manifest.ts](https://banes-lab.com/source/governance/shared/manifests/writing.canon.manifest.ts.md) and before [shared/manifests/writing.identifier.manifest.ts](https://banes-lab.com/source/governance/shared/manifests/writing.identifier.manifest.ts.md).

## Definitions

- `DIGESTS` (lexical_declaration, line 5)
- `DOCUMENT_LAYER` (lexical_declaration, line 7, exported)

## Source

```typescript
import type { CanonLayer } from "../../types/writing.types.ts";
import { LAYER_TITLES } from "../strings/writing.strings.ts";
import { relativePath } from "@ssot/paths";

const DIGESTS = `${relativePath("claude.root")}/rules`;

export const DOCUMENT_LAYER: CanonLayer = {
    covers: ["guides, references, protocols and checklists", "plans and rule digests", "internal documentation"],
    defersTo: [
        { covers: "document types, frontmatter and placement", path: `${DIGESTS}/doc-arch.md` },
        { covers: "the internal voice", path: `${DIGESTS}/content-strings.md` },
    ],
    id: "document",
    intro: "A document is read by the developer and by the model, often cold, so it states what is true now and where each claim comes from.",
    rules: [
        {
            bans: [
                "a claim about the tree that was not read in the current session",
                "a history of how the text changed",
            ],
            checks: [],
            conditions: ["a document that disagrees with the tree is corrected the same turn"],
            examples: [],
            gate: null,
            id: "document.true-now",
            rule: "A document states what is true now.",
            why: "A stale document is read as current.",
        },
        {
            bans: [
                "corporate register",
                "grandiose labels",
                "a preamble",
                "capitals, emoji or warning symbols used for emphasis",
            ],
            checks: [],
            conditions: [
                "sentence case, with identifiers, paths and product names exact",
                "the voice follows the audience and not the casing, so a note about a strings file is internal text while the values in the file are copy",
            ],
            examples: [
                {
                    rejected: "🚨 THE ONLY THING THAT IS TRUE IS WHAT IS ON DISK 🚨",
                    repaired: "The disk is the only truth",
                    why: "The emoji and capitals raise the volume and add no fact.",
                },
            ],
            gate: null,
            id: "document.internal-voice",
            rule: "Internal text uses short, exact sentences.",
            why: "The reader needs the path and the fact, not a tone.",
        },
    ],
    title: LAYER_TITLES.document,
};
```
