README.md

April 28, 2026 Β· View on GitHub

Hack23 Logo

πŸ”¬ EU Parliament Monitor β€” Analysis Directory

πŸ“Š Political Intelligence Analysis Framework for European Parliament Agentic Workflows
🎯 Evidence-Based · Multi-Framework · Per-Document · Temporal Aggregation

Owner Version Effective Date Classification

πŸ“‹ Document Owner: CEO | πŸ“„ Version: 3.0 | πŸ“… Last Updated: 2026-03-31 (UTC) | πŸ”„ Review Cycle: Quarterly | ⏰ Next Review: 2026-06-30 🏒 Owner: Hack23 AB (Org.nr 5595347807) | 🏷️ Classification: Public


πŸ“š Architecture Documentation Map

DocumentFocusDescriptionDocumentation Link
ArchitectureπŸ›οΈ ArchitectureC4 model showing current system structureView Source
Security ArchitectureπŸ›‘οΈ SecuritySecurity controls and compliance mappingView Source
Threat Model🎯 SecurityPolitical Threat Landscape analysisView Source
SWOT AnalysisπŸ’Ό BusinessStrategic assessment (formatting exemplar)View Source
Workflowsβš™οΈ DevOpsCI/CD and agentic workflow documentationView Source
Analysis MethodologiesπŸ“ MethodologyPolitical intelligence analysis frameworksView Source
Analysis TemplatesπŸ“‹ TemplatesStructured analysis output templatesView Source

πŸ” ISMS Policy Alignment

ISMS PolicyAnalysis Implementation
πŸ› οΈ Secure Development PolicyQuality gates enforce evidence-based analysis; anti-pattern rejection prevents low-quality output
πŸ€– AI PolicyAI agents MUST read methodology docs before analysis; per-file protocol ensures reproducibility
πŸ“ Classification Policy7-dimension classification adapted from ISMS for EP political events (see reference/)
πŸ” Vulnerability ManagementPolitical threat analysis uses 6 purpose-built dimensions, NOT software-centric models
πŸ”“ Open Source PolicyAll methodology documents published under project license for transparency

🎯 Purpose

The analysis/ directory stores intermediate political intelligence artifacts produced and consumed by EU Parliament Monitor's 10 agentic workflows. These artifacts bridge raw European Parliament data (sourced via the European Parliament MCP Server v1.2.1) and the final published political intelligence articles across 14 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 LR
    subgraph "πŸ“‘ Data Collection"
        EP["πŸ›οΈ EP MCP Server\nv1.2.1"]
    end

    subgraph "πŸ”¬ Analysis Pipeline"
        DL["πŸ“₯ Download\nFeed Data"]
        AI["πŸ€– Per-File\nAI Analysis"]
        QG["βœ… Quality\nGate β‰₯7.0"]
    end

    subgraph "πŸ“° Article Generation"
        GEN["πŸ“ Generate\nEN Article"]
        TR["🌐 Translate\n13 Languages"]
    end

    EP --> DL --> AI --> QG --> GEN --> TR

    style EP fill:#003399,stroke:#002266,color:#fff
    style DL fill:#0d6efd,stroke:#0a58ca,color:#fff
    style AI fill:#6f42c1,stroke:#59359a,color:#fff
    style QG fill:#198754,stroke:#146c43,color:#fff
    style GEN fill:#fd7e14,stroke:#ca6510,color:#fff
    style TR fill:#dc3545,stroke:#b02a37,color:#fff

Analysis artifacts are not final content β€” they are structured intermediate products that enable:

  • πŸ”„ Workflow composition: Upstream agents deposit analysis; downstream agents consume it
  • πŸ“ Consistent methodology: Methodology frameworks + template catalog enforce analytical rigor (see methodologies/ and templates/)
  • πŸ“Š Full data analysis: Every downloaded MCP file receives per-file deep analysis
  • 🧠 Reusable intelligence: Cross-workflow pattern sharing and knowledge accumulation
  • 🎯 Quality assurance: Minimum 7.0/10 quality gate before article generation
  • πŸ”€ Collision-free design: Per-workflow directories prevent merge conflicts
  • πŸ“… Temporal aggregation: Daily β†’ Weekly β†’ Monthly intelligence roll-ups

πŸ—οΈ Analysis System Architecture

%%{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 "🌐 Data Sources"
        EP["πŸ›οΈ European Parliament\nOpen Data Portal"]
        IMF["πŸ’± IMF SDMX 3.0
Economic Data"]
        WB["🌍 World Bank\nNon-Economic Only"]
    end

    subgraph "πŸ“₯ Data Ingestion Layer"
        MCP["πŸ”Œ EP MCP Server\nv1.2.1"]
        PRE["πŸ“₯ Agentic Workflow\nData Download Stage"]
    end

    subgraph "πŸ“š Methodology Framework (v3.0)"
        direction TB
        GUIDE["πŸ€– AI-Driven Guide\n<i>Master Protocol</i>"]
        M1["🏷️ Classification"]
        M2["⚠️ Risk"]
        M3["🎭 Threat"]
        M4["πŸ’Ό SWOT"]
        M5["✍️ Style"]
    end

    subgraph "πŸ“‹ Template Library (8 Templates)"
        T1["πŸ” Per-File Intel"]
        T2["🏷️ Classification"]
        T3["⚠️ Risk"]
        T4["πŸ’Ό SWOT"]
        T5["🎭 Threat"]
        T6["πŸ“ˆ Significance"]
        T7["πŸ‘₯ Stakeholder"]
        T8["🧩 Synthesis"]
    end

    subgraph "πŸ€– AI Analysis Engine"
        AI["🧠 GitHub Copilot\nCoding Agent\n<i>All analysis performed here</i>"]
    end

    subgraph "βœ… Quality Assurance"
        QG["βœ… Quality Gate\n<i>Checklist + 5D score</i>"]
    end

    subgraph "πŸ“° Output"
        ART["πŸ“° News Articles\n<i>14 languages</i>"]
        DASH["πŸ“Š Analysis Artifacts\n<i>Political intelligence</i>"]
    end

    EP & WB --> MCP
    MCP --> PRE
    PRE -->|"raw data only"| AI
    GUIDE & M1 & M2 & M3 & M4 & M5 -->|"frameworks"| AI
    T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8 -->|"templates"| AI
    AI -->|"analysis artifacts"| QG
    QG -->|"approved"| ART & DASH

    style EP fill:#003399,color:#fff,stroke:#002266,stroke-width:2px
    style WB fill:#003399,color:#fff,stroke:#002266,stroke-width:2px
    style MCP fill:#6610f2,color:#fff,stroke:#520dc2,stroke-width:2px
    style PRE fill:#6610f2,color:#fff,stroke:#520dc2,stroke-width:2px
    style GUIDE fill:#dc3545,color:#fff,stroke:#b02a37,stroke-width:2px
    style AI fill:#198754,color:#fff,stroke:#146c43,stroke-width:3px
    style QG fill:#fd7e14,color:#fff,stroke:#ca6510,stroke-width:2px
    style ART fill:#ffc107,color:#000,stroke:#cc9a06,stroke-width:2px
    style DASH fill:#ffc107,color:#000,stroke:#cc9a06,stroke-width:2px
    style M1 fill:#e9ecef,color:#212529,stroke:#adb5bd
    style M2 fill:#e9ecef,color:#212529,stroke:#adb5bd
    style M3 fill:#e9ecef,color:#212529,stroke:#adb5bd
    style M4 fill:#e9ecef,color:#212529,stroke:#adb5bd
    style M5 fill:#e9ecef,color:#212529,stroke:#adb5bd
    style T1 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T2 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T3 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T4 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T5 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T6 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T7 fill:#cfe2ff,color:#084298,stroke:#9ec5fe
    style T8 fill:#cfe2ff,color:#084298,stroke:#9ec5fe

πŸ“ Directory Structure

analysis/
β”œβ”€β”€ README.md                          ← This file (CRITICAL RULES β€” read first)
β”œβ”€β”€ methodologies/                     ← Methodology guides, tradecraft standards, indicator mappings, quality thresholds
β”‚   β”œβ”€β”€ README.md                          ← Methodology catalog and pipeline overview
β”‚   β”œβ”€β”€ ai-driven-analysis-guide.md        ← 10-step analysis protocol (authoritative, read FIRST)
β”‚   β”œβ”€β”€ artifact-catalog.md                ← Master map of every analysis artifact by folder group
β”‚   β”œβ”€β”€ per-artifact-methodologies.md      ← Per-artifact construction rules (purpose + inputs + structure + Mermaid + floor)
β”‚   β”œβ”€β”€ osint-tradecraft-standards.md      ← OSINT/INTOP tradecraft (ICD 203, Admiralty grades, Kent/WEP bands, SAT catalog)
β”‚   β”œβ”€β”€ political-classification-guide.md  ← 7-dimension EP event classification
β”‚   β”œβ”€β”€ political-risk-methodology.md      ← Likelihood Γ— Impact scoring for EP
β”‚   β”œβ”€β”€ political-threat-framework.md      ← Political Threat Landscape (6 dims) + 5 frameworks
β”‚   β”œβ”€β”€ political-swot-framework.md        ← Evidence-based SWOT for EP landscape
β”‚   β”œβ”€β”€ political-style-guide.md           ← Writing standards, depth levels, evidence density
β”‚   β”œβ”€β”€ imf-indicator-mapping.md           ← IMF indicator mapping for economic context (sole authoritative source)
β”‚   β”œβ”€β”€ worldbank-indicator-mapping.md     ← World Bank indicator mapping for **non-economic** domains only (health, education, social, environment, demographics, defence, agriculture, innovation, governance)
β”‚   └── reference-quality-thresholds.json  ← Machine-readable per-artifact line-floor thresholds (Stage C gate)
β”œβ”€β”€ templates/                         ← 39 structured templates (+ README + analysis-index) β€” see templates/README.md
β”‚   β”œβ”€β”€ README.md                          ← Template catalog and selection guide
β”‚   └── …                                  ← 14 agentic-workflow (incl. 6 reusable framework) + 25 per-artifact templates
β”œβ”€β”€ reference/                         ← 4 ISMS adaptation mappings
β”‚   β”œβ”€β”€ isms-classification-adaptation.md  ← ISMS β†’ Political classification mapping
β”‚   β”œβ”€β”€ isms-risk-assessment-adaptation.md ← ISMS β†’ Political risk mapping
β”‚   β”œβ”€β”€ isms-threat-modeling-adaptation.md ← ISMS β†’ Political threat mapping
β”‚   └── isms-style-guide-adaptation.md     ← ISMS β†’ Political writing standards mapping
β”œβ”€β”€ daily/                             ← Per-day analysis artifacts (see "Run-relative structure" below)
β”‚   └── README.md
β”œβ”€β”€ weekly/                            ← Per-week aggregations
β”‚   └── README.md
β”œβ”€β”€ monthly/                           ← Per-month strategic briefs
β”‚   └── README.md
β”œβ”€β”€ imf/                               ← Cached IMF dataset snapshots
β”œβ”€β”€ worldbank/                         ← Cached World Bank dataset snapshots
└── daily/YYYY-MM-DD/                  ← Run-relative output root
    └── <article-type-slug>-run<NN>/   ← Per-workflow, per-run isolation (e.g. week-ahead-run01)
        β”œβ”€β”€ manifest.json              ← Run metadata (start/end, MCP tools called, hashes)
        β”œβ”€β”€ intelligence/              ← 19 intelligence artifacts (analysis-index, synthesis-summary, stakeholder-map, …)
        β”œβ”€β”€ classification/            ← 4 classification artifacts (significance, actor-mapping, forces, impact-matrix)
        β”œβ”€β”€ risk-scoring/              ← 4 risk artifacts (risk-matrix, quantitative-swot, capital-risk, velocity-risk)
        β”œβ”€β”€ threat-assessment/         ← 5 threat artifacts (political-stride-assessment, consequence-trees, actor-threat-profiles, …)
        └── data/                      ← Raw MCP payloads for this run

Canonical run-relative path: analysis/daily/<YYYY-MM-DD>/<article-type-slug>-run<NN>/ is the single location Stage C's validator (npm run validate-analysis) checks. All per-artifact file names and depth floors are defined in methodologies/artifact-catalog.md + methodologies/per-artifact-methodologies.md + methodologies/reference-quality-thresholds.json.

Prompt-library entry points that own each stage:


πŸ“› Canonical Artifact Naming Convention

All analysis pipeline methods produce files with canonical filenames defined in ANALYSIS_METHOD_FILENAMES (exported from src/generators/pipeline/analysis-stage.ts). Agentic workflows and TypeScript pipeline MUST use these exact names to ensure cross-session intelligence correlation is reliable.

Pipeline Method β†’ Canonical Filename Mapping

The Source Template column identifies the corresponding template file in analysis/templates/ when a pipeline method has a direct template counterpart. A dash (β€”) means the method has no direct template counterpart.

Note: The source template filename may differ from the canonical artifact filename. Template files retain their original names in analysis/templates/; the canonical filename reflects the method/output concept used by the pipeline.

Analysis MethodSubdirectoryCanonical FilenameSource Template
significance-classificationclassification/significance-classification.mdsignificance-scoring.md ΒΉ
impact-matrixclassification/impact-matrix.mdβ€”
actor-mappingclassification/actor-mapping.mdβ€”
forces-analysisclassification/forces-analysis.mdβ€”
political-threat-landscapethreat-assessment/political-threat-landscape.mdthreat-analysis.md
actor-threat-profilingthreat-assessment/actor-threat-profiling.mdβ€”
consequence-treesthreat-assessment/consequence-trees.mdβ€”
legislative-disruptionthreat-assessment/legislative-disruption.mdβ€”
risk-matrixrisk-scoring/risk-matrix.mdrisk-assessment.md
political-capital-riskrisk-scoring/political-capital-risk.mdβ€”
quantitative-swotrisk-scoring/quantitative-swot.mdswot-analysis.md
legislative-velocity-riskrisk-scoring/legislative-velocity-risk.mdβ€”
agent-risk-workflowrisk-scoring/agent-risk-workflow.mdβ€”
deep-analysisexisting/deep-analysis.mdβ€”
stakeholder-analysisexisting/stakeholder-impact.mdstakeholder-impact.md
coalition-analysisexisting/coalition-dynamics.mdβ€”
voting-patternsexisting/voting-patterns.mdβ€”
cross-session-intelligenceexisting/cross-session-intelligence.mdβ€”
document-analysis (default)documents/document-analysis-index.mdper-file-political-intelligence.md

ΒΉ Template filenames are legacy and may not match the canonical artifact name. The pipeline always produces the canonical filename listed in the table.

Agentic Workflow Canonical Names

For high-level analysis artifacts produced by agentic workflows (AI-generated, not pipeline methods):

Analysis TypeCanonical Filename
Intelligence Briefintelligence-brief.md
Political Landscapepolitical-landscape.md
Risk Assessmentrisk-assessment.md
SWOT Analysisswot-analysis.md
Threat Assessmentthreat-assessment.md
Coalition Dynamicscoalition-dynamics.md
Stakeholder Impactstakeholder-impact.md
Significance Scoringsignificance-scoring.md
Synthesis Summarysynthesis-summary.md
Political Classificationpolitical-classification.md

Naming Rules

  1. No ai- prefix β€” Older runs used ai-deep-analysis.md, ai-coalition-dynamics.md etc. This is deprecated. Use the canonical names above.
  2. Kebab-case only β€” All filenames are lowercase, hyphen-separated with .md extension.
  3. Align with the output concept β€” Where a matching template exists in analysis/templates/, use the template name only when the generated content is intended to match that same template concept. Otherwise, use the canonical filename for the analysis method/output concept.
  4. Method name β‰  filename β€” The AnalysisMethod identifier (e.g. stakeholder-analysis) may differ from its canonical filename (e.g. stakeholder-impact.md). Always use the ANALYSIS_METHOD_FILENAMES constant.

Legacy runs

Historical analysis directories in older commits may retain previous filenames and structures. For example, some legacy runs use names such as significance-assessment.md or older ai-* prefixes instead of the canonical filenames listed above.

Treat the canonical naming rules in this section as the standard for runs generated on or after the effective date of this document (2026-03-31), unless a later generator/version note states otherwise. When reviewing older date-based directories, check for legacy equivalents before concluding that an expected output is missing.


🚨 Critical Rules for Agentic Workflows

Rule 1: Mandatory Data Download β€” ALWAYS Before Analysis

Every agentic workflow MUST download EP data before deciding whether to produce an article. Data collection is NEVER optional:

%%{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(["πŸš€ Workflow Triggered"]) --> Health["πŸ₯ MCP Health Gate\nget_plenary_sessions"]
    Health -->|"βœ… Healthy"| Feeds["πŸ“‘ Download ALL\nFeed Endpoints"]
    Health -->|"❌ Failed 3x"| Abort(["β›” Abort Run"])
    Feeds --> Advisory["πŸ“‹ Download Advisory\nFeeds MANDATORY"]
    Advisory --> Analytics["πŸ”¬ Run Analytical\nContext Tools"]
    Analytics --> Gate{"πŸ“° Newsworthy\nItems Found?"}
    Gate -->|"βœ… Yes"| Analyze["πŸ€– Per-File Analysis\n+ Article Generation"]
    Gate -->|"❌ No"| Noop["πŸ“ noop\nwith analysis summary"]

    style Start fill:#0d6efd,stroke:#0a58ca,color:#fff
    style Health fill:#6c757d,stroke:#565e64,color:#fff
    style Feeds fill:#198754,stroke:#146c43,color:#fff
    style Advisory fill:#20c997,stroke:#1aa179,color:#fff
    style Analytics fill:#6f42c1,stroke:#59359a,color:#fff
    style Gate fill:#ffc107,stroke:#cc9a06,color:#000
    style Analyze fill:#fd7e14,stroke:#ca6510,color:#fff
    style Noop fill:#adb5bd,stroke:#6c757d,color:#000
    style Abort fill:#dc3545,stroke:#b02a37,color:#fff

Key rules:

  • timeframe: "today" first, fallback to "one-week" for empty/error/timeout feeds
  • EP API can take 30–90+ seconds per call β€” NEVER abort slow responses
  • Partial data is better than no data β€” continue with other feeds on individual failures
  • Even on noop, all data collection and analysis MUST complete first

Rule 2: Per-Workflow Directory Isolation β€” Never Overwrite

Every agentic workflow MUST write to its own separate directory:

βœ… news-breaking         β†’ analysis/daily/2026-03-31/breaking/
βœ… news-weekly-review     β†’ analysis/daily/2026-03-31/week-in-review/
βœ… news-committee-reports β†’ analysis/daily/2026-03-31/committee-reports/
βœ… news-motions           β†’ analysis/daily/2026-03-31/motions/
❌ news-breaking overwrites news-weekly-review output β†’ PROHIBITED

An agentic workflow MUST NEVER overwrite analysis produced by another workflow. Each workflow run creates new files in its own scope. If a file already exists, the workflow MUST skip it or create an addendum, never replace.

%%{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 LR
    A["Workflow starts"] --> B{"Does target folder<br/>already contain<br/>analysis files?"}
    B -->|"No"| C["βœ… Create analysis<br/>in own folder"]
    B -->|"Yes β€” from SAME workflow"| D["βœ… Update/append<br/>to own files only"]
    B -->|"Yes β€” from DIFFERENT workflow"| E["🚫 NEVER touch<br/>other workflow's files"]

    style C fill:#28a745,color:#fff
    style D fill:#ffc107,color:#000
    style E fill:#dc3545,color:#fff

Rule 3: AI Must Read Methodology Then Analyse β€” Never Script

Scripts download data. AI performs ALL analysis. This is a fundamental architectural principle.

βœ… Scripts MAY🚫 Scripts MUST NEVER
Download MCP data to workflow's data/ subdirectoryGenerate analysis prose, tables, or conclusions
Catalog pending filesCreate SWOT entries, risk scores, or threat assessments
Validate output format (quality gate)Fill template sections with generated content
Move/rename filesProduce "placeholder" analysis that looks real

AI agents must:

  1. Read every methodology document in analysis/methodologies/ before any analysis
  2. Read the relevant templates in analysis/templates/ to understand the expected output format (see the per-artifact map in per-artifact-methodologies.md)
  3. Analyse the actual data β€” produce original intelligence, not scripted boilerplate
  4. Follow the templates exactly β€” structured tables, Mermaid diagrams, evidence citations, confidence labels

🚫 "Scripted crap content" is REJECTED. Generic summaries or templates filled with placeholder text are unacceptable.

Fallback mechanism: If AI analysis fails or produces unusable output (detected by the quality gate), the workflow should:

  1. Commit a minimal data-download-manifest.md documenting what was downloaded
  2. Flag the analysis as pending for the next workflow run
  3. Never commit placeholder or stub content that masquerades as genuine analysis

Rule 4: Political Threat Landscape β€” NOT STRIDE

Software-centric threat models (STRIDE, DREAD, PASTA) are explicitly rejected. Use the Political Threat Landscape (6 dimensions):

DimensionMonitorsExample
πŸ”„ Coalition ShiftsPolitical group realignment, defection patternsEPP–S&D grand coalition weakening
πŸ” Transparency DeficitAccess-to-information gaps, lobbying opacityCommittee meeting minutes delayed
βͺ Policy ReversalLegislative rollback, position changesGreen Deal implementation weakened
πŸ›οΈ Institutional PressureInter-institutional friction, mandate conflictsCouncil blocking EP amendments
🚧 Legislative ObstructionProcedure stalling, amendment flooding1000+ amendments on AI Act
πŸ—³οΈ Democratic ErosionParticipation decline, representation gapsEP election turnout decreasing

Layer Diamond Model, Attack Trees, PESTLE, Scenario Planning, and Kill Chain for threats rated MODERATE or above.

Rule 5: Evidence-Based Only

Every factual claim must have a source citation. Every non-factual assessment must have a confidence level (HIGH/MEDIUM/LOW). Opinion-only entries are REJECTED.

Rule 6: Deep Analysis β€” Not Shallow Summaries

Every analysis file must demonstrate genuine political intelligence depth. The quality standard is SWOT.md and Political Threat Framework β€” not brief summaries.

Minimum depth indicators:

  • β‰₯ 3 evidence-backed claims per SWOT quadrant (with EP procedure ID or adopted text citations)
  • β‰₯ 1 colour-coded Mermaid diagram per analysis file (with real data, not placeholders)
  • Multi-perspective analysis (Grand Coalition, Opposition, Citizens, Industry, International)
  • Explicit confidence labels on every analytical claim (HIGH/MEDIUM/LOW)
  • Forward-looking indicators (what to watch next, with specific triggers and timelines)
  • Cross-document pattern identification (how this document relates to other recent EP activity)

Rule 7: ALWAYS Commit Analysis β€” No Workflow Run Wasted

Per ai-driven-analysis-guide.md Rule 5, every agentic workflow run MUST produce and commit analysis artifacts. No workflow run should ever be wasted.

  • Analysis artifacts MUST be included in PRs β€” never deleted before PR creation
  • On quiet days with no article, create an analysis-only PR instead of discarding analysis via noop
  • Before producing new analysis, check for existing analysis and improve/extend/correct/complete it
  • Even the translation workflow must perform translation coverage and quality analysis
  • Raw MCP data payloads (e.g. large JSON/XML responses) may be cleaned to control PR size, but the data/ directory itself MUST NOT be deleted wholesale β€” all per-file analysis markdown (*.analysis.md and other .md files stored alongside the data) MUST ALWAYS be preserved and committed

πŸ€– Workflow-Specific Data Requirements

Each agentic workflow downloads unique data tailored to its article type:

%%{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 "πŸ“‘ EP MCP Server v1.2.13"
        F1["get_adopted_texts_feed"]
        F2["get_events_feed"]
        F3["get_procedures_feed"]
        F4["get_meps_feed"]
        F5["get_documents_feed"]
        F6["get_committee_documents_feed"]
        F7["get_plenary_documents_feed"]
        F8["get_parliamentary_questions_feed"]
        F9["get_plenary_session_documents_feed"]
    end

    subgraph "πŸ“° Agentic Workflows"
        W1["πŸ”΄ Breaking News"]
        W2["πŸ“‹ Motions"]
        W3["πŸ“œ Propositions"]
        W4["πŸ›οΈ Committee Reports"]
        W5["πŸ“… Week Ahead"]
        W6["πŸ“Š Weekly Review"]
        W7["πŸ“† Month Ahead"]
        W8["πŸ“ˆ Monthly Review"]
    end

    F1 --> W1 & W2 & W3 & W6 & W8
    F2 --> W1 & W5 & W7
    F3 --> W1 & W2 & W3 & W5 & W6 & W7 & W8
    F4 --> W1 & W2
    F5 --> W1 & W3 & W4
    F6 --> W4
    F7 --> W4 & W5 & W6
    F8 --> W1 & W2 & W6
    F9 --> W5

    style W1 fill:#dc3545,stroke:#b02a37,color:#fff
    style W2 fill:#fd7e14,stroke:#ca6510,color:#fff
    style W3 fill:#ffc107,stroke:#cc9a06,color:#000
    style W4 fill:#198754,stroke:#146c43,color:#fff
    style W5 fill:#0d6efd,stroke:#0a58ca,color:#fff
    style W6 fill:#6f42c1,stroke:#59359a,color:#fff
    style W7 fill:#d63384,stroke:#ab296a,color:#fff
    style W8 fill:#0dcaf0,stroke:#0aa2c0,color:#000

Detailed Workflow Data Matrix

WorkflowSlugPrimary FeedsAnalytical ToolsUnique Focus
news-breakingbreakingadopted_texts, events, procedures, meps (todayβ†’one-week fallback)detect_voting_anomalies, analyze_coalition_dynamics, early_warning_system, generate_political_landscape⚑ Real-time events: Items published TODAY only; 6-hour cycle
news-motionsmotionsadopted_texts, parliamentary_questions, meps, proceduresdetect_voting_anomalies, analyze_coalition_dynamics, get_voting_records, compare_political_groupsπŸ—³οΈ Specific resolutions: Individual motion IDs, vote breakdowns by group
news-propositionspropositionsprocedures, documents, adopted_texts, plenary_documentssearch_documents, monitor_legislative_pipeline, track_legislation, analyze_legislative_effectivenessπŸ“œ Legislative tracking: Procedure stages, committee assignments, rapporteur analysis
news-committee-reportscommittee-reportscommittee_documents, plenary_documents, adopted_texts, proceduresget_committee_info, monitor_legislative_pipeline, analyze_legislative_effectivenessπŸ›οΈ Committee deep-dive: Per-committee output, meeting agendas, document analysis
news-week-aheadweek-aheadevents, procedures, plenary_documents, plenary_session_documentsget_plenary_sessions (future), get_committee_info, monitor_legislative_pipeline, generate_political_landscapeπŸ“… Prospective: Next week's agenda, scheduled votes, upcoming hearings
news-weekly-reviewweek-in-reviewadopted_texts, procedures, plenary_documents, parliamentary_questionsget_voting_records, detect_voting_anomalies, generate_political_landscapeπŸ“Š Retrospective: Week's accomplishments, vote outcomes, legislative progress
news-month-aheadmonth-aheadevents, procedures, plenary_documents, committee_documents, adopted_texts, plenary_session_documents, mepsget_plenary_sessions, get_committee_info, monitor_legislative_pipeline, generate_political_landscape, compare_political_groups, analyze_country_delegationπŸ“† Strategic outlook: Upcoming legislative calendar, committee programming
news-monthly-reviewmonth-in-reviewadopted_texts, procedures, plenary_documents, parliamentary_questionsget_voting_records, detect_voting_anomalies, generate_political_landscape, compare_political_groups, analyze_legislative_effectivenessπŸ“ˆ Comprehensive review: Month's legislative output, political trends
news-translate(n/a)β€”β€”πŸŒ Translation only: Translates EN articles to 13 languages

Per-Document Unique Intelligence

For high-significance documents (significance score β‰₯ 7.0), workflows produce document-specific deep dives that only that workflow type can generate:

WorkflowEP Data TypeUnique Deep-Dive Analysis
Breaking NewsAdopted texts, Emergency eventsReal-time significance assessment, political temperature spike detection, urgency classification with 6-hour refresh
MotionsLegislative resolutions, PositionsPer-resolution vote breakdown by political group, defection pattern analysis, cross-party alignment maps
PropositionsLegislative proceduresPipeline stage tracking (committee β†’ plenary β†’ trilogue β†’ adoption), rapporteur influence mapping, amendment success rate analysis
Committee ReportsCommittee documents, OpinionsCommittee-level productivity metrics, cross-committee workload comparison, meeting frequency analysis, rapporteur assignment patterns
Week AheadCalendar events, Upcoming sessionsScheduled vote significance pre-assessment, debate intensity forecast, committee hearing preview
Weekly ReviewAggregated weekly outputWeek-over-week trend delta, cross-workflow pattern detection, political narrative arc tracking
Month AheadForward calendar, Procedure pipelineStrategic legislative calendar, major policy decision forecast, committee programming analysis
Monthly ReviewComprehensive monthly dataLegislative throughput metrics, political group productivity rankings, Grand Coalition scorecard, inter-temporal trend synthesis

πŸ“Š Per-File AI Analysis (Primary Analysis Mode)

The primary analysis mode is per-file AI analysis: for every downloaded EP MCP data file, the AI agent produces a deep analysis markdown file stored alongside it.

%%{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 LR
    A["πŸ“₯ EP MCP\nDownload"] --> B["πŸ“‹ Catalog\npending files"]
    B --> C["πŸ“– Read every\nmethodology doc"]
    C --> D["πŸ” Per-file\ndeep analysis"]
    D --> E["πŸ’Ύ Save\nid.analysis.md"]
    E --> F["πŸ“Š Compose\ndaily synthesis"]
    F --> G["πŸ“… Weekly/Monthly\naggregation"]

    style A fill:#003399,stroke:#002266,color:#fff
    style B fill:#0d6efd,stroke:#0a58ca,color:#fff
    style C fill:#6f42c1,stroke:#59359a,color:#fff
    style D fill:#198754,stroke:#146c43,color:#fff
    style E fill:#20c997,stroke:#1aa179,color:#fff
    style F fill:#fd7e14,stroke:#ca6510,color:#fff
    style G fill:#dc3545,stroke:#b02a37,color:#fff
StepActionQuality Check
1Download EP MCP data to data/ subdirectoryAll mandatory feeds queried
2Catalog files needing analysisNo file missed
3AI reads every methodology docEvidence: methodology citations in output
4Per-file deep analysis following templateMermaid diagrams, evidence tables, confidence labels
5Save analysis alongside data file{id}.analysis.md next to {id}.json
6Compose daily synthesisAggregates all per-file analyses
7Weekly/monthly aggregationTemporal pattern detection

Quality Gate

Every per-file analysis must score β‰₯ 7.0/10 across 5 weighted dimensions:

DimensionWeightMinimumDescription
Evidence density30%6/10Citations per claim, source variety
Analytical depth25%6/10Multi-framework application, insight quality
Structural completeness20%7/10All template sections filled, Mermaid diagrams present
Political relevance15%6/10EP-specific insights, stakeholder identification
Writing quality10%7/10Style guide compliance, clarity, no boilerplate

πŸ“ Methodology & Template Cross-Reference

Methodology Documents (AI Must Read Before Analysing)

PriorityDocumentKey Content
πŸ”΄ 1political-swot-framework.mdEvidence hierarchy, confidence levels, temporal decay, aggregation
πŸ”΄ 2political-risk-methodology.md5Γ—5 Likelihood Γ— Impact matrix, EU calibration examples
πŸ”΄ 3political-threat-framework.mdPolitical Threat Landscape (6 dimensions) + Diamond Model + Attack Trees + PESTLE + Scenario Planning + Kill Chain
🟠 4political-classification-guide.mdSensitivity levels, EP domain taxonomy, urgency matrix
🟠 5political-style-guide.mdWriting standards, 3 depth levels, evidence density, anti-patterns
🟠 6ai-driven-analysis-guide.mdPer-file protocol, quality gates, document-type focus, conflict resolution

Template Selection by Data Category

MCP Data CategoryPrimary TemplatesSupporting Templates
adopted-texts/Political Classification + Risk AssessmentSignificance Scoring
committee-documents/Stakeholder Impact + Risk AssessmentPolitical Classification
procedures/Risk Assessment + SWOT AnalysisSignificance Scoring
votes/Political Classification + SWOT + Threat AnalysisRisk Assessment
speeches/Stakeholder Impact + Significance ScoringPolitical Classification
questions/Political Classification + Significance ScoringStakeholder Impact
events/Significance Scoring + Risk AssessmentStakeholder Impact
meps/Stakeholder Impact + Political ClassificationSignificance Scoring
plenary-documents/Political Classification + Risk AssessmentAll templates

πŸ“… Temporal Aggregation

%%{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
    D["πŸ“… Daily per-workflow analysis\nanalysis/YYYY-MM-DD/slug/"] --> W["πŸ“… Weekly aggregation\nanalysis/weekly/YYYY-WNN/"]
    W --> M["πŸ“… Monthly strategic brief\nanalysis/monthly/YYYY-MM/"]
    D --> SYN["πŸ€– Cross-article synthesis\nanalysis/YYYY-MM-DD/*.md"]
    SYN --> W

    style D fill:#198754,stroke:#146c43,color:#fff
    style W fill:#0d6efd,stroke:#0a58ca,color:#fff
    style M fill:#6f42c1,stroke:#59359a,color:#fff
    style SYN fill:#fd7e14,stroke:#ca6510,color:#fff
ScopeFormatExampleCadence
DailyYYYY-MM-DD2026-03-31/Every workflow run
WeeklyYYYY-WNN2026-W14/news-weekly-review aggregation
MonthlyYYYY-MM2026-03/news-monthly-review aggregation
Cross-article*.mddaily-synthesis.mdDate root synthesis

πŸ”’ ISMS Adaptation Reference

The reference/ directory maps ISMS security frameworks to political intelligence:

Reference DocumentSource ISMS DocumentPolitical Adaptation
isms-classification-adaptation.mdCLASSIFICATION.mdConfidentiality β†’ Sensitivity, Integrity β†’ Accuracy, Availability β†’ Urgency
isms-risk-assessment-adaptation.mdRisk_Assessment_Methodology.mdCIA Triad β†’ Political Triad (Accountability, Policy Fidelity, Democratic Continuity)
isms-threat-modeling-adaptation.mdThreat_Modeling.mdPolitical Threat Landscape + Attack Trees + Diamond Model
isms-style-guide-adaptation.mdSTYLE_GUIDE.mdISMS writing standards β†’ Political intelligence writing standards

DocumentFocusLink
πŸ“ Analysis MethodologiesPolitical intelligence frameworksmethodologies/README.md
πŸ“‹ Analysis TemplatesStructured analysis templatestemplates/README.md
πŸ›οΈ ArchitectureC4 system architectureARCHITECTURE.md
βš™οΈ WorkflowsCI/CD and agentic workflowsWORKFLOWS.md
πŸš€ Future WorkflowsWorkflow evolution roadmapFUTURE_WORKFLOWS.md
πŸ›‘οΈ Threat ModelPlatform threat analysisTHREAT_MODEL.md
πŸ’Ό SWOT AnalysisStrategic assessmentSWOT.md
πŸ” Security ArchitectureSecurity controlsSECURITY_ARCHITECTURE.md

Document Control: