# pyssporg/pyssp_sysml2 architecture

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

- Interactive diagram: https://gitdiagram.com/pyssporg/pyssp_sysml2
- Repository: https://github.com/pyssporg/pyssp_sysml2

## Overview

pyssp_sysml2 turns SysML architectures or SSDs into SSP-family artifacts, and can sync SSD wiring edits back to SysML. The public workflow is driven by the CLI: generate SSD, parameter-set SSVs and mappings, package an SSP, or produce analysis artifacts; SSDs can also bootstrap SysML. The graph preserves those documented capabilities and the sampled parameter-synthesis layer. Several subsystem internals were not sampled, so their documented connections are shown without implying additional call order.

Main entry points: [`src/pyssp_sysml2/cli.py`](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/cli.py) (CLI), [`src/pyssp_sysml2/artifacts/ssd.py`](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssd.py) (SSD generator), [`src/pyssp_sysml2/artifacts/ssp.py`](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssp.py) (SSP packager), [`src/pyssp_sysml2/artifacts/analysis.py`](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/analysis.py) (Analysis artifacts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Public interface"]
  node_cli["CLI<br/>[cli.py]"]
end

subgraph group_artifacts["Artifact generation"]
  node_ssdgen["SSD generator<br/>[ssd.py]"]
  node_ssvgen["SSV generator<br/>[ssv.py]"]
  node_ssmgen["SSM generator<br/>[ssm.py]"]
  node_sspgen["SSP packager<br/>[ssp.py]"]
  node_analysisgen["Analysis artifacts<br/>[analysis.py]"]
  node_paths["Path helpers<br/>[paths.py]"]
end

subgraph group_parameters["Parameter synthesis"]
  node_synthesis_inputs["SSP input reader<br/>[inputs.py]"]
  node_synthesis_application["Binding resolver<br/>[application.py]"]
  node_synthesis_generation["Dialect synthesis<br/>[generation.py]"]
  node_synthesis_interfaces["Interface synthesis<br/>[interfaces.py]"]
end

subgraph group_sysml["SysML exchange"]
  node_sysml_generate["SysML bootstrap<br/>[generate.py]"]
  node_sysml_sync["SSD sync<br/>[sync.py]"]
end

node_user(("Package user"))
node_ssd_file["SSD file"]
node_ssv_files["SSV files"]
node_ssm_files["SSM files"]
node_ssp_archive["SSP archive"]
node_analysis_files["Analysis outputs"]
node_sysml_model["SysML model"]

node_user -->|"invokes"| node_cli
node_cli -->|"dispatches"| node_ssdgen
node_cli -->|"dispatches"| node_ssvgen
node_cli -->|"dispatches"| node_ssmgen
node_cli -->|"dispatches"| node_sspgen
node_cli -->|"dispatches"| node_analysisgen
node_cli -->|"dispatches"| node_sysml_generate
node_cli -->|"dispatches"| node_sysml_sync
node_ssdgen -->|"writes"| node_ssd_file
node_ssvgen -->|"writes"| node_ssv_files
node_ssmgen -->|"writes"| node_ssm_files
node_analysisgen -->|"writes"| node_analysis_files
node_sspgen -->|"packages"| node_ssp_archive
node_ssd_file -->|"packages SSD"| node_sspgen
node_ssv_files -->|"packages SSVs"| node_sspgen
node_ssd_file -->|"bootstraps"| node_sysml_generate
node_ssd_file -->|"syncs edits"| node_sysml_sync
node_sysml_sync -->|"updates"| node_sysml_model
node_synthesis_generation -->|"reads inputs"| node_synthesis_inputs
node_synthesis_generation -->|"uses resolver"| node_synthesis_application
node_synthesis_generation -->|"uses interfaces"| node_synthesis_interfaces
node_synthesis_application -->|"uses helpers"| node_synthesis_inputs
node_analysisgen -->|"writes SSV"| node_ssvgen
node_analysisgen -->|"uses paths"| node_paths
node_ssdgen -->|"uses paths"| node_paths
node_sspgen -->|"generates SSD"| node_ssdgen
node_sysml_generate -->|"uses SSD logic"| node_ssdgen
node_sysml_sync -->|"reuses helpers"| node_sysml_generate

click node_cli "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/cli.py"
click node_ssdgen "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssd.py"
click node_ssvgen "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssv.py"
click node_ssmgen "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssm.py"
click node_sspgen "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssp.py"
click node_analysisgen "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/analysis.py"
click node_paths "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/core/paths.py"
click node_synthesis_inputs "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/inputs.py"
click node_synthesis_application "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/application.py"
click node_synthesis_generation "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/generation.py"
click node_synthesis_interfaces "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/interfaces.py"
click node_sysml_generate "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/sysml/generate.py"
click node_sysml_sync "https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/sysml/sync.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_user toneBlue
class node_ssdgen,node_ssvgen,node_ssmgen,node_sspgen,node_analysisgen,node_paths toneAmber
class node_synthesis_inputs,node_synthesis_application,node_synthesis_generation,node_synthesis_interfaces toneMint
class node_sysml_generate,node_sysml_sync toneRose
class node_ssd_file,node_ssv_files,node_ssm_files,node_ssp_archive,node_analysis_files,node_sysml_model toneIndigo
```

## Components

### Public interface

- [CLI](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/cli.py): `src/pyssp_sysml2/cli.py`

### Artifact generation

- [SSD generator](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssd.py): `src/pyssp_sysml2/artifacts/ssd.py`
- [SSV generator](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssv.py): `src/pyssp_sysml2/artifacts/ssv.py`
- [SSM generator](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssm.py): `src/pyssp_sysml2/artifacts/ssm.py`
- [SSP packager](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/ssp.py): `src/pyssp_sysml2/artifacts/ssp.py`
- [Analysis artifacts](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/artifacts/analysis.py): `src/pyssp_sysml2/artifacts/analysis.py`
- [Path helpers](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/core/paths.py): `src/pyssp_sysml2/core/paths.py`

### Parameter synthesis

- [SSP input reader](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/inputs.py): `src/pyssp_sysml2/parameters/synthesis/inputs.py`
- [Binding resolver](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/application.py): `src/pyssp_sysml2/parameters/synthesis/application.py`
- [Dialect synthesis](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/generation.py): `src/pyssp_sysml2/parameters/synthesis/generation.py`
- [Interface synthesis](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/parameters/synthesis/interfaces.py): `src/pyssp_sysml2/parameters/synthesis/interfaces.py`

### SysML exchange

- [SysML bootstrap](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/sysml/generate.py): `src/pyssp_sysml2/sysml/generate.py`
- [SSD sync](https://github.com/pyssporg/pyssp_sysml2/blob/main/src/pyssp_sysml2/sysml/sync.py): `src/pyssp_sysml2/sysml/sync.py`

### Other components

- **Package user**
- **SSD file**
- **SSV files**
- **SSM files**
- **SSP archive**
- **Analysis outputs**
- **SysML model**

## Connections

- Package user → CLI: invokes (evidence: `README.md`)
- CLI → SSD generator: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → SSV generator: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → SSM generator: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → SSP packager: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → Analysis artifacts: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → SysML bootstrap: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- CLI → SSD sync: dispatches (evidence: `src/pyssp_sysml2/cli.py`)
- SSD generator → SSD file: writes (evidence: `README.md`)
- SSV generator → SSV files: writes (evidence: `src/pyssp_sysml2/artifacts/ssv.py`)
- SSM generator → SSM files: writes (evidence: `src/pyssp_sysml2/artifacts/ssm.py`)
- Analysis artifacts → Analysis outputs: writes (evidence: `src/pyssp_sysml2/artifacts/analysis.py`)
- SSP packager → SSP archive: packages (evidence: `README.md`)
- SSD file → SSP packager: packages SSD (evidence: `README.md`)
- SSV files → SSP packager: packages SSVs (evidence: `README.md`)
- SSD file → SysML bootstrap: bootstraps (evidence: `README.md`)
- SSD file → SSD sync: syncs edits (evidence: `README.md`)
- SSD sync → SysML model: updates (evidence: `README.md`)
- Dialect synthesis → SSP input reader: reads inputs (evidence: `src/pyssp_sysml2/parameters/synthesis/generation.py`)
- Dialect synthesis → Binding resolver: uses resolver (evidence: `src/pyssp_sysml2/parameters/synthesis/generation.py`)
- Dialect synthesis → Interface synthesis: uses interfaces (evidence: `src/pyssp_sysml2/parameters/synthesis/generation.py`)
- Binding resolver → SSP input reader: uses helpers (evidence: `src/pyssp_sysml2/parameters/synthesis/application.py`)
- Analysis artifacts → SSV generator: writes SSV (evidence: `src/pyssp_sysml2/artifacts/analysis.py`)
- Analysis artifacts → Path helpers: uses paths (evidence: `src/pyssp_sysml2/artifacts/analysis.py`)
- SSD generator → Path helpers: uses paths (evidence: `src/pyssp_sysml2/artifacts/ssd.py`)
- SSP packager → SSD generator: generates SSD (evidence: `README.md`)
- SysML bootstrap → SSD generator: uses SSD logic (evidence: `src/pyssp_sysml2/sysml/generate.py`)
- SSD sync → SysML bootstrap: reuses helpers (evidence: `src/pyssp_sysml2/sysml/sync.py`)
