riksdagsmonitor 0.8.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +999 -0
  3. package/SECURITY.md +154 -0
  4. package/dist/lib/chart-factory.d.ts +45 -0
  5. package/dist/lib/chart-factory.d.ts.map +1 -0
  6. package/dist/lib/chart-factory.js +220 -0
  7. package/dist/lib/chart-factory.js.map +1 -0
  8. package/dist/lib/data-loader.d.ts +44 -0
  9. package/dist/lib/data-loader.d.ts.map +1 -0
  10. package/dist/lib/data-loader.js +159 -0
  11. package/dist/lib/data-loader.js.map +1 -0
  12. package/dist/lib/dom-utils.d.ts +58 -0
  13. package/dist/lib/dom-utils.d.ts.map +1 -0
  14. package/dist/lib/dom-utils.js +153 -0
  15. package/dist/lib/dom-utils.js.map +1 -0
  16. package/dist/lib/error-boundary.d.ts +43 -0
  17. package/dist/lib/error-boundary.d.ts.map +1 -0
  18. package/dist/lib/error-boundary.js +101 -0
  19. package/dist/lib/error-boundary.js.map +1 -0
  20. package/dist/lib/fallback-ui.d.ts +28 -0
  21. package/dist/lib/fallback-ui.d.ts.map +1 -0
  22. package/dist/lib/fallback-ui.js +65 -0
  23. package/dist/lib/fallback-ui.js.map +1 -0
  24. package/dist/lib/index.d.ts +20 -0
  25. package/dist/lib/index.d.ts.map +1 -0
  26. package/dist/lib/index.js +20 -0
  27. package/dist/lib/index.js.map +1 -0
  28. package/dist/lib/logger.d.ts +19 -0
  29. package/dist/lib/logger.d.ts.map +1 -0
  30. package/dist/lib/logger.js +31 -0
  31. package/dist/lib/logger.js.map +1 -0
  32. package/dist/lib/theme.d.ts +107 -0
  33. package/dist/lib/theme.d.ts.map +1 -0
  34. package/dist/lib/theme.js +207 -0
  35. package/dist/lib/theme.js.map +1 -0
  36. package/dist/lib/types.d.ts +95 -0
  37. package/dist/lib/types.d.ts.map +1 -0
  38. package/dist/lib/types.js +14 -0
  39. package/dist/lib/types.js.map +1 -0
  40. package/package.json +140 -0
package/README.md ADDED
@@ -0,0 +1,999 @@
1
+ # ๐Ÿ—ณ๏ธ Riksdagsmonitor
2
+
3
+ > Swedish Parliament Intelligence Platform - Monitor political activity with systematic transparency
4
+
5
+ ## ๐ŸŽฏ Mission
6
+
7
+ Riksdagsmonitor is a comprehensive intelligence platform for monitoring political activity in Sweden's Riksdag (Parliament). Built on the [Citizen Intelligence Agency (CIA)](https://github.com/Hack23/cia) platform, we provide systematic transparency through real-time analysis and 50+ years of historical data.
8
+
9
+ <table>
10
+ <tr>
11
+ <td width="120" align="center">
12
+ <img src="https://img.shields.io/badge/Riksdag-Monitor-00338D?style=for-the-badge&logo=swedish&logoColor=FECC00" width="80" alt="Riksdagsmonitor"/>
13
+ <div>
14
+ <a href="https://riksdagsmonitor.com">
15
+ <img src="https://img.shields.io/website?url=https://riksdagsmonitor.com" alt="Website Status">
16
+ </a>
17
+ </div>
18
+ </td>
19
+ <td>
20
+ <p><strong>Swedish Parliament Intelligence Platform</strong> monitoring political activity in Sweden's Riksdag with systematic transparency through real-time analysis and 50+ years of historical data (1971-2024).</p>
21
+ <div>
22
+ <a href="https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor">
23
+ <img src="https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge" alt="OpenSSF Scorecard">
24
+ </a>
25
+ <a href="https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml">
26
+ <img src="https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg" alt="Quality Checks">
27
+ </a>
28
+ <a href="https://www.bestpractices.dev/projects/12069">
29
+ <img src="https://www.bestpractices.dev/projects/12069/badge" alt="OpenSSF Best Practices">
30
+ </a>
31
+ <a href="https://github.com/Hack23/riksdagsmonitor/license">
32
+ <img src="https://img.shields.io/github/license/Hack23/riksdagsmonitor" alt="License">
33
+ </a>
34
+ </div>
35
+ <div>
36
+ <a href="https://riksdagsmonitor.com"><strong>๐ŸŒ Official Website</strong></a> โ€ข
37
+ <a href="https://github.com/Hack23/riksdagsmonitor"><strong>๐Ÿ“‚ Repository</strong></a> โ€ข
38
+ <a href="https://hack23.com/riksdagsmonitor-features.html"><strong>โœจ Features</strong></a> โ€ข
39
+ <a href="https://hack23.com/riksdagsmonitor-docs.html"><strong>๐Ÿ“š Documentation</strong></a>
40
+ </div>
41
+ </td>
42
+ </tr>
43
+ </table>
44
+
45
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge)](https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor)
46
+ [![Quality Checks](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml)
47
+ [![Dependency Review](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml)
48
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12069/badge)](https://www.bestpractices.dev/projects/12069)
49
+ [![License](https://img.shields.io/github/license/Hack23/riksdagsmonitor)](https://github.com/Hack23/riksdagsmonitor/blob/main/LICENSE)
50
+ [![ISMS](https://img.shields.io/badge/Hack23-ISMS-blue)](https://github.com/Hack23/ISMS-PUBLIC)
51
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hack23/riksdagsmonitor)
52
+
53
+
54
+
55
+ ## ๐Ÿ“Š Quality Metrics
56
+
57
+ ### CI/CD & Security
58
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge)](https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor)
59
+ [![Quality Checks](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml)
60
+ [![Dependency Review](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml)
61
+ [![CodeQL](https://github.com/Hack23/riksdagsmonitor/actions/workflows/codeql.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/codeql.yml)
62
+
63
+ ### Testing
64
+ [![JavaScript Testing](https://github.com/Hack23/riksdagsmonitor/actions/workflows/javascript-testing.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/javascript-testing.yml)
65
+ [![JSDoc Validation](https://github.com/Hack23/riksdagsmonitor/actions/workflows/jsdoc-validation.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/jsdoc-validation.yml)
66
+ [![Translation Validation](https://github.com/Hack23/riksdagsmonitor/actions/workflows/translation-validation.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/translation-validation.yml)
67
+
68
+ ### Documentation & Release
69
+ [![Release](https://github.com/Hack23/riksdagsmonitor/actions/workflows/release.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/release.yml)
70
+ [![API Docs](https://img.shields.io/badge/API-Documentation-blue?logo=javascript)](https://riksdagsmonitor.com/docs/api/)
71
+ [![Test Coverage](https://img.shields.io/badge/Coverage-Reports-green?logo=vitest)](https://riksdagsmonitor.com/docs/coverage/)
72
+ [![E2E Reports](https://img.shields.io/badge/E2E-Cypress_Reports-green?logo=cypress)](https://riksdagsmonitor.com/docs/cypress/)
73
+
74
+ ### Compliance & Standards
75
+ [![License](https://img.shields.io/github/license/Hack23/riksdagsmonitor)](LICENSE)
76
+ [![ISMS](https://img.shields.io/badge/Hack23-ISMS-blue?logo=shield)](https://github.com/Hack23/ISMS-PUBLIC)
77
+ [![ISO 27001](https://img.shields.io/badge/ISO-27001:2022-purple?logo=iso)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)
78
+ [![NIST CSF](https://img.shields.io/badge/NIST-CSF_2.0-orange?logo=nist)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)
79
+ [![CIS Controls](https://img.shields.io/badge/CIS-Controls_v8.1-red?logo=cisecurity)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)
80
+ [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hack23/riksdagsmonitor)
81
+
82
+ **Security Policy:** Per [Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md), we maintain defense-in-depth architecture with comprehensive security controls and documentation. See [WORKFLOWS.md](WORKFLOWS.md) for complete CI/CD pipeline documentation and [SECURITY_ARCHITECTURE.md](SECURITY_ARCHITECTURE.md) for security controls.
83
+
84
+ ## ๐Ÿ“Š Project Classification
85
+
86
+ Riksdagsmonitor follows Hack23 AB's comprehensive [Classification Framework](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md) for security, business continuity, and impact analysis:
87
+
88
+ ### ๐ŸŽฏ Project Classification
89
+ [![Project Type](https://img.shields.io/badge/Type-Frontend_Apps-yellow?style=for-the-badge&logo=window-maximize&logoColor=black)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#project-type-classifications)
90
+ [![Process Type](https://img.shields.io/badge/Process-Development-cyan?style=for-the-badge&logo=code&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#project-type-classifications)
91
+
92
+ ### ๐Ÿ”’ Security Classification (CIA Triad)
93
+ [![Confidentiality](https://img.shields.io/badge/Confidentiality-Public-lightgrey?style=for-the-badge&logo=shield&logoColor=black)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#confidentiality-levels)
94
+ [![Integrity](https://img.shields.io/badge/Integrity-High-orange?style=for-the-badge&logo=check-circle&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#integrity-levels)
95
+ [![Availability](https://img.shields.io/badge/Availability-High-orange?style=for-the-badge&logo=server&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#availability-levels)
96
+
97
+ **Confidentiality:** Public - All information intentionally disclosed (Swedish Riksdag open data, website content)
98
+ **Integrity:** High - Automated validation, digital signatures (Git commits), accurate political data required
99
+ **Availability:** High - 99.998% design availability target (underpinned by AWS CloudFront 99.9% SLA), automated failover (AWS multi-region, GitHub Pages DR)
100
+
101
+ ### ๐Ÿท๏ธ Privacy Classification
102
+ [![Privacy](https://img.shields.io/badge/Privacy-Personal-orange?style=for-the-badge&logo=user-shield&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#privacy-levels)
103
+
104
+ **Personal Data (Public Officials):** This project processes personal data about public officials (e.g., names, roles, voting records, person identifiers) sourced from Swedish Riksdag open data and the Citizen Intelligence Agency (CIA) datasets. Data relates only to MPs and other public figures acting in their official capacity; no special-category data or data about private individuals is processed. GDPR applies, with processing based on public-interest and legitimate-interest grounds for transparency and democratic accountability.
105
+
106
+ ### โฑ๏ธ Business Continuity Classification
107
+ [![RTO](https://img.shields.io/badge/RTO-High_%281--4hrs%29-yellow?style=for-the-badge&logo=clock&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#rto-classifications)
108
+ [![RPO](https://img.shields.io/badge/RPO-Daily_%284--24hrs%29-lightblue?style=for-the-badge&logo=database&logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#rpo-classifications)
109
+
110
+ **RTO (Recovery Time Objective):** 1-4 hours - Automated multi-region failover (AWS CloudFront + S3 us-east-1 primary, eu-west-1 replica, GitHub Pages DR)
111
+ **RPO (Recovery Point Objective):** 4-24 hours - Daily data pipeline updates, Git version control, S3 versioning
112
+
113
+ ### ๐Ÿ’ฐ Business Impact Analysis
114
+
115
+ | Impact Category | Level | Description |
116
+ |-----------------|-------|-------------|
117
+ | **Financial** | [![Low](https://img.shields.io/badge/Low-lightgreen?style=flat-square)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#financial-impact-levels) | Minimal financial impact (<$500 daily) - Open-source project, no revenue dependency |
118
+ | **Operational** | [![Moderate](https://img.shields.io/badge/Moderate-yellow?style=flat-square)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#operational-impact-levels) | Partial service impact - Swedish political transparency temporarily unavailable |
119
+ | **Reputational** | [![Moderate](https://img.shields.io/badge/Moderate-yellow?style=flat-square)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#reputational-impact-levels) | Industry attention - Transparency advocates may notice outage |
120
+ | **Regulatory** | [![Low](https://img.shields.io/badge/Low-lightgreen?style=flat-square)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#regulatory-impact-levels) | No regulatory impact - Public information dissemination only |
121
+
122
+ ### ๐Ÿ“‹ Data Classification Levels
123
+
124
+ For operational data handling, we use a simplified 4-level scheme:
125
+
126
+ | Classification | Description | Examples | Handling Requirements |
127
+ |----------------|-------------|----------|----------------------|
128
+ | ๐ŸŸข **Public** | Information intended for public disclosure | Website content, Swedish Riksdag open data, documentation | No restrictions, published on GitHub Pages |
129
+ | ๐ŸŸก **Internal** | Information for internal use only | GitHub Actions secrets, deployment credentials | GitHub organization access only, MFA required |
130
+ | ๐ŸŸ  **Confidential** | Sensitive business information | Not applicable to this project | N/A |
131
+ | ๐Ÿ”ด **Restricted** | Highly sensitive information | Not applicable to this project | N/A |
132
+
133
+ ### ๐Ÿ“ฆ Data Inventory
134
+
135
+ **Public Data (๐ŸŸข):**
136
+ - All website HTML/CSS content (14 languages)
137
+ - Swedish Parliament data (MPs, votes, documents, committees)
138
+ - Election results and statistics
139
+ - Government budget and spending data
140
+ - All source code and documentation
141
+
142
+ **Internal Data (๐ŸŸก):**
143
+ - GitHub Actions secrets (tokens if used; no long-lived PATs)
144
+ - AWS IAM credentials (ephemeral via OIDC)
145
+ - Deployment pipeline configurations
146
+
147
+ **No User or Confidential Data:**
148
+ - โŒ No user accounts or authentication
149
+ - โŒ No non-public or end-user personally identifiable information (PII)
150
+ - โœ… Only public-figure data from official Swedish Parliament records (MP names, roles, votes)
151
+ - โŒ No financial transactions or payment data
152
+ - โŒ No confidential government information
153
+
154
+ ### ๐Ÿ” Data Handling Controls
155
+
156
+ **Public Data:**
157
+ - Published via GitHub Pages and AWS CloudFront
158
+ - TLS 1.3 encryption in transit
159
+ - No access controls required (intentionally public)
160
+ - Version controlled via Git
161
+
162
+ **Internal Data:**
163
+ - Stored in GitHub Secrets (encrypted at rest)
164
+ - AWS credentials via OIDC (no long-lived keys)
165
+ - Accessed only via secure GitHub Actions workflows
166
+ - Least privilege principle enforced
167
+ - Regular rotation and audit
168
+
169
+ ### ๐Ÿ“‹ Compliance Alignment
170
+
171
+ - **ISO 27001:2022 A.8** - Asset Management
172
+ - **NIST CSF 2.0 PR.DS** - Data Security
173
+ - **CIS Controls v8.1 Control 3** - Data Protection
174
+ - **GDPR** - Applicable for public-official data processing (public interest and legitimate interest grounds)
175
+ - **Hack23 Classification Framework** - [Full framework documentation](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md)
176
+
177
+ See [SECURITY_ARCHITECTURE.md](SECURITY_ARCHITECTURE.md) for detailed security controls.
178
+
179
+ ## โœจ Features
180
+
181
+ - **349 Current MPs** - Individual MP tracking and performance metrics
182
+ - **2,494 Historical Politicians** - Complete database from 1971-2024 (50+ years)
183
+ - **8 Political Parties** - Party performance, coalition dynamics, voting patterns
184
+ - **45 Risk Rules** - Systematic transparency through behavioral analysis
185
+ - **3.5+ Million Votes** - Comprehensive voting record analysis
186
+ - **109,000+ Documents** - Parliamentary documents processed and analyzed
187
+
188
+ ## ๐ŸŒ Live Platform
189
+
190
+ **Website:** [riksdagsmonitor.com](https://riksdagsmonitor.com)
191
+
192
+ **Available in 14 Languages:**
193
+ - English, Swedish, Danish, Norwegian, Finnish
194
+ - German, French, Spanish, Dutch
195
+ - Arabic, Hebrew, Japanese, Korean, Chinese
196
+
197
+ ## ๐Ÿ“Š CIA Data Products Integration
198
+
199
+ Riksdagsmonitor integrates with the CIA platform through automated data pipelines, schema validation, and daily statistics updates.
200
+
201
+ ### Production Database Statistics
202
+
203
+ **Live Statistics** (Updated Daily at 03:00 CET):
204
+ - **2,494 Politicians** - Complete historical database (1971-2024)
205
+ - **349 Current MPs** - Active Members of Parliament
206
+ - **3.5+ Million Votes** - Comprehensive voting records
207
+ - **109,000+ Documents** - Parliamentary documents processed
208
+ - **8,740 Committee Documents** - Committee work tracked
209
+ - **2,308 Rule Violations** - Transparency issues identified
210
+
211
+ **Data Source**: [extraction_summary_report.csv](https://github.com/Hack23/cia/blob/master/service.data.impl/sample-data/extraction_summary_report.csv)
212
+ **Update Schedule**: Daily automated fetch via GitHub Actions
213
+ **Last Extraction**: See `cia-data/production-stats.json` โ†’ `metadata.last_updated` (updated daily)
214
+
215
+ **Implementation**:
216
+ - `scripts/load-cia-stats.js` - Fetches and parses production statistics
217
+ - `scripts/update-stats-from-cia.js` - Updates website files
218
+ - `.github/workflows/update-cia-stats.yml` - Automated daily workflow
219
+ - `cia-data/production-stats.json` - Cached statistics (24-hour freshness)
220
+
221
+ ### Schema Integration
222
+ - **Automated Validation** - All CIA exports validated against JSON schemas
223
+ - **Type Safety** - TypeScript type definitions for development
224
+ - **CI/CD Integration** - Daily validation checks in GitHub Actions
225
+ - **Update Detection** - Weekly checks for schema updates
226
+
227
+ See [CIA Schema Integration Documentation](docs/CIA_SCHEMA_INTEGRATION.md) for details.
228
+
229
+ ### Data Products
230
+
231
+ Riksdagsmonitor leverages 19 comprehensive visualization products from the CIA platform:
232
+
233
+ ### Intelligence Dashboards
234
+ - **Overview Dashboard** - Complete Riksdag intelligence snapshot
235
+ - **Party Performance** - Longitudinal party analysis and effectiveness metrics
236
+ - **Government Cabinet** - Ministry-level performance scorecards
237
+ - **Election Cycle Analysis** - Historical patterns and trend forecasting
238
+
239
+ ### Top 10 Rankings
240
+ - Most Influential MPs (network analysis)
241
+ - Most Productive MPs (legislative output)
242
+ - Most Controversial MPs (voting patterns)
243
+ - Most Absent MPs (attendance tracking)
244
+ - Party Rebels (cross-party voting)
245
+ - Coalition Brokers (collaboration patterns)
246
+ - Rising Stars (emerging political figures)
247
+ - Electoral Risk (MPs at risk)
248
+ - Ethics Concerns (transparency issues)
249
+ - Media Presence (public visibility)
250
+
251
+ ### Advanced Analytics
252
+ - **Committee Network Analysis** - Influence mapping and assignments
253
+ - **Politician Career Analysis** - Career trajectories and milestones
254
+ - **Party Longitudinal Analysis** - 50+ years of party evolution
255
+
256
+ ## ๐Ÿ“ˆ Implemented Dashboards
257
+
258
+ Riksdagsmonitor currently features 4 interactive intelligence dashboards built with Chart.js and D3.js:
259
+
260
+ ### 1. ๐ŸŒก๏ธ Seasonal Activity Patterns Dashboard
261
+ - **Coverage**: 2002-2025 (quarterly data, 23+ years)
262
+ - **Visualizations**: Heat maps, time series, Z-score analysis
263
+ - **Purpose**: Track quarterly parliamentary activity patterns and detect seasonal trends
264
+ - **Data Source**: `cia-data/seasonal/view_riksdagen_seasonal_activity_patterns_sample.csv`
265
+
266
+ ### 2. ๐Ÿ‘ค Politician Dashboard
267
+ - **Coverage**: 349 MPs with comprehensive risk and performance metrics
268
+ - **Visualizations**: Top 10 rankings, risk profiles, influence metrics
269
+ - **Purpose**: Individual MP tracking and transparency assessment
270
+ - **Data Source**: `cia-data/politician/*.csv`
271
+
272
+ ### 3. ๐Ÿ—ณ๏ธ Pre-Election Monitoring Dashboard
273
+ - **Coverage**: Q4 2023-2025 (12-15 months before 2026 election)
274
+ - **Visualizations**: Historical comparisons, election-year patterns
275
+ - **Purpose**: Track pre-election parliamentary activity and behavior changes
276
+ - **Data Source**: `cia-data/pre-election/*.csv`
277
+
278
+ ### 4. ๐Ÿ—ณ๏ธ Party Performance & Effectiveness Dashboard
279
+
280
+ **Coverage:** 1990-2026 (37 years)
281
+ **Analysis:** Comprehensive party analytics across 8 Swedish political parties
282
+
283
+ **Key Features:**
284
+ - **Effectiveness Trends:** Historical legislative productivity and voting consistency
285
+ - **Comparative Analysis:** Party-by-party benchmarking
286
+ - **Coalition Patterns:** Party alignment visualization
287
+ - **Momentum Indicators:** Electoral trajectory with percentile benchmarks
288
+
289
+ ### 5. ๐Ÿšจ Anomaly Detection & Early Warning System
290
+ - **Coverage**: 2002-2026 (41 quarters analyzed)
291
+ - **Visualizations**: 6 interactive charts including timeline, Z-score distribution, heat map
292
+ - **Features**:
293
+ - Real-time alert system for critical anomalies
294
+ - Statistical Z-score analysis (|Z| โ‰ฅ 2.0 for anomalies)
295
+ - Severity classification: CRITICAL (โ‰ฅ2.5), HIGH (โ‰ฅ2.0), MODERATE (โ‰ฅ1.5), LOW (<1.5)
296
+ - Anomaly types: Ballot, Document, Attendance
297
+ - Direction indicators: UNUSUALLY_HIGH, UNUSUALLY_LOW
298
+ - **Data Source**: `cia-data/seasonal/view_riksdagen_seasonal_anomaly_detection_sample.csv`
299
+
300
+ **Dashboard Features**:
301
+ - Local-first data loading (1-hour caching)
302
+ - WCAG 2.1 AA accessible
303
+ - 14-language support
304
+ - Responsive design (320px-1440px+)
305
+ - CSP-compliant (SRI hashes on all CDN resources)
306
+ ## ๐Ÿ”— Data Sources
307
+
308
+ Riksdagsmonitor integrates multiple authoritative Swedish open data sources:
309
+
310
+ - **[Swedish Parliament (Riksdagen)](http://data.riksdagen.se/)** - Votes, documents, committee work, MP information
311
+ - **[Swedish Election Authority](http://www.val.se/)** - Election results, voter turnout, electoral statistics
312
+ - **[Swedish Financial Management Authority](https://www.esv.se/psidata/)** - Government budget and spending data
313
+ - **[World Bank Open Data](http://data.worldbank.org/)** - Country-level indicators for comparative analysis
314
+
315
+ ## ๐Ÿ—๏ธ Technical Architecture
316
+
317
+ ### Stack
318
+ - **Frontend:** Static HTML/CSS with JavaScript dashboards
319
+ - **Build System:** Vite 7 (ES modules, code splitting)
320
+ - **Visualization:** Chart.js 4 + D3.js 7 hosted locally on CloudFront
321
+ - **Testing:** Vitest (unit), Cypress (E2E) - 2890 tests passing
322
+ - **Styling:** Custom CSS with cyberpunk theme, responsive design
323
+ - **Hosting:** GitHub Pages with CloudFront CDN
324
+ - **CI/CD:** GitHub Actions for automated testing and deployment
325
+ - **Data Platform:** CIA OSINT platform (Java/Spring Boot backend)
326
+ - **Runtime:** Node.js 25.x
327
+
328
+ ### JavaScript Architecture
329
+ - **8 Dashboard Modules:**
330
+ - party-dashboard.js (effectiveness analytics)
331
+ - anomaly-detection-dashboard.js (statistical outliers)
332
+ - seasonal-patterns-dashboard.js (temporal trends)
333
+ - pre-election-dashboard.js (election monitoring)
334
+ - politician-dashboard.js (MP tracking)
335
+ - ministry-dashboard.js (cabinet analysis)
336
+ - election-cycle-dashboard.js (cycle patterns)
337
+ - back-to-top.js (navigation)
338
+
339
+ - **Data Loading:** Local-first with GitHub fallback
340
+ - **Caching:** LocalStorage with freshness checks (1-7 days)
341
+ - **Performance:** Code splitting, lazy loading, asset optimization
342
+ - **Security:** SRI hashes (sha384), CSP-compliant script loading
343
+
344
+ ### Security
345
+ - **HTTPS-Only:** TLS 1.3 encryption enforced
346
+ - **Security Headers:** CSP, HSTS, X-Frame-Options, X-Content-Type-Options
347
+ - **Access Control:** GitHub MFA, SSH keys, GPG commit signing
348
+ - **Monitoring:** Dependabot, CodeQL, Secret Scanning
349
+ - **Documentation:** [SECURITY_ARCHITECTURE.md](SECURITY_ARCHITECTURE.md), [THREAT_MODEL.md](THREAT_MODEL.md)
350
+
351
+ ## ๐Ÿ” Commitment to Transparency and Security
352
+
353
+ At Hack23 AB, we believe that true security comes through transparency and demonstrable practices. Our Information Security Management System (ISMS) is publicly available, showcasing our commitment to security excellence and organizational transparency.
354
+
355
+ <table>
356
+ <tr>
357
+ <td width="50%">
358
+ <div align="center">
359
+ <h3>๐Ÿ“‹ ISMS Compliance</h3>
360
+ <p><strong>ISO 27001:2022 Aligned</strong></p>
361
+ <ul align="left">
362
+ <li><a href="https://github.com/Hack23/ISMS-PUBLIC">ISMS Repository</a></li>
363
+ <li><a href="https://github.com/Hack23/ISMS-PUBLIC">Public ISMS</a></li>
364
+ <li><a href="https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md">Secure Development Policy</a></li>
365
+ <li><a href="https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md">Threat Modeling</a></li>
366
+ <li><a href="https://github.com/Hack23/ISMS-PUBLIC/blob/main/Compliance_Checklist.md">Compliance Checklist</a></li>
367
+ </ul>
368
+ </div>
369
+ </td>
370
+ <td width="50%">
371
+ <div align="center">
372
+ <h3>๐Ÿ›ก๏ธ Security Documentation</h3>
373
+ <p><strong>Defense-in-Depth Architecture</strong></p>
374
+ <ul align="left">
375
+ <li><a href="SECURITY_ARCHITECTURE.md">Security Architecture</a></li>
376
+ <li><a href="THREAT_MODEL.md">Threat Model</a></li>
377
+ <li><a href="WORKFLOWS.md">CI/CD Workflows</a></li>
378
+ <li><a href="ARCHITECTURE.md">System Architecture</a></li>
379
+ <li><a href="FUTURE_SECURITY_ARCHITECTURE.md">Future Security</a></li>
380
+ </ul>
381
+ </div>
382
+ </td>
383
+ </tr>
384
+ </table>
385
+
386
+ ### Compliance Frameworks
387
+ - **ISO 27001:2022** - Information security management controls (7 controls implemented)
388
+ - **NIST CSF 2.0** - Cybersecurity framework (6 functions aligned)
389
+ - **CIS Controls v8.1** - Security best practices (6 controls implemented)
390
+
391
+ ### Security Metrics
392
+
393
+ | Metric | Status | Details |
394
+ |--------|--------|---------|
395
+ | **Risk Level** | ๐ŸŸข LOW | 5.52/10.0 (99.7% risk reduction) |
396
+ | **HTML Validation** | โœ… PASSED | 0 errors (HTMLHint) |
397
+ | **Dependencies** | โœ… CLEAN | Dependabot monitoring |
398
+ | **Secrets** | โœ… SECURE | Secret scanning enabled |
399
+ | **Code Scanning** | โœ… ACTIVE | CodeQL analysis |
400
+
401
+ ## ๐Ÿš€ Development
402
+
403
+ ### Prerequisites
404
+ - **Node.js**: 25.x or higher
405
+ - **npm**: 10.x or higher (comes with Node.js)
406
+ - Git with GPG signing configured
407
+ - GitHub account with MFA enabled
408
+ - SSH keys for GitHub authentication
409
+
410
+ ### Local Development
411
+
412
+ ```bash
413
+ # Clone repository
414
+ git clone git@github.com:Hack23/riksdagsmonitor.git
415
+ cd riksdagsmonitor
416
+
417
+ # Install dependencies
418
+ npm install
419
+
420
+ # Development server with Vite (hot reload)
421
+ npm run dev
422
+ # Opens http://localhost:8080
423
+
424
+ # OR serve statically
425
+ python3 -m http.server 8080
426
+ # or
427
+ npx http-server -p 8080
428
+
429
+ # Open in browser
430
+ open http://localhost:8080
431
+ ```
432
+
433
+ ### Testing
434
+
435
+ ```bash
436
+ # Install dependencies (if not already done)
437
+ npm install
438
+
439
+ # Run unit tests (Vitest)
440
+ npm test
441
+
442
+ # Run tests in watch mode
443
+ npm run test:watch
444
+
445
+ # Run tests with coverage
446
+ npm run test:coverage
447
+
448
+ # Run tests with UI
449
+ npm run test:ui
450
+
451
+ # Run E2E tests (Cypress)
452
+ npm run cypress:open # Interactive GUI
453
+ npm run cypress:run # Headless
454
+
455
+ # Full E2E test suite
456
+ npm run e2e # Builds, previews, and runs Cypress
457
+ ```
458
+
459
+ ### Building for Production
460
+
461
+ ```bash
462
+ # Build with Vite
463
+ npm run build
464
+
465
+ # Preview production build
466
+ npm run preview
467
+ # Opens http://localhost:4173
468
+
469
+ # Build output in dist/
470
+ ls dist/
471
+ ```
472
+
473
+ ### Quality Checks
474
+
475
+ ```bash
476
+ # HTML validation
477
+ npm run htmlhint
478
+
479
+ # Link checking
480
+ python3 -m http.server 8080 &
481
+ npm run linkcheck
482
+
483
+ # Run all quality checks
484
+ npm run htmlhint && npm test && npm run build
485
+ ```
486
+
487
+ ### CI/CD Pipeline
488
+
489
+ **Automated Checks:**
490
+ - HTML validation (HTMLHint)
491
+ - Link checking (linkinator)
492
+ - JavaScript testing (Vitest unit tests - 2890 tests)
493
+ - E2E testing (Cypress)
494
+ - Build validation (Vite)
495
+ - Dependency review (Dependabot)
496
+ - Security scanning (CodeQL, Secret Scanning)
497
+
498
+ **Workflows:**
499
+ - `.github/workflows/quality-checks.yml` - HTML/link validation
500
+ - `.github/workflows/javascript-testing.yml` - Vite build, Vitest, Cypress E2E
501
+ - `.github/workflows/dependency-review.yml` - Dependency security
502
+ - `.github/workflows/copilot-setup-steps.yml` - Copilot agent setup
503
+ - `.github/workflows/release.yml` - Release with attestations and documentation-as-code
504
+
505
+ **Test Results**:
506
+ - โœ… 2890/2890 unit tests passing (Vitest)
507
+ - โœ… 100% test pass rate
508
+ - โœ… Coverage: 70% lines, 70% functions, 60% branches
509
+
510
+ ## ๐Ÿš€ Release Process
511
+
512
+ Riksdagsmonitor follows a comprehensive release process with full supply chain security:
513
+
514
+ ### Release Workflow
515
+
516
+ - **Trigger**: Manual (workflow_dispatch) or tag push (v*.*.*)
517
+ - **Duration**: ~20-30 minutes
518
+ - **Jobs**: Prepare โ†’ Build โ†’ Release
519
+
520
+ ### Release Artifacts
521
+
522
+ Each release includes:
523
+ - โœ… Production build (`riksdagsmonitor-vX.Y.Z.zip`)
524
+ - โœ… SHA-256 checksum for verification
525
+ - โœ… SBOM in SPDX format (Software Bill of Materials)
526
+ - โœ… SLSA Build Provenance attestations (signed)
527
+
528
+ ### Documentation as Code
529
+
530
+ Every release automatically generates and publishes:
531
+ - ๐Ÿ“š API Documentation (JSDoc)
532
+ - ๐Ÿ“Š Test Coverage Report (Vitest)
533
+ - ๐Ÿงช E2E Test Reports (Cypress)
534
+ - ๐Ÿ“ฆ Dependency Tree (npm)
535
+
536
+ **Documentation Hub**: [riksdagsmonitor.com/docs/](https://riksdagsmonitor.com/docs/)
537
+
538
+ ### Dual Deployment
539
+
540
+ - **Primary**: AWS S3/CloudFront (https://riksdagsmonitor.com)
541
+ - **Backup**: GitHub Pages (disaster recovery)
542
+
543
+ ### Security & Verification
544
+
545
+ Verify attestations using GitHub CLI:
546
+ ```bash
547
+ gh attestation verify riksdagsmonitor-v1.0.0.zip -R Hack23/riksdagsmonitor
548
+ ```
549
+
550
+ **Full Release Guide**: See [RELEASE_PROCESS.md](RELEASE_PROCESS.md)
551
+
552
+ ## ๐Ÿ“– Documentation
553
+
554
+ ### Project Documentation
555
+ - [README.md](README.md) - This file
556
+ - [RELEASE_PROCESS.md](RELEASE_PROCESS.md) - Comprehensive release guide with attestations โœจ **NEW**
557
+ - [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) - Multi-language translation standards and glossary
558
+ - [SECURITY.md](SECURITY.md) - Security policy and vulnerability reporting โœจ **NEW**
559
+ - [CONTRIBUTING.md](CONTRIBUTING.md) - Contribution guidelines โœจ **NEW**
560
+ - [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) - Community standards โœจ **NEW**
561
+ - [LICENSE](LICENSE) - Apache License 2.0
562
+
563
+ ### Architecture Documentation Portfolio
564
+ | Current State | Future State |
565
+ |--------------|-------------|
566
+ | [๐Ÿ—๏ธ Architecture](ARCHITECTURE.md) | [๐Ÿš€ Future Architecture](FUTURE_ARCHITECTURE.md) |
567
+ | [๐Ÿ“Š Data Model](DATA_MODEL.md) | [๐Ÿ“Š Future Data Model](FUTURE_DATA_MODEL.md) |
568
+ | [๐Ÿ”„ Flowcharts](FLOWCHART.md) | [๐Ÿ”„ Future Flowcharts](FUTURE_FLOWCHART.md) |
569
+ | [๐Ÿ”„ State Diagrams](STATEDIAGRAM.md) | [๐Ÿ”„ Future State Diagrams](FUTURE_STATEDIAGRAM.md) |
570
+ | [๐Ÿ—บ๏ธ Mindmap](MINDMAP.md) | [๐Ÿ—บ๏ธ Future Mindmap](FUTURE_MINDMAP.md) |
571
+ | [๐Ÿ’ผ SWOT](SWOT.md) | [๐Ÿ’ผ Future SWOT](FUTURE_SWOT.md) |
572
+
573
+ ### Security Documentation
574
+ - [๐Ÿ›ก๏ธ Security Architecture](SECURITY_ARCHITECTURE.md) - Defense-in-depth security controls
575
+ - [๐Ÿ”ฎ Future Security Architecture](FUTURE_SECURITY_ARCHITECTURE.md) - Security roadmap
576
+ - [๐ŸŽฏ Threat Model](THREAT_MODEL.md) - STRIDE threat analysis and risk assessment
577
+ - [๐Ÿ›ก๏ธ CRA Assessment](CRA-ASSESSMENT.md) - EU Cyber Resilience Act conformity
578
+ - [๐Ÿ”ง Workflows](WORKFLOWS.md) - CI/CD workflows and automation
579
+ - [๐Ÿ” Security Policy](SECURITY.md) - Vulnerability reporting and disclosure
580
+
581
+ ### ISMS Policy Alignment
582
+ - [๐Ÿ›ก๏ธ Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md) โ€” Architecture documentation requirements
583
+ - [๐Ÿ”“ Open Source Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Open_Source_Policy.md) โ€” OSS governance, license compliance, security posture evidence
584
+ - [๐Ÿ›ก๏ธ CRA Conformity Assessment Process](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CRA_Conformity_Assessment_Process.md) โ€” CRA self-assessment template and methodology
585
+ - [๐ŸŽฏ Threat Modeling Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md) โ€” STRIDE/MITRE ATT&CK methodology
586
+ - [๐Ÿท๏ธ Classification Framework](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md) โ€” CIA triad, RTO/RPO, business impact
587
+
588
+ ### GitHub Copilot Integration
589
+ - [AGENTS.md](AGENTS.md) - Custom Copilot agents for specialized tasks (14 agents)
590
+ - [SKILLS.md](SKILLS.md) - Agent skills for strategic guidance (87 skills)
591
+ - [`.github/agents/`](.github/agents/) - Agent configuration files
592
+ - [`.github/skills/`](.github/skills/) - Skill libraries
593
+
594
+ **Available Agents (14)**:
595
+ - **security-architect** - Security architecture and ISMS compliance
596
+ - **documentation-architect** - C4 models and technical documentation
597
+ - **quality-engineer** - HTML/CSS validation and accessibility
598
+ - **frontend-specialist** - Static site development and responsive design
599
+ - **isms-compliance-manager** - ISO 27001/NIST CSF/CIS Controls compliance
600
+ - **deployment-specialist** - GitHub Actions and CI/CD automation
601
+ - **intelligence-operative** - Political intelligence analysis, OSINT, Swedish politics expertise, riksdag-regering-mcp (32 tools)
602
+ - **task-agent** - Product excellence, quality assurance, Playwright testing, issue management
603
+ - **ui-enhancement-specialist** - Static HTML/CSS, responsive design, 14-language support, WCAG 2.1 AA
604
+ - **data-pipeline-specialist** - CIA data consumption, ETL workflows, caching strategies, data validation
605
+ - **data-visualization-specialist** - Chart.js/D3.js, interactive dashboards, CIA intelligence visualizations
606
+ - **content-generator** - Automated news generation, intelligence reports, multi-language content
607
+ - **devops-engineer** - CI/CD pipelines, GitHub Actions security, infrastructure automation, monitoring
608
+ - **news-journalist** - Political journalism, editorial standards, multi-language news coverage
609
+
610
+ **Available Skills (87)**:
611
+
612
+ *Core Infrastructure (7):*
613
+ - **hack23-isms-compliance** - ISMS framework requirements
614
+ - **security-by-design** - Security best practices
615
+ - **static-site-security** - Static website security
616
+ - **ci-cd-security** - GitHub Actions security hardening
617
+ - **documentation-standards** - Documentation guidelines
618
+ - **html-accessibility** - WCAG 2.1 AA compliance
619
+ - **multi-language-localization** - Internationalization best practices
620
+
621
+ *Political Intelligence (11):*
622
+ - **political-science-analysis** - Comparative politics and policy analysis frameworks
623
+ - **osint-methodologies** - Open-source intelligence collection and verification
624
+ - **intelligence-analysis-techniques** - Structured analytic techniques (ACH, SWOT)
625
+ - **swedish-political-system** - Riksdag structure, 8 parties, electoral system
626
+ - **electoral-analysis** - Election forecasting and coalition prediction
627
+ - **behavioral-analysis** - Political psychology and leadership analysis
628
+ - **strategic-communication-analysis** - Narrative analysis and media monitoring
629
+ - **legislative-monitoring** - Voting patterns and parliamentary oversight
630
+ - **risk-assessment-frameworks** - Political risk and corruption indicators
631
+ - **data-science-for-intelligence** - Statistical analysis and visualization
632
+ - **gdpr-compliance** - GDPR compliance for political data processing
633
+
634
+ *ISMS & Security (6):*
635
+ - **cis-controls** - CIS Controls v8.1 for static sites
636
+ - **iso-27001-controls** - ISO 27001:2022 Annex A controls
637
+ - **nist-csf-mapping** - NIST CSF 2.0 framework mapping
638
+ - **threat-modeling** - STRIDE threat analysis
639
+ - **secure-code-review** - HTML/CSS/JS security review
640
+ - **security-documentation** - ISMS documentation standards
641
+
642
+ *Development & Operations (11):* โฌ†๏ธ **EXPANDED**
643
+ - **c4-architecture-documentation** - C4 model and Mermaid diagrams
644
+ - **github-actions-workflows** - CI/CD patterns and security
645
+ - **code-quality-checks** - HTMLHint, CSSLint, linkinator, axe-core
646
+ - **secrets-management** - GitHub secrets and PAT management
647
+ - **data-pipeline-engineering** โœจ **NEW** - ETL workflows, automated data fetching
648
+ - **automated-content-generation** โœจ **NEW** - News generation, intelligence reports
649
+ - **performance-optimization** โœจ **NEW** - Core Web Vitals, bundle size, caching
650
+ - **api-integration** โœจ **NEW** - REST/GraphQL clients, rate limiting
651
+ - **github-agentic-workflows** โœจ **NEW** - AI-powered repository automation, MCP tools, safe outputs
652
+
653
+ *UI/UX & Design (4):* โฌ†๏ธ **EXPANDED**
654
+ - **responsive-design** - Mobile-first, CSS Grid/Flexbox, breakpoints (320px-1440px+)
655
+ - **design-system-management** - Cyberpunk theme, CSS variables, component library
656
+ - **political-data-visualization** - CSS-only charts, heat maps, dashboards
657
+ - **advanced-data-visualization** โœจ **NEW** - Chart.js/D3.js, interactive dashboards
658
+
659
+ *Testing & Quality Assurance (2):* โœจ **NEW**
660
+ - **playwright-testing** - Browser automation, visual regression, accessibility audits
661
+ - **issue-management** - GitHub issue creation, labeling, agent assignment
662
+
663
+ *Data Integration (2):* โฌ†๏ธ **EXPANDED**
664
+ - **riksdag-regering-mcp** - 32 political data tools (Parliament, Government, MPs, votes)
665
+ - **cia-data-integration** โœจ **NEW** - CIA export consumption, validation, caching strategies
666
+
667
+ ### External Documentation
668
+ - [CIA Platform Documentation](https://hack23.github.io/cia/)
669
+ - [CIA JSON Export Specifications](https://github.com/Hack23/cia/tree/master/json-export-specs/visualizations)
670
+ - [Hack23 ISMS](https://github.com/Hack23/ISMS)
671
+ - [Hack23 Public ISMS](https://github.com/Hack23/ISMS-PUBLIC)
672
+ - [Hack23 Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)
673
+ - [Hack23 Blog](https://hack23.com/blog.html)
674
+
675
+ ## ๐Ÿค– AI-Disrupted News Generation
676
+
677
+ > *"While traditional newsrooms debate whether AI will replace journalists, Riksdagsmonitor already runs a fully autonomous political intelligence newsroom โ€” 10 agentic workflows, 14 languages, zero human editors, and a publication schedule that would bankrupt any legacy outlet trying to keep up."*
678
+
679
+ Riksdagsmonitor's **agentic news generation pipeline** is the world's first fully AI-driven political intelligence newsroom for parliamentary monitoring. Powered by Claude Opus (currently 4.6) via GitHub Copilot Coding Agent, our 10 specialized workflows (9 scheduled + 1 on-demand) autonomously produce deep political analysis โ€” not shallow summaries, but structured intelligence products with source verification, multi-party balance, and GDPR-compliant OSINT methodology.
680
+
681
+ ### ๐Ÿ“ฐ Autonomous Publication Schedule
682
+
683
+ Every day, the platform's AI operatives awaken on cron schedules, query the Swedish Parliament's open data via **32 MCP tools**, cross-reference government sources, and generate publication-ready intelligence articles in **14 languages** โ€” including RTL support for Arabic and Hebrew.
684
+
685
+ | Time (UTC) | Workflow | Coverage | Frequency |
686
+ |:-----------:|:---------|:---------|:----------|
687
+ | ๐ŸŒ… 04:00 | **Committee Reports** | Utskottsbetรคnkanden analysis, voting breakdowns | Monโ€“Fri |
688
+ | ๐ŸŒ… 05:00 | **Propositions** | Government bills, legislative impact assessment | Monโ€“Fri |
689
+ | โ˜€๏ธ 06:00 | **Motions** | Opposition proposals, party strategy decoding | Monโ€“Fri |
690
+ | โ˜€๏ธ 07:00 | **Week Ahead** | Parliamentary calendar preview, agenda intelligence | Friday |
691
+ | โ˜€๏ธ 08:00 | **Month Ahead** | Strategic outlook, coalition forecasting | 1st of month |
692
+ | ๐Ÿ” 10:00 & 14:00 (Monโ€“Fri); 12:00 (Sat/Sun) | **Realtime Monitor** | Breaking political developments, flash analysis | Monโ€“Fri (ร—2) + weekends |
693
+ | ๐ŸŒ† 18:00 (16:00 Sat) | **Evening Analysis** | Deep-dive intelligence synthesis | Monโ€“Sat |
694
+ | ๐Ÿ“Š 09:00 | **Weekly Review** | Week-in-review scorecard, party performance | Saturday |
695
+ | ๐Ÿ“ˆ 10:00 | **Monthly Review** | Comprehensive monthly intelligence assessment | 28th of month |
696
+ | ๐Ÿ”ง Manual | **Article Generator** | On-demand article generation | On-demand |
697
+
698
+ > _All times are **UTC** (GitHub Actions cron). For local time, convert to CET/CEST. Authoritative schedules defined in `.github/workflows/news-*.lock.yml` workflows._
699
+
700
+ > **Result**: Dozens of articles per week across 14 languages โ€” delivering **hundreds of localized intelligence products each month**, generated autonomously with zero editorial intervention.
701
+
702
+ ### ๐Ÿง  Why This Is Different
703
+
704
+ Traditional AI-generated news is shallow โ€” it rewrites press releases. Riksdagsmonitor's agentic pipeline performs **deep political intelligence analysis**:
705
+
706
+ - ๐Ÿ”Ž **Source verification**: Every claim traced to official Riksdag/Regering data via MCP
707
+ - โš–๏ธ **Multi-party balance**: Algorithmic fairness across all 8 parliamentary parties
708
+ - ๐Ÿ“Š **Quantitative rigor**: Voting cohesion metrics, attendance scoring, legislative productivity indices
709
+ - ๐ŸŒ **14-language reach**: Native-quality political analysis โ€” not machine translation, but culturally adapted intelligence
710
+ - ๐Ÿ›ก๏ธ **GDPR-compliant OSINT**: Only public parliamentary data, with privacy-by-design architecture
711
+ - ๐Ÿงช **Quality gates**: HTMLHint validation, link checking, accessibility compliance (WCAG 2.1 AA) โ€” every article passes CI before publication
712
+
713
+ ---
714
+
715
+ ## ๐Ÿ”ฎ Future Roadmap: 2026โ€“2037
716
+
717
+ > *From agentic news generation to AGI-powered democratic intelligence โ€” the 11-year evolution of Riksdagsmonitor.*
718
+ >
719
+ > ๐Ÿ“‹ **Detailed planning**: [Future Workflows](FUTURE_WORKFLOWS.md) ยท [Future Mindmap](FUTURE_MINDMAP.md)
720
+
721
+ ### Evolution Overview
722
+
723
+ ```mermaid
724
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#00d9ff', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#ff006e', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27', 'background': '#0a0e27'}}}%%
725
+ timeline
726
+ title Riksdagsmonitor Evolution โ€” 2026 to 2037
727
+ section Phase 3 โ€” Foundation (2026)
728
+ Q1-Q2 : TypeScript migration โœ…
729
+ : 10 agentic news workflows โœ…
730
+ : 34 GitHub Actions workflows + 10 agent prompt files
731
+ : Dual deployment (S3 + GitHub Pages)
732
+ Q3-Q4 : CIA data pipeline integration
733
+ : Predictive dashboards
734
+ : 14-language expansion
735
+ : 40 GitHub Actions workflows + 10 agent prompt files
736
+ section Phase 4 โ€” Intelligence (2027-2029)
737
+ 2027 : Real-time data streams
738
+ : ML prediction models
739
+ : Multi-source OSINT
740
+ : Nordic parliament expansion
741
+ 2028 : Multi-modal content (audio/video)
742
+ : Self-healing pipelines
743
+ : AI editorial board
744
+ : 65 automation assets
745
+ 2029 : Fully autonomous pipeline
746
+ : Expert-level analysis
747
+ : API platform launch
748
+ : 75 automation assets
749
+ section Phase 5 โ€” Scale (2030-2033)
750
+ 2030-2031 : EU-wide coverage
751
+ : 85+ automation assets
752
+ : Near-expert analysis
753
+ : Sovereign AI evaluation
754
+ 2032-2033 : Global parliamentary monitoring
755
+ : 100 automation assets
756
+ : Pre-AGI capabilities
757
+ : Every UN language
758
+ section Phase 6 โ€” AGI Era (2034-2037)
759
+ 2034-2035 : AGI-enhanced intelligence
760
+ : 195 parliaments monitored
761
+ : Predictive governance
762
+ : 110+ automation assets
763
+ 2036-2037 : Transformative democracy platform
764
+ : 120+ automation assets
765
+ : Post-AGI capabilities
766
+ : Democratic safeguards architecture
767
+ ```
768
+
769
+ ### Phase 3: Agentic Intelligence Foundation (2026)
770
+
771
+ *Current phase โ€” AI-disrupted news generation operational*
772
+
773
+ ```mermaid
774
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#00d9ff', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#ff006e', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27'}}}%%
775
+ graph LR
776
+ subgraph SGCompleted["โœ… Completed"]
777
+ style SGCompleted fill:#006400,stroke:#00d9ff,color:#e0e0e0
778
+ A[TypeScript Migration<br/>31 modules] --> B[Agentic News Gen<br/>10 workflows]
779
+ B --> C[14 Languages<br/>RTL support]
780
+ C --> D[Dual Deploy<br/>S3 + GitHub Pages]
781
+ end
782
+ subgraph SGProgress["๐Ÿ”„ In Progress"]
783
+ style SGProgress fill:#1a1e3d,stroke:#ffbe0b,color:#e0e0e0
784
+ E[CIA Data Pipeline<br/>19 products] --> F[Predictive Dashboards<br/>Chart.js/D3.js]
785
+ F --> G[Content Expansion<br/>Hundreds of articles/month]
786
+ end
787
+ subgraph SGPlanned["๐Ÿ“‹ Planned"]
788
+ style SGPlanned fill:#0a0e27,stroke:#ff006e,color:#e0e0e0
789
+ H[API Platform<br/>GraphQL] --> I[Nordic Expansion<br/>Denmark, Norway, Finland]
790
+ end
791
+ D --> E
792
+ G --> H
793
+ ```
794
+
795
+ | Capability | Status | Details |
796
+ |:-----------|:------:|:--------|
797
+ | TypeScript migration | โœ… Done | 31 modules, 2890 Vitest tests |
798
+ | Agentic news generation | โœ… Live | 10 workflows (9 scheduled + 1 on-demand), 14 languages |
799
+ | 14-language support | โœ… Live | Including Arabic/Hebrew RTL |
800
+ | CIA data integration | ๐Ÿ”„ Active | 19 visualization products |
801
+ | Predictive dashboards | ๐Ÿ“‹ Planned | Chart.js/D3.js interactive displays |
802
+
803
+ ### Phase 4: Predictive Intelligence & Nordic Expansion (2027โ€“2029)
804
+
805
+ ```mermaid
806
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#00d9ff', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#ff006e', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27'}}}%%
807
+ graph TB
808
+ subgraph SG2027["2027 โ€” Predictive Analytics"]
809
+ style SG2027 fill:#1a1e3d,stroke:#00d9ff,color:#e0e0e0
810
+ PA1[๐Ÿ”ฎ ML Election Models<br/>Coalition probability scoring]
811
+ PA2[๐Ÿ“ก Real-Time Streams<br/>Live parliamentary feeds]
812
+ PA3[๐ŸŒ Nordic Expansion<br/>DK ยท NO ยท FI parliaments]
813
+ PA4[๐Ÿ” Multi-Source OSINT<br/>Media + social + official]
814
+ end
815
+ subgraph SG2028["2028 โ€” Multi-Modal Intelligence"]
816
+ style SG2028 fill:#1a1e3d,stroke:#ffbe0b,color:#e0e0e0
817
+ MM1[๐ŸŽ™๏ธ Audio/Video Analysis<br/>Debate tone detection]
818
+ MM2[๐Ÿค– AI Editorial Board<br/>Autonomous quality control]
819
+ MM3[๐Ÿ”ง Self-Healing Pipelines<br/>Auto-recovery workflows]
820
+ MM4[๐Ÿ“Š 65 Automation Assets]
821
+ end
822
+ subgraph SG2029["2029 โ€” Autonomous Platform"]
823
+ style SG2029 fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0
824
+ AP1[๐Ÿš€ Fully Autonomous Pipeline<br/>Zero human intervention]
825
+ AP2[๐Ÿง  Expert-Level Analysis<br/>PhD-equivalent insight]
826
+ AP3[๐Ÿ”Œ API Platform Launch<br/>GraphQL + REST]
827
+ AP4[๐Ÿ“Š 75 Automation Assets]
828
+ end
829
+ PA1 --> MM1
830
+ PA2 --> MM2
831
+ PA3 --> MM3
832
+ PA4 --> MM4
833
+ MM1 --> AP1
834
+ MM2 --> AP2
835
+ MM3 --> AP3
836
+ MM4 --> AP4
837
+ ```
838
+
839
+ ### Phase 5: EU-Wide Coverage & Pre-AGI (2030โ€“2033)
840
+
841
+ ```mermaid
842
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#00d9ff', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#ff006e', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27'}}}%%
843
+ graph LR
844
+ subgraph SGEU["2030-2031 โ€” EU Scale"]
845
+ style SGEU fill:#1a1e3d,stroke:#00d9ff,color:#e0e0e0
846
+ EU1[๐Ÿ‡ช๐Ÿ‡บ 27 EU Parliaments<br/>+ European Parliament]
847
+ EU2[๐Ÿง  Near-Expert Analysis<br/>Opus 8.x capabilities]
848
+ EU3[๐Ÿ“Š 85+ Automation Assets<br/>Continent-wide coverage]
849
+ EU4[๐Ÿ›๏ธ Sovereign AI Evaluation<br/>EU AI Act compliance]
850
+ end
851
+ subgraph SGGL["2032-2033 โ€” Global Reach"]
852
+ style SGGL fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0
853
+ GL1[๐ŸŒ Global Parliamentary Watch<br/>100+ democracies]
854
+ GL2[๐Ÿ—ฃ๏ธ Every UN Language<br/>Native-quality output]
855
+ GL3[๐Ÿ“Š 100 Automation Assets<br/>Pre-AGI capabilities]
856
+ GL4[๐Ÿ”’ Zero-Trust Architecture<br/>Quantum-safe cryptography]
857
+ end
858
+ EU1 --> GL1
859
+ EU2 --> GL2
860
+ EU3 --> GL3
861
+ EU4 --> GL4
862
+ ```
863
+
864
+ ### Phase 6: AGI Era & Transformative Democracy (2034โ€“2037)
865
+
866
+ > *When AGI or near-AGI systems emerge, Riksdagsmonitor's modular architecture is designed with flexibility to adapt to future AI paradigm shifts โ€” including potential AGI capabilities โ€” while maintaining democratic safeguards.*
867
+
868
+ ```mermaid
869
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#ff006e', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#00d9ff', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27'}}}%%
870
+ graph TB
871
+ subgraph SGAGI["๐Ÿค– 6.1 AGI-Enhanced Intelligence"]
872
+ style SGAGI fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0
873
+ AGI1["๐Ÿค– Autonomous Analysis<br/>Real-time intelligence across<br/>all 195 parliamentary systems"]
874
+ AGI2["๐ŸŒ Universal Language<br/>Every UN language<br/>supported natively"]
875
+ AGI3["๐Ÿ“Š Predictive Governance<br/>Policy impact prediction<br/>before legislation proposed"]
876
+ end
877
+ subgraph SGSAFE["โš–๏ธ 6.2 Democratic Safeguards"]
878
+ style SGSAFE fill:#0a0e27,stroke:#00d9ff,color:#e0e0e0
879
+ SAFE1["โš–๏ธ Ethical AI Governance<br/>Human oversight maintained<br/>regardless of AI capability"]
880
+ SAFE2["๐Ÿ›ก๏ธ Anti-Weaponization<br/>Architecture prevents<br/>manipulation or misuse"]
881
+ SAFE3["๐Ÿ”’ Constitutional Alignment<br/>Democratic values encoded<br/>in platform architecture"]
882
+ end
883
+ subgraph SGPARA["๐Ÿงฌ 6.3 Paradigm Readiness"]
884
+ style SGPARA fill:#0a0e27,stroke:#ffbe0b,color:#e0e0e0
885
+ PARA1["โš›๏ธ Quantum AI Ready<br/>Post-quantum cryptography<br/>Quantum ML integration"]
886
+ PARA2["๐Ÿง  Neuromorphic Computing<br/>Brain-inspired architectures<br/>Edge intelligence deployment"]
887
+ PARA3["๐ŸŒ Transformative Platform<br/>120+ automation assets ยท 195 parliaments<br/>Global democratic intelligence"]
888
+ end
889
+ AGI1 --> SAFE1
890
+ AGI2 --> SAFE2
891
+ AGI3 --> SAFE3
892
+ SAFE1 --> PARA1
893
+ SAFE2 --> PARA2
894
+ SAFE3 --> PARA3
895
+ ```
896
+
897
+ **Strategic Considerations for Phase 6:**
898
+ - ๐Ÿค– **Autonomous analysis**: AGI-powered real-time political intelligence across all 195 parliamentary systems
899
+ - ๐ŸŒ **Universal language support**: Every UN language supported natively
900
+ - ๐Ÿ“Š **Predictive governance**: Policy impact prediction *before* legislation is proposed
901
+ - โš–๏ธ **Ethical AI governance**: Human oversight maintained regardless of AI capability level
902
+ - ๐Ÿ›ก๏ธ **Democratic safeguards**: Platform architecture prevents weaponization or manipulation
903
+
904
+ ### ๐Ÿ“ˆ AI Model Evolution Strategy
905
+
906
+ **Illustrative assumptions** *(high uncertainty โ€” AI landscape evolves rapidly)*:
907
+ - Model updates assumed roughly quarterly; actual cadence will vary by vendor and paradigm
908
+ - Version numbers (Opus 5.xโ€“12.x) are illustrative โ€” actual products may differ significantly
909
+ - Competitors (OpenAI, Google, Meta, EU sovereign AI) evaluated at each major release cycle
910
+ - Architecture must accommodate potential paradigm shifts (quantum AI, neuromorphic computing, or entirely new approaches)
911
+
912
+ **Workflow Count Projection:**
913
+
914
+ | Year | Automation Assets | AI Model | Key Capability |
915
+ |:----:|:---------------:|:---------|:---------------|
916
+ | **2026** | 44โ†’50 | Opus 4.6โ€“4.9 | ๐Ÿค– Agentic news generation (current) |
917
+ | **2027** | 50โ€“55 | Opus 5.x | ๐Ÿ”ฎ Predictive analytics & Nordic expansion |
918
+ | **2028** | 55โ€“65 | Opus 6.x | ๐ŸŽ™๏ธ Multi-modal content (audio/video) |
919
+ | **2029** | 65โ€“75 | Opus 7.x | ๐Ÿš€ Fully autonomous pipeline |
920
+ | **2030** | 75โ€“85 | Opus 8.x | ๐Ÿง  Near-expert analysis |
921
+ | **2031โ€“2033** | 85โ€“100 | Opus 9โ€“10.x / Pre-AGI | ๐ŸŒ Global parliamentary coverage |
922
+ | **2034โ€“2037** | 100โ€“120+ | AGI / Post-AGI | โšก Transformative democracy platform |
923
+
924
+ ```mermaid
925
+ %%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#00d9ff', 'primaryTextColor': '#e0e0e0', 'primaryBorderColor': '#ff006e', 'lineColor': '#ffbe0b', 'secondaryColor': '#1a1e3d', 'tertiaryColor': '#0a0e27'}}}%%
926
+ xychart-beta
927
+ title "Riksdagsmonitor Workflow Growth Projection (2026โ€“2037)"
928
+ x-axis ["2026", "2027", "2028", "2029", "2030", "2031", "2032", "2033", "2034", "2035", "2036", "2037"]
929
+ y-axis "Automation Assets (Workflows + Prompt Files)" 0 --> 130
930
+ bar [47, 53, 60, 70, 80, 88, 95, 100, 105, 110, 115, 120]
931
+ line [47, 53, 60, 70, 80, 88, 95, 100, 105, 110, 115, 120]
932
+ ```
933
+
934
+ > Note: The chart values are midpoint estimates within the projected ranges in the table above and are illustrative, not exact counts.
935
+
936
+ ### ๐Ÿ“‹ Detailed Future Planning
937
+
938
+ | Document | Description |
939
+ |:---------|:------------|
940
+ | ๐Ÿ“‹ [**Future Workflows**](FUTURE_WORKFLOWS.md) | Complete 11-year workflow evolution roadmap with architecture diagrams |
941
+ | ๐Ÿ—บ๏ธ [**Future Mindmap**](FUTURE_MINDMAP.md) | Capability expansion map from Swedish monitoring to global democratic intelligence |
942
+ | ๐Ÿš€ [Future Architecture](FUTURE_ARCHITECTURE.md) | Architectural evolution from static site to AI-native platform |
943
+ | ๐Ÿ”’ [Future Security Architecture](FUTURE_SECURITY_ARCHITECTURE.md) | Security roadmap including post-quantum cryptography |
944
+ | ๐Ÿ’ผ [Future SWOT](FUTURE_SWOT.md) | Strategic opportunities in democratic technology |
945
+
946
+ ---
947
+
948
+ ## ๐Ÿข About Hack23
949
+
950
+ **Hack23 AB (Org.nr 5595347807)** - Swedish cybersecurity and open-source intelligence consultancy
951
+
952
+ - ๐ŸŒ **Website**: [www.hack23.com](https://www.hack23.com)
953
+ - ๐Ÿ’ผ **LinkedIn**: [Company Profile](https://www.linkedin.com/company/hack23/)
954
+ - ๐Ÿ‘จโ€๐Ÿ’ป **Founder**: [James Pether Sรถrling, CISSP, CISM](https://www.linkedin.com/in/jamessorling/)
955
+ - ๐Ÿ”’ **ISMS**: [Public ISMS Repository](https://github.com/Hack23/ISMS-PUBLIC)
956
+
957
+ ## ๐Ÿค Contributing
958
+
959
+ Contributions welcome! Please follow Hack23's secure development standards:
960
+
961
+ 1. **Fork** the repository
962
+ 2. **Create** a feature branch with descriptive name
963
+ 3. **Sign** commits with GPG key
964
+ 4. **Test** changes locally (HTML validation, link checking)
965
+ 5. **Submit** pull request with comprehensive description
966
+ 6. **Address** code review feedback
967
+
968
+ **Requirements:**
969
+ - GitHub account with MFA enabled
970
+ - GPG-signed commits
971
+ - HTML validation passing
972
+ - No security vulnerabilities introduced
973
+
974
+ ## ๐Ÿ“œ License
975
+
976
+ Copyright ยฉ 2008-2026 Hack23 AB (Org.nr 5595347807)
977
+
978
+ Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) file for details.
979
+
980
+ ## ๐Ÿ”— Links
981
+
982
+ - **Website:** [riksdagsmonitor.com](https://riksdagsmonitor.com)
983
+ - **CIA Platform:** [www.hack23.com/cia](https://www.hack23.com/cia)
984
+ - **GitHub:** [github.com/Hack23/riksdagsmonitor](https://github.com/Hack23/riksdagsmonitor)
985
+ - **Hack23:** [www.hack23.com](https://www.hack23.com)
986
+ - **ISMS:** [github.com/Hack23/ISMS](https://github.com/Hack23/ISMS)
987
+ - **LinkedIn:** [James Pether Sรถrling](https://www.linkedin.com/in/jamessorling/)
988
+
989
+ ## ๐Ÿ‘จโ€๐Ÿ’ป Maintainer
990
+
991
+ **James Pether Sรถrling**
992
+ CISSP, CISM
993
+ CEO, Hack23 AB
994
+ [LinkedIn](https://www.linkedin.com/in/jamessorling/) | [GitHub](https://github.com/pethers)
995
+
996
+ ---
997
+
998
+ *Monitor political activity in Sweden with systematic transparency*
999
+