# yogeshthakker/riskthisweek architecture

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

- Interactive diagram: https://gitdiagram.com/yogeshthakker/riskthisweek
- Repository: https://github.com/yogeshthakker/riskthisweek

## Overview

This is a command-line weekly risk-reporting tool for a foreign bank operating in India. Its main workflow is to review pending actions, collect and rank news, then produce a meeting-ready report in slide, web-page, and Markdown formats. Distinct capabilities include portfolio early warnings, events and reports, RBI compliance tracking, CRO notes, and optional AI ranking. The README documents these flows; the sampled source excerpts are partial, so internal implementation links are limited to relationships those excerpts or the README establish.

Main entry points: [`risk_week.py`](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py) (CLI workflow), [`sources.json`](https://github.com/yogeshthakker/riskthisweek/blob/main/sources.json) (Bank profile)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Report workflow"]
  node_cli["CLI workflow<br/>[risk_week.py]"]
  node_pending["Pending actions<br/>[risk_week.py]"]
  node_news["News collection<br/>[risk_week.py]"]
  node_ranking["Story ranking<br/>[risk_week.py]"]
  node_profile["Bank profile<br/>[sources.json]"]
  node_sources["Source registry<br/>[sources.json]"]
end

subgraph group_enrichment["Risk intelligence"]
  node_portfolio["Portfolio watch<br/>[risk_week.py]"]
  node_events["Events and reports<br/>[risk_week.py]"]
  node_compliance["RBI compliance<br/>[risk_week.py]"]
  node_cro["CRO desk notes<br/>[risk_week.py]"]
end

subgraph group_outputs["Report outputs"]
  node_slides["Slide renderer<br/>[risk_week.py]"]
  node_web["Web renderer<br/>[risk_week.py]"]
  node_markdown["Markdown renderer<br/>[risk_week.py]"]
  node_confluence["Confluence entry<br/>[risk_week.py]"]
  node_output_files["Generated report files"]
end

subgraph group_integrations["External integrations"]
  node_news_services["News services"]
  node_gemini["Gemini"]
  node_gigacode["GigaCode MCP"]
  node_cafral["CAFRAL events"]
end

node_operator(("Bank operator"))

node_operator -->|"runs"| node_cli
node_cli -->|"reviews first"| node_pending
node_cli -->|"collects after"| node_news
node_news -->|"reads feeds"| node_sources
node_ranking -->|"uses priorities"| node_profile
node_news -.->|"ranks stories"| node_ranking
node_news -->|"fetches news"| node_news_services
node_cli -->|"checks companies"| node_portfolio
node_portfolio -->|"searches companies"| node_news_services
node_cli -->|"gathers events"| node_events
node_events -->|"reads events"| node_cafral
node_cli -->|"reads compliance"| node_compliance
node_compliance -->|"fetches page"| node_confluence
node_cli -->|"includes notes"| node_cro
node_ranking -.->|"requests ranking"| node_gemini
node_portfolio -.->|"requests signals"| node_gigacode
node_cli -->|"renders"| node_slides
node_cli -->|"renders"| node_web
node_cli -->|"renders"| node_markdown
node_cli -.->|"updates entry"| node_confluence
node_slides -->|"writes slides"| node_output_files
node_web -->|"writes page"| node_output_files
node_markdown -->|"writes notes"| node_output_files

click node_cli "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_pending "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_news "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_ranking "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_profile "https://github.com/yogeshthakker/riskthisweek/blob/main/sources.json"
click node_sources "https://github.com/yogeshthakker/riskthisweek/blob/main/sources.json"
click node_portfolio "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_events "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_compliance "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_cro "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_slides "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_web "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_markdown "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py"
click node_confluence "https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.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_cli,node_pending,node_news,node_ranking,node_profile,node_sources toneBlue
class node_portfolio,node_events,node_compliance,node_cro toneAmber
class node_slides,node_web,node_markdown,node_confluence,node_output_files toneMint
class node_news_services,node_gemini,node_gigacode,node_cafral toneRose
class node_operator toneIndigo
```

## Components

### Report workflow

- [CLI workflow](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Pending actions](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [News collection](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Story ranking](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Bank profile](https://github.com/yogeshthakker/riskthisweek/blob/main/sources.json): `sources.json`
- [Source registry](https://github.com/yogeshthakker/riskthisweek/blob/main/sources.json): `sources.json`

### Risk intelligence

- [Portfolio watch](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Events and reports](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [RBI compliance](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [CRO desk notes](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`

### Report outputs

- [Slide renderer](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Web renderer](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Markdown renderer](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- [Confluence entry](https://github.com/yogeshthakker/riskthisweek/blob/main/risk_week.py): `risk_week.py`
- **Generated report files**

### External integrations

- **News services**
- **Gemini**
- **GigaCode MCP**
- **CAFRAL events**

### Other components

- **Bank operator**

## Connections

- Bank operator → CLI workflow: runs (evidence: `README.md`)
- CLI workflow → Pending actions: reviews first (evidence: `README.md`)
- CLI workflow → News collection: collects after (evidence: `README.md`)
- News collection → Source registry: reads feeds (evidence: `README.md`)
- Story ranking → Bank profile: uses priorities (evidence: `README.md`)
- News collection → Story ranking: ranks stories (evidence: `risk_week.py`)
- News collection → News services: fetches news (evidence: `README.md`)
- CLI workflow → Portfolio watch: checks companies (evidence: `README.md`)
- Portfolio watch → News services: searches companies (evidence: `README.md`)
- CLI workflow → Events and reports: gathers events (evidence: `README.md`)
- Events and reports → CAFRAL events: reads events (evidence: `README.md`)
- CLI workflow → RBI compliance: reads compliance (evidence: `README.md`)
- RBI compliance → Confluence entry: fetches page (evidence: `risk_week.py`)
- CLI workflow → CRO desk notes: includes notes (evidence: `README.md`)
- Story ranking → Gemini: requests ranking (evidence: `README.md`)
- Portfolio watch → GigaCode MCP: requests signals (evidence: `README.md`)
- CLI workflow → Slide renderer: renders (evidence: `README.md`)
- CLI workflow → Web renderer: renders (evidence: `README.md`)
- CLI workflow → Markdown renderer: renders (evidence: `README.md`)
- CLI workflow → Confluence entry: updates entry (evidence: `README.md`)
- Slide renderer → Generated report files: writes slides (evidence: `README.md`)
- Web renderer → Generated report files: writes page (evidence: `README.md`)
- Markdown renderer → Generated report files: writes notes (evidence: `README.md`)
