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.
78 lines
4.3 KiB
78 lines
4.3 KiB
---
|
|
session: ses_2b9f
|
|
updated: 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
|
|
- [x] **Updated SVD_THEMES labels** for Components 1-10 based on deep analysis
|
|
- [x] **Fixed JSON/report mismatch bug** - report was using `scored[:30]` instead of positive/negative separation
|
|
- [x] **Discovered "29 389" issue** - This is Tweede Kamer document identifier in body_text, NOT a motion ID
|
|
- [x] **Identified Component 1 root cause** - Captures coalition vs opposition voting unity, not semantic content
|
|
- [x] **Analyzed voting patterns** across all 10 components using `mp_votes` table
|
|
- [x] **Updated Components 2, 4, 5, 6** based on voting pattern analysis
|
|
- [x] **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
|
|
|