ContractsPlatform Contracts
Vitruvyan Docs
Docs Federation Contract V1
Last Updated: February 26, 2026
Scope: Cross-VPS documentation federation (producer nodes -> core hub)
Status: Active
Purpose
Define a single contract for documentation produced on any VPS so it can be:
- routed to the correct KB section (core or vertical),
- indexed consistently,
- published by MkDocs on the core hub node.
Federation Model
- Producer nodes: any vertical/core VPS where docs are authored.
- Hub node: official
vitruvyan-coreinstallation (MkDocs + KB ingestion). - Flow: producer creates bundle -> hub ingests bundle -> MkDocs rebuild -> KB indexing refresh.
Required Front Matter
Each Markdown document SHOULD include front matter:
Notes:
scope=coremeans the document belongs to shared domain-agnostic core knowledge.scope=verticalmeans domain-specific knowledge;verticalis mandatory.- Missing fields can be backfilled by bundling scripts, but explicit metadata is preferred.
Routing Rules
scope=core->docs/knowledge_base/federated/core/<source_repo>/<original_path>.mdscope=vertical->docs/knowledge_base/federated/verticals/<vertical>/<source_repo>/<original_path>.md
Hub Index Pages
The ingestion step maintains:
docs/knowledge_base/federated/README.mddocs/knowledge_base/federated/core/README.mddocs/knowledge_base/federated/verticals/README.mddocs/knowledge_base/federated/verticals/<vertical>/README.md
These pages are the stable MkDocs navigation targets.
MkDocs Contract
infrastructure/docker/mkdocs/mkdocs.yml must contain a federated nav block:
The ingest script owns this block and updates it idempotently.
Operational Scripts
- Producer:
scripts/docs/publish_docs.shscripts/docs/federate_docs.py bundle
- Hub:
scripts/docs/ingest_incoming_bundle.shscripts/docs/federate_docs.py ingest
Non-Goals
- No bidirectional merge between hubs.
- No direct edits on generated federated paths.
- No hidden routing logic outside this contract.