# michaelgrant-libato/rigmd architecture

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

- Interactive diagram: https://gitdiagram.com/michaelgrant-libato/rigmd
- Repository: https://github.com/michaelgrant-libato/rigmd

## Overview

RigMD is a Windows PC diagnostic and controlled-remediation platform. A user submits symptoms through the frontend; the API combines them with live Windows telemetry, runs deterministic diagnosis, adds a constrained explanation, and persists a session. Users can review history and system health, then request guarded remediation with verification, rollback, or pivots. The README documents broader capabilities including recurring-pattern and warning-sign analysis, an optional remote agent, real-time updates, and optional database synchronization. Some frontend-to-API and unsampled subsystem links are documented only generally, so those edges are dashed.

Main entry points: [`backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs`](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs) (Diagnosis service), [`backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs`](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs) (Remediation endpoints), [`backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs`](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs) (Session repository), [`backend-dotnet/RigMD.Api/Program.cs`](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Program.cs) (ASP.NET API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_frontend["RigMD frontend<br/>[App.jsx]"]
  node_diagnosis_views["Diagnosis views"]
  node_insight_views["Health and history views"]
end

subgraph group_diagnosis["Diagnosis and insights"]
  node_diagnostic_api["Diagnosis endpoints"]
  node_diagnostic_service["Diagnosis service"]
  node_diagnostic_rules["Deterministic rules"]
  node_ai["AI explanations"]
  node_insight_services["Pattern and warning analysis"]
end

subgraph group_remediation["Controlled remediation"]
  node_autonomy_api["Remediation endpoints"]
  node_orchestrator["Remediation orchestrator"]
  node_execution["Windows actions and verification"]
  node_rollback["Rollback manager<br/>[RollbackManager.cs]"]
  node_realtime["Remediation updates<br/>[RemediationHub.cs]"]
end

subgraph group_platform["Windows and persistence"]
  node_api["ASP.NET API<br/>[Program.cs]"]
  node_session_store["Session repository"]
  node_database[("Local SQLite store<br/>[RigMdDbContext.cs]")]
  node_sync["Optional Supabase sync"]
  node_telemetry["Windows telemetry"]
  node_agent["Remote Windows agent<br/>[Worker.cs]"]
end

node_user(("PC user"))

node_user -->|"uses"| node_frontend
node_frontend -->|"presents"| node_diagnosis_views
node_user -.->|"submits symptoms"| node_diagnosis_views
node_diagnosis_views -.->|"submits diagnosis"| node_api
node_api -.->|"routes requests"| node_diagnostic_api
node_diagnostic_api -->|"calls"| node_diagnostic_service
node_diagnostic_service -->|"reads profile"| node_telemetry
node_diagnostic_service -->|"runs rules"| node_diagnostic_rules
node_diagnostic_service -->|"requests explanation"| node_ai
node_diagnostic_api -->|"persists diagnosis"| node_session_store
node_session_store -->|"reads and writes"| node_database
node_database -.->|"optional sync"| node_sync
node_insight_views -.->|"requests insights"| node_api
node_session_store -.->|"supplies session data"| node_insight_services
node_agent -.->|"sends telemetry"| node_api
node_user -.->|"requests remediation"| node_autonomy_api
node_autonomy_api -->|"loads diagnosis"| node_session_store
node_autonomy_api -->|"runs dry run"| node_orchestrator
node_orchestrator -.->|"executes approved actions"| node_execution
node_orchestrator -.->|"manages rollback"| node_rollback
node_autonomy_api -->|"publishes updates"| node_realtime
node_frontend -.->|"receives updates"| node_realtime

click node_frontend "https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/App.jsx"
click node_diagnosis_views "https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/pages/NewDiagnosisView.tsx"
click node_insight_views "https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/pages/DiagnosticHistoryView.tsx"
click node_api "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Program.cs"
click node_diagnostic_api "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Controllers/DiagnosticController.cs"
click node_diagnostic_service "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs"
click node_diagnostic_rules "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Domain/Rules/DiagnosticEngine.cs"
click node_ai "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Ai/GeminiAiExplainer.cs"
click node_insight_services "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/RecurringPatternService.cs"
click node_session_store "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs"
click node_database "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/RigMdDbContext.cs"
click node_sync "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/DatabaseSyncService.cs"
click node_telemetry "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Windows/WindowsSystemProfileService.cs"
click node_agent "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Agent/Worker.cs"
click node_autonomy_api "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs"
click node_orchestrator "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/Autonomy/AutonomousOrchestrator.cs"
click node_execution "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Remediation/WindowsRemediationExecutor.cs"
click node_rollback "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Remediation/RollbackManager.cs"
click node_realtime "https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Hubs/RemediationHub.cs"

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_frontend,node_diagnosis_views,node_insight_views,node_user toneBlue
class node_diagnostic_api,node_diagnostic_service,node_diagnostic_rules,node_ai,node_insight_services toneAmber
class node_autonomy_api,node_orchestrator,node_execution,node_rollback,node_realtime toneMint
class node_api,node_session_store,node_database,node_sync,node_telemetry,node_agent toneRose
```

## Components

### User experience

- [RigMD frontend](https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/App.jsx): `frontend/src/App.jsx`
- [Diagnosis views](https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/pages/NewDiagnosisView.tsx): `frontend/src/pages/NewDiagnosisView.tsx`
- [Health and history views](https://github.com/michaelgrant-libato/rigmd/blob/main/frontend/src/pages/DiagnosticHistoryView.tsx): `frontend/src/pages/DiagnosticHistoryView.tsx`

### Diagnosis and insights

- [Diagnosis endpoints](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Controllers/DiagnosticController.cs): `backend-dotnet/RigMD.Api/Controllers/DiagnosticController.cs`
- [Diagnosis service](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs): `backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs`
- [Deterministic rules](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Domain/Rules/DiagnosticEngine.cs): `backend-dotnet/RigMD.Domain/Rules/DiagnosticEngine.cs`
- [AI explanations](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Ai/GeminiAiExplainer.cs): `backend-dotnet/RigMD.Infrastructure/Ai/GeminiAiExplainer.cs`
- [Pattern and warning analysis](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/RecurringPatternService.cs): `backend-dotnet/RigMD.Application/Services/RecurringPatternService.cs`

### Controlled remediation

- [Remediation endpoints](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs): `backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs`
- [Remediation orchestrator](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Application/Services/Autonomy/AutonomousOrchestrator.cs): `backend-dotnet/RigMD.Application/Services/Autonomy/AutonomousOrchestrator.cs`
- [Windows actions and verification](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Remediation/WindowsRemediationExecutor.cs): `backend-dotnet/RigMD.Infrastructure/Remediation/WindowsRemediationExecutor.cs`
- [Rollback manager](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Remediation/RollbackManager.cs): `backend-dotnet/RigMD.Infrastructure/Remediation/RollbackManager.cs`
- [Remediation updates](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Hubs/RemediationHub.cs): `backend-dotnet/RigMD.Api/Hubs/RemediationHub.cs`

### Windows and persistence

- [ASP.NET API](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Api/Program.cs): `backend-dotnet/RigMD.Api/Program.cs`
- [Session repository](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs): `backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs`
- [Local SQLite store](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/RigMdDbContext.cs): `backend-dotnet/RigMD.Infrastructure/Persistence/RigMdDbContext.cs`
- [Optional Supabase sync](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Persistence/DatabaseSyncService.cs): `backend-dotnet/RigMD.Infrastructure/Persistence/DatabaseSyncService.cs`
- [Windows telemetry](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Infrastructure/Windows/WindowsSystemProfileService.cs): `backend-dotnet/RigMD.Infrastructure/Windows/WindowsSystemProfileService.cs`
- [Remote Windows agent](https://github.com/michaelgrant-libato/rigmd/blob/main/backend-dotnet/RigMD.Agent/Worker.cs): `backend-dotnet/RigMD.Agent/Worker.cs`

### Other components

- **PC user**

## Connections

- PC user → RigMD frontend: uses (evidence: `README.md`)
- RigMD frontend → Diagnosis views: presents (evidence: `frontend/src/App.jsx`)
- PC user → Diagnosis views: submits symptoms
- Diagnosis views → ASP.NET API: submits diagnosis
- ASP.NET API → Diagnosis endpoints: routes requests
- Diagnosis endpoints → Diagnosis service: calls (evidence: `backend-dotnet/RigMD.Api/Controllers/DiagnosticController.cs`)
- Diagnosis service → Windows telemetry: reads profile (evidence: `backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs`)
- Diagnosis service → Deterministic rules: runs rules (evidence: `backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs`)
- Diagnosis service → AI explanations: requests explanation (evidence: `backend-dotnet/RigMD.Application/Services/DiagnosticEngineService.cs`)
- Diagnosis endpoints → Session repository: persists diagnosis (evidence: `backend-dotnet/RigMD.Api/Controllers/DiagnosticController.cs`)
- Session repository → Local SQLite store: reads and writes (evidence: `backend-dotnet/RigMD.Infrastructure/Persistence/DiagnosticSessionRepository.cs`)
- Local SQLite store → Optional Supabase sync: optional sync (evidence: `README.md`)
- Health and history views → ASP.NET API: requests insights
- Session repository → Pattern and warning analysis: supplies session data
- Remote Windows agent → ASP.NET API: sends telemetry (evidence: `README.md`)
- PC user → Remediation endpoints: requests remediation
- Remediation endpoints → Session repository: loads diagnosis (evidence: `backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs`)
- Remediation endpoints → Remediation orchestrator: runs dry run (evidence: `backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs`)
- Remediation orchestrator → Windows actions and verification: executes approved actions (evidence: `README.md`)
- Remediation orchestrator → Rollback manager: manages rollback (evidence: `README.md`)
- Remediation endpoints → Remediation updates: publishes updates (evidence: `backend-dotnet/RigMD.Api/Controllers/AutonomyController.cs`)
- RigMD frontend → Remediation updates: receives updates (evidence: `README.md`)
