# C4 Architecture Documentation

> C4 Architecture Documentation Skill

- Skill: `hack23/c4-architecture-documentation-4` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hack23/c4-architecture-documentation-4`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hack23/c4-architecture-documentation-4/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: Hack23 (https://skillmd.com/u/hack23)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/hack23/c4-architecture-documentation-4

---


# C4 Architecture Documentation Skill

## Purpose
Document CIA platform architecture using C4 model for different abstraction levels.

## When to Use
- ✅ Documenting system architecture
- ✅ Onboarding new developers
- ✅ Architecture decision records
- ✅ Security architecture reviews

## C4 Model Levels

### Level 1: System Context
```
[External Users] --uses--> [CIA Platform] --uses--> [Riksdagen API]
[CIA Platform] --uses--> [World Bank API]
[CIA Platform] --uses--> [PostgreSQL Database]
```

### Level 2: Container Diagram
```
[Web Browser] --HTTPS--> [Spring MVC App] --JDBC--> [PostgreSQL]
[Spring MVC App] --HTTPS--> [External APIs]
[Spring MVC App] --uses--> [Redis Cache]
```

### Level 3: Component Diagram
```java
// Service Layer Components
@Component PoliticianService --uses--> @Repository PoliticianRepository
@Component VotingAnalysisService --uses--> @Repository VotingRecordRepository
@Component RiksdagenClient --calls--> [External Riksdagen API]
```

### Level 4: Code
```java
// Detailed class design
public class PoliticianService {
    private final PoliticianRepository repository;
    private final RiksdagenClient riksdagenClient;
    // Implementation details...
}
```

## PlantUML Diagrams
```plantuml
@startuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml

Person(user, "Citizen", "Wants political transparency")
System_Boundary(cia, "CIA Platform") {
    Container(web, "Web Application", "Spring MVC, Vaadin 8", "Provides UI")
    ContainerDb(db, "Database", "PostgreSQL", "Stores data")
}
System_Ext(riksdagen, "Riksdagen API", "Government data")

Rel(user, web, "Uses", "HTTPS")
Rel(web, db, "Reads/Writes", "JDBC")
Rel(web, riksdagen, "Fetches data", "HTTPS/REST")
@enduml
```

## References
- C4 Model: https://c4model.com/
- ARCHITECTURE.md
- FUTURE_ARCHITECTURE.md
