{"id":113,"date":"2026-08-14T08:00:20","date_gmt":"2026-08-14T08:00:20","guid":{"rendered":"https:\/\/www.dobryakov.net\/blog\/113\/"},"modified":"2026-08-14T08:00:20","modified_gmt":"2026-08-14T08:00:20","slug":"claude-md-dumping-ground","status":"publish","type":"post","link":"https:\/\/www.dobryakov.net\/blog\/113\/","title":{"rendered":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It"},"content":{"rendered":"<p>Some published agent prompt templates from AI vendors already run to hundreds of lines: voice tone, code review procedures, reactions to conflicting requirements, response formatting, what to do if the user is rude. The problem is visible even in mature engineering teams. Even teams close to model development often rely on long behavioral prompts. If even the creators of the agent cannot hold its behavior in twenty lines and instead write hundreds, the problem might not be the discipline of the team that created a 500-line CLAUDE.md. The file format encourages unrelated rules to accumulate in one place.<\/p>\n<p><!--more--><\/p>\n<p>Over the past year, many teams use the same pattern: before starting a project, they create a context configuration file \u2014 CLAUDE.md, <code>.cursorrules<\/code>, or an equivalent \u2014 and add unrelated instructions to the same file. Code style and communication tone, complex response formatting instructions, corporate regulations. As the file grows, even maintainers stop reading it carefully.<\/p>\n<p>This creates practical problems for agent behavior. Attempting to fix a universal personality and a set of behavioral rules for the agent in a single static file can slow down routine tasks and make outputs less predictable.<\/p>\n<h2>What the Model Loses When the File Grows<\/h2>\n<p>A long prompt does not only consume tokens; it also makes relevant instructions harder to prioritize. The more background noise loaded into the system context before a specific task, the lower the quality of its execution. In practice, this usually shows up in three ways:<\/p>\n<ul>\n<li><strong>Irrelevant instructions compete with the current task.<\/strong> The model must process rules that have no relevance to the current step. You ask the agent to write a single regex, but it has to read forty points about how to behave in complex architectural discussions first.<\/li>\n<li><strong>Requirement conflicts.<\/strong> For example, a rule that asks for detailed comments conflicts with a task that needs a short patch. The broader the file, the more likely such conflicts become.<\/li>\n<li><strong>Lack of flexibility.<\/strong> Core refactoring, client documentation, a security audit, a quick prototype \u2014 these are tasks with opposite requirements for depth, tone, and boundary conditions. A single static file cannot describe all modes well at the same time without degrading in at least one of them.<\/li>\n<\/ul>\n<p>The issue is not that someone phrased the rules poorly. The issue is using one static file for operational behavior \u2014 the attempt to describe behavior for any future situation in advance with a single unchanging text.<\/p>\n<h2>What CLAUDE.md Should Be by Design<\/h2>\n<p>CLAUDE.md works best as project documentation for the agent. Treat CLAUDE.md as a README for the agent: build and deploy commands, codebase architecture, paths to key files, project conventions. Include only information the agent cannot infer from the repository. Do not duplicate the folder structure the agent will see via <code>ls<\/code>. Do not restate generic engineering advice.<\/p>\n<p>A README does not grow to five hundred lines because once it starts explaining the obvious, people stop reading it \u2014 and the model also has to process low-value text. A CLAUDE.md designed as a repository map rather than a book of job descriptions fails for the same reason. Teams often break this separation not because they misunderstand the README analogy, but because they do not know where to put everything else \u2014 tone, depth, boundary conditions, regulations. So they put those rules into the one file that is always loaded.<\/p>\n<h2>Rules Belong in the Wrapper, Not the File<\/h2>\n<p>This creates a design choice. If CLAUDE.md must remain a map, and operational behavior \u2014 tone, depth, focus, constraints \u2014 must be real and different at every step, then that behavior has nowhere to fit inside a single file. Shorter rules help, but the stronger fix is to move task-specific behavior outside CLAUDE.md: task-specific operational rules should be assembled by an external wrapper \u2014 an orchestrator, pipeline, or CLI\/API wrapper that assembles the final context right before assigning a specific task.<\/p>\n<p>One implementation can look like this:<\/p>\n<pre><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502                     External Wrapper                     \u2502\n\u2502  (Determines task type, phase, and required work mode)   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                            \u2502\n            \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n            \u25bc                               \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510        \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502  Base context        \u2502   +    \u2502 Dynamic context         \u2502\n\u2502  (Minimal             \u2502        \u2502 - Tone and depth        \u2502\n\u2502   CLAUDE.md)         \u2502        \u2502 - Focus vector          \u2502\n\u2502                      \u2502        \u2502 - Boundary conditions   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518        \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518<\/code><\/pre>\n<p>The wrapper classifies the request and assembles the final context itself \u2014 instead of storing rules for unrelated tasks into a file the agent reads in full regardless of the task.<\/p>\n<h2>What the Wrapper Adds Per Task<\/h2>\n<p>Instead of writing rules for every occasion in one file, the wrapper selects instructions for the specific request:<\/p>\n<ul>\n<li><strong>Output length and explanation depth.<\/strong> For a quick hypothesis check, the instruction &quot;give only working minimal code without explanations&quot; is injected. For an architecture design task, the requirement to conduct risk analysis and compare alternatives.<\/li>\n<li><strong>Tone and format.<\/strong> Dry and strict format for PRs, looser format for brainstorming, academic for research data analysis.<\/li>\n<li><strong>Primary priority.<\/strong> Depending on the phase, the wrapper focuses the model on performance, backward compatibility, security, or speed of implementation.<\/li>\n<li><strong>Task-specific constraints.<\/strong> Compliance with regulations, a ban on specific third-party libraries \u2014 these are connected exactly when the task touches the relevant modules, rather than remaining in every prompt when irrelevant.<\/li>\n<\/ul>\n<p>This pattern is already useful in production workflows. For example, in my content pipeline, I do not store one universal content prompt for all channels \u2014 it is assembled on the fly from a prompt tailored to the specific channel, a base voice file (<code>voice\/identity.md<\/code>), a language register (<code>voice\/en.md<\/code> or <code>voice\/ru.md<\/code>), and a single row from the channel settings table (<code>voice\/dials.md<\/code>): maximum provocation level, hook density, and required brand elements. A Telegram post and a LinkedIn post get the same base voice, but different tone, different density, and different constraints \u2014 added only when generating that channel\u2019s post, not pre-written in a monolithic &quot;how the author always writes&quot; file.<\/p>\n<p>The same rule applies to the project\u2019s CLAUDE.md. common rules used by at least three skills go into CLAUDE.md; skill-specific rules stay with the skill. The file stays short because there is an explicit placement rule \u2014 the same rule this article describes.<\/p>\n<p>The same loading pattern appears in other systems.<\/p>\n<p>Examples:<\/p>\n<ul>\n<li><strong>Code review bots<\/strong> connect a security checklist only when the diff touches <code>auth\/<\/code>, not always.<\/li>\n<li>**<code>.cursor\/rules\/*.mdc<\/code> with <code>globs:<\/code>** \u2014 a rule is loaded only for files of the relevant type.<\/li>\n<li><strong>RAG support agents<\/strong> mix only the knowledge base articles relevant to the current ticket into the context.<\/li>\n<li><strong>CI\/CD with path-triggers<\/strong> \u2014 the set of steps and secrets depends on which paths actually changed.<\/li>\n<li><strong>Multi-agent orchestrators<\/strong> give each sub-agent its own narrow prompt for a specific step, rather than a shared universal prompt.<\/li>\n<\/ul>\n<h2>The Wrapper Can Also Bloat<\/h2>\n<p>Moving rules into a wrapper does not solve maintenance by itself. But any context system can become hard to maintain as it grows. A similar failure appears not just from CLAUDE.md, but from the number of components in a project generally: when there are few, everything is orderly and predictable; when the count reaches dozens, outputs can become inconsistent, and debugging which instruction caused the change becomes difficult. The wrapper can bloat too \u2014 it changes where maintenance happens; it does not remove maintenance. The advantage is that the growing part is versioned wrapper logic, not the text the agent is forced to read in full before every task.<\/p>\n<h2>Benefits of Moving Task Rules to the Wrapper<\/h2>\n<p>The practical benefits are several practical advantages \u2014 and together they are the answer to why one large rule file is a design problem, not only a readability problem:<\/p>\n<ul>\n<li><strong>Fewer irrelevant tokens per task.<\/strong> The agent receives only the instructions needed for the current step. The prompt contains fewer unrelated requirements. Prompt pollution decreases not because there are fewer rules overall, but because there are fewer rules in the specific prompt.<\/li>\n<li><strong>More predictable outputs.<\/strong> When an instruction is delivered immediately before the task and formulated for a specific context, the model is more likely to follow it. An instruction in a long general file competes with unrelated instructions; an instruction delivered at the moment of the task does not.<\/li>\n<li><strong>Centralized updates.<\/strong> Changing requirements for tone or security rules can happen in one place \u2014 in the wrapper logic \u2014 without rewriting configuration files across every repository in the company.<\/li>\n<\/ul>\n<h2>Team Responsibility Changes<\/h2>\n<p>For a team, this shifts ownership of behavior rules. CLAUDE.md stops being the place where a universal behavior contract for the agent is fixed \u2014 because different task phases require different behavior: the agent must behave differently depending on the phase and type of task. Responsibility for behavior moves into the wrapper logic \u2014 versioned and tested code maintained centrally, instead of manual edits across dozens of company repositories simultaneously.<\/p>\n<h2>Keep CLAUDE.md as a Repository Map<\/h2>\n<p>CLAUDE.md is project documentation, not the place for task-specific operating rules. It should contain a concise repository map: stack, structure, critical environment constraints \u2014 information that is stable and not obvious from the code. Tone, explanation depth, priorities, and constraints do not belong in the file at all. That is the job of the dynamic context, assembled per request.<\/p>\n<p>If CLAUDE.md has grown to hundreds of lines, do not only reorganize the file. It is a signal that some task-specific rules probably belong in wrapper code \u2014 instead of text the agent loads before even small tasks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A 500-line CLAUDE.md is not a sign of discipline. It is an architectural anti-pattern that degrades your agent&#8217;s attention on every single task.<\/p>\n","protected":false},"author":0,"featured_media":112,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.dobryakov.net\/blog\/113\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Grigoriy Dobryakov - IT+AI Blog - Grigoriy Dobryakov&#039;s blog: management, development and testing\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Why Your CLAUDE.md Is a Dumping Ground\" \/>\n\t\t<meta property=\"og:description\" content=\"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.dobryakov.net\/blog\/113\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-14T08:00:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-14T08:00:20+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Why Your CLAUDE.md Is a Dumping Ground\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#blogposting\",\"name\":\"Why Your CLAUDE.md Is a Dumping Ground\",\"headline\":\"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It\",\"author\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/claude-md-dumping-ground.jpg\",\"width\":1200,\"height\":630,\"caption\":\"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It\"},\"datePublished\":\"2026-08-14T08:00:20+00:00\",\"dateModified\":\"2026-08-14T08:00:20+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#webpage\"},\"articleSection\":\"Uncategorized\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"name\":\"Uncategorized\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"position\":2,\"name\":\"Uncategorized\",\"item\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/uncategorized\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#listItem\",\"name\":\"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#listItem\",\"position\":3,\"name\":\"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"name\":\"Uncategorized\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\",\"name\":\"Grigoriy Dobryakov - IT+AI Blog\",\"description\":\"Grigoriy Dobryakov's blog: management, development and testing\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#webpage\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/\",\"name\":\"Why Your CLAUDE.md Is a Dumping Ground\",\"description\":\"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/author\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/claude-md-dumping-ground.jpg\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#mainImage\",\"width\":1200,\"height\":630,\"caption\":\"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/113\\\/#mainImage\"},\"datePublished\":\"2026-08-14T08:00:20+00:00\",\"dateModified\":\"2026-08-14T08:00:20+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/\",\"name\":\"Grigoriy Dobryakov - IT+AI Blog\",\"description\":\"Grigoriy Dobryakov's blog: management, development and testing\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dobryakov.net\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Why Your CLAUDE.md Is a Dumping Ground","description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","canonical_url":"https:\/\/www.dobryakov.net\/blog\/113\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#blogposting","name":"Why Your CLAUDE.md Is a Dumping Ground","headline":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It","author":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"publisher":{"@id":"https:\/\/www.dobryakov.net\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.dobryakov.net\/blog\/wp-content\/uploads\/2026\/08\/claude-md-dumping-ground.jpg","width":1200,"height":630,"caption":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It"},"datePublished":"2026-08-14T08:00:20+00:00","dateModified":"2026-08-14T08:00:20+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.dobryakov.net\/blog\/113\/#webpage"},"isPartOf":{"@id":"https:\/\/www.dobryakov.net\/blog\/113\/#webpage"},"articleSection":"Uncategorized"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.dobryakov.net\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/#listItem","name":"Uncategorized"}},{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/#listItem","position":2,"name":"Uncategorized","item":"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#listItem","name":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#listItem","position":3,"name":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It","previousItem":{"@type":"ListItem","@id":"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/#listItem","name":"Uncategorized"}}]},{"@type":"Organization","@id":"https:\/\/www.dobryakov.net\/blog\/#organization","name":"Grigoriy Dobryakov - IT+AI Blog","description":"Grigoriy Dobryakov's blog: management, development and testing","url":"https:\/\/www.dobryakov.net\/blog\/"},{"@type":"WebPage","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#webpage","url":"https:\/\/www.dobryakov.net\/blog\/113\/","name":"Why Your CLAUDE.md Is a Dumping Ground","description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.dobryakov.net\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.dobryakov.net\/blog\/113\/#breadcrumblist"},"author":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"creator":{"@id":"https:\/\/www.dobryakov.net\/blog\/author\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.dobryakov.net\/blog\/wp-content\/uploads\/2026\/08\/claude-md-dumping-ground.jpg","@id":"https:\/\/www.dobryakov.net\/blog\/113\/#mainImage","width":1200,"height":630,"caption":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It"},"primaryImageOfPage":{"@id":"https:\/\/www.dobryakov.net\/blog\/113\/#mainImage"},"datePublished":"2026-08-14T08:00:20+00:00","dateModified":"2026-08-14T08:00:20+00:00"},{"@type":"WebSite","@id":"https:\/\/www.dobryakov.net\/blog\/#website","url":"https:\/\/www.dobryakov.net\/blog\/","name":"Grigoriy Dobryakov - IT+AI Blog","description":"Grigoriy Dobryakov's blog: management, development and testing","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.dobryakov.net\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Grigoriy Dobryakov - IT+AI Blog - Grigoriy Dobryakov's blog: management, development and testing","og:type":"article","og:title":"Why Your CLAUDE.md Is a Dumping Ground","og:description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","og:url":"https:\/\/www.dobryakov.net\/blog\/113\/","article:published_time":"2026-08-14T08:00:20+00:00","article:modified_time":"2026-08-14T08:00:20+00:00","twitter:card":"summary_large_image","twitter:title":"Why Your CLAUDE.md Is a Dumping Ground","twitter:description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map."},"aioseo_meta_data":{"post_id":"113","title":"Why Your CLAUDE.md Is a Dumping Ground","description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":"Why Your CLAUDE.md Is a Dumping Ground","og_description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":"Why Your CLAUDE.md Is a Dumping Ground","twitter_description":"A 500-line CLAUDE.md degrades agent attention. Move operational logic to a dynamic wrapper and keep the file as a minimal project map.","schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-08-14 08:00:24","updated":"2026-08-14 08:00:24"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.dobryakov.net\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/\" title=\"Uncategorized\">Uncategorized<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWhy Your CLAUDE.md Became a Dumping Ground and How to Fix It\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.dobryakov.net\/blog"},{"label":"Uncategorized","link":"https:\/\/www.dobryakov.net\/blog\/category\/uncategorized\/"},{"label":"Why Your CLAUDE.md Became a Dumping Ground and How to Fix It","link":"https:\/\/www.dobryakov.net\/blog\/113\/"}],"_links":{"self":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":0,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/media\/112"}],"wp:attachment":[{"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dobryakov.net\/blog\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}