Kvalitet har alltid gått foran fart hos oss, og Dette er retningen står fast: bruk KI der det gir verdi, og stå inne for det dere leverer.
Nå ber vi dere om én ting til: sett sikkerhetsoppdateringer, herding, refaktorering og modernisering foran ny funksjonalitet en periode. Det er et råd, ikke en regel, og dere bestemmer selv hva dere prioriterer. Mer kode er mer å vedlikeholde, og vedlikeholdet er dessuten arbeid KI gjør godt.
NSM hevet 27. oktober det nasjonale cyberrisikonivået til høyt, det nest høyeste nivået, og ber alle norske virksomheter sette inn tiltak med en gang. KI-modeller har blitt gode til å finne sårbarheter i kode, så det publiseres langt flere enn før, også i komponenter mange av oss bygger på, og med store avhengighetstrær er det vanskelig å vite om en selv er rammet. Angripere utnytter kjente sårbarheter raskere enn tidligere, så det som virket før, virker fortsatt, bare at vi må patche raskere. «Det er legacy» eller «det skal avvikles» er ikke en grunn til å vente, for alt som kjører, er en del av angrepsflaten. Sikkerhetsoppdateringer er derfor det mest presserende av temaene og står først under.
Slik jobber dere
nav-pilot planlegger først, sikrer med tester og stopper mellom stegene så dere får godkjenne underveis. Det trenger dere ikke sette opp selv. Vi vet at dagene er fulle, så vi ber ikke om mer enn dette:
- Dere velger oppgavene selv. Dere kjenner koden og vet hvor etterslepet ligger: avhengigheter, gamle mønstre, hull i tilgangsstyring og logging.
- Små PR-er gjør det lettere for alle. Én avhengighet, én modul eller én type endring om gangen.
- Dere leser diffen før dere merger. Dere står inne for koden uansett hvem som skrev den, og det stoler vi på.
Promptene under limer dere rett inn i nav-pilot. Skillen som står i prompten, plukker nav-pilot opp selv. Mangler den, kjør nav-pilot install <skill>. Agenter kaller dere med @navn i prompten, så delegerer nav-pilot dit.
Sikkerhetsoppdateringer
Bruk dependency-upgrade. Rydd opp i etterslepet av Dependabot-PR-er i dette repoet.
Én PR per økosystem.
Grupperte Dependabot-PR-er gir færre og større PR-er som er lettere å gå gjennom, og sikkerhetsoppdateringer kommer fortsatt med en gang.
Bruk dependency-upgrade. Sett opp Dependabot-grupper for dette repoet.
Færre avhengigheter er mindre å patche, og et mindre tre å lete i neste gang en sårbarhet publiseres.
Bruk dependency-upgrade. Finn avhengigheter vi ikke bruker, og fjern dem.
Refaktorering
Bruk nav-plan. Del opp VedtakService i mindre enheter.
Bruk java-to-kotlin. Konverter pakken no.nav.<app>.integrasjon, én klasse om gangen.
Modernisering
Bruk dependency-upgrade. Oppgrader direkte avhengigheter i dette repoet.
Hold tilbake major-hopp og vis meg hva du holdt tilbake.
Bruk jackson-3-migration. Migrer denne appen fra Jackson 2 til Jackson 3.
Herding
Bruk threat-model. Lag en trusselmodell for denne tjenesten.
List tillitsgrensene og de viktigste risikoene.
Bruk nav-auth. Sjekk at alle endepunkter validerer token med riktig audience og issuer,
og at kall videre bruker token exchange.
Grundig gjennomgang
Før PR-en holder security-review. Vil dere ha hele appen gått etter i sømmene, bruk appsec-advisory: den leser koden, prøver å motbevise sine egne funn og sier hva den ikke har undersøkt. @code-review finner feil og brudd på Nav-konvensjoner, @security-champion-agent tar sikkerhetsarkitekturen, og nav-architecture-review skriver en ADR med alternativer når gjennomgangen peker på et veivalg.
Bruk security-review. Gå gjennom endringene på denne branchen før jeg lager PR.
Vurder dette repoet med appsec-advisory. Skill kodefunn fra antatt eksponering,
oppgi hva som ikke er undersøkt, og foreslå trygge tester. Ikke kjør pentest.
Bruk @code-review. Gå gjennom denne appen og list det som bør ryddes først.
Funnene er forslag. Dere avgjør hva som skal rettes, og sjekker funnet først.
Flere repoer i samme sesjon
Ligger biblioteket i ett repo og appene i et annet, kan nav-pilot jobbe mot begge i én sesjon. Stå i det ene repoet og koble til det andre med navnet:
cplt link navikt/<annet-repo>
cplt finner checkouten på maskinen din og sjekker at den virkelig er det repoet før den kobler det til.
Agenten kan da lese, skrive og kjøre kode i det repoet også, på lik linje med repoet dere startet i. Detaljene står i cplt: global, local eller repo, og flere repoer i samme sesjon.
Oppgrader <bibliotek> til <versjon> i ~/src/<bibliotek> først, deretter ~/src/<app>.
Én PR per repo.
Hjelp
Spør i #ki-produktutvikling-diskusjon hvis noe ikke virker eller dere savner en skill. Praksis har mer om å forberede oppgaver og gå gjennom resultatet.