-
Notifications
You must be signed in to change notification settings - Fork 1
Description
π Issue Type
Feature - Automation & Content Generation
π― Objective
IMPORTANT: CIA platform maintains the digital twin and performs all OSINT analysis. This issue focuses on generating nightly news items from CIA's intelligence exports, covering daily Riksdag updates, committee meetings, and future event analysis.
Create an automated GitHub Actions workflow that generates nightly news items by consuming CIA platform's intelligence exports, producing daily political activity summaries, committee meeting coverage, and future event predictions across 14 languages.
π Current State
- β Static HTML pages with manual updates
- β CIA provides complete intelligence analysis
- β CIA exports available (from Issue CIA Data Consumption Pipeline (JSON Export Integration)Β #18)
- β No automated news generation
- β No nightly content workflows
- β No intelligence digest creation
- β Manual content updates required
Measured Metrics:
- Automated workflows: 0
- News items generated: 0
- Update frequency: Manual
- Intelligence coverage: None
π Desired State
- β Nightly GitHub Actions workflow (03:00 CET)
- β Automated news from CIA intelligence exports
- β Committee meeting summaries (CIA data)
- β Future event predictions (CIA analysis)
- β Daily political activity digest (CIA intelligence)
- β Multi-language news items (14 languages)
- β Automated commit and deployment
- β Error handling and notifications
π CIA Data Integration Context
CIA Platform Role:
π CIA Provides: Daily intelligence updates, OSINT analysis, event tracking
π CIA Exports: Daily activity summaries, committee schedules, risk assessments
π CIA Analyzes: Political events, behavioral patterns, future predictions
Riksdagsmonitor Role:
π° Generates: News content from CIA intelligence exports
βοΈ Formats: CIA insights as readable news items
π Translates: CIA intelligence to 14 languages
π
Publishes: Daily intelligence digests
CIA Data Products (for news generation):
- Overview Dashboard - Daily activity metrics (CIA export)
- Committee Analysis - Meeting schedules and insights (CIA data)
- Event Timeline - Historical and future events (CIA tracking)
- Risk Analysis - 45 rules for behavioral transparency (CIA scoring)
- Party Performance - Daily political dynamics (CIA analysis)
Data Source:
- CIA Exports: Cached in
data/cia-exports/current/ - CIA Intelligence: Pre-analyzed by CIA platform
- Committee data: CIA-aggregated from Riksdag APIs
CIA Export Files Used:
overview-dashboard.json # Daily activity (CIA)
committee-meetings.json # Scheduled meetings (CIA)
upcoming-events.json # Future events (CIA forecast)
risk-alerts.json # Risk assessments (CIA)
party-performance.json # Political dynamics (CIA)Methodology:
- CIA OSINT analysis from
DATA_ANALYSIS_INTOP_OSINT.md(451.4 KB) - CIA risk rule evaluation (45 rules)
- CIA event forecasting algorithms
- CIA natural language intelligence summaries
Implementation Notes:
- Consume CIA exports from Issue CIA Data Consumption Pipeline (JSON Export Integration)Β #18 (consumption pipeline)
- Transform CIA intelligence into news format
- No duplication of CIA's analysis - content generation only
- Review CIA intelligence: https://www.hack23.com/cia
π§ Implementation Approach
Phase 1: CIA Intelligence Consumer
News Generation from CIA Data:
// scripts/generate-news-from-cia.js
class CIANewsGenerator {
constructor() {
this.ciaData = {};
}
// Load CIA intelligence exports
async loadCIAIntelligence() {
this.ciaData.overview = await this.loadExport('overview-dashboard');
this.ciaData.committees = await this.loadExport('committee-meetings');
this.ciaData.events = await this.loadExport('upcoming-events');
this.ciaData.risks = await this.loadExport('risk-alerts');
this.ciaData.parties = await this.loadExport('party-performance');
}
// Generate daily digest from CIA intelligence
async generateDailyDigest() {
const digest = {
date: new Date().toISOString().split('T')[0],
headline: this.createHeadlineFromCIA(),
activities: this.summarizeCIAActivities(),
committees: this.formatCIACommitteeMeetings(),
risks: this.highlightCIARiskAlerts(),
forecast: this.includeCIAForecast()
};
return digest;
}
// Transform CIA data into news format
createHeadlineFromCIA() {
const overview = this.ciaData.overview;
// Use CIA's key insights for headline
return `${overview.keyEvents.length} Major Events | ` +
`${overview.riskAlerts} Risk Alerts | ` +
`${overview.committeeActivities} Committee Meetings`;
}
}Phase 2: News Generation Engine
Content Types from CIA Intelligence:
- Daily Digest (CIA Overview)
class DailyDigest {
// Generate from CIA daily intelligence
async generate(ciaOverview) {
return {
title: "Daily Parliament Intelligence",
summary: ciaOverview.executiveSummary, // From CIA
keyEvents: ciaOverview.keyEvents, // From CIA
riskHighlights: ciaOverview.riskAlerts, // From CIA
source: "CIA Intelligence Platform"
};
}
}- Committee Calendar (CIA Committee Data)
class CommitteeNews {
// Format CIA committee intelligence
async generate(ciaCommittees) {
return {
title: "Committee Activity This Week",
meetings: ciaCommittees.scheduledMeetings.map(m => ({
committee: m.name,
date: m.date,
agenda: m.topics, // From CIA
significance: m.impactScore, // From CIA analysis
attendees: m.expectedMembers // From CIA
}))
};
}
}- Future Events Analysis (CIA Forecast)
class FutureEventsNews {
// Transform CIA event predictions
async generate(ciaEvents) {
return {
title: "Upcoming Events Analysis (Next 30 Days)",
predictions: ciaEvents.forecast.map(e => ({
event: e.name,
probability: e.likelihood, // From CIA model
impact: e.significanceScore, // From CIA analysis
context: e.historicalPattern // From CIA OSINT
}))
};
}
}- Risk Intelligence (CIA Risk Analysis)
class RiskIntelligence {
// Format CIA risk assessments
async generate(ciaRisks) {
return {
title: "Political Risk Intelligence",
alerts: ciaRisks.activeAlerts.map(r => ({
type: r.category,
severity: r.riskScore, // From CIA scoring
affected: r.entities,
context: r.osintAnalysis, // From CIA OSINT
recommendation: r.mitigation // From CIA
}))
};
}
}Phase 3: Workflow Implementation
Nightly News Generation:
# .github/workflows/generate-cia-news.yml
name: Generate News from CIA Intelligence
on:
schedule:
- cron: '0 3 * * *' # 03:00 CET daily
workflow_dispatch:
jobs:
generate-news:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Load CIA intelligence exports
run: node scripts/load-cia-data.js
- name: Generate daily digest
run: node scripts/generate-news-from-cia.js
- name: Translate to 14 languages
run: node scripts/translate-cia-news.js
- name: Create news pages
run: node scripts/create-news-pages.js
- name: Commit news items
run: |
git config user.name "CIA News Bot"
git config user.email "news@hack23.com"
git add news/
git commit -m "Daily news from CIA intelligence $(date +'%Y-%m-%d')"
git push
- name: Deploy
run: gh workflow run deploy.yml
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}Phase 4: Multi-Language Support
Translation from CIA Data:
// scripts/translate-cia-news.js
class CIANewsTranslator {
// Translate CIA intelligence to 14 languages
async translateNews(newsItem, languages) {
const translations = {};
for (const lang of languages) {
translations[lang] = {
title: await this.translate(newsItem.title, lang),
content: await this.translate(newsItem.content, lang),
// CIA data stays untranslated (numbers, names)
ciaData: newsItem.ciaData
};
}
return translations;
}
}Files to Create/Modify
.github/workflows/
generate-cia-news.yml # Main workflow
scripts/
generate-news-from-cia.js # News generation from CIA
load-cia-data.js # Load CIA exports
translate-cia-news.js # Multi-language
create-news-pages.js # HTML generation
news/
index.html # News archive
YYYY-MM-DD/ # Daily news folders
daily-digest.html
committee-calendar.html
risk-intelligence.html
data/
cia-exports/current/ # CIA data source
config/
news-templates/ # Content templates
π€ Recommended Agent
devops-engineer - Best suited for:
- GitHub Actions workflow design
- CIA data pipeline integration
- Content generation automation
- Error handling and monitoring
- Scheduled job optimization
Secondary: documentation-architect for content formatting
β Acceptance Criteria
- Nightly workflow running at 03:00 CET
- Daily digest generated from CIA intelligence
- Committee calendar from CIA committee data
- Future events from CIA forecasts
- Risk intelligence from CIA analysis
- All 14 languages supported
- News items committed and deployed
- Error handling with notifications
- Manual trigger option available
- CIA attribution in all news items
- Comprehensive logging
- CIA data validation before generation
π References
- CIA Platform: https://www.hack23.com/cia
- CIA OSINT Methodology: https://github.com/Hack23/cia/blob/master/DATA_ANALYSIS_INTOP_OSINT.md (451.4 KB)
- CIA Business Products: https://github.com/Hack23/cia/blob/master/BUSINESS_PRODUCT_DOCUMENT.md (133.5 KB)
- GitHub Actions: https://docs.github.com/en/actions
- Security Policy: https://github.com/Hack23/ISMS-PUBLIC/blob/main/Secure_Development_Policy.md
- Workflows: WORKFLOWS.md
π Translation & Content Alignment
Translation Guide(s): All 4 guides for news content
Related Homepage Page(s):
- blog-cia-osint-intelligence.html
- cia-features.html
Multi-Language Scope: All news items in 14 languages
π·οΈ Labels
enhancement, github_actions, documentation
π Security & Compliance
- CIA data validated before use
- Secure credential management
- Data privacy compliance (GDPR)
- Audit logging
- Error monitoring
- CIA attribution required
- GPG commit signing
- ISMS policy adherence
π‘ Key Principle
CIA = Intelligence Source | Riksdagsmonitor = News Publisher
CIA provides all intelligence analysis and OSINT insights. Riksdagsmonitor transforms CIA's exports into readable news content for public consumption.
Priority: Medium
Estimated Effort: 7-10 days
Dependencies: Issue #13 (CIA schemas), Issue #18 (CIA consumption)
Related Issues: Issue #19 (OSINT integration)