| Source | Actor | Method | Language | Last Run | Last Success | Fetched | New | Status |
|---|---|---|---|---|---|---|---|---|
| German MFA | DE | RSS | EN | 2026-07-05 | 2026-07-05 | 20 | 0 | ok |
| France Diplomatie | FR | HTML scraper | EN | 2026-07-05 | 2026-07-05 | 10 | 0 | ok |
| Polish MFA | PL | HTML scraper | EN | 2026-07-05 | 2026-07-05 | 10 | 0 | ok |
| EU Council | EU | HTML scraper | EN | 2026-07-05 | 2026-07-05 | 0 | 0 | ok |
| GDELT | — | API | EN | 2026-07-05 | 2026-07-05 | 0 | 0 | ok |
This tracker ingests press releases and official statements from the foreign ministries of Germany, France, and Poland, plus the EU Council press office and GDELT supplementary signals. Each item is classified for Weimar Triangle relevance and — where relevant — enriched by an LLM to extract a one-sentence position summary.
Relevance classificationAn item is marked weimar_relevant when it touches a tracked issue area (Ukraine, defence, hybrid threats, enlargement, green transition, rule of law) AND comes from an MFA source, or when two or more Weimar countries are explicitly mentioned together, or when the text contains the phrase "Weimar Triangle" or "trilateral." A stronger trilateral_signal flag is set when all three actors are present or the Weimar/trilateral phrase appears explicitly.
Positional comparisonThe Recent page groups weimar-relevant events into clusters where two or more countries published on the same topic within a 14-day window. This surfaces cases where Germany and Poland both speak about Ukraine in the same week — even without a joint statement — enabling comparison of whether their positions converge or diverge.
Stance scoringEvery statement is rated against the officially agreed Weimar Triangle goals (from the joint declarations of February and May 2024) on a five-point scale, the same way political scientists hand-code party manifestos:
- +2 — actively advances the goal: concrete commitments, resources, initiatives
- +1 — supports the goal rhetorically, without new commitments
- 0 — neutral: mentions the topic without taking a stance
- −1 — hedges: partial support with significant caveats
- −2 — opposes or undermines the goal
Each rating is stored with a verbatim quote from the statement that justifies it, so every score on this site can be audited by reading the quote. Countries are labelled Aligned when their average ratings on a topic sit within half a point of each other, Mixed within one and a half points, and Divergent beyond that. No black-box similarity math is involved in the headline scores.
LLM enrichmentPosition extraction and stance rating run via Claude Haiku (in CI) or a local Ollama model (gemma4, local dev). The prompt asks for a one-sentence position summary per topic plus the stance rating and its supporting quote. The raw text and extraction are both stored in YAML files committed to git.
Storage and provenance
Every event is stored as a YAML file committed to git under
data/events/{source}/{YYYY-MM}/.
Files are named by a SHA-256 hash of the source URL and title, providing automatic
deduplication. Each file records source_url,
source_published_at, and ingested_at timestamps.
The full history is auditable via git log.
- All sources currently target English-language pages; French/Polish language content may be missed.
- EU Council RSS is blocked by Cloudflare from some networks; scraper uses browser-like headers.
- Polish MFA has no RSS — HTML scraper may break if the site structure changes.
- GDELT is a supplementary signal capped at a lower relevance score (noisier than MFA sources).
- Historical meetings data (pre-pipeline) is hand-curated from public records.
Total events tracked: 316 · Weimar-relevant: 252