# Bygde en commit‑port med 22 enlinjes lintere pluss fem som fortjener et avsnitt, uten advarselsnivå og uten tillatte undertrykkinger i koden, som dekker HTML, CSS, JavaScript, Python, YAML, Markdown, shell, lenker, staving, hemmeligheter og typografi.

august 2026

**Situasjon.** En bidragsveiledning er et sett med forslag. Alle er enige i den, og så er det fredag, endringen er liten, og veiledningen taper. I et enpersonsprosjekt er det verre og ikke bedre, fordi det ikke finnes noen som gjennomgår endringene i det hele tatt — det eneste som står mellom en dårlig endring og produksjon, er personen som skrev den, i det øyeblikket vedkommende er minst tilbøyelig til å krangle med seg selv.

**Oppgave.** Standardene måtte være kjørbare, slik at et brudd på én av dem får en commit til å feile i stedet for å vente på å bli lagt merke til.

**Handling.** Det som vokste frem, er en kvalitetsport med 22 lintere uten noe advarselsnivå: hver diagnostikk er en feil, og selve nettstedsgeneratoren kjører med advarsler oppgradert til feil, slik at selv en melding om utfasing stopper byggingen. De åpenbare er der — HTML‑validering, CSS, JavaScript, Python, YAML, Markdown, shell, staving, hemmeligheter, døde lenker. De interessante er de prosjektspesifikke sjekkene som intet hyllevareverktøy har noen mening om: at begge fargetemaene maler hver lagdelte flate med like mange lag, at intet fotografi vises bredere enn halvparten av kildebildets piksler, at treet som settes i produksjon, ikke inneholder noen private stier eller vertsnavn, at teksten følger tonereglene på alle tre språk, at en side har en Markdown‑tvilling og en gyldig representasjon i en alternativ protokoll. Inline‑undertrykking er forbudt uten unntak — ingen ignore‑kommentarer, ingen disable‑direktiver, ingen omgåelse av hooken og ingen omdøping av filer for å slippe unna et filmønster. Regelen som holder dette ærlig, er at en feil som fantes fra før, ikke er en unnskyldning: når en sjekk avdekker en feil ingen har innført, rettes den i samme omgang.

**Resultat.** Mekaniske innvendinger kommer fra en maskin før en commit finnes, og kvalitetsporten er den eneste som gjennomgår endringer i dette prosjektet. Kostnaden er oppgitt og ikke skjult: det går tregt å committe, og en dårlig skrevet sperre er rett og slett til å bli gal av når den må omgås, og det er grunnen til at sperrene selv senere ble lagt under et eget formateringsverktøy og en egen linter.

---

- Rolle: Bygg- og utgivelsesingeniør
- Kategorier: [Frontend‑utvikling](https://advisory.engineer.company/nb/categories/frontend/), [DevOps](https://advisory.engineer.company/nb/categories/devops/), [Automatisering og CI/CD](https://advisory.engineer.company/nb/categories/automation/), [Testing og kvalitetssikring](https://advisory.engineer.company/nb/categories/testing/), [Python](https://advisory.engineer.company/nb/categories/python/), [Dokumentasjon](https://advisory.engineer.company/nb/categories/documentation/)
- Tjenester: [DevOps og CI/CD‑automatisering](https://advisory.engineer.company/nb/services/devops-cicd/), [Produktstrategi og krav](https://advisory.engineer.company/nb/services/product-strategy/), [Teknisk dokumentasjon](https://advisory.engineer.company/nb/services/technical-documentation/)

<https://advisory.engineer.company/nb/portfolio/built-a-22-linter-commit-gate-127/>
