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 🙂