Jeg har alltid ønsket meg en par-programmerer. Kanskje er det fordi jeg har en enegget tvilling. Vi vokste opp med å snakke oss gjennom hver prøve og stille alle de «dumme» spørsmålene. På videregående skilte et valgfag oss: hun valgte mediefag, jeg fysikk. Det førte til en 10-års filmkarriere i NYC for henne, og en kodekarriere for meg. Selv om vi har latet som vi er hverandre på jobb, er det naturlig nok vanskelig å sparre på fagene våre.
Heldigvis kan jeg nå stille alle de «dumme» spørsmålene til AI-agenter. Jeg har brukt Cursor de siste månedene og blitt imponert av økt produktivitet. Likevel tok det tid før jeg forstod hvor kraftig Cursor blir med regler, MCP og bevisst bruk av funksjonaliteten. Da gikk jeg fra å dytte på en firkantet kloss til å trille en ball.
AI‑kritikere klager ofte på at outputen er dårlig, men jeg lurer på om de ville sagt det samme etter å ha lekt litt med konfigurasjon og funksjonalitet. På mange måter spiller man AI‑en god med sin egen kompetanse, og da føles den som en lagspiller. Jeg mistenker også at flere ville endret mening etter lanseringen av GPT‑5 for noen dager siden. Se for eksempel Theo (t3.gg) sin reaksjon, der han er oppriktig rystet over hvor bra det er.

I denne bloggposten viser jeg hvordan Cursor blir mer som en par‑programmerer. Vi skal innom:
- Forstå regelsystemet
- Brukerregler: tilpass personlige preferanser globalt
- Prosjektregler: dine interne docs
- Hvordan forbedre arbeidsflyten din i Cursor
- MCP: USB-C-porten for språkmodeller
- Docker MCP Toolkit: Endrer spillets regler
- En ting går tapt

Siste nytt: GPT‑5
OpenAIs GPT‑5 ble lansert 7. august 2025 med merkbart bedre resonnering, lavere feilrate og raskere koding og verktøybruk. I Cursor kan du velge GPT‑5 som modell i chatten eller prosjektinnstillingene. Poengene i innlegget står seg: med gode regler, MCP og bevisst arbeidsflyt spiller du fortsatt AI‑en din god – med en enda kraftigere motor.
¶Forstå regelsystemet
Cursor lar deg injisere vedvarende instruksjoner i modellens kontekst. Uten regler nullstilles AI‑ens hukommelse for hver interaksjon. Med regler settes innholdet i regel‑filene først i prompten for konsekvent veiledning. Cursor støtter to typer regler:
- Prosjektregler bor i katalogen .cursor/rules. De er versjonskontrollert og knyttet til kodebasen din. Bruk dem til å kode inn domenespesifikk kunnskap, standardisere arkitektoniske valg eller automatisere arbeidsflyter.
- Brukerregler er globale preferanser som du definerer i Cursor Settings → Rules & Memories → User Rules og som alltid brukes. Disse passer perfekt til personlige stilnotater som «foretrekk funksjonell kode fremfor imperativ» eller «vær alltid kritisk».
¶Brukerregler: tilpass personlige preferanser globalt
Brukerregler lar deg tilpasse agentens tone eller kodestil på tvers av alle prosjekter. Under ser du to eksempler på brukerregler jeg har satt opp. En om kodefilosofi og en om stil og struktur.
Coding Philosophy
- Use System 2 Thinking: slow down, reason clearly, and understand the task before writing
- Tree of Thoughts approach: Consider multiple solutions before picking one
- Iterate through potential improvements before finalizing code. Make sure you have applied correct cursor rules for each prompt
- Use
<PLANNING>
tags for complex problems with branching logic - Avoid flattery. Confirm usefulness. Justify advice with tradeoffs. Critique ideas neutrally, not praise.
Code Style & Structure
- Prefer functional code: avoid side effects; keep functions pure and predictable
- Use early returns and guard clauses to reduce nesting and make intent clear
- Destructure props and arguments by default
- Split complex functions into small, clearly named units
- Avoid duplication; extract shared logic into small modules
- Write clear, self-explanatory code over excessive comments. Add comments only for non-obvious business logic, known limitations or tech debt, and performance workarounds
- Prefer declarative over imperative code
- Prefer explicit over clever
Min gode kollega, Alf, har også irritert seg over at AI-modellene elsker å legge igjen kommentarer. Her skriver han om hvordan han konfigurerer Augment Code.
¶Prosjektregler: dine interne docs
Opprett en ny regel ved å kjøre kommandoen «New Cursor Rule» i chat eller gå til Cursor Settings → Rules & Memories → Project Rule. Dette lager en ny markdown‑fil under .cursor/rules, som starter med en YAML-header (metadata). Der kan du definere regeltype, som styrer når regelen trigges:
- Always‑regler tas alltid med (bruk dem med måte siden de spiser kontekst)
- Auto Attach knytter regelen til spesifikke filnavnmønstre (globs)
- Agent Requested krever at du gir en beskrivelse slik at agenten vet når den skal brukes
- Manual‑regler aktiveres bare når du eksplisitt refererer dem med @regelnavn
Gode regler er korte, handlingsrettede og avgrensede. Cursor anbefaler å holde dem under 500 linjer, dele opp store temaer i flere regler, gi konkrete eksempler og unngå vag veiledning.
«Write rules like clear internal docs» - Cursor docs
I et hobbyprosjekt tester jeg «Backend-as-a-Service» med Supabase. De tilbyr PostgreSQL database, fil-lagring, autentisering, rollebasert tilgangskontroll, og Edge Functions til skreddersydd logikk på serversiden. Veldig nice! Supabase har til og med publisert anbefalte Cursor rules. Under ser du et lite utdrag fra en regel de har foreslått for sql-formatering:
---
description: Guidelines for writing Postgres SQL
globs: ["**/*.sql"]
alwaysApply: false
---
- Use lowercase for SQL reserved words to maintain consistency and readability.
- Employ consistent, descriptive identifiers for tables, columns, and other database objects.
- Use white space and indentation to enhance the readability of your code.
- Store dates in ISO 8601 format (`yyyy-mm-ddThh:mm:ss.sssss`).
- Include comments for complex logic, using '/* ... */' for block comments and '--' for line comments.
Du kan inkludere referansefiler eller maler i regelen din med @filnavn.tsx. Når regelen trigges, vil Cursor hente inn disse filene som ekstra kontekst.
Nøstede regler og versjonskontroll
Legg mappen .cursor/rules under versjonskontroll og del den med teamet for felles kodestil. Du kan ha flere mapper i et prosjekt og legge regler i undermapper. Organiser etter funksjon: backend (SQL, RLS), frontend (komponenter, testing, TypeScript). Da trigges relevante regler automatisk når filer i katalogen berøres. Slik har jeg organisert mine:
LEGO-registry-app/
├── .cursor/rules/
│ └── cursor-style.mdc # Project guidelines, techstack & architecture
├── src/
│ └── .cursor/rules/ # Frontend-specific rules
│ ├── accessibility.mdc
│ ├── components.mdc
│ ├── mui.mdc
│ ├── performance.mdc
│ ├── state-management.mdc
│ ├── swr.mdc
│ ├── testing.mdc
│ ├── typescript.mdc
│ └── validation-and-error-handling.mdc
└── supabase/
└── .cursor/rules/ # Backend/database-specific rules
├── code-format-sql.mdc
├── database-create-migration.mdc
├── database-functions.mdc
├── database-rls-policies.mdc
├── declarative-database-schema.mdc
└── edge-functions.mdc
Inspirasjon til regler i Cursor
I Cursor Directory kan du hente inspirasjon. Få er offisielle og følger anbefalt format, så bruk det som idébank. Test reglene dine over tid og oppdater dem fortløpende, det er slik du spiller AI‑en god.


¶Hvordan forbedre arbeidsflyten din i Cursor
Gjør det som vane å oppdatere utdatert dokumentasjon
I mitt forrige prosjekt brukte vi MUI for styling. Av en eller annen grunn brukte Cursor utdatert dokumentasjon for Grid-komponenten. Gjør deg selv en tjeneste å indekser den nye dokumentasjonen med en gang du oppdager at det skjer. Ikke gjør som meg og vent i tre måneder for så å fikse det manuelt hver gang. Det er nemlig superenkelt i chat med @Docs, scroll til bunn og Add Docs. Du kan også gå til Cursor Settings → Indexing & Docs → Add Docs.

Kom til poenget
Som en god historie: kom raskt til poenget. Hent filer inn i konteksten med @ og søk; referer kun det som trengs for å ikke fylle kontekstvinduet. Mindre, enkeltformål‑filer gjør det enklere for AI‑en å gjøre riktig.
Referer åpne faner
Det er kjedelig å legge til mange filer i konteksten manuelt. Et supertriks er å lukke alle faner, åpne bare de som er relevante, trykke / og velge «Add Open Files to Context»; Cursor legger da alle åpne filer inn i konteksten i én operasjon.

Bruk notater (Notepad)
Når du jobber på funksjoner som berører flere filer, kan det være lurt å lagre gjentatte prompts eller akseptansekrav/brukerkrav i et notat. Du kan nevne et notat i chatten så AI‑en ser teksten og filreferansene du har lagt inn. Notater funker også bra til å lagre sjekklister for Code Review eller sikkerhet.

Ta med endringer som ikke er committet
Vil du at AI‑en skal endre filer du ennå ikke har commitet, bruker du kommandoen @Commit (Diff of Working State) for å inkludere de lokale endringene i konteksten. Dette er praktisk når du jakter på bugs eller vil at Cursor skal refaktorere akkurat det du nettopp har gjort. Cursor kan til og med generere commit‑meldinger; trykk på tryllestav‑ikonet i source‑kontroll‑panelet for å få et utkast.
¶MCP: USB-C-porten for språkmodeller
MCP (Model Context Protocol) er en åpen standard som gjør det lett å koble AI-modeller til verktøy og data. Litt som en USB-C-port for språkmodeller. Er du nysgjerrig på å bygge egen MCP‑server, les Trygves innlegg her. I Cursor kobler du MCP‑servere under Settings → Tools & Integrations → MCP Tools.
Jeg har for eksempel satt opp MCP‑server for Supabase og Docker slik at AI‑en kan forstå disse tjenestene direkte. I tillegg har jeg satt opp Figma MCP‑integrasjon, slik at Cursor kan lese og forstå designet mitt og foreslå/endre kode uten manuell klipp‑og‑lim.

Jeg har også satt opp en MCP for 21s Dev Magic som automatisk kan generere UI komponenter ved hjelp av AI. Under ser du hvordan jeg lager en prompt med et notat som spesifiserer LEGO-designet og en som overordnet beskriver sidene og brukerhistorier.

Jeg satt opp React Cosmos for å ha en oversikt over alle komponentene og de ulike permutasjonene. Her ser du LegoButton-variasjonene som ble laget. Ulike farger, størrelser og tilstander. Ikke så ille, eller hva? Dette kan vi jobbe videre på!

I Cursor Directory kan du utforske tusenvis av MCP‑servere, og Glama har enda flere. Det kan føles litt som ville vesten når man finner og setter opp MCP‑er. Om det bare fantes en sikrere måte å gjøre dette på… det gjør det heldigvis! Les videre.
¶Docker MCP Toolkit: Endrer spillets regler
Dockers nye MCP Toolkit i beta endrer heldigvis spillets regler til det bedre. Docker gjør det superenkelt å komme i gang med MCP-verktøy som er verifisert og sikret. Med ett-klikks oppsett kan du koble til din foretrukne klient under MCP Toolkit → Clients. Her valgte jeg Cursor. Deretter kan du bla gjennom tilgjengelige MCP-servere og aktivere de du ønsker. I eksempelet under har jeg aktivert Docker, og endringen dukker umiddelbart opp i MCP-innstillingene i Cursor.

¶En ting går tapt
Disse «dumme» spørsmålene. De som egentlig ikke er «dumme», men fundamentale for å forstå helheten. Selv om jeg nå kan stille alle mine spørsmål til min AI-kamerat og par-programmerer, så er det en ting som går tapt.
Jeg får ingen spørsmål tilbake. Jeg husker hvordan min tvilling og jeg satt på kjøkkenbordet til sent på natt og stilte hverandre spørsmål. Man lærer jo best ved å sette ord på teorien selv. Pass på at du lærer og utvikler deg sammen med AI-en, kanskje skal noe nytt du lærer dokumenteres i en prosjektregel? Jeg opplever at Cursor blir mer kraftfull etter at jeg har personalisert den med egne konfigurasjoner og forbedret egen arbeidsflyt. Brukerregler sikrer konsistent kodestil, prosjektregler gir domenespesifikk kunnskap, og MCP-integrasjoner utvider AI-ens evner til å forstå dine verktøy direkte.
Hvordan spiller du AI-en din god?