# leodanogg/genesis architecture

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

- Interactive diagram: https://gitdiagram.com/leodanogg/genesis
- Repository: https://github.com/leodanogg/genesis

## Overview

Genesis is a Bash CLI for scaffolding C or Python workspaces and synchronizing C source lists into project files. The documented workflow starts with the user choosing interactive, fast, or sync mode; scaffold mode applies settings, optionally clones a repository, and creates selected language-specific and documentation files. Sync scans root-level C files and updates marked regions in existing files. The repository tree exposes only the script and configuration file, so implementation details and finer-grained call ownership are not verified; relationships below reflect README documentation.

Main entry points: [`genesis.sh`](https://github.com/leodanogg/genesis/blob/main/genesis.sh) (Genesis CLI), [`genesis.conf`](https://github.com/leodanogg/genesis/blob/main/genesis.conf) (Defaults config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["CLI and settings"]
  node_cli["Genesis CLI<br/>[genesis.sh]"]
  node_config["Defaults config<br/>[genesis.conf]"]
  node_wizard["Interactive wizard<br/>[genesis.sh]"]
end

subgraph group_scaffold["Workspace scaffolding"]
  node_repository["Repository clone<br/>[genesis.sh]"]
  node_git["Git repositories"]
  node_cfiles["C boilerplate<br/>[genesis.sh]"]
  node_pythonfiles["Python boilerplate<br/>[genesis.sh]"]
  node_readmegen["README template<br/>[genesis.sh]"]
end

subgraph group_sync["Source synchronization"]
  node_scanner["C source scan<br/>[genesis.sh]"]
  node_makefile["Makefile update<br/>[genesis.sh]"]
  node_readmeupdate["README list update<br/>[genesis.sh]"]
end

node_user(("User"))

node_user -->|"runs"| node_cli
node_cli -->|"starts wizard"| node_wizard
node_wizard -->|"reads defaults"| node_config
node_cli -->|"reads fast settings"| node_config
node_cli -->|"creates or clones"| node_repository
node_repository -->|"clones from"| node_git
node_cli -->|"generates C files"| node_cfiles
node_cli -->|"generates Python files"| node_pythonfiles
node_cli -->|"generates documentation"| node_readmegen
node_cli -->|"scans C files"| node_scanner
node_scanner -->|"updates marked list"| node_makefile
node_scanner -->|"updates marked list"| node_readmeupdate

click node_cli "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_config "https://github.com/leodanogg/genesis/blob/main/genesis.conf"
click node_wizard "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_repository "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_cfiles "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_pythonfiles "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_readmegen "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_scanner "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_makefile "https://github.com/leodanogg/genesis/blob/main/genesis.sh"
click node_readmeupdate "https://github.com/leodanogg/genesis/blob/main/genesis.sh"

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_config,node_wizard,node_user toneBlue
class node_repository,node_git,node_cfiles,node_pythonfiles,node_readmegen toneAmber
class node_scanner,node_makefile,node_readmeupdate toneMint
```

## Components

### CLI and settings

- [Genesis CLI](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- [Defaults config](https://github.com/leodanogg/genesis/blob/main/genesis.conf): `genesis.conf`
- [Interactive wizard](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`

### Workspace scaffolding

- [Repository clone](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- **Git repositories**
- [C boilerplate](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- [Python boilerplate](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- [README template](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`

### Source synchronization

- [C source scan](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- [Makefile update](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`
- [README list update](https://github.com/leodanogg/genesis/blob/main/genesis.sh): `genesis.sh`

### Other components

- **User**

## Connections

- User → Genesis CLI: runs (evidence: `README.md`)
- Genesis CLI → Interactive wizard: starts wizard (evidence: `README.md`)
- Interactive wizard → Defaults config: reads defaults (evidence: `README.md`)
- Genesis CLI → Defaults config: reads fast settings (evidence: `README.md`)
- Genesis CLI → Repository clone: creates or clones (evidence: `README.md`)
- Repository clone → Git repositories: clones from (evidence: `README.md`)
- Genesis CLI → C boilerplate: generates C files (evidence: `README.md`)
- Genesis CLI → Python boilerplate: generates Python files (evidence: `README.md`)
- Genesis CLI → README template: generates documentation (evidence: `README.md`)
- Genesis CLI → C source scan: scans C files (evidence: `README.md`)
- C source scan → Makefile update: updates marked list (evidence: `README.md`)
- C source scan → README list update: updates marked list (evidence: `README.md`)
