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.
4.3 KiB
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-exclusiveflag
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_votestable - 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
- Commit Component 2, 4, 5, 6 label updates
- Test the explorer to verify labels render correctly in UI
- Review Component 3 - current label "Verzorgingsstaat vs bezuinigingen" is accurate (cross-block welfare voting)
- 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 reporte77f0ec- fix: update SVD_THEMES labels to match actual motion contentbfe37c6- fix: align report generation with JSON output for positive/negative separationf7fc908- fix: update Component 1 label to coalition-opposition reality