# ayush-projects/gaidp-singularity-squad architecture

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

- Interactive diagram: https://gitdiagram.com/ayush-projects/gaidp-singularity-squad
- Repository: https://github.com/ayush-projects/gaidp-singularity-squad

## Overview

RuleSense is a Flask-based regulatory data profiling assistant. Users generate rulebooks from regulatory PDFs, validate transaction CSVs against those rules, and separately inspect anomaly results. The graph shows the documented rule-generation, validation, dashboard, and anomaly capabilities; implementation evidence is sampled and incomplete, so uncertain remediation and internal processing links are omitted.

Main entry points: [`code/src/backend/app/services/rulebook_service.py`](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py) (Rulebook service), [`code/src/backend/app/templates`](https://github.com/ayush-projects/gaidp-singularity-squad/tree/main/code/src/backend/app/templates) (Flask templates), [`code/src/backend/app/services/rule_generator_service.py`](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rule_generator_service.py) (Rule generator), [`code/src/backend/app/services/anomaly_service.py`](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/anomaly_service.py) (Anomaly service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web interface"]
  node_templates["Flask templates"]
  node_dashboard["Dashboard controller"]
  node_rule_controller["Rulebook controller"]
  node_validation_controller["Validation controller"]
  node_anomaly_controller["Anomaly controller"]
end

subgraph group_rules["Rulebook generation"]
  node_rule_service["Rulebook service"]
  node_pdf_extract["PDF text extraction"]
  node_generator["Rule generator"]
  node_gemini{{"Gemini API"}}
  node_rule_model["Rulebook models<br/>[rulebook.py]"]
  node_rule_store[("Rulebook files")]
end

subgraph group_validation["Data validation"]
  node_validation_service["CSV rule validation"]
  node_validation_results["Validation report"]
end

subgraph group_anomaly["Anomaly detection"]
  node_anomaly_service["Anomaly service<br/>[anomaly_service.py]"]
  node_iso_model["Isolation Forest model<br/>[iso_model.pkl]"]
  node_anomaly_results["Anomaly results<br/>[anomaly_service.py]"]
end

node_user(("Compliance user"))

node_user -->|"uses"| node_templates
node_templates -->|"submits PDF"| node_rule_controller
node_templates -->|"submits CSV"| node_validation_controller
node_templates -->|"requests detection"| node_anomaly_controller
node_templates -->|"opens dashboard"| node_dashboard
node_rule_controller -->|"creates rulebook"| node_rule_service
node_rule_service -->|"extracts text"| node_pdf_extract
node_rule_service -->|"generates rules"| node_generator
node_generator -.->|"requests extraction"| node_gemini
node_generator -->|"builds rules"| node_rule_model
node_rule_service -->|"writes metadata"| node_rule_store
node_rule_service -->|"stores PDF"| node_rule_store
node_dashboard -->|"lists rulebooks"| node_rule_service
node_validation_controller -->|"validates CSV"| node_rule_service
node_rule_service -->|"reads rules"| node_rule_store
node_rule_service -->|"applies patterns"| node_validation_service
node_validation_service -->|"produces report"| node_validation_results
node_anomaly_controller -->|"predicts anomalies"| node_anomaly_service
node_anomaly_service -->|"loads model"| node_iso_model
node_anomaly_service -->|"returns results"| node_anomaly_results

click node_templates "https://github.com/ayush-projects/gaidp-singularity-squad/tree/main/code/src/backend/app/templates"
click node_dashboard "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/dashboard_controller.py"
click node_rule_controller "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/rulebook_controller.py"
click node_validation_controller "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/validation_controller.py"
click node_anomaly_controller "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/anomaly_controller.py"
click node_rule_service "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py"
click node_pdf_extract "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py"
click node_generator "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rule_generator_service.py"
click node_rule_model "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/models/rulebook.py"
click node_rule_store "https://github.com/ayush-projects/gaidp-singularity-squad/tree/main/code/src/data/rulebooks"
click node_validation_service "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py"
click node_validation_results "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py"
click node_anomaly_service "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/anomaly_service.py"
click node_iso_model "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/iso_model.pkl"
click node_anomaly_results "https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/anomaly_service.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_templates,node_dashboard,node_rule_controller,node_validation_controller,node_anomaly_controller,node_user toneBlue
class node_rule_service,node_pdf_extract,node_generator,node_gemini,node_rule_model,node_rule_store toneAmber
class node_validation_service,node_validation_results toneMint
class node_anomaly_service,node_iso_model,node_anomaly_results toneRose
```

## Components

### Web interface

- [Flask templates](https://github.com/ayush-projects/gaidp-singularity-squad/tree/main/code/src/backend/app/templates): `code/src/backend/app/templates`
- [Dashboard controller](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/dashboard_controller.py): `code/src/backend/app/controllers/dashboard_controller.py`
- [Rulebook controller](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/rulebook_controller.py): `code/src/backend/app/controllers/rulebook_controller.py`
- [Validation controller](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/validation_controller.py): `code/src/backend/app/controllers/validation_controller.py`
- [Anomaly controller](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/controllers/anomaly_controller.py): `code/src/backend/app/controllers/anomaly_controller.py`

### Rulebook generation

- [Rulebook service](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py): `code/src/backend/app/services/rulebook_service.py`
- [PDF text extraction](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py): `code/src/backend/app/services/rulebook_service.py`
- [Rule generator](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rule_generator_service.py): `code/src/backend/app/services/rule_generator_service.py`
- **Gemini API**
- [Rulebook models](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/models/rulebook.py): `code/src/backend/app/models/rulebook.py`
- [Rulebook files](https://github.com/ayush-projects/gaidp-singularity-squad/tree/main/code/src/data/rulebooks): `code/src/data/rulebooks`

### Data validation

- [CSV rule validation](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py): `code/src/backend/app/services/rulebook_service.py`
- [Validation report](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/rulebook_service.py): `code/src/backend/app/services/rulebook_service.py`

### Anomaly detection

- [Anomaly service](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/anomaly_service.py): `code/src/backend/app/services/anomaly_service.py`
- [Isolation Forest model](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/iso_model.pkl): `code/src/backend/app/services/iso_model.pkl`
- [Anomaly results](https://github.com/ayush-projects/gaidp-singularity-squad/blob/main/code/src/backend/app/services/anomaly_service.py): `code/src/backend/app/services/anomaly_service.py`

### Other components

- **Compliance user**

## Connections

- Compliance user → Flask templates: uses
- Flask templates → Rulebook controller: submits PDF
- Flask templates → Validation controller: submits CSV
- Flask templates → Anomaly controller: requests detection
- Flask templates → Dashboard controller: opens dashboard
- Rulebook controller → Rulebook service: creates rulebook
- Rulebook service → PDF text extraction: extracts text
- Rulebook service → Rule generator: generates rules
- Rule generator → Gemini API: requests extraction
- Rule generator → Rulebook models: builds rules
- Rulebook service → Rulebook files: writes metadata
- Rulebook service → Rulebook files: stores PDF
- Dashboard controller → Rulebook service: lists rulebooks
- Validation controller → Rulebook service: validates CSV
- Rulebook service → Rulebook files: reads rules
- Rulebook service → CSV rule validation: applies patterns
- CSV rule validation → Validation report: produces report
- Anomaly controller → Anomaly service: predicts anomalies
- Anomaly service → Isolation Forest model: loads model
- Anomaly service → Anomaly results: returns results
