{"id":479,"date":"2026-02-17T18:20:58","date_gmt":"2026-02-17T16:20:58","guid":{"rendered":"https:\/\/vittrup-graversen.dk\/?p=479"},"modified":"2026-03-28T12:10:58","modified_gmt":"2026-03-28T10:10:58","slug":"dine-claude-md-instruktioner-bliver-ignoreret-her-er-loesningen","status":"publish","type":"post","link":"https:\/\/vittrup-graversen.dk\/index.php\/2026\/02\/17\/dine-claude-md-instruktioner-bliver-ignoreret-her-er-loesningen\/","title":{"rendered":"Dine CLAUDE.md-instruktioner bliver ignoreret \u2014 her er l\u00f8sningen"},"content":{"rendered":"\n<p>Hvis du bruger Claude Code, har du sandsynligvis lagt udviklingsregler ind i din <code>CLAUDE.md<\/code>-fil. Ting som &#8220;fix altid root cause&#8221; eller &#8220;ingen halve l\u00f8sninger.&#8221; Og du har nok ogs\u00e5 bem\u00e6rket, at Claude stille og roligt begynder at ignorere dem midt i en session.<\/p>\n\n\n\n<p>Det er ikke en fejl i dine instruktioner. Det er et dokumenteret problem med, hvordan CLAUDE.md-indhold bliver injiceret \u2014 og nu er der en elegant l\u00f8sning.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Problemet: &#8220;May or may not be relevant&#8221;<\/h2>\n\n\n\n<p>N\u00e5r Claude Code indl\u00e6ser din CLAUDE.md, pakker den indholdet ind i en framing, der fort\u00e6ller modellen, at instruktionerne &#8220;may or may not be relevant&#8221; og kun b\u00f8r f\u00f8lges &#8220;if highly relevant to your task.&#8221; Det er dokumenteret p\u00e5 tv\u00e6rs af flere GitHub issues (<a href=\"https:\/\/github.com\/anthropics\/claude-code\/issues\/22309\" target=\"_blank\" rel=\"noopener\">#22309<\/a>, <a href=\"https:\/\/github.com\/anthropics\/claude-code\/issues\/21119\" target=\"_blank\" rel=\"noopener\">#21119<\/a>, <a href=\"https:\/\/github.com\/anthropics\/claude-code\/issues\/7777\" target=\"_blank\" rel=\"noopener\">#7777<\/a>).<\/p>\n\n\n\n<p>I praksis betyder det, at jo l\u00e6ngere din samtale bliver \u2014 jo mere kode, tool-output og diskussion der fylder kontekstvinduet \u2014 desto lavere prioritet f\u00e5r dine omhyggeligt skrevne standarder. Og n\u00e5r context window fyldes op og <a href=\"https:\/\/docs.anthropic.com\/en\/docs\/claude-code\/memory#context-compaction\" target=\"_blank\" rel=\"noopener\">komprimeres<\/a>, kan dine CLAUDE.md-v\u00e6rdier simpelthen blive opsummeret v\u00e6k.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00f8sningen: Hook-baseret forst\u00e6rkning<\/h2>\n\n\n\n<p>Claude Code har et <a href=\"https:\/\/docs.anthropic.com\/en\/docs\/claude-code\/hooks\" target=\"_blank\" rel=\"noopener\">hook-system<\/a> \u2014 event-drevne scripts, der k\u00f8rer p\u00e5 bestemte tidspunkter i sessionen. Det afg\u00f8rende: Hook-output ankommer som rene system-reminder-beskeder <em>uden<\/em> den afvisende &#8220;may or may not be relevant&#8221;-framing.<\/p>\n\n\n\n<p>Udvikleren Albert Nahas har bygget et plugin kaldet <a href=\"https:\/\/github.com\/albertnahas\/claude-core-values\" target=\"_blank\" rel=\"noopener\">Claude Core Values<\/a>, der bruger en tre-lags forst\u00e6rkningsstrategi:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SessionStart-hook:<\/strong> Injicerer alle dine v\u00e6rdier ved sessionsstart \u2014 og geninjicerer dem efter hver komprimering<\/li>\n<li><strong>UserPromptSubmit-hook:<\/strong> Forst\u00e6rker dit motto ved hvert enkelt prompt (~15 tokens)<\/li>\n<li><strong>Ingen disclaimer:<\/strong> Hook-output har ingen nedtonende framing<\/li>\n<\/ul>\n\n\n\n<p>Det smarte ved SessionStart-hooket er, at det ogs\u00e5 fyrer ved <code>compact<\/code>-events. S\u00e5 hver gang konteksten komprimeres, bliver dine v\u00e6rdier automatisk genindsat i fuld l\u00e6ngde.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00e5dan fungerer det i praksis<\/h2>\n\n\n\n<p>Dine v\u00e6rdier defineres i en simpel YAML-fil (<code>~\/.claude\/core-values.yml<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>motto: \"Excellence is not negotiable. Quality over speed.\"\n\nsections:\n  - name: Quality Commitment\n    values:\n      - \"No Half Solutions: Fix everything until 100% functional.\"\n      - \"No Band-Aid Solutions: Fix root cause, not symptom.\"\n  - name: Standards\n    values:\n      - \"Follow best practices and highest industry standards.\"\n      - \"Build efficient, modular code.\"<\/code><\/pre>\n\n\n\n<p>Pluginet l\u00e6ser filen og injicerer den via to hooks i <code>hooks.json<\/code>. Ved sessionsstart ser Claude det fulde s\u00e6t v\u00e6rdier som en ren system-besked. Ved hvert prompt kommer et kort motto-reminder p\u00e5 ~15 tokens. Over en 50-turns session er det ~750 tokens \u2014 ingenting mod et 200.000-token kontekstvindue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hvad betyder det for agentic workflows?<\/h2>\n\n\n\n<p>Problemet er s\u00e6rligt relevant for dem, der bruger Claude Code i autonome workflows \u2014 f.eks. via <a href=\"https:\/\/docs.openclaw.ai\" target=\"_blank\" rel=\"noopener\">OpenClaw<\/a>, GitHub Actions eller andre agentic setups. N\u00e5r en AI-agent k\u00f8rer i lange sessioner uden menneskelig overv\u00e5gning, er det kritisk, at kvalitetsstandarder rent faktisk bliver overholdt.<\/p>\n\n\n\n<p>Den hook-baserede tilgang er et godt m\u00f8nster: I stedet for at stole p\u00e5 passiv kontekst, bruger man aktiv forst\u00e6rkning. Det svarer til forskellen mellem at s\u00e6tte en post-it p\u00e5 sk\u00e6rmen (CLAUDE.md) og at have en kollega, der minder dig om jeres aftaler ved hvert commit (hooks).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konklusion<\/h2>\n\n\n\n<p>CLAUDE.md er stadig det rigtige sted til projektkontekst \u2014 arkitekturbeslutninger, filkonventioner, kendte gotchas. Men for udviklingsstandarder, du vil have overholdt i <em>hver<\/em> session, <em>uden<\/em> undtagelse, er hook-baseret injektion den mere p\u00e5lidelige vej. Det koster n\u00e6sten ingen tokens, og det overlever kontekstkomprimering.<\/p>\n\n\n\n<p>Kildekoden til Claude Core Values-pluginet er tilg\u00e6ngelig p\u00e5 <a href=\"https:\/\/github.com\/albertnahas\/claude-core-values\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>.<\/p>\n\n\n<hr><p style=\"color:#888888\"><em>Denne artikel er skrevet i samarbejde med AI, og efterf\u00f8lgende redigeret af et rigtigt menneske \ud83d\ude42<\/em><\/p>","protected":false},"excerpt":{"rendered":"<p>Dine CLAUDE.md-instruktioner bliver ignoreret? Her er l\u00f8sningen p\u00e5 det frustrerende problem med AI-kodningsagenter.<\/p>\n","protected":false},"author":1,"featured_media":477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[23],"class_list":["post-479","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agentic-engineering","tag-claudecode"],"acf":[],"_links":{"self":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/479","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/comments?post=479"}],"version-history":[{"count":2,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/479\/revisions"}],"predecessor-version":[{"id":1050,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/posts\/479\/revisions\/1050"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media\/477"}],"wp:attachment":[{"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/media?parent=479"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/categories?post=479"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vittrup-graversen.dk\/index.php\/wp-json\/wp\/v2\/tags?post=479"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}