Dine CLAUDE.md-instruktioner bliver ignoreret — her er løsningen

1 min read

Hvis du bruger Claude Code, har du sandsynligvis lagt udviklingsregler ind i din CLAUDE.md-fil. Ting som “fix altid root cause” eller “ingen halve løsninger.” Og du har nok også bemærket, at Claude stille og roligt begynder at ignorere dem midt i en session.

Det er ikke en fejl i dine instruktioner. Det er et dokumenteret problem med, hvordan CLAUDE.md-indhold bliver injiceret — og nu er der en elegant løsning.

Problemet: “May or may not be relevant”

Når Claude Code indlæser din CLAUDE.md, pakker den indholdet ind i en framing, der fortæller modellen, at instruktionerne “may or may not be relevant” og kun bør følges “if highly relevant to your task.” Det er dokumenteret på tværs af flere GitHub issues (#22309, #21119, #7777).

I praksis betyder det, at jo længere din samtale bliver — jo mere kode, tool-output og diskussion der fylder kontekstvinduet — desto lavere prioritet får dine omhyggeligt skrevne standarder. Og når context window fyldes op og komprimeres, kan dine CLAUDE.md-værdier simpelthen blive opsummeret væk.

Løsningen: Hook-baseret forstærkning

Claude Code har et hook-system — event-drevne scripts, der kører på bestemte tidspunkter i sessionen. Det afgørende: Hook-output ankommer som rene system-reminder-beskeder uden den afvisende “may or may not be relevant”-framing.

Udvikleren Albert Nahas har bygget et plugin kaldet Claude Core Values, der bruger en tre-lags forstærkningsstrategi:

  • SessionStart-hook: Injicerer alle dine værdier ved sessionsstart — og geninjicerer dem efter hver komprimering
  • UserPromptSubmit-hook: Forstærker dit motto ved hvert enkelt prompt (~15 tokens)
  • Ingen disclaimer: Hook-output har ingen nedtonende framing

Det smarte ved SessionStart-hooket er, at det også fyrer ved compact-events. Så hver gang konteksten komprimeres, bliver dine værdier automatisk genindsat i fuld længde.

Sådan fungerer det i praksis

Dine værdier defineres i en simpel YAML-fil (~/.claude/core-values.yml):

motto: "Excellence is not negotiable. Quality over speed."

sections:
  - name: Quality Commitment
    values:
      - "No Half Solutions: Fix everything until 100% functional."
      - "No Band-Aid Solutions: Fix root cause, not symptom."
  - name: Standards
    values:
      - "Follow best practices and highest industry standards."
      - "Build efficient, modular code."

Pluginet læser filen og injicerer den via to hooks i hooks.json. Ved sessionsstart ser Claude det fulde sæt værdier som en ren system-besked. Ved hvert prompt kommer et kort motto-reminder på ~15 tokens. Over en 50-turns session er det ~750 tokens — ingenting mod et 200.000-token kontekstvindue.

Hvad betyder det for agentic workflows?

Problemet er særligt relevant for dem, der bruger Claude Code i autonome workflows — f.eks. via OpenClaw, GitHub Actions eller andre agentic setups. Når en AI-agent kører i lange sessioner uden menneskelig overvågning, er det kritisk, at kvalitetsstandarder rent faktisk bliver overholdt.

Den hook-baserede tilgang er et godt mønster: I stedet for at stole på passiv kontekst, bruger man aktiv forstærkning. Det svarer til forskellen mellem at sætte en post-it på skærmen (CLAUDE.md) og at have en kollega, der minder dig om jeres aftaler ved hvert commit (hooks).

Konklusion

CLAUDE.md er stadig det rigtige sted til projektkontekst — arkitekturbeslutninger, filkonventioner, kendte gotchas. Men for udviklingsstandarder, du vil have overholdt i hver session, uden undtagelse, er hook-baseret injektion den mere pålidelige vej. Det koster næsten ingen tokens, og det overlever kontekstkomprimering.

Kildekoden til Claude Core Values-pluginet er tilgængelig på GitHub.


Denne artikel er skrevet i samarbejde med AI, og efterfølgende redigeret af et rigtigt menneske 🙂

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *