Files
2026-03-07 13:22:52 +01:00

208 lines
4.0 KiB
Markdown

# AGENTS.md
## Project
Rename-MVP
Minimalistische webapplicatie voor het hernoemen van TV-series bestanden op basis van metadata van TheTVDB.
Technologie:
- Python
- FastAPI
- Rootless Podman
- SQLite
- TheTVDB API v4
Project root:
/home/kodi/.config/rename-mvp
---
# AI Agent Governance
Dit project wordt ontwikkeld met behulp van AI-agents (bijvoorbeeld Codex).
Agents mogen code schrijven en aanpassen, maar **moeten zich strikt houden aan de regels in dit document**.
Het primaire doel is **stabiliteit van het systeem**.
---
# Absolute Rules
Agents mogen NOOIT:
- bestaande API responses wijzigen
- bestaande endpoints verwijderen
- SAFE FILES aanpassen zonder expliciete toestemming
- projectstructuur wijzigen
- code buiten deze repository aanpassen
- andere Podman containers aanpassen
- systeemconfiguratie wijzigen
- wijzigingen maken die het contract in contracts/API_GOLDEN.md breken
- refactors of verbeteringen uitvoeren die niet expliciet gevraagd zijn
Agents mogen alleen werken **binnen deze repository**.
---
# SAFE FILES
De volgende bestanden zijn kritisch en mogen alleen aangepast worden na expliciete bevestiging van de gebruiker:
Deze bestanden bevatten infrastructuur en API-contracten.
- app/services/tvdb_auth_service.py
- container/Containerfile
- requirements.txt
- contracts/API_GOLDEN.md
- AGENTS.md
- CHANGE_POLICY.md
- SAFE_FILES.md
- docs/ARCHITECTURE.md
---
# Escalated Execution
Agents mogen escalated execution gebruiken voor:
- podman build
- podman run
- curl tests
- project builds
- dependency install
- bestanden aanmaken of aanpassen binnen dit project
Agents mogen escalated execution **niet gebruiken voor**:
- systeemupdates
- firewall wijzigingen
- systemd configuratie
- container prune
- docker/podman cleanup
- andere containers
---
# Development Workflow
Elke wijziging moet deze stappen volgen:
1 analyseer de wijziging
2 beschrijf welke bestanden worden aangepast
3 implementeer wijziging
4 voer regressietests uit
5 voer feature tests uit
---
# Testing Policy
Automatische tests zijn verplicht voor elke wijziging.
Na iedere wijziging moet het volgende script worden uitgevoerd:
./regression_tests.sh
Dit script valideert:
- API health endpoint
- TVDB auth-status endpoint
- TVDB search endpoint
Als een regressietest faalt moet de wijziging worden teruggedraaid.
Test-URL policy:
- Op de host moet standaard getest worden via `http://127.0.0.1:8085`
- In een sandbox of containerized AI-omgeving moet getest worden via `http://host.containers.internal:8085`
- Testscripts moeten automatisch één van beide kunnen detecteren
- Agents mogen niet aannemen dat `127.0.0.1:8085` vanuit de sandbox naar de host verwijst
---
# Feature Test Policy
Nieuwe functionaliteit moet minimaal drie tests bevatten.
Agents moeten hiervoor het volgende script als basis gebruiken:
./feature_test_template.sh
De template moet worden aangepast zodat deze:
- de nieuwe endpoint of functionaliteit test
- de JSON response valideert
- controleert dat bestaande functionaliteit niet breekt
De template zelf is alleen een startpunt en moet per feature worden aangepast.
---
# Regression Tests (verplicht)
Regressietests mogen **geen nieuw TVDB-token forceren**.
De volgende tests moeten altijd slagen:
./regression_tests.sh
Als een van deze tests faalt moet de wijziging worden teruggedraaid.
---
# Handmatige Auth Test
De volgende endpoint forceert een nieuwe login en mag **niet in automatische regressietests worden gebruikt**:
curl -X POST 127.0.0.1:8085/api/tvdb/login
Deze endpoint is alleen bedoeld voor debugging.
---
# Feature Tests
Nieuwe functionaliteit moet minimaal drie tests bevatten.
---
# Security Rules
Agents moeten altijd:
- path traversal voorkomen
- MEDIA_ROOT restricties respecteren
- rename preview afdwingen
- secrets niet loggen
---
# Logging Rules
Agents mogen nooit loggen:
- API keys
- tokens
- environment secrets
---
# Design Principle
Stability over speed.
Het doel is een stabiele backend, geen snelle refactors.