{"slug": "stop-copying-your-claude-md-between-projects", "title": "Stop Copying Your CLAUDE.md Between Projects", "summary": "A developer built Loadout, an adaptive context engine for AI coding agents that lets users create reusable 'loadouts' for different work situations, so context follows them across projects and agents. The tool detects the current project, selects the appropriate loadout, and injects it into the agent without modifying shared project files. It also includes workflow stages to maintain consistent engineering processes across different coding agents.", "body_md": "I kept running into the same dumb problem with AI coding agents.\n\nEvery project needs context. How I like code structured. Which tools I prefer. How I want the agent to communicate. What commands it should run. How I want it to plan before touching anything.\n\nSo you put that stuff in CLAUDE.md. Or AGENTS.md. Or Cursor rules. Or Copilot instructions.\n\nThen you open another repo and do it again.\n\nThen you SSH into a server and none of it is there.\n\nThen you switch from Claude to Codex and apparently you have a second configuration system to maintain now.\n\nI didn't want a better CLAUDE.md.\n\nI wanted the context to follow me.\n\nSo I built Loadout.\n\nLoadout is an adaptive context engine for AI coding agents.\n\nYou create reusable loadouts for the situations you work in:\n\nThen instead of launching:\n\n```\nclaude\n```\n\nyou launch:\n\n```\nload claude\n```\n\nLoadout detects what you're working on, picks the right loadout, renders the context, wires it into the agent, and gets out of the way.\n\nSo in a Rust repo, maybe the agent gets:\n\n`Result`\n\n/`?`\n\nover `unwrap()`\n\n.In a Next.js repo, it gets something completely different.\n\nOn a bare Linux server, it can get your sysadmin conventions instead.\n\nThe selection is deterministic and inspectable. There's no LLM sitting in the middle deciding which prompt you probably meant.\n\n```\nload explain\n```\n\nmight give you something like:\n\n```\nDetected targets: [rust]\n\nLoadout selection → rust\n\nActive fragments\n  • rust-conventions\n  • terse-comms\n```\n\nThat's basically the whole premise:\n\n**different work needs different context. Stop handing your agent the same one every time.**\n\nThis distinction ended up being pretty important.\n\nYour project's `AGENTS.md`\n\nshould describe the project.\n\nArchitecture. Build commands. Weird repository conventions. Things everyone working on that codebase needs to know.\n\nLoadout is for what *you* bring to the project.\n\nYour preferred workflow. Your coding conventions. Your tooling. How you want an agent to communicate. Things you've learned after using coding agents for six months and don't want to explain for the 400th time.\n\nAnd Loadout deliberately doesn't rewrite the project's shared files.\n\nIt writes local, gitignored overlays using whatever mechanism each agent supports.\n\nYour team's `CLAUDE.md`\n\n, `AGENTS.md`\n\n, or Copilot instructions stay alone.\n\nI didn't want loadouts to turn into giant prompt blobs either.\n\nSo they're composed from fragments.\n\nA fragment is just a reusable unit of context:\n\n```\n[[fragments]]\nid = \"rust-conventions\"\nguidance = \"Build with cargo, lint with clippy; prefer ?/Result over unwrap().\"\n\n[[fragments]]\nid = \"terse-comms\"\nguidance = \"Be terse. Lead with the result. Skip the preamble.\"\n```\n\nThen a loadout combines them:\n\n```\n[[loadouts]]\nname = \"rust\"\ntargets = [\"rust\"]\nfragments = [\"rust-conventions\", \"terse-comms\"]\n```\n\nFragments can also be dynamic and pull context from shell commands, so not everything has to be static text.\n\nThe nice part is that `terse-comms`\n\nisn't a Rust thing.\n\nI can use the same fragment in my Rust, Next.js, Python, and server loadouts without copying it four times.\n\nContext was only half the problem.\n\nI switch between coding agents, but I don't necessarily want to switch engineering processes every time I do.\n\nSo Loadout has six common workflow stages:\n\n`/loadout:explore`\n\n`/loadout:brainstorm`\n\n`/loadout:plan`\n\n`/loadout:implement`\n\n`/loadout:verify`\n\n`/loadout:ship`\n\nA workflow defines what those stages actually mean.\n\nLoadout ships with workflows based on:\n\nOr you can build your own.\n\nThat means I can use Claude today and Codex tomorrow without teaching both of them my preferred explore → plan → implement → verify loop separately.\n\nThe agent changes.\n\nThe process doesn't.\n\nThis one grew out of another annoyance.\n\nAgents are getting pretty good at writing implementation plans.\n\nBut reviewing a 100-line plan inside a terminal transcript sucks.\n\nSo Loadout can turn an agent-written plan into a self-contained HTML page:\n\n```\nload plan render\n```\n\nYou get the plan broken into phases, tasks, risks, and open questions.\n\nMore importantly, you can comment directly on individual elements.\n\nSo instead of telling an agent:\n\n\"The third thing you mentioned under the authentication section — not the first bullet, the other one — change that...\"\n\nyou leave the comment on the actual task.\n\nLoadout then assembles the feedback so you can hand it back to the agent.\n\nIt's still the agent doing the planning. Loadout just gives you a better review surface.\n\nThis was another requirement from the beginning.\n\nRight now Loadout works with:\n\nBoth CLI agents and VS Code-based workflows are supported.\n\nEach agent expects context in a different place, so Loadout handles the ugly part of delivering the same generated overlay the way that particular agent expects it.\n\nI don't want my personal AI workflow coupled to whichever coding agent happens to be best this month.\n\nI like config files.\n\nI also don't particularly want to manually edit them every time I remember some tiny preference.\n\nRun:\n\n```\nload studio\n```\n\nand Loadout opens a localhost web UI where you can create fragments, compose loadouts, assign targets, choose workflows, preview the generated context, and review the diff before writing anything.\n\nThere are starter packs too, so you don't have to build everything from an empty config on day one.\n\nIf you already have a giant `CLAUDE.md`\n\nor `AGENTS.md`\n\n, there's a migration skill for that:\n\n```\nload skill install\n```\n\nThen tell your agent:\n\n\"Import my CLAUDE.md into Loadout.\"\n\nIt turns the existing instructions into reusable fragments instead of making you manually pull the thing apart.\n\nYour loadouts are global rather than living inside individual projects, so Loadout can sync the configuration through git:\n\n```\nload sync init git@github.com:you/loadout-config.git\n```\n\nThen on another machine:\n\n```\nload sync clone https://github.com/you/loadout-config.git\n```\n\nNow the same context can follow you from your laptop to another workstation or server.\n\nMachine-specific/private values stay local.\n\nInstall the binary directly — no Rust toolchain, no Node required:\n\n```\ncurl -LsSf https://github.com/elleryfamilia/loadout/releases/latest/download/loadout-installer.sh | sh\n```\n\nThen:\n\n```\nload studio\nload claude\n```\n\nThat's it.\n\nLoadout is open source and MIT licensed:\n\n[github.com/elleryfamilia/loadout](https://github.com/elleryfamilia/loadout)\n\nIf you're currently maintaining some combination of CLAUDE.md, AGENTS.md, Cursor rules, random prompt snippets, and things you keep telling agents to \"remember from now on,\" this is pretty much the problem I built it to solve.\n\nGive it a try. And if it earns a permanent spot in front of your coding agent, give the repo a star.", "url": "https://wpnews.pro/news/stop-copying-your-claude-md-between-projects", "canonical_source": "https://dev.to/elleryfamilia/stop-copying-your-claudemd-between-projects-4ji7", "published_at": "2026-08-26 14:35:41+00:00", "updated_at": "2026-08-26 14:44:39.545157+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["Loadout", "Claude", "Codex", "Cursor", "Copilot", "Rust", "Next.js"], "alternates": {"html": "https://wpnews.pro/news/stop-copying-your-claude-md-between-projects", "markdown": "https://wpnews.pro/news/stop-copying-your-claude-md-between-projects.md", "text": "https://wpnews.pro/news/stop-copying-your-claude-md-between-projects.txt", "jsonld": "https://wpnews.pro/news/stop-copying-your-claude-md-between-projects.jsonld"}}