Overview
This route uses document-type namespacing (`/knowledge/articles/[slug]`) to avoid collisions with glossary and FAQ namespaces.
Implementation notes
Data loading remains decoupled from templates. Content contracts are resolved in the content layer before rendering and should feed this template with typed props.