131 lines
3.4 KiB
Markdown
131 lines
3.4 KiB
Markdown
# CHANGE_POLICY.md
|
||
|
||
Dit document bepaalt welke wijzigingen AI-agents zelfstandig mogen uitvoeren en welke wijzigingen expliciete toestemming vereisen.
|
||
|
||
Doel:
|
||
- ongewenste refactors voorkomen
|
||
- contractbreuk voorkomen
|
||
- stabiliteit bewaken
|
||
|
||
---
|
||
|
||
# Algemene regel
|
||
|
||
AI-agents mogen alleen kleine, lokale, testbare wijzigingen uitvoeren.
|
||
|
||
AI-agents mogen geen brede of structurele wijzigingen uitvoeren zonder expliciete toestemming van de gebruiker.
|
||
|
||
---
|
||
|
||
# Wijzigingen die ZONDER expliciete toestemming mogen
|
||
|
||
De volgende wijzigingen mogen zelfstandig worden gedaan, mits regressietests slagen:
|
||
|
||
- kleine bugfixes
|
||
- toevoegen van nieuwe, lokale helperfuncties
|
||
- toevoegen van logging zonder secrets
|
||
- uitbreiden van bestaande responses met extra velden, zolang bestaande velden intact blijven
|
||
- toevoegen van nieuwe endpoints, zolang bestaande endpoints niet wijzigen
|
||
- uitbreiden van tests
|
||
- verbeteren van foutafhandeling
|
||
- verbeteren van type hints
|
||
- kleine frontend-aanpassingen zonder wijziging van workflow
|
||
- documentatie bijwerken
|
||
|
||
---
|
||
|
||
# Wijzigingen die ALLEEN met expliciete toestemming mogen
|
||
|
||
De volgende wijzigingen zijn verboden zonder expliciete toestemming:
|
||
|
||
- wijzigen van bestaande endpointnamen
|
||
- wijzigen van bestaande response-structuren
|
||
- verwijderen van velden uit API responses
|
||
- wijzigen van token lifecycle logica
|
||
- wijzigen van rename template
|
||
- wijzigen van mount paths of allowed media roots
|
||
- wijzigen van container runtime model
|
||
- wijzigen van projectstructuur
|
||
- wijzigen van SAFE FILES
|
||
- vervangen van libraries of frameworkkeuzes
|
||
- brede refactors over meerdere modules
|
||
- wijzigen van securityregels rond file access
|
||
|
||
---
|
||
|
||
# Verboden wijzigingen
|
||
|
||
De volgende wijzigingen zijn altijd verboden zonder expliciete opdracht:
|
||
|
||
- code buiten deze repository aanpassen
|
||
- andere containers aanpassen
|
||
- system config wijzigen
|
||
- firewall wijzigen
|
||
- systemd global wijzigen
|
||
- prune, cleanup of delete acties uitvoeren buiten deze projectscope
|
||
- secrets hardcoden
|
||
- API keys of tokens loggen
|
||
|
||
---
|
||
|
||
# Refactor Policy
|
||
|
||
Geen silent refactors.
|
||
|
||
Elke refactor moet:
|
||
1. vooraf benoemd worden
|
||
2. beperkt blijven in scope
|
||
3. regressietests behouden
|
||
4. geen API contract breken
|
||
|
||
Als een wijziging niet strikt nodig is voor het gevraagde doel, moet de agent die wijziging niet doen.
|
||
|
||
---
|
||
|
||
# Test Policy
|
||
|
||
Na iedere wijziging moeten minimaal drie regressietests worden uitgevoerd:
|
||
|
||
- curl 127.0.0.1:8085/api/health
|
||
- curl 127.0.0.1:8085/api/tvdb/auth-status
|
||
- curl "127.0.0.1:8085/api/tvdb/search?q=elsbeth"
|
||
|
||
Daarnaast moeten minimaal drie tests worden uitgevoerd voor de nieuwe of gewijzigde functionaliteit.
|
||
|
||
Nieuwe feature tests moeten:
|
||
- het gevraagde gedrag verifiëren
|
||
- geen bestaande functionaliteit breken
|
||
- waar mogelijk mechanisch herhaalbaar zijn
|
||
|
||
---
|
||
|
||
# Escalated Execution Policy
|
||
|
||
Escalated execution is toegestaan binnen deze projectscope voor:
|
||
|
||
- podman build
|
||
- podman run
|
||
- curl tests
|
||
- bestanden aanmaken en aanpassen
|
||
- dependency install binnen het project
|
||
- lokale build- en testacties
|
||
|
||
Escalated execution is niet toegestaan voor:
|
||
|
||
- systeembrede wijzigingen
|
||
- andere repositories
|
||
- andere stacks of containers
|
||
- destructieve cleanup acties
|
||
|
||
---
|
||
|
||
# Output Policy
|
||
|
||
Bij elke wijziging moet de agent kort rapporteren:
|
||
|
||
- welke bestanden zijn aangepast
|
||
- waarom die wijziging nodig was
|
||
- welke regressietests zijn uitgevoerd
|
||
- welke feature tests zijn uitgevoerd
|
||
- welke risico’s of aandachtspunten er nog zijn
|