You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
motief/thoughts/ledgers/CONTINUITY_ses_2b9f.md

4.3 KiB

session updated
ses_2b9f 2026-04-04T16:29:25.695Z

Session Summary

Goal

Improve SVD component axis labels to accurately reflect actual motion content and voting patterns, ensuring the explorer UI and JSON exports are consistent.

Constraints & Preferences

  • Right-wing parties must appear on RIGHT side of all axes
  • Labels should match what motions actually discuss AND how parties vote
  • Each motion should appear on only one component (exclusive assignment)
  • Report files saved to thoughts/explorer/ directory
  • Maintain backward compatibility with --no-exclusive flag

Progress

Done

  • Updated SVD_THEMES labels for Components 1-10 based on deep analysis
  • Fixed JSON/report mismatch bug - report was using scored[:30] instead of positive/negative separation
  • Discovered "29 389" issue - This is Tweede Kamer document identifier in body_text, NOT a motion ID
  • Identified Component 1 root cause - Captures coalition vs opposition voting unity, not semantic content
  • Analyzed voting patterns across all 10 components using mp_votes table
  • Updated Components 2, 4, 5, 6 based on voting pattern analysis
  • Regenerated reports with new labels

In Progress

  • Commit the Component 2, 4, 5, 6 label updates

Blocked

  • (none)

Key Decisions

  • SVD captures voting patterns, not semantics: A component can include defense motions (right votes for) AND social care motions (left votes for) because they're on opposite sides of coalition-opposition divide
  • Component 1 is coalition-opposition dimension: 9 coalition parties vs 6 opposition parties voting on opposite sides
  • Component 3 is TRUE welfare dimension: PVV votes WITH left (SP, GL-PvdA, PvdD, Volt, DENK) against BBB, CDA, VVD, D66 - cross-block alignment
  • Component 4 is FVD/DENK isolation: Only 2 parties vote negatively while 15 vote positively - these parties are outside the mainstream

Next Steps

  1. Commit Component 2, 4, 5, 6 label updates
  2. Test the explorer to verify labels render correctly in UI
  3. Review Component 3 - current label "Verzorgingsstaat vs bezuinigingen" is accurate (cross-block welfare voting)
  4. Consider Components 7-10 - keep as "(indicatief)" since voting patterns are diverse/unclear

Critical Context

Voting Pattern Analysis Results

Component Label Pos Parties Neg Parties Interpretation
1 Rechts kabinetsbeleid vs links oppositiebeleid 9 coalition+center 6 opposition Pure coalition-opposition
2 PVV/FVD-populisme vs mainstream PVV, FVD only 14 others Populist isolation
3 Verzorgingsstaat vs bezuinigingen SP, FVD, PVV, GL-PvdA, Volt, DENK, PvdD BBB, CDA, ChristenUnie, NSC, D66, VVD, SGP, JA21 TRUE welfare dimension
4 Mainstreampartijen vs FVD/DENK 15 parties FVD, DENK only Opposition outsiders
5 Christelijk-sociaal vs progressieve individuele rechten SGP, CDA, ChristenUnie, NSC + others SP, VVD, GL-PvdA, PvdD, Volt Christian-democratic values
6 Migratie/cultuur vs klimaat/inclusie PVV, JA21, BBB, CDA, ChristenUnie, VVD, SGP, FVD, DENK SP, PvdD, D66, GL-PvdA, Volt Migration/cultural dimension

File Operations

Read

  • /home/sgeboers/Projects/stemwijzer/explorer.py (SVD_THEMES at lines 434-611)
  • /home/sgeboers/Projects/stemwijzer/scripts/generate_svd_json.py
  • /home/sgeboers/Projects/stemwijzer/thoughts/explorer/top_svd_top_motions.json
  • /home/sgeboers/Projects/stemwijzer/thoughts/explorer/top_svd_top_motions_report.md

Modified

  • /home/sgeboers/Projects/stemwijzer/explorer.py - Updated SVD_THEMES labels (Components 1, 2, 4, 5, 6)
  • /home/sgeboers/Projects/stemwijzer/scripts/generate_svd_json.py - Fixed positive/negative separation bug

Created/Regenerated

  • thoughts/explorer/top_svd_top_motions_report.md (with updated labels)
  • thoughts/explorer/top_svd_top_motions.json (84 rows, 10 components)

Commits

  • 33edb33 - feat: implement exclusive SVD motion assignment with label review report
  • e77f0ec - fix: update SVD_THEMES labels to match actual motion content
  • bfe37c6 - fix: align report generation with JSON output for positive/negative separation
  • f7fc908 - fix: update Component 1 label to coalition-opposition reality