# cbarkinozer/repo-context architecture

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

- Interactive diagram: https://gitdiagram.com/cbarkinozer/repo-context
- Repository: https://github.com/cbarkinozer/repo-context

## Overview

This is a Streamlit suite and CLI for turning GitHub repositories or DeepWiki documentation into LLM-ready context, plus a repository health comparison tool. The main workflow accepts a repository URL and options, obtains and analyzes repository contents, then presents or saves the generated snapshot. A separate workflow gathers GitHub metrics and compares GPQS scores. DeepWiki scraping is another independent context-generation path. The core implementation excerpt is partial, so its documented filtering, tagging, metadata, and output stages are grouped rather than mapped to uncertain internal calls.

Main entry points: [`src/repo_context/core.py`](https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/core.py) (Repository context engine), [`pages/repo_comparison.py`](https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_comparison.py) (Comparison UI), [`pages/deep_wiki_generator.py`](https://github.com/cbarkinozer/repo-context/blob/main/pages/deep_wiki_generator.py) (DeepWiki scraper UI), [`pages/repo_context_generator.py`](https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_context_generator.py) (Context web UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_app_home["Tool landing page<br/>[app.py]"]
  node_context_ui["Context web UI"]
  node_cli["Context CLI<br/>[cli.py]"]
end

subgraph group_context["Context generation"]
  node_context_core["Repository context engine<br/>[core.py]"]
  node_context_output["Repository snapshot<br/>[core.py]"]
end

subgraph group_comparison["Repository comparison"]
  node_comparison_ui["Comparison UI<br/>[repo_comparison.py]"]
  node_gpqs["GPQS analysis and scoring<br/>[gpqs_calculator.py]"]
  node_comparison_results["Scores and metrics<br/>[repo_comparison.py]"]
end

subgraph group_wiki["DeepWiki context"]
  node_wiki_ui["DeepWiki scraper UI"]
  node_wiki_output["Wiki context text"]
end

node_user(("User"))
node_github_repo(("GitHub repository"))
node_github_api(("GitHub API"))
node_deepwiki_site(("DeepWiki site"))

node_user -->|"opens tools"| node_app_home
node_user -->|"configures"| node_context_ui
node_user -->|"runs command"| node_cli
node_user -->|"submits repositories"| node_comparison_ui
node_user -->|"submits URL"| node_wiki_ui
node_context_ui -->|"requests generation"| node_context_core
node_cli -->|"requests generation"| node_context_core
node_context_core -->|"clones or fetches"| node_github_repo
node_context_core -->|"builds snapshot"| node_context_output
node_context_core -->|"returns snapshot"| node_context_ui
node_context_ui -->|"previews or downloads"| node_user
node_context_core -->|"returns snapshot"| node_cli
node_cli -->|"prints or writes"| node_user
node_comparison_ui -->|"analyzes each URL"| node_gpqs
node_gpqs -->|"requests repository metrics"| node_github_api
node_gpqs -->|"returns scores and data"| node_comparison_ui
node_comparison_ui -->|"stores and formats"| node_comparison_results
node_comparison_ui -->|"displays comparison"| node_user
node_wiki_ui -->|"fetches pages"| node_deepwiki_site
node_wiki_ui -->|"compiles page content"| node_wiki_output
node_wiki_ui -->|"previews or downloads"| node_user

click node_app_home "https://github.com/cbarkinozer/repo-context/blob/main/app.py"
click node_context_ui "https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_context_generator.py"
click node_cli "https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/cli.py"
click node_context_core "https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/core.py"
click node_context_output "https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/core.py"
click node_comparison_ui "https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_comparison.py"
click node_gpqs "https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/gpqs_calculator.py"
click node_comparison_results "https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_comparison.py"
click node_wiki_ui "https://github.com/cbarkinozer/repo-context/blob/main/pages/deep_wiki_generator.py"
click node_wiki_output "https://github.com/cbarkinozer/repo-context/blob/main/pages/deep_wiki_generator.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_app_home,node_context_ui,node_cli,node_user toneBlue
class node_context_core,node_context_output toneAmber
class node_comparison_ui,node_gpqs,node_comparison_results,node_github_api toneMint
class node_wiki_ui,node_wiki_output toneRose
class node_github_repo,node_deepwiki_site toneIndigo
```

## Components

### User interfaces

- [Tool landing page](https://github.com/cbarkinozer/repo-context/blob/main/app.py): `app.py`
- [Context web UI](https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_context_generator.py): `pages/repo_context_generator.py`
- [Context CLI](https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/cli.py): `src/repo_context/cli.py`

### Context generation

- [Repository context engine](https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/core.py): `src/repo_context/core.py`
- [Repository snapshot](https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/core.py): `src/repo_context/core.py`

### Repository comparison

- [Comparison UI](https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_comparison.py): `pages/repo_comparison.py`
- [GPQS analysis and scoring](https://github.com/cbarkinozer/repo-context/blob/main/src/repo_context/gpqs_calculator.py): `src/repo_context/gpqs_calculator.py`
- [Scores and metrics](https://github.com/cbarkinozer/repo-context/blob/main/pages/repo_comparison.py): `pages/repo_comparison.py`

### DeepWiki context

- [DeepWiki scraper UI](https://github.com/cbarkinozer/repo-context/blob/main/pages/deep_wiki_generator.py): `pages/deep_wiki_generator.py`
- [Wiki context text](https://github.com/cbarkinozer/repo-context/blob/main/pages/deep_wiki_generator.py): `pages/deep_wiki_generator.py`

### Other components

- **User**
- **GitHub repository**
- **GitHub API**
- **DeepWiki site**

## Connections

- User → Tool landing page: opens tools
- User → Context web UI: configures
- User → Context CLI: runs command
- User → Comparison UI: submits repositories
- User → DeepWiki scraper UI: submits URL
- Context web UI → Repository context engine: requests generation
- Context CLI → Repository context engine: requests generation
- Repository context engine → GitHub repository: clones or fetches
- Repository context engine → Repository snapshot: builds snapshot
- Repository context engine → Context web UI: returns snapshot
- Context web UI → User: previews or downloads
- Repository context engine → Context CLI: returns snapshot
- Context CLI → User: prints or writes
- Comparison UI → GPQS analysis and scoring: analyzes each URL
- GPQS analysis and scoring → GitHub API: requests repository metrics
- GPQS analysis and scoring → Comparison UI: returns scores and data
- Comparison UI → Scores and metrics: stores and formats
- Comparison UI → User: displays comparison
- DeepWiki scraper UI → DeepWiki site: fetches pages
- DeepWiki scraper UI → Wiki context text: compiles page content
- DeepWiki scraper UI → User: previews or downloads
