Fredrik Skorge Salberg · Oslo

Jeg måler min egen atferd og bygger regelen som fikser den.

Ni år som digital leder i Oslo Business Region, i dag eget rådgivningsselskap. Jeg jobber i terminalen med AI-verktøy, men det interessante er ikke at jeg bruker dem — det er hva jeg har bygget rundt dem, og hvor jeg har nektet dem å handle alene.

f.salberg@gmail.com +47 479 02 121 pifre.no

Spør siden om meg

Ekte modellkall. Nøkkelen ligger i en serverfunksjon, aldri i nettleseren.

Spør porteføljen

live

Claude Sonnet 4.5, med fakta om bakgrunnen min og beskjed om å si «vet ikke» framfor å gjette. Den er instruert til ikke å overselge meg. Spør om noe du faktisk lurer på — også det ubehagelige.

Fire ting jeg har bygget

Problemet, hva jeg gjorde, og hva som faktisk skjedde etterpå — også når svaret er «ingenting ennå».

Eget verktøy · design + bygg

Et grensesnitt som viser tvil

Slektsforskning har et kildeproblem: en påstand hopper fra én side til neste og blir sannhet på veien. De fleste verktøy viser alt likt, enten det står i en kirkebok fra 1834 eller en fetter husket det feil.

Jeg gjorde usikkerhet til en synlig egenskap i grensesnittet. Hver person får én av tre grader: verifisert mot primærkilde, opplyst av familie, eller antatt. Antatte koblinger tegnes stiplet. Konflikter mellom kilder flagges framfor å overskrives stille. Egne research-agenter får aldri skrive til datasettet selv — de rapporterer, jeg integrerer.

767 personer, 286 familier. Underveis oppdaget jeg at verktøyet hadde to helt ulike lesere: meg som forsker, og familien som bare vil høre historien. Nå finnes begge lagene i samme datasett, med en bryter — forskernotater med paragrafhenvisninger, eller sammendrag skrevet for å leses høyt.

PythonBunLeafletselvstendig HTML-viewer
558 verifisert mot primærkilde
(kirkebok, folketelling)
198 opplyst, ikke belagt
11 antatt — tegnes stiplet
6 visninger: tre, vifte, timeglass, slektskap, kart, bilder

Pifre AS · i drift

AI som skriver, men aldri sender

Jeg trengte et CRM, men ville ikke betale HubSpot-priser for funksjoner jeg ikke bruker. Og jeg ville teste noe: kan en språkmodell skrive førstegangshenvendelser uten at det blir spam?

Modellen skriver utkastet, men det går i en godkjenningskø og sendes aldri automatisk. Hver AI-handling bærer med seg hvor sikker den er og hva den bygget svaret på. Det finnes budsjett per agent og en av-bryter. Grensen mellom «AI foreslår» og «AI gjør» er den viktigste designbeslutningen i hele systemet.

I daglig drift. 129 commits, 94 tester i CI, kjører på egen server. Godkjenningskøen har vist seg å være det som gjør at jeg stoler nok på systemet til å bruke det.

Next.js 15React 19SupabaseAnthropic SDKTurborepo
129 commits, 94 tester i CI
0 e-poster sendt uten at et menneske trykket ja
1 av-bryter, og et budsjett per agent
grundersjekk.no →
0 betalende kunder — det ærlige tallet
4 pristrinn, 499–4 999 kr
3 nettlesere i testsuiten, med a11y og Lighthouse

Oslo Business Region · 2017–2026

Norges største innovasjonsfestival, og vi var to

Oslo Innovation Week: over 13 000 deltakere fordelt på rundt 80 arrangementer. Vi eide nesten ingen av ressursene vi var avhengige av — programmet ble til gjennom hundrevis av eksterne aktører med egne agendaer og egne tidsplaner.

Jobben var å finne ut hva som faktisk måtte skje, holde milepælene, og få folk som ikke rapporterte til meg til å levere likevel. Som digital leder fra 2021 tok jeg CRM-en fra ustrukturert data til en automatisert oppfølgingsflyt, bygget internt.

Ni år, to administrerende direktører. Det jeg tok med meg er en vane: når noe skurrer gjentatte ganger, er det som regel systemet og ikke folkene — og da er det billigere å bygge verktøyet enn å be om mer innsats.

produksjonCRManalyseinteressenthåndtering
13k deltakere
80 arrangementer i programmet
2 personer med totalansvar

Jeg instrumenterer meg selv

Måle egen atferd, finne mønsteret, bygge intervensjonen. Begrunnelsen står i koden, med dato.

I juli 2026 gikk jeg gjennom 15 906 av mine egne prompts fra ni måneder, med samme kildekrav jeg bruker på alt annet: hver påstand må ha en datert kvittering, og et mønster teller først ved tre forekomster. Funnene var ubehagelige. Så bygde jeg motgiften. Hver av dem siterer funnet den svarer på.

funn → hooks/design-skill-reminder.sh «påminnelsen ble gitt manuelt 36 ganger på 8 mnd før denne hooken»

36 påminnelser ble én regel

Jeg oppdaget at jeg hadde skrevet samme påminnelse til meg selv 36 ganger. Nå kjenner en hook igjen design-ord i det jeg skriver og gjør det automatisk. Kommentaren i fila forteller hvorfor den finnes — ellers hadde jeg slettet den om et halvt år.

funn → /idekarantene ~45 av 68 prosjekter døde etter 1–3 dager. «burst-death signature»

Sju dagers karantene på nye idéer

Analysen viste et mønster: kort sprint, så aldri igjen. Og verre — samme idé startet på nytt i ny mappe framfor å åpne den gamle. Nå koster en ny idé én linje i en tekstfil. Den må svare «hvem betaler?» og ha en kjøpstest, og overleve sju dager før den får en mappe.

funn → CLAUDE.md, moratorium 7 orkestreringssystemer på 9 måneder → «ingen nye agent-rammeverk»

Et forbud mot min egen favorittfeil

Jeg bygger gjerne verktøyet som bygger verktøyet. Sju ganger på ni måneder. Regelen nå: automatiser bare det som faktisk har gjentatt seg tre ganger de siste tretti dagene. Den står i instruksjonsfila mi, så assistenten håndhever den når jeg selv glemmer.

funn → /selg ordet «selge» forekom ikke i egen sak på 15 906 prompts

Det jeg ikke gjorde en eneste gang

Ni måneder, rundt førti egne prosjekter, null lanseringer. Og ordet «selge» dukket aldri opp om min egen virksomhet. Nå er én salgshandling per dag beskyttet tid, med en skarp definisjon: en handling der et menneske utenfor selskapet kan svare ja eller nei. Kladd og research teller ikke.

0 skills
innkapslede arbeidsmåter
0 hooks
regler som griper inn selv
0 planlagte jobber
kjører uten meg
0 prompts analysert
okt. 2025 – jul. 2026

Hvor mennesket står i løkka

Den samme grensen går igjen i alt jeg bygger: maskinen forbereder, mennesket fullfører.

pifre-crm · autonomy_level speccet og delvis bygget
  1. −1 Blokkert agenten er avslått for denne kunden
  2. 0 Tørrkjøring genererer alt, sender ingenting
  3. 1 Manuell hver melding til godkjenning — standard
  4. 2 Første manuell første godkjennes, resten auto uten røde flagg
  5. 3 Sekvens hele rekken godkjennes én gang
  6. 4 Auto med pause stopper ved svar eller lav sikkerhet
  7. 5 Full bare av-bryteren stopper den

Den strengeste vinner alltid. Nivået settes tre steder — system, kunde, sekvens — og den laveste gjelder. De kan aldri legge sammen til mer frihet.

Bare mennesker kan skru det opp. Agenten kan foreslå opprykk, men må gjøre det gjennom godkjenningskøen som alt annet.

Et felt et menneske har bekreftet, er skrivebeskyttet. Agenten må la det være og logge at den lot være, med begrunnelse.

Avslag er treningsdata. Når jeg forkaster et forslag, må jeg velge kategori — irrelevant, feil kontakt, feil tidspunkt, dårlig kvalitet. Det mates tilbake i promptene. Systemet lagrer både det agenten foreslo og det jeg faktisk sendte, så gapet er målbart.

Samme grense, tre andre steder:

regnskap-agent · mandag 08:00

Går gjennom regnskapet, finner manglende bilag, lager utkast. Poster aldri til hovedboken. Flytter aldri penger. Skatteforslag uten paragrafhjemmel er forbudt — den får ikke mene noe uten kilde.

tt-autolog · hvert 5. minutt

Passiv timeføring fra git-aktivitet. Leser hvor lenge maskinen har vært urørt og avbryter etter femten minutter, så nattlige byggejobber ikke blir fakturerbar tid. Resultatet er alltid et utkast — det manuelle arket er fasit for fakturering.

e-post · alltid

Ingen agent sender e-post. De lager utkast i innboksen, jeg trykker send. Verktøyet som skriver klientmeldinger har ikke engang skrivetilgang til filsystemet — bare lese og lagre utkast.

Slik jobber jeg

Verktøy er lette å bytte. Metoden er det som følger med.

Orkestrerer framfor å skrive

Jeg skriver ikke mye kode selv. Jeg styrer AI-verktøy til å bygge, og bruker logikk og testing til å avgjøre om resultatet virker som tenkt. Det gjør veien fra idé til noe kjørbart kort nok til at jeg kan kaste det som ikke funker.

  • Claude Code
  • Cursor
  • Git
  • Playwright

Designer for tvil

Datatette produkter feiler sjelden på det åpenbare. De feiler når brukeren ikke vet hvor sikker en opplysning er. Jeg bygger graderingen inn i grensesnittet framfor å skjule den i en fotnote.

  • informasjonsarkitektur
  • datatette flater
  • kildevisning

Setter grensen for hva AI får gjøre

Den viktigste beslutningen i et AI-produkt er ikke hvilken modell, men hvor mennesket står i løkka. Foreslår den, eller gjør den? Jeg bygger godkjenningsledd, budsjetter og av-brytere før jeg bygger funksjonen.

  • menneske i løkka
  • proveniens
  • konfidens

Snakker med dem som har problemet

Ni år i næringsutvikling gikk med til å oversette mellom folk som ikke deler vokabular: gründere, kommune, investorer, internasjonale delegasjoner. Jeg er sterkere muntlig enn på papiret, og bruker det.

  • kundesamtaler
  • interessenter
  • fastpris-leveranse

Det som ikke står i en vanlig portefølje

Jeg har aldri hatt tittelen produktdesigner. Jeg har gjort arbeidet — snakket med brukere, tegnet, prototypet, sendt — men ikke i en designorganisasjon med andre designere å måle meg mot. Det er en reell forskjell, og jeg later ikke som den ikke finnes.

Gründersjekken har null kunder. Jeg bygget hele infrastrukturen før jeg visste om noen ville betale. Det er den klassiske feilen, og jeg gjorde den med åpne øyne fordi bygging er den morsomste delen. Neste gang: selg først, bygg etterpå.