# codexeron/projects-triadguard-ci architecture

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

- Interactive diagram: https://gitdiagram.com/codexeron/projects-triadguard-ci
- Repository: https://github.com/codexeron/projects-triadguard-ci
- Video tour (about a minute): https://gitdiagram.com/codexeron/projects-triadguard-ci/video

## Overview

TriadGuard-CI runs repository scans on pushes to main and pull requests, then evaluates SARIF findings and reports a verdict on the pull request. The README documents Trivy and CodeQL, with optional SonarQube; the sampled conductor code confirms configuration loading, SARIF aggregation, policy decisions, and GitHub comments and commit statuses. Workflow internals were not sampled, so scanner-to-conductor wiring is shown only at the documented workflow level.

Main entry points: [`.github/workflows/triadguard.yml`](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.github/workflows/triadguard.yml) (CI Workflow), [`scripts/conductor.py`](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/scripts/conductor.py) (Conductor), [`.triadguard/config.yaml`](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.triadguard/config.yaml) (Rules Config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_scan["Scanning"]
  node_workflow["CI Workflow<br/>[triadguard.yml]"]
  node_trivy["Trivy"]
  node_codeql["CodeQL"]
  node_sonarqube["SonarQube"]
end

subgraph group_review["Findings Review"]
  node_sarif["SARIF Reports"]
  node_conductor["Conductor<br/>[conductor.py]"]
  node_config["Rules Config<br/>[config.yaml]"]
end

subgraph group_report["GitHub Reporting"]
  node_github["GitHub API"]
end

node_repo_changes(("Push / Pull Request"))
node_pull_request(("Pull Request"))

node_repo_changes -->|"triggers"| node_workflow
node_workflow -->|"runs scan"| node_trivy
node_workflow -->|"runs analysis"| node_codeql
node_workflow -.->|"optional scan"| node_sonarqube
node_trivy -->|"produces"| node_sarif
node_codeql -->|"produces"| node_sarif
node_sonarqube -.->|"may produce"| node_sarif
node_workflow -->|"runs"| node_conductor
node_conductor -->|"reads"| node_sarif
node_conductor -->|"loads"| node_config
node_conductor -->|"posts comment"| node_github
node_conductor -->|"sets status"| node_github
node_github -->|"updates"| node_pull_request

click node_workflow "https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.github/workflows/triadguard.yml"
click node_conductor "https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/scripts/conductor.py"
click node_config "https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.triadguard/config.yaml"

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_workflow,node_trivy,node_codeql,node_sonarqube toneBlue
class node_sarif,node_conductor,node_config toneAmber
class node_github,node_repo_changes,node_pull_request toneMint
```

## Components

### Scanning

- [CI Workflow](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.github/workflows/triadguard.yml): `.github/workflows/triadguard.yml`
- **Trivy**
- **CodeQL**
- **SonarQube**

### Findings Review

- **SARIF Reports**
- [Conductor](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/scripts/conductor.py): `scripts/conductor.py`
- [Rules Config](https://github.com/codexeron/projects-triadguard-ci/blob/Codexeron/.triadguard/config.yaml): `.triadguard/config.yaml`

### GitHub Reporting

- **GitHub API**

### Other components

- **Push / Pull Request**
- **Pull Request**

## Connections

- Push / Pull Request → CI Workflow: triggers
- CI Workflow → Trivy: runs scan
- CI Workflow → CodeQL: runs analysis
- CI Workflow → SonarQube: optional scan
- Trivy → SARIF Reports: produces
- CodeQL → SARIF Reports: produces
- SonarQube → SARIF Reports: may produce
- CI Workflow → Conductor: runs
- Conductor → SARIF Reports: reads
- Conductor → Rules Config: loads
- Conductor → GitHub API: posts comment
- Conductor → GitHub API: sets status
- GitHub API → Pull Request: updates
