# sunniie/nexcanvas-drawio architecture

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

- Interactive diagram: https://gitdiagram.com/sunniie/nexcanvas-drawio
- Repository: https://github.com/sunniie/nexcanvas-drawio

## Overview

NexCanvas turns a brief or repository into an evidence-backed semantic diagram model, builds an editable Draw.io artifact, and checks its rendered quality before postflight seals delivery hashes. The README documents additional repository-sync, asset, extension, conformance, benchmark, and stable-contract capabilities. Pipeline and builder excerpts support some stage wiring; other subsystem links are limited to documented responsibilities because their implementations were not sampled.

Main entry points: [`src/nexcanvas/pipeline.py`](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/pipeline.py) (Stage pipeline), [`src/nexcanvas/builder.py`](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/builder.py) (Draw.io builder), [`src/nexcanvas/rendering.py`](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/rendering.py) (Rendering), [`src/nexcanvas/cli.py`](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/cli.py) (CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Diagram workflow"]
  node_cli["CLI<br/>[cli.py]"]
  node_pipeline["Stage pipeline<br/>[pipeline.py]"]
  node_project["Project state<br/>[project.py]"]
  node_layout["Geometry and routing<br/>[layout.py]"]
  node_builder["Draw.io builder<br/>[builder.py]"]
  node_artifact["Editable Draw.io"]
end

subgraph group_model["Semantic modeling"]
  node_intent["Intent and routing<br/>[intents.py]"]
  node_planning["Layout planning<br/>[planning.py]"]
  node_modelv3["Semantic model<br/>[model_v3.py]"]
  node_contracts["Model contracts<br/>[contracts.py]"]
end

subgraph group_quality["Quality and rendering"]
  node_quality["Diagram QA<br/>[quality.py]"]
  node_geometry["Collision QA<br/>[geometry.py]"]
  node_rendering["Rendering<br/>[rendering.py]"]
  node_visual["Visual inspection<br/>[visual.py]"]
  node_postflight["Delivery postflight<br/>[postflight.py]"]
end

subgraph group_capabilities["Supporting capabilities"]
  node_repoanalysis["Repository analysis"]
  node_repoevidence["Evidence verification<br/>[repository.py]"]
  node_sync["Semantic sync<br/>[semantic_sync.py]"]
  node_assets["Asset management<br/>[assets.py]"]
  node_extensions["Trusted extensions<br/>[extensions.py]"]
  node_conformance["Agent conformance<br/>[conformance.py]"]
  node_benchmarks["Visual benchmarks<br/>[benchmarks.py]"]
end

node_requester(("Engineer or agent"))
node_drawio["Draw.io Desktop"]

node_requester -->|"requests diagram"| node_cli
node_cli -->|"runs stages"| node_pipeline
node_pipeline -->|"tracks state"| node_project
node_pipeline -->|"resolves view"| node_intent
node_pipeline -->|"brainstorms layout"| node_planning
node_pipeline -->|"places elements"| node_layout
node_pipeline -->|"builds artifact"| node_builder
node_pipeline -->|"checks model"| node_quality
node_pipeline -->|"checks collisions"| node_geometry
node_pipeline -->|"renders preview"| node_rendering
node_pipeline -->|"reviews preview"| node_visual
node_pipeline -->|"seals delivery"| node_postflight
node_intent -->|"sets view intent"| node_modelv3
node_planning -->|"selects composition"| node_layout
node_layout -->|"provides geometry"| node_builder
node_builder -->|"embeds local assets"| node_assets
node_builder -->|"writes XML"| node_artifact
node_builder -.->|"loads adapters"| node_extensions
node_pipeline -->|"validates contracts"| node_contracts
node_cli -->|"analyzes repository"| node_repoanalysis
node_repoanalysis -->|"pins source facts"| node_repoevidence
node_repoanalysis -->|"projects semantic changes"| node_sync
node_sync -->|"merges semantics"| node_modelv3
node_repoevidence -->|"verifies evidence"| node_contracts
node_rendering -->|"reads diagram"| node_artifact
node_rendering -->|"renders through"| node_drawio
node_rendering -->|"produces preview"| node_visual
node_visual -->|"provides review"| node_postflight
node_conformance -.->|"supports host adapters"| node_extensions
node_benchmarks -.->|"gates quality"| node_quality

click node_cli "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/cli.py"
click node_pipeline "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/pipeline.py"
click node_project "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/project.py"
click node_intent "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/intents.py"
click node_planning "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/planning.py"
click node_modelv3 "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/model_v3.py"
click node_contracts "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/contracts.py"
click node_repoanalysis "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/repository_analysis.py"
click node_repoevidence "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/repository.py"
click node_sync "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/semantic_sync.py"
click node_assets "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/assets.py"
click node_extensions "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/extensions.py"
click node_layout "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/layout.py"
click node_builder "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/builder.py"
click node_quality "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/quality.py"
click node_geometry "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/geometry.py"
click node_rendering "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/rendering.py"
click node_visual "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/visual.py"
click node_postflight "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/postflight.py"
click node_conformance "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/conformance.py"
click node_benchmarks "https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/benchmarks.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_cli,node_pipeline,node_project,node_layout,node_builder,node_artifact toneBlue
class node_intent,node_planning,node_modelv3,node_contracts toneAmber
class node_quality,node_geometry,node_rendering,node_visual,node_postflight toneMint
class node_repoanalysis,node_repoevidence,node_sync,node_assets,node_extensions,node_conformance,node_benchmarks toneRose
class node_requester,node_drawio toneIndigo
```

## Components

### Diagram workflow

- [CLI](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/cli.py): `src/nexcanvas/cli.py`
- [Stage pipeline](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/pipeline.py): `src/nexcanvas/pipeline.py`
- [Project state](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/project.py): `src/nexcanvas/project.py`
- [Geometry and routing](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/layout.py): `src/nexcanvas/layout.py`
- [Draw.io builder](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/builder.py): `src/nexcanvas/builder.py`
- **Editable Draw.io**

### Semantic modeling

- [Intent and routing](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/intents.py): `src/nexcanvas/intents.py`
- [Layout planning](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/planning.py): `src/nexcanvas/planning.py`
- [Semantic model](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/model_v3.py): `src/nexcanvas/model_v3.py`
- [Model contracts](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/contracts.py): `src/nexcanvas/contracts.py`

### Quality and rendering

- [Diagram QA](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/quality.py): `src/nexcanvas/quality.py`
- [Collision QA](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/geometry.py): `src/nexcanvas/geometry.py`
- [Rendering](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/rendering.py): `src/nexcanvas/rendering.py`
- [Visual inspection](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/visual.py): `src/nexcanvas/visual.py`
- [Delivery postflight](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/postflight.py): `src/nexcanvas/postflight.py`

### Supporting capabilities

- [Repository analysis](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/repository_analysis.py): `src/nexcanvas/repository_analysis.py`
- [Evidence verification](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/repository.py): `src/nexcanvas/repository.py`
- [Semantic sync](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/semantic_sync.py): `src/nexcanvas/semantic_sync.py`
- [Asset management](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/assets.py): `src/nexcanvas/assets.py`
- [Trusted extensions](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/extensions.py): `src/nexcanvas/extensions.py`
- [Agent conformance](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/conformance.py): `src/nexcanvas/conformance.py`
- [Visual benchmarks](https://github.com/sunniie/nexcanvas-drawio/blob/main/src/nexcanvas/benchmarks.py): `src/nexcanvas/benchmarks.py`

### Other components

- **Engineer or agent**
- **Draw.io Desktop**

## Connections

- Engineer or agent → CLI: requests diagram
- CLI → Stage pipeline: runs stages
- Stage pipeline → Project state: tracks state
- Stage pipeline → Intent and routing: resolves view
- Stage pipeline → Layout planning: brainstorms layout
- Stage pipeline → Geometry and routing: places elements
- Stage pipeline → Draw.io builder: builds artifact
- Stage pipeline → Diagram QA: checks model
- Stage pipeline → Collision QA: checks collisions
- Stage pipeline → Rendering: renders preview
- Stage pipeline → Visual inspection: reviews preview
- Stage pipeline → Delivery postflight: seals delivery
- Intent and routing → Semantic model: sets view intent
- Layout planning → Geometry and routing: selects composition
- Geometry and routing → Draw.io builder: provides geometry
- Draw.io builder → Asset management: embeds local assets
- Draw.io builder → Editable Draw.io: writes XML
- Draw.io builder → Trusted extensions: loads adapters
- Stage pipeline → Model contracts: validates contracts
- CLI → Repository analysis: analyzes repository
- Repository analysis → Evidence verification: pins source facts
- Repository analysis → Semantic sync: projects semantic changes
- Semantic sync → Semantic model: merges semantics
- Evidence verification → Model contracts: verifies evidence
- Rendering → Editable Draw.io: reads diagram
- Rendering → Draw.io Desktop: renders through
- Rendering → Visual inspection: produces preview
- Visual inspection → Delivery postflight: provides review
- Agent conformance → Trusted extensions: supports host adapters
- Visual benchmarks → Diagram QA: gates quality
