Populated the right_wing_motions.category column (previously 100% NULL across
3,030 motions) via parallel subagent classification — 80 agents derived a
10-category taxonomy and classified all motions in minutes.
Adds to the Overton QMD report:
- Plotly dropdown filter on Chart 1 to toggle between policy categories
- Chart 7: category delta bar chart (pre/post centrist support per domain)
- Chart 8: quarterly domain trajectories for the 5 largest categories
- Domain Decomposition narrative section
Also fixes a Streamlit tab crash (m.text -> m.body_text) and adds TDD tests.
CRIT-1: Stylistic extremity direction reversed — both dimensions declined
(stijl 1.875→1.744, not increased +0.097). Holistic moderation, not divergence.
CRIT-2: Masking rate corrected from 36.1% to 9.7% (S≤2, M≥4 on full dataset).
Original 36.8% was from 117-motion manual audit, not extrapolatable.
CRIT-3: Material impact values harmonized to motion-level means (2.79→2.45).
Old values (2.78→2.43) used undisclosed mean-of-yearly-means aggregation.
HIGH-1: Migration domain provenance caveat — category column is NULL,
analysis relies on title keyword matching (approximate boundaries).
HIGH-2: 2026-Q2 bounce caveat — n=44, bimodal distribution, sensitive to
composition (many consensus defense motions among CS=1.0 items).
HIGH-3: Non-right-wing control group corrected — CS rose 58%→62% (+3.5pp),
not 'flat at 49%'. Surge was disproportionate for right-wing content.
Also: fixed 6-party centrist definition (line 30) to 4-party,
removed 'did not shift rightward' phrasing, added Phase 4 synthesis
reminder to build_all_reports.py.
Key finding from 2026 data:
- 2026-Q2 CS bounced back to 0.523 (from 0.334 in Q1)
- Migration CS (0.395) now EXCEEDS non-migration (0.368) for first time
- Multiple 2026-Q2 migration motions got unanimous centrist support (CS=1.00)
Updated verdict across synthesis, QMD, and HTML:
- Non-migration acceptance was a temporary electoral shock response
- Migration acceptance is durable and growing as debate intensifies
- The Overton shift is domain-specific, not uniformly temporary
Also fixed hashline formatting corruption in synthesis file.
- Verdict now says 'window widened' (not 'did not shift') — centrist
support surged for right-wing motions while staying flat for left-wing
- Migration reframed from 'one exception' to 'gateway domain' — where
acceptance expanded most genuinely and right-wing parties learned
frames they applied elsewhere
- Explorer Overton tab: added migration gateway section with pre/post
metrics, full motion text (no truncation), 100-motion browser
- Explorer Kompas tab: updated Overton context to lead with the shift
- Explorer Trajectories tab: Dutch-language Overton annotation
- Synthesis, QMD, HTML report, STATUS.md all updated consistently
- Fetched 276 new motions from Tweede Kamer API (2026-04-23 to 2026-05-31)
- Fixed classify_motions.py: DROP TABLE → CREATE TABLE IF NOT EXISTS
- Restored derived columns (centrist_support_strict, category, etc.) via migration
- Scored 180 missing motions in extremity_scores_2d (now 3,049 total, 0 missing)
- Re-ran temporal trajectory with updated data (inflection: 2024-Q2)
U1: JA21 drives moderation effect (+0.203 CS shift, only party with volume+support gains)
U2: Coalition coding split at July 2024 — opposition effect confirmed (d=0.85 vs 0.87)
U3: Voting margin (ρ=0.812 with centrist support) is far superior to pass rate
U4: SVD trajectory confirms spatial divergence — centrists moved left (Δx=-0.30), right stationary
U5: Mechanism classification Cohen's κ=0.41 (moderate) — taxonomy needs revision
U6: Predictive model AUC-ROC=0.81 — submitter party and category are strongest predictors
Material impact declined post-2024 (2.78→2.43, M>=4 share 23.7%→11.3%).
Right-wing strategic moderation: more motions, milder content, better
framing. The Overton window did not expand — right-wing proposals
shifted into the existing window. 'Acceptance through moderation'
replaces 'acceptance without conversion.'
SVD axes capture agreement structure — centrists 'moving left' means
voting patterns diverged from right-wing, not that parties changed
ideology. 'Acceptance without conversion' is a behavioral claim.
Documented as best-practice learning.
- Classified 24 post-2024 right-wing motions with CS>=0.5
- Dominant mechanisms: consensus framing (33%), institutional (21%), welfare (17%)
- Only 1 targeted restriction, zero system dismantling
- Right-wing gains centrist support through repackaging, not conversion
- Confirms acceptance-without-conversion dynamic at the mechanism level
- Pearson r=0.45 between stylistic and material impact (separable)
- Material impact averages 0.85 points above stylistic
- 36.8% of motions mask high-impact policy behind restrained language
- Original single-score conflates language vs substance
- Mark U4 mechanism analysis as in progress
- Project-local skill .opencode/skills/score-extremity/ for subagent dispatch
- Orchestrator extremity_rescore_2d.py with load_skill/sample/format/validate/store
- 16 TDD tests covering all orchestrator functions
- 117 motions scored by deepseek v4 flash subagents (12 parallel batches)
- Pearson r=0.45 between stylistic and material dimensions — separable
- Key finding: 36.8% of motions use restrained language for consequential policies
- 2d_extremity_correlation_report.md documents distribution, divergence patterns,
and implications for the Overton acceptance-without-conversion narrative
- Reclassified centrist to {D66, CDA, CU, NSC} — removing VVD/BBB
which are center-right coalition partners
- Added centrist_support_strict (0.251→0.507, d=+0.65), center_right_support,
and left_support_mp columns via migration script
- Figure 1 now shows center-right (VVD/BBB) support as orange dashed line
- New Figure 3: bar chart of left-party support for right-wing motions
(0.268→0.202, left opposition hardened)
- New report Section 6 covering left-wing support trends
- All analysis now uses strict centrist definition throughout