# Fant ut at commit‑hookene og kvalitetsporten kjørte ulike kontroller mens et dokument lovet at de var de samme, ved å sammenligne de to listene i en test — de fem som bare noen gang ble kjørt manuelt, var de som leste CV‑teksten.

juli 2026

**Situasjon.** Prosjektet hadde en commit‑hook som kjører kontroller før en commit godtas, og en full kvalitetsport som kjøres ved behov. Et dokument hevdet at hooken kjører porten, så ingenting kunne nå historikken uten å bestå alt. Begge listene ble vedlikeholdt for hånd, i to forskjellige filer, og ingenting sammenlignet dem.

**Oppgave.** Påstanden måtte gjøres om til en assert, noe som betydde å telle opp begge settene programmatisk og feile når de sprikte.

**Handling.** Testen leser hook‑konfigurasjonen og portens oppgavedefinisjoner, løser hver av dem opp til settet med kontroller den faktisk kaller, og sammenligner. De stemte ikke overens. Fem kontroller fantes bare i porten og kjørte aldri ved commit, og de fem var ikke tilfeldige — det var de som leser selve CV‑prosaen: stemmekontrollen som holder gjennomgangene upersonlige, moteordkontrollen, kontrollen av tallkonsistens på tvers av språk, notasjonskontrollen og stavekontrollen av innholdet. Med andre ord kjørte hver kontroll som beskyttet kode, automatisk, og hver kontroll som beskyttet teksten, kjørte bare når noen husket det. Siden teksten er hele produktet, lå risikoen stikk motsatt av der man ville ha gjettet. Rettelsen var å ta de fem inn i hooken, noe som krevde at to av dem ble raske nok til å holde seg innenfor et tidsbudsjett før commit, og deretter å beholde sammenligningstesten, så de to listene ikke kan gli fra hverandre igjen. Dokumentet som hadde beskrevet en intensjon, beskriver nå noe som håndheves.

**Resultat.** Hooken og porten kjører beviselig de samme kontrollene, og prosakontrollene kjører nå ved hver commit. Avveiningen er kjøretiden til commit‑hooken, som har vokst og vil fortsette å vokse etter hvert som innholdet vokser, og det finnes et punkt der en treg hook blir omgått — så denne rettelsen har en holdbarhetstid som måles i hvor lenge kontrollene forblir raske.

---

- Rolle: Test- og kvalitetsingeniør
- Kategorier: [DevOps](https://engineer.company/nb/categories/devops/), [Automatisering og CI/CD](https://engineer.company/nb/categories/automation/), [Testing og kvalitetssikring](https://engineer.company/nb/categories/testing/), [Python](https://engineer.company/nb/categories/python/), [Dokumentasjon](https://engineer.company/nb/categories/documentation/)
- Tjenester: [DevOps og CI/CD‑automatisering](https://engineer.company/nb/services/devops-cicd/), [Teknisk ledelse og rådgivning](https://engineer.company/nb/services/technical-leadership/), [Teknisk dokumentasjon](https://engineer.company/nb/services/technical-documentation/)

<https://engineer.company/nb/portfolio/found-the-commit-hooks-and-the-gate-disagreeing-150/>
