π EU Parliament Monitor β Analysis Methodologies
π The Political Intelligence Methodology Library for European Parliament Analysis
π― Six core analytical frameworks (Classification Β· Risk Β· Threat Β· SWOT Β· AI Quality Β· OSINT) + horizon & provenance methodologies (Synthesis Β· Strategic Extensions Β· Per-Document Β· Structural Metadata Β· Electoral Domain & Cycle Β· Analytical Supplementary Β· Forward Projection Β· IMF + World Bank Indicator Mappings Β· Source Triangulation Β· Confidence Calibration Β· Voter Segmentation Β· Style) + machine-readable style enforcement governing the analysis templates under analysis/templates/
π Current scope: 24 methodology .md files + 2 JSON config files (style + reference-quality-thresholds) governing 61 templates β ls analysis/methodologies/ and ls analysis/templates/ are the source of truth; hand-written counts in prose are deprecated.
π Document Owner: CEO | π Version: 3.4 | π
Last Updated: 2026-05-15 (UTC)
π Review Cycle: Quarterly | β° Next Review: 2026-07-31
π’ Owner: Hack23 AB (Org.nr 5595347807) | π·οΈ Classification: Public
| Policy | Description | Relevance to Analysis Methodologies |
|---|
| Information Security Policy | Organization-wide security governance and risk management | Defines risk assessment methodology adapted for political risk scoring |
| AI Policy | Responsible AI usage, transparency, and human oversight | Governs LLM-driven analysis: quality gates, bias mitigation, evidence requirements |
| Classification Policy | Data classification scheme and handling requirements | Classification guide aligns sensitivity levels with ISMS classification tiers |
| Secure Development Policy | Secure coding standards and SDLC security gates | Style guide and quality gates enforce structured, reviewable analytical output |
| Open Source Policy | Open source contribution and licensing governance | All methodology documents published under project license for transparency |
This directory contains the political-intelligence methodology library that governs how EU Parliament Monitor's agentic workflows produce, classify, assess, and publish European Parliament analysis. It splits into two layers: six core analytical frameworks (Classification, Risk, Threat, SWOT, Style, AI-Driven Guide) and a set of horizon-conditional / cross-cutting methodologies (OSINT Tradecraft, Confidence Calibration, Source Triangulation, Synthesis, Strategic Extensions, Per-Document, Structural Metadata, Electoral Domain + Cycle, Analytical Supplementary, IMF + World Bank Indicator Mappings, Forward-Projection, Voter Segmentation). Together they transform raw European Parliament MCP data into structured, evidence-based political intelligence. The operational entry point for every run is ai-driven-analysis-guide.md Β§"π Quick-Start Cheat-Sheet".
Core Principle: Every analytical claim requires verifiable evidence sourced from European Parliament open data. Opinion-based analysis, boilerplate summaries, and the unmodified use of software-centric threat models (such as STRIDE, DREAD, or PASTA) are explicitly rejected for political analysis. Political threat analysis uses purpose-built frameworks (Political Threat Landscape, Attack Trees, Kill Chain, Diamond Model, ICO Profiling) designed specifically for democratic process analysis. STRIDE remains in use in THREAT_MODEL.md for software security of the platform itself.
Design Philosophy: The six core frameworks form a layered analytical pipeline β classification provides the foundation, risk and threat assessments build the analytical core, SWOT synthesizes strategic implications, style standards enforce writing quality, and the AI guide orchestrates the entire pipeline with quality gates. The supporting methodologies extend that pipeline horizontally: osint-tradecraft-standards.md is the cross-cutting professional-tradecraft layer (ICD 203 Β· Admiralty Code Β· Words of Estimative Probability Β· SAT catalog Β· OSINT ethics) every artifact applies; confidence-calibration.md is the single source of truth for confidence labels (3-marker operational + 5-level heritage scale, WEP bands, Admiralty grades); synthesis-methodology.md governs the Stage-B.7 synthesis layer; strategic-extensions-methodology.md, electoral-domain-methodology.md and electoral-cycle-methodology.md cover deep-analysis and electoral-specific runs; per-document-methodology.md and structural-metadata-methodology.md cover atomic per-EP-document analysis and run-level provenance; and imf-indicator-mapping.md (primary) + worldbank-indicator-mapping.md (non-economic) govern the economic-context evidence ladder.
The following diagram illustrates the sequential pipeline that an AI agent follows when processing an incoming European Parliament data file:
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
flowchart TD
Start([π₯ EP MCP Data Received]) --> Read["π Agent Reads the<br/>Methodology Library<br/>(24 .md files)"]
Read --> Classify["π·οΈ Step 1: Classify Event<br/>7-Dimension Classification"]
Classify --> Risk["β οΈ Step 2: Assess Risk<br/>Likelihood Γ Impact Matrix"]
Risk --> Threat["π― Step 3: Analyze Threats<br/>Political Threat Landscape<br/>+ 5 Supporting Frameworks"]
Threat --> SWOT["πΌ Step 4: Build SWOT<br/>Evidence-Based Quadrants"]
SWOT --> Write["π Step 5: Write Analysis<br/>Depth Level 1/2/3"]
Write --> QualityGate{β
Quality Gate<br/>Score β₯ 7.0/10?}
QualityGate -->|Yes β
| Publish([π€ Publish Analysis])
QualityGate -->|No β| Revise[π Revise & Re-Assess]
Revise --> Classify
style Start fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Read fill:#4527A0,stroke:#311B92,color:#FFFFFF
style Classify fill:#00695C,stroke:#004D40,color:#FFFFFF
style Risk fill:#E65100,stroke:#BF360C,color:#FFFFFF
style Threat fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style SWOT fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style Write fill:#4A148C,stroke:#311B92,color:#FFFFFF
style QualityGate fill:#F57F17,stroke:#E65100,color:#FFFFFF
style Publish fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style Revise fill:#D84315,stroke:#BF360C,color:#FFFFFF
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
graph TB
subgraph "ποΈ Core Analysis Engine"
GUIDE["π€ AI-Driven Analysis Guide<br/><i>Master Protocol</i>"]
STYLE["βοΈ Political Style Guide<br/><i>Writing Standards</i>"]
end
subgraph "π¬ Analytical Frameworks"
CLASS["π·οΈ Classification Guide<br/><i>7-Dimension Taxonomy</i>"]
RISK["β οΈ Risk Methodology<br/><i>Cascading Risk Model</i>"]
SWOT["πΌ SWOT Framework<br/><i>TOWS + Cross-SWOT</i>"]
THREAT["π Threat Framework<br/><i>6-Dimension + 5 Frameworks</i>"]
end
subgraph "π ISMS Reference Layer"
ISMS1["π ISMS Classification"]
ISMS2["π ISMS Risk Assessment"]
ISMS3["π ISMS Style Guide"]
ISMS4["π ISMS Threat Modeling"]
end
GUIDE -->|"governs"| CLASS
GUIDE -->|"governs"| RISK
GUIDE -->|"governs"| SWOT
GUIDE -->|"governs"| THREAT
STYLE -->|"standards"| CLASS
STYLE -->|"standards"| RISK
STYLE -->|"standards"| SWOT
STYLE -->|"standards"| THREAT
ISMS1 -.->|"adapted from"| CLASS
ISMS2 -.->|"adapted from"| RISK
ISMS3 -.->|"adapted from"| STYLE
ISMS4 -.->|"adapted from"| THREAT
style GUIDE fill:#0d6efd,color:#fff,stroke:#0a58ca,stroke-width:2px
style STYLE fill:#6610f2,color:#fff,stroke:#520dc2,stroke-width:2px
style CLASS fill:#198754,color:#fff,stroke:#146c43,stroke-width:2px
style RISK fill:#dc3545,color:#fff,stroke:#b02a37,stroke-width:2px
style SWOT fill:#fd7e14,color:#fff,stroke:#ca6510,stroke-width:2px
style THREAT fill:#d63384,color:#fff,stroke:#ab296a,stroke-width:2px
style ISMS1 fill:#e9ecef,color:#212529,stroke:#adb5bd
style ISMS2 fill:#e9ecef,color:#212529,stroke:#adb5bd
style ISMS3 fill:#e9ecef,color:#212529,stroke:#adb5bd
style ISMS4 fill:#e9ecef,color:#212529,stroke:#adb5bd
This diagram shows how the core methodology/framework documents relate to each other and feed into the final analysis output. The visualisation focuses on the six core analytical frameworks because they are the load-bearing nodes; the horizon-conditional and cross-cutting methodologies (OSINT tradecraft, confidence calibration, source triangulation, synthesis, strategic extensions, per-document, structural metadata, electoral domain + cycle, analytical supplementary, IMF + WB indicator mappings, forward-projection, voter segmentation) are layers that every framework applies and are catalogued in the Methodology Summary Table below:
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
graph LR
CG[π·οΈ Classification Guide<br/>7 Dimensions] --> RG[β οΈ Risk Methodology<br/>5Γ5 Likelihood Γ Impact]
CG --> TF[π― Threat Framework<br/>6 Political Threat Dimensions]
RG --> SW[πΌ SWOT Framework<br/>Evidence-Based Quadrants]
TF --> SW
SW --> SG[π Style Guide<br/>3 Depth Levels]
SG --> AI[π€ AI Analysis Guide<br/>Quality Gates]
AI -->|Orchestrates all| CG
CG -.->|Sensitivity feeds| TF
RG -.->|Scores inform| TF
TF -.->|Threats map to| SW
style CG fill:#00695C,stroke:#004D40,color:#FFFFFF
style RG fill:#E65100,stroke:#BF360C,color:#FFFFFF
style TF fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style SW fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style SG fill:#4A148C,stroke:#311B92,color:#FFFFFF
style AI fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
| Priority | Document | Key Content | Dimensions / Frameworks | When to Apply |
|---|
| 1 | Political Classification Guide | 7-dimension event classification, sensitivity levels, policy domain taxonomy, urgency matrix | Sensitivity (4 levels), Democratic Integrity, Policy Urgency, Economic Impact, Governance Impact, Political Capital, Legislative Impact | First β every incoming EP event/document must be classified before any analysis begins |
| 2 | Political Risk Methodology | Likelihood Γ Impact scoring, 6 EP risk categories, 5Γ5 matrix, Grand Coalition stability risk | Coalition Stability, Policy Implementation, Institutional Integrity, Economic Governance, Social Cohesion, Geopolitical Standing | Second β after classification, assess political risk using calibrated scoring |
| 3 | Political Threat Framework | 5-framework integrated threat analysis: Political Threat Landscape (6D) + Attack Trees + Kill Chain + Diamond Model + ICO Profiling | Coalition Shifts, Transparency Deficit, Policy Reversal, Institutional Pressure, Legislative Obstruction, Democratic Erosion | Third β apply threat analysis using purpose-built political frameworks (STRIDE explicitly rejected) |
| 4 | Political SWOT Framework | Evidence-based SWOT, confidence levels, 180-day decay, group-to-landscape aggregation | Strengths, Weaknesses, Opportunities, Threats β each with confidence (HIGH/MEDIUM/LOW) | Fourth β synthesize classification + risk + threat into strategic SWOT assessment |
| 5 | Political Style Guide | Writing standards, 3 depth levels, evidence density requirements, anti-patterns | Level 1 Surface (200β500 words), Level 2 Strategic (800β2,000 words), Level 3 Intelligence (2,000β5,000 words) | Fifth β apply writing standards when drafting the analysis document |
| 6 | AI-Driven Analysis Guide | 10-step analysis protocol, mandatory 2-pass improvement, reference-quality depth floors | Evidence (25%), Depth (25%), Structural (20%), Actionable (15%), Neutrality (15%) | Always β orchestrates the entire pipeline; AI agents read this first |
| 7 | OSINT / INTOP Tradecraft Standards | ICD 203 analytic standards, Admiralty source Γ info grading, Kent / WEP estimative bands, canonical SAT catalog, OSINT sourcing ethics | 9 ICD standards Β· 6Γ6 Admiralty grid Β· 7 WEP bands Β· 10 SATs Β· 5 ethical limits | Cross-cutting β applied by every framework to every artifact; attested in methodology-reflection.md |
| 8 | Artifact Catalog | Master map of every analysis markdown file produced under analysis/daily/*/ β grouped by folder with methodology + template + depth floor + Mermaid type per artifact | 7 folder groups (intelligence 18 Β· classification 4 Β· risk-scoring 4 Β· threat-assessment 5 Β· documents 1 Β· existing legacy 2+mirrors Β· extended 12 optional) | Step 2 β after reading the AI guide, agents consult this catalog to know what to produce |
| 9 | Per-Artifact Methodologies | One section per artifact type with purpose, EP MCP inputs, required sections, mandatory Mermaid, depth floor, quality signals | ~41 artifacts across 7 folder groups (29 mandatory + 12 optional extended) | Step 2 β construction lookup; read the relevant section when writing each artifact |
| 10 | Synthesis Methodology | Stage B.7 synthesis layer β significance-scoring β synthesis-summary β stakeholder-perspectives β coalition-dynamics β executive-brief | F3EAD AnalyzeβDisseminate; EP PIRs; WEP bands; ICD 203 Standards 5/6/8 | Stage B.7 β applied after classification + risk + threat + SWOT to produce decision-ready intelligence |
| 11 | Strategic Extensions Methodology | Construction rules for strategic-depth artifacts: scenario-forecast, wildcards-blackswans, historical-baseline, stakeholder-map, pestle-analysis, economic-context, threat-model | 7 strategic artifacts; WEP bands; Admiralty β₯B2; cross-artifact anchoring | Stage B.6 β deep analytical extensions beyond the core synthesis layer |
| 12 | Per-Document Methodology | Construction rules for per-file-political-intelligence β atomic evidence extraction per EP document (COM, A-, B-, RC, reports, opinions, motions) | 8 evidence layers; Admiralty per-claim; provenance URL required | Stage A.3 β produced for every downloaded EP document before synthesis |
| 13 | Structural Metadata Methodology | Construction rules for provenance layer β analysis-index.md, document-analysis-index.md, manifest.json, and the extended/cross-reference-map.md + extended/data-download-manifest.md artifacts | Manifest schema; MCP call inventory; citation graph | Stage A.1 / E.1 β produced at run start (index scaffolding) and run end (full manifest) |
| 14 | Electoral Domain Methodology | EP election analysis β 2024 retrospective + 2029 forecast; national-delegation seat projections; Spitzenkandidaten; cross-MS party family analysis | 27 MS; 720 seats; D'Hondt variants; Europhile/Euroskeptic segmentation | Electoral runs β produced for election-focused workflows and for extended/voter-segmentation.md |
| 15 | Forward-Projection Methodology | Multi-horizon forecasting protocol β 7d / 30d / 90d / 12m / term-end / EP-election. WEP decay tables, structural-break tripwires, reference-class forecasting, pipeline transit-time priors. | 6-horizon lattice; WEP decay bands; β₯6 alt scenarios for long-horizon; pipeline transit Monte-Carlo P10/P50/P90 | Long-horizon prospective runs β every prospective horizon β₯ 7 days produces a forward-projection.md artifact governed by this methodology |
| 16 | Electoral-Cycle Methodology | Dual-track lens for the election-cycle horizon β Track A (term retrospective: vote-share delta, mandate-fulfilment scorecard, defection-flow) + Track B (term forecast: seat projections at 6/12/24/36-month horizons, coalition viability, Spitzenkandidaten arithmetic, treaty-revision feasibility) | EP9/EP10/EP11 anchors; 27 MS; 720 seats; mandate-fulfilment matrix; coalition arithmetic | Election-cycle and term-outlook workflows β promoted from extended layer to primary lens of the article |
| 17 | Analytical Supplementary Methodology | Rules for optional deep-dive analytical templates β PESTLE deep-dive, Wildcards & Black Swans, Quantitative SWOT, Media Framing & Influence-Operations deep-dive (v2.0). Composition rules, DIW weight vector, TTP mapping, forward-indicator feed. | 4 supplementary templates; DISARM T-codes; ABCDE CIB; Entman framing; RRPA composite | Supplementary β triggered by specific analytical conditions (β₯2 PESTLE dimensions, high salience, long-horizon forecasting, decision memo) |
| 18 | Political Style Guide (machine-readable) | Machine-readable style enforcement rules β WEP bands, Admiralty grades, named-actor discipline, no-neutral-media doctrine, EU-specific constants (720 seats, 361 majority, 27 MS). | JSON schema; 7 WEP bands; 6Γ6 Admiralty; prohibited terms; citation formats | Advisory β consumed by AI agents during analysis generation for style compliance guidance (not currently enforced by validation scripts) |
| Attribute | Value |
|---|
| Purpose | Master protocol governing all AI-driven political intelligence analysis |
| Scope | All agentic workflows, all analysis types, all output artifacts |
| Key Rules | Folder isolation Β· AI-only content Β· Multi-framework depth Β· Quality gates Β· Cross-session intelligence |
| Version | 4.1 |
Core Principles:
- Folder Isolation: Every workflow writes ONLY to its own
analysis/YYYY-MM-DD/{articleType}/ subfolder
- AI-Only Content: Scripts must NEVER generate analysis prose, SWOT entries, risk scores, or template content
- Quality Gates: Automated checks validate every analysis artifact before commit (minimum 7.0/10)
| Attribute | Value |
|---|
| Purpose | Multi-dimensional taxonomy for political document and event classification |
| Dimensions | 7: Public Interest Β· Democratic Integrity Β· Policy Urgency Β· Economic Impact Β· Governance Β· Political Capital Β· Legislative Impact |
| Confidence Levels | HIGH (β₯80%) Β· MEDIUM (60β79%) Β· LOW (<60%) |
| Version | 2.1 |
| Attribute | Value |
|---|
| Purpose | Systematic risk identification, scoring, and cascading impact analysis |
| Risk Categories | 6: Coalition Stability Β· Policy Implementation Β· Institutional Integrity Β· Economic Governance Β· Social Cohesion Β· Geopolitical Standing |
| Scoring Model | Likelihood (1β5) Γ Impact (1β5) = Risk Score (1β25) |
| Advanced Features | Cascading risk chains Β· Grand Coalition stability risk Β· Risk velocity tracking Β· Data availability risk |
| Version | 2.1 |
| Attribute | Value |
|---|
| Purpose | Multi-stakeholder strategic analysis for political events and policy decisions |
| Stakeholder Lenses | Grand Coalition Β· Opposition Bloc Β· Citizens/Civil Society Β· Economic Actors Β· International Observers |
| Advanced Features | TOWS Matrix Β· Cross-SWOT Interference Β· 180-day Decay Β· Scenario Generation Β· Temporal Dynamics |
| Version | 2.0 |
| Attribute | Value |
|---|
| Purpose | Multi-framework threat modeling for democratic process threats |
| Frameworks | 5 Integrated: Political Threat Landscape (6D) + Attack Trees + Political Kill Chain + Diamond Model + ICO Profiling |
| Threat Taxonomy | 6 Dimensions: Coalition Shifts Β· Transparency Deficit Β· Policy Reversal Β· Institutional Pressure Β· Legislative Obstruction Β· Democratic Erosion |
| Version | 4.0 (2026-04-23) β STRIDE removed, riksdagsmonitor multi-framework approach integrated |
β οΈ STRIDE is NOT used. This methodology uses 5 purpose-built political intelligence frameworks. STRIDE (Spoofing/Tampering/Repudiation/Information Disclosure/Denial of Service/Elevation of Privilege) was designed for software security threat modeling and does not meaningfully transfer to political analysis. See political-threat-framework.md Β§Why NOT STRIDE for full rationale.
| Attribute | Value |
|---|
| Purpose | Establishes writing standards for all political intelligence output |
| Scope | Article tone, evidence citation standards, Mermaid diagram requirements, confidence labelling |
| Key Standards | Evidence tables (not prose) Β· EP procedure citations Β· Colour-coded diagrams Β· Multi-language terminology Β· Recess-period guidance |
| Version | 2.1 |
| Attribute | Value |
|---|
| Purpose | Cross-cutting professional analytic discipline applied by every framework to every artifact |
| Pillars | 5: ICD 203 (9 analytic standards) Β· Admiralty Code (source Γ info grading) Β· Words of Estimative Probability (7 bands) Β· SAT catalog (10 techniques) Β· OSINT sourcing ethics |
| Key Standards | Grade every source (A1βF6 β π’/π‘/π΄) Β· Calibrated estimative vocabulary Β· Banned ambiguous terms Β· β₯10 SATs attested per run Β· No personal-life data on MEPs |
| Version | 1.0 |
β
Cross-cutting layer. Unlike the six domain frameworks above (which each own a specific analytic task), this framework defines the professional standards every framework applies β source grading, estimative language, structured analytic techniques, and OSINT ethics. It is attested in each run's methodology-reflection.md.
| Attribute | Value |
|---|
| Purpose | Master map between the templates in analysis/templates/ (currently 61 β ls is truth) and the methodologies above; names the canonical run-relative path for every artifact |
| Used by | 02-analysis-protocol.md (Stage B) and 03-analysis-completeness-gate.md (Stage C) |
| Enforcement | Stage-C completeness gate β npm run validate-analysis -- <runDir> (scripts/validate-analysis-completeness.js) reads this catalog plus reference-quality-thresholds.json and fails the agentic run with exit code 1 if any artifact is missing, below the line floor, lacks a mandatory Mermaid block, or shows placeholder leakage. The duplicate src/utils/validate-analysis-completeness.ts runtime layer was purged in the April-2026 aggregator-pipeline migration; the surviving CLI is the Stage-C source of truth. |
| Attribute | Value |
|---|
| Purpose | Normative per-artifact rules β one ### section per artifact, 34 in total, describing required sections, minimum depth, source-grading demand, and estimative-language expectations |
| Paired with | artifact-catalog.md (what β where) + reference-quality-thresholds.json (how much) |
| Step 10.5 | ai-driven-analysis-guide.md Β§ Step 10.5 requires each run's methodology-reflection.md to reflect on the per-artifact methodologies actually applied |
| Attribute | Value |
|---|
| Purpose | Machine-readable per-artifact line-floor and depth-floor thresholds |
| Consumed by | Stage-C completeness gate β npm run validate-analysis -- <runDir> (scripts/validate-analysis-completeness.js) reads this JSON in machine mode to confirm every artifact meets its line/depth floor before the agentic-workflow reviewer creates the PR. Hermetic tests pass --thresholds to inject fixture floors. The duplicate src/utils/validate-analysis-completeness.ts runtime layer was purged in the April-2026 aggregator-pipeline migration. |
| Update cadence | Bumped whenever per-artifact-methodologies.md tightens or loosens a floor; the two files must stay in lock-step |
| Attribute | Value |
|---|
| Purpose | Canonical mapping of IMF WEO / FM / IFS / BOP / ER / PCPS / GFSR / EREO / FSI / GFS / DOT indicator codes to EP analysis use cases |
| Paired MCP | IMF REST SDMX 3.0 client in src/mcp/imf-mcp-client.ts (virtual tools imf-list-databases, imf-search-databases, imf-get-parameter-defs, imf-get-parameter-codes, imf-fetch-data) |
| Attribute | Value |
|---|
| Purpose | Canonical mapping of World Bank WDI indicator codes β non-economic domains only, education, social, environment, demographics, defence, agriculture, innovation, governance. The legacy WB economic codes are retained for backward compatibility but MUST NOT be used in new articles; economic context β IMF |
| Paired MCP | World Bank MCP (world-bank-* tools) |
β
Together, artifact-catalog.md (what), per-artifact-methodologies.md (how), and reference-quality-thresholds.json (how much) form the Stage B / Stage C contract enforced by the Stage-C validator (npm run validate-analysis) plus an editorial completeness review. The two indicator-mapping files provide the Stage A economic-context inputs that editorial policy requires β IMF for economic/fiscal/monetary/trade claims, WB for non-economic domains. Analysis-completeness enforcement lives in the CLI plus Stage-C editorial review.
| Attribute | Value |
|---|
| Purpose | Multi-horizon forecasting protocol applied by every prospective horizon β₯ 7 days. Replaces ad-hoc "what's coming up" prose with a horizon-conditional, evidence-anchored protocol: WEP decay tables, structural-break tripwires, reference-class forecasting, pipeline transit-time priors |
| Horizons | 6-tier lattice: T+7d (week-ahead) Β· T+30d (month-ahead) Β· T+90d (quarter-ahead) Β· T+12m (year-ahead) Β· term-end (term-outlook) Β· EP-election (election-cycle) |
| Output artifacts | forward-projection.md (master), legislative-pipeline-forecast.md (Monte-Carlo P10/P50/P90 transit times), parliamentary-calendar-projection.md (3- or 12-month calendar walk-forward), presidency-trio-context.md (Council-Trio overlay), commission-wp-alignment.md (CWP line-item map) |
| Tradecraft anchors | F3EAD ANALYZE; Admiralty A1/A2/B2 floors; WEP requirement per probability claim; ICD 203 standards 3/4/5/7; SATs: Reference-Class Forecasting, Outside-In, Indicators & Warnings, Pre-Mortem, Morphological Analysis, Devil's Advocate |
| Used by | news-week-ahead.md, news-month-ahead.md, news-quarter-ahead.md, news-year-ahead.md, news-term-outlook.md, news-election-cycle.md |
| Attribute | Value |
|---|
| Purpose | Dual-track lens for the election-cycle horizon β extends electoral-domain-methodology.md with a protocol that promotes the electoral lens to the primary lens of the article |
| Tracks | Track A β Term Retrospective (vote-share delta vs prior baseline, mandate-fulfilment scorecard, defection-flow map) Β· Track B β Term Forecast (seat projections per group at 6/12/24/36-month horizons, coalition viability matrix, Spitzenkandidaten arithmetic, treaty-revision feasibility) |
| EP-Term anchors | Canonical constants for EP9 (2 Jul 2019 β 1 Jul 2024), EP10 (16 Jul 2024 β ~end of Jun 2029), EP11 (~Jul 2029 β ~Jun 2034) |
| Output artifacts | term-arc.md, seat-projection.md, mandate-fulfilment-scorecard.md (also referenced by forward-projection-methodology.md for the electoral-cycle track) |
| Tradecraft anchors | F3EAD ANALYZE; Admiralty A1/A2/B2/C2 floors per data class; WEP per seat-projection band at 6/12/24/36 mo; ICD 203 standards 3/4/7; SATs: Reference-Class Forecasting, Devil's Advocate, Outside-In, Indicators & Warnings, Pre-Mortem, Coalition Mathematics |
| Used by | news-election-cycle.md, news-term-outlook.md (single-PR layout, no split-PR) |
The classification guide establishes the authoritative methodology for categorizing every European Parliament event and document entering the analysis pipeline. It serves as the mandatory first step before any other analytical framework is applied.
| Concept | Description | Scale |
|---|
| Sensitivity Levels | Determines publication handling requirements | π’ PUBLIC β π‘ SENSITIVE β π΄ RESTRICTED |
| Policy Domain Taxonomy | Categorizes events by EU policy area | Environment, Economy, Foreign Affairs, Justice, etc. |
| Urgency Matrix | Assesses time-sensitivity for editorial response | Immediate β Short-term β Medium-term β Long-term |
| 7 Classification Dimensions | Multi-axis scoring across political impact areas | 4-level ordinal scale per dimension |
| Score Thresholds | Aggregate classification severity tiers | β₯70 CRITICAL Β· β₯50 HIGH Β· β₯30 MEDIUM Β· <30 LOW |
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
graph TD
Event([π₯ Incoming EP Event]) --> S1[Public Interest<br/>Sensitivity]
Event --> S2[Democratic Integrity<br/>Impact]
Event --> S3[Policy Urgency]
Event --> S4[Economic Impact]
Event --> S5[Governance Impact]
Event --> S6[Political Capital<br/>Impact]
Event --> S7[Legislative Impact]
S1 --> Score[π Aggregate<br/>Classification Score]
S2 --> Score
S3 --> Score
S4 --> Score
S5 --> Score
S6 --> Score
S7 --> Score
Score --> T1{Score β₯ 70?}
T1 -->|Yes| CRIT[π΄ CRITICAL]
T1 -->|No| T2{Score β₯ 50?}
T2 -->|Yes| HIGH[π HIGH]
T2 -->|No| T3{Score β₯ 30?}
T3 -->|Yes| MED[π‘ MEDIUM]
T3 -->|No| LOW[π’ LOW]
style Event fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Score fill:#4527A0,stroke:#311B92,color:#FFFFFF
style CRIT fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style HIGH fill:#E65100,stroke:#BF360C,color:#FFFFFF
style MED fill:#F57F17,stroke:#E65100,color:#000000
style LOW fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style S1 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S2 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S3 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S4 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S5 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S6 fill:#00695C,stroke:#004D40,color:#FFFFFF
style S7 fill:#00695C,stroke:#004D40,color:#FFFFFF
- Feeds into Risk Methodology: Classification severity determines initial risk likelihood calibration
- Feeds into Threat Framework: Sensitivity level determines which threat dimensions to prioritize
- Feeds into SWOT: High-classification events trigger SWOT re-assessment
Provides a systematic Likelihood Γ Impact scoring framework for European Parliament political risks, adapted from the Hack23 ISMS Risk Assessment Methodology. Produces quantified risk scores across six EP-specific risk categories.
| Concept | Description | Scale |
|---|
| Likelihood Scale | Probability of risk materializing | Rare (1) β Unlikely (2) β Possible (3) β Likely (4) β Almost Certain (5) |
| Impact Scale | Severity of consequences if realized | Negligible (1) β Minor (2) β Moderate (3) β Major (4) β Severe (5) |
| Risk Score | Quantified assessment: Likelihood Γ Impact | 1β25 (Low: 1β4, Medium: 5β9, High: 10β14, Critical: 15β25) |
| Six Risk Categories | EP-specific political risk domains | Coalition, Policy, Institutional, Economic, Social, Geopolitical |
| Grand Coalition Risk | Dedicated assessment of EP governing coalition stability | Composite metric from multiple indicators |
%%{init: {
"theme": "dark",
"themeVariables": {
"quadrant1Fill": "#D32F2F",
"quadrant2Fill": "#FF9800",
"quadrant3Fill": "#2E7D32",
"quadrant4Fill": "#FFC107",
"quadrantTitleFill": "#ffffff",
"quadrantPointFill": "#ffffff",
"quadrantPointTextFill": "#ffffff",
"quadrantXAxisTextFill": "#ffffff",
"quadrantYAxisTextFill": "#ffffff"
},
"quadrantChart": {
"chartWidth": 700,
"chartHeight": 700,
"pointLabelFontSize": 14,
"titleFontSize": 22,
"quadrantLabelFontSize": 18,
"xAxisLabelFontSize": 16,
"yAxisLabelFontSize": 16
}
}}%%
quadrantChart
title βοΈ Likelihood Γ Impact Risk Matrix
x-axis "Low Impact" --> "High Impact"
y-axis "Low Likelihood" --> "High Likelihood"
quadrant-1 "π΄ Critical Risk (15β25)"
quadrant-2 "π High Risk (10β14)"
quadrant-3 "π’ Low Risk (1β4)"
quadrant-4 "π‘ Medium Risk (5β9)"
- Receives from Classification: Classification severity calibrates initial likelihood estimates
- Feeds into Threat Framework: High-risk scores trigger deeper multi-framework threat analysis
- Feeds into SWOT: Risk scores populate the Threats and Weaknesses quadrants
Provides comprehensive, multi-framework political threat analysis using purpose-built political intelligence frameworks. This framework explicitly rejects software-centric threat models (STRIDE, DREAD, PASTA) in favor of six frameworks designed for democratic process analysis.
| Concept | Description | Frameworks |
|---|
| Political Threat Landscape | Core 6-dimension political threat model | Coalition Shifts, Transparency Deficit, Policy Reversal, Institutional Pressure, Legislative Obstruction, Democratic Erosion |
| Diamond Model | Adversary analysis identifying actors, capabilities, and motivations | Adversary β Infrastructure β Capability β Victim |
| Attack Trees | Goal-oriented threat decomposition for political objectives | Root goal β Sub-goals β Leaf actions |
| PESTLE | Macro-environmental threat scanning | Political, Economic, Social, Technological, Legal, Environmental |
| Scenario Planning | Forward-looking threat assessment with probability-weighted scenarios | Best Case β Base Case β Worst Case |
| Political Kill Chain | Sequential threat progression in political processes | Reconnaissance β Mobilization β Positioning β Execution β Exploitation |
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
graph TB
PTL([π― Political Threat<br/>Landscape Analysis]) --> CS[π Coalition Shifts<br/>Voting bloc realignment]
PTL --> TD[π Transparency Deficit<br/>Information asymmetry]
PTL --> PR[β©οΈ Policy Reversal<br/>Legislative rollback]
PTL --> IP[ποΈ Institutional Pressure<br/>Power concentration]
PTL --> LO[β³ Legislative Obstruction<br/>Procedural sabotage]
PTL --> DE[π Democratic Erosion<br/>Norm degradation]
CS --> SEV{Severity 1β5}
TD --> SEV
PR --> SEV
IP --> SEV
LO --> SEV
DE --> SEV
SEV --> DM[π Diamond Model]
SEV --> AT[π³ Attack Trees]
SEV --> PE[π PESTLE]
SEV --> SP[π² Scenario Planning]
SEV --> KC[π Kill Chain]
style PTL fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style CS fill:#E65100,stroke:#BF360C,color:#FFFFFF
style TD fill:#E65100,stroke:#BF360C,color:#FFFFFF
style PR fill:#E65100,stroke:#BF360C,color:#FFFFFF
style IP fill:#E65100,stroke:#BF360C,color:#FFFFFF
style LO fill:#E65100,stroke:#BF360C,color:#FFFFFF
style DE fill:#E65100,stroke:#BF360C,color:#FFFFFF
style SEV fill:#F57F17,stroke:#E65100,color:#000000
style DM fill:#4527A0,stroke:#311B92,color:#FFFFFF
style AT fill:#4527A0,stroke:#311B92,color:#FFFFFF
style PE fill:#4527A0,stroke:#311B92,color:#FFFFFF
style SP fill:#4527A0,stroke:#311B92,color:#FFFFFF
style KC fill:#4527A0,stroke:#311B92,color:#FFFFFF
- Receives from Classification: Sensitivity levels determine which threat dimensions require analysis
- Receives from Risk: High-risk scores trigger multi-framework deep analysis
- Feeds into SWOT: Identified threats populate the Threats quadrant with evidence chains
Establishes an evidence-based SWOT methodology where every entry in every quadrant must cite verifiable European Parliament data. This framework rejects opinion-based SWOT analysis and enforces confidence levels with a 180-day expiration rule.
| Concept | Description | Details |
|---|
| Evidence Requirement | Every SWOT entry must cite EP data sources | MCP tool calls, document references, voting records |
| Confidence Levels | Reliability grading for each entry | HIGH (multiple current sources) Β· MEDIUM (single primary) Β· LOW (credible but unverified) |
| 180-Day Decay | Entries expire if not re-verified | Prevents stale assessments from persisting |
| Group-to-Landscape Aggregation | Individual political group SWOTs aggregate into landscape-level SWOT | Weighted by seat share and coalition significance |
| Minimum Density | Each quadrant must contain at least 2 entries | Prevents superficial analysis |
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
graph LR
subgraph Internal
S[β
Strengths<br/>Legislative achievements<br/>Institutional cohesion]
W[β οΈ Weaknesses<br/>Group fragmentation<br/>Legislative stalls]
end
subgraph External
O[π Opportunities<br/>Landmark legislation<br/>Cross-party consensus]
T[π΄ Threats<br/>Far-right growth<br/>Legitimacy crisis]
end
S --> Synth[π Strategic Synthesis<br/>with Confidence Levels]
W --> Synth
O --> Synth
T --> Synth
style S fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style W fill:#E65100,stroke:#BF360C,color:#FFFFFF
style O fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style T fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style Synth fill:#4527A0,stroke:#311B92,color:#FFFFFF
- Receives from Classification, Risk, and Threat: All three upstream frameworks feed evidence into SWOT quadrants
- Feeds into Style Guide: SWOT depth determines the appropriate writing depth level
- Feeds into AI Guide: SWOT completeness is a quality gate criterion (β₯2 entries per quadrant)
Establishes mandatory writing standards for all political intelligence analysis produced by EU Parliament Monitor's agentic workflows. Defines three depth levels calibrated to the classification severity and audience needs.
| Concept | Description | Specification |
|---|
| Level 1 β Surface | News summary for breaking events | 200β500 words, min. 2 citations, daily scores |
| Level 2 β Strategic | Analysis article for weekly/committee briefs | 800β2,000 words, min. 5 citations, policy recommendations |
| Level 3 β Intelligence | Deep analysis for monthly reports and MEP scorecards | 2,000β5,000 words, min. 10 citations, scenario projections |
| Evidence Density | Minimum citations per artifact type | Varies by depth level: EP document refs + MCP data points |
| Anti-Patterns | Prohibited writing behaviors | No tables-only, no uncited claims, no opinions without evidence |
| Multi-Language | Standards for 14-language output | Consistent analytical structure across all supported languages |
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
flowchart TD
Input([π₯ Classified Event]) --> Sev{Classification<br/>Severity?}
Sev -->|CRITICAL or HIGH| L3[π Level 3 β Intelligence<br/>2,000β5,000 words<br/>β₯10 citations]
Sev -->|MEDIUM| L2[π° Level 2 β Strategic<br/>800β2,000 words<br/>β₯5 citations]
Sev -->|LOW| L1[π Level 1 β Surface<br/>200β500 words<br/>β₯2 citations]
L3 --> Review[βοΈ Apply Style Standards]
L2 --> Review
L1 --> Review
style Input fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Sev fill:#F57F17,stroke:#E65100,color:#000000
style L3 fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style L2 fill:#E65100,stroke:#BF360C,color:#FFFFFF
style L1 fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style Review fill:#4527A0,stroke:#311B92,color:#FFFFFF
- Receives from Classification: Severity determines depth level (Level 1, 2, or 3)
- Receives from SWOT: Strategic synthesis informs the narrative structure
- Feeds into AI Guide: Style compliance is a quality gate criterion
Defines the comprehensive per-file AI analysis protocol. This is the orchestrator document that AI agents must read before processing any European Parliament data file. It specifies the analysis pipeline, document-type focus templates, quality gates, and conflict resolution for parallel workflows.
| Concept | Description | Specification |
|---|
| Per-File Protocol | Each EP MCP data file receives its own analysis | Dedicated markdown output per source file |
| Document-Type Templates | Tailored analysis focus per EP document type | Adopted texts, procedures, votes, speeches, questions, events, etc. |
| Quality Score Formula | Weighted multi-criteria self-assessment | Evidence (25%) + Depth (25%) + Structural (20%) + Actionable (15%) + Neutrality (15%) |
| Minimum Score | Hard quality gate for publication | 7.0/10 weighted score β below threshold requires revision |
| Conflict Resolution | Rules for parallel workflow outputs | Deduplication, merge strategy, timestamp-based precedence |
| Methodology Reading Order | Agents must internalize all 7 methodology/framework docs | This guide β Classification β Risk β Threat β SWOT β Style β OSINT/INTOP Tradecraft |
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
flowchart TD
Data([π₯ EP MCP Data File]) --> Read[π Read All 6 Methodologies]
Read --> Analyze[π¬ Execute Analysis Pipeline<br/>Classify β Risk β Threat β SWOT β Write]
Analyze --> Self[π Self-Assessment Scoring]
Self --> E[Evidence<br/>Weight: 25%]
Self --> D[Depth<br/>Weight: 25%]
Self --> St[Structural<br/>Weight: 20%]
Self --> A[Actionable<br/>Weight: 15%]
Self --> N[Neutrality<br/>Weight: 15%]
E --> Calc[π Calculate<br/>Weighted Score]
D --> Calc
St --> Calc
A --> Calc
N --> Calc
Calc --> Gate{Score β₯ 7.0?}
Gate -->|β
Pass| Publish([π€ Publish])
Gate -->|β Fail| Revise[π Revise Analysis]
Revise --> Analyze
style Data fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Read fill:#4527A0,stroke:#311B92,color:#FFFFFF
style Analyze fill:#00695C,stroke:#004D40,color:#FFFFFF
style Self fill:#F57F17,stroke:#E65100,color:#000000
style E fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style D fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style St fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style A fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style N fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style Calc fill:#4527A0,stroke:#311B92,color:#FFFFFF
style Gate fill:#E65100,stroke:#BF360C,color:#FFFFFF
style Publish fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style Revise fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
- Orchestrates all frameworks: AI Guide is the entry point that invokes Classification β Risk β Threat β SWOT β Style in sequence
- Enforces quality gates: Validates outputs from every upstream methodology meet minimum standards
- Handles conflicts: Resolves parallel workflow collisions via timestamp-based precedence rules
- Mandates AI-driven metadata: All article titles, descriptions, and SEO keywords MUST be produced by the AI agent analysing the content β NEVER by script code or template strings. The AI agent passes
--title and --description CLI flags to the generator.
Use this flowchart to determine which methodology to apply for a given analytical task:
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
flowchart TD
Start([π― New Analysis Task]) --> Q1{What is the<br/>primary need?}
Q1 -->|Categorize an EP event| CG[π·οΈ Classification Guide<br/>Apply 7 dimensions]
Q1 -->|Quantify political risk| RM[β οΈ Risk Methodology<br/>Likelihood Γ Impact]
Q1 -->|Identify political threats| TF[π― Threat Framework<br/>6 Political Threat Dimensions]
Q1 -->|Strategic assessment| SW[πΌ SWOT Framework<br/>Evidence-based quadrants]
Q1 -->|Write analysis article| SG[π Style Guide<br/>Select depth level]
Q1 -->|Full pipeline analysis| AI[π€ AI Analysis Guide<br/>Orchestrate all frameworks]
CG --> Q2{Severity β₯ HIGH?}
Q2 -->|Yes| RM
Q2 -->|No| SG
RM --> Q3{Risk Score β₯ 10?}
Q3 -->|Yes| TF
Q3 -->|No| SW
TF --> SW
SW --> SG
SG --> AI
AI --> Gate{Quality Gate<br/>β₯ 7.0/10?}
Gate -->|β
Pass| Done([β
Analysis Complete])
Gate -->|β Fail| Revise[π Revise from<br/>Weakest Dimension]
Revise --> Q1
style Start fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Q1 fill:#F57F17,stroke:#E65100,color:#000000
style CG fill:#00695C,stroke:#004D40,color:#FFFFFF
style RM fill:#E65100,stroke:#BF360C,color:#FFFFFF
style TF fill:#B71C1C,stroke:#880E4F,color:#FFFFFF
style SW fill:#1B5E20,stroke:#1B5E20,color:#FFFFFF
style SG fill:#4A148C,stroke:#311B92,color:#FFFFFF
style AI fill:#1565C0,stroke:#0D47A1,color:#FFFFFF
style Q2 fill:#F57F17,stroke:#E65100,color:#000000
style Q3 fill:#F57F17,stroke:#E65100,color:#000000
style Gate fill:#F57F17,stroke:#E65100,color:#000000
style Done fill:#2E7D32,stroke:#1B5E20,color:#FFFFFF
style Revise fill:#D84315,stroke:#BF360C,color:#FFFFFF
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
sequenceDiagram
participant WF as π Agentic Workflow
participant DL as π₯ Data Download
participant CLASS as π·οΈ Classification
participant RISK as β οΈ Risk Assessment
participant SWOT as πΌ SWOT Analysis
participant THREAT as π Threat Analysis
participant SIG as π Significance
participant SYNTH as π§© Synthesis
participant QG as β
Quality Gate
participant ART as π° Article Generation
WF->>DL: Fetch EP MCP feed data
DL->>CLASS: Raw documents + metadata
Note over CLASS,THREAT: AI performs ALL analysis<br/>(never scripted)
CLASS->>RISK: Classification results
CLASS->>SWOT: Document classification
CLASS->>THREAT: Document classification
par Parallel Analysis
RISK->>SIG: Risk scores + cascading analysis
SWOT->>SIG: SWOT matrices + strategic implications
THREAT->>SIG: Threat profiles + kill chains
end
SIG->>SYNTH: Significance scores
SYNTH->>QG: Synthesis summary
QG-->>QG: Validate structure,<br/>evidence, Mermaid,<br/>confidence, citations
QG->>ART: Approved analysis
ART->>WF: HTML article + 14 translations
Note over QG: Quality gate checks:<br/>β Evidence tables<br/>β Mermaid diagrams<br/>β EP procedure citations<br/>β Confidence labels<br/>β No stub content
Different EP document types require different analytical emphasis. This matrix maps which methodologies are PRIMARY vs SUPPORTING for each workflow type:
| Article Type | Classification | Risk | SWOT | Threat | Significance | Stakeholder | Unique Focus |
|---|
| Breaking News | π΄ PRIMARY | π΄ PRIMARY | β
| β
| π΄ PRIMARY | β
| Real-time urgency scoring, political temperature spike detection |
| Motions | π΄ PRIMARY | β
| β
| π΄ PRIMARY | β
| β
| Per-resolution vote breakdown by group, defection pattern analysis |
| Propositions | β
| π΄ PRIMARY | π΄ PRIMARY | β
| β
| π΄ PRIMARY | Legislative pipeline stage, rapporteur influence, amendment success rates |
| Committee Reports | π΄ PRIMARY | π΄ PRIMARY | β
| β
| β
| π΄ PRIMARY | Committee productivity, document classification by committee domain |
| Week Ahead | β
| π΄ PRIMARY | π΄ PRIMARY | π΄ PRIMARY | β
| β
| Prospective risk landscape, scheduled debate preview, expected vote outcomes |
| Weekly Review | π΄ PRIMARY | β
| π΄ PRIMARY | β
| π΄ PRIMARY | β
| Cross-type trend detection, week-over-week pattern shifts |
| Month Ahead | β
| π΄ PRIMARY | β
| π΄ PRIMARY | β
| β
| Strategic political calendar, major policy decision forecast |
| Monthly Review | β
| β
| π΄ PRIMARY | β
| β
| π΄ PRIMARY | Legislative throughput, political group productivity, Grand Coalition scorecard |
Reading the matrix: β
= always required for all types. π΄ PRIMARY = the methodology that should receive the most analytical depth and word count for this article type. Each workflow must apply ALL methodologies but allocate more time and depth to PRIMARY ones.
Each article type should produce unique analytical sections in its synthesis that no other workflow can produce:
| Article Type | Template | Unique Section Name | What Makes It Unique |
|---|
| Breaking News | Significance | Breaking Urgency Rating | Real-time significance assessment with 6-hour refresh β only breaking workflow has this cadence |
| Motions | Threat | Defection Pattern Dashboard | Political group voting discipline per-resolution β only motion workflow analyses individual votes |
| Propositions | Risk | Legislative Pipeline Risk | Where the procedure sits (committee β plenary β trilogue β adoption) and risk of delay/amendment |
| Propositions | Stakeholder | Rapporteur Influence Scorecard | Rapporteur and shadow rapporteur influence mapping β unique to procedure-level analysis |
| Committee Reports | Stakeholder | Committee Productivity Matrix | Per-committee output volume, meeting frequency, document production rate |
| Committee Reports | Classification | Cross-Committee Comparison | Relative workload and output comparison across EP committees |
| Week Ahead | SWOT | Pre-Plenary Intelligence Brief | Forward-looking SWOT for upcoming plenary agenda β only week-ahead can provide this prospective view |
| Weekly Review | SWOT | Week-over-Week Trend Delta | How did this week's political temperature differ from last week? Only weekly scope enables this |
| Month Ahead | Risk | Strategic Calendar Risk Map | Forward-looking risk landscape tied to specific scheduled events (budget debates, EU summits) |
| Monthly Review | Synthesis | Grand Coalition Scorecard | Comprehensive monthly assessment of Grand Coalition legislative effectiveness and cohesion |
All analysis produced under these methodologies must meet the following minimum quality requirements before publication:
| Dimension | Weight | Criteria | Fail Indicators |
|---|
| Evidence | 25% | Every claim cites EP MCP data; confidence levels stated; no opinion-only entries | Uncited claims, missing confidence, assertions without data |
| Depth | 25% | Appropriate depth level (L1/L2/L3) applied; word count within range; citation count met | Wrong depth level, under minimum citations, superficial coverage |
| Structural | 20% | Hack23 header present; metadata complete; Mermaid diagram included; structured tables used | Missing header, no diagram, placeholder content, broken formatting |
| Actionable | 15% | Analysis includes concrete implications; stakeholder impact identified; forward-looking recommendations | Purely descriptive without implications, no stakeholder analysis |
| Neutrality | 15% | Balanced perspective; no partisan framing; multiple viewpoints acknowledged; factual tone | One-sided framing, loaded language, missing counter-perspectives |
The following practices are explicitly prohibited across all methodologies:
| Anti-Pattern | Why It Fails | Correct Approach |
|---|
| Using STRIDE, DREAD, or PASTA | These are software security threat models, not political intelligence frameworks | Use Political Threat Landscape (6 dimensions), Diamond Model, Attack Trees, PESTLE, Scenario Planning, Kill Chain |
| Boilerplate summaries | Generic text adds no analytical value; wastes reader attention | Every paragraph must contain at least one EP data citation or concrete analytical insight |
| Claims without confidence levels | Ungraded assertions cannot be evaluated for reliability | Assign HIGH / MEDIUM / LOW confidence with source justification |
| Tables-only analysis | Data without narrative interpretation is not analysis | Tables must be accompanied by explanatory prose interpreting the data |
| Opinion without evidence | Subjective assertions undermine analytical credibility | All opinions must cite verifiable EP MCP data sources |
| Hardcoded Mermaid values | Static diagrams become stale and misleading | Use data-driven values sourced from EP MCP tool results |
| Shallow classification | Single-dimension classification misses complexity | Apply all 7 classification dimensions; score each independently |
| Stale SWOT entries | Entries older than 180 days without re-verification are unreliable | Enforce 180-day decay rule; re-verify or remove expired entries |
| Missing stakeholder analysis | Analysis without impact assessment has no actionable value | Identify affected political groups, MEPs, committees, and citizens |
| Ignoring multi-language requirements | Analysis must serve 14-language platform | Structure content for translation; avoid idioms and culture-specific references |
The analysis methodologies are adapted from Hack23's ISO 27001/NIST CSF/CIS Controls ISMS framework. The reference/ directory contains mapping documents showing how cybersecurity risk concepts translate to political intelligence:
| Control | Title | Methodology Relevance |
|---|
| A.5.1 | Policies for information security | All methodologies align with Hack23 ISMS policy framework |
| A.5.10 | Acceptable use of information | Classification guide defines sensitivity-based data handling |
| A.5.33 | Protection of records | Style guide enforces evidence citation and audit trail |
| A.8.3 | Information access restriction | Sensitivity levels (PUBLIC/SENSITIVE/RESTRICTED) gate access |
| A.8.10 | Information deletion | 180-day SWOT decay rule ensures stale data is removed |
| A.8.28 | Secure coding | AI analysis guide enforces structured, reviewable output with quality gates |
| Function | Relevance to Methodologies |
|---|
| Identify (ID) | Classification guide identifies and categorizes EP events by sensitivity and impact |
| Protect (PR) | Style guide protects analytical quality through evidence requirements and anti-patterns |
| Detect (DE) | Threat framework detects political threats across 6 dimensions using multiple analytical models |
| Respond (RS) | Risk methodology provides quantified risk scores enabling proportionate response |
| Recover (RC) | SWOT framework supports strategic recovery planning through forward-looking opportunity analysis |
| Control | Title | Methodology Relevance |
|---|
| Control 1 | Inventory and Control of Enterprise Assets | Classification guide inventories and categorizes all EP data assets |
| Control 3 | Data Protection | Sensitivity levels enforce appropriate handling for each data classification |
| Control 8 | Audit Log Management | AI analysis guide requires documented quality gate assessments (audit trail) |
| Control 14 | Security Awareness and Skills Training | Methodology documents serve as training material for AI agents and analysts |
| Control 16 | Application Software Security | Quality gates enforce structured, validated analytical output |
Each agentic workflow applies the methodologies with unique emphasis tailored to its article type. The following shows which methodologies are primary vs. supporting for each workflow:
%%{init: {"theme":"dark","themeVariables":{"primaryColor":"#1565C0","primaryTextColor":"#ffffff","primaryBorderColor":"#0A3F7F","lineColor":"#90CAF9","secondaryColor":"#2E7D32","secondaryTextColor":"#ffffff","secondaryBorderColor":"#0F3F00","tertiaryColor":"#FF9800","tertiaryTextColor":"#000000","tertiaryBorderColor":"#7F4F00","mainBkg":"#1565C0","secondBkg":"#2E7D32","tertiaryBkg":"#FF9800","noteBkgColor":"#FFC107","noteTextColor":"#000000","noteBorderColor":"#7F6000","errorBkgColor":"#D32F2F","errorTextColor":"#ffffff","fontFamily":"Inter, Helvetica, Arial, sans-serif","pie1":"#1565C0","pie2":"#2E7D32","pie3":"#FF9800","pie4":"#D32F2F","pie5":"#FFC107","pie6":"#7B1FA2","pie7":"#9E9E9E","pie8":"#0288D1","pie9":"#388E3C","pie10":"#F57C00","pie11":"#C62828","pie12":"#FBC02D","pieTitleTextSize":"18px","pieSectionTextSize":"14px","pieLegendTextSize":"13px","pieStrokeColor":"#1e1e1e","pieOuterStrokeColor":"#1e1e1e","git0":"#1565C0","git1":"#2E7D32","git2":"#FF9800","git3":"#D32F2F","gitBranchLabel0":"#ffffff","gitBranchLabel1":"#ffffff","gitBranchLabel2":"#000000","gitBranchLabel3":"#ffffff","cScale0":"#1565C0","cScale1":"#2E7D32","cScale2":"#FF9800","cScale3":"#D32F2F","cScale4":"#FFC107","cScale5":"#7B1FA2","cScale6":"#9E9E9E","cScale7":"#0288D1","xyChart":{"backgroundColor":"#1e1e1e","plotColorPalette":"#1565C0,#2E7D32,#FF9800,#D32F2F,#FFC107,#7B1FA2,#9E9E9E"}}}}%%
flowchart TD
subgraph "π·οΈ Classification"
CG["Political Classification Guide"]
end
subgraph "β οΈ Risk"
RM["Risk Methodology"]
end
subgraph "π― Threat"
TF["Political Threat Framework"]
end
subgraph "πΌ SWOT"
SW["SWOT Framework"]
end
subgraph "π° Workflow Article Types"
BK["π΄ Breaking\n= CG + RM primary"]
MO["π Motions\n= CG + TF primary"]
PR["π Propositions\n= RM + SW primary"]
CR["ποΈ Committee\n= RM + CG primary"]
WA["π
Week Ahead\n= SW + RM primary"]
WR["π Weekly Review\n= CG + SW primary"]
MA["π Month Ahead\n= SW + TF primary"]
MR["π Monthly Review\n= ALL primary"]
end
CG --> BK & MO & CR & WR
RM --> BK & PR & CR & WA & MR
TF --> MO & MA & MR
SW --> PR & WA & WR & MA & MR
style CG fill:#00695C,stroke:#004D40,color:#fff
style RM fill:#E65100,stroke:#BF360C,color:#fff
style TF fill:#B71C1C,stroke:#880E4F,color:#fff
style SW fill:#1B5E20,stroke:#1B5E20,color:#fff
style BK fill:#dc3545,stroke:#b02a37,color:#fff
style MO fill:#fd7e14,stroke:#ca6510,color:#fff
style PR fill:#ffc107,stroke:#cc9a06,color:#000
style CR fill:#198754,stroke:#146c43,color:#fff
style WA fill:#0d6efd,stroke:#0a58ca,color:#fff
style WR fill:#6f42c1,stroke:#59359a,color:#fff
style MA fill:#d63384,stroke:#ab296a,color:#fff
style MR fill:#0dcaf0,stroke:#0aa2c0,color:#000
| Workflow | Primary Methodology Focus | Unique Analytical Requirements |
|---|
| Breaking News | Classification (urgency rating) + Risk (impact severity) | β‘ Real-time significance scoring; only TODAY's items qualify; 6-hour refresh cycle |
| Motions | Classification (resolution type) + Threat (coalition shifts) | π³οΈ Per-resolution vote breakdown by political group; defection pattern analysis |
| Propositions | Risk (legislative pipeline risk) + SWOT (strategic implications) | π Procedure stage tracking; committee assignment impact; rapporteur influence mapping |
| Committee Reports | Risk (committee output risk) + Classification (document type) | ποΈ Per-committee productivity analysis; cross-committee comparison; meeting agenda review |
| Week Ahead | SWOT (opportunity identification) + Risk (upcoming vote risks) | π
Forward-looking agenda analysis; scheduled vote significance; pre-plenary intelligence |
| Weekly Review | Classification (outcome categorization) + SWOT (accomplishment assessment) | π Vote outcome impact; legislative progress measurement; political group performance |
| Month Ahead | SWOT (strategic outlook) + Threat (emerging democratic threats) | π Legislative calendar analysis; cross-institutional dynamics; emerging policy trends |
| Monthly Review | ALL methodologies at equal weight | π Comprehensive trend analysis; inter-temporal pattern detection; political landscape evolution |
Key principle: Every article type must produce analysis that is unique and specific to its focus area. A breaking news analysis looks fundamentally different from a monthly review analysis β different data sources, different methodology emphasis, different analytical depth.
| Document | Change | Rationale |
|---|
examples/ (new directory) | Added four worked "good-output" excerpts under examples/ β SWOT, stakeholder map, risk matrix, scenario forecast β each cross-linked to its companion methodology section and template, with a Pass-2 checklist that mirrors the methodology's quality-signal language. | Closes the issue's "worked example" deliverable; gives an AI agent a concrete, evidence-dense reference to diff Pass-1 drafts against during Pass-2 read-back. |
test/unit/methodology-catalog.test.js (new test) | Drift-guard asserts the four-way match between artifact-catalog.md, reference-quality-thresholds.json, per-artifact-methodologies.md, and analysis/templates/. Six assertions: catalog parses β₯54 rows (tight enough to catch any dropped section), every template link resolves, every methodology link resolves, every per-artifact-methodologies.md#anchor resolves to a real ### section, every numeric breaking floor in the catalog has a row in the threshold registry, and every threshold path is known to the catalog (reverse check). | Promotes the catalog β thresholds β templates β per-artifact-methodologies invariant from a manual review item to a CI-enforced contract; future drift fails fast in unit tests rather than during a 60-minute agentic run. |
examples/README.md (new) | Index + anti-patterns + "how to add a new example" pointer. | Makes the examples directory self-documenting and discoverable from this index. |
| Document | Change | Rationale |
|---|
README.md (v3.1βv3.2) | Headline corrected from βseven frameworksβ to βfourteen interlocking methodologiesβ; the seven core frameworks are kept and the seven supporting methodologies (Synthesis Β· Strategic Extensions Β· Per-Document Β· Structural Metadata Β· Electoral Domain Β· IMF + WB Indicator Mappings) are now first-class in the index | Documentation drift β directory carries 18 docs; old headline understated the discipline |
README.md (v3.1βv3.2) | Template count updated 39 β 51 across catalog and template-pairing prose | Reconciliation with disk-truth: analysis/templates/ carries 51 numbered templates plus the README |
README.md (v3.1βv3.2), artifact-catalog.md, per-artifact-methodologies.md | βLegacy validator was purgedβ language replaced with the correct two-layer fact: the duplicate src/utils/validate-analysis-completeness.ts was purged, but the surviving scripts/validate-analysis-completeness.js remains the Stage-C completeness gate (npm run validate-analysis -- <runDir>) | Drift fix β the surviving CLI is wired into package.json and is the truth-source per test/unit/validate-analysis-completeness.test.js; READMEs incorrectly described it as removed |
templates/README.md (v3.1βv3.2) | Cover line updated 39 β 51; v3.2 changelog entry added; badge dates and Next-Review aligned with methodology release | Same reconciliation as above |
political-threat-framework.md (v4.0βv4.1) | Date refresh + cross-link tightening to the five threat-assessment templates (political-threat-landscape, actor-threat-profiles, consequence-trees, legislative-disruption, threat-analysis); explicit βSTRIDE rejectedβ statement preserved | Routine v3.2 release alignment |
synthesis-methodology.md (v1.0βv1.1), strategic-extensions-methodology.md, per-document-methodology.md, structural-metadata-methodology.md, electoral-domain-methodology.md, osint-tradecraft-standards.md, political-classification-guide.md, political-risk-methodology.md, political-swot-framework.md, political-style-guide.md, imf-indicator-mapping.md, worldbank-indicator-mapping.md | Metadata refreshed to v3.2 / 2026-04-25 / Next Review 2026-07-31; cross-references between methodologies tightened so each ### artifact section in per-artifact-methodologies.md resolves both ways | Single coherent v3.2 release β every methodology stamped with the same effective date and review window |
reference-quality-thresholds.json | Floors held stable at v3.1 levels; no artifact line-floor was lowered; missing artifact rows added so the validator stops emitting THRESHOLD_MISSING warnings on rare extended artifacts | Avoids retroactively failing older runs while closing the catalog β thresholds gap |
| Document | Change | Rationale |
|---|
ai-driven-analysis-guide.md (v4.0βv4.1) | Added Cross-Session Intelligence Methodology section: Bayesian updating protocol, cross-session correlation, data stasis detection, confidence level changes | Formalises the cross-session correlation demonstrated in 2026-04-05/breaking-2 analysis run |
ai-driven-analysis-guide.md (v4.0βv4.1) | Added Quality Dimension Mapping table: methodology β TypeScript article-quality-scorer.ts alignment | Documents the mapping between 5 methodology dimensions and 5 TypeScript scorer constants |
political-style-guide.md (v2.0βv2.1) | Added Recess and Data-Sparse Period Guidance section: depth level selection, EP API feed availability, evidence threshold adjustments, anti-patterns | Easter recess (27 Marchβ13 April) exposed need for data-sparse period analytical guidance |
political-threat-framework.md (v3.0βv3.1) | Added Temporal Decay Model for threat assessments: severity decay table, confidence decay, re-verification rules, Mermaid diagram | Mirrors SWOT framework's 180-day confidence decay; threat assessments lacked equivalent temporal relevance modelling |
political-risk-methodology.md (v2.0βv2.1) | Added EP API Data Availability as Risk Factor: data availability risk matrix, core feed degradation impact, recess-period risk scoring guidance | EP API degradation during recess was not modelled as a risk dimension |
political-classification-guide.md (v2.0βv2.1) | Added Recess-Period Event Classification Rules: urgency adjustment table, recess-active event types, anti-patterns | Classification urgency matrix did not account for recess periods |
README.md (v3.0βv3.1) | Version bump, changelog added | Tracks methodology evolution |
- Initial comprehensive methodology suite: 6 documents covering Classification, Risk, Threat, SWOT, Style, and AI-Driven Analysis
- Adapted from Hack23 ISMS framework and Riksdagsmonitor methodologies