# dzentec/sia_mkp architecture

> Architecture diagram of the GitHub repository dzentec/sia_mkp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dzentec/sia_mkp
- Repository: https://github.com/dzentec/sia_mkp

## Overview

MKP-R turns maritime PDFs, EPUBs, and DOCX files into signed knowledge bookpacks, then serves onboard search and telemetry-matched rules to an MCP-connected yacht adviser. The documented builder stages and server capabilities are represented; source excerpts are partial, so uncertain internal wiring is omitted. The README describes yacht, voyage, and personal content tiers as stubs.

Main entry points: [`src/mkp_builder/pipeline.py`](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/pipeline.py) (Build orchestrator), [`src/mkp_server/server.py`](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/server.py) (MCP tools), [`src/mkp_builder/exporter.py`](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/exporter.py) (Bookpack export), [`src/mkp_builder/parsers`](https://github.com/dzentec/sia_mkp/tree/master/src/mkp_builder/parsers) (Document parsing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_builder["Offline bookpack builder"]
  node_pipeline["Build orchestrator<br/>[pipeline.py]"]
  node_parsers["Document parsing"]
  node_ocr["OCR processing<br/>[ocr.py]"]
  node_image_filter["Image filtering"]
  node_vlm["VLM annotation<br/>[annotator.py]"]
  node_verification["Visual verification<br/>[verifier.py]"]
  node_chunker["Section chunking<br/>[chunker.py]"]
  node_triplets["Triplet extraction<br/>[triplets.py]"]
  node_claims["Claims extraction<br/>[claims.py]"]
  node_synthesis["Rule synthesis<br/>[synthesize.py]"]
  node_review["Rule review<br/>[review.py]"]
  node_guardrails["Guardrail compilation<br/>[guardrails.py]"]
  node_signing["Pack signing<br/>[signer.py]"]
  node_exporter["Bookpack export<br/>[exporter.py]"]
end

subgraph group_server["Onboard knowledge server"]
  node_importer["Pack import<br/>[importer.py]"]
  node_lifecycle["Storage lifecycle<br/>[lifecycle.py]"]
  node_storage[("Pack storage<br/>[storage.py]")]
  node_search[("Hybrid search<br/>[search.py]")]
  node_knowledge_graph[("Knowledge graph<br/>[graph.py]")]
  node_rules[("Rule matching<br/>[rules_store.py]")]
  node_mcp["MCP tools<br/>[server.py]"]
end

subgraph group_advisor["Advisor experience"]
  node_advisor["SIA Advisor"]
end

node_source_docs(("Maritime documents"))
node_bookpack["Signed bookpack"]
node_skipper(("Skipper"))
node_telemetry["Yacht telemetry"]
node_ollama["Ollama models"]

node_source_docs -->|"provides inputs"| node_pipeline
node_pipeline -->|"parses via"| node_parsers
node_parsers -->|"uses when needed"| node_ocr
node_pipeline -->|"filters figures"| node_image_filter
node_pipeline -->|"annotates figures"| node_vlm
node_pipeline -->|"verifies annotations"| node_verification
node_pipeline -->|"chunks content"| node_chunker
node_pipeline -->|"extracts triplets"| node_triplets
node_pipeline -->|"extracts claims"| node_claims
node_pipeline -->|"synthesizes rules"| node_synthesis
node_pipeline -->|"supports review"| node_review
node_pipeline -->|"compiles guardrails"| node_guardrails
node_pipeline -->|"exports content"| node_exporter
node_exporter -->|"signs pack"| node_signing
node_exporter -->|"writes"| node_bookpack
node_ollama -.->|"serves inference"| node_pipeline
node_bookpack -->|"transfers to"| node_importer
node_importer -->|"applies update"| node_lifecycle
node_lifecycle -->|"manages tiers"| node_storage
node_storage -->|"provides active data"| node_mcp
node_mcp -->|"indexes and queries"| node_search
node_mcp -->|"serves graph tools"| node_knowledge_graph
node_mcp -->|"loads and queries"| node_rules
node_skipper -->|"asks questions"| node_advisor
node_advisor -->|"requests knowledge"| node_mcp
node_telemetry -->|"informs advice"| node_advisor

click node_pipeline "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/pipeline.py"
click node_parsers "https://github.com/dzentec/sia_mkp/tree/master/src/mkp_builder/parsers"
click node_ocr "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/ocr.py"
click node_image_filter "https://github.com/dzentec/sia_mkp/tree/master/src/mkp_builder/vlm"
click node_vlm "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/vlm/annotator.py"
click node_verification "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/vlm/verifier.py"
click node_chunker "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/chunker.py"
click node_triplets "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/triplets.py"
click node_claims "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/extract/claims.py"
click node_synthesis "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/synthesize/synthesize.py"
click node_review "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/review.py"
click node_guardrails "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/compile/guardrails.py"
click node_signing "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/export/signer.py"
click node_exporter "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/exporter.py"
click node_importer "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/importer.py"
click node_lifecycle "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/lifecycle.py"
click node_storage "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/storage.py"
click node_search "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/search.py"
click node_knowledge_graph "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/graph.py"
click node_rules "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/rules_store.py"
click node_mcp "https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/server.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pipeline,node_parsers,node_ocr,node_image_filter,node_vlm,node_verification,node_chunker,node_triplets,node_claims,node_synthesis,node_review,node_guardrails,node_signing,node_exporter toneBlue
class node_importer,node_lifecycle,node_storage,node_search,node_knowledge_graph,node_rules,node_mcp toneAmber
class node_advisor toneMint
class node_source_docs,node_bookpack,node_skipper,node_telemetry,node_ollama toneIndigo
```

## Components

### Offline bookpack builder

- [Build orchestrator](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/pipeline.py): `src/mkp_builder/pipeline.py`
- [Document parsing](https://github.com/dzentec/sia_mkp/tree/master/src/mkp_builder/parsers): `src/mkp_builder/parsers`
- [OCR processing](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/ocr.py): `src/mkp_builder/ocr.py`
- [Image filtering](https://github.com/dzentec/sia_mkp/tree/master/src/mkp_builder/vlm): `src/mkp_builder/vlm`
- [VLM annotation](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/vlm/annotator.py): `src/mkp_builder/vlm/annotator.py`
- [Visual verification](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/vlm/verifier.py): `src/mkp_builder/vlm/verifier.py`
- [Section chunking](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/chunker.py): `src/mkp_builder/chunker.py`
- [Triplet extraction](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/triplets.py): `src/mkp_builder/triplets.py`
- [Claims extraction](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/extract/claims.py): `src/mkp_builder/extract/claims.py`
- [Rule synthesis](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/synthesize/synthesize.py): `src/mkp_builder/synthesize/synthesize.py`
- [Rule review](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/review.py): `src/mkp_builder/review.py`
- [Guardrail compilation](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/compile/guardrails.py): `src/mkp_builder/compile/guardrails.py`
- [Pack signing](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/export/signer.py): `src/mkp_builder/export/signer.py`
- [Bookpack export](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_builder/exporter.py): `src/mkp_builder/exporter.py`

### Onboard knowledge server

- [Pack import](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/importer.py): `src/mkp_server/importer.py`
- [Storage lifecycle](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/lifecycle.py): `src/mkp_server/lifecycle.py`
- [Pack storage](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/storage.py): `src/mkp_server/storage.py`
- [Hybrid search](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/search.py): `src/mkp_server/search.py`
- [Knowledge graph](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/graph.py): `src/mkp_server/graph.py`
- [Rule matching](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/rules_store.py): `src/mkp_server/rules_store.py`
- [MCP tools](https://github.com/dzentec/sia_mkp/blob/master/src/mkp_server/server.py): `src/mkp_server/server.py`

### Advisor experience

- **SIA Advisor**

### Other components

- **Maritime documents**
- **Signed bookpack**
- **Skipper**
- **Yacht telemetry**
- **Ollama models**

## Connections

- Maritime documents → Build orchestrator: provides inputs
- Build orchestrator → Document parsing: parses via
- Document parsing → OCR processing: uses when needed
- Build orchestrator → Image filtering: filters figures
- Build orchestrator → VLM annotation: annotates figures
- Build orchestrator → Visual verification: verifies annotations
- Build orchestrator → Section chunking: chunks content
- Build orchestrator → Triplet extraction: extracts triplets
- Build orchestrator → Claims extraction: extracts claims
- Build orchestrator → Rule synthesis: synthesizes rules
- Build orchestrator → Rule review: supports review
- Build orchestrator → Guardrail compilation: compiles guardrails
- Build orchestrator → Bookpack export: exports content
- Bookpack export → Pack signing: signs pack
- Bookpack export → Signed bookpack: writes
- Ollama models → Build orchestrator: serves inference
- Signed bookpack → Pack import: transfers to
- Pack import → Storage lifecycle: applies update
- Storage lifecycle → Pack storage: manages tiers
- Pack storage → MCP tools: provides active data
- MCP tools → Hybrid search: indexes and queries
- MCP tools → Knowledge graph: serves graph tools
- MCP tools → Rule matching: loads and queries
- Skipper → SIA Advisor: asks questions
- SIA Advisor → MCP tools: requests knowledge
- Yacht telemetry → SIA Advisor: informs advice
