{"id":44925023,"url":"https://github.com/hack23/riksdagsmonitor","last_synced_at":"2026-04-23T18:01:10.238Z","repository":{"id":100416123,"uuid":"499860999","full_name":"Hack23/riksdagsmonitor","owner":"Hack23","description":"Riksdagsmonitor is a comprehensive intelligence platform for monitoring political activity in Sweden's Riksdag (Parliament). Built on the Citizen Intelligence Agency (CIA) platform, we provide systematic transparency through real-time analysis and 50+ years of historical data.","archived":false,"fork":false,"pushed_at":"2026-04-23T09:33:08.000Z","size":300232,"stargazers_count":5,"open_issues_count":4,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T09:33:54.741Z","etag":null,"topics":["ai","intelligence","intelligence-gathering","osint","riksdagen","riksdagensoppnadata","sweden"],"latest_commit_sha":null,"homepage":"https://riksdagsmonitor.com","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hack23.png","metadata":{"files":{"readme":"README.md","changelog":"news/2026-02-10-biodiversity-citizenship-en.html","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":"THREAT_MODEL.md","audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-06-04T15:13:31.000Z","updated_at":"2026-04-23T09:30:15.000Z","dependencies_parsed_at":"2023-05-14T13:15:23.030Z","dependency_job_id":null,"html_url":"https://github.com/Hack23/riksdagsmonitor","commit_stats":null,"previous_names":[],"tags_count":88,"template":false,"template_full_name":null,"purl":"pkg:github/Hack23/riksdagsmonitor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hack23%2Friksdagsmonitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hack23%2Friksdagsmonitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hack23%2Friksdagsmonitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hack23%2Friksdagsmonitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hack23","download_url":"https://codeload.github.com/Hack23/riksdagsmonitor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hack23%2Friksdagsmonitor/sbom","scorecard":{"id":1243001,"data":{"date":"2026-02-05T23:41:22Z","repo":{"name":"github.com/Hack23/riksdagsmonitor","commit":"f7d43a3a9018a71664d0bbb36a3dd5417869dc31"},"scorecard":{"version":"v5.3.0","commit":"c22063e786c11f9dd714d777a687ff7c4599b600"},"score":5.4,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dependency-update-tool"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 8 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/1 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'statuses' permission set to 'read': .github/workflows/copilot-setup-steps.yml:38","Info: jobLevel 'actions' permission set to 'read': .github/workflows/copilot-setup-steps.yml:28","Info: jobLevel 'checks' permission set to 'read': .github/workflows/copilot-setup-steps.yml:30","Info: jobLevel 'deployments' permission set to 'read': .github/workflows/copilot-setup-steps.yml:31","Info: jobLevel 'models' permission set to 'read': .github/workflows/copilot-setup-steps.yml:33","Info: jobLevel 'pages' permission set to 'read': .github/workflows/copilot-setup-steps.yml:35","Info: jobLevel 'security-events' permission set to 'read': .github/workflows/copilot-setup-steps.yml:37","Info: jobLevel 'contents' permission set to 'read': .github/workflows/copilot-setup-steps.yml:27","Info: jobLevel 'attestations' permission set to 'read': .github/workflows/copilot-setup-steps.yml:29","Info: jobLevel 'discussions' permission set to 'read': .github/workflows/copilot-setup-steps.yml:34","Info: jobLevel 'actions' permission set to 'read': .github/workflows/scorecards.yml:30","Info: jobLevel 'issues' permission set to 'read': .github/workflows/scorecards.yml:32","Info: jobLevel 'pull-requests' permission set to 'read': .github/workflows/scorecards.yml:33","Info: jobLevel 'checks' permission set to 'read': .github/workflows/scorecards.yml:35","Info: jobLevel 'contents' permission set to 'read': .github/workflows/scorecards.yml:29","Warn: topLevel 'contents' permission set to 'write': .github/workflows/check-cia-schema-updates.yml:14","Warn: no topLevel permission defined: .github/workflows/copilot-setup-steps.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:13","Info: topLevel 'contents' permission set to 'read': .github/workflows/quality-checks.yml:10","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:18","Warn: topLevel 'contents' permission set to 'write': .github/workflows/sync-cia-schemas.yml:16","Info: topLevel 'contents' permission set to 'read': .github/workflows/translation-validation.yml:20","Info: topLevel 'contents' permission set to 'read': .github/workflows/validate-cia-data.yml:26","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":7,"reason":"dependency not pinned by hash detected -- score normalized to 7","details":["Warn: npmCommand not pinned by hash: .github/workflows/copilot-setup-steps.yml:123","Warn: npmCommand not pinned by hash: .github/workflows/copilot-setup-steps.yml:124","Warn: npmCommand not pinned by hash: .github/workflows/copilot-setup-steps.yml:125","Warn: npmCommand not pinned by hash: .github/workflows/copilot-setup-steps.yml:128","Warn: npmCommand not pinned by hash: .github/workflows/copilot-setup-steps.yml:131","Warn: npmCommand not pinned by hash: .github/workflows/quality-checks.yml:39","Warn: npmCommand not pinned by hash: .github/workflows/quality-checks.yml:101","Info:  30 out of  30 GitHub-owned GitHubAction dependencies pinned","Info:  11 out of  11 third-party GitHubAction dependencies pinned","Info:   3 out of  10 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#vulnerabilities"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#cii-best-practices"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#fuzzing"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#sast"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#security-policy"}},{"name":"Contributors","score":6,"reason":"project has 2 contributing companies or organizations -- score normalized to 6","details":["Info: found contributions from: Hack23, hack23"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#contributors"}},{"name":"CI-Tests","score":10,"reason":"8 out of 8 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/c22063e786c11f9dd714d777a687ff7c4599b600/docs/checks.md#ci-tests"}}]},"last_synced_at":"2026-02-06T01:49:22.240Z","repository_id":100416123,"created_at":"2026-02-06T01:49:22.241Z","updated_at":"2026-02-06T01:49:22.241Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32191873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T15:28:30.493Z","status":"ssl_error","status_checked_at":"2026-04-23T15:28:29.972Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","intelligence","intelligence-gathering","osint","riksdagen","riksdagensoppnadata","sweden"],"created_at":"2026-02-18T04:05:40.416Z","updated_at":"2026-04-23T18:01:10.218Z","avatar_url":"https://github.com/Hack23.png","language":"HTML","readme":"# 🗳️ Riksdagsmonitor\n\n\u003e Swedish Parliament Intelligence Platform - Monitor political activity with systematic transparency\n\n## 🎯 Mission\n\nRiksdagsmonitor 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.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"120\" align=\"center\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Riksdag-Monitor-00338D?style=for-the-badge\u0026logo=swedish\u0026logoColor=FECC00\" width=\"80\" alt=\"Riksdagsmonitor\"/\u003e\n      \u003cdiv\u003e\n        \u003ca href=\"https://riksdagsmonitor.com\"\u003e\n          \u003cimg src=\"https://img.shields.io/website?url=https://riksdagsmonitor.com\" alt=\"Website Status\"\u003e\n        \u003c/a\u003e\n      \u003c/div\u003e\n      \u003cdiv\u003e\n        \u003ca href=\"https://www.npmjs.com/package/riksdagsmonitor\"\u003e\n          \u003cimg src=\"https://img.shields.io/npm/v/riksdagsmonitor.svg\" alt=\"npm version\"\u003e\n        \u003c/a\u003e\n      \u003c/div\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cp\u003e\u003cstrong\u003eSwedish Parliament Intelligence Platform\u003c/strong\u003e monitoring political activity in Sweden's Riksdag with systematic transparency through real-time analysis and 50+ years of historical data (1971-2024).\u003c/p\u003e\n      \u003cdiv\u003e\n        \u003ca href=\"https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor\"\u003e\n          \u003cimg src=\"https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge\" alt=\"OpenSSF Scorecard\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml\"\u003e\n          \u003cimg src=\"https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg\" alt=\"Quality Checks\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://www.bestpractices.dev/projects/12069\"\u003e\n          \u003cimg src=\"https://www.bestpractices.dev/projects/12069/badge\" alt=\"OpenSSF Best Practices\"\u003e\n        \u003c/a\u003e\n        \u003ca href=\"https://github.com/Hack23/riksdagsmonitor/license\"\u003e\n          \u003cimg src=\"https://img.shields.io/github/license/Hack23/riksdagsmonitor\" alt=\"License\"\u003e\n        \u003c/a\u003e\n      \u003c/div\u003e\n      \u003cdiv\u003e\n        \u003ca href=\"https://riksdagsmonitor.com\"\u003e\u003cstrong\u003e🌐 Official Website\u003c/strong\u003e\u003c/a\u003e •\n        \u003ca href=\"https://github.com/Hack23/riksdagsmonitor\"\u003e\u003cstrong\u003e📂 Repository\u003c/strong\u003e\u003c/a\u003e •\n        \u003ca href=\"https://hack23.com/riksdagsmonitor-features.html\"\u003e\u003cstrong\u003e✨ Features\u003c/strong\u003e\u003c/a\u003e •\n        \u003ca href=\"https://hack23.com/riksdagsmonitor-docs.html\"\u003e\u003cstrong\u003e📚 Documentation\u003c/strong\u003e\u003c/a\u003e\n      \u003c/div\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge)](https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor)\n[![Quality Checks](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml)\n[![Dependency Review](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/12069/badge)](https://www.bestpractices.dev/projects/12069)\n[![License](https://img.shields.io/github/license/Hack23/riksdagsmonitor)](https://github.com/Hack23/riksdagsmonitor/blob/main/LICENSE)\n[![ISMS](https://img.shields.io/badge/Hack23-ISMS-blue)](https://github.com/Hack23/ISMS-PUBLIC)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hack23/riksdagsmonitor)\n\n\n\n## 📊 Quality Metrics\n\n### CI/CD \u0026 Security\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Hack23/riksdagsmonitor/badge)](https://scorecard.dev/viewer/?uri=github.com/Hack23/riksdagsmonitor)\n[![Quality Checks](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/quality-checks.yml)\n[![Dependency Review](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/dependency-review.yml)\n[![CodeQL](https://github.com/Hack23/riksdagsmonitor/actions/workflows/codeql.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/codeql.yml)\n\n### Testing\n[![JavaScript Testing](https://github.com/Hack23/riksdagsmonitor/actions/workflows/javascript-testing.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/javascript-testing.yml)\n[![JSDoc Validation](https://github.com/Hack23/riksdagsmonitor/actions/workflows/jsdoc-validation.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/jsdoc-validation.yml)\n[![Translation Validation](https://github.com/Hack23/riksdagsmonitor/actions/workflows/translation-validation.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/translation-validation.yml)\n\n### Documentation \u0026 Release\n[![Release](https://github.com/Hack23/riksdagsmonitor/actions/workflows/release.yml/badge.svg)](https://github.com/Hack23/riksdagsmonitor/actions/workflows/release.yml)\n[![API Docs](https://img.shields.io/badge/API-Documentation-blue?logo=javascript)](https://riksdagsmonitor.com/docs/api/)\n[![Test Coverage](https://img.shields.io/badge/Coverage-Reports-green?logo=vitest)](https://riksdagsmonitor.com/docs/coverage/)\n[![E2E Reports](https://img.shields.io/badge/E2E-Cypress_Reports-green?logo=cypress)](https://riksdagsmonitor.com/docs/cypress/)\n\n### Compliance \u0026 Standards\n[![License](https://img.shields.io/github/license/Hack23/riksdagsmonitor)](LICENSE)\n[![ISMS](https://img.shields.io/badge/Hack23-ISMS-blue?logo=shield)](https://github.com/Hack23/ISMS-PUBLIC)\n[![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)\n[![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)\n[![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)\n[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hack23/riksdagsmonitor)\n\n**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.\n\n## 📊 Project Classification\n\nRiksdagsmonitor follows Hack23 AB's comprehensive [Classification Framework](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md) for security, business continuity, and impact analysis:\n\n### 🎯 Project Classification\n[![Project Type](https://img.shields.io/badge/Type-Frontend_Apps-yellow?style=for-the-badge\u0026logo=window-maximize\u0026logoColor=black)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#project-type-classifications)\n[![Process Type](https://img.shields.io/badge/Process-Development-cyan?style=for-the-badge\u0026logo=code\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#project-type-classifications)\n\n### 🔒 Security Classification (CIA Triad)\n[![Confidentiality](https://img.shields.io/badge/Confidentiality-Public-lightgrey?style=for-the-badge\u0026logo=shield\u0026logoColor=black)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#confidentiality-levels)\n[![Integrity](https://img.shields.io/badge/Integrity-High-orange?style=for-the-badge\u0026logo=check-circle\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#integrity-levels)\n[![Availability](https://img.shields.io/badge/Availability-High-orange?style=for-the-badge\u0026logo=server\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#availability-levels)\n\n**Confidentiality:** Public - All information intentionally disclosed (Swedish Riksdag open data, website content)  \n**Integrity:** High - Automated validation, digital signatures (Git commits), accurate political data required  \n**Availability:** High - 99.998% design availability target (underpinned by AWS CloudFront 99.9% SLA), automated failover (AWS multi-region, GitHub Pages DR)\n\n### 🏷️ Privacy Classification\n[![Privacy](https://img.shields.io/badge/Privacy-Personal-orange?style=for-the-badge\u0026logo=user-shield\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#privacy-levels)\n\n**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.\n\n### ⏱️ Business Continuity Classification\n[![RTO](https://img.shields.io/badge/RTO-High_%281--4hrs%29-yellow?style=for-the-badge\u0026logo=clock\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#rto-classifications)\n[![RPO](https://img.shields.io/badge/RPO-Daily_%284--24hrs%29-lightblue?style=for-the-badge\u0026logo=database\u0026logoColor=white)](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md#rpo-classifications)\n\n**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)  \n**RPO (Recovery Point Objective):** 4-24 hours - Daily data pipeline updates, Git version control, S3 versioning\n\n### 💰 Business Impact Analysis\n\n| Impact Category | Level | Description |\n|-----------------|-------|-------------|\n| **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 (\u003c$500 daily) - Open-source project, no revenue dependency |\n| **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 |\n| **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 |\n| **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 |\n\n### 📋 Data Classification Levels\n\nFor operational data handling, we use a simplified 4-level scheme:\n\n| Classification | Description | Examples | Handling Requirements |\n|----------------|-------------|----------|----------------------|\n| 🟢 **Public** | Information intended for public disclosure | Website content, Swedish Riksdag open data, documentation | No restrictions, published on GitHub Pages |\n| 🟡 **Internal** | Information for internal use only | GitHub Actions secrets, deployment credentials | GitHub organization access only, MFA required |\n| 🟠 **Confidential** | Sensitive business information | Not applicable to this project | N/A |\n| 🔴 **Restricted** | Highly sensitive information | Not applicable to this project | N/A |\n\n### 📦 Data Inventory\n\n**Public Data (🟢):**\n- All website HTML/CSS content (14 languages)\n- Swedish Parliament data (MPs, votes, documents, committees)\n- Election results and statistics\n- Government budget and spending data\n- All source code and documentation\n\n**Internal Data (🟡):**\n- GitHub Actions secrets (tokens if used; no long-lived PATs)\n- AWS IAM credentials (ephemeral via OIDC)\n- Deployment pipeline configurations\n\n**No User or Confidential Data:**\n- ❌ No user accounts or authentication\n- ❌ No non-public or end-user personally identifiable information (PII)\n- ✅ Only public-figure data from official Swedish Parliament records (MP names, roles, votes)\n- ❌ No financial transactions or payment data\n- ❌ No confidential government information\n\n### 🔐 Data Handling Controls\n\n**Public Data:**\n- Published via GitHub Pages and AWS CloudFront\n- TLS 1.3 encryption in transit\n- No access controls required (intentionally public)\n- Version controlled via Git\n\n**Internal Data:**\n- Stored in GitHub Secrets (encrypted at rest)\n- AWS credentials via OIDC (no long-lived keys)\n- Accessed only via secure GitHub Actions workflows\n- Least privilege principle enforced\n- Regular rotation and audit\n\n### 📋 Compliance Alignment\n\n- **ISO 27001:2022 A.8** - Asset Management\n- **NIST CSF 2.0 PR.DS** - Data Security\n- **CIS Controls v8.1 Control 3** - Data Protection\n- **GDPR** - Applicable for public-official data processing (public interest and legitimate interest grounds)\n- **Hack23 Classification Framework** - [Full framework documentation](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md)\n\nSee [SECURITY_ARCHITECTURE.md](SECURITY_ARCHITECTURE.md) for detailed security controls.\n\n## ✨ Features\n\n- **349 Current MPs** - Individual MP tracking and performance metrics\n- **2,494 Historical Politicians** - Complete database from 1971-2024 (50+ years)\n- **8 Political Parties** - Party performance, coalition dynamics, voting patterns\n- **45 Risk Rules** - Systematic transparency through behavioral analysis\n- **3.5+ Million Votes** - Comprehensive voting record analysis\n- **109,000+ Documents** - Parliamentary documents processed and analyzed\n\n## 📦 npm Package\n\nInstall the shared TypeScript library for Swedish Parliament data visualization:\n\n```bash\nnpm install riksdagsmonitor\n```\n\n### What's Included\n\n- **Theme System** — Dark/light cyberpunk themes with WCAG AA contrast compliance\n- **Chart Factory** — Pre-configured Chart.js creation with responsive breakpoints and keyboard navigation\n- **Data Loader** — Resilient data fetching with retry logic, caching, and CSV/JSON parsing\n- **DOM Utilities** — Loading states, error boundaries, screen reader announcements, locale-aware formatting\n- **Type Definitions** — Full TypeScript interfaces for political data structures\n- **Dashboard Modules** — 12 specialized intelligence dashboard components\n- **CIA Intelligence Modules** — Data loaders, visualizations, and election prediction engine\n\n### Usage\n\n```typescript\n// Core utilities (no dependencies required)\nimport { getActiveThemeColors, BREAKPOINTS, getPartyColor } from 'riksdagsmonitor';\nimport { loadJSON, loadCSV, createDataSource } from 'riksdagsmonitor';\nimport { showLoadingState, showErrorState, formatNumber, debounce } from 'riksdagsmonitor';\n\n// Chart utilities (requires chart.js peer dependency)\nimport { createChart, getResponsiveOptions, initDashboardSection } from 'riksdagsmonitor/shared/chart-factory';\n\n// Register Chart.js, D3.js, PapaParse as globals (requires peer dependencies)\nimport 'riksdagsmonitor/shared/register-globals';\n\n// Individual dashboard modules\nimport { init as initPartyDashboard } from 'riksdagsmonitor/dashboards/party-dashboard';\nimport { init as initRiskDashboard } from 'riksdagsmonitor/dashboards/risk-dashboard';\n\n// CIA intelligence modules\nimport { CIADataLoader } from 'riksdagsmonitor/cia/data-loader';\nimport { CIADashboardRenderer } from 'riksdagsmonitor/cia/visualizations';\n```\n\n### Peer Dependencies\n\nThe core shared utilities work without any dependencies. For visualization dashboards, install the optional peer dependencies:\n\n```bash\nnpm install chart.js d3 papaparse                # Required for dashboard support\nnpm install chartjs-plugin-annotation             # Optional — for chart annotations\n```\n\n\u003e **Note:** `chartjs-plugin-annotation` is loaded conditionally at runtime — dashboards work without it, but chart annotations will be unavailable.\n\n## 🌐 Live Platform\n\n**Website:** [riksdagsmonitor.com](https://riksdagsmonitor.com)\n\n**Available in 14 Languages:**\n- English, Swedish, Danish, Norwegian, Finnish\n- German, French, Spanish, Dutch\n- Arabic, Hebrew, Japanese, Korean, Chinese\n\n## 📊 CIA Data Products Integration\n\nRiksdagsmonitor integrates with the CIA platform through automated data pipelines, schema validation, and daily statistics updates.\n\n### Production Database Statistics\n\n**Live Statistics** (Updated Daily at 03:00 CET):\n- **2,494 Politicians** - Complete historical database (1971-2024)\n- **349 Current MPs** - Active Members of Parliament\n- **3.5+ Million Votes** - Comprehensive voting records\n- **109,000+ Documents** - Parliamentary documents processed\n- **8,740 Committee Documents** - Committee work tracked\n- **2,308 Rule Violations** - Transparency issues identified\n\n**Data Source**: [extraction_summary_report.csv](https://github.com/Hack23/cia/blob/master/service.data.impl/sample-data/extraction_summary_report.csv)  \n**Update Schedule**: Daily automated fetch via GitHub Actions  \n**Last Extraction**: See `cia-data/production-stats.json` → `metadata.last_updated` (updated daily)\n\n**Implementation**:\n- `scripts/load-cia-stats.js` - Fetches and parses production statistics\n- `scripts/update-stats-from-cia.js` - Updates website files\n- `.github/workflows/update-cia-stats.yml` - Automated daily workflow\n- `cia-data/production-stats.json` - Cached statistics (24-hour freshness)\n\n### Schema Integration\n- **Automated Validation** - All CIA exports validated against JSON schemas\n- **Type Safety** - TypeScript type definitions for development\n- **CI/CD Integration** - Daily validation checks in GitHub Actions\n- **Update Detection** - Weekly checks for schema updates\n\nSee [CIA Schema Integration Documentation](docs/CIA_SCHEMA_INTEGRATION.md) for details.\n\n### Data Products\n\nRiksdagsmonitor leverages 19 comprehensive visualization products from the CIA platform:\n\n### Intelligence Dashboards\n- **Overview Dashboard** - Complete Riksdag intelligence snapshot\n- **Party Performance** - Longitudinal party analysis and effectiveness metrics\n- **Government Cabinet** - Ministry-level performance scorecards\n- **Election Cycle Analysis** - Historical patterns and trend forecasting\n\n### Top 10 Rankings\n- Most Influential MPs (network analysis)\n- Most Productive MPs (legislative output)\n- Most Controversial MPs (voting patterns)\n- Most Absent MPs (attendance tracking)\n- Party Rebels (cross-party voting)\n- Coalition Brokers (collaboration patterns)\n- Rising Stars (emerging political figures)\n- Electoral Risk (MPs at risk)\n- Ethics Concerns (transparency issues)\n- Media Presence (public visibility)\n\n### Advanced Analytics\n- **Committee Network Analysis** - Influence mapping and assignments\n- **Politician Career Analysis** - Career trajectories and milestones\n- **Party Longitudinal Analysis** - 50+ years of party evolution\n\n## 📈 Implemented Dashboards\n\nRiksdagsmonitor currently features 4 interactive intelligence dashboards built with Chart.js and D3.js:\n\n### 1. 🌡️ Seasonal Activity Patterns Dashboard\n- **Coverage**: 2002-2025 (quarterly data, 23+ years)\n- **Visualizations**: Heat maps, time series, Z-score analysis\n- **Purpose**: Track quarterly parliamentary activity patterns and detect seasonal trends\n- **Data Source**: `cia-data/seasonal/view_riksdagen_seasonal_activity_patterns_sample.csv`\n\n### 2. 👤 Politician Dashboard\n- **Coverage**: 349 MPs with comprehensive risk and performance metrics\n- **Visualizations**: Top 10 rankings, risk profiles, influence metrics\n- **Purpose**: Individual MP tracking and transparency assessment\n- **Data Source**: `cia-data/politician/*.csv`\n\n### 3. 🗳️ Pre-Election Monitoring Dashboard\n- **Coverage**: Q4 2023-2025 (12-15 months before 2026 election)\n- **Visualizations**: Historical comparisons, election-year patterns\n- **Purpose**: Track pre-election parliamentary activity and behavior changes\n- **Data Source**: `cia-data/pre-election/*.csv`\n\n### 4. 🗳️ Party Performance \u0026 Effectiveness Dashboard\n\n**Coverage:** 1990-2026 (37 years)  \n**Analysis:** Comprehensive party analytics across 8 Swedish political parties\n\n**Key Features:**\n- **Effectiveness Trends:** Historical legislative productivity and voting consistency\n- **Comparative Analysis:** Party-by-party benchmarking\n- **Coalition Patterns:** Party alignment visualization\n- **Momentum Indicators:** Electoral trajectory with percentile benchmarks\n\n### 5. 🚨 Anomaly Detection \u0026 Early Warning System\n- **Coverage**: 2002-2026 (41 quarters analyzed)\n- **Visualizations**: 6 interactive charts including timeline, Z-score distribution, heat map\n- **Features**:\n  - Real-time alert system for critical anomalies\n  - Statistical Z-score analysis (|Z| ≥ 2.0 for anomalies)\n  - Severity classification: CRITICAL (≥2.5), HIGH (≥2.0), MODERATE (≥1.5), LOW (\u003c1.5)\n  - Anomaly types: Ballot, Document, Attendance\n  - Direction indicators: UNUSUALLY_HIGH, UNUSUALLY_LOW\n- **Data Source**: `cia-data/seasonal/view_riksdagen_seasonal_anomaly_detection_sample.csv`\n\n**Dashboard Features**:\n- Local-first data loading (1-hour caching)\n- WCAG 2.1 AA accessible\n- 14-language support\n- Responsive design (320px-1440px+)\n- CSP-compliant (SRI hashes on all CDN resources)\n## 🔗 Data Sources\n\nRiksdagsmonitor integrates multiple authoritative Swedish open data sources:\n\n- **[Swedish Parliament (Riksdagen)](http://data.riksdagen.se/)** - Votes, documents, committee work, MP information\n- **[Swedish Election Authority](http://www.val.se/)** - Election results, voter turnout, electoral statistics\n- **[Swedish Financial Management Authority](https://www.esv.se/psidata/)** - Government budget and spending data\n- **[World Bank Open Data](http://data.worldbank.org/)** - Governance (WGI), environment, and long-horizon social/education indicators\n- **[IMF Public Data](https://data.imf.org/)** - Macro, fiscal, monetary, and external-sector indicators (WEO, Fiscal Monitor, IFS) with T+5 projections — primary source for fresh macro/fiscal figures and forward-looking commentary (see `analysis/imf/README.md` and `docs/adr/0001-adopt-imf-data-alongside-world-bank.md`)\n\n## 🏗️ Technical Architecture\n\n### Stack\n- **Frontend:** Static HTML/CSS with JavaScript dashboards\n- **Build System:** Vite 8 (ES modules, code splitting)\n- **Visualization:** Chart.js 4 + D3.js 7 hosted locally on CloudFront\n- **Testing:** Vitest (unit), Cypress (E2E) - 2890 tests passing\n- **Styling:** Custom CSS with cyberpunk theme, responsive design\n- **Hosting:** GitHub Pages with CloudFront CDN\n- **CI/CD:** GitHub Actions for automated testing and deployment\n- **Data Platform:** CIA OSINT platform (Java/Spring Boot backend)\n- **Runtime:** Node.js 25.x\n\n### JavaScript Architecture\n- **8 Dashboard Modules:**\n  - party-dashboard.js (effectiveness analytics)\n  - anomaly-detection-dashboard.js (statistical outliers)\n  - seasonal-patterns-dashboard.js (temporal trends)\n  - pre-election-dashboard.js (election monitoring)\n  - politician-dashboard.js (MP tracking)\n  - ministry-dashboard.js (cabinet analysis)\n  - election-cycle-dashboard.js (cycle patterns)\n  - back-to-top.js (navigation)\n\n- **Data Loading:** Local-first with GitHub fallback\n- **Caching:** LocalStorage with freshness checks (1-7 days)\n- **Performance:** Code splitting, lazy loading, asset optimization\n- **Security:** SRI hashes (sha384), CSP-compliant script loading\n\n### Security\n- **HTTPS-Only:** TLS 1.3 encryption enforced\n- **Security Headers:** CSP, HSTS, X-Frame-Options, X-Content-Type-Options\n- **Access Control:** GitHub MFA, SSH keys, GPG commit signing\n- **Monitoring:** Dependabot, CodeQL, Secret Scanning\n- **Documentation:** [SECURITY_ARCHITECTURE.md](SECURITY_ARCHITECTURE.md), [THREAT_MODEL.md](THREAT_MODEL.md)\n\n## 🔐 Commitment to Transparency and Security\n\nAt 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.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\"\u003e\n      \u003cdiv align=\"center\"\u003e\n        \u003ch3\u003e📋 ISMS Compliance\u003c/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eISO 27001:2022 Aligned\u003c/strong\u003e\u003c/p\u003e\n        \u003cul align=\"left\"\u003e\n          \u003cli\u003e\u003ca href=\"https://github.com/Hack23/ISMS-PUBLIC\"\u003eISMS Repository\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"https://github.com/Hack23/ISMS-PUBLIC\"\u003ePublic ISMS\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md\"\u003eSecure Development Policy\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md\"\u003eThreat Modeling\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"https://github.com/Hack23/ISMS-PUBLIC/blob/main/Compliance_Checklist.md\"\u003eCompliance Checklist\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/td\u003e\n    \u003ctd width=\"50%\"\u003e\n      \u003cdiv align=\"center\"\u003e\n        \u003ch3\u003e🛡️ Security Documentation\u003c/h3\u003e\n        \u003cp\u003e\u003cstrong\u003eDefense-in-Depth Architecture\u003c/strong\u003e\u003c/p\u003e\n        \u003cul align=\"left\"\u003e\n          \u003cli\u003e\u003ca href=\"SECURITY_ARCHITECTURE.md\"\u003eSecurity Architecture\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"THREAT_MODEL.md\"\u003eThreat Model\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"WORKFLOWS.md\"\u003eCI/CD Workflows\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"ARCHITECTURE.md\"\u003eSystem Architecture\u003c/a\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ca href=\"FUTURE_SECURITY_ARCHITECTURE.md\"\u003eFuture Security\u003c/a\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/div\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n### Compliance Frameworks\n- **ISO 27001:2022** - Information security management controls (7 controls implemented)\n- **NIST CSF 2.0** - Cybersecurity framework (6 functions aligned)\n- **CIS Controls v8.1** - Security best practices (6 controls implemented)\n\n### Security Metrics\n\n| Metric | Status | Details |\n|--------|--------|---------|\n| **Risk Level** | 🟢 LOW | 5.52/10.0 (99.7% risk reduction) |\n| **HTML Validation** | ✅ PASSED | 0 errors (HTMLHint) |\n| **Dependencies** | ✅ CLEAN | Dependabot monitoring |\n| **Secrets** | ✅ SECURE | Secret scanning enabled |\n| **Code Scanning** | ✅ ACTIVE | CodeQL analysis |\n\n## 🚀 Development\n\n### Prerequisites\n- **Node.js**: 25.x or higher\n- **npm**: 10.x or higher (comes with Node.js)\n- Git with GPG signing configured\n- GitHub account with MFA enabled\n- SSH keys for GitHub authentication\n\n### Local Development\n\n```bash\n# Clone repository\ngit clone git@github.com:Hack23/riksdagsmonitor.git\ncd riksdagsmonitor\n\n# Install dependencies\nnpm install\n\n# Development server with Vite (hot reload)\nnpm run dev\n# Opens http://localhost:8080\n\n# OR serve statically\npython3 -m http.server 8080\n# or\nnpx http-server -p 8080\n\n# Open in browser\nopen http://localhost:8080\n```\n\n### Testing\n\n```bash\n# Install dependencies (if not already done)\nnpm install\n\n# Run unit tests (Vitest)\nnpm test\n\n# Run tests in watch mode\nnpm run test:watch\n\n# Run tests with coverage\nnpm run test:coverage\n\n# Run tests with UI\nnpm run test:ui\n\n# Run E2E tests (Cypress)\nnpm run cypress:open    # Interactive GUI\nnpm run cypress:run     # Headless\n\n# Full E2E test suite\nnpm run e2e            # Builds, previews, and runs Cypress\n```\n\n### Building for Production\n\n```bash\n# Build with Vite\nnpm run build\n\n# Preview production build\nnpm run preview\n# Opens http://localhost:4173\n\n# Build output in dist/\nls dist/\n```\n\n### Quality Checks\n\n```bash\n# HTML validation\nnpm run htmlhint\n\n# Link checking\npython3 -m http.server 8080 \u0026\nnpm run linkcheck\n\n# Run all quality checks\nnpm run htmlhint \u0026\u0026 npm test \u0026\u0026 npm run build\n```\n\n### CI/CD Pipeline\n\n**Automated Checks:**\n- HTML validation (HTMLHint)\n- Link checking (linkinator)\n- JavaScript testing (Vitest unit tests - 2890 tests)\n- E2E testing (Cypress)\n- Build validation (Vite)\n- Dependency review (Dependabot)\n- Security scanning (CodeQL, Secret Scanning)\n\n**Workflows:**\n- `.github/workflows/quality-checks.yml` - HTML/link validation\n- `.github/workflows/javascript-testing.yml` - Vite build, Vitest, Cypress E2E\n- `.github/workflows/dependency-review.yml` - Dependency security\n- `.github/workflows/copilot-setup-steps.yml` - Copilot agent setup\n- `.github/workflows/release.yml` - Release with attestations and documentation-as-code\n\n**Test Results**:\n- ✅ 2890/2890 unit tests passing (Vitest)\n- ✅ 100% test pass rate\n- ✅ Coverage: 70% lines, 70% functions, 60% branches\n\n## 🚀 Release Process\n\nRiksdagsmonitor follows a comprehensive release process with full supply chain security:\n\n### Release Workflow\n\n- **Trigger**: Manual (workflow_dispatch) or tag push (v*.*.*)\n- **Duration**: ~20-30 minutes\n- **Jobs**: Prepare → Build → Release\n\n### Release Artifacts\n\nEach release includes:\n- ✅ Production build (`riksdagsmonitor-vX.Y.Z.zip`)\n- ✅ SHA-256 checksum for verification\n- ✅ SBOM in SPDX format (Software Bill of Materials)\n- ✅ SLSA Build Provenance attestations (signed)\n\n### Documentation as Code\n\nEvery release automatically generates and publishes:\n- 📚 API Documentation (JSDoc)\n- 📊 Test Coverage Report (Vitest)\n- 🧪 E2E Test Reports (Cypress)\n- 📦 Dependency Tree (npm)\n\n**Documentation Hub**: [riksdagsmonitor.com/docs/](https://riksdagsmonitor.com/docs/)\n\n### Dual Deployment\n\n- **Primary**: AWS S3/CloudFront (https://riksdagsmonitor.com)\n- **Backup**: GitHub Pages (disaster recovery)\n\n### Security \u0026 Verification\n\nVerify attestations using GitHub CLI:\n```bash\ngh attestation verify riksdagsmonitor-v1.0.0.zip -R Hack23/riksdagsmonitor\n```\n\n**Full Release Guide**: See [RELEASE_PROCESS.md](RELEASE_PROCESS.md)\n\n## 📖 Documentation\n\n### Project Documentation\n- [README.md](README.md) - This file\n- [RELEASE_PROCESS.md](RELEASE_PROCESS.md) - Comprehensive release guide with attestations ✨ **NEW**\n- [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) - Multi-language translation standards and glossary\n- [SECURITY.md](SECURITY.md) - Security policy and vulnerability reporting ✨ **NEW**\n- [CONTRIBUTING.md](CONTRIBUTING.md) - Contribution guidelines ✨ **NEW**\n- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) - Community standards ✨ **NEW**\n- [LICENSE](LICENSE) - Apache License 2.0\n\n### Architecture Documentation Portfolio\n| Current State | Future State |\n|--------------|-------------|\n| [🏗️ Architecture](ARCHITECTURE.md) | [🚀 Future Architecture](FUTURE_ARCHITECTURE.md) |\n| [📊 Data Model](DATA_MODEL.md) | [📊 Future Data Model](FUTURE_DATA_MODEL.md) |\n| [🔄 Flowcharts](FLOWCHART.md) | [🔄 Future Flowcharts](FUTURE_FLOWCHART.md) |\n| [🔄 State Diagrams](STATEDIAGRAM.md) | [🔄 Future State Diagrams](FUTURE_STATEDIAGRAM.md) |\n| [🗺️ Mindmap](MINDMAP.md) | [🗺️ Future Mindmap](FUTURE_MINDMAP.md) |\n| [💼 SWOT](SWOT.md) | [💼 Future SWOT](FUTURE_SWOT.md) |\n\n### Security Documentation\n- [🛡️ Security Architecture](SECURITY_ARCHITECTURE.md) - Defense-in-depth security controls\n- [🔮 Future Security Architecture](FUTURE_SECURITY_ARCHITECTURE.md) - Security roadmap\n- [🎯 Threat Model](THREAT_MODEL.md) - STRIDE threat analysis and risk assessment\n- [🛡️ CRA Assessment](CRA-ASSESSMENT.md) - EU Cyber Resilience Act conformity\n- [🔧 Workflows](WORKFLOWS.md) - CI/CD workflows and automation\n- [🔐 Security Policy](SECURITY.md) - Vulnerability reporting and disclosure\n\n### ISMS Policy Alignment\n- [🛡️ Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md) — Architecture documentation requirements\n- [🔓 Open Source Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Open_Source_Policy.md) — OSS governance, license compliance, security posture evidence\n- [🛡️ CRA Conformity Assessment Process](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CRA_Conformity_Assessment_Process.md) — CRA self-assessment template and methodology\n- [🎯 Threat Modeling Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md) — STRIDE/MITRE ATT\u0026CK methodology\n- [🏷️ Classification Framework](https://github.com/Hack23/ISMS-PUBLIC/blob/main/CLASSIFICATION.md) — CIA triad, RTO/RPO, business impact\n\n### GitHub Copilot Integration\n\nRiksdagsmonitor uses **GitHub Copilot personas, skills, and agentic workflows** as first-class automation. The directory READMEs are the single source of truth; [`AGENTS.md`](AGENTS.md) and [`SKILLS.md`](SKILLS.md) are the long-form reference catalogs.\n\n- [`.github/agents/README.md`](.github/agents/README.md) — **24 agent files** (14 persona agents + 9 workflow-specialist `.agent.md` + shared `developer.instructions.md`)\n- [`.github/skills/README.md`](.github/skills/README.md) — **91 skills** grouped by 12 functional categories\n- [`.github/prompts/README.md`](.github/prompts/README.md) — 8 bounded-context prompt modules + Tier-C extension, imported by every agentic news workflow\n- [`.github/workflows/README.md`](.github/workflows/README.md) — 45 workflow files (standard + agentic)\n- [AGENTS.md](AGENTS.md) — canonical persona catalog with skill-mapping tables and invocation examples\n- [SKILLS.md](SKILLS.md) — canonical skill catalog with agent-skill mappings\n\n**14 Persona Agents** (assignable via `assign_copilot_to_issue`):\n\n- **security-architect** · **documentation-architect** · **quality-engineer** · **frontend-specialist** · **isms-compliance-manager** · **deployment-specialist** · **devops-engineer** · **intelligence-operative** · **news-journalist** · **content-generator** · **data-pipeline-specialist** · **data-visualization-specialist** · **task-agent** · **ui-enhancement-specialist**\n\n**9 Workflow-Specialist Agents** (`.agent.md`, invoked by name from workflows): `agentic-workflows` · `ci-cleaner` · `contribution-checker` · `create-safe-output-type` · `custom-engine-implementation` · `grumpy-reviewer` · `interactive-agent-designer` · `technical-doc-writer` · `w3c-specification-writer`\n\n**Available Skills (91)** — see [`.github/skills/README.md`](.github/skills/README.md) for the complete catalog across:\n\n- 🛡️ Core Infrastructure \u0026 Governance (9) · 🕵️ Political Intelligence (11) · 🔐 ISMS \u0026 Security (14)\n- ⚙️ Development \u0026 Operations (14) · 🧪 Testing \u0026 QA (2) · 🎨 UI/UX \u0026 Design (8)\n- 📡 Data Integration (6) · 📰 Journalism \u0026 Media (5) · 🏛️ Government, Regulatory \u0026 Economics (7)\n- 🗣️ Language \u0026 Localization (1) · 🤖 GitHub Agentic Workflows (13) · 📋 Copilot Patterns (1)\n\n*Economic-Data Integrations (three primary sources, parity-treated):*\n- **scb-mcp** (`@jarib/pxweb-mcp@2.0.0`) — official Swedish statistics via PxWebAPI 2.0 (1,200+ tables)\n- **world-bank-mcp** (`worldbank-mcp@1.0.1`) + `scripts/world-bank-client.ts` — WGI governance, environment, long-horizon social/education\n- **IMF TypeScript client** (`scripts/imf-client.ts`) — WEO, Fiscal Monitor, IFS, GFS_COFOG via Datamapper JSON + SDMX 3.0; macro/fiscal freshness + T+5 projections. **Intentionally not an MCP server** — pure-TS, fully covered by the npm SBOM (ADR 0001).\n\n### External Documentation\n- [CIA Platform Documentation](https://hack23.github.io/cia/)\n- [CIA JSON Export Specifications](https://github.com/Hack23/cia/tree/master/json-export-specs/visualizations)\n- [Hack23 ISMS](https://github.com/Hack23/ISMS)\n- [Hack23 Public ISMS](https://github.com/Hack23/ISMS-PUBLIC)\n- [Hack23 Secure Development Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md)\n- [Hack23 Blog](https://hack23.com/blog.html)\n\n## 🔬 Political Intelligence Analysis \u0026 News Creation\n\nRiksdagsmonitor is built around two tightly-coupled product lines: **deep political intelligence analysis** and **autonomous news article creation**. Every news article is backed by a reproducible analysis artifact trail on disk.\n\n### End-to-end pipeline\n\n```mermaid\nflowchart LR\n  A[📥 MCP + CIA + SCB + IMF\u003cbr/\u003edata download] --\u003e B[📐 Apply methodology\u003cbr/\u003eanalysis/methodologies]\n  B --\u003e C[📋 Populate templates\u003cbr/\u003eanalysis/templates]\n  C --\u003e D[📂 Write 9 or 14 artifacts\u003cbr/\u003eanalysis/daily/$DATE/$SUBFOLDER]\n  D --\u003e E{🚦 Analysis Gate\u003cbr/\u003eprompts/05}\n  E -- pass --\u003e F[📰 Generate article\u003cbr/\u003eprompts/06]\n  E -- fail --\u003e C\n  F --\u003e G[🌐 Translate into\u003cbr/\u003eremaining 12 languages]\n  G --\u003e H[🔀 One PR per article type\u003cbr/\u003eprompts/07]\n  style A fill:#0a0e27,stroke:#00d9ff,color:#e0e0e0\n  style E fill:#dc3545,stroke:#b02a37,color:#fff\n  style H fill:#1a1e3d,stroke:#ffbe0b,color:#e0e0e0\n```\n\n### Vital documents\n\n| Area | Document | What you'll find |\n|------|----------|------------------|\n| **Analysis framework** | [`analysis/README.md`](analysis/README.md) | Artifact taxonomy, 9-artifact / 14-artifact contract, daily-output layout |\n| **Methodology library** | [`analysis/methodologies/README.md`](analysis/methodologies/README.md) | 11 methodology documents (AI-driven guide, per-document protocol, risk/SWOT/threat frameworks, synthesis, electoral, classification, style) |\n| **Template library** | [`analysis/templates/README.md`](analysis/templates/README.md) | 23 templates — 8 core single-type (T1–T8) + 15 extended/Tier-C (scenario, executive-brief, coalition-mathematics, election-2026, historical-parallels, comparative-international, devil's advocate, etc.) |\n| **News-generation contract** | [`.github/prompts/README.md`](.github/prompts/README.md) | 8 bounded-context prompt modules + Tier-C extension; single blocking analysis gate |\n| **Workflow orchestration** | [`.github/workflows/README.md`](.github/workflows/README.md) + [`WORKFLOWS.md`](WORKFLOWS.md) §Stage 6.1 | How each `news-*.md` source compiles to a hardened `.lock.yml` with SHA-pinned actions, egress firewall, and five-layer safe-outputs |\n| **Specialist personas** | [`.github/agents/README.md`](.github/agents/README.md) | `intelligence-operative`, `news-journalist`, `content-generator` — and 11 more |\n| **Rules that guide the agents** | [`.github/skills/README.md`](.github/skills/README.md) | 11 political-intelligence skills + 5 journalism skills + 14 ISMS/security skills |\n\n### Data sources used during analysis\n\n- **Riksdagen \u0026 Regeringen** via `riksdag-regering-mcp` (32 tools): MPs, votes, documents, speeches, committees, government docs\n- **Statistics Sweden (SCB)** via `@jarib/pxweb-mcp@2.0.0` (1 200+ PxWeb tables)\n- **World Bank Open Data** via `worldbank-mcp@1.0.1` + `scripts/world-bank-client.ts` (WGI governance, environment, education)\n- **IMF** via `scripts/imf-client.ts` (pure-TS, WEO + Fiscal Monitor + IFS + GFS_COFOG, T+5 projections)\n- **CIA platform** (Hack23) — 19 visualisation products consumed nightly via `update-cia-csv-data.yml`\n\n---\n\n## 🤖 AI-Disrupted News Generation\n\n\u003e *\"While traditional newsrooms debate whether AI will replace journalists, Riksdagsmonitor already runs a fully autonomous political intelligence newsroom — 12 agentic workflows, 14 languages, zero human editors, and a publication schedule that would bankrupt any legacy outlet trying to keep up.\"*\n\nRiksdagsmonitor'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.7) via GitHub Copilot Coding Agent, our **12 specialized workflows** (11 scheduled + 1 on-demand, plus 1 dedicated translation workflow) autonomously produce deep political analysis — not shallow summaries, but structured intelligence products with source verification, multi-party balance, and GDPR-compliant OSINT methodology.\n\n\u003e 📚 **Directory-level catalogs** (single sources of truth):\n\u003e - [`.github/workflows/README.md`](.github/workflows/README.md) — 45 workflow files (21 standard `.yml` + 12 agentic `.md` sources + 12 compiled `.lock.yml`)\n\u003e - [`.github/prompts/README.md`](.github/prompts/README.md) — 8 bounded-context prompt modules + `ext/tier-c-aggregation.md`, imported by every news workflow\n\u003e - [`.github/agents/README.md`](.github/agents/README.md) — 24 Copilot agent files (14 personas + 9 workflow-specialists + 1 shared developer-instructions)\n\u003e - [`.github/skills/README.md`](.github/skills/README.md) — 91 skills grouped by 12 functional categories\n\u003e - [`analysis/README.md`](analysis/README.md) — on-disk artifact layout (`analysis/daily/$ARTICLE_DATE/$SUBFOLDER/`) with 9-artifact / 14-artifact contracts\n\u003e - [`analysis/methodologies/README.md`](analysis/methodologies/README.md) — 11 methodology documents\n\u003e - [`analysis/templates/README.md`](analysis/templates/README.md) — 23 canonical output templates (8 core single-type + 15 extended / Tier-C)\n\u003e - [`WORKFLOWS.md`](WORKFLOWS.md) — canonical end-to-end reference (v7.2, includes Stage 6.1 *Agentic Workflow Structure \u0026 Prompt Imports*)\n\n### Autonomous Publication Schedule\n\nEvery 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.\n\n| Time (UTC) | Workflow | Coverage | Frequency |\n|:-----------:|:---------|:---------|:----------|\n| 🌅 04:00 | **Committee Reports** | Utskottsbetänkanden analysis, voting breakdowns | Mon–Fri |\n| 🌅 05:00 | **Propositions** | Government bills, legislative impact assessment | Mon–Fri |\n| ☀️ 06:00 | **Motions** | Opposition proposals, party strategy decoding | Mon–Fri |\n| ❓ 07:00 | **Interpellations** | Ministerial accountability, evasion detection | Mon–Fri |\n| 🔮 07:00 | **Week Ahead** | Parliamentary calendar preview, agenda intelligence | Friday |\n| 📅 08:00 | **Month Ahead** | Strategic outlook, coalition forecasting | 1st of month |\n| 🔍 10:00 \u0026 14:00 (Mon–Fri); 12:00 (Sat/Sun) | **Realtime Monitor** | Breaking political developments, flash analysis | Mon–Fri (×2) + weekends |\n| 🌍 11:00 \u0026 17:00 (Mon–Fri); 14:00 (Sat/Sun) | **Translate** | 12 additional languages from EN/SV cores | Daily |\n| 🌆 18:00 (16:00 Sat) | **Evening Analysis** | Deep-dive intelligence synthesis | Mon–Sat |\n| 📊 09:00 | **Weekly Review** | Week-in-review scorecard, party performance | Saturday |\n| 📈 10:00 | **Monthly Review** | Comprehensive monthly intelligence assessment | 28th of month |\n| 🔧 Manual | **Article Generator** | On-demand article generation / backfill | On-demand |\n\n\u003e _All times are **UTC** (GitHub Actions cron). For local time, convert to CET/CEST. Authoritative schedules defined in `.github/workflows/news-*.lock.yml` workflows — see [`.github/workflows/README.md`](.github/workflows/README.md) for the complete inventory._\n\n\u003e **Result**: Dozens of articles per week across 14 languages — delivering **hundreds of localized intelligence products each month**, generated autonomously with zero editorial intervention.\n\n### 🧠 Why This Is Different\n\nTraditional AI-generated news is shallow — it rewrites press releases. Riksdagsmonitor's agentic pipeline performs **deep political intelligence analysis**:\n\n- 🔎 **Source verification**: Every claim traced to official Riksdag/Regering data via MCP\n- ⚖️ **Multi-party balance**: Algorithmic fairness across all 8 parliamentary parties\n- 📊 **Quantitative rigor**: Voting cohesion metrics, attendance scoring, legislative productivity indices\n- 🌐 **14-language reach**: Native-quality political analysis — not machine translation, but culturally adapted intelligence\n- 🛡️ **GDPR-compliant OSINT**: Only public parliamentary data, with privacy-by-design architecture\n- 🧪 **Quality gates**: HTMLHint validation, link checking, accessibility compliance (WCAG 2.1 AA) — every article passes CI before publication\n\n---\n\n## 🔮 Future Roadmap: 2026–2037\n\n\u003e *From agentic news generation to AGI-powered democratic intelligence — the 11-year evolution of Riksdagsmonitor.*\n\u003e\n\u003e 📋 **Detailed planning**: [Future Workflows](FUTURE_WORKFLOWS.md) · [Future Mindmap](FUTURE_MINDMAP.md)\n\n### Evolution Overview\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#00d9ff\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#ff006e\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\", \"background\": \"#0a0e27\"}}}%%\ntimeline\n    title Riksdagsmonitor Evolution — 2026 to 2037\n    section Phase 3 — Foundation (2026)\n        Q1-Q2 : TypeScript migration ✅\n               : 12 agentic news workflows ✅\n               : 34 GitHub Actions workflows + 10 agent prompt files\n               : Dual deployment (S3 + GitHub Pages)\n        Q3-Q4 : CIA data pipeline integration\n               : Predictive dashboards\n               : 14-language expansion\n               : 40 GitHub Actions workflows + 10 agent prompt files\n    section Phase 4 — Intelligence (2027-2029)\n        2027 : Real-time data streams\n             : ML prediction models\n             : Multi-source OSINT\n             : Nordic parliament expansion\n        2028 : Multi-modal content (audio/video)\n             : Self-healing pipelines\n             : AI editorial board\n             : 65 automation assets\n        2029 : Fully autonomous pipeline\n             : Expert-level analysis\n             : API platform launch\n             : 75 automation assets\n    section Phase 5 — Scale (2030-2033)\n        2030-2031 : EU-wide coverage\n                  : 85+ automation assets\n                  : Near-expert analysis\n                  : Sovereign AI evaluation\n        2032-2033 : Global parliamentary monitoring\n                  : 100 automation assets\n                  : Pre-AGI capabilities\n                  : Every UN language\n    section Phase 6 — AGI Era (2034-2037)\n        2034-2035 : AGI-enhanced intelligence\n                  : 195 parliaments monitored\n                  : Predictive governance\n                  : 110+ automation assets\n        2036-2037 : Transformative democracy platform\n                  : 120+ automation assets\n                  : Post-AGI capabilities\n                  : Democratic safeguards architecture\n```\n\n### Phase 3: Agentic Intelligence Foundation (2026)\n\n*Current phase — AI-disrupted news generation operational*\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#00d9ff\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#ff006e\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\"}}}%%\ngraph LR\n    subgraph SGCompleted[\"✅ Completed\"]\n        style SGCompleted fill:#006400,stroke:#00d9ff,color:#e0e0e0\n        A[TypeScript Migration\u003cbr/\u003e31 modules] --\u003e B[Agentic News Gen\u003cbr/\u003e12 workflows]\n        B --\u003e C[14 Languages\u003cbr/\u003eRTL support]\n        C --\u003e D[Dual Deploy\u003cbr/\u003eS3 + GitHub Pages]\n    end\n    subgraph SGProgress[\"🔄 In Progress\"]\n        style SGProgress fill:#1a1e3d,stroke:#ffbe0b,color:#e0e0e0\n        E[CIA Data Pipeline\u003cbr/\u003e19 products] --\u003e F[Predictive Dashboards\u003cbr/\u003eChart.js/D3.js]\n        F --\u003e G[Content Expansion\u003cbr/\u003eHundreds of articles/month]\n    end\n    subgraph SGPlanned[\"📋 Planned\"]\n        style SGPlanned fill:#0a0e27,stroke:#ff006e,color:#e0e0e0\n        H[API Platform\u003cbr/\u003eGraphQL] --\u003e I[Nordic Expansion\u003cbr/\u003eDenmark, Norway, Finland]\n    end\n    D --\u003e E\n    G --\u003e H\n```\n\n| Capability | Status | Details |\n|:-----------|:------:|:--------|\n| TypeScript migration | ✅ Done | 31 modules, 2890 Vitest tests |\n| Agentic news generation | ✅ Live | 12 workflows (11 scheduled + 1 on-demand), 14 languages |\n| 14-language support | ✅ Live | Including Arabic/Hebrew RTL |\n| CIA data integration | 🔄 Active | 19 visualization products |\n| Predictive dashboards | 📋 Planned | Chart.js/D3.js interactive displays |\n\n### Phase 4: Predictive Intelligence \u0026 Nordic Expansion (2027–2029)\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#00d9ff\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#ff006e\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\"}}}%%\ngraph TB\n    subgraph SG2027[\"2027 — Predictive Analytics\"]\n        style SG2027 fill:#1a1e3d,stroke:#00d9ff,color:#e0e0e0\n        PA1[🔮 ML Election Models\u003cbr/\u003eCoalition probability scoring]\n        PA2[📡 Real-Time Streams\u003cbr/\u003eLive parliamentary feeds]\n        PA3[🌍 Nordic Expansion\u003cbr/\u003eDK · NO · FI parliaments]\n        PA4[🔍 Multi-Source OSINT\u003cbr/\u003eMedia + social + official]\n    end\n    subgraph SG2028[\"2028 — Multi-Modal Intelligence\"]\n        style SG2028 fill:#1a1e3d,stroke:#ffbe0b,color:#e0e0e0\n        MM1[🎙️ Audio/Video Analysis\u003cbr/\u003eDebate tone detection]\n        MM2[🤖 AI Editorial Board\u003cbr/\u003eAutonomous quality control]\n        MM3[🔧 Self-Healing Pipelines\u003cbr/\u003eAuto-recovery workflows]\n        MM4[📊 65 Automation Assets]\n    end\n    subgraph SG2029[\"2029 — Autonomous Platform\"]\n        style SG2029 fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0\n        AP1[🚀 Fully Autonomous Pipeline\u003cbr/\u003eZero human intervention]\n        AP2[🧠 Expert-Level Analysis\u003cbr/\u003ePhD-equivalent insight]\n        AP3[🔌 API Platform Launch\u003cbr/\u003eGraphQL + REST]\n        AP4[📊 75 Automation Assets]\n    end\n    PA1 --\u003e MM1\n    PA2 --\u003e MM2\n    PA3 --\u003e MM3\n    PA4 --\u003e MM4\n    MM1 --\u003e AP1\n    MM2 --\u003e AP2\n    MM3 --\u003e AP3\n    MM4 --\u003e AP4\n```\n\n### Phase 5: EU-Wide Coverage \u0026 Pre-AGI (2030–2033)\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#00d9ff\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#ff006e\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\"}}}%%\ngraph LR\n    subgraph SGEU[\"2030-2031 — EU Scale\"]\n        style SGEU fill:#1a1e3d,stroke:#00d9ff,color:#e0e0e0\n        EU1[🇪🇺 27 EU Parliaments\u003cbr/\u003e+ European Parliament]\n        EU2[🧠 Near-Expert Analysis\u003cbr/\u003eOpus 8.x capabilities]\n        EU3[📊 85+ Automation Assets\u003cbr/\u003eContinent-wide coverage]\n        EU4[🏛️ Sovereign AI Evaluation\u003cbr/\u003eEU AI Act compliance]\n    end\n    subgraph SGGL[\"2032-2033 — Global Reach\"]\n        style SGGL fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0\n        GL1[🌍 Global Parliamentary Watch\u003cbr/\u003e100+ democracies]\n        GL2[🗣️ Every UN Language\u003cbr/\u003eNative-quality output]\n        GL3[📊 100 Automation Assets\u003cbr/\u003ePre-AGI capabilities]\n        GL4[🔒 Zero-Trust Architecture\u003cbr/\u003eQuantum-safe cryptography]\n    end\n    EU1 --\u003e GL1\n    EU2 --\u003e GL2\n    EU3 --\u003e GL3\n    EU4 --\u003e GL4\n```\n\n### Phase 6: AGI Era \u0026 Transformative Democracy (2034–2037)\n\n\u003e *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.*\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#ff006e\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#00d9ff\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\"}}}%%\ngraph TB\n    subgraph SGAGI[\"🤖 6.1 AGI-Enhanced Intelligence\"]\n        style SGAGI fill:#1a1e3d,stroke:#ff006e,color:#e0e0e0\n        AGI1[\"🤖 Autonomous Analysis\u003cbr/\u003eReal-time intelligence across\u003cbr/\u003eall 195 parliamentary systems\"]\n        AGI2[\"🌐 Universal Language\u003cbr/\u003eEvery UN language\u003cbr/\u003esupported natively\"]\n        AGI3[\"📊 Predictive Governance\u003cbr/\u003ePolicy impact prediction\u003cbr/\u003ebefore legislation proposed\"]\n    end\n    subgraph SGSAFE[\"⚖️ 6.2 Democratic Safeguards\"]\n        style SGSAFE fill:#0a0e27,stroke:#00d9ff,color:#e0e0e0\n        SAFE1[\"⚖️ Ethical AI Governance\u003cbr/\u003eHuman oversight maintained\u003cbr/\u003eregardless of AI capability\"]\n        SAFE2[\"🛡️ Anti-Weaponization\u003cbr/\u003eArchitecture prevents\u003cbr/\u003emanipulation or misuse\"]\n        SAFE3[\"🔒 Constitutional Alignment\u003cbr/\u003eDemocratic values encoded\u003cbr/\u003ein platform architecture\"]\n    end\n    subgraph SGPARA[\"🧬 6.3 Paradigm Readiness\"]\n        style SGPARA fill:#0a0e27,stroke:#ffbe0b,color:#e0e0e0\n        PARA1[\"⚛️ Quantum AI Ready\u003cbr/\u003ePost-quantum cryptography\u003cbr/\u003eQuantum ML integration\"]\n        PARA2[\"🧠 Neuromorphic Computing\u003cbr/\u003eBrain-inspired architectures\u003cbr/\u003eEdge intelligence deployment\"]\n        PARA3[\"🌍 Transformative Platform\u003cbr/\u003e120+ automation assets · 195 parliaments\u003cbr/\u003eGlobal democratic intelligence\"]\n    end\n    AGI1 --\u003e SAFE1\n    AGI2 --\u003e SAFE2\n    AGI3 --\u003e SAFE3\n    SAFE1 --\u003e PARA1\n    SAFE2 --\u003e PARA2\n    SAFE3 --\u003e PARA3\n```\n\n**Strategic Considerations for Phase 6:**\n- 🤖 **Autonomous analysis**: AGI-powered real-time political intelligence across all 195 parliamentary systems\n- 🌐 **Universal language support**: Every UN language supported natively\n- 📊 **Predictive governance**: Policy impact prediction *before* legislation is proposed\n- ⚖️ **Ethical AI governance**: Human oversight maintained regardless of AI capability level\n- 🛡️ **Democratic safeguards**: Platform architecture prevents weaponization or manipulation\n\n### 📈 AI Model Evolution Strategy\n\n**Illustrative assumptions** *(high uncertainty — AI landscape evolves rapidly)*:\n- Model updates assumed roughly quarterly; actual cadence will vary by vendor and paradigm\n- Version numbers (Opus 5.x–12.x) are illustrative — actual products may differ significantly\n- Competitors (OpenAI, Google, Meta, EU sovereign AI) evaluated at each major release cycle\n- Architecture must accommodate potential paradigm shifts (quantum AI, neuromorphic computing, or entirely new approaches)\n\n**Workflow Count Projection:**\n\n| Year | Automation Assets | AI Model | Key Capability |\n|:----:|:---------------:|:---------|:---------------|\n| **2026** | 44→50 | Opus 4.7–4.9 | 🤖 Agentic news generation (current) |\n| **2027** | 50–55 | Opus 5.x | 🔮 Predictive analytics \u0026 Nordic expansion |\n| **2028** | 55–65 | Opus 6.x | 🎙️ Multi-modal content (audio/video) |\n| **2029** | 65–75 | Opus 7.x | 🚀 Fully autonomous pipeline |\n| **2030** | 75–85 | Opus 8.x | 🧠 Near-expert analysis |\n| **2031–2033** | 85–100 | Opus 9–10.x / Pre-AGI | 🌍 Global parliamentary coverage |\n| **2034–2037** | 100–120+ | AGI / Post-AGI | ⚡ Transformative democracy platform |\n\n```mermaid\n%%{init: {\"theme\": \"dark\", \"themeVariables\": {\"primaryColor\": \"#00d9ff\", \"primaryTextColor\": \"#e0e0e0\", \"primaryBorderColor\": \"#ff006e\", \"lineColor\": \"#ffbe0b\", \"secondaryColor\": \"#1a1e3d\", \"tertiaryColor\": \"#0a0e27\"}}}%%\nxychart-beta\n    title \"Riksdagsmonitor Workflow Growth Projection (2026–2037)\"\n    x-axis [\"2026\", \"2027\", \"2028\", \"2029\", \"2030\", \"2031\", \"2032\", \"2033\", \"2034\", \"2035\", \"2036\", \"2037\"]\n    y-axis \"Automation Assets (Workflows + Prompt Files)\" 0 --\u003e 130\n    bar [47, 53, 60, 70, 80, 88, 95, 100, 105, 110, 115, 120]\n    line [47, 53, 60, 70, 80, 88, 95, 100, 105, 110, 115, 120]\n```\n\n\u003e Note: The chart values are midpoint estimates within the projected ranges in the table above and are illustrative, not exact counts.\n\n### 📋 Detailed Future Planning\n\n| Document | Description |\n|:---------|:------------|\n| 📋 [**Future Workflows**](FUTURE_WORKFLOWS.md) | Complete 11-year workflow evolution roadmap with architecture diagrams |\n| 🗺️ [**Future Mindmap**](FUTURE_MINDMAP.md) | Capability expansion map from Swedish monitoring to global democratic intelligence |\n| 🚀 [Future Architecture](FUTURE_ARCHITECTURE.md) | Architectural evolution from static site to AI-native platform |\n| 🔒 [Future Security Architecture](FUTURE_SECURITY_ARCHITECTURE.md) | Security roadmap including post-quantum cryptography |\n| 💼 [Future SWOT](FUTURE_SWOT.md) | Strategic opportunities in democratic technology |\n\n---\n\n## 🏢 About Hack23\n\n**Hack23 AB (Org.nr 5595347807)** - Swedish cybersecurity and open-source intelligence consultancy\n\n- 🌐 **Website**: [www.hack23.com](https://www.hack23.com)\n- 💼 **LinkedIn**: [Company Profile](https://www.linkedin.com/company/hack23/)\n- 👨‍💻 **Founder**: [James Pether Sörling, CISSP, CISM](https://www.linkedin.com/in/jamessorling/)\n- 🔒 **ISMS**: [Public ISMS Repository](https://github.com/Hack23/ISMS-PUBLIC)\n\n## 🤝 Contributing\n\nContributions welcome! Please follow Hack23's secure development standards:\n\n1. **Fork** the repository\n2. **Create** a feature branch with descriptive name\n3. **Sign** commits with GPG key\n4. **Test** changes locally (HTML validation, link checking)\n5. **Submit** pull request with comprehensive description\n6. **Address** code review feedback\n\n**Requirements:**\n- GitHub account with MFA enabled\n- GPG-signed commits\n- HTML validation passing\n- No security vulnerabilities introduced\n\n## 📜 License\n\nCopyright © 2008-2026 Hack23 AB (Org.nr 5595347807)\n\nLicensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) file for details.\n\n## 🔗 Links\n\n- **Website:** [riksdagsmonitor.com](https://riksdagsmonitor.com)\n- **CIA Platform:** [www.hack23.com/cia](https://www.hack23.com/cia)\n- **GitHub:** [github.com/Hack23/riksdagsmonitor](https://github.com/Hack23/riksdagsmonitor)\n- **Hack23:** [www.hack23.com](https://www.hack23.com)\n- **ISMS:** [github.com/Hack23/ISMS](https://github.com/Hack23/ISMS)\n- **LinkedIn:** [James Pether Sörling](https://www.linkedin.com/in/jamessorling/)\n\n## 👨‍💻 Maintainer\n\n**James Pether Sörling**  \nCISSP, CISM  \nCEO, Hack23 AB  \n[LinkedIn](https://www.linkedin.com/in/jamessorling/) | [GitHub](https://github.com/pethers)\n\n---\n\n*Monitor political activity in Sweden with systematic transparency*\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhack23%2Friksdagsmonitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhack23%2Friksdagsmonitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhack23%2Friksdagsmonitor/lists"}