# akilanpl/rlb-relaxlemmebuild- architecture

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

- Interactive diagram: https://gitdiagram.com/akilanpl/rlb-relaxlemmebuild-
- Repository: https://github.com/akilanpl/rlb-relaxlemmebuild-

## Overview

RLB is a multi-agent software-engineering workspace: a user submits a task, repository analysis informs planning, and approval gates govern isolated coding, diff review, testing, and final review before promotion. The persistent workflow engine and durable queue coordinate the stages rather than leaving control to the models. The README documents the broader product loop; sampled source confirms key API, analysis, reviewer, queue, and sandbox behavior, but not every service-to-service connection, so uncertain links are omitted.

Main entry points: [`backend/app/workflow/engine.py`](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/workflow/engine.py) (Workflow engine), [`backend/app/api/v1/tasks.py`](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/api/v1/tasks.py) (Task API), [`backend/app/analysis/service.py`](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/analysis/service.py) (Analysis API), [`backend/app/ai/gateway.py`](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/ai/gateway.py) (AI gateway)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["Workspace interface"]
  node_web["Workspace UI<br/>[page.tsx]"]
  node_review_ui["Review panels"]
end

subgraph group_control["Workflow control"]
  node_task_api["Task API<br/>[tasks.py]"]
  node_workflow["Workflow engine<br/>[engine.py]"]
  node_queue["Durable queue<br/>[job_queue.py]"]
  node_worker["Task worker<br/>[durable_worker.py]"]
end

subgraph group_engineering["Engineering stages"]
  node_planner["Planner<br/>[planner_service.py]"]
  node_coder["Coder<br/>[coder_service.py]"]
  node_test_architect["Test architect<br/>[testing_service.py]"]
  node_reviewer["Reviewer"]
end

subgraph group_runtime["Execution infrastructure"]
  node_staging["Staging and promotion<br/>[staging_service.py]"]
  node_sandbox["Sandbox<br/>[daytona.py]"]
  node_providers["Model providers<br/>[resolver.py]"]
  node_ai_gateway["AI gateway<br/>[gateway.py]"]
  node_workspace_service["Workspace service"]
  node_storage["Artifact storage<br/>[base.py]"]
  node_repositories[("Persistent repositories<br/>[task.py]")]
end

subgraph group_intelligence["Repository intelligence"]
  node_analysis_api["Analysis API<br/>[service.py]"]
  node_analysis_steps["Codebase analysis<br/>[indexer.py]"]
end

node_user(("Engineer"))
node_external_model(("Model service"))

node_user -->|"submits request"| node_web
node_web -->|"calls task API"| node_task_api
node_review_ui -->|"submits decisions"| node_task_api
node_task_api -->|"creates and transitions"| node_workflow
node_task_api -->|"enqueues task"| node_queue
node_queue -->|"leases jobs"| node_worker
node_worker -->|"runs workflow"| node_workflow
node_workflow -->|"requests analysis"| node_analysis_api
node_analysis_api -->|"indexes and analyzes"| node_analysis_steps
node_analysis_api -->|"loads workspace"| node_workspace_service
node_analysis_api -->|"reads files"| node_storage
node_workflow -->|"dispatches planning"| node_planner
node_workflow -->|"dispatches coding"| node_coder
node_workflow -->|"dispatches testing"| node_test_architect
node_task_api -->|"runs review"| node_reviewer
node_reviewer -->|"requests review"| node_ai_gateway
node_planner -->|"requests plan"| node_ai_gateway
node_coder -->|"requests changes"| node_ai_gateway
node_test_architect -->|"executes tests"| node_sandbox
node_coder -->|"creates proposal"| node_staging
node_staging -.->|"isolates execution"| node_sandbox
node_staging -->|"stores artifacts"| node_storage
node_ai_gateway -->|"resolves model"| node_providers
node_providers -.->|"calls model"| node_external_model
node_workflow -->|"persists task state"| node_repositories
node_reviewer -->|"persists report"| node_repositories

click node_web "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/frontend/src/app/dashboard/workspaces/%5BworkspaceId%5D/page.tsx"
click node_review_ui "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/frontend/src/components/workspace/CodeProposalReview.tsx"
click node_task_api "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/api/v1/tasks.py"
click node_workflow "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/workflow/engine.py"
click node_queue "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/job_queue.py"
click node_worker "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/durable_worker.py"
click node_analysis_api "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/analysis/service.py"
click node_analysis_steps "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/analysis/indexer.py"
click node_planner "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/planner_service.py"
click node_coder "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/coder_service.py"
click node_test_architect "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/testing_service.py"
click node_reviewer "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/reviewer_service.py"
click node_staging "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/staging_service.py"
click node_sandbox "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/sandbox/daytona.py"
click node_providers "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/providers/resolver.py"
click node_ai_gateway "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/ai/gateway.py"
click node_workspace_service "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/workspace_service.py"
click node_storage "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/storage/base.py"
click node_repositories "https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/repositories/task.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_web,node_review_ui toneBlue
class node_task_api,node_workflow,node_queue,node_worker toneAmber
class node_planner,node_coder,node_test_architect,node_reviewer toneMint
class node_staging,node_sandbox,node_providers,node_ai_gateway,node_workspace_service,node_storage,node_repositories toneRose
class node_analysis_api,node_analysis_steps,node_user,node_external_model toneIndigo
```

## Components

### Workspace interface

- [Workspace UI](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/frontend/src/app/dashboard/workspaces/%5BworkspaceId%5D/page.tsx): `frontend/src/app/dashboard/workspaces/[workspaceId]/page.tsx`
- [Review panels](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/frontend/src/components/workspace/CodeProposalReview.tsx): `frontend/src/components/workspace/CodeProposalReview.tsx`

### Workflow control

- [Task API](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/api/v1/tasks.py): `backend/app/api/v1/tasks.py`
- [Workflow engine](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/workflow/engine.py): `backend/app/workflow/engine.py`
- [Durable queue](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/job_queue.py): `backend/app/services/job_queue.py`
- [Task worker](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/durable_worker.py): `backend/app/services/durable_worker.py`

### Engineering stages

- [Planner](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/planner_service.py): `backend/app/services/planner_service.py`
- [Coder](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/coder_service.py): `backend/app/services/coder_service.py`
- [Test architect](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/testing_service.py): `backend/app/services/testing_service.py`
- [Reviewer](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/reviewer_service.py): `backend/app/services/reviewer_service.py`

### Execution infrastructure

- [Staging and promotion](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/staging_service.py): `backend/app/services/staging_service.py`
- [Sandbox](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/sandbox/daytona.py): `backend/app/sandbox/daytona.py`
- [Model providers](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/providers/resolver.py): `backend/app/providers/resolver.py`
- [AI gateway](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/ai/gateway.py): `backend/app/ai/gateway.py`
- [Workspace service](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/services/workspace_service.py): `backend/app/services/workspace_service.py`
- [Artifact storage](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/storage/base.py): `backend/app/storage/base.py`
- [Persistent repositories](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/repositories/task.py): `backend/app/repositories/task.py`

### Repository intelligence

- [Analysis API](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/analysis/service.py): `backend/app/analysis/service.py`
- [Codebase analysis](https://github.com/akilanpl/rlb-relaxlemmebuild-/blob/main/backend/app/analysis/indexer.py): `backend/app/analysis/indexer.py`

### Other components

- **Engineer**
- **Model service**

## Connections

- Engineer → Workspace UI: submits request
- Workspace UI → Task API: calls task API
- Review panels → Task API: submits decisions
- Task API → Workflow engine: creates and transitions
- Task API → Durable queue: enqueues task
- Durable queue → Task worker: leases jobs
- Task worker → Workflow engine: runs workflow
- Workflow engine → Analysis API: requests analysis
- Analysis API → Codebase analysis: indexes and analyzes
- Analysis API → Workspace service: loads workspace
- Analysis API → Artifact storage: reads files
- Workflow engine → Planner: dispatches planning
- Workflow engine → Coder: dispatches coding
- Workflow engine → Test architect: dispatches testing
- Task API → Reviewer: runs review
- Reviewer → AI gateway: requests review
- Planner → AI gateway: requests plan
- Coder → AI gateway: requests changes
- Test architect → Sandbox: executes tests
- Coder → Staging and promotion: creates proposal
- Staging and promotion → Sandbox: isolates execution
- Staging and promotion → Artifact storage: stores artifacts
- AI gateway → Model providers: resolves model
- Model providers → Model service: calls model
- Workflow engine → Persistent repositories: persists task state
- Reviewer → Persistent repositories: persists report
