--- # wikitool:template-unfilled - delete this line once the file is answered. language: en profile: none sections: links: Relationships footnotes: Footnotes --- # kb/ - Authoring Conventions of This Instance The decisions [kb/CONTRACT.md](CONTRACT.md) deliberately does not make. The contract holds what the code enforces and is identical in every instance; this file holds what *this* instance chooses, and no other instance has to agree with a word of it. **It binds all the same.** Everything below applies to every page under `kb/`, exactly as the contract does. The difference is ownership, not authority: a rule here is changed by editing this file, a rule there by changing the stack. Ready-made answers to every section below - including a complete German profile - are in [instructions/kb-profiles.md](../instructions/kb-profiles.md). That catalogue is a palette, not an enum: adopt an entry, adapt it, or write your own. What is written *here* is what holds. The frontmatter above is the one machine-read part. `sections:` names the headings the two generated regions render under. Safe to change at any time - each region is located by its marker pair, so a rename re-renders words and nothing else. ## Language Pages are written in **{language}** - the `language:` in this file's own frontmatter, and the one place that value is written down. This binds `kb/`, and inside the page type-specs (`types/entity.md`, `types/concept.md`, `types/source.md`, `types/comparison.md`) exactly the parts that become page text: each one's `## Template` block - the body skeleton every new page starts from - and the `layout:` titles that head a catalog section. Their authoring guidance around those is instruction to an agent, so it follows the control plane and stays English - the same prose/identifier cut [kb/CONTRACT.md](CONTRACT.md#language-and-identifiers) makes inside a page, applied one level up. Adopting this template into a non-English instance therefore means translating those blocks, not the whole file. `raw/` is untouched ([raw/CONTRACT.md](../raw/CONTRACT.md)). Two things follow from that value rather than being decided here, both stated once in [AGENTS.md § File naming](../AGENTS.md#file-naming): the control plane stays English whatever an instance writes its pages in, and an agent *speaks* the language named above. The first of those is not a setting this file withholds - it is not a setting at all. `language:` above is the only language value in the tree, and what it binds is page text; a control-plane document is English even when this instance wrote it for itself and never ships it. Why that is an architecture decision rather than an unset parameter: [docs/language-boundaries.md](../docs/language-boundaries.md). Which line is prose and which is an identifier - and therefore what is translated at all - is the contract's rule, not this file's: see [kb/CONTRACT.md § Language and identifiers](CONTRACT.md#language-and-identifiers). {Which established foreign-language technical terms stay untranslated inside this instance's prose, and where the vocabulary for that is looked up. Delete this paragraph if the KB language is the one those terms are already in.} ### Section headings The two generated regions render under the frontmatter's headings. An author never writes inside them - they are rebuilt from frontmatter on every write. Any *other* heading is ordinary prose. ## Naming - {Title form - words and spaces, or kebab-case, or the subject's own spelling.} - {Singular or plural for entities.} - {How a comparison page's title reads.} - {The ADR prefix, if this instance files decisions as pages.} - {What to name a thing: projects, systems, tools, technologies, people.} The one naming fact that is *not* a choice, and therefore lives in the contract: the filename stem is the page title, and `[[wikilinks]]` must match it exactly. ## Tone {The register pages are written in, in one line.} - {Words and constructions this instance refuses, with examples in the KB language.} Good: {one sentence that is what this instance wants.} Bad: {the same sentence written the way it must not be.} ## Relationship labels **Not this file's to list, and not localized.** A label is a machine value in `related:`, drawn from [instructions/link-taxonomy.md](../instructions/link-taxonomy.md) and authorised per destination in each `kb//COLLECTION.md`'s `outbound:` block. ## Hedging Hedge according to what the sources actually carry, not against a numeric score. {How this instance signals general knowledge (`provenance: general`, no `sources:`) versus a sourced claim, in the KB language.} {How this instance's prose distinguishes a claim resting on a `normative`-standing source (`raw/CONTRACT.md`'s `authority` axis) from one resting on `opinion`, and how it signals disagreement between sources.} ## Keeping this file honest Change it when a convention actually changes. `wikitool doctor` FAILs on a missing or unfilled file, and `wikitool docs verify` refuses a `sections:` block that does not name both regions.