# Upptäckte att commit‑hookarna och kvalitetsgrinden körde olika kontroller medan ett dokument lovade att de var desamma, genom att jämföra de två listorna i ett test — de fem som bara någonsin kördes för hand var just de som läste CV‑texten.

juli 2026

**Situation.** Projektet hade en commit‑hook som kör kontroller innan en commit godtas, och en fullständig kvalitetsgrind som körs på begäran. Ett dokument påstod att hooken kör grinden, så att ingenting kunde nå historiken utan att ha klarat allt. Båda listorna underhölls för hand, i två olika filer, och ingenting jämförde dem.

**Uppgift.** Påståendet måste göras om till något som kontrolleras maskinellt, vilket innebar att båda mängderna räknades upp programmatiskt och att testet fallerade när de skilde sig åt.

**Handling.** Testet läser hook‑konfigurationen och grindens task‑definitioner, löser upp var och en till den mängd kontroller som den faktiskt anropar och jämför dem. De stämde inte överens. Fem kontroller fanns bara i grinden och kördes aldrig vid commit, och de fem var inte slumpmässigt valda — det var de som läser själva CV‑prosan: kontrollen av berättarrösten som håller genomgångarna opersonliga, kontrollen av modeord, kontrollen av sifferkonsistens mellan språken, notationskontrollen och stavningskontrollen av innehållet. Med andra ord kördes varje kontroll som skyddade koden automatiskt, och varje kontroll som skyddade texten kördes bara när någon kom ihåg det. Eftersom texten är hela produkten var exponeringen den omvända mot vad vem som helst skulle ha gissat. Åtgärden var att föra in de fem i hooken, vilket krävde att två av dem gjordes tillräckligt snabba för att klara en tidsbudget före commit, och sedan att behålla jämförelsetestet så att de två listorna inte kan glida isär igen. Dokumentet som hade beskrivit en avsikt beskriver nu något som upprätthålls.

**Resultat.** Hooken och grinden kör bevisligen samma kontroller, och prosakontrollerna körs nu vid varje commit. Avvägningen är commit‑hookens körtid, som har ökat och kommer att fortsätta öka i takt med att innehållet växer, och det finns en punkt där en långsam hook kringgås — så den här åtgärden har en hållbarhetstid som mäts i hur länge kontrollerna förblir snabba.

---

- Roll: Test- och kvalitetsingenjör
- Kategorier: [DevOps](https://platform.engineer.company/sv/categories/devops/), [Automatisering och CI/CD](https://platform.engineer.company/sv/categories/automation/), [Test och kvalitetssäkring](https://platform.engineer.company/sv/categories/testing/), [Python](https://platform.engineer.company/sv/categories/python/), [Dokumentation](https://platform.engineer.company/sv/categories/documentation/)
- Tjänster: [DevOps och CI/CD‑automatisering](https://platform.engineer.company/sv/services/devops-cicd/), [Tekniskt ledarskap och rådgivning](https://platform.engineer.company/sv/services/technical-leadership/), [Teknisk dokumentation](https://platform.engineer.company/sv/services/technical-documentation/)

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