# ishanjais01io/autodevai architecture

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

- Interactive diagram: https://gitdiagram.com/ishanjais01io/autodevai
- Repository: https://github.com/ishanjais01io/autodevai

## Overview

AutoDevAI clones a GitHub repository, then runs a multi-agent engineering review: planning, code review, testing, documentation, security analysis, and final reporting. The standard workflow and optional CrewAI path are selected by the CLI entry point; agents share repository context through shared memory. A separate dashboard presents scan history, findings, and recommendations, backed by SQLite and analysis helpers. The README documents the agent sequence and report outputs; unsampled modules are included only where the tree or source index supports their role, so some internal calls are not shown.

Main entry points: [`core/workflow.py`](https://github.com/ishanjais01io/autodevai/blob/main/core/workflow.py) (Agent workflow), [`main.py`](https://github.com/ishanjais01io/autodevai/blob/main/main.py) (CLI pipeline), [`dashboard/services/dashboard_service.py`](https://github.com/ishanjais01io/autodevai/blob/main/dashboard/services/dashboard_service.py) (Dashboard service), [`crew/crew.py`](https://github.com/ishanjais01io/autodevai/blob/main/crew/crew.py) (CrewAI orchestration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Orchestration"]
  node_entrypoint["CLI pipeline<br/>[main.py]"]
  node_shared_memory["Shared memory<br/>[shared_memory.py]"]
  node_workflow["Agent workflow<br/>[workflow.py]"]
  node_crew["CrewAI orchestration<br/>[crew.py]"]
end

subgraph group_analysis["Engineering agents"]
  node_planner["Planning agent<br/>[planner.py]"]
  node_reviewer["Review agent<br/>[reviewer.py]"]
  node_review_engine["Review batching<br/>[review_engine.py]"]
  node_tester["Testing agent<br/>[tester.py]"]
  node_documentation["Documentation agent<br/>[documentation.py]"]
  node_security["Security agent<br/>[security.py]"]
  node_final_report["Final report agent<br/>[final_report.py]"]
  node_score_engine["Score calculation<br/>[score_engine.py]"]
  node_report_files["Engineering reports<br/>[final_report.py]"]
  node_crew_agents["CrewAI agents<br/>[agents.py]"]
  node_crew_tasks["CrewAI tasks<br/>[tasks.py]"]
  node_finding_engine["Finding analysis<br/>[finding_engine.py]"]
  node_recommendation_engine["Recommendations"]
end

subgraph group_integrations["LLM and tools"]
  node_github_tool["Repository clone<br/>[github.py]"]
  node_security_scanner["Security scanner"]
  node_llm_service["LLM service<br/>[llm_service.py]"]
  node_llm_provider["Provider selection<br/>[provider.py]"]
end

subgraph group_dashboard["Dashboard and data"]
  node_dashboard_app["Dashboard app<br/>[app.py]"]
  node_dashboard_ui["Dashboard interface<br/>[dashboard.js]"]
  node_dashboard_api["Dashboard API<br/>[api.py]"]
  node_dashboard_service["Dashboard service"]
  node_comparison_engine["Scan comparison"]
  node_scan_models["Scan records<br/>[models.py]"]
  node_database[("SQLite database<br/>[database.py]")]
end

node_user(("User"))
node_github_repo["GitHub repository"]

node_user -->|"submits URL"| node_entrypoint
node_entrypoint -->|"clones repository"| node_github_tool
node_github_tool -->|"fetches"| node_github_repo
node_entrypoint -->|"stores repo path"| node_shared_memory
node_entrypoint -->|"runs pipeline"| node_workflow
node_workflow -->|"runs first"| node_planner
node_workflow -->|"runs next"| node_reviewer
node_workflow -->|"runs next"| node_tester
node_workflow -->|"runs next"| node_documentation
node_workflow -->|"runs next"| node_security
node_workflow -->|"runs last"| node_final_report
node_reviewer -->|"batches files"| node_review_engine
node_reviewer -->|"requests review"| node_llm_service
node_llm_service -->|"delegates review"| node_llm_provider
node_security -->|"scans repository"| node_security_scanner
node_final_report -->|"uses scores"| node_score_engine
node_final_report -->|"generates reports"| node_report_files
node_entrypoint -->|"initializes"| node_database
node_entrypoint -.->|"selects optional path"| node_crew
node_crew -->|"builds agents"| node_crew_agents
node_crew -->|"builds tasks"| node_crew_tasks
node_crew_agents -->|"uses provider"| node_llm_provider
node_dashboard_app -->|"mounts routes"| node_dashboard_api
node_dashboard_app -->|"serves static files"| node_dashboard_ui
node_dashboard_api -->|"uses dashboard data"| node_dashboard_service
node_dashboard_api -->|"compares scans"| node_comparison_engine
node_dashboard_service -->|"loads latest scan"| node_scan_models
node_dashboard_service -->|"generates findings"| node_finding_engine
node_dashboard_service -->|"generates recommendations"| node_recommendation_engine
node_scan_models -->|"reads and writes"| node_database

click node_github_tool "https://github.com/ishanjais01io/autodevai/blob/main/tools/github.py"
click node_entrypoint "https://github.com/ishanjais01io/autodevai/blob/main/main.py"
click node_shared_memory "https://github.com/ishanjais01io/autodevai/blob/main/core/shared_memory.py"
click node_workflow "https://github.com/ishanjais01io/autodevai/blob/main/core/workflow.py"
click node_planner "https://github.com/ishanjais01io/autodevai/blob/main/agents/planner.py"
click node_reviewer "https://github.com/ishanjais01io/autodevai/blob/main/agents/reviewer.py"
click node_review_engine "https://github.com/ishanjais01io/autodevai/blob/main/core/review_engine.py"
click node_tester "https://github.com/ishanjais01io/autodevai/blob/main/agents/tester.py"
click node_documentation "https://github.com/ishanjais01io/autodevai/blob/main/agents/documentation.py"
click node_security "https://github.com/ishanjais01io/autodevai/blob/main/agents/security.py"
click node_security_scanner "https://github.com/ishanjais01io/autodevai/blob/main/tools/security_scanner.py"
click node_final_report "https://github.com/ishanjais01io/autodevai/blob/main/agents/final_report.py"
click node_score_engine "https://github.com/ishanjais01io/autodevai/blob/main/core/score_engine.py"
click node_report_files "https://github.com/ishanjais01io/autodevai/blob/main/agents/final_report.py"
click node_llm_service "https://github.com/ishanjais01io/autodevai/blob/main/services/llm_service.py"
click node_llm_provider "https://github.com/ishanjais01io/autodevai/blob/main/llm/provider.py"
click node_crew "https://github.com/ishanjais01io/autodevai/blob/main/crew/crew.py"
click node_crew_agents "https://github.com/ishanjais01io/autodevai/blob/main/crew/agents.py"
click node_crew_tasks "https://github.com/ishanjais01io/autodevai/blob/main/crew/tasks.py"
click node_dashboard_app "https://github.com/ishanjais01io/autodevai/blob/main/dashboard/app.py"
click node_dashboard_ui "https://github.com/ishanjais01io/autodevai/blob/main/dashboard/static/dashboard.js"
click node_dashboard_api "https://github.com/ishanjais01io/autodevai/blob/main/dashboard/api.py"
click node_dashboard_service "https://github.com/ishanjais01io/autodevai/blob/main/dashboard/services/dashboard_service.py"
click node_finding_engine "https://github.com/ishanjais01io/autodevai/blob/main/core/finding_engine.py"
click node_recommendation_engine "https://github.com/ishanjais01io/autodevai/blob/main/core/recommendation_engine.py"
click node_comparison_engine "https://github.com/ishanjais01io/autodevai/blob/main/core/comparison_engine.py"
click node_scan_models "https://github.com/ishanjais01io/autodevai/blob/main/storage/models.py"
click node_database "https://github.com/ishanjais01io/autodevai/blob/main/storage/database.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_shared_memory,node_workflow,node_crew,node_user toneBlue
class node_planner,node_reviewer,node_review_engine,node_tester,node_documentation,node_security,node_final_report,node_score_engine,node_report_files,node_crew_agents,node_crew_tasks,node_finding_engine,node_recommendation_engine toneAmber
class node_github_tool,node_security_scanner,node_llm_service,node_llm_provider toneMint
class node_dashboard_app,node_dashboard_ui,node_dashboard_api,node_dashboard_service,node_comparison_engine,node_scan_models,node_database toneRose
class node_github_repo toneIndigo
```

## Components

### Orchestration

- [CLI pipeline](https://github.com/ishanjais01io/autodevai/blob/main/main.py): `main.py`
- [Shared memory](https://github.com/ishanjais01io/autodevai/blob/main/core/shared_memory.py): `core/shared_memory.py`
- [Agent workflow](https://github.com/ishanjais01io/autodevai/blob/main/core/workflow.py): `core/workflow.py`
- [CrewAI orchestration](https://github.com/ishanjais01io/autodevai/blob/main/crew/crew.py): `crew/crew.py`

### Engineering agents

- [Planning agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/planner.py): `agents/planner.py`
- [Review agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/reviewer.py): `agents/reviewer.py`
- [Review batching](https://github.com/ishanjais01io/autodevai/blob/main/core/review_engine.py): `core/review_engine.py`
- [Testing agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/tester.py): `agents/tester.py`
- [Documentation agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/documentation.py): `agents/documentation.py`
- [Security agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/security.py): `agents/security.py`
- [Final report agent](https://github.com/ishanjais01io/autodevai/blob/main/agents/final_report.py): `agents/final_report.py`
- [Score calculation](https://github.com/ishanjais01io/autodevai/blob/main/core/score_engine.py): `core/score_engine.py`
- [Engineering reports](https://github.com/ishanjais01io/autodevai/blob/main/agents/final_report.py): `agents/final_report.py`
- [CrewAI agents](https://github.com/ishanjais01io/autodevai/blob/main/crew/agents.py): `crew/agents.py`
- [CrewAI tasks](https://github.com/ishanjais01io/autodevai/blob/main/crew/tasks.py): `crew/tasks.py`
- [Finding analysis](https://github.com/ishanjais01io/autodevai/blob/main/core/finding_engine.py): `core/finding_engine.py`
- [Recommendations](https://github.com/ishanjais01io/autodevai/blob/main/core/recommendation_engine.py): `core/recommendation_engine.py`

### LLM and tools

- [Repository clone](https://github.com/ishanjais01io/autodevai/blob/main/tools/github.py): `tools/github.py`
- [Security scanner](https://github.com/ishanjais01io/autodevai/blob/main/tools/security_scanner.py): `tools/security_scanner.py`
- [LLM service](https://github.com/ishanjais01io/autodevai/blob/main/services/llm_service.py): `services/llm_service.py`
- [Provider selection](https://github.com/ishanjais01io/autodevai/blob/main/llm/provider.py): `llm/provider.py`

### Dashboard and data

- [Dashboard app](https://github.com/ishanjais01io/autodevai/blob/main/dashboard/app.py): `dashboard/app.py`
- [Dashboard interface](https://github.com/ishanjais01io/autodevai/blob/main/dashboard/static/dashboard.js): `dashboard/static/dashboard.js`
- [Dashboard API](https://github.com/ishanjais01io/autodevai/blob/main/dashboard/api.py): `dashboard/api.py`
- [Dashboard service](https://github.com/ishanjais01io/autodevai/blob/main/dashboard/services/dashboard_service.py): `dashboard/services/dashboard_service.py`
- [Scan comparison](https://github.com/ishanjais01io/autodevai/blob/main/core/comparison_engine.py): `core/comparison_engine.py`
- [Scan records](https://github.com/ishanjais01io/autodevai/blob/main/storage/models.py): `storage/models.py`
- [SQLite database](https://github.com/ishanjais01io/autodevai/blob/main/storage/database.py): `storage/database.py`

### Other components

- **User**
- **GitHub repository**

## Connections

- User → CLI pipeline: submits URL (evidence: `README.md`)
- CLI pipeline → Repository clone: clones repository (evidence: `main.py`)
- Repository clone → GitHub repository: fetches (evidence: `README.md`)
- CLI pipeline → Shared memory: stores repo path (evidence: `main.py`)
- CLI pipeline → Agent workflow: runs pipeline (evidence: `main.py`)
- Agent workflow → Planning agent: runs first (evidence: `README.md`)
- Agent workflow → Review agent: runs next (evidence: `README.md`)
- Agent workflow → Testing agent: runs next (evidence: `README.md`)
- Agent workflow → Documentation agent: runs next (evidence: `README.md`)
- Agent workflow → Security agent: runs next (evidence: `README.md`)
- Agent workflow → Final report agent: runs last (evidence: `README.md`)
- Review agent → Review batching: batches files (evidence: `agents/reviewer.py`)
- Review agent → LLM service: requests review (evidence: `agents/reviewer.py`)
- LLM service → Provider selection: delegates review (evidence: `services/llm_service.py`)
- Security agent → Security scanner: scans repository (evidence: `agents/security.py`)
- Final report agent → Score calculation: uses scores (evidence: `agents/final_report.py`)
- Final report agent → Engineering reports: generates reports (evidence: `README.md`)
- CLI pipeline → SQLite database: initializes (evidence: `main.py`)
- CLI pipeline → CrewAI orchestration: selects optional path (evidence: `main.py`)
- CrewAI orchestration → CrewAI agents: builds agents (evidence: `crew/crew.py`)
- CrewAI orchestration → CrewAI tasks: builds tasks (evidence: `crew/crew.py`)
- CrewAI agents → Provider selection: uses provider (evidence: `crew/agents.py`)
- Dashboard app → Dashboard API: mounts routes (evidence: `dashboard/app.py`)
- Dashboard app → Dashboard interface: serves static files (evidence: `dashboard/app.py`)
- Dashboard API → Dashboard service: uses dashboard data (evidence: `dashboard/api.py`)
- Dashboard API → Scan comparison: compares scans (evidence: `dashboard/api.py`)
- Dashboard service → Scan records: loads latest scan (evidence: `dashboard/services/dashboard_service.py`)
- Dashboard service → Finding analysis: generates findings (evidence: `dashboard/services/dashboard_service.py`)
- Dashboard service → Recommendations: generates recommendations (evidence: `dashboard/services/dashboard_service.py`)
- Scan records → SQLite database: reads and writes (evidence: `storage/models.py`)
