# samkwibe/legacylift architecture

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

- Interactive diagram: https://gitdiagram.com/samkwibe/legacylift
- Repository: https://github.com/samkwibe/legacylift

## Overview

LegacyLift is a Streamlit code-modernization and mentorship app. A developer supplies code or a repository, chooses a provider and workflow, then receives analysis, a refactor or translation/security result, documentation, review, and generated tests; project walkthroughs and PDF reports are additional capabilities. The graph includes the documented capabilities even where implementation excerpts were unavailable. Edges from the UI to unsampled modules rely on app.py’s indexed references and the README workflow; provider calls are shown where client source demonstrates them. Other unsampled relationships are omitted rather than inferred.

Main entry points: [`app.py`](https://github.com/samkwibe/legacylift/blob/main/app.py) (Streamlit App), [`core/nvidia_client.py`](https://github.com/samkwibe/legacylift/blob/main/core/nvidia_client.py) (NVIDIA Client), [`core/gemini_client.py`](https://github.com/samkwibe/legacylift/blob/main/core/gemini_client.py) (Gemini Client), [`core/documenter.py`](https://github.com/samkwibe/legacylift/blob/main/core/documenter.py) (Code Documentation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User Experience"]
  node_streamlit_app["Streamlit App<br/>[app.py]"]
  node_theme["Glass UI Theme<br/>[ui_theme.py]"]
end

subgraph group_code_workflows["Code Workflows"]
  node_static_analysis["Static Analysis<br/>[analyzer.py]"]
  node_refactoring["Code Refactoring<br/>[refactor.py]"]
  node_security_audit["Security Audit<br/>[security.py]"]
  node_translation["Code Translation<br/>[translator.py]"]
  node_documentation["Code Documentation<br/>[documenter.py]"]
  node_code_review["Code Review<br/>[explainer.py]"]
  node_test_generation["Test Generation<br/>[test_generator.py]"]
  node_prompt_library["Prompt Library<br/>[prompts.py]"]
end

subgraph group_project_tools["Project Tools"]
  node_zip_parser["ZIP Ingestion<br/>[zip_parser.py]"]
  node_github_import["GitHub Import"]
  node_project_scan["Project Scanner"]
  node_pdf_export["PDF Export<br/>[pdf_export.py]"]
  node_pdf_report["PDF Report<br/>[pdf_export.py]"]
end

subgraph group_ai_services["AI Services"]
  node_gemini_client["Gemini Client<br/>[gemini_client.py]"]
  node_nvidia_client["NVIDIA Client<br/>[nvidia_client.py]"]
  node_external_llms{{"External LLMs"}}
  node_github_service{{"GitHub"}}
end

node_developer(("Developer"))

node_developer -->|"submits code"| node_streamlit_app
node_streamlit_app -->|"renders with"| node_theme
node_streamlit_app -.->|"requests analysis"| node_static_analysis
node_streamlit_app -->|"requests refactor"| node_refactoring
node_streamlit_app -->|"requests audit"| node_security_audit
node_streamlit_app -->|"requests translation"| node_translation
node_streamlit_app -->|"requests docs"| node_documentation
node_streamlit_app -.->|"requests review"| node_code_review
node_streamlit_app -.->|"requests tests"| node_test_generation
node_streamlit_app -.->|"parses upload"| node_zip_parser
node_streamlit_app -.->|"loads repository"| node_github_import
node_streamlit_app -.->|"requests walkthrough"| node_project_scan
node_streamlit_app -.->|"exports report"| node_pdf_export
node_refactoring -->|"formats prompt"| node_prompt_library
node_documentation -->|"formats prompt"| node_prompt_library
node_code_review -->|"formats prompt"| node_prompt_library
node_project_scan -->|"formats prompt"| node_prompt_library
node_refactoring -->|"calls provider"| node_gemini_client
node_documentation -->|"calls provider"| node_gemini_client
node_code_review -->|"calls provider"| node_gemini_client
node_project_scan -->|"calls provider"| node_gemini_client
node_security_audit -->|"calls provider"| node_nvidia_client
node_translation -->|"calls provider"| node_nvidia_client
node_documentation -->|"calls provider"| node_nvidia_client
node_code_review -->|"calls provider"| node_nvidia_client
node_project_scan -->|"calls provider"| node_nvidia_client
node_gemini_client -->|"sends request"| node_external_llms
node_nvidia_client -->|"sends request"| node_external_llms
node_github_import -.->|"clones repository"| node_github_service
node_pdf_export -.->|"generates"| node_pdf_report

click node_streamlit_app "https://github.com/samkwibe/legacylift/blob/main/app.py"
click node_theme "https://github.com/samkwibe/legacylift/blob/main/core/ui_theme.py"
click node_static_analysis "https://github.com/samkwibe/legacylift/blob/main/core/analyzer.py"
click node_refactoring "https://github.com/samkwibe/legacylift/blob/main/core/refactor.py"
click node_security_audit "https://github.com/samkwibe/legacylift/blob/main/core/security.py"
click node_translation "https://github.com/samkwibe/legacylift/blob/main/core/translator.py"
click node_documentation "https://github.com/samkwibe/legacylift/blob/main/core/documenter.py"
click node_code_review "https://github.com/samkwibe/legacylift/blob/main/core/explainer.py"
click node_test_generation "https://github.com/samkwibe/legacylift/blob/main/core/test_generator.py"
click node_prompt_library "https://github.com/samkwibe/legacylift/blob/main/core/prompts.py"
click node_zip_parser "https://github.com/samkwibe/legacylift/blob/main/core/zip_parser.py"
click node_github_import "https://github.com/samkwibe/legacylift/blob/main/core/github_integration.py"
click node_project_scan "https://github.com/samkwibe/legacylift/blob/main/core/project_analyzer.py"
click node_pdf_export "https://github.com/samkwibe/legacylift/blob/main/core/pdf_export.py"
click node_gemini_client "https://github.com/samkwibe/legacylift/blob/main/core/gemini_client.py"
click node_nvidia_client "https://github.com/samkwibe/legacylift/blob/main/core/nvidia_client.py"
click node_pdf_report "https://github.com/samkwibe/legacylift/blob/main/core/pdf_export.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_streamlit_app,node_theme toneBlue
class node_static_analysis,node_refactoring,node_security_audit,node_translation,node_documentation,node_code_review,node_test_generation,node_prompt_library toneAmber
class node_zip_parser,node_github_import,node_project_scan,node_pdf_export,node_pdf_report toneMint
class node_gemini_client,node_nvidia_client,node_external_llms,node_github_service toneRose
class node_developer toneIndigo
```

## Components

### User Experience

- [Streamlit App](https://github.com/samkwibe/legacylift/blob/main/app.py): `app.py`
- [Glass UI Theme](https://github.com/samkwibe/legacylift/blob/main/core/ui_theme.py): `core/ui_theme.py`

### Code Workflows

- [Static Analysis](https://github.com/samkwibe/legacylift/blob/main/core/analyzer.py): `core/analyzer.py`
- [Code Refactoring](https://github.com/samkwibe/legacylift/blob/main/core/refactor.py): `core/refactor.py`
- [Security Audit](https://github.com/samkwibe/legacylift/blob/main/core/security.py): `core/security.py`
- [Code Translation](https://github.com/samkwibe/legacylift/blob/main/core/translator.py): `core/translator.py`
- [Code Documentation](https://github.com/samkwibe/legacylift/blob/main/core/documenter.py): `core/documenter.py`
- [Code Review](https://github.com/samkwibe/legacylift/blob/main/core/explainer.py): `core/explainer.py`
- [Test Generation](https://github.com/samkwibe/legacylift/blob/main/core/test_generator.py): `core/test_generator.py`
- [Prompt Library](https://github.com/samkwibe/legacylift/blob/main/core/prompts.py): `core/prompts.py`

### Project Tools

- [ZIP Ingestion](https://github.com/samkwibe/legacylift/blob/main/core/zip_parser.py): `core/zip_parser.py`
- [GitHub Import](https://github.com/samkwibe/legacylift/blob/main/core/github_integration.py): `core/github_integration.py`
- [Project Scanner](https://github.com/samkwibe/legacylift/blob/main/core/project_analyzer.py): `core/project_analyzer.py`
- [PDF Export](https://github.com/samkwibe/legacylift/blob/main/core/pdf_export.py): `core/pdf_export.py`
- [PDF Report](https://github.com/samkwibe/legacylift/blob/main/core/pdf_export.py): `core/pdf_export.py`

### AI Services

- [Gemini Client](https://github.com/samkwibe/legacylift/blob/main/core/gemini_client.py): `core/gemini_client.py`
- [NVIDIA Client](https://github.com/samkwibe/legacylift/blob/main/core/nvidia_client.py): `core/nvidia_client.py`
- **External LLMs**
- **GitHub**

### Other components

- **Developer**

## Connections

- Developer → Streamlit App: submits code (evidence: `README.md`)
- Streamlit App → Glass UI Theme: renders with (evidence: `app.py`)
- Streamlit App → Static Analysis: requests analysis (evidence: `app.py`)
- Streamlit App → Code Refactoring: requests refactor (evidence: `app.py`)
- Streamlit App → Security Audit: requests audit (evidence: `app.py`)
- Streamlit App → Code Translation: requests translation (evidence: `app.py`)
- Streamlit App → Code Documentation: requests docs (evidence: `app.py`)
- Streamlit App → Code Review: requests review (evidence: `app.py`)
- Streamlit App → Test Generation: requests tests (evidence: `app.py`)
- Streamlit App → ZIP Ingestion: parses upload (evidence: `app.py`)
- Streamlit App → GitHub Import: loads repository (evidence: `app.py`)
- Streamlit App → Project Scanner: requests walkthrough (evidence: `app.py`)
- Streamlit App → PDF Export: exports report (evidence: `app.py`)
- Code Refactoring → Prompt Library: formats prompt (evidence: `core/refactor.py`)
- Code Documentation → Prompt Library: formats prompt (evidence: `core/documenter.py`)
- Code Review → Prompt Library: formats prompt (evidence: `core/explainer.py`)
- Project Scanner → Prompt Library: formats prompt (evidence: `core/project_analyzer.py`)
- Code Refactoring → Gemini Client: calls provider (evidence: `core/refactor.py`)
- Code Documentation → Gemini Client: calls provider (evidence: `core/documenter.py`)
- Code Review → Gemini Client: calls provider (evidence: `core/explainer.py`)
- Project Scanner → Gemini Client: calls provider (evidence: `core/project_analyzer.py`)
- Security Audit → NVIDIA Client: calls provider (evidence: `core/security.py`)
- Code Translation → NVIDIA Client: calls provider (evidence: `core/translator.py`)
- Code Documentation → NVIDIA Client: calls provider (evidence: `core/documenter.py`)
- Code Review → NVIDIA Client: calls provider (evidence: `core/explainer.py`)
- Project Scanner → NVIDIA Client: calls provider (evidence: `core/project_analyzer.py`)
- Gemini Client → External LLMs: sends request (evidence: `core/gemini_client.py`)
- NVIDIA Client → External LLMs: sends request (evidence: `core/nvidia_client.py`)
- GitHub Import → GitHub: clones repository
- PDF Export → PDF Report: generates (evidence: `core/pdf_export.py`)
