# Agents

## Documented Solutions

`docs/solutions/` — documented solutions to past problems (bugs, best practices, workflow patterns), organized by category with YAML frontmatter (`module`, `tags`, `problem_type`). Relevant when implementing or debugging in documented areas.

## Infrastructure Notes

- Git is hosted on a **Gitea** server, not GitHub directly. The `gh` CLI is not available for this repo; use standard `git` commands instead.

## Agent Tools

`agent_tools/` — atomic primitives that let an agent operate the Stemwijzer pipeline, database, and analysis surface. The agent-native architecture track (see STRATEGY.md) exposes every human operator capability through these tools.

**When operating on the database, pipeline, or analysis surface, always prefer `agent_tools` over ad-hoc SQL or direct module calls.** Use `agent_tools.list_tools()` for runtime discovery. For the full agent persona and decision criteria, see `agent_tools/SYSTEM_PROMPT.md`.

## Project Conventions

- Right-wing parties (PVV, FVD, JA21, SGP) must appear on the RIGHT side of all axes in visualizations
- SVD labels should reflect voting patterns, not semantic content — see `docs/solutions/best-practices/svd-labels-voting-patterns-not-semantics.md`
- Centrist definition for Overton analysis: strict 4-party (D66, CDA, CU, NSC) — not VVD/BBB
- Right-wing motion classification uses hybrid keywords + voting pattern approach — see `analysis/right_wing/classify_motions.py`
- Two-dimensional extremity scoring separates stylistic (language) from material (policy impact) — see `.opencode/skills/score-extremity/SKILL.md`
- SVD axis sign convention after Procrustes: axis 2 negative = nationalist (PVV -0.56), positive = kosmopolitisch (Volt +0.27) — see `docs/solutions/best-practices/overton-window-shift-methodology-2026-05-24.md`
