# caidensilverstein-svg/corvus architecture

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

- Interactive diagram: https://gitdiagram.com/caidensilverstein-svg/corvus
- Repository: https://github.com/caidensilverstein-svg/corvus

## Overview

Corvus detects the host platform, selects compatible tools from its static matrix, then previews or installs them through the native package manager and reports the outcome. The CLI also supports listing, category/tool filtering, dry runs, matrix-hash verification, and optional package-index synchronization. The graph follows the sampled Python call sites; package-manager execution is an external boundary. The matrix and report files are shown as persisted data. Installation internals are summarized at the installer component rather than split into unsampled helpers.

Main entry points: [`corvus/cli.py`](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/cli.py) (CLI orchestration), [`corvus/installer.py`](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/installer.py) (Install and conflicts), [`main.py`](https://github.com/caidensilverstein-svg/corvus/blob/main/main.py) (Python entry point), [`corvus/matrix.py`](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/matrix.py) (Tool matrix)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User workflow"]
  node_entrypoint["Python entry point<br/>[main.py]"]
  node_cli["CLI orchestration<br/>[cli.py]"]
end

subgraph group_catalog["Platform and catalog"]
  node_platform["Platform detection<br/>[detect.py]"]
  node_catalogue["Tool matrix<br/>[matrix.py]"]
  node_matrixdata["Tool definitions<br/>[tools.json]"]
end

subgraph group_install["Installation"]
  node_installer["Install and conflicts<br/>[installer.py]"]
  node_packagemgr["Native package manager"]
  node_rollback["Rollback log<br/>[installer.py]"]
end

subgraph group_results["Reporting"]
  node_reporter["Report generator<br/>[report.py]"]
  node_reportfile["Last-run report<br/>[report.py]"]
end

node_user(("Operator"))

node_user -->|"runs"| node_entrypoint
node_entrypoint -->|"calls"| node_cli
node_cli -->|"detects host"| node_platform
node_cli -->|"selects tools"| node_catalogue
node_catalogue -->|"loads"| node_matrixdata
node_cli -->|"hashes"| node_matrixdata
node_cli -->|"runs install"| node_installer
node_installer -->|"executes commands"| node_packagemgr
node_installer -->|"appends entries"| node_rollback
node_cli -->|"generates report"| node_reporter
node_reporter -->|"writes report"| node_reportfile

click node_entrypoint "https://github.com/caidensilverstein-svg/corvus/blob/main/main.py"
click node_cli "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/cli.py"
click node_platform "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/detect.py"
click node_catalogue "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/matrix.py"
click node_matrixdata "https://github.com/caidensilverstein-svg/corvus/blob/main/data/tools.json"
click node_installer "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/installer.py"
click node_rollback "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/installer.py"
click node_reporter "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/report.py"
click node_reportfile "https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/report.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_entrypoint,node_cli toneBlue
class node_platform,node_catalogue,node_matrixdata toneAmber
class node_installer,node_packagemgr,node_rollback toneMint
class node_reporter,node_reportfile toneRose
class node_user toneIndigo
```

## Components

### User workflow

- [Python entry point](https://github.com/caidensilverstein-svg/corvus/blob/main/main.py): `main.py`
- [CLI orchestration](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/cli.py): `corvus/cli.py`

### Platform and catalog

- [Platform detection](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/detect.py): `corvus/detect.py`
- [Tool matrix](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/matrix.py): `corvus/matrix.py`
- [Tool definitions](https://github.com/caidensilverstein-svg/corvus/blob/main/data/tools.json): `data/tools.json`

### Installation

- [Install and conflicts](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/installer.py): `corvus/installer.py`
- **Native package manager**
- [Rollback log](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/installer.py): `corvus/installer.py`

### Reporting

- [Report generator](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/report.py): `corvus/report.py`
- [Last-run report](https://github.com/caidensilverstein-svg/corvus/blob/main/corvus/report.py): `corvus/report.py`

### Other components

- **Operator**

## Connections

- Operator → Python entry point: runs (evidence: `README.md`)
- Python entry point → CLI orchestration: calls (evidence: `main.py`)
- CLI orchestration → Platform detection: detects host (evidence: `corvus/cli.py`)
- CLI orchestration → Tool matrix: selects tools (evidence: `corvus/cli.py`)
- Tool matrix → Tool definitions: loads (evidence: `corvus/matrix.py`)
- CLI orchestration → Tool definitions: hashes (evidence: `corvus/cli.py`)
- CLI orchestration → Install and conflicts: runs install (evidence: `corvus/cli.py`)
- Install and conflicts → Native package manager: executes commands (evidence: `corvus/installer.py`)
- Install and conflicts → Rollback log: appends entries (evidence: `corvus/installer.py`)
- CLI orchestration → Report generator: generates report (evidence: `corvus/cli.py`)
- Report generator → Last-run report: writes report (evidence: `corvus/report.py`)
